From 11e871ddc8bc5791e748b132d6177465435f81d8 Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 11:41:08 +0800 Subject: [PATCH 01/61] update deps --- .browserslistrc | 1 - .eslintrc | 17 +- .size-snapshot.json | 6 +- .travis.yml | 16 - dist/artplayer.js | 2 +- docs/{document => document_v3}/README.md | 0 docs/{document => document_v3}/_sidebar.md | 0 docs/{document => document_v3}/class.md | 0 docs/{document => document_v3}/events.md | 0 docs/{document => document_v3}/favicon.ico | Bin docs/{document => document_v3}/index.html | 0 docs/{document => document_v3}/libraries.md | 0 docs/{document => document_v3}/options.md | 0 docs/{document => document_v3}/properties.md | 0 docs/{document => document_v3}/question.md | 0 docs/uncompiled/artplayer.js | 846 +++++++++---------- docs/uncompiled/artplayer.js.map | 2 +- lerna.json | 2 +- package.json | 144 ++-- packages/artplayer/dist/artplayer.js | 2 +- scripts/creatRollupConfig.js | 13 +- 21 files changed, 503 insertions(+), 548 deletions(-) delete mode 100644 .browserslistrc delete mode 100644 .travis.yml rename docs/{document => document_v3}/README.md (100%) rename docs/{document => document_v3}/_sidebar.md (100%) rename docs/{document => document_v3}/class.md (100%) rename docs/{document => document_v3}/events.md (100%) rename docs/{document => document_v3}/favicon.ico (100%) rename docs/{document => document_v3}/index.html (100%) rename docs/{document => document_v3}/libraries.md (100%) rename docs/{document => document_v3}/options.md (100%) rename docs/{document => document_v3}/properties.md (100%) rename docs/{document => document_v3}/question.md (100%) diff --git a/.browserslistrc b/.browserslistrc deleted file mode 100644 index 4c59238eb..000000000 --- a/.browserslistrc +++ /dev/null @@ -1 +0,0 @@ -last 2 version diff --git a/.eslintrc b/.eslintrc index 8141c16d7..fca115c83 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,7 +1,7 @@ { - "parser": "babel-eslint", + "parser": "@babel/eslint-parser", "extends": [ - "airbnb-base", + "standard", "prettier" ], "env": { @@ -11,12 +11,23 @@ "rules": { "no-shadow": 0, "no-param-reassign": 0, + "no-restricted-exports": 0, + "no-loss-of-precision": 0, + "no-promise-executor-return": 0, + "no-unreachable-loop": 0, + "no-unsafe-optional-chaining": 0, + "no-useless-backreference": 0, + "default-case-last": 0, + "no-nonoctal-decimal-escape": 0, "prefer-object-spread": 0, "prefer-destructuring": 0, "arrow-body-style": 0, + "accessor-pairs": 0, "import/named": 0 }, "parserOptions": { - "sourceType": "module" + "sourceType": "module", + "ecmaVersion": 8, + "requireConfigFile": false } } \ No newline at end of file diff --git a/.size-snapshot.json b/.size-snapshot.json index f246da923..0f839d069 100644 --- a/.size-snapshot.json +++ b/.size-snapshot.json @@ -45,9 +45,9 @@ "gzipped": 969 }, "artplayer.js": { - "bundled": 210581, - "minified": 121271, - "gzipped": 28066 + "bundled": 207463, + "minified": 118948, + "gzipped": 27991 }, "artplayer-plugin-danmuku.js": { "bundled": 25668, diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f5cf04ab4..000000000 --- a/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -language: node_js - -node_js: - - stable - -before_script: - - npm install - - npm i packages/* && lerna bootstrap --hoist - -script: - - npm run lint - - npm run build:all - - npm run test - -after_success: - - npm run sizereport diff --git a/dist/artplayer.js b/dist/artplayer.js index e3293a8d7..f7743ad05 100644 --- a/dist/artplayer.js +++ b/dist/artplayer.js @@ -5,4 +5,4 @@ * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function v(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function m(t,e){return t.classList.add(e)}function g(t,e){return t.classList.remove(e)}function w(t,e){return t.classList.contains(e)}function x(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function O(t){return t.parentNode.removeChild(t)}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function E(t,e){S(t).forEach((function(t){return g(t,e)})),m(t,e)}function R(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function D(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function $(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}var T=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")};var z=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}},A=o((function(t){function e(r,n,o){return z()?t.exports=e=Reflect.construct:t.exports=e=function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&i(o,r.prototype),o},e.apply(null,arguments)}t.exports=e}));function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var L=function(e){a(o,e);var r=C(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(o((function(t){function e(r){var n="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!T(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return A(t,arguments,l(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),i(e,t)},e(r)}t.exports=e}))(Error));function M(t,e){if(!t)throw new L(e);return t}function q(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function F(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function I(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function W(t){return t.includes("?")?W(t.split("?")[0]):t.includes("#")?W(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function V(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}var B=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function tt(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function nt(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var ot=Object.freeze({__proto__:null,query:b,queryAll:v,addClass:m,removeClass:g,hasClass:w,append:x,remove:O,setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:E,tooltip:R,isInViewport:D,includeFromEvent:$,ArtPlayerError:L,errorHandle:M,srtToVtt:q,vttToBlob:F,assToVtt:I,getExt:W,download:V,def:Y,has:J,proxyPropertys:Q,mergeDeep:G,sleep:K,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},mt=function(){function e(r){var n=this;t(this,e),this.art=r,r.option.container instanceof Element?this.$container=r.option.container:(this.$container=b(r.option.container),M(this.$container,"No container element found by ".concat(r.option.container))),M(r.constructor.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),r.whitelist.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return b(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option,r=t.backdrop,n=t.theme;t.useSSR||(this.$container.innerHTML=e.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(m(this.$settingInner,"art-backdrop-filter"),m(this.$contextmenu,"art-backdrop-filter"),this.$info&&m(this.$info,"art-backdrop-filter")),this.art.isMobile&&m(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":m(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),gt={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},wt={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},xt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":gt,"zh-tw":wt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=G(this.languages,t),this.init()}}]),e}();var Ot=o((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var h=d*l/s;k(n,"width","".concat(100*h,"%")),k(n,"height","100%"),k(n,"padding","0 ".concat((u-u*h)/2,"px"))}else{var y=s/d/l;k(n,"width","100%"),k(n,"height","".concat(100*y,"%")),k(n,"padding","".concat((p-p*y)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),Y(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(r,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");Y(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),Y(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),Y(e,"screenshot",{value:function(){e.getDataURL().then((function(e){V(e,"".concat(r.title||"artplayer","_").concat(rt(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(r,this),kt(r,this),function(t,e){var r=t.template.$player;Y(e,"fullscreenWeb",{get:function(){return w(r,"art-fullscreen-web")},set:function(n){n?(m(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(g(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),Y(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;Y(e,"fullscreenRotate",{get:function(){return w(n,"art-fullscreen-rotate")},set:function(r){if(r){m(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,s=o.clientHeight,l=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;Y(e,"autoSize",{get:function(){return w(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,s=n.getBoundingClientRect(),l=s.width,u=s.height,p=a/c,f=l/u;if(m(n,"art-auto-size"),f>p)k(o,"width","".concat(u*p/l*100,"%")),k(o,"height","100%");else{var d=l/p/u*100;k(o,"width","100%"),k(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else g(n,"art-auto-size"),k(o,"width",null),k(o,"height",null),t.emit("autoSize")}})}(r,this),function(t,e){Y(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){Y(e,t,{get:function(){return e.rect[t]}})})),Y(e,"x",{get:function(){return e.left+window.pageXOffset}}),Y(e,"y",{get:function(){return e.top+window.pageYOffset}})}(r,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;Y(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];M(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),Y(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(r,this),function(t,e){var r=t.template.$undercover;Y(e,"light",{get:function(){return"none"!==P(r,"display",!1)},set:function(e){k(r,"display",e?"block":"none"),t.emit("light",e)}})}(r,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,s=a.$miniClose,l=a.$miniTitle,u=a.$miniHeader,p="",f=!1,d=0,h=0,y=0,b=0;i(u,"mousedown",(function(t){f=!0,d=t.pageX,h=t.pageY,y=e.left,b=e.top})),i(document,"mousemove",(function(t){if(f){m(c,"art-is-dragging");var e=b+t.pageY-h,r=y+t.pageX-d;k(c,"top","".concat(e,"px")),k(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){f=!1,g(c,"art-is-dragging")})),i(s,"click",(function(){e.mini=!1,f=!1,g(c,"art-is-dragging")})),x(l,n.title||r.get("Mini player")),Y(e,"mini",{get:function(){return w(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,p=c.style.cssText,m(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)k(c,"top","".concat(i,"px")),k(c,"left","".concat(a,"px")),D(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var s=document.body,l=s.clientHeight-e.height-50,f=s.clientWidth-e.width-50;o.set("top",l),o.set("left",f),k(c,"top","".concat(l,"px")),k(c,"left","".concat(f,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=p,g(c,"art-mini"),k(c,"top",null),k(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),Y(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(r,this),function(t,e){var r=[];Y(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=et(n[0],0,Math.min(n[1],e.duration)),i=et(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(r,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;Y(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(M(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,k(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var s=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},l=0,u=1;switch(r){case-270:l=90,u=s();break;case-180:l=180;break;case-90:l=270,u=s();break;case 90:l=90,u=s();break;case 180:l=180;break;case 270:l=270,u=s()}k(n,"transform","rotate(".concat(l,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),Y(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(r,this),function(t,e){var r=t.option,n=t.template.$poster;Y(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,k(n,"backgroundImage","url(".concat(t,")"))}})}(r,this),Q(r,this)};var St=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=l(t)););return t},Et=o((function(t){function e(r,n,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,r){var n=St(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(r):o.value}},e(r,n,o||r)}t.exports=e})),Rt=function(){function e(r){t(this,e),this.id=0,this.art=r,this.add=this.add.bind(this)}return r(e,[{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);M(!J(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");m(o,"art-".concat(this.name)),m(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):x(this.$parent,o),r.html&&x(o,r.html),r.style&&j(o,r.style),r.tooltip&&R(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&m(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;m(e,"art-control-selector");var a=document.createElement("div");m(a,"art-selector-value"),x(a,t.html),e.innerText="",x(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),s=document.createElement("div");m(s,"art-selector-list"),x(s,c),x(e,s);var l=function(){s.style.left="-".concat(P(s,"width")/2-P(e,"width")/2,"px")};o(e,l),i(e,"click",(function(e){if(w(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,l(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}},{key:"show",get:function(){return w(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?m(e,r):g(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}}]),e}();function Dt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function $t(t){for(var e=1;e
'),mounted:function(t){var r=!1,o=b(".art-progress-loaded",t),c=b(".art-progress-played",t),s=b(".art-progress-highlight",t),l=b(".art-progress-indicator",t),u=b(".art-progress-tip",t);function p(t,e){"loaded"===t&&k(o,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(l,"left","calc(".concat(100*e,"% - ").concat(P(l,"width")/2,"px)")))}n.forEach((function(t){var e=et(t.time,0,a.duration)/a.duration*100;x(s,''))})),p("loaded",a.loaded),e.on("video:progress",(function(){p("loaded",a.loaded)})),e.on("video:timeupdate",(function(){p("played",a.played)})),e.on("video:ended",(function(){p("played",1)})),i(t,"mousemove",(function(r){k(u,"display","block"),$(r,s)?function(r){var n=It(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=It(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){k(u,"display","none")})),i(t,"click",(function(t){if(t.target!==l){var r=It(e,t),n=r.second;p("played",r.percentage),a.seek=n}})),i(l,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=It(e,t),o=n.second,i=n.percentage;m(l,"art-show-indicator"),p("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,g(l,"art-show-indicator"))}))}})}}function Vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Bt(t){for(var e=1;en.clientWidth-s/2?k(t,"left","".concat(n.clientWidth-s,"px")):k(t,"left","".concat(i-s/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Gt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Kt(t){for(var e=1;e=3e3&&(r.show=!1,m(c,"art-hide-cursor"),g(c,"art-hover"))})),e.once("ready",(function(){r.add(Wt({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Qt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return ne(ne({},t),{},{mounted:function(t){var r=e.player,n=x(t,''),o=x(t,'');e.on("loop",(function(e){e?(k(t,"display","block"),k(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),k(o,"left","".concat(e[1]/r.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return Mt(Mt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=x(t,n.play),c=x(t,n.pause);function s(){k(a,"display","flex"),k(c,"display","none")}function l(){k(a,"display","none"),k(c,"display","flex")}R(a,o.get("Play")),R(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?l():s(),e.on("video:playing",(function(){l()})),e.on("video:pause",(function(){s()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return _t(_t({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=x(t,n.volume),s=x(t,n.volumeClose),l=x(t,'
'),u=x(l,'
');function p(t){var e=l.getBoundingClientRect().left;return et(t.pageX-e-6,0,54)/48}function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)k(c,"display","none"),k(s,"display","flex"),k(u,"left","0");else{var e=48*t;k(c,"display","flex"),k(s,"display","none"),k(u,"left","".concat(e,"px"))}}R(c,i.get("Mute")),k(s,"display","none"),e.isMobile&&k(l,"display","none"),f(o.volume),e.on("video:volumechange",(function(){f(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(s,"click",(function(){o.muted=!1})),r(l,"click",(function(t){o.muted=!1,o.volume=p(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=p(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){function r(){var r="".concat(rt(e.player.currentTime)," / ").concat(rt(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:i.isLive,position:"left",index:30})),r.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return ee(ee({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===i.quality.length,position:"right",index:10})),r.add(function(t){return function(e){return Kt(Kt({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;x(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),r.add(function(t){return function(e){return Bt(Bt({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;x(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){R(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),r.add(function(t){return function(e){return Yt(Yt({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;x(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){R(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!i.setting,position:"right",index:40})),r.add(function(t){return function(e){return Ct(Ct({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){R(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!i.pip,position:"right",index:50})),r.add(function(t){return function(e){return zt(zt({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){R(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),r.add(function(t){return function(e){return $t($t({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){R(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){r.add(t)}))})),r}return r(o,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,r=this.art.template,n=r.$progress,i=r.$controlsLeft,a=r.$controlsRight;switch(e.position){case"top":this.$parent=n;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:M(!1,"Control option.position must one of 'top', 'left', 'right'")}Et(l(o.prototype),"add",this).call(this,e)}}]),o}(Rt);function ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ce(t){for(var e=1;e0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=v("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&E(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return le(le({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=v("span",t).find((function(t){return t.dataset.ratio===e}));r&&E(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return pe(pe({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return de(de({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return ye(ye({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!i.light,name:"light",index:50})),o.add(function(t){return function(e){return ve(ve({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),i.contextmenu.forEach((function(t){o.add(t)})),l(c,"contextmenu",(function(t){t.preventDefault(),o.show=!0;var e=t.clientX,r=t.clientY,n=c.getBoundingClientRect(),i=n.height,a=n.width,l=n.left,u=n.top,p=s.getBoundingClientRect(),f=p.height,d=p.width,h=e-l,y=r-u;e+d>l+a&&(h=a-d),r+f>u+i&&(y=i-f),j(s,{top:"".concat(y,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){$(t,s)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(Rt);function we(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var xe=function(e){a(o,e);var n=we(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).art=e,r.name="info",r.art.template.$info&&r.init(),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=v("[data-video]",n);function s(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){s()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&s()}))}}]),o}(Rt);function Oe(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var ke=function(e){a(o,e);var n=Oe(o);function o(e){var r;t(this,o),(r=n.call(this,e)).name="subtitle";var i=e.option.subtitle,a=e.template.$subtitle;return j(a,i.style),i.url&&r.init(i.url),i.bilingual&&m(a,"art-bilingual"),r}return r(o,[{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===c(t)?j(r,t):k(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(nt(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,s=c.$subtitle,l=c.$video,u=c.$track;if(!u){var p=document.createElement("track");p.default=!0,p.kind="metadata",l.appendChild(p),this.art.template.$track=p,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||W(t)){case"srt":return F(q(o));case"ass":return F(I(o));case"vtt":return F(o);default:return t}})).then((function(t){return s.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}},{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return w(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?m(e,"art-bilingual"):g(e,"art-bilingual")}}]),o}(Rt);var je=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){$(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){m(r,"art-hover"),t.emit("hover",!0)}),(function(){g(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=t.player,o=tt((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(r,n),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=et((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=et(r.currentTime+60*e,0,r.duration),n.show="".concat(rt(c)," / ").concat(rt(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(r,n),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=tt((function(){t.emit("view",D(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new L("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new L("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),e}(),Pe=function(){function e(r){var n=this;t(this,e),this.keys={};var o=r.option,i=r.player,a=r.events.proxy;o.hotkey&&r.once("ready",(function(){n.add(27,(function(){i.fullscreenWeb&&(i.fullscreenWeb=!1)})),n.add(32,(function(){i.toggle=!0})),n.add(37,(function(){i.backward=5})),n.add(38,(function(){i.volume+=.1})),n.add(39,(function(){i.forward=5})),n.add(40,(function(){i.volume-=.1})),a(window,"keydown",(function(t){if(r.isFocus){var e=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==o&&"true"!==o){var i=n.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(r)})),r.emit("hotkey",t))}}}))}))}return r(e,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),e}();function Se(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var Ee=function(e){a(n,e);var r=Se(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="layer",o.$parent=e.template.$layer,e.once("ready",(function(){e.option.layers.forEach((function(t){o.add(t)}))})),o}return n}(Rt);function Re(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var De=function(e){a(n,e);var r=Re(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="loading",x(e.template.$loading,e.icons.loading),o}return n}(Rt),$e=function(){function e(r){t(this,e),this.art=r,this.time=2e3,this.timer=null}return r(e,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,m(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",g(r,"art-notice-show")}),this.time)}}]),e}();function Te(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var ze=function(e){a(n,e);var r=Te(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="mask",x(e.template.$state,e.icons.state),o}return n}(Rt);function Ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Ce=function e(r){var n=this;t(this,e);var o=function(t){for(var e=1;e',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){Y(n,t,{get:function(){var e=document.createElement("i");return m(e,"art-icon"),m(e,"art-icon-".concat(t)),x(e,o[t]),e}})}))};function Le(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Me(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=v("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=b(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return We(We({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=v("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Be(Be({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=b(".art-setting-range input",t),i=b(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}))})),e.on("blur",(function(){o.show=!1}))),o}return n}(Rt),Ue=function(){function e(){t(this,e),this.name="artplayer_settings",this.settings={}}return r(e,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(t,e){try{var r=Object.assign({},this.get(),it({},t,e));window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[t]=e}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),e}();function _e(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=b(".art-setting-range input",e),i=b(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Xe(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(_e);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var s=Array.from(o.$track.track.cues),l=e(r,-5,5);s.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+l,0,a.duration),t.endTime=e(c[r].endTime+l,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Ye(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else M(!1,"Playback of this file format is not supported")}}function s(t){var r=x(t,'');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=b(".art-upload-btn",e),n=b(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),s(r)}})})),{name:"localVideo",attach:s}}function Ze(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=x(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=W(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):M(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=b(".art-upload-btn",e),n=b(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Je(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Qe(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function Ge(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;k(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(O(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){O(r.firstElementChild),o()}),3e3):k(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(x(r,"

".concat(nt(t),"

")),k(r,"display","block"),clearTimeout(n),o())}}}var Ke=function(){function e(r){var n=this;t(this,e),this.art=r,this.id=0;var o=r.option;o.subtitle.url&&o.subtitleOffset&&this.add(Xe),!o.isLive&&o.miniProgressBar&&this.add(Je),o.localVideo&&this.add(Ye),o.localSubtitle&&this.add(Ze),o.networkMonitor&&this.add(Qe),o.log&&this.add(Ge),r.option.plugins.forEach((function(t){n.add(t)}))}return r(e,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return M(!J(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),Y(this,r,{value:e}),this}}]),e}(),tr=function e(r){t(this,e);var n=r.option,o=r.events.proxy,i=r.template.$video;bt.events.forEach((function(t){o(i,t,(function(t){r.emit("video:".concat(t.type),t)}))})),Object.keys(n.moreVideoAttr).forEach((function(t){i[t]=n.moreVideoAttr[t]})),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=et(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),i.controls=!0;var a=n.type||W(n.url),c=n.customType[a];a&&c?(c(i,n.url,r),r.emit("customType",a)):(i.src=n.url,r.emit("url",i.src))};function er(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var rr=0,nr=[],or=function(e){a(i,e);var o=er(i);function i(e){var r;return t(this,i),(r=o.call(this)).option=u(G(i.option,e),yt),r.isFocus=!1,r.isDestroy=!1,r.userAgent=f,r.isMobile=d,r.isWechat=y,r.whitelist=new vt(n(r)),r.template=new mt(n(r)),r.events=new je(n(r)),r.whitelist.state?(r.storage=new Ue(n(r)),r.icons=new Ce(n(r)),r.i18n=new xt(n(r)),r.notice=new $e(n(r)),r.player=new Pt(n(r)),r.layers=new Ee(n(r)),r.controls=new ie(n(r)),r.contextmenu=new ge(n(r)),r.subtitle=new ke(n(r)),r.info=new xe(n(r)),r.loading=new De(n(r)),r.hotkey=new Pe(n(r)),r.mask=new ze(n(r)),r.setting=new Ne(n(r)),r.plugins=new Ke(n(r))):r.mobile=new tr(n(r)),rr+=1,r.id=rr,nr.push(n(r)),r}return r(i,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),nr.splice(nr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return nr}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return bt}},{key:"utils",get:function(){return ot}},{key:"scheme",get:function(){return yt}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return mt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),i}(p);return console.log("%c ArtPlayer %c 3.5.31 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),or})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function g(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function m(t,e){return t.classList.add(e)}function b(t,e){return t.classList.remove(e)}function w(t,e){return t.classList.contains(e)}function x(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function O(t){return t.parentNode.removeChild(t)}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function E(t,e){S(t).forEach((function(t){return b(t,e)})),m(t,e)}function R(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function T(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}function D(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function z(t,e,r){return z=D()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},z.apply(null,arguments)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return z(t,arguments,l(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),o(n,t)},A(t)}function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var L=function(e){i(o,e);var r=C(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(A(Error));function M(t,e){if(!t)throw new L(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function q(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function B(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function I(t){return t.includes("?")?I(t.split("?")[0]):t.includes("#")?I(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function W(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function V(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function Z(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),l=0;l0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function K(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var tt=Object.freeze({__proto__:null,query:v,queryAll:g,addClass:m,removeClass:b,hasClass:w,append:x,remove:O,setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:E,tooltip:R,isInViewport:$,includeFromEvent:T,ArtPlayerError:L,errorHandle:M,srtToVtt:F,vttToBlob:q,assToVtt:B,getExt:I,download:W,def:N,has:_,proxyPropertys:X,mergeDeep:Q,sleep:Y,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},ht=function(){function e(r){var n=this;t(this,e),this.art=r,r.option.container instanceof Element?this.$container=r.option.container:(this.$container=v(r.option.container),M(this.$container,"No container element found by ".concat(r.option.container))),M(r.constructor.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),r.whitelist.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return v(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option,r=t.backdrop,n=t.theme;t.useSSR||(this.$container.innerHTML=e.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(m(this.$settingInner,"art-backdrop-filter"),m(this.$contextmenu,"art-backdrop-filter"),this.$info&&m(this.$info,"art-backdrop-filter")),this.art.isMobile&&m(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":m(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),yt={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},vt={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},gt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":yt,"zh-tw":vt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=Q(this.languages,t),this.init()}}]),e}();var mt={exports:{}};!function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var h=d*s/l;k(n,"width","".concat(100*h,"%")),k(n,"height","100%"),k(n,"padding","0 ".concat((u-u*h)/2,"px"))}else{var y=l/d/s;k(n,"width","100%"),k(n,"height","".concat(100*y,"%")),k(n,"padding","".concat((p-p*y)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),N(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(r,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");N(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),N(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),N(e,"screenshot",{value:function(){e.getDataURL().then((function(e){W(e,"".concat(r.title||"artplayer","_").concat(G(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(r,this),wt(r,this),function(t,e){var r=t.template.$player;N(e,"fullscreenWeb",{get:function(){return w(r,"art-fullscreen-web")},set:function(n){n?(m(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(b(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),N(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;N(e,"fullscreenRotate",{get:function(){return w(n,"art-fullscreen-rotate")},set:function(r){if(r){m(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,l=o.clientHeight,s=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;N(e,"autoSize",{get:function(){return w(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,l=n.getBoundingClientRect(),s=l.width,u=l.height,p=a/c,f=s/u;if(m(n,"art-auto-size"),f>p)k(o,"width","".concat(u*p/s*100,"%")),k(o,"height","100%");else{var d=s/p/u*100;k(o,"width","100%"),k(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else b(n,"art-auto-size"),k(o,"width",null),k(o,"height",null),t.emit("autoSize")}})}(r,this),function(t,e){N(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){N(e,t,{get:function(){return e.rect[t]}})})),N(e,"x",{get:function(){return e.left+window.pageXOffset}}),N(e,"y",{get:function(){return e.top+window.pageYOffset}})}(r,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;N(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];M(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),N(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(r,this),function(t,e){var r=t.template.$undercover;N(e,"light",{get:function(){return"none"!==P(r,"display",!1)},set:function(e){k(r,"display",e?"block":"none"),t.emit("light",e)}})}(r,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,l=a.$miniClose,s=a.$miniTitle,u=a.$miniHeader,p="",f=!1,d=0,h=0,y=0,v=0;i(u,"mousedown",(function(t){f=!0,d=t.pageX,h=t.pageY,y=e.left,v=e.top})),i(document,"mousemove",(function(t){if(f){m(c,"art-is-dragging");var e=v+t.pageY-h,r=y+t.pageX-d;k(c,"top","".concat(e,"px")),k(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){f=!1,b(c,"art-is-dragging")})),i(l,"click",(function(){e.mini=!1,f=!1,b(c,"art-is-dragging")})),x(s,n.title||r.get("Mini player")),N(e,"mini",{get:function(){return w(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,p=c.style.cssText,m(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)k(c,"top","".concat(i,"px")),k(c,"left","".concat(a,"px")),$(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var l=document.body,s=l.clientHeight-e.height-50,f=l.clientWidth-e.width-50;o.set("top",s),o.set("left",f),k(c,"top","".concat(s,"px")),k(c,"left","".concat(f,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=p,b(c,"art-mini"),k(c,"top",null),k(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),N(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(r,this),function(t,e){var r=[];N(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=J(n[0],0,Math.min(n[1],e.duration)),i=J(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(r,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;N(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(M(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,k(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var l=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},s=0,u=1;switch(r){case-270:s=90,u=l();break;case-180:s=180;break;case-90:s=270,u=l();break;case 90:s=90,u=l();break;case 180:s=180;break;case 270:s=270,u=l()}k(n,"transform","rotate(".concat(s,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),N(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(r,this),function(t,e){var r=t.option,n=t.template.$poster;N(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,k(n,"backgroundImage","url(".concat(t,")"))}})}(r,this),X(r,this)};function kt(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=l(t)););return t}function jt(){return jt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,r){var n=kt(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},jt.apply(this,arguments)}var Pt=function(){function e(r){t(this,e),this.id=0,this.art=r,this.add=this.add.bind(this)}return r(e,[{key:"show",get:function(){return w(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?m(e,r):b(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}},{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);M(!_(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");m(o,"art-".concat(this.name)),m(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):x(this.$parent,o),r.html&&x(o,r.html),r.style&&j(o,r.style),r.tooltip&&R(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&m(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;m(e,"art-control-selector");var a=document.createElement("div");m(a,"art-selector-value"),x(a,t.html),e.innerText="",x(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),l=document.createElement("div");m(l,"art-selector-list"),x(l,c),x(e,l);var s=function(){l.style.left="-".concat(P(l,"width")/2-P(e,"width")/2,"px")};o(e,s),i(e,"click",(function(e){if(w(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,s(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}}]),e}();function St(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Et(t){for(var e=1;e
'),mounted:function(t){var r=!1,o=v(".art-progress-loaded",t),c=v(".art-progress-played",t),l=v(".art-progress-highlight",t),s=v(".art-progress-indicator",t),u=v(".art-progress-tip",t);function p(t,e){"loaded"===t&&k(o,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(s,"left","calc(".concat(100*e,"% - ").concat(P(s,"width")/2,"px)")))}n.forEach((function(t){var e=J(t.time,0,a.duration)/a.duration*100;x(l,''))})),p("loaded",a.loaded),e.on("video:progress",(function(){p("loaded",a.loaded)})),e.on("video:timeupdate",(function(){p("played",a.played)})),e.on("video:ended",(function(){p("played",1)})),i(t,"mousemove",(function(r){k(u,"display","block"),T(r,l)?function(r){var n=Mt(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=Mt(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){k(u,"display","none")})),i(t,"click",(function(t){if(t.target!==s){var r=Mt(e,t),n=r.second;p("played",r.percentage),a.seek=n}})),i(s,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=Mt(e,t),o=n.second,i=n.percentage;m(s,"art-show-indicator"),p("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,b(s,"art-show-indicator"))}))}})}}function qt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Bt(t){for(var e=1;en.clientWidth-l/2?k(t,"left","".concat(n.clientWidth-l,"px")):k(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Yt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Zt(t){for(var e=1;e=3e3&&(r.show=!1,m(c,"art-hide-cursor"),b(c,"art-hover"))})),e.once("ready",(function(){r.add(Ft({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Qt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return te(te({},t),{},{mounted:function(t){var r=e.player,n=x(t,''),o=x(t,'');e.on("loop",(function(e){e?(k(t,"display","block"),k(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),k(o,"left","".concat(e[1]/r.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return At(At({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=x(t,n.play),c=x(t,n.pause);function l(){k(a,"display","flex"),k(c,"display","none")}function s(){k(a,"display","none"),k(c,"display","flex")}R(a,o.get("Play")),R(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?s():l(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){l()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return Ht(Ht({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=x(t,n.volume),l=x(t,n.volumeClose),s=x(t,'
'),u=x(s,'
');function p(t){var e=s.getBoundingClientRect().left;return J(t.pageX-e-6,0,54)/48}function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)k(c,"display","none"),k(l,"display","flex"),k(u,"left","0");else{var e=48*t;k(c,"display","flex"),k(l,"display","none"),k(u,"left","".concat(e,"px"))}}R(c,i.get("Mute")),k(l,"display","none"),e.isMobile&&k(s,"display","none"),f(o.volume),e.on("video:volumechange",(function(){f(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(l,"click",(function(){o.muted=!1})),r(s,"click",(function(t){o.muted=!1,o.volume=p(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=p(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Wt(Wt({},t),{},{mounted:function(t){function r(){var r="".concat(G(e.player.currentTime)," / ").concat(G(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:i.isLive,position:"left",index:30})),r.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return Gt(Gt({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===i.quality.length,position:"right",index:10})),r.add(function(t){return function(e){return Zt(Zt({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;x(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),r.add(function(t){return function(e){return Bt(Bt({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;x(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){R(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),r.add(function(t){return function(e){return Ut(Ut({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;x(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){R(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!i.setting,position:"right",index:40})),r.add(function(t){return function(e){return Dt(Dt({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){R(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!i.pip,position:"right",index:50})),r.add(function(t){return function(e){return $t($t({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){R(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),r.add(function(t){return function(e){return Et(Et({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){R(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){r.add(t)}))})),r}return r(o,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,r=this.art.template,n=r.$progress,i=r.$controlsLeft,a=r.$controlsRight;switch(e.position){case"top":this.$parent=n;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:M(!1,"Control option.position must one of 'top', 'left', 'right'")}jt(l(o.prototype),"add",this).call(this,e)}}]),o}(Pt);function ne(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function oe(t){for(var e=1;e0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=g("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&E(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return ae(ae({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=g("span",t).find((function(t){return t.dataset.ratio===e}));r&&E(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return le(le({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return ue(ue({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return fe(fe({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!i.light,name:"light",index:50})),o.add(function(t){return function(e){return he(he({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),i.contextmenu.forEach((function(t){o.add(t)})),s(c,"contextmenu",(function(t){t.preventDefault(),o.show=!0;var e=t.clientX,r=t.clientY,n=c.getBoundingClientRect(),i=n.height,a=n.width,s=n.left,u=n.top,p=l.getBoundingClientRect(),f=p.height,d=p.width,h=e-s,y=r-u;e+d>s+a&&(h=a-d),r+f>u+i&&(y=i-f),j(l,{top:"".concat(y,"px"),left:"".concat(h,"px")})})),s(c,"click",(function(t){T(t,l)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(Pt);function ge(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var me=function(e){i(o,e);var n=ge(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).art=e,r.name="info",r.art.template.$info&&r.init(),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=g("[data-video]",n);function l(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){l()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&l()}))}}]),o}(Pt);function be(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var we=function(e){i(o,e);var n=be(o);function o(e){var r;t(this,o),(r=n.call(this,e)).name="subtitle";var i=e.option.subtitle,a=e.template.$subtitle;return j(a,i.style),i.url&&r.init(i.url),i.bilingual&&m(a,"art-bilingual"),r}return r(o,[{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return w(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?m(e,"art-bilingual"):b(e,"art-bilingual")}},{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===a(t)?j(r,t):k(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(K(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,l=c.$subtitle,s=c.$video,u=c.$track;if(!u){var p=document.createElement("track");p.default=!0,p.kind="metadata",s.appendChild(p),this.art.template.$track=p,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||I(t)){case"srt":return q(F(o));case"ass":return q(B(o));case"vtt":return q(o);default:return t}})).then((function(t){return l.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}}]),o}(Pt);var xe=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){T(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){m(r,"art-hover"),t.emit("hover",!0)}),(function(){b(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=t.player,o=Z((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(r,n),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=J((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=J(r.currentTime+60*e,0,r.duration),n.show="".concat(G(c)," / ").concat(G(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(r,n),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=Z((function(){t.emit("view",$(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new L("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new L("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),e}(),Oe=function(){function e(r){var n=this;t(this,e),this.keys={};var o=r.option,i=r.player,a=r.events.proxy;o.hotkey&&r.once("ready",(function(){n.add(27,(function(){i.fullscreenWeb&&(i.fullscreenWeb=!1)})),n.add(32,(function(){i.toggle=!0})),n.add(37,(function(){i.backward=5})),n.add(38,(function(){i.volume+=.1})),n.add(39,(function(){i.forward=5})),n.add(40,(function(){i.volume-=.1})),a(window,"keydown",(function(t){if(r.isFocus){var e=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==o&&"true"!==o){var i=n.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(r)})),r.emit("hotkey",t))}}}))}))}return r(e,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),e}();function ke(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var je=function(e){i(n,e);var r=ke(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="layer",o.$parent=e.template.$layer,e.once("ready",(function(){e.option.layers.forEach((function(t){o.add(t)}))})),o}return n}(Pt);function Pe(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var Se=function(e){i(n,e);var r=Pe(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="loading",x(e.template.$loading,e.icons.loading),o}return n}(Pt),Ee=function(){function e(r){t(this,e),this.art=r,this.time=2e3,this.timer=null}return r(e,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,m(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",b(r,"art-notice-show")}),this.time)}}]),e}();function Re(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var $e=function(e){i(n,e);var r=Re(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="mask",x(e.template.$state,e.icons.state),o}return n}(Pt);function Te(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var De=function e(r){var n=this;t(this,e);var o=function(t){for(var e=1;e',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){N(n,t,{get:function(){var e=document.createElement("i");return m(e,"art-icon"),m(e,"art-icon-".concat(t)),x(e,o[t]),e}})}))};function ze(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ae(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=g("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Le(Le({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=v(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=g("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Be(Be({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=v(".art-setting-range input",t),i=v(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}))})),e.on("blur",(function(){o.show=!1}))),o}return n}(Pt),Ve=function(){function e(){t(this,e),this.name="artplayer_settings",this.settings={}}return r(e,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(t,e){try{var r=Object.assign({},this.get(),et({},t,e));window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[t]=e}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),e}();function He(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=v(".art-setting-range input",e),i=v(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Ne(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(He);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var l=Array.from(o.$track.track.cues),s=e(r,-5,5);l.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+s,0,a.duration),t.endTime=e(c[r].endTime+s,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Ue(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else M(!1,"Playback of this file format is not supported")}}function l(t){var r=x(t,'');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function _e(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=x(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=I(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):M(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Xe(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Qe(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function Ye(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;k(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(O(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){O(r.firstElementChild),o()}),3e3):k(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(x(r,"

".concat(K(t),"

")),k(r,"display","block"),clearTimeout(n),o())}}}var Ze=function(){function e(r){var n=this;t(this,e),this.art=r,this.id=0;var o=r.option;o.subtitle.url&&o.subtitleOffset&&this.add(Ne),!o.isLive&&o.miniProgressBar&&this.add(Xe),o.localVideo&&this.add(Ue),o.localSubtitle&&this.add(_e),o.networkMonitor&&this.add(Qe),o.log&&this.add(Ye),r.option.plugins.forEach((function(t){n.add(t)}))}return r(e,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return M(!_(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),N(this,r,{value:e}),this}}]),e}(),Je=function e(r){t(this,e);var n=r.option,o=r.events.proxy,i=r.template.$video;ft.events.forEach((function(t){o(i,t,(function(t){r.emit("video:".concat(t.type),t)}))})),Object.keys(n.moreVideoAttr).forEach((function(t){i[t]=n.moreVideoAttr[t]})),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=J(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),i.controls=!0;var a=n.type||I(n.url),c=n.customType[a];a&&c?(c(i,n.url,r),r.emit("customType",a)):(i.src=n.url,r.emit("url",i.src))};function Ge(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var Ke=0,tr=[],er=function(e){i(a,e);var o=Ge(a);function a(e){var r;return t(this,a),(r=o.call(this)).option=u(Q(a.option,e),pt),r.isFocus=!1,r.isDestroy=!1,r.userAgent=f,r.isMobile=d,r.isWechat=y,r.whitelist=new dt(n(r)),r.template=new ht(n(r)),r.events=new xe(n(r)),r.whitelist.state?(r.storage=new Ve(n(r)),r.icons=new De(n(r)),r.i18n=new gt(n(r)),r.notice=new Ee(n(r)),r.player=new Ot(n(r)),r.layers=new je(n(r)),r.controls=new re(n(r)),r.contextmenu=new ve(n(r)),r.subtitle=new we(n(r)),r.info=new me(n(r)),r.loading=new Se(n(r)),r.hotkey=new Oe(n(r)),r.mask=new $e(n(r)),r.setting=new We(n(r)),r.plugins=new Ze(n(r))):r.mobile=new Je(n(r)),Ke+=1,r.id=Ke,tr.push(n(r)),r}return r(a,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),tr.splice(tr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return tr}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return ft}},{key:"utils",get:function(){return tt}},{key:"scheme",get:function(){return pt}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return ht.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),a}(p);return console.log("%c ArtPlayer %c 3.5.31 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),er})); diff --git a/docs/document/README.md b/docs/document_v3/README.md similarity index 100% rename from docs/document/README.md rename to docs/document_v3/README.md diff --git a/docs/document/_sidebar.md b/docs/document_v3/_sidebar.md similarity index 100% rename from docs/document/_sidebar.md rename to docs/document_v3/_sidebar.md diff --git a/docs/document/class.md b/docs/document_v3/class.md similarity index 100% rename from docs/document/class.md rename to docs/document_v3/class.md diff --git a/docs/document/events.md b/docs/document_v3/events.md similarity index 100% rename from docs/document/events.md rename to docs/document_v3/events.md diff --git a/docs/document/favicon.ico b/docs/document_v3/favicon.ico similarity index 100% rename from docs/document/favicon.ico rename to docs/document_v3/favicon.ico diff --git a/docs/document/index.html b/docs/document_v3/index.html similarity index 100% rename from docs/document/index.html rename to docs/document_v3/index.html diff --git a/docs/document/libraries.md b/docs/document_v3/libraries.md similarity index 100% rename from docs/document/libraries.md rename to docs/document_v3/libraries.md diff --git a/docs/document/options.md b/docs/document_v3/options.md similarity index 100% rename from docs/document/options.md rename to docs/document_v3/options.md diff --git a/docs/document/properties.md b/docs/document_v3/properties.md similarity index 100% rename from docs/document/properties.md rename to docs/document_v3/properties.md diff --git a/docs/document/question.md b/docs/document_v3/question.md similarity index 100% rename from docs/document/question.md rename to docs/document_v3/question.md diff --git a/docs/uncompiled/artplayer.js b/docs/uncompiled/artplayer.js index d7a0873b7..efea4be49 100644 --- a/docs/uncompiled/artplayer.js +++ b/docs/uncompiled/artplayer.js @@ -2,7 +2,7 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Artplayer = factory()); -}(this, (function () { 'use strict'; +})(this, (function () { 'use strict'; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { @@ -10,8 +10,6 @@ } } - var classCallCheck = _classCallCheck; - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -28,8 +26,6 @@ return Constructor; } - var createClass = _createClass; - function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -38,17 +34,8 @@ return self; } - var assertThisInitialized = _assertThisInitialized; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var setPrototypeOf = createCommonjsModule(function (module) { function _setPrototypeOf(o, p) { - module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; @@ -56,9 +43,6 @@ return _setPrototypeOf(o, p); } - module.exports = _setPrototypeOf; - }); - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); @@ -71,21 +55,18 @@ configurable: true } }); - if (superClass) setPrototypeOf(subClass, superClass); + if (superClass) _setPrototypeOf(subClass, superClass); } - var inherits = _inherits; - - var _typeof_1 = createCommonjsModule(function (module) { function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - module.exports = _typeof = function _typeof(obj) { + _typeof = function _typeof(obj) { return typeof obj; }; } else { - module.exports = _typeof = function _typeof(obj) { + _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } @@ -93,30 +74,23 @@ return _typeof(obj); } - module.exports = _typeof; - }); - function _possibleConstructorReturn(self, call) { - if (call && (_typeof_1(call) === "object" || typeof call === "function")) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); } - return assertThisInitialized(self); + return _assertThisInitialized(self); } - var possibleConstructorReturn = _possibleConstructorReturn; - - var getPrototypeOf = createCommonjsModule(function (module) { function _getPrototypeOf(o) { - module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - module.exports = _getPrototypeOf; - }); - function styleInject(css, ref) { if ( ref === void 0 ) ref = {}; var insertAt = ref.insertAt; @@ -144,19 +118,25 @@ } } - var css_248z = ".art-undercover{background:#000;position:fixed;top:0;left:0;display:none;height:100%;width:100%;opacity:.9;z-index:10}.art-video-player{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;margin:0 auto;z-index:20;width:100%;height:100%;outline:0;zoom:1;font-family:Roboto,Arial,Helvetica,sans-serif;color:#eee;background-color:#000;text-align:left;direction:ltr;font-size:14px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none}.art-video-player *{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1.5}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,.7)!important}}.art-video-player .art-video{z-index:10;background-color:#000;cursor:pointer}.art-video-player .art-poster,.art-video-player .art-video{position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%}.art-video-player .art-poster{z-index:11;background-position:50%;background-repeat:no-repeat;background-size:cover;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.art-video-player .art-subtitle{display:none;position:absolute;z-index:20;bottom:10px;width:100%;padding:0 20px;text-align:center;color:#fff;font-size:20px;pointer-events:none;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.art-video-player .art-subtitle p{word-break:break-all;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;margin:5px 0 0;line-height:1.2}.art-video-player .art-bilingual p:nth-child(n+2){-webkit-transform:scale(.6);transform:scale(.6);-webkit-transform-origin:center top;transform-origin:center top}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30}.art-video-player .art-danmuku,.art-video-player .art-layers{position:absolute;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.art-video-player .art-layers{display:none;z-index:40}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{display:none;z-index:50;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.art-video-player .art-mask,.art-video-player .art-mask .art-state{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.art-video-player .art-mask .art-state{right:30px;bottom:55px;width:60px;height:60px;opacity:.6}.art-video-player.art-mask-show .art-mask,.art-video-player .art-mask .art-state{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-loading{display:none;position:absolute;z-index:70;left:0;top:0;right:0;bottom:0;width:100%;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:none}.art-video-player.art-loading-show .art-loading{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-bottom{position:absolute;z-index:60;left:0;right:0;bottom:0;height:100px;padding:55px 10px 0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;pointer-events:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.art-video-player .art-bottom .art-progress{position:relative;pointer-events:auto}.art-video-player .art-bottom .art-progress .art-control-progress{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:4px;cursor:pointer}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{position:relative;height:50%;width:100%;background:hsla(0,0%,100%,.2)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:0;background:hsla(0,0%,100%,.4)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;height:100%;width:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;height:100%;pointer-events:none}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:100%;background:#fff;pointer-events:auto}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{display:none;position:absolute;z-index:40;top:-5px;left:-6.5px;width:13px;height:13px;border-radius:50%}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{display:none;position:absolute;z-index:50;top:-25px;left:0;height:20px;padding:0 5px;line-height:20px;color:#fff;font-size:12px;text-align:center;background:rgba(0,0,0,.7);border-radius:3px;font-weight:700;white-space:nowrap}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-indicator,.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-tip{display:block}.art-video-player .art-bottom .art-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.art-video-player .art-bottom .art-progress .art-control-loop{display:none;position:absolute;width:100%;height:100%;left:0;top:0;right:0;bottom:0;pointer-events:none}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{position:absolute;left:0;top:-2px;width:2px;height:8px;background:hsla(0,0%,100%,.75)}.art-video-player .art-bottom .art-controls{position:relative;pointer-events:auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:40px;padding:5px 0}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-bottom .art-controls .art-control{opacity:.9;font-size:12px;height:36px;min-width:36px;line-height:36px;text-align:center;cursor:pointer;white-space:nowrap}.art-video-player .art-bottom .art-controls .art-control .art-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;float:left;height:36px;width:36px}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{position:relative;float:left;width:0;height:100%;-webkit-transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{position:absolute;top:50%;left:0;width:12px;height:12px;border-radius:12px;margin-top:-6px;background:#fff}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{left:-54px;background:#fff}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{left:6px;background:hsla(0,0%,100%,.2)}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{content:\"\";position:absolute;display:block;top:50%;height:3px;margin-top:-2px;width:60px}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{position:relative;z-index:30}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{display:none;position:absolute;bottom:35px;width:100px;padding:5px 0;text-align:center;color:#fff;background:rgba(0,0,0,.8);border-radius:3px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5)}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-destroy .art-progress-tip,.art-video-player.art-error .art-progress-indicator,.art-video-player.art-error .art-progress-tip{display:none!important}.art-video-player .art-notice{display:none;font-size:14px;position:absolute;z-index:80;left:0;top:0;padding:10px;width:100%;pointer-events:none}.art-video-player .art-notice .art-notice-inner{display:inline-block;padding:5px 10px;color:#fff;background:rgba(0,0,0,.6);border-radius:3px}.art-video-player.art-notice-show .art-notice{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-contextmenus{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:120;left:0;top:0;min-width:200px;padding:5px 0;background:rgba(0,0,0,.9);border-radius:3px}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;font-size:12px;display:block;color:#fff;padding:10px 15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.1)}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{display:inline-block;padding:0 7px}.art-video-player .art-contextmenus .art-contextmenu span.art-current,.art-video-player .art-contextmenus .art-contextmenu span:hover{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus,.art-video-player .art-settings{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-settings{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute;z-index:90;left:0;top:0;height:100%;width:100%;opacity:0;visibility:hidden;pointer-events:none;overflow:hidden}.art-video-player .art-settings .art-setting-inner{position:absolute;top:0;right:-300px;bottom:0;width:300px;height:100%;font-size:12px;background:rgba(0,0,0,.9);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;overflow:auto}.art-video-player .art-settings .art-setting-inner .art-setting-body{overflow-y:auto;width:100%;height:100%}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:10px 15px}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting .art-setting-header{margin-bottom:5px}.art-video-player .art-settings .art-setting-radio{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-settings .art-setting-radio .art-radio-item{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 2px}.art-video-player .art-settings .art-setting-radio .art-radio-item button{height:22px;width:100%;border:none;outline:none;color:#fff;background:hsla(0,0%,100%,.2);border-radius:2px}.art-video-player .art-settings .art-setting-radio .art-radio-item.current button,.art-video-player .art-settings .art-setting-radio .art-radio-item button:active{background-color:#00a1d6}.art-video-player .art-settings .art-setting-range input{width:100%;height:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:hsla(0,0%,100%,.5)}.art-video-player .art-settings .art-setting-checkbox{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.art-video-player .art-settings .art-setting-checkbox input{height:14px;width:14px;margin-right:5px}.art-video-player .art-settings .art-setting-upload{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-settings .art-setting-upload .art-upload-btn{width:80px;height:22px;line-height:22px;border:none;outline:none;color:#fff;background:hsla(0,0%,100%,.2);border-radius:2px;text-align:center}.art-video-player .art-settings .art-setting-upload .art-upload-value{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:22px;line-height:22px;padding-left:10px}.art-video-player.art-setting-show .art-settings{opacity:1;visibility:visible;pointer-events:auto}.art-video-player.art-setting-show .art-settings .art-setting-inner{right:0}.art-video-player .art-info{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;left:10px;top:10px;z-index:100;width:350px;padding:10px;color:#fff;font-size:12px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.9)}.art-video-player .art-info .art-info-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:5px}.art-video-player .art-info .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-item .art-info-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:5px}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{position:absolute;top:5px;right:5px;cursor:pointer}.art-video-player.art-info-show .art-info{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:fill;object-fit:fill}.art-video-player.art-fullscreen-web{position:fixed;z-index:9999;width:100%!important;height:100%!important;left:0;top:0;right:0;bottom:0}.art-fullscreen-rotate{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0;background:#000}.art-video-player .art-mini-header{display:none;position:absolute;z-index:110;left:0;top:0;right:0;height:35px;line-height:35px;color:#fff;background:rgba(0,0,0,.5);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;opacity:0;visibility:hidden;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.art-video-player .art-mini-header .art-mini-title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:move}.art-video-player .art-mini-header .art-mini-close{width:35px;text-align:center;font-size:22px;cursor:pointer}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{position:fixed;z-index:9999;width:400px;height:225px;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2)}.art-video-player.art-mini .art-mini-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-setting,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.art-video-player[data-flip=horizontal] .art-video{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.art-video-player .art-layers .art-layer-log{display:none;position:absolute;left:10px;bottom:10px;width:120px;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.5);background-color:rgba(0,0,0,.5);border-radius:3px;padding:5px;font-size:13px;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.art-video-player .art-layers .art-layer-log p{margin-bottom:0;word-break:break-all}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{display:none;position:absolute;bottom:35px;width:100px;padding:5px 0;text-align:center;color:#fff;background:rgba(0,0,0,.8);border-radius:3px}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5)}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-control-selector:hover .art-selector-list{display:block}:root{--balloon-color:rgba(16,16,16,0.95);--balloon-font-size:12px;--balloon-move:4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:#fff;content:attr(aria-label);padding:.5em 1em;white-space:nowrap;line-height:1.2}[aria-label][data-balloon-pos]:after,[aria-label][data-balloon-pos]:before{opacity:0;pointer-events:none;-webkit-transition:all .18s ease-out .18s;transition:all .18s ease-out .18s;position:absolute;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top:5px solid var(--balloon-color);content:\"\"}[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos]:hover:before{opacity:1;pointer-events:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,var(--balloon-move));transform:translate(-50%,var(--balloon-move));-webkit-transform-origin:top;transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before{-webkit-transform:translate(-50%);transform:translate(-50%)}\n/*# sourceMappingURL=data:application/json;base64,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Q1osV0FBWSxDQUNaLGFBQWMsQ0FDZCxpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLHlCQUE4QixDQUM5QixpQkFBb0IsQ0FDcEIsOEVBQ0UsV0FBWSxDQUNaLGdCQUFpQixDQUNqQixlQUFnQixDQUNoQixzQkFBdUIsQ0FDdkIsa0JBQW1CLENBQ25CLGtDQUF5QyxDQUN6QyxvRkFDRSxtQ0FBNEMsQ0FDbEQsaUVBQ0UsYUFBZ0IsQ0FFcEIsTUFDRSxtQ0FBdUMsQ0FDdkMsd0JBQXlCLENBQ3pCLGtCQUFxQixDQUV2QixxQ0FDRSxnQkFBbUIsQ0FFckIsK0JBQ0UsaUJBQWtCLENBQ2xCLGNBQWlCLENBQ2pCLHFDQUlFLGFBQWMsQ0FDZCx3SEFBd0ksQ0FDeEksZUFBbUIsQ0FDbkIsaUJBQWtCLENBQ2xCLGdCQUFpQixDQUNqQixrQ0FBbUMsQ0FDbkMsK0JBQWdDLENBQ2hDLGlCQUFrQixDQUNsQixVQUFXLENBQ1gsd0JBQXlCLENBQ3pCLGdCQUFrQixDQUVsQixrQkFBbUIsQ0FDbkIsZUFDYSxDQUNmLDJFQWxCRSxTQUFVLENBQ1YsbUJBQW9CLENBQ3BCLHlDQUFvQyxDQUFwQyxpQ0FBb0MsQ0FZcEMsaUJBQWtCLENBR2xCLFVBV2EsQ0FWZixzQ0FDRSxPQUFRLENBQ1IsUUFBUyxDQUVULDRCQUFzQyxDQUF0Qyx5Q0FBc0MsQ0FJdEMsVUFFYSxDQUNmLHVGQUNFLFNBQVUsQ0FDVixtQkFBc0IsQ0FDeEIsMERBR0Usa0JBRXVCLENBQ3pCLHFIQUxFLFdBQVksQ0FDWixRQUFTLENBRVQscURBQStDLENBQS9DLDZDQUErQyxDQUMvQyw0QkFBcUIsQ0FBckIsb0JBS3VCLENBR3pCLGlJQUNFLGlDQUE2QixDQUE3Qix5QkFBK0IiLCJmaWxlIjoiaW5kZXguc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdW5kZXJjb3ZlciB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAwLjk7XG4gIHotaW5kZXg6IDEwOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgei1pbmRleDogMjA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG91dGxpbmU6IDA7XG4gIHpvb206IDE7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjZWVlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXJlY3Rpb246IGx0cjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyICoge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDVweDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWljb24gc3ZnIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICBAc3VwcG9ydHMgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBpbml0aWFsKSBvciAoYmFja2Ryb3AtZmlsdGVyOiBpbml0aWFsKSB7XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1iYWNrZHJvcC1maWx0ZXIge1xuICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCk7XG4gICAgICBiYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNykgIWltcG9ydGFudDsgfSB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXBvc3RlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTE7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc3VidGl0bGUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDIwO1xuICBib3R0b206IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwLjVweCAwLjVweCAwLjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zdWJ0aXRsZSBwIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICBtYXJnaW46IDVweCAwIDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJpbGluZ3VhbCBwOm50aC1jaGlsZChuICsgMikge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LXN1YnRpdGxlLXNob3cgLmFydC1zdWJ0aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250cm9sLXNob3cgLmFydC1zdWJ0aXRsZSB7XG4gIGJvdHRvbTogNTBweDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWRhbm11a3Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDMwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA0MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxheWVycyAuYXJ0LWxheWVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbGF5ZXItc2hvdyAuYXJ0LWxheWVycyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDUwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayAuYXJ0LXN0YXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAzMHB4O1xuICAgIGJvdHRvbTogNTVweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1tYXNrLXNob3cgLmFydC1tYXNrIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxvYWRpbmcge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDcwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbG9hZGluZy1zaG93IC5hcnQtbG9hZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDYwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IDEwMHB4O1xuICBwYWRkaW5nOiA1NXB4IDEwcHggMDtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBREdDQVlBQUFBVCtPcUZBQUFBZGtsRVFWUW96NDJRUVE3QUlBZ0VGL1QvRCtrYnEvUldBbG5ReXlhekE0YW9BQjRGc0JTQS9iRmp1RjFFT0w3VmJySXJCdXVzbXJ0NFpaT1JmYjZlaGJXZG5SSEVJaUlUYUVVS2E1RUpxVWFrUlNhRVlCSlNDWTJkRXN0UVk3QXV4YWh3WEZydlptV2wycmg0SlowN3o5ZEx0ZXNmTmo1cTBGVTNBNU9iYndBQUFBQkpSVTVFcmtKZ2dnPT0pIHJlcGVhdC14IGJvdHRvbTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDRweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1sb2FkZWQge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1wbGF5ZWQge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAyMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAwOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWhpZ2hsaWdodCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1oaWdobGlnaHQgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDdweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3Ige1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDQwO1xuICAgICAgICAgIHRvcDogLTVweDtcbiAgICAgICAgICBsZWZ0OiAtNi41cHg7XG4gICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWluZGljYXRvci5hcnQtc2hvdy1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtdGlwIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgICB0b3A6IC0yNXB4O1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzczpob3ZlciAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3M6aG92ZXIgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLFxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzczpob3ZlciAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy10aXAge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtdGh1bWJuYWlscyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiA4cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1sb29wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1sb29wIC5hcnQtbG9vcC1wb2ludCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogNXB4IDA7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbHMtbGVmdCxcbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbHMtcmlnaHQge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sIHtcbiAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIG1pbi13aWR0aDogMzZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wgLmFydC1pY29uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIHdpZHRoOiAzNnB4OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbDpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1vbmx5VGV4dCB7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRyYW5zaXRpb246IG1hcmdpbiAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpLCB3aWR0aCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjpiZWZvcmUge1xuICAgICAgICAgIGxlZnQ6IC01NHB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjpiZWZvcmUsIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgICAgd2lkdGg6IDYwcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWU6aG92ZXIgLmFydC12b2x1bWUtcGFuZWwge1xuICAgICAgd2lkdGg6IDYwcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDMwOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IC5hcnQtcXVhbGl0eXMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMzVweDtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSAuYXJ0LXF1YWxpdHlzIC5hcnQtcXVhbGl0eS1pdGVtIHtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAgICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkgLmFydC1xdWFsaXR5cyAuYXJ0LXF1YWxpdHktaXRlbTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHk6aG92ZXIgLmFydC1xdWFsaXR5cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250cm9sLXNob3cgLmFydC1ib3R0b20sIC5hcnQtdmlkZW8tcGxheWVyLmFydC1ob3ZlciAuYXJ0LWJvdHRvbSB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWVycm9yIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLFxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWVycm9yIC5hcnQtcHJvZ3Jlc3MtdGlwLCAuYXJ0LXZpZGVvLXBsYXllci5hcnQtZGVzdHJveSAuYXJ0LXByb2dyZXNzLWluZGljYXRvcixcbi5hcnQtdmlkZW8tcGxheWVyLmFydC1kZXN0cm95IC5hcnQtcHJvZ3Jlc3MtdGlwIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbm90aWNlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDgwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW5vdGljZSAuYXJ0LW5vdGljZS1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LW5vdGljZS1zaG93IC5hcnQtbm90aWNlIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTIwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCA3cHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgc3Bhbjpob3ZlciwgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSBzcGFuLmFydC1jdXJyZW50IHtcbiAgICAgICAgY29sb3I6ICMwMGM5ZmY7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnU6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250ZXh0bWVudS1zaG93IC5hcnQtY29udGV4dG1lbnVzIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogOTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTMwMHB4O1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgb3ZlcmZsb3c6IGF1dG87IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciAuYXJ0LXNldHRpbmctYm9keSB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IC5hcnQtc2V0dGluZyB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciAuYXJ0LXNldHRpbmctYm9keSAuYXJ0LXNldHRpbmcgLmFydC1zZXR0aW5nLWhlYWRlciB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8gLmFydC1yYWRpby1pdGVtIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwYWRkaW5nOiAwIDJweDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8gLmFydC1yYWRpby1pdGVtIGJ1dHRvbiB7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIC5hcnQtcmFkaW8taXRlbSBidXR0b246YWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhMWQ2OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0uY3VycmVudCBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhMWQ2OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhbmdlIGlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1jaGVja2JveCBpbnB1dCB7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICB3aWR0aDogMTRweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXVwbG9hZCB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXVwbG9hZCAuYXJ0LXVwbG9hZC1idG4ge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXVwbG9hZCAuYXJ0LXVwbG9hZC12YWx1ZSB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1zZXR0aW5nLXNob3cgLmFydC1zZXR0aW5ncyB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1zZXR0aW5nLXNob3cgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctaW5uZXIge1xuICAgIHJpZ2h0OiAwOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiAxMHB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAzNTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IE5vdG8gU2FucyBDSksgU0MgRGVtaUxpZ2h0LCBSb2JvdG8sIFNlZ29lIFVJLCBUYWhvbWEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbSAuYXJ0LWluZm8tdGl0bGUge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWl0ZW0gLmFydC1pbmZvLWNvbnRlbnQge1xuICAgICAgZmxleDogMTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNXB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1pbmZvLXNob3cgLmFydC1pbmZvIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtaGlkZS1jdXJzb3IgKiB7XG4gIGN1cnNvcjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtYXNwZWN0LXJhdGlvXSB2aWRlbyB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBvYmplY3QtZml0OiBmaWxsOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1mdWxsc2NyZWVuLXdlYiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5OTtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDsgfVxuXG4uYXJ0LWZ1bGxzY3JlZW4tcm90YXRlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6ICMwMDA7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1taW5pLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1taW5pLWhlYWRlciAuYXJ0LW1pbmktdGl0bGUge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IG1vdmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1taW5pLWhlYWRlciAuYXJ0LW1pbmktY2xvc2Uge1xuICAgIHdpZHRoOiAzNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1pcy1kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNzsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5OTtcbiAgd2lkdGg6IDQwMHB4O1xuICBoZWlnaHQ6IDIyNXB4O1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDNweCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1taW5pLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaS5hcnQtaG92ZXIgLmFydC1taW5pLWhlYWRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtbWFzayAuYXJ0LXN0YXRlIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtY29udGV4dG1lbnUsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtYm90dG9tLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LWRhbm11LFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LWluZm8sXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtbGF5ZXJzLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LW5vdGljZSxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1zZXR0aW5nLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LXN1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFydC1hdXRvLXNpemUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllcltkYXRhLWZsaXA9XCJob3Jpem9udGFsXCJdIC5hcnQtdmlkZW8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7IH1cblxuLmFydC12aWRlby1wbGF5ZXJbZGF0YS1mbGlwPVwidmVydGljYWxcIl0gLmFydC12aWRlbyB7XG4gIHRyYW5zZm9ybTogc2NhbGVZKC0xKTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxheWVycyAuYXJ0LWxheWVyLWxvZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgYm90dG9tOiAxMHB4O1xuICB3aWR0aDogMTIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIC5hcnQtbGF5ZXItbG9nIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3RvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3IgLmFydC1zZWxlY3Rvci1saXN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDM1cHg7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250cm9sLXNlbGVjdG9yIC5hcnQtc2VsZWN0b3ItbGlzdCAuYXJ0LXNlbGVjdG9yLWl0ZW0ge1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3IgLmFydC1zZWxlY3Rvci1saXN0IC5hcnQtc2VsZWN0b3ItaXRlbTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3I6aG92ZXIgLmFydC1zZWxlY3Rvci1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG46cm9vdCB7XG4gIC0tYmFsbG9vbi1jb2xvcjogcmdiYSgxNiwgMTYsIDE2LCAwLjk1KTtcbiAgLS1iYWxsb29uLWZvbnQtc2l6ZTogMTJweDtcbiAgLS1iYWxsb29uLW1vdmU6IDRweDsgfVxuXG5idXR0b25bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIHRleHQtaW5kZW50OiAwO1xuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1iYWxsb29uLWZvbnQtc2l6ZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmFsbG9vbi1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGNvbnRlbnQ6IGF0dHIoYXJpYS1sYWJlbCk7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgei1pbmRleDogMTA7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdOmJlZm9yZSB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWJhbGxvb24tY29sb3IpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YmVmb3JlLCBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YWZ0ZXIge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCB2YXIoLS1iYWxsb29uLW1vdmUpKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YmVmb3JlIHtcbiAgICBib3R0b206IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIHZhcigtLWJhbGxvb24tbW92ZSkpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpob3ZlcjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106aG92ZXI6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuIl19 */"; + var css_248z = ".art-undercover{background:#000;display:none;height:100%;left:0;opacity:.9;position:fixed;top:0;width:100%;z-index:10}.art-video-player{zoom:1;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-high-contrast-adjust:none;background-color:#000;color:#eee;direction:ltr;display:flex;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;height:100%;line-height:1.3;margin:0 auto;outline:0;position:relative;text-align:left;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:20}.art-video-player *{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{align-items:center;display:inline-flex;justify-content:center;line-height:1.5}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,.7)!important}}.art-video-player .art-video{background-color:#000;cursor:pointer;z-index:10}.art-video-player .art-poster,.art-video-player .art-video{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.art-video-player .art-poster{background-position:50%;background-repeat:no-repeat;background-size:cover;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:11}.art-video-player .art-subtitle{bottom:10px;color:#fff;display:none;font-size:20px;padding:0 20px;pointer-events:none;position:absolute;text-align:center;text-shadow:.5px .5px .5px rgba(0,0,0,.5);width:100%;z-index:20}.art-video-player .art-subtitle p{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;line-height:1.2;margin:5px 0 0;word-break:break-all}.art-video-player .art-bilingual p:nth-child(n+2){transform:scale(.6);transform-origin:center top}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30}.art-video-player .art-danmuku,.art-video-player .art-layers{bottom:0;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%}.art-video-player .art-layers{display:none;z-index:40}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{align-items:center;bottom:0;display:none;height:100%;justify-content:center;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:50}.art-video-player .art-mask .art-state{align-items:center;bottom:55px;display:flex;height:60px;justify-content:center;opacity:.6;position:absolute;right:30px;width:60px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player .art-loading{align-items:center;bottom:0;display:none;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:70}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;bottom:0;height:100px;left:0;opacity:0;padding:55px 10px 0;pointer-events:none;position:absolute;right:0;transition:all .2s ease-in-out;visibility:hidden;z-index:60}.art-video-player .art-bottom .art-progress{pointer-events:auto;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress{align-items:center;cursor:pointer;display:flex;flex-direction:row;height:4px;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{background:hsla(0,0%,100%,.2);height:50%;position:relative;width:100%}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{background:hsla(0,0%,100%,.4);bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:0;z-index:10}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:0;z-index:20}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{bottom:0;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:30}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{background:#fff;display:inline-block;height:100%;left:0;pointer-events:auto;position:absolute;top:0;width:7px}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{border-radius:50%;display:none;height:13px;left:-6.5px;position:absolute;top:-5px;width:13px;z-index:40}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{background:rgba(0,0,0,.7);border-radius:3px;color:#fff;display:none;font-size:12px;font-weight:700;height:20px;left:0;line-height:20px;padding:0 5px;position:absolute;text-align:center;top:-25px;white-space:nowrap;z-index:50}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-indicator,.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-tip{display:block}.art-video-player .art-bottom .art-progress .art-control-thumbnails{background-color:rgba(0,0,0,.7);bottom:8px;display:none;left:0;pointer-events:none;position:absolute}.art-video-player .art-bottom .art-progress .art-control-loop{bottom:0;display:none;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{background:hsla(0,0%,100%,.75);height:8px;left:0;position:absolute;top:-2px;width:2px}.art-video-player .art-bottom .art-controls{align-items:center;display:flex;height:40px;justify-content:space-between;padding:5px 0;pointer-events:auto;position:relative}.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:flex}.art-video-player .art-bottom .art-controls .art-control{cursor:pointer;font-size:12px;height:36px;line-height:36px;min-width:36px;opacity:.9;text-align:center;white-space:nowrap}.art-video-player .art-bottom .art-controls .art-control .art-icon{align-items:center;display:flex;float:left;height:36px;justify-content:center;width:36px}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{float:left;height:100%;overflow:hidden;position:relative;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);width:0}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{background:#fff;border-radius:12px;height:12px;left:0;margin-top:-6px;position:absolute;top:50%;width:12px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{background:#fff;left:-54px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{background:hsla(0,0%,100%,.2);left:6px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{content:\"\";display:block;height:3px;margin-top:-2px;position:absolute;top:50%;width:60px}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{position:relative;z-index:30}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{background:rgba(0,0,0,.8);border-radius:3px;bottom:35px;color:#fff;display:none;padding:5px 0;position:absolute;text-align:center;width:100px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-destroy .art-progress-tip,.art-video-player.art-error .art-progress-indicator,.art-video-player.art-error .art-progress-tip{display:none!important}.art-video-player .art-notice{display:none;font-size:14px;left:0;padding:10px;pointer-events:none;position:absolute;top:0;width:100%;z-index:80}.art-video-player .art-notice .art-notice-inner{background:rgba(0,0,0,.6);border-radius:3px;color:#fff;display:inline-block;padding:5px 10px}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{background:rgba(0,0,0,.9);border-radius:3px;display:none;flex-direction:column;left:0;min-width:200px;padding:5px 0;position:absolute;top:0;z-index:120}.art-video-player .art-contextmenus .art-contextmenu{border-bottom:1px solid hsla(0,0%,100%,.1);color:#fff;cursor:pointer;display:block;font-size:12px;overflow:hidden;padding:10px 15px;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{display:inline-block;padding:0 7px}.art-video-player .art-contextmenus .art-contextmenu span.art-current,.art-video-player .art-contextmenus .art-contextmenu span:hover{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:hsla(0,0%,100%,.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{align-items:center;display:flex;height:100%;justify-content:center;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%;z-index:90}.art-video-player .art-settings .art-setting-inner{background:rgba(0,0,0,.9);bottom:0;font-size:12px;height:100%;overflow:auto;position:absolute;right:-300px;top:0;transition:all .2s ease-in-out;width:300px}.art-video-player .art-settings .art-setting-inner .art-setting-body{height:100%;overflow-y:auto;width:100%}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:10px 15px}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting .art-setting-header{margin-bottom:5px}.art-video-player .art-settings .art-setting-radio{display:flex}.art-video-player .art-settings .art-setting-radio .art-radio-item{flex:1;padding:0 2px}.art-video-player .art-settings .art-setting-radio .art-radio-item button{background:hsla(0,0%,100%,.2);border:none;border-radius:2px;color:#fff;height:22px;outline:none;width:100%}.art-video-player .art-settings .art-setting-radio .art-radio-item.current button,.art-video-player .art-settings .art-setting-radio .art-radio-item button:active{background-color:#00a1d6}.art-video-player .art-settings .art-setting-range input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:hsla(0,0%,100%,.5);height:3px;outline:none;width:100%}.art-video-player .art-settings .art-setting-checkbox{align-items:center;display:flex}.art-video-player .art-settings .art-setting-checkbox input{height:14px;margin-right:5px;width:14px}.art-video-player .art-settings .art-setting-upload{display:flex}.art-video-player .art-settings .art-setting-upload .art-upload-btn{background:hsla(0,0%,100%,.2);border:none;border-radius:2px;color:#fff;height:22px;line-height:22px;outline:none;text-align:center;width:80px}.art-video-player .art-settings .art-setting-upload .art-upload-value{flex:1;height:22px;line-height:22px;overflow:hidden;padding-left:10px;text-overflow:ellipsis;white-space:nowrap}.art-video-player.art-setting-show .art-settings{opacity:1;pointer-events:auto;visibility:visible}.art-video-player.art-setting-show .art-settings .art-setting-inner{right:0}.art-video-player .art-info{-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.9);color:#fff;display:none;flex-direction:column;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;font-size:12px;left:10px;padding:10px;position:absolute;top:10px;width:350px;z-index:100}.art-video-player .art-info .art-info-item{display:flex;margin-bottom:5px}.art-video-player .art-info .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-item .art-info-content{flex:1;overflow:hidden;padding-left:5px;text-overflow:ellipsis;white-space:nowrap}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;right:5px;top:5px}.art-video-player.art-info-show .art-info{display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;-o-object-fit:fill;object-fit:fill}.art-video-player.art-fullscreen-web{bottom:0;height:100%!important;left:0;position:fixed;right:0;top:0;width:100%!important;z-index:9999}.art-fullscreen-rotate{background:#000;bottom:0;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:9999}.art-video-player .art-mini-header{align-items:center;background:rgba(0,0,0,.5);color:#fff;display:none;height:35px;justify-content:space-between;left:0;line-height:35px;opacity:0;position:absolute;right:0;top:0;transition:all .2s ease-in-out;visibility:hidden;z-index:110}.art-video-player .art-mini-header .art-mini-title{cursor:move;flex:1;overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.art-video-player .art-mini-header .art-mini-close{cursor:pointer;font-size:22px;text-align:center;width:35px}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2);height:225px;position:fixed;width:400px;z-index:9999}.art-video-player.art-mini .art-mini-header{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-setting,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{align-items:center;display:flex;justify-content:center}.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-layers .art-layer-log{background-color:rgba(0,0,0,.5);border-radius:3px;bottom:10px;color:#fff;display:none;font-size:13px;left:10px;padding:5px;pointer-events:none;position:absolute;text-shadow:0 0 2px rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:120px}.art-video-player .art-layers .art-layer-log p{margin-bottom:0;word-break:break-all}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{background:rgba(0,0,0,.8);border-radius:3px;bottom:35px;color:#fff;display:none;padding:5px 0;position:absolute;text-align:center;width:100px}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-control-selector:hover .art-selector-list{display:block}:root{--balloon-color:hsla(0,0%,6%,.95);--balloon-font-size:12px;--balloon-move:4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{cursor:pointer;position:relative}[aria-label][data-balloon-pos]:after{background:var(--balloon-color);border-radius:2px;color:#fff;content:attr(aria-label);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:var(--balloon-font-size);font-style:normal;font-weight:400;line-height:1.2;padding:.5em 1em;text-indent:0;text-shadow:none;white-space:nowrap}[aria-label][data-balloon-pos]:after,[aria-label][data-balloon-pos]:before{opacity:0;pointer-events:none;position:absolute;transition:all .18s ease-out .18s;z-index:10}[aria-label][data-balloon-pos]:before{border:5px solid transparent;border-top:5px solid var(--balloon-color);content:\"\";height:0;width:0}[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos]:hover:before{opacity:1;pointer-events:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:before{bottom:100%;left:50%;transform:translate(-50%,var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before{transform:translate(-50%)}\n/*# sourceMappingURL=data:application/json;base64,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QUNFLG1DQUE0QyxDQUNsRCxpRUFDRSxhQUFnQixDQUVwQixNQUNFLGlDQUF1QyxDQUN2Qyx3QkFBeUIsQ0FDekIsa0JBQXFCLENBRXZCLHFDQUNFLGdCQUFtQixDQUVyQiwrQkFFRSxjQUFlLENBRGYsaUJBQ2lCLENBQ2pCLHFDQVVFLCtCQUFnQyxDQUNoQyxpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLHdCQUF5QixDQVJ6Qix3SEFBd0ksQ0FJeEksa0NBQW1DLENBRm5DLGlCQUFrQixDQURsQixlQUFtQixDQVduQixlQUFnQixDQUhoQixnQkFBa0IsQ0FWbEIsYUFBYyxDQUlkLGdCQUFpQixDQVFqQixrQkFFYSxDQUNmLDJFQWxCRSxTQUFVLENBQ1YsbUJBQW9CLENBYXBCLGlCQUFrQixDQVpsQixpQ0FBb0MsQ0FlcEMsVUFXYSxDQVZmLHNDQUlFLDRCQUFzQyxDQUF0Qyx5Q0FBc0MsQ0FJdEMsVUFBVyxDQU5YLFFBQVMsQ0FEVCxPQVNhLENBQ2YsdUZBQ0UsU0FBVSxDQUNWLG1CQUFzQixDQUN4QiwwREFHRSxrQkFFdUIsQ0FDekIscUhBTEUsV0FBWSxDQUNaLFFBQVMsQ0FFVCw2Q0FBK0MsQ0FDL0Msb0JBS3VCLENBR3pCLGlJQUNFLHlCQUErQiIsImZpbGUiOiJpbmRleC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC11bmRlcmNvdmVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDAuOTtcbiAgei1pbmRleDogMTA7IH1cblxuLmFydC12aWRlby1wbGF5ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB6LWluZGV4OiAyMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3V0bGluZTogMDtcbiAgem9vbTogMTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICNlZWU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaWNvbiBzdmcge1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIEBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIG9yIChiYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIHtcbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJhY2tkcm9wLWZpbHRlciB7XG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KSAhaW1wb3J0YW50OyB9IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC12aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtcG9zdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1zdWJ0aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjA7XG4gIGJvdHRvbTogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAuNXB4IDAuNXB4IDAuNXB4IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXN1YnRpdGxlIHAge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogNXB4IDAgMDtcbiAgICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYmlsaW5ndWFsIHA6bnRoLWNoaWxkKG4gKyAyKSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtc3VidGl0bGUtc2hvdyAuYXJ0LXN1YnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWNvbnRyb2wtc2hvdyAuYXJ0LXN1YnRpdGxlIHtcbiAgYm90dG9tOiA1MHB4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtZGFubXVrdSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMzA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1sYXllcnMge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDQwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIC5hcnQtbGF5ZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1sYXllci1zaG93IC5hcnQtbGF5ZXJzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1tYXNrIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1tYXNrIC5hcnQtc3RhdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDMwcHg7XG4gICAgYm90dG9tOiA1NXB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBvcGFjaXR5OiAwLjY7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1hc2stc2hvdyAuYXJ0LW1hc2sge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbG9hZGluZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNzA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1sb2FkaW5nLXNob3cgLmFydC1sb2FkaW5nIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNjA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMTAwcHg7XG4gIHBhZGRpbmc6IDU1cHggMTBweCAwO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFER0NBWUFBQUFUK09xRkFBQUFka2xFUVZRb3o0MlFRUTdBSUFnRUYvVC9EK2ticS9SV0FsblF5eWF6QTRhb0FCNEZzQlNBL2JGanVGMUVPTDdWYnJJckJ1dXNtcnQ0WlpPUmZiNmVoYldkblJIRUlpSVRhRVVLYTVFSnFVYWtSU2FFWUJKU0NZMmRFc3RRWTdBdXhhaHdYRnJ2Wm1XbDJyaDRKWjA3ejlkTHRlc2ZOajVxMEZVM0E1T2Jid0FBQUFCSlJVNUVya0pnZ2c9PSkgcmVwZWF0LXggYm90dG9tOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogNHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWxvYWRlZCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLXBsYXllZCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDA7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaGlnaGxpZ2h0IHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMzA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWhpZ2hsaWdodCBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWluZGljYXRvciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogNDA7XG4gICAgICAgICAgdG9wOiAtNXB4O1xuICAgICAgICAgIGxlZnQ6IC02LjVweDtcbiAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLmFydC1zaG93LWluZGljYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy10aXAge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICAgIHRvcDogLTI1cHg7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzOmhvdmVyIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzczpob3ZlciAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IsXG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzOmhvdmVyIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLXRpcCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC10aHVtYm5haWxzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDhweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLWxvb3Age1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLWxvb3AgLmFydC1sb29wLXBvaW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA1cHggMDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1sZWZ0LFxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wge1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgbWluLXdpZHRoOiAzNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbCAuYXJ0LWljb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgd2lkdGg6IDM2cHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLW9ubHlUZXh0IHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdHJhbnNpdGlvbjogbWFyZ2luIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSksIHdpZHRoIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogLTU0cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YWZ0ZXIge1xuICAgICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmJlZm9yZSwgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICB3aWR0aDogNjBweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZTpob3ZlciAuYXJ0LXZvbHVtZS1wYW5lbCB7XG4gICAgICB3aWR0aDogNjBweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMzA7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkgLmFydC1xdWFsaXR5cyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAzNXB4O1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IC5hcnQtcXVhbGl0eXMgLmFydC1xdWFsaXR5LWl0ZW0ge1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gICAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSAuYXJ0LXF1YWxpdHlzIC5hcnQtcXVhbGl0eS1pdGVtOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eTpob3ZlciAuYXJ0LXF1YWxpdHlzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWNvbnRyb2wtc2hvdyAuYXJ0LWJvdHRvbSwgLmFydC12aWRlby1wbGF5ZXIuYXJ0LWhvdmVyIC5hcnQtYm90dG9tIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtZXJyb3IgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IsXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtZXJyb3IgLmFydC1wcm9ncmVzcy10aXAsIC5hcnQtdmlkZW8tcGxheWVyLmFydC1kZXN0cm95IC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLFxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWRlc3Ryb3kgLmFydC1wcm9ncmVzcy10aXAge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1ub3RpY2Uge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogODA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbm90aWNlIC5hcnQtbm90aWNlLWlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbm90aWNlLXNob3cgLmFydC1ub3RpY2Uge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMjA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDdweDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSBzcGFuOmhvdmVyLCAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHNwYW4uYXJ0LWN1cnJlbnQge1xuICAgICAgICBjb2xvcjogIzAwYzlmZjsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnU6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWNvbnRleHRtZW51LXNob3cgLmFydC1jb250ZXh0bWVudXMge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtMzAwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICBvdmVyZmxvdzogYXV0bzsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctaW5uZXIgLmFydC1zZXR0aW5nLWJvZHkgLmFydC1zZXR0aW5nIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IC5hcnQtc2V0dGluZyAuYXJ0LXNldHRpbmctaGVhZGVyIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0ge1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDAgMnB4OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0gYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8gLmFydC1yYWRpby1pdGVtIGJ1dHRvbjphY3RpdmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGExZDY7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIC5hcnQtcmFkaW8taXRlbS5jdXJyZW50IGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGExZDY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFuZ2UgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogM3B4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWNoZWNrYm94IGlucHV0IHtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctdXBsb2FkIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctdXBsb2FkIC5hcnQtdXBsb2FkLWJ0biB7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctdXBsb2FkIC5hcnQtdXBsb2FkLXZhbHVlIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LXNldHRpbmctc2hvdyAuYXJ0LXNldHRpbmdzIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LXNldHRpbmctc2hvdyAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciB7XG4gICAgcmlnaHQ6IDA7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICB0b3A6IDEwcHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDM1MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogTm90byBTYW5zIENKSyBTQyBEZW1pTGlnaHQsIFJvYm90bywgU2Vnb2UgVUksIFRhaG9tYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtIC5hcnQtaW5mby10aXRsZSB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbSAuYXJ0LWluZm8tY29udGVudCB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmctbGVmdDogNXB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWluZm8tc2hvdyAuYXJ0LWluZm8ge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1oaWRlLWN1cnNvciAqIHtcbiAgY3Vyc29yOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFydC12aWRlby1wbGF5ZXJbZGF0YS1hc3BlY3QtcmF0aW9dIHZpZGVvIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG9iamVjdC1maXQ6IGZpbGw7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWZ1bGxzY3JlZW4td2ViIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi5hcnQtZnVsbHNjcmVlbi1yb3RhdGUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW1pbmktaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMzVweDtcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW1pbmktaGVhZGVyIC5hcnQtbWluaS10aXRsZSB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogbW92ZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW1pbmktaGVhZGVyIC5hcnQtbWluaS1jbG9zZSB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWlzLWRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC43OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogNDAwcHg7XG4gIGhlaWdodDogMjI1cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgM3B4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LW1pbmktaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pLmFydC1ob3ZlciAuYXJ0LW1pbmktaGVhZGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1tYXNrIC5hcnQtc3RhdGUge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1jb250ZXh0bWVudSxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1ib3R0b20sXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtZGFubXUsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtaW5mbyxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1sYXllcnMsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtbm90aWNlLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LXNldHRpbmcsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtc3VidGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uYXJ0LWF1dG8tc2l6ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtZmxpcD1cImhvcml6b250YWxcIl0gLmFydC12aWRlbyB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllcltkYXRhLWZsaXA9XCJ2ZXJ0aWNhbFwiXSAuYXJ0LXZpZGVvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIC5hcnQtbGF5ZXItbG9nIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBib3R0b206IDEwcHg7XG4gIHdpZHRoOiAxMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1sYXllcnMgLmFydC1sYXllci1sb2cgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250cm9sLXNlbGVjdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3RvciAuYXJ0LXNlbGVjdG9yLWxpc3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzVweDtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3IgLmFydC1zZWxlY3Rvci1saXN0IC5hcnQtc2VsZWN0b3ItaXRlbSB7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3RvciAuYXJ0LXNlbGVjdG9yLWxpc3QgLmFydC1zZWxlY3Rvci1pdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3Rvcjpob3ZlciAuYXJ0LXNlbGVjdG9yLWxpc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbjpyb290IHtcbiAgLS1iYWxsb29uLWNvbG9yOiByZ2JhKDE2LCAxNiwgMTYsIDAuOTUpO1xuICAtLWJhbGxvb24tZm9udC1zaXplOiAxMnB4O1xuICAtLWJhbGxvb24tbW92ZTogNHB4OyB9XG5cbmJ1dHRvblthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cblthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXTphZnRlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xOHMgZWFzZS1vdXQgMC4xOHM7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLWJhbGxvb24tZm9udC1zaXplKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWxsb29uLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY29udGVudDogYXR0cihhcmlhLWxhYmVsKTtcbiAgICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB6LWluZGV4OiAxMDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106YmVmb3JlIHtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYmFsbG9vbi1jb2xvcik7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xOHMgZWFzZS1vdXQgMC4xOHM7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXTpob3ZlcjpiZWZvcmUsIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXTpob3ZlcjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTphZnRlciB7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIHZhcigtLWJhbGxvb24tbW92ZSkpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgdmFyKC0tYmFsbG9vbi1tb3ZlKSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wOyB9XG4gIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXVtkYXRhLWJhbGxvb24tcG9zPSd1cCddOmhvdmVyOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpob3ZlcjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApOyB9XG4iXX0= */"; styleInject(css_248z); - var optionValidator = createCommonjsModule(function (module, exports) { + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + var optionValidator = {exports: {}}; + + (function (module, exports) { !function(r,t){module.exports=t();}(commonjsGlobal,function(){function e(r){return (e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return "undefined";if(null===r)return "null";var t=e(r);if("boolean"===t)return "boolean";if("string"===t)return "string";if("number"===t)return "number";if("symbol"===t)return "symbol";if("function"===t)return function(r){return "GeneratorFunction"===o(r)}(r)?"generatorfunction":"function";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return "array";if(function(r){if(r.constructor&&"function"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return !1}(r))return "buffer";if(function(r){try{if("number"==typeof r.length&&"function"==typeof r.callee)return !0}catch(r){if(-1!==r.message.indexOf("callee"))return !0}return !1}(r))return "arguments";if(function(r){return r instanceof Date||"function"==typeof r.toDateString&&"function"==typeof r.getDate&&"function"==typeof r.setDate}(r))return "date";if(function(r){return r instanceof Error||"string"==typeof r.message&&r.constructor&&"number"==typeof r.constructor.stackTraceLimit}(r))return "error";if(function(r){return r instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global}(r))return "regexp";switch(o(r)){case"Symbol":return "symbol";case"Promise":return "promise";case"WeakMap":return "weakmap";case"WeakSet":return "weakset";case"Map":return "map";case"Set":return "set";case"Int8Array":return "int8array";case"Uint8Array":return "uint8array";case"Uint8ClampedArray":return "uint8clampedarray";case"Int16Array":return "int16array";case"Uint16Array":return "uint16array";case"Int32Array":return "int32array";case"Uint32Array":return "uint32array";case"Float32Array":return "float32array";case"Float64Array":return "float64array"}if(function(r){return "function"==typeof r.throw&&"function"==typeof r.return&&"function"==typeof r.next}(r))return "generator";switch(t=n.call(r)){case"[object Object]":return "object";case"[object Map Iterator]":return "mapiterator";case"[object Set Iterator]":return "setiterator";case"[object String Iterator]":return "stringiterator";case"[object Array Iterator]":return "arrayiterator"}return t.slice(8,-1).toLowerCase().replace(/\s/g,"")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
3.5.30
\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
\xD7
\n
\n
\n
\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
\n
\n
\n
\n
Player version:
\n
3.5.31
\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
\xD7
\n
\n
\n
\n "; } }]); return Template; }(); - var Close = "关闭"; - var Volume = "音量"; - var Play = "播放"; - var Pause = "暂停"; - var Rate = "速度"; - var Mute = "静音"; - var Flip = "翻转"; - var Rotate = "旋转"; - var Horizontal = "水平"; - var Vertical = "垂直"; - var Reconnect = "重新连接"; - var Screenshot = "截图"; - var Default = "默认"; - var Normal = "正常"; - var Open = "打开"; - var Fullscreen = "全屏"; + var Close$1 = "关闭"; + var Volume$1 = "音量"; + var Play$1 = "播放"; + var Pause$1 = "暂停"; + var Rate$1 = "速度"; + var Mute$1 = "静音"; + var Flip$1 = "翻转"; + var Rotate$1 = "旋转"; + var Horizontal$1 = "水平"; + var Vertical$1 = "垂直"; + var Reconnect$1 = "重新连接"; + var Screenshot$1 = "截图"; + var Default$1 = "默认"; + var Normal$1 = "正常"; + var Open$1 = "打开"; + var Fullscreen$1 = "全屏"; var zhCn = { "Video info": "统计信息", - Close: Close, + Close: Close$1, "Light Off": "关灯", "Light On": "开灯", "Video load failed": "加载失败", - Volume: Volume, - Play: Play, - Pause: Pause, - Rate: Rate, - Mute: Mute, - Flip: Flip, - Rotate: Rotate, - Horizontal: Horizontal, - Vertical: Vertical, - Reconnect: Reconnect, + Volume: Volume$1, + Play: Play$1, + Pause: Pause$1, + Rate: Rate$1, + Mute: Mute$1, + Flip: Flip$1, + Rotate: Rotate$1, + Horizontal: Horizontal$1, + Vertical: Vertical$1, + Reconnect: Reconnect$1, "Hide subtitle": "隐藏字幕", "Show subtitle": "显示字幕", "Hide danmu": "隐藏弹幕", "Show danmu": "显示弹幕", "Show setting": "显示设置", "Hide setting": "隐藏设置", - Screenshot: Screenshot, + Screenshot: Screenshot$1, "Play speed": "播放速度", "Aspect ratio": "画面比例", - Default: Default, - Normal: Normal, - Open: Open, + Default: Default$1, + Normal: Normal$1, + Open: Open$1, "Switch video": "切换", "Switch subtitle": "切换字幕", - Fullscreen: Fullscreen, + Fullscreen: Fullscreen$1, "Exit fullscreen": "退出全屏", "Web fullscreen": "网页全屏", "Exit web fullscreen": "退出网页全屏", @@ -1024,53 +979,53 @@ "No subtitles found": "未发现字幕" }; - var Close$1 = "關閉"; - var Volume$1 = "音量"; - var Play$1 = "播放"; - var Pause$1 = "暫停"; - var Rate$1 = "速度"; - var Mute$1 = "靜音"; - var Flip$1 = "翻轉"; - var Rotate$1 = "旋轉"; - var Horizontal$1 = "水平"; - var Vertical$1 = "垂直"; - var Reconnect$1 = "重新連接"; - var Screenshot$1 = "截圖"; - var Default$1 = "默認"; - var Normal$1 = "正常"; - var Open$1 = "打開"; - var Fullscreen$1 = "全屏"; + var Close = "關閉"; + var Volume = "音量"; + var Play = "播放"; + var Pause = "暫停"; + var Rate = "速度"; + var Mute = "靜音"; + var Flip = "翻轉"; + var Rotate = "旋轉"; + var Horizontal = "水平"; + var Vertical = "垂直"; + var Reconnect = "重新連接"; + var Screenshot = "截圖"; + var Default = "默認"; + var Normal = "正常"; + var Open = "打開"; + var Fullscreen = "全屏"; var zhTw = { "Video info": "統計訊息", - Close: Close$1, + Close: Close, "Light Off": "關燈", "Light On": "開燈", "Video load failed": "載入失敗", - Volume: Volume$1, - Play: Play$1, - Pause: Pause$1, - Rate: Rate$1, - Mute: Mute$1, - Flip: Flip$1, - Rotate: Rotate$1, - Horizontal: Horizontal$1, - Vertical: Vertical$1, - Reconnect: Reconnect$1, + Volume: Volume, + Play: Play, + Pause: Pause, + Rate: Rate, + Mute: Mute, + Flip: Flip, + Rotate: Rotate, + Horizontal: Horizontal, + Vertical: Vertical, + Reconnect: Reconnect, "Hide subtitle": "隱藏字幕", "Show subtitle": "顯示字幕", "Hide danmu": "隱藏彈幕", "Show danmu": "顯示彈幕", "Show setting": "顯示设置", "Hide setting": "隱藏设置", - Screenshot: Screenshot$1, + Screenshot: Screenshot, "Play speed": "播放速度", "Aspect ratio": "畫面比例", - Default: Default$1, - Normal: Normal$1, - Open: Open$1, + Default: Default, + Normal: Normal, + Open: Open, "Switch video": "切換", "Switch subtitle": "切換字幕", - Fullscreen: Fullscreen$1, + Fullscreen: Fullscreen, "Exit fullscreen": "退出全屏", "Web fullscreen": "網頁全屏", "Exit web fullscreen": "退出網頁全屏", @@ -1087,7 +1042,7 @@ var I18n = /*#__PURE__*/function () { function I18n(art) { - classCallCheck(this, I18n); + _classCallCheck(this, I18n); this.art = art; this.languages = { @@ -1097,7 +1052,7 @@ this.init(); } - createClass(I18n, [{ + _createClass(I18n, [{ key: "init", value: function init() { var lang = this.art.option.lang.toLowerCase(); @@ -1238,6 +1193,7 @@ reconnectTime += 1; player.url = option.url; notice.show = "".concat(i18n.get('Reconnect'), ": ").concat(reconnectTime); + art.emit('error', reconnectTime); }); } else { art.loading.show = false; @@ -1396,7 +1352,7 @@ }); } - function seekMix(art, player) { + function seekMix$1(art, player) { var notice = art.notice; def(player, 'seek', { set: function set(time) { @@ -1659,16 +1615,19 @@ }); } - var screenfull = createCommonjsModule(function (module) { + var screenfull$1 = {exports: {}}; + /*! * screenfull - * v5.0.2 - 2020-02-13 + * v5.2.0 - 2021-11-03 * (c) Sindre Sorhus; MIT License */ + + (function (module) { (function () { var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {}; - var isCommonjs = module.exports; + var isCommonjs = module.exports; var fn = (function () { var val; @@ -1743,7 +1702,7 @@ }; var screenfull = { - request: function (element) { + request: function (element, options) { return new Promise(function (resolve, reject) { var onFullScreenEntered = function () { this.off('change', onFullScreenEntered); @@ -1754,7 +1713,7 @@ element = element || document.documentElement; - var returnPromise = element[fn.requestFullscreen](); + var returnPromise = element[fn.requestFullscreen](options); if (returnPromise instanceof Promise) { returnPromise.then(onFullScreenEntered).catch(reject); @@ -1782,8 +1741,8 @@ } }.bind(this)); }, - toggle: function (element) { - return this.isFullscreen ? this.exit() : this.request(element); + toggle: function (element, options) { + return this.isFullscreen ? this.exit() : this.request(element, options); }, onchange: function (callback) { this.on('change', callback); @@ -1843,8 +1802,9 @@ window.screenfull = screenfull; } })(); - }); - var screenfull_1 = screenfull.isEnabled; + }(screenfull$1)); + + var screenfull = screenfull$1.exports; var nativeScreenfull = function nativeScreenfull(art, player) { var $player = art.template.$player; @@ -2077,7 +2037,7 @@ }); } - function seekMix$1(art, player) { + function seekMix(art, player) { var $video = art.template.$video; def(player, 'loaded', { get: function get() { @@ -2456,7 +2416,7 @@ } var Player = function Player(art) { - classCallCheck(this, Player); + _classCallCheck(this, Player); urlMix(art, this); eventInit(art, this); @@ -2465,7 +2425,7 @@ playMix(art, this); pauseMix(art, this); toggleMix(art, this); - seekMix(art, this); + seekMix$1(art, this); volumeMix(art, this); currentTimeMix(art, this); durationMix(art, this); @@ -2477,7 +2437,7 @@ fullscreenWebMix(art, this); fullscreenRotateMix(art, this); pipMix(art, this); - seekMix$1(art, this); + seekMix(art, this); playedMix(art, this); playingMix(art, this); resizeMix(art, this); @@ -2493,49 +2453,67 @@ function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = getPrototypeOf(object); + object = _getPrototypeOf(object); if (object === null) break; } return object; } - var superPropBase = _superPropBase; - - var get = createCommonjsModule(function (module) { - function _get(target, property, receiver) { + function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { - module.exports = _get = Reflect.get; + _get = Reflect.get; } else { - module.exports = _get = function _get(target, property, receiver) { - var base = superPropBase(target, property); + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { - return desc.get.call(receiver); + return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } - return _get(target, property, receiver || target); + return _get.apply(this, arguments); } - module.exports = _get; - }); - var Component = /*#__PURE__*/function () { function Component(art) { - classCallCheck(this, Component); + _classCallCheck(this, Component); this.id = 0; this.art = art; this.add = this.add.bind(this); } - createClass(Component, [{ + _createClass(Component, [{ + key: "show", + get: function get() { + return hasClass(this.art.template.$player, "art-".concat(this.name, "-show")); + }, + set: function set(value) { + var $player = this.art.template.$player; + var className = "art-".concat(this.name, "-show"); + + if (value) { + addClass($player, className); + } else { + removeClass($player, className); + } + + this.art.emit(this.name, value); + } + }, { + key: "toggle", + set: function set(value) { + if (value) { + this.show = !this.show; + } + } + }, { key: "add", value: function add(getOption) { var _this = this; @@ -2638,41 +2616,17 @@ } }); } - }, { - key: "show", - get: function get() { - return hasClass(this.art.template.$player, "art-".concat(this.name, "-show")); - }, - set: function set(value) { - var $player = this.art.template.$player; - var className = "art-".concat(this.name, "-show"); - - if (value) { - addClass($player, className); - } else { - removeClass($player, className); - } - - this.art.emit(this.name, value); - } - }, { - key: "toggle", - set: function set(value) { - if (value) { - this.show = !this.show; - } - } }]); return Component; }(); - function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$n(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function fullscreen(option) { + function _objectSpread$n(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$n(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$n(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function fullscreen$1(option) { return function (art) { - return _objectSpread$1(_objectSpread$1({}, option), {}, { + return _objectSpread$n(_objectSpread$n({}, option), {}, { tooltip: art.i18n.get('Fullscreen'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2691,12 +2645,12 @@ }; } - function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$m(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function fullscreenWeb(option) { + function _objectSpread$m(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$m(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$m(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function fullscreenWeb$1(option) { return function (art) { - return _objectSpread$2(_objectSpread$2({}, option), {}, { + return _objectSpread$m(_objectSpread$m({}, option), {}, { tooltip: art.i18n.get('Web fullscreen'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2715,12 +2669,12 @@ }; } - function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function pip(option) { + function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$l(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function pip$1(option) { return function (art) { - return _objectSpread$3(_objectSpread$3({}, option), {}, { + return _objectSpread$l(_objectSpread$l({}, option), {}, { tooltip: art.i18n.get('PIP mode'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2739,12 +2693,12 @@ }; } - function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$k(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$k(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$k(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$k(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function playAndPause(option) { return function (art) { - return _objectSpread$4(_objectSpread$4({}, option), {}, { + return _objectSpread$k(_objectSpread$k({}, option), {}, { mounted: function mounted($control) { var proxy = art.events.proxy, icons = art.icons, @@ -2788,9 +2742,9 @@ }; } - function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$j(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$j(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$j(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$j(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function getPosFromEvent(art, event) { var $progress = art.template.$progress, player = art.player; @@ -2816,7 +2770,7 @@ theme = _art$option.theme, proxy = art.events.proxy, player = art.player; - return _objectSpread$5(_objectSpread$5({}, option), {}, { + return _objectSpread$j(_objectSpread$j({}, option), {}, { html: "\n
\n
\n
\n
\n
\n
\n
\n "), mounted: function mounted($control) { var isDroging = false; @@ -2932,12 +2886,12 @@ }; } - function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$i(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function subtitle(option) { + function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$i(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function subtitle$1(option) { return function (art) { - return _objectSpread$6(_objectSpread$6({}, option), {}, { + return _objectSpread$i(_objectSpread$i({}, option), {}, { tooltip: art.i18n.get('Hide subtitle'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2956,12 +2910,12 @@ }; } - function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$h(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$h(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function time(option) { return function (art) { - return _objectSpread$7(_objectSpread$7({}, option), {}, { + return _objectSpread$h(_objectSpread$h({}, option), {}, { mounted: function mounted($control) { function getTime() { var newTime = "".concat(secondToTime(art.player.currentTime), " / ").concat(secondToTime(art.player.duration)); @@ -2980,12 +2934,12 @@ }; } - function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$g(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function volume(option) { + function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$g(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function volume$1(option) { return function (art) { - return _objectSpread$8(_objectSpread$8({}, option), {}, { + return _objectSpread$g(_objectSpread$g({}, option), {}, { mounted: function mounted($control) { var proxy = art.events.proxy, icons = art.icons, @@ -3063,12 +3017,12 @@ }; } - function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$f(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function setting(option) { + function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function setting$1(option) { return function (art) { - return _objectSpread$9(_objectSpread$9({}, option), {}, { + return _objectSpread$f(_objectSpread$f({}, option), {}, { tooltip: art.i18n.get('Show setting'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -3087,12 +3041,12 @@ }; } - function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function thumbnails(option) { return function (art) { - return _objectSpread$a(_objectSpread$a({}, option), {}, { + return _objectSpread$e(_objectSpread$e({}, option), {}, { mounted: function mounted($control) { var thumbnails = art.option.thumbnails, $progress = art.template.$progress, @@ -3150,12 +3104,12 @@ }; } - function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function screenshot(option) { + function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function screenshot$1(option) { return function (art) { - return _objectSpread$b(_objectSpread$b({}, option), {}, { + return _objectSpread$d(_objectSpread$d({}, option), {}, { tooltip: art.i18n.get('Screenshot'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -3170,9 +3124,9 @@ }; } - function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function quality(option) { return function (art) { @@ -3190,12 +3144,12 @@ }; } - function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function loop(option) { return function (art) { - return _objectSpread$d(_objectSpread$d({}, option), {}, { + return _objectSpread$b(_objectSpread$b({}, option), {}, { mounted: function mounted($control) { var player = art.player; var $left = append($control, ""); @@ -3214,19 +3168,19 @@ }; } - function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$2() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$8() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Control = /*#__PURE__*/function (_Component) { - inherits(Control, _Component); + _inherits(Control, _Component); - var _super = _createSuper$1(Control); + var _super = _createSuper$8(Control); function Control(art) { var _this; - classCallCheck(this, Control); + _classCallCheck(this, Control); _this = _super.call(this, art); _this.name = 'control'; @@ -3276,7 +3230,7 @@ index: 10 })); - _this.add(volume({ + _this.add(volume$1({ name: 'volume', disable: false, position: 'left', @@ -3297,42 +3251,42 @@ index: 10 })); - _this.add(screenshot({ + _this.add(screenshot$1({ name: 'screenshot', disable: !option.screenshot, position: 'right', index: 20 })); - _this.add(subtitle({ + _this.add(subtitle$1({ name: 'subtitle', disable: !option.subtitle.url, position: 'right', index: 30 })); - _this.add(setting({ + _this.add(setting$1({ name: 'setting', disable: !option.setting, position: 'right', index: 40 })); - _this.add(pip({ + _this.add(pip$1({ name: 'pip', disable: !option.pip, position: 'right', index: 50 })); - _this.add(fullscreenWeb({ + _this.add(fullscreenWeb$1({ name: 'fullscreenWeb', disable: !option.fullscreenWeb, position: 'right', index: 60 })); - _this.add(fullscreen({ + _this.add(fullscreen$1({ name: 'fullscreen', disable: !option.fullscreen, position: 'right', @@ -3346,7 +3300,7 @@ return _this; } - createClass(Control, [{ + _createClass(Control, [{ key: "add", value: function add(getOption) { var option = typeof getOption === 'function' ? getOption(this.art) : getOption; @@ -3373,21 +3327,21 @@ break; } - get(getPrototypeOf(Control.prototype), "add", this).call(this, option); + _get(_getPrototypeOf(Control.prototype), "add", this).call(this, option); } }]); return Control; }(Component); - function ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playbackRate(option) { + function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function playbackRate$1(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$e(_objectSpread$e({}, option), {}, { + return _objectSpread$a(_objectSpread$a({}, option), {}, { html: "".concat(i18n.get('Play speed'), ":\n 0.5\n 0.75\n ").concat(i18n.get('Normal'), "\n 1.25\n 1.5\n 2.0\n "), click: function click(contextmenu, event) { var rate = event.target.dataset.rate; @@ -3412,14 +3366,14 @@ }; } - function ownKeys$f(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function aspectRatio(option) { + function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function aspectRatio$1(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$f(_objectSpread$f({}, option), {}, { + return _objectSpread$9(_objectSpread$9({}, option), {}, { html: "".concat(i18n.get('Aspect ratio'), ":\n ").concat(i18n.get('Default'), "\n 4:3\n 16:9\n "), click: function click(contextmenu, event) { var ratio = event.target.dataset.ratio; @@ -3444,13 +3398,13 @@ }; } - function ownKeys$g(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$g(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function info(option) { return function (art) { - return _objectSpread$g(_objectSpread$g({}, option), {}, { + return _objectSpread$8(_objectSpread$8({}, option), {}, { html: art.i18n.get('Video info'), click: function click(contextmenu) { art.info.show = true; @@ -3460,25 +3414,25 @@ }; } - function ownKeys$h(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$h(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function version(option) { - return _objectSpread$h(_objectSpread$h({}, option), {}, { - html: 'ArtPlayer 3.5.30' + return _objectSpread$7(_objectSpread$7({}, option), {}, { + html: 'ArtPlayer 3.5.31' }); } - function ownKeys$i(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$i(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function light(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$i(_objectSpread$i({}, option), {}, { + return _objectSpread$6(_objectSpread$6({}, option), {}, { html: i18n.get('Light Off'), click: function click(contextmenu) { player.light = !player.light; @@ -3493,13 +3447,13 @@ }; } - function ownKeys$j(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$j(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$j(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$j(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function close(option) { return function (art) { - return _objectSpread$j(_objectSpread$j({}, option), {}, { + return _objectSpread$5(_objectSpread$5({}, option), {}, { html: art.i18n.get('Close'), click: function click(contextmenu) { contextmenu.show = false; @@ -3508,19 +3462,19 @@ }; } - function _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Contextmenu = /*#__PURE__*/function (_Component) { - inherits(Contextmenu, _Component); + _inherits(Contextmenu, _Component); - var _super = _createSuper$2(Contextmenu); + var _super = _createSuper$7(Contextmenu); function Contextmenu(art) { var _this; - classCallCheck(this, Contextmenu); + _classCallCheck(this, Contextmenu); _this = _super.call(this, art); _this.name = 'contextmenu'; @@ -3531,13 +3485,13 @@ proxy = art.events.proxy; _this.$parent = $contextmenu; art.once('ready', function () { - _this.add(playbackRate({ + _this.add(playbackRate$1({ disable: !option.playbackRate, name: 'playbackRate', index: 10 })); - _this.add(aspectRatio({ + _this.add(aspectRatio$1({ disable: !option.aspectRatio, name: 'aspectRatio', index: 20 @@ -3617,19 +3571,19 @@ return Contextmenu; }(Component); - function _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$4() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Info = /*#__PURE__*/function (_Component) { - inherits(Info, _Component); + _inherits(Info, _Component); - var _super = _createSuper$3(Info); + var _super = _createSuper$6(Info); function Info(art) { var _this; - classCallCheck(this, Info); + _classCallCheck(this, Info); _this = _super.call(this, art); _this.art = art; @@ -3642,7 +3596,7 @@ return _this; } - createClass(Info, [{ + _createClass(Info, [{ key: "init", value: function init() { var _this2 = this; @@ -3685,19 +3639,19 @@ return Info; }(Component); - function _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$5(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$5() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$5() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Subtitle = /*#__PURE__*/function (_Component) { - inherits(Subtitle, _Component); + _inherits(Subtitle, _Component); - var _super = _createSuper$4(Subtitle); + var _super = _createSuper$5(Subtitle); function Subtitle(art) { var _this; - classCallCheck(this, Subtitle); + _classCallCheck(this, Subtitle); _this = _super.call(this, art); _this.name = 'subtitle'; @@ -3716,12 +3670,42 @@ return _this; } - createClass(Subtitle, [{ + _createClass(Subtitle, [{ + key: "url", + get: function get() { + return this.art.template.$track.src; + } + }, { + key: "textTrack", + get: function get() { + return this.art.template.$video.textTracks[0]; + } + }, { + key: "activeCue", + get: function get() { + return this.textTrack.activeCues[0]; + } + }, { + key: "bilingual", + get: function get() { + var $subtitle = this.art.template.$subtitle; + return hasClass($subtitle, 'art-bilingual'); + }, + set: function set(val) { + var $subtitle = this.art.template.$subtitle; + + if (val) { + addClass($subtitle, 'art-bilingual'); + } else { + removeClass($subtitle, 'art-bilingual'); + } + } + }, { key: "style", value: function style(key, value) { var $subtitle = this.art.template.$subtitle; - if (_typeof_1(key) === 'object') { + if (_typeof(key) === 'object') { return setStyles($subtitle, key); } @@ -3816,36 +3800,6 @@ throw err; }); } - }, { - key: "url", - get: function get() { - return this.art.template.$track.src; - } - }, { - key: "textTrack", - get: function get() { - return this.art.template.$video.textTracks[0]; - } - }, { - key: "activeCue", - get: function get() { - return this.textTrack.activeCues[0]; - } - }, { - key: "bilingual", - get: function get() { - var $subtitle = this.art.template.$subtitle; - return hasClass($subtitle, 'art-bilingual'); - }, - set: function set(val) { - var $subtitle = this.art.template.$subtitle; - - if (val) { - addClass($subtitle, 'art-bilingual'); - } else { - removeClass($subtitle, 'art-bilingual'); - } - } }]); return Subtitle; @@ -3953,7 +3907,7 @@ function Events(art) { var _this = this; - classCallCheck(this, Events); + _classCallCheck(this, Events); this.destroyEvents = []; this.proxy = this.proxy.bind(this); @@ -3972,7 +3926,7 @@ } } - createClass(Events, [{ + _createClass(Events, [{ key: "proxy", value: function proxy(target, name, callback) { var _this2 = this; @@ -4053,7 +4007,7 @@ function Hotkey(art) { var _this = this; - classCallCheck(this, Hotkey); + _classCallCheck(this, Hotkey); this.keys = {}; var option = art.option, @@ -4110,7 +4064,7 @@ } } - createClass(Hotkey, [{ + _createClass(Hotkey, [{ key: "add", value: function add(key, event) { if (this.keys[key]) { @@ -4124,19 +4078,19 @@ return Hotkey; }(); - function _createSuper$5(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$6(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$4(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$4(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$6() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$4() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Layer = /*#__PURE__*/function (_Component) { - inherits(Layer, _Component); + _inherits(Layer, _Component); - var _super = _createSuper$5(Layer); + var _super = _createSuper$4(Layer); function Layer(art) { var _this; - classCallCheck(this, Layer); + _classCallCheck(this, Layer); _this = _super.call(this, art); _this.name = 'layer'; @@ -4152,19 +4106,19 @@ return Layer; }(Component); - function _createSuper$6(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$7(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$7() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$3() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Loading = /*#__PURE__*/function (_Component) { - inherits(Loading, _Component); + _inherits(Loading, _Component); - var _super = _createSuper$6(Loading); + var _super = _createSuper$3(Loading); function Loading(art) { var _this; - classCallCheck(this, Loading); + _classCallCheck(this, Loading); _this = _super.call(this, art); _this.name = 'loading'; @@ -4177,14 +4131,14 @@ var Notice = /*#__PURE__*/function () { function Notice(art) { - classCallCheck(this, Notice); + _classCallCheck(this, Notice); this.art = art; this.time = 2000; this.timer = null; } - createClass(Notice, [{ + _createClass(Notice, [{ key: "show", set: function set(msg) { var _this$art$template = this.art.template, @@ -4203,19 +4157,19 @@ return Notice; }(); - function _createSuper$7(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$8(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$8() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$2() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Mask = /*#__PURE__*/function (_Component) { - inherits(Mask, _Component); + _inherits(Mask, _Component); - var _super = _createSuper$7(Mask); + var _super = _createSuper$2(Mask); function Mask(art) { var _this; - classCallCheck(this, Mask); + _classCallCheck(this, Mask); _this = _super.call(this, art); _this.name = 'mask'; @@ -4234,44 +4188,44 @@ var pause = "\n \n"; - var volume$1 = "\n \n \n"; + var volume = "\n \n \n"; var volumeClose = "\n \n \n"; - var subtitle$1 = "\n \n \n"; + var subtitle = "\n \n \n"; - var screenshot$1 = "\n\t\n\n"; + var screenshot = "\n\t\n\n"; - var setting$1 = "\n \n \n"; + var setting = "\n \n \n"; - var fullscreen$1 = "\n\t\n\t\n\t\n\t\n"; + var fullscreen = "\n\t\n\t\n\t\n\t\n"; - var fullscreenWeb$1 = "\n\t\n"; + var fullscreenWeb = "\n\t\n"; - var pip$1 = "\n \n"; + var pip = "\n \n"; - function ownKeys$k(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$k(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$k(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$k(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var Icons = function Icons(art) { var _this = this; - classCallCheck(this, Icons); + _classCallCheck(this, Icons); - var icons = _objectSpread$k({ + var icons = _objectSpread$4({ loading: loading, state: state, play: play, pause: pause, - volume: volume$1, + volume: volume, volumeClose: volumeClose, - subtitle: subtitle$1, - screenshot: screenshot$1, - setting: setting$1, - fullscreen: fullscreen$1, - fullscreenWeb: fullscreenWeb$1, - pip: pip$1 + subtitle: subtitle, + screenshot: screenshot, + setting: setting, + fullscreen: fullscreen, + fullscreenWeb: fullscreenWeb, + pip: pip }, art.option.icons); Object.keys(icons).forEach(function (key) { @@ -4287,14 +4241,14 @@ }); }; - function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$l(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function flip(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$l(_objectSpread$l({}, option), {}, { + return _objectSpread$3(_objectSpread$3({}, option), {}, { html: "\n
".concat(i18n.get('Flip'), "
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "), click: function click(setting, event) { var value = event.target.dataset.value; @@ -4318,14 +4272,14 @@ }; } - function ownKeys$m(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$m(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$m(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$m(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function rotate(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$m(_objectSpread$m({}, option), {}, { + return _objectSpread$2(_objectSpread$2({}, option), {}, { html: "\n
\n ".concat(i18n.get('Rotate'), ": 0\xB0\n
\n
\n
\n \n
\n
\n \n
\n
\n "), click: function click(setting, event) { var value = event.target.dataset.value; @@ -4352,14 +4306,14 @@ }; } - function ownKeys$n(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$n(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$n(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$n(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function aspectRatio$1(option) { + function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function aspectRatio(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$n(_objectSpread$n({}, option), {}, { + return _objectSpread$1(_objectSpread$1({}, option), {}, { html: "\n
".concat(i18n.get('Aspect ratio'), "
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "), click: function click(setting, event) { var value = event.target.dataset.value; @@ -4383,15 +4337,15 @@ }; } - function ownKeys$o(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$o(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$o(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$o(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playbackRate$1(option) { + function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function playbackRate(option) { return function (art) { var i18n = art.i18n, player = art.player, proxy = art.events.proxy; - return _objectSpread$o(_objectSpread$o({}, option), {}, { + return _objectSpread(_objectSpread({}, option), {}, { html: "\n
\n ".concat(i18n.get('Play speed'), ": 1.0x\n
\n
\n \n
\n "), mounted: function mounted($setting) { var $range = query('.art-setting-range input', $setting); @@ -4412,19 +4366,19 @@ }; } - function _createSuper$8(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$9(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$9() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct$1() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var Setting = /*#__PURE__*/function (_Component) { - inherits(Setting, _Component); + _inherits(Setting, _Component); - var _super = _createSuper$8(Setting); + var _super = _createSuper$1(Setting); function Setting(art) { var _this; - classCallCheck(this, Setting); + _classCallCheck(this, Setting); _this = _super.call(this, art); _this.name = 'setting'; @@ -4453,12 +4407,12 @@ name: 'rotate' })); - _this.add(aspectRatio$1({ + _this.add(aspectRatio({ disable: !option.aspectRatio, name: 'aspectRatio' })); - _this.add(playbackRate$1({ + _this.add(playbackRate({ disable: !option.playbackRate, name: 'playbackRate' })); @@ -4476,13 +4430,13 @@ var Storage = /*#__PURE__*/function () { function Storage() { - classCallCheck(this, Storage); + _classCallCheck(this, Storage); this.name = 'artplayer_settings'; this.settings = {}; } - createClass(Storage, [{ + _createClass(Storage, [{ key: "get", value: function get(key) { try { @@ -4496,7 +4450,7 @@ key: "set", value: function set(key, value) { try { - var storage = Object.assign({}, this.get(), defineProperty({}, key, value)); + var storage = Object.assign({}, this.get(), _defineProperty({}, key, value)); window.localStorage.setItem(this.name, JSON.stringify(storage)); } catch (error) { this.settings[key] = value; @@ -4876,7 +4830,7 @@ function Plugins(art) { var _this = this; - classCallCheck(this, Plugins); + _classCallCheck(this, Plugins); this.art = art; this.id = 0; @@ -4911,7 +4865,7 @@ }); } - createClass(Plugins, [{ + _createClass(Plugins, [{ key: "add", value: function add(plugin) { this.id += 1; @@ -4929,7 +4883,7 @@ }(); var Mobile = function Mobile(art) { - classCallCheck(this, Mobile); + _classCallCheck(this, Mobile); var option = art.option, proxy = art.events.proxy, @@ -4972,60 +4926,60 @@ } }; - function _createSuper$9(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$a(); return function _createSuperInternal() { var Super = getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn(this, result); }; } + function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _isNativeReflectConstruct$a() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var id = 0; var instances = []; var Artplayer = /*#__PURE__*/function (_Emitter) { - inherits(Artplayer, _Emitter); + _inherits(Artplayer, _Emitter); - var _super = _createSuper$9(Artplayer); + var _super = _createSuper(Artplayer); function Artplayer(option) { var _this; - classCallCheck(this, Artplayer); + _classCallCheck(this, Artplayer); _this = _super.call(this); - _this.option = optionValidator(mergeDeep(Artplayer.option, option), scheme); + _this.option = validator(mergeDeep(Artplayer.option, option), scheme); _this.isFocus = false; _this.isDestroy = false; _this.userAgent = userAgent; _this.isMobile = isMobile; _this.isWechat = isWechat; - _this.whitelist = new Whitelist(assertThisInitialized(_this)); - _this.template = new Template(assertThisInitialized(_this)); - _this.events = new Events(assertThisInitialized(_this)); + _this.whitelist = new Whitelist(_assertThisInitialized(_this)); + _this.template = new Template(_assertThisInitialized(_this)); + _this.events = new Events(_assertThisInitialized(_this)); if (_this.whitelist.state) { - _this.storage = new Storage(assertThisInitialized(_this)); - _this.icons = new Icons(assertThisInitialized(_this)); - _this.i18n = new I18n(assertThisInitialized(_this)); - _this.notice = new Notice(assertThisInitialized(_this)); - _this.player = new Player(assertThisInitialized(_this)); - _this.layers = new Layer(assertThisInitialized(_this)); - _this.controls = new Control(assertThisInitialized(_this)); - _this.contextmenu = new Contextmenu(assertThisInitialized(_this)); - _this.subtitle = new Subtitle(assertThisInitialized(_this)); - _this.info = new Info(assertThisInitialized(_this)); - _this.loading = new Loading(assertThisInitialized(_this)); - _this.hotkey = new Hotkey(assertThisInitialized(_this)); - _this.mask = new Mask(assertThisInitialized(_this)); - _this.setting = new Setting(assertThisInitialized(_this)); - _this.plugins = new Plugins(assertThisInitialized(_this)); + _this.storage = new Storage(_assertThisInitialized(_this)); + _this.icons = new Icons(_assertThisInitialized(_this)); + _this.i18n = new I18n(_assertThisInitialized(_this)); + _this.notice = new Notice(_assertThisInitialized(_this)); + _this.player = new Player(_assertThisInitialized(_this)); + _this.layers = new Layer(_assertThisInitialized(_this)); + _this.controls = new Control(_assertThisInitialized(_this)); + _this.contextmenu = new Contextmenu(_assertThisInitialized(_this)); + _this.subtitle = new Subtitle(_assertThisInitialized(_this)); + _this.info = new Info(_assertThisInitialized(_this)); + _this.loading = new Loading(_assertThisInitialized(_this)); + _this.hotkey = new Hotkey(_assertThisInitialized(_this)); + _this.mask = new Mask(_assertThisInitialized(_this)); + _this.setting = new Setting(_assertThisInitialized(_this)); + _this.plugins = new Plugins(_assertThisInitialized(_this)); } else { - _this.mobile = new Mobile(assertThisInitialized(_this)); + _this.mobile = new Mobile(_assertThisInitialized(_this)); } id += 1; _this.id = id; - instances.push(assertThisInitialized(_this)); + instances.push(_assertThisInitialized(_this)); return _this; } - createClass(Artplayer, [{ + _createClass(Artplayer, [{ key: "destroy", value: function destroy() { var removeHtml = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; @@ -5043,7 +4997,7 @@ }, { key: "version", get: function get() { - return '3.5.30'; + return '3.5.31'; } }, { key: "env", @@ -5073,12 +5027,12 @@ }, { key: "validator", get: function get() { - return optionValidator; + return validator; } }, { key: "kindOf", get: function get() { - return optionValidator.kindOf; + return validator.kindOf; } }, { key: "html", @@ -5154,9 +5108,9 @@ return Artplayer; }(Emitter); // eslint-disable-next-line no-console - console.log('%c ArtPlayer %c 3.5.30 %c https://artplayer.org', 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', ''); + console.log('%c ArtPlayer %c 3.5.31 %c https://artplayer.org', 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', ''); return Artplayer; -}))); +})); //# sourceMappingURL=artplayer.js.map diff --git a/docs/uncompiled/artplayer.js.map b/docs/uncompiled/artplayer.js.map index e3d30ef7b..362383734 100644 --- a/docs/uncompiled/artplayer.js.map +++ b/docs/uncompiled/artplayer.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/classCallCheck.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/createClass.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/inherits.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/typeof.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/isNativeFunction.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/construct.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/iterableToArray.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/_screenfull@5.0.2@screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/lightMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/superPropBase.js","../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/light.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n light: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, 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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$undercover = this.query('.art-undercover');\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n if (this.$info) {\n addClass(this.$info, 'art-backdrop-filter');\n }\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(remove) {\n if (remove) {\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.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle = true;\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n player.play = player.playing;\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n set(value) {\n if (value) {\n const promise = $video.play();\n if (promise.then) {\n promise.then().catch(err => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter(item => item !== art)\n .forEach(item => {\n item.player.pause = true;\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n } else {\n player.pause = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n get() {\n return $video.paused;\n },\n set(value) {\n if (value) {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n } else {\n player.play = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n set(value) {\n if (value) {\n if (player.playing) {\n player.pause = true;\n } else {\n player.play = true;\n }\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play = true;\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.0.2 - 2020-02-13\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { def, getStyle, setStyle } from '../utils';\n\nexport default function lightMix(art, player) {\n const { $undercover } = art.template;\n\n def(player, 'light', {\n get() {\n return getStyle($undercover, 'display', false) !== 'none';\n },\n set(value) {\n setStyle($undercover, 'display', value ? 'block' : 'none');\n art.emit('light', value);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 lightMix from './lightMix';\nimport miniMix from './miniMix';\nimport loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n lightMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
${item.name}
`).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play = true;\n });\n\n proxy($pause, 'click', () => {\n player.pause = true;\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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle = true;\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle = true;\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __VERSION__',\n };\n}\n","export default function light(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: i18n.get('Light Off'),\n click: contextmenu => {\n player.light = !player.light;\n contextmenu.show = false;\n },\n mounted: $menu => {\n art.on('light', value => {\n $menu.innerText = i18n.get(value ? 'Light On' : 'Light Off');\n });\n },\n };\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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport info from './info';\nimport version from './version';\nimport light from './light';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n light({\n disable: !option.light,\n name: 'light',\n index: 50,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle = true;\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Rotate')}: 0°\n
\n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

${escape(msg)}

`);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n light: false,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["_typeof","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","light","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$undercover","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","play","playing","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pause","pauseMix","paused","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","lightMix","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","activeCue","opt","subUrl","$track","kind","textTrack","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","textTracks","activeCues","val","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","removeHtml","splice","switcher","preload","console"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/inherits.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/typeof.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/construct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/lightMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/light.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n light: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, 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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$undercover = this.query('.art-undercover');\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n if (this.$info) {\n addClass(this.$info, 'art-backdrop-filter');\n }\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(remove) {\n if (remove) {\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.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle = true;\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n player.play = player.playing;\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n set(value) {\n if (value) {\n const promise = $video.play();\n if (promise.then) {\n promise.then().catch(err => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter(item => item !== art)\n .forEach(item => {\n item.player.pause = true;\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n } else {\n player.pause = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n get() {\n return $video.paused;\n },\n set(value) {\n if (value) {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n } else {\n player.play = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n set(value) {\n if (value) {\n if (player.playing) {\n player.pause = true;\n } else {\n player.play = true;\n }\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play = true;\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { def, getStyle, setStyle } from '../utils';\n\nexport default function lightMix(art, player) {\n const { $undercover } = art.template;\n\n def(player, 'light', {\n get() {\n return getStyle($undercover, 'display', false) !== 'none';\n },\n set(value) {\n setStyle($undercover, 'display', value ? 'block' : 'none');\n art.emit('light', value);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 lightMix from './lightMix';\nimport miniMix from './miniMix';\nimport loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n lightMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
${item.name}
`).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play = true;\n });\n\n proxy($pause, 'click', () => {\n player.pause = true;\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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle = true;\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle = true;\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __VERSION__',\n };\n}\n","export default function light(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: i18n.get('Light Off'),\n click: contextmenu => {\n player.light = !player.light;\n contextmenu.show = false;\n },\n mounted: $menu => {\n art.on('light', value => {\n $menu.innerText = i18n.get(value ? 'Light On' : 'Light Off');\n });\n },\n };\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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport info from './info';\nimport version from './version';\nimport light from './light';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n light({\n disable: !option.light,\n name: 'light',\n index: 50,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle = true;\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Rotate')}: 0°\n
\n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

${escape(msg)}

`);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n light: false,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["setPrototypeOf","assertThisInitialized","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","light","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","prototypes","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$undercover","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","play","playing","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pause","pauseMix","paused","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","lightMix","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","superPropBase","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","$track","textTracks","textTrack","activeCues","val","activeCue","opt","subUrl","kind","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","removeHtml","splice","switcher","preload","console"],"mappings":"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"} \ No newline at end of file diff --git a/lerna.json b/lerna.json index 7995fdac3..5283c516f 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "lerna": "3.4.3", - "version": "3.5.31", + "version": "4.0.0", "packages": [ "packages/*" ], diff --git a/package.json b/package.json index bf8b1ff01..e00e55034 100644 --- a/package.json +++ b/package.json @@ -1,71 +1,77 @@ { - "name": "artplayer-packages", - "version": "2.0.0", - "description": "ArtPlayer.js is a modern and full featured HTML5 video player", - "scripts": { - "bootstrap": "npx lerna bootstrap", - "version": "npx lerna version patch --yes", - "publish": "npx lerna publish from-package --yes", - "release": "npm run lint && npm run version && npm run build:all && npm test && npm run publish", - "dev": "npx cross-env NODE_ENV=development node ./scripts/dev.js", - "start": "npx cross-env NODE_ENV=development npx servor docs index.html 8081 5000", - "build": "npx cross-env NODE_ENV=production node ./scripts/build.js", - "build:all": "npm run build all && git add . && git commit -m \"build all packages\" -n ", - "test": "npx cross-env NODE_ENV=test mocha-chrome ./test/index.html --mocha '{\"ui\":\"bdd\"}'", - "lint": "npx eslint packages/*/src", - "sizereport": "npx sizereport --config" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/zhw2590582/ArtPlayer.git" - }, - "keywords": [ - "video", - "player" - ], - "author": "Harvey Zack ", - "license": "MIT", - "bugs": { - "url": "https://github.com/zhw2590582/ArtPlayer/issues" - }, - "homepage": "https://github.com/zhw2590582/ArtPlayer", - "dependencies": { - "@babel/core": "^7.12.9", - "@babel/plugin-external-helpers": "^7.12.1", - "@babel/plugin-transform-runtime": "^7.12.1", - "@babel/preset-env": "^7.12.7", - "@babel/runtime": "^7.12.5", - "autoprefixer": "^9.8.6", - "babel-eslint": "^10.1.0", - "browser-env": "^3.3.0", - "chai": "^4.2.0", - "chalk": "^4.1.0", - "cpy": "^8.1.1", - "cross-env": "^7.0.2", - "cssnano": "^4.1.10", - "del": "^6.0.0", - "eslint": "^7.14.0", - "eslint-config-airbnb-base": "^14.2.1", - "eslint-config-prettier": "^8.1.0", - "eslint-plugin-import": "^2.22.1", - "glob": "^7.1.6", - "inquirer": "^8.0.0", - "lerna": "^4.0.0", - "mocha": "^9.0.0", - "mocha-chrome": "^2.2.0", - "node-sass": "^6.0.1", - "rollup": "^2.33.3", - "rollup-plugin-babel": "^4.4.0", - "rollup-plugin-commonjs": "^10.1.0", - "rollup-plugin-eslint": "^7.0.0", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-node-resolve": "^5.2.0", - "rollup-plugin-postcss": "^4.0.0", - "rollup-plugin-replace": "^2.2.0", - "rollup-plugin-size-snapshot": "^0.12.0", - "rollup-plugin-svgo": "^1.1.0", - "rollup-plugin-terser": "^7.0.2", - "servor": "^4.0.2", - "travis-size-report": "^1.1.0" - } + "name": "artplayer-packages", + "version": "4.0.0", + "description": "ArtPlayer.js is a modern and full featured HTML5 video player", + "scripts": { + "bootstrap": "npx lerna bootstrap", + "version": "npx lerna version patch --yes", + "publish": "npx lerna publish from-package --yes", + "release": "npm run lint && npm run version && npm run build:all && npm test && npm run publish", + "dev": "npx cross-env NODE_ENV=development node ./scripts/dev.js", + "start": "npx cross-env NODE_ENV=development npx servor docs index.html 8081 5000", + "build": "npx cross-env NODE_ENV=production node ./scripts/build.js", + "build:all": "npm run build all && git add . && git commit -m \"build all packages\" -n ", + "test": "npx cross-env NODE_ENV=test mocha-chrome ./test/index.html --mocha '{\"ui\":\"bdd\"}'", + "lint": "npx eslint packages/*/src", + "sizereport": "npx sizereport --config" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/zhw2590582/ArtPlayer.git" + }, + "keywords": [ + "video", + "player" + ], + "author": "Harvey Zack ", + "license": "MIT", + "bugs": { + "url": "https://github.com/zhw2590582/ArtPlayer/issues" + }, + "homepage": "https://github.com/zhw2590582/ArtPlayer", + "browserslist": "> 0.5%, last 2 versions, not dead", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@babel/plugin-external-helpers": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/runtime": "^7.16.3", + "@rollup/plugin-babel": "^5.3.0", + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^13.0.6", + "@rollup/plugin-replace": "^3.0.0", + "autoprefixer": "^10.4.0", + "browser-env": "^3.3.0", + "chai": "^4.3.4", + "chalk": "^4.1.2", + "cpy": "^8.1.2", + "cross-env": "^7.0.3", + "cssnano": "^5.0.11", + "del": "^6.0.0", + "eslint": "^8.3.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-config-standard": "^14.0.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-promise": "^5.1.1", + "eslint-plugin-standard": "^5.0.0", + "glob": "^7.2.0", + "inquirer": "^8.2.0", + "lerna": "^4.0.0", + "mocha": "^9.1.3", + "mocha-chrome": "^2.2.0", + "node-sass": "^6.0.1", + "postcss": "^8.3.11", + "rollup": "^2.60.1", + "rollup-plugin-eslint": "^7.0.0", + "rollup-plugin-postcss": "^4.0.2", + "rollup-plugin-size-snapshot": "^0.12.0", + "rollup-plugin-svgo": "^1.1.0", + "rollup-plugin-terser": "^7.0.2", + "servor": "^4.0.2", + "travis-size-report": "^1.1.0" + } } diff --git a/packages/artplayer/dist/artplayer.js b/packages/artplayer/dist/artplayer.js index e3293a8d7..f7743ad05 100644 --- a/packages/artplayer/dist/artplayer.js +++ b/packages/artplayer/dist/artplayer.js @@ -5,4 +5,4 @@ * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";var t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function v(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function m(t,e){return t.classList.add(e)}function g(t,e){return t.classList.remove(e)}function w(t,e){return t.classList.contains(e)}function x(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function O(t){return t.parentNode.removeChild(t)}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function E(t,e){S(t).forEach((function(t){return g(t,e)})),m(t,e)}function R(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function D(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function $(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}var T=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")};var z=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}},A=o((function(t){function e(r,n,o){return z()?t.exports=e=Reflect.construct:t.exports=e=function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&i(o,r.prototype),o},e.apply(null,arguments)}t.exports=e}));function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var L=function(e){a(o,e);var r=C(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(o((function(t){function e(r){var n="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!T(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return A(t,arguments,l(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),i(e,t)},e(r)}t.exports=e}))(Error));function M(t,e){if(!t)throw new L(e);return t}function q(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function F(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function I(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function W(t){return t.includes("?")?W(t.split("?")[0]):t.includes("#")?W(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function V(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}var B=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function tt(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function nt(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var ot=Object.freeze({__proto__:null,query:b,queryAll:v,addClass:m,removeClass:g,hasClass:w,append:x,remove:O,setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:E,tooltip:R,isInViewport:D,includeFromEvent:$,ArtPlayerError:L,errorHandle:M,srtToVtt:q,vttToBlob:F,assToVtt:I,getExt:W,download:V,def:Y,has:J,proxyPropertys:Q,mergeDeep:G,sleep:K,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},mt=function(){function e(r){var n=this;t(this,e),this.art=r,r.option.container instanceof Element?this.$container=r.option.container:(this.$container=b(r.option.container),M(this.$container,"No container element found by ".concat(r.option.container))),M(r.constructor.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),r.whitelist.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return b(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option,r=t.backdrop,n=t.theme;t.useSSR||(this.$container.innerHTML=e.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(m(this.$settingInner,"art-backdrop-filter"),m(this.$contextmenu,"art-backdrop-filter"),this.$info&&m(this.$info,"art-backdrop-filter")),this.art.isMobile&&m(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":m(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),gt={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},wt={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},xt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":gt,"zh-tw":wt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=G(this.languages,t),this.init()}}]),e}();var Ot=o((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var h=d*l/s;k(n,"width","".concat(100*h,"%")),k(n,"height","100%"),k(n,"padding","0 ".concat((u-u*h)/2,"px"))}else{var y=s/d/l;k(n,"width","100%"),k(n,"height","".concat(100*y,"%")),k(n,"padding","".concat((p-p*y)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),Y(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(r,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");Y(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),Y(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),Y(e,"screenshot",{value:function(){e.getDataURL().then((function(e){V(e,"".concat(r.title||"artplayer","_").concat(rt(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(r,this),kt(r,this),function(t,e){var r=t.template.$player;Y(e,"fullscreenWeb",{get:function(){return w(r,"art-fullscreen-web")},set:function(n){n?(m(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(g(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),Y(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;Y(e,"fullscreenRotate",{get:function(){return w(n,"art-fullscreen-rotate")},set:function(r){if(r){m(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,s=o.clientHeight,l=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;Y(e,"autoSize",{get:function(){return w(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,s=n.getBoundingClientRect(),l=s.width,u=s.height,p=a/c,f=l/u;if(m(n,"art-auto-size"),f>p)k(o,"width","".concat(u*p/l*100,"%")),k(o,"height","100%");else{var d=l/p/u*100;k(o,"width","100%"),k(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else g(n,"art-auto-size"),k(o,"width",null),k(o,"height",null),t.emit("autoSize")}})}(r,this),function(t,e){Y(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){Y(e,t,{get:function(){return e.rect[t]}})})),Y(e,"x",{get:function(){return e.left+window.pageXOffset}}),Y(e,"y",{get:function(){return e.top+window.pageYOffset}})}(r,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;Y(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];M(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),Y(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(r,this),function(t,e){var r=t.template.$undercover;Y(e,"light",{get:function(){return"none"!==P(r,"display",!1)},set:function(e){k(r,"display",e?"block":"none"),t.emit("light",e)}})}(r,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,s=a.$miniClose,l=a.$miniTitle,u=a.$miniHeader,p="",f=!1,d=0,h=0,y=0,b=0;i(u,"mousedown",(function(t){f=!0,d=t.pageX,h=t.pageY,y=e.left,b=e.top})),i(document,"mousemove",(function(t){if(f){m(c,"art-is-dragging");var e=b+t.pageY-h,r=y+t.pageX-d;k(c,"top","".concat(e,"px")),k(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){f=!1,g(c,"art-is-dragging")})),i(s,"click",(function(){e.mini=!1,f=!1,g(c,"art-is-dragging")})),x(l,n.title||r.get("Mini player")),Y(e,"mini",{get:function(){return w(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,p=c.style.cssText,m(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)k(c,"top","".concat(i,"px")),k(c,"left","".concat(a,"px")),D(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var s=document.body,l=s.clientHeight-e.height-50,f=s.clientWidth-e.width-50;o.set("top",l),o.set("left",f),k(c,"top","".concat(l,"px")),k(c,"left","".concat(f,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=p,g(c,"art-mini"),k(c,"top",null),k(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),Y(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(r,this),function(t,e){var r=[];Y(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=et(n[0],0,Math.min(n[1],e.duration)),i=et(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(r,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;Y(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(M(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,k(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var s=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},l=0,u=1;switch(r){case-270:l=90,u=s();break;case-180:l=180;break;case-90:l=270,u=s();break;case 90:l=90,u=s();break;case 180:l=180;break;case 270:l=270,u=s()}k(n,"transform","rotate(".concat(l,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),Y(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(r,this),function(t,e){var r=t.option,n=t.template.$poster;Y(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,k(n,"backgroundImage","url(".concat(t,")"))}})}(r,this),Q(r,this)};var St=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=l(t)););return t},Et=o((function(t){function e(r,n,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,r){var n=St(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(r):o.value}},e(r,n,o||r)}t.exports=e})),Rt=function(){function e(r){t(this,e),this.id=0,this.art=r,this.add=this.add.bind(this)}return r(e,[{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);M(!J(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");m(o,"art-".concat(this.name)),m(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):x(this.$parent,o),r.html&&x(o,r.html),r.style&&j(o,r.style),r.tooltip&&R(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&m(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;m(e,"art-control-selector");var a=document.createElement("div");m(a,"art-selector-value"),x(a,t.html),e.innerText="",x(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),s=document.createElement("div");m(s,"art-selector-list"),x(s,c),x(e,s);var l=function(){s.style.left="-".concat(P(s,"width")/2-P(e,"width")/2,"px")};o(e,l),i(e,"click",(function(e){if(w(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,l(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}},{key:"show",get:function(){return w(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?m(e,r):g(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}}]),e}();function Dt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function $t(t){for(var e=1;e
'),mounted:function(t){var r=!1,o=b(".art-progress-loaded",t),c=b(".art-progress-played",t),s=b(".art-progress-highlight",t),l=b(".art-progress-indicator",t),u=b(".art-progress-tip",t);function p(t,e){"loaded"===t&&k(o,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(l,"left","calc(".concat(100*e,"% - ").concat(P(l,"width")/2,"px)")))}n.forEach((function(t){var e=et(t.time,0,a.duration)/a.duration*100;x(s,''))})),p("loaded",a.loaded),e.on("video:progress",(function(){p("loaded",a.loaded)})),e.on("video:timeupdate",(function(){p("played",a.played)})),e.on("video:ended",(function(){p("played",1)})),i(t,"mousemove",(function(r){k(u,"display","block"),$(r,s)?function(r){var n=It(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=It(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){k(u,"display","none")})),i(t,"click",(function(t){if(t.target!==l){var r=It(e,t),n=r.second;p("played",r.percentage),a.seek=n}})),i(l,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=It(e,t),o=n.second,i=n.percentage;m(l,"art-show-indicator"),p("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,g(l,"art-show-indicator"))}))}})}}function Vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Bt(t){for(var e=1;en.clientWidth-s/2?k(t,"left","".concat(n.clientWidth-s,"px")):k(t,"left","".concat(i-s/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Gt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Kt(t){for(var e=1;e=3e3&&(r.show=!1,m(c,"art-hide-cursor"),g(c,"art-hover"))})),e.once("ready",(function(){r.add(Wt({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Qt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return ne(ne({},t),{},{mounted:function(t){var r=e.player,n=x(t,''),o=x(t,'');e.on("loop",(function(e){e?(k(t,"display","block"),k(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),k(o,"left","".concat(e[1]/r.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return Mt(Mt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=x(t,n.play),c=x(t,n.pause);function s(){k(a,"display","flex"),k(c,"display","none")}function l(){k(a,"display","none"),k(c,"display","flex")}R(a,o.get("Play")),R(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?l():s(),e.on("video:playing",(function(){l()})),e.on("video:pause",(function(){s()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return _t(_t({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=x(t,n.volume),s=x(t,n.volumeClose),l=x(t,'
'),u=x(l,'
');function p(t){var e=l.getBoundingClientRect().left;return et(t.pageX-e-6,0,54)/48}function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)k(c,"display","none"),k(s,"display","flex"),k(u,"left","0");else{var e=48*t;k(c,"display","flex"),k(s,"display","none"),k(u,"left","".concat(e,"px"))}}R(c,i.get("Mute")),k(s,"display","none"),e.isMobile&&k(l,"display","none"),f(o.volume),e.on("video:volumechange",(function(){f(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(s,"click",(function(){o.muted=!1})),r(l,"click",(function(t){o.muted=!1,o.volume=p(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=p(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){function r(){var r="".concat(rt(e.player.currentTime)," / ").concat(rt(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:i.isLive,position:"left",index:30})),r.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return ee(ee({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===i.quality.length,position:"right",index:10})),r.add(function(t){return function(e){return Kt(Kt({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;x(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),r.add(function(t){return function(e){return Bt(Bt({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;x(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){R(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),r.add(function(t){return function(e){return Yt(Yt({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;x(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){R(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!i.setting,position:"right",index:40})),r.add(function(t){return function(e){return Ct(Ct({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){R(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!i.pip,position:"right",index:50})),r.add(function(t){return function(e){return zt(zt({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){R(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),r.add(function(t){return function(e){return $t($t({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){R(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){r.add(t)}))})),r}return r(o,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,r=this.art.template,n=r.$progress,i=r.$controlsLeft,a=r.$controlsRight;switch(e.position){case"top":this.$parent=n;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:M(!1,"Control option.position must one of 'top', 'left', 'right'")}Et(l(o.prototype),"add",this).call(this,e)}}]),o}(Rt);function ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ce(t){for(var e=1;e0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=v("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&E(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return le(le({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=v("span",t).find((function(t){return t.dataset.ratio===e}));r&&E(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return pe(pe({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return de(de({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return ye(ye({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!i.light,name:"light",index:50})),o.add(function(t){return function(e){return ve(ve({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),i.contextmenu.forEach((function(t){o.add(t)})),l(c,"contextmenu",(function(t){t.preventDefault(),o.show=!0;var e=t.clientX,r=t.clientY,n=c.getBoundingClientRect(),i=n.height,a=n.width,l=n.left,u=n.top,p=s.getBoundingClientRect(),f=p.height,d=p.width,h=e-l,y=r-u;e+d>l+a&&(h=a-d),r+f>u+i&&(y=i-f),j(s,{top:"".concat(y,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){$(t,s)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(Rt);function we(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var xe=function(e){a(o,e);var n=we(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).art=e,r.name="info",r.art.template.$info&&r.init(),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=v("[data-video]",n);function s(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){s()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&s()}))}}]),o}(Rt);function Oe(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var ke=function(e){a(o,e);var n=Oe(o);function o(e){var r;t(this,o),(r=n.call(this,e)).name="subtitle";var i=e.option.subtitle,a=e.template.$subtitle;return j(a,i.style),i.url&&r.init(i.url),i.bilingual&&m(a,"art-bilingual"),r}return r(o,[{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===c(t)?j(r,t):k(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(nt(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,s=c.$subtitle,l=c.$video,u=c.$track;if(!u){var p=document.createElement("track");p.default=!0,p.kind="metadata",l.appendChild(p),this.art.template.$track=p,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||W(t)){case"srt":return F(q(o));case"ass":return F(I(o));case"vtt":return F(o);default:return t}})).then((function(t){return s.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}},{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return w(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?m(e,"art-bilingual"):g(e,"art-bilingual")}}]),o}(Rt);var je=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){$(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){m(r,"art-hover"),t.emit("hover",!0)}),(function(){g(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=t.player,o=tt((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(r,n),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=et((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=et(r.currentTime+60*e,0,r.duration),n.show="".concat(rt(c)," / ").concat(rt(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(r,n),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=tt((function(){t.emit("view",D(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new L("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new L("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),e}(),Pe=function(){function e(r){var n=this;t(this,e),this.keys={};var o=r.option,i=r.player,a=r.events.proxy;o.hotkey&&r.once("ready",(function(){n.add(27,(function(){i.fullscreenWeb&&(i.fullscreenWeb=!1)})),n.add(32,(function(){i.toggle=!0})),n.add(37,(function(){i.backward=5})),n.add(38,(function(){i.volume+=.1})),n.add(39,(function(){i.forward=5})),n.add(40,(function(){i.volume-=.1})),a(window,"keydown",(function(t){if(r.isFocus){var e=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==o&&"true"!==o){var i=n.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(r)})),r.emit("hotkey",t))}}}))}))}return r(e,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),e}();function Se(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var Ee=function(e){a(n,e);var r=Se(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="layer",o.$parent=e.template.$layer,e.once("ready",(function(){e.option.layers.forEach((function(t){o.add(t)}))})),o}return n}(Rt);function Re(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var De=function(e){a(n,e);var r=Re(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="loading",x(e.template.$loading,e.icons.loading),o}return n}(Rt),$e=function(){function e(r){t(this,e),this.art=r,this.time=2e3,this.timer=null}return r(e,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,m(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",g(r,"art-notice-show")}),this.time)}}]),e}();function Te(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var ze=function(e){a(n,e);var r=Te(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="mask",x(e.template.$state,e.icons.state),o}return n}(Rt);function Ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Ce=function e(r){var n=this;t(this,e);var o=function(t){for(var e=1;e',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){Y(n,t,{get:function(){var e=document.createElement("i");return m(e,"art-icon"),m(e,"art-icon-".concat(t)),x(e,o[t]),e}})}))};function Le(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Me(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=v("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=b(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return We(We({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=v("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Be(Be({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=b(".art-setting-range input",t),i=b(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}))})),e.on("blur",(function(){o.show=!1}))),o}return n}(Rt),Ue=function(){function e(){t(this,e),this.name="artplayer_settings",this.settings={}}return r(e,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(t,e){try{var r=Object.assign({},this.get(),it({},t,e));window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[t]=e}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),e}();function _e(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=b(".art-setting-range input",e),i=b(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Xe(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(_e);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var s=Array.from(o.$track.track.cues),l=e(r,-5,5);s.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+l,0,a.duration),t.endTime=e(c[r].endTime+l,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Ye(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else M(!1,"Playback of this file format is not supported")}}function s(t){var r=x(t,'');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=b(".art-upload-btn",e),n=b(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),s(r)}})})),{name:"localVideo",attach:s}}function Ze(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=x(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=W(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):M(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=b(".art-upload-btn",e),n=b(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Je(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Qe(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function Ge(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;k(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(O(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){O(r.firstElementChild),o()}),3e3):k(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(x(r,"

".concat(nt(t),"

")),k(r,"display","block"),clearTimeout(n),o())}}}var Ke=function(){function e(r){var n=this;t(this,e),this.art=r,this.id=0;var o=r.option;o.subtitle.url&&o.subtitleOffset&&this.add(Xe),!o.isLive&&o.miniProgressBar&&this.add(Je),o.localVideo&&this.add(Ye),o.localSubtitle&&this.add(Ze),o.networkMonitor&&this.add(Qe),o.log&&this.add(Ge),r.option.plugins.forEach((function(t){n.add(t)}))}return r(e,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return M(!J(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),Y(this,r,{value:e}),this}}]),e}(),tr=function e(r){t(this,e);var n=r.option,o=r.events.proxy,i=r.template.$video;bt.events.forEach((function(t){o(i,t,(function(t){r.emit("video:".concat(t.type),t)}))})),Object.keys(n.moreVideoAttr).forEach((function(t){i[t]=n.moreVideoAttr[t]})),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=et(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),i.controls=!0;var a=n.type||W(n.url),c=n.customType[a];a&&c?(c(i,n.url,r),r.emit("customType",a)):(i.src=n.url,r.emit("url",i.src))};function er(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return s(this,r)}}var rr=0,nr=[],or=function(e){a(i,e);var o=er(i);function i(e){var r;return t(this,i),(r=o.call(this)).option=u(G(i.option,e),yt),r.isFocus=!1,r.isDestroy=!1,r.userAgent=f,r.isMobile=d,r.isWechat=y,r.whitelist=new vt(n(r)),r.template=new mt(n(r)),r.events=new je(n(r)),r.whitelist.state?(r.storage=new Ue(n(r)),r.icons=new Ce(n(r)),r.i18n=new xt(n(r)),r.notice=new $e(n(r)),r.player=new Pt(n(r)),r.layers=new Ee(n(r)),r.controls=new ie(n(r)),r.contextmenu=new ge(n(r)),r.subtitle=new ke(n(r)),r.info=new xe(n(r)),r.loading=new De(n(r)),r.hotkey=new Pe(n(r)),r.mask=new ze(n(r)),r.setting=new Ne(n(r)),r.plugins=new Ke(n(r))):r.mobile=new tr(n(r)),rr+=1,r.id=rr,nr.push(n(r)),r}return r(i,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),nr.splice(nr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return nr}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return bt}},{key:"utils",get:function(){return ot}},{key:"scheme",get:function(){return yt}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return mt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),i}(p);return console.log("%c ArtPlayer %c 3.5.31 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),or})); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function g(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function m(t,e){return t.classList.add(e)}function b(t,e){return t.classList.remove(e)}function w(t,e){return t.classList.contains(e)}function x(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function O(t){return t.parentNode.removeChild(t)}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function E(t,e){S(t).forEach((function(t){return b(t,e)})),m(t,e)}function R(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function T(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}function D(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function z(t,e,r){return z=D()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},z.apply(null,arguments)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return z(t,arguments,l(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),o(n,t)},A(t)}function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var L=function(e){i(o,e);var r=C(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(A(Error));function M(t,e){if(!t)throw new L(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function q(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function B(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function I(t){return t.includes("?")?I(t.split("?")[0]):t.includes("#")?I(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function W(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function V(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function Z(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),l=0;l0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function K(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var tt=Object.freeze({__proto__:null,query:v,queryAll:g,addClass:m,removeClass:b,hasClass:w,append:x,remove:O,setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:E,tooltip:R,isInViewport:$,includeFromEvent:T,ArtPlayerError:L,errorHandle:M,srtToVtt:F,vttToBlob:q,assToVtt:B,getExt:I,download:W,def:N,has:_,proxyPropertys:X,mergeDeep:Q,sleep:Y,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},ht=function(){function e(r){var n=this;t(this,e),this.art=r,r.option.container instanceof Element?this.$container=r.option.container:(this.$container=v(r.option.container),M(this.$container,"No container element found by ".concat(r.option.container))),M(r.constructor.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),r.whitelist.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return v(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option,r=t.backdrop,n=t.theme;t.useSSR||(this.$container.innerHTML=e.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(m(this.$settingInner,"art-backdrop-filter"),m(this.$contextmenu,"art-backdrop-filter"),this.$info&&m(this.$info,"art-backdrop-filter")),this.art.isMobile&&m(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":m(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),yt={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},vt={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},gt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":yt,"zh-tw":vt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=Q(this.languages,t),this.init()}}]),e}();var mt={exports:{}};!function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var h=d*s/l;k(n,"width","".concat(100*h,"%")),k(n,"height","100%"),k(n,"padding","0 ".concat((u-u*h)/2,"px"))}else{var y=l/d/s;k(n,"width","100%"),k(n,"height","".concat(100*y,"%")),k(n,"padding","".concat((p-p*y)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),N(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(r,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");N(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),N(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),N(e,"screenshot",{value:function(){e.getDataURL().then((function(e){W(e,"".concat(r.title||"artplayer","_").concat(G(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(r,this),wt(r,this),function(t,e){var r=t.template.$player;N(e,"fullscreenWeb",{get:function(){return w(r,"art-fullscreen-web")},set:function(n){n?(m(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(b(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),N(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;N(e,"fullscreenRotate",{get:function(){return w(n,"art-fullscreen-rotate")},set:function(r){if(r){m(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,l=o.clientHeight,s=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;N(e,"autoSize",{get:function(){return w(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,l=n.getBoundingClientRect(),s=l.width,u=l.height,p=a/c,f=s/u;if(m(n,"art-auto-size"),f>p)k(o,"width","".concat(u*p/s*100,"%")),k(o,"height","100%");else{var d=s/p/u*100;k(o,"width","100%"),k(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else b(n,"art-auto-size"),k(o,"width",null),k(o,"height",null),t.emit("autoSize")}})}(r,this),function(t,e){N(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){N(e,t,{get:function(){return e.rect[t]}})})),N(e,"x",{get:function(){return e.left+window.pageXOffset}}),N(e,"y",{get:function(){return e.top+window.pageYOffset}})}(r,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;N(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];M(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),N(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(r,this),function(t,e){var r=t.template.$undercover;N(e,"light",{get:function(){return"none"!==P(r,"display",!1)},set:function(e){k(r,"display",e?"block":"none"),t.emit("light",e)}})}(r,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,l=a.$miniClose,s=a.$miniTitle,u=a.$miniHeader,p="",f=!1,d=0,h=0,y=0,v=0;i(u,"mousedown",(function(t){f=!0,d=t.pageX,h=t.pageY,y=e.left,v=e.top})),i(document,"mousemove",(function(t){if(f){m(c,"art-is-dragging");var e=v+t.pageY-h,r=y+t.pageX-d;k(c,"top","".concat(e,"px")),k(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){f=!1,b(c,"art-is-dragging")})),i(l,"click",(function(){e.mini=!1,f=!1,b(c,"art-is-dragging")})),x(s,n.title||r.get("Mini player")),N(e,"mini",{get:function(){return w(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,p=c.style.cssText,m(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)k(c,"top","".concat(i,"px")),k(c,"left","".concat(a,"px")),$(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var l=document.body,s=l.clientHeight-e.height-50,f=l.clientWidth-e.width-50;o.set("top",s),o.set("left",f),k(c,"top","".concat(s,"px")),k(c,"left","".concat(f,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=p,b(c,"art-mini"),k(c,"top",null),k(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),N(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(r,this),function(t,e){var r=[];N(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=J(n[0],0,Math.min(n[1],e.duration)),i=J(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(r,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;N(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(M(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,k(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var l=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},s=0,u=1;switch(r){case-270:s=90,u=l();break;case-180:s=180;break;case-90:s=270,u=l();break;case 90:s=90,u=l();break;case 180:s=180;break;case 270:s=270,u=l()}k(n,"transform","rotate(".concat(s,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),N(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(r,this),function(t,e){var r=t.option,n=t.template.$poster;N(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,k(n,"backgroundImage","url(".concat(t,")"))}})}(r,this),X(r,this)};function kt(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=l(t)););return t}function jt(){return jt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,r){var n=kt(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},jt.apply(this,arguments)}var Pt=function(){function e(r){t(this,e),this.id=0,this.art=r,this.add=this.add.bind(this)}return r(e,[{key:"show",get:function(){return w(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?m(e,r):b(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}},{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);M(!_(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");m(o,"art-".concat(this.name)),m(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):x(this.$parent,o),r.html&&x(o,r.html),r.style&&j(o,r.style),r.tooltip&&R(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&m(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;m(e,"art-control-selector");var a=document.createElement("div");m(a,"art-selector-value"),x(a,t.html),e.innerText="",x(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),l=document.createElement("div");m(l,"art-selector-list"),x(l,c),x(e,l);var s=function(){l.style.left="-".concat(P(l,"width")/2-P(e,"width")/2,"px")};o(e,s),i(e,"click",(function(e){if(w(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,s(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}}]),e}();function St(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Et(t){for(var e=1;e
'),mounted:function(t){var r=!1,o=v(".art-progress-loaded",t),c=v(".art-progress-played",t),l=v(".art-progress-highlight",t),s=v(".art-progress-indicator",t),u=v(".art-progress-tip",t);function p(t,e){"loaded"===t&&k(o,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(s,"left","calc(".concat(100*e,"% - ").concat(P(s,"width")/2,"px)")))}n.forEach((function(t){var e=J(t.time,0,a.duration)/a.duration*100;x(l,''))})),p("loaded",a.loaded),e.on("video:progress",(function(){p("loaded",a.loaded)})),e.on("video:timeupdate",(function(){p("played",a.played)})),e.on("video:ended",(function(){p("played",1)})),i(t,"mousemove",(function(r){k(u,"display","block"),T(r,l)?function(r){var n=Mt(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=Mt(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){k(u,"display","none")})),i(t,"click",(function(t){if(t.target!==s){var r=Mt(e,t),n=r.second;p("played",r.percentage),a.seek=n}})),i(s,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=Mt(e,t),o=n.second,i=n.percentage;m(s,"art-show-indicator"),p("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,b(s,"art-show-indicator"))}))}})}}function qt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Bt(t){for(var e=1;en.clientWidth-l/2?k(t,"left","".concat(n.clientWidth-l,"px")):k(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Yt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Zt(t){for(var e=1;e=3e3&&(r.show=!1,m(c,"art-hide-cursor"),b(c,"art-hover"))})),e.once("ready",(function(){r.add(Ft({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Qt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return te(te({},t),{},{mounted:function(t){var r=e.player,n=x(t,''),o=x(t,'');e.on("loop",(function(e){e?(k(t,"display","block"),k(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),k(o,"left","".concat(e[1]/r.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return At(At({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=x(t,n.play),c=x(t,n.pause);function l(){k(a,"display","flex"),k(c,"display","none")}function s(){k(a,"display","none"),k(c,"display","flex")}R(a,o.get("Play")),R(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?s():l(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){l()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return Ht(Ht({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=x(t,n.volume),l=x(t,n.volumeClose),s=x(t,'
'),u=x(s,'
');function p(t){var e=s.getBoundingClientRect().left;return J(t.pageX-e-6,0,54)/48}function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)k(c,"display","none"),k(l,"display","flex"),k(u,"left","0");else{var e=48*t;k(c,"display","flex"),k(l,"display","none"),k(u,"left","".concat(e,"px"))}}R(c,i.get("Mute")),k(l,"display","none"),e.isMobile&&k(s,"display","none"),f(o.volume),e.on("video:volumechange",(function(){f(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(l,"click",(function(){o.muted=!1})),r(s,"click",(function(t){o.muted=!1,o.volume=p(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=p(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Wt(Wt({},t),{},{mounted:function(t){function r(){var r="".concat(G(e.player.currentTime)," / ").concat(G(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:i.isLive,position:"left",index:30})),r.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return Gt(Gt({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===i.quality.length,position:"right",index:10})),r.add(function(t){return function(e){return Zt(Zt({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;x(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),r.add(function(t){return function(e){return Bt(Bt({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;x(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){R(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),r.add(function(t){return function(e){return Ut(Ut({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;x(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){R(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!i.setting,position:"right",index:40})),r.add(function(t){return function(e){return Dt(Dt({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){R(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!i.pip,position:"right",index:50})),r.add(function(t){return function(e){return $t($t({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){R(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),r.add(function(t){return function(e){return Et(Et({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){R(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){r.add(t)}))})),r}return r(o,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,r=this.art.template,n=r.$progress,i=r.$controlsLeft,a=r.$controlsRight;switch(e.position){case"top":this.$parent=n;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:M(!1,"Control option.position must one of 'top', 'left', 'right'")}jt(l(o.prototype),"add",this).call(this,e)}}]),o}(Pt);function ne(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function oe(t){for(var e=1;e0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=g("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&E(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return ae(ae({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=g("span",t).find((function(t){return t.dataset.ratio===e}));r&&E(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return le(le({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return ue(ue({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return fe(fe({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!i.light,name:"light",index:50})),o.add(function(t){return function(e){return he(he({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),i.contextmenu.forEach((function(t){o.add(t)})),s(c,"contextmenu",(function(t){t.preventDefault(),o.show=!0;var e=t.clientX,r=t.clientY,n=c.getBoundingClientRect(),i=n.height,a=n.width,s=n.left,u=n.top,p=l.getBoundingClientRect(),f=p.height,d=p.width,h=e-s,y=r-u;e+d>s+a&&(h=a-d),r+f>u+i&&(y=i-f),j(l,{top:"".concat(y,"px"),left:"".concat(h,"px")})})),s(c,"click",(function(t){T(t,l)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(Pt);function ge(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var me=function(e){i(o,e);var n=ge(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).art=e,r.name="info",r.art.template.$info&&r.init(),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=g("[data-video]",n);function l(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){l()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&l()}))}}]),o}(Pt);function be(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var we=function(e){i(o,e);var n=be(o);function o(e){var r;t(this,o),(r=n.call(this,e)).name="subtitle";var i=e.option.subtitle,a=e.template.$subtitle;return j(a,i.style),i.url&&r.init(i.url),i.bilingual&&m(a,"art-bilingual"),r}return r(o,[{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return w(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?m(e,"art-bilingual"):b(e,"art-bilingual")}},{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===a(t)?j(r,t):k(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(K(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,l=c.$subtitle,s=c.$video,u=c.$track;if(!u){var p=document.createElement("track");p.default=!0,p.kind="metadata",s.appendChild(p),this.art.template.$track=p,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||I(t)){case"srt":return q(F(o));case"ass":return q(B(o));case"vtt":return q(o);default:return t}})).then((function(t){return l.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}}]),o}(Pt);var xe=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){T(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){m(r,"art-hover"),t.emit("hover",!0)}),(function(){b(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=t.player,o=Z((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(r,n),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=J((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=J(r.currentTime+60*e,0,r.duration),n.show="".concat(G(c)," / ").concat(G(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(r,n),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=Z((function(){t.emit("view",$(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new L("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new L("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),e}(),Oe=function(){function e(r){var n=this;t(this,e),this.keys={};var o=r.option,i=r.player,a=r.events.proxy;o.hotkey&&r.once("ready",(function(){n.add(27,(function(){i.fullscreenWeb&&(i.fullscreenWeb=!1)})),n.add(32,(function(){i.toggle=!0})),n.add(37,(function(){i.backward=5})),n.add(38,(function(){i.volume+=.1})),n.add(39,(function(){i.forward=5})),n.add(40,(function(){i.volume-=.1})),a(window,"keydown",(function(t){if(r.isFocus){var e=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==o&&"true"!==o){var i=n.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(r)})),r.emit("hotkey",t))}}}))}))}return r(e,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),e}();function ke(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var je=function(e){i(n,e);var r=ke(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="layer",o.$parent=e.template.$layer,e.once("ready",(function(){e.option.layers.forEach((function(t){o.add(t)}))})),o}return n}(Pt);function Pe(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var Se=function(e){i(n,e);var r=Pe(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="loading",x(e.template.$loading,e.icons.loading),o}return n}(Pt),Ee=function(){function e(r){t(this,e),this.art=r,this.time=2e3,this.timer=null}return r(e,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,m(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",b(r,"art-notice-show")}),this.time)}}]),e}();function Re(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var $e=function(e){i(n,e);var r=Re(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="mask",x(e.template.$state,e.icons.state),o}return n}(Pt);function Te(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var De=function e(r){var n=this;t(this,e);var o=function(t){for(var e=1;e',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){N(n,t,{get:function(){var e=document.createElement("i");return m(e,"art-icon"),m(e,"art-icon-".concat(t)),x(e,o[t]),e}})}))};function ze(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ae(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=g("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Le(Le({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=v(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=g("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Be(Be({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=v(".art-setting-range input",t),i=v(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}))})),e.on("blur",(function(){o.show=!1}))),o}return n}(Pt),Ve=function(){function e(){t(this,e),this.name="artplayer_settings",this.settings={}}return r(e,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(t,e){try{var r=Object.assign({},this.get(),et({},t,e));window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[t]=e}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),e}();function He(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=v(".art-setting-range input",e),i=v(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Ne(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(He);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var l=Array.from(o.$track.track.cues),s=e(r,-5,5);l.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+s,0,a.duration),t.endTime=e(c[r].endTime+s,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Ue(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else M(!1,"Playback of this file format is not supported")}}function l(t){var r=x(t,'');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function _e(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=x(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=I(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):M(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Xe(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Qe(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function Ye(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;k(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(O(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){O(r.firstElementChild),o()}),3e3):k(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(x(r,"

".concat(K(t),"

")),k(r,"display","block"),clearTimeout(n),o())}}}var Ze=function(){function e(r){var n=this;t(this,e),this.art=r,this.id=0;var o=r.option;o.subtitle.url&&o.subtitleOffset&&this.add(Ne),!o.isLive&&o.miniProgressBar&&this.add(Xe),o.localVideo&&this.add(Ue),o.localSubtitle&&this.add(_e),o.networkMonitor&&this.add(Qe),o.log&&this.add(Ye),r.option.plugins.forEach((function(t){n.add(t)}))}return r(e,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return M(!_(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),N(this,r,{value:e}),this}}]),e}(),Je=function e(r){t(this,e);var n=r.option,o=r.events.proxy,i=r.template.$video;ft.events.forEach((function(t){o(i,t,(function(t){r.emit("video:".concat(t.type),t)}))})),Object.keys(n.moreVideoAttr).forEach((function(t){i[t]=n.moreVideoAttr[t]})),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=J(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),i.controls=!0;var a=n.type||I(n.url),c=n.customType[a];a&&c?(c(i,n.url,r),r.emit("customType",a)):(i.src=n.url,r.emit("url",i.src))};function Ge(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var Ke=0,tr=[],er=function(e){i(a,e);var o=Ge(a);function a(e){var r;return t(this,a),(r=o.call(this)).option=u(Q(a.option,e),pt),r.isFocus=!1,r.isDestroy=!1,r.userAgent=f,r.isMobile=d,r.isWechat=y,r.whitelist=new dt(n(r)),r.template=new ht(n(r)),r.events=new xe(n(r)),r.whitelist.state?(r.storage=new Ve(n(r)),r.icons=new De(n(r)),r.i18n=new gt(n(r)),r.notice=new Ee(n(r)),r.player=new Ot(n(r)),r.layers=new je(n(r)),r.controls=new re(n(r)),r.contextmenu=new ve(n(r)),r.subtitle=new we(n(r)),r.info=new me(n(r)),r.loading=new Se(n(r)),r.hotkey=new Oe(n(r)),r.mask=new $e(n(r)),r.setting=new We(n(r)),r.plugins=new Ze(n(r))):r.mobile=new Je(n(r)),Ke+=1,r.id=Ke,tr.push(n(r)),r}return r(a,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),tr.splice(tr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return tr}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return ft}},{key:"utils",get:function(){return tt}},{key:"scheme",get:function(){return pt}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return ht.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),a}(p);return console.log("%c ArtPlayer %c 3.5.31 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),er})); diff --git a/scripts/creatRollupConfig.js b/scripts/creatRollupConfig.js index 5cb0385f0..8c0afbce3 100644 --- a/scripts/creatRollupConfig.js +++ b/scripts/creatRollupConfig.js @@ -1,19 +1,19 @@ const fs = require('fs'); const path = require('path'); -const babel = require('rollup-plugin-babel'); -const commonjs = require('rollup-plugin-commonjs'); -const nodeResolve = require('rollup-plugin-node-resolve'); +const { babel } = require('@rollup/plugin-babel'); +const commonjs = require('@rollup/plugin-commonjs'); +const { nodeResolve } = require('@rollup/plugin-node-resolve'); const postcss = require('rollup-plugin-postcss'); const { eslint } = require('rollup-plugin-eslint'); const autoprefixer = require('autoprefixer'); const cssnano = require('cssnano'); -const replace = require('rollup-plugin-replace'); +const replace = require('@rollup/plugin-replace'); const svgo = require('rollup-plugin-svgo'); const { sizeSnapshot } = require('rollup-plugin-size-snapshot'); const { terser } = require('rollup-plugin-terser'); const copyAfterBuild = require('./copyAfterBuild'); const removeHtmlSpace = require('./removeHtmlSpace'); -const json = require('rollup-plugin-json'); +const json = require('@rollup/plugin-json'); module.exports = function creatRollupConfig(projectPath) { const packageJson = JSON.parse(fs.readFileSync(path.join(projectPath, 'package.json'), 'utf-8')); @@ -70,7 +70,7 @@ module.exports = function creatRollupConfig(projectPath) { nodeResolve(), commonjs(), babel({ - runtimeHelpers: true, + babelHelpers: 'runtime', exclude: ['node_modules/**', 'packages/**/node_modules/**'], presets: [['@babel/env', { modules: false }]], plugins: ['@babel/plugin-external-helpers', '@babel/plugin-transform-runtime'], @@ -79,6 +79,7 @@ module.exports = function creatRollupConfig(projectPath) { raw: true, }), replace({ + preventAssignment: true, exclude: 'node_modules/**', __ENV__: JSON.stringify(process.env.NODE_ENV || 'development'), __VERSION__: version, From c5c4cf73eb121bdfb4cc74537bb578a1f1b96651 Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 12:24:01 +0800 Subject: [PATCH 02/61] =?UTF-8?q?=E8=A7=84=E8=8C=83=E5=8C=96play=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/uncompiled/artplayer.js | 89 +++++----- docs/uncompiled/artplayer.js.map | 2 +- packages/artplayer-plugin-gif/.npmignore | 9 - packages/artplayer-plugin-gif/.npmrc | 1 - packages/artplayer-plugin-gif/README.md | 73 -------- .../dist/artplayer-plugin-gif.js | 8 - packages/artplayer-plugin-gif/package.json | 30 ---- packages/artplayer-plugin-gif/src/index.js | 159 ------------------ packages/artplayer-react/.npmignore | 9 - packages/artplayer-react/.npmrc | 1 - packages/artplayer-react/README.md | 41 ----- .../artplayer-react/dist/artplayer-react.js | 8 - packages/artplayer-react/package.json | 28 --- packages/artplayer-react/src/index.js | 41 ----- packages/artplayer-vue/.npmignore | 9 - packages/artplayer-vue/.npmrc | 1 - packages/artplayer-vue/README.md | 39 ----- packages/artplayer-vue/dist/artplayer-vue.js | 8 - packages/artplayer-vue/package.json | 25 --- packages/artplayer-vue/src/index.js | 37 ---- .../artplayer/src/control/playAndPause.js | 4 +- packages/artplayer/src/control/setting.js | 2 +- packages/artplayer/src/control/subtitle.js | 2 +- packages/artplayer/src/hotkey.js | 2 +- packages/artplayer/src/player/eventInit.js | 8 +- packages/artplayer/src/player/pauseMix.js | 15 +- packages/artplayer/src/player/playMix.js | 39 ++--- packages/artplayer/src/player/switchMix.js | 2 +- packages/artplayer/src/player/toggleMix.js | 12 +- 29 files changed, 81 insertions(+), 623 deletions(-) delete mode 100644 packages/artplayer-plugin-gif/.npmignore delete mode 100644 packages/artplayer-plugin-gif/.npmrc delete mode 100644 packages/artplayer-plugin-gif/README.md delete mode 100644 packages/artplayer-plugin-gif/dist/artplayer-plugin-gif.js delete mode 100644 packages/artplayer-plugin-gif/package.json delete mode 100644 packages/artplayer-plugin-gif/src/index.js delete mode 100644 packages/artplayer-react/.npmignore delete mode 100644 packages/artplayer-react/.npmrc delete mode 100644 packages/artplayer-react/README.md delete mode 100644 packages/artplayer-react/dist/artplayer-react.js delete mode 100644 packages/artplayer-react/package.json delete mode 100644 packages/artplayer-react/src/index.js delete mode 100644 packages/artplayer-vue/.npmignore delete mode 100644 packages/artplayer-vue/.npmrc delete mode 100644 packages/artplayer-vue/README.md delete mode 100644 packages/artplayer-vue/dist/artplayer-vue.js delete mode 100644 packages/artplayer-vue/package.json delete mode 100644 packages/artplayer-vue/src/index.js diff --git a/docs/uncompiled/artplayer.js b/docs/uncompiled/artplayer.js index efea4be49..7f33bb66c 100644 --- a/docs/uncompiled/artplayer.js +++ b/docs/uncompiled/artplayer.js @@ -1151,7 +1151,7 @@ var reconnectTime = 0; var maxReconnectTime = 5; proxy($video, 'click', function () { - player.toggle = true; + player.toggle(); }); config.events.forEach(function (eventName) { proxy($video, eventName, function (event) { @@ -1179,7 +1179,13 @@ art.on('video:ended', function () { if (option.loop) { player.seek = 0; - player.play = player.playing; + + if (player.playing) { + player.play(); + } else { + player.pause(); + } + art.controls.show = false; art.mask.show = false; } else { @@ -1290,30 +1296,26 @@ mutex = art.option.mutex, $video = art.template.$video; def(player, 'play', { - set: function set(value) { - if (value) { - var promise = $video.play(); + value: function value() { + var promise = $video.play(); - if (promise.then) { - promise.then().catch(function (err) { - notice.show = err; - throw err; - }); - } - - if (mutex) { - instances.filter(function (item) { - return item !== art; - }).forEach(function (item) { - item.player.pause = true; - }); - } - - notice.show = i18n.get('Play'); - art.emit('play'); - } else { - player.pause = true; + if (promise.then) { + promise.then().catch(function (err) { + notice.show = err; + throw err; + }); } + + if (mutex) { + instances.filter(function (item) { + return item !== art; + }).forEach(function (item) { + item.player.pause(); + }); + } + + notice.show = i18n.get('Play'); + art.emit('play'); } }); } @@ -1323,30 +1325,21 @@ i18n = art.i18n, notice = art.notice; def(player, 'pause', { - get: function get() { - return $video.paused; - }, - set: function set(value) { - if (value) { - $video.pause(); - notice.show = i18n.get('Pause'); - art.emit('pause'); - } else { - player.play = true; - } + value: function value() { + $video.pause(); + notice.show = i18n.get('Pause'); + art.emit('pause'); } }); } function toggleMix(art, player) { def(player, 'toggle', { - set: function set(value) { - if (value) { - if (player.playing) { - player.pause = true; - } else { - player.play = true; - } + value: function value() { + if (player.playing) { + player.pause(); + } else { + player.play(); } } }); @@ -1447,7 +1440,7 @@ player.currentTime = currentTime; if (playing) { - player.play = true; + player.play(); } }); @@ -2709,10 +2702,10 @@ tooltip($play, i18n.get('Play')); tooltip($pause, i18n.get('Pause')); proxy($play, 'click', function () { - player.play = true; + player.play(); }); proxy($pause, 'click', function () { - player.pause = true; + player.pause(); }); function showPlay() { @@ -2900,7 +2893,7 @@ subtitle = art.subtitle; append($control, icons.subtitle); proxy($control, 'click', function () { - subtitle.toggle = true; + subtitle.toggle(); }); art.on('subtitle', function (value) { tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle')); @@ -3031,7 +3024,7 @@ setting = art.setting; append($control, icons.setting); proxy($control, 'click', function () { - setting.toggle = true; + setting.toggle(); }); art.on('setting', function (value) { tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting')); @@ -4023,7 +4016,7 @@ }); _this.add(32, function () { - player.toggle = true; + player.toggle(); }); _this.add(37, function () { diff --git a/docs/uncompiled/artplayer.js.map b/docs/uncompiled/artplayer.js.map index 362383734..91bc70eea 100644 --- a/docs/uncompiled/artplayer.js.map +++ b/docs/uncompiled/artplayer.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/inherits.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/typeof.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/construct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/lightMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/light.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n light: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, 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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$undercover = this.query('.art-undercover');\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n if (this.$info) {\n addClass(this.$info, 'art-backdrop-filter');\n }\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(remove) {\n if (remove) {\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.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle = true;\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n player.play = player.playing;\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n set(value) {\n if (value) {\n const promise = $video.play();\n if (promise.then) {\n promise.then().catch(err => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter(item => item !== art)\n .forEach(item => {\n item.player.pause = true;\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n } else {\n player.pause = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n get() {\n return $video.paused;\n },\n set(value) {\n if (value) {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n } else {\n player.play = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n set(value) {\n if (value) {\n if (player.playing) {\n player.pause = true;\n } else {\n player.play = true;\n }\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play = true;\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { def, getStyle, setStyle } from '../utils';\n\nexport default function lightMix(art, player) {\n const { $undercover } = art.template;\n\n def(player, 'light', {\n get() {\n return getStyle($undercover, 'display', false) !== 'none';\n },\n set(value) {\n setStyle($undercover, 'display', value ? 'block' : 'none');\n art.emit('light', value);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 lightMix from './lightMix';\nimport miniMix from './miniMix';\nimport loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n lightMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
${item.name}
`).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play = true;\n });\n\n proxy($pause, 'click', () => {\n player.pause = true;\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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle = true;\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle = true;\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __VERSION__',\n };\n}\n","export default function light(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: i18n.get('Light Off'),\n click: contextmenu => {\n player.light = !player.light;\n contextmenu.show = false;\n },\n mounted: $menu => {\n art.on('light', value => {\n $menu.innerText = i18n.get(value ? 'Light On' : 'Light Off');\n });\n },\n };\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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport info from './info';\nimport version from './version';\nimport light from './light';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n light({\n disable: !option.light,\n name: 'light',\n index: 50,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle = true;\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Rotate')}: 0°\n
\n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

${escape(msg)}

`);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n light: false,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["setPrototypeOf","assertThisInitialized","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","light","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","prototypes","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$undercover","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","play","playing","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pause","pauseMix","paused","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","lightMix","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","superPropBase","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","$track","textTracks","textTrack","activeCues","val","activeCue","opt","subUrl","kind","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","removeHtml","splice","switcher","preload","console"],"mappings":";;;;;;EAAe,SAAS,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE;EAC/D,EAAE,IAAI,EAAE,QAAQ,YAAY,WAAW,CAAC,EAAE;EAC1C,IAAI,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;EAC7D,GAAG;EACH;;ECJA,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;EAC1C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACzC,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;EAC9B,IAAI,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;EAC3D,IAAI,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;EACnC,IAAI,IAAI,OAAO,IAAI,UAAU,EAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;EAC1D,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;EAC9D,GAAG;EACH,CAAC;AACD;EACe,SAAS,YAAY,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;EAC3E,EAAE,IAAI,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;EACvE,EAAE,IAAI,WAAW,EAAE,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;EAC/D,EAAE,OAAO,WAAW,CAAC;EACrB;;ECde,SAAS,sBAAsB,CAAC,IAAI,EAAE;EACrD,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;EACvB,IAAI,MAAM,IAAI,cAAc,CAAC,2DAA2D,CAAC,CAAC;EAC1F,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC;EACd;;ECNe,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;EAC9C,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,IAAI,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;EAC5E,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;EACpB,IAAI,OAAO,CAAC,CAAC;EACb,GAAG,CAAC;AACJ;EACA,EAAE,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC/B;;ECNe,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;EACxD,EAAE,IAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE;EAC/D,IAAI,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;EAC9E,GAAG;AACH;EACA,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;EACzE,IAAI,WAAW,EAAE;EACjB,MAAM,KAAK,EAAE,QAAQ;EACrB,MAAM,QAAQ,EAAE,IAAI;EACpB,MAAM,YAAY,EAAE,IAAI;EACxB,KAAK;EACL,GAAG,CAAC,CAAC;EACL,EAAE,IAAI,UAAU,EAAEA,eAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;EACvD;;ECde,SAAS,OAAO,CAAC,GAAG,EAAE;EACrC,EAAE,yBAAyB,CAAC;AAC5B;EACA,EAAE,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE;EAC3E,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE;EACpC,MAAM,OAAO,OAAO,GAAG,CAAC;EACxB,KAAK,CAAC;EACN,GAAG,MAAM;EACT,IAAI,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE;EACpC,MAAM,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC;EACnI,KAAK,CAAC;EACN,GAAG;AACH;EACA,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;EACtB;;ECZe,SAAS,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE;EAC/D,EAAE,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,EAAE;EAC1E,IAAI,OAAO,IAAI,CAAC;EAChB,GAAG,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;EAC9B,IAAI,MAAM,IAAI,SAAS,CAAC,0DAA0D,CAAC,CAAC;EACpF,GAAG;AACH;EACA,EAAE,OAAOC,sBAAqB,CAAC,IAAI,CAAC,CAAC;EACrC;;ECVe,SAAS,eAAe,CAAC,CAAC,EAAE;EAC3C,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,GAAG,SAAS,eAAe,CAAC,CAAC,EAAE;EAChG,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;EACnD,GAAG,CAAC;EACJ,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;EAC5B;;ECLA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;EAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;EACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;EACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;EACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;EACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;EAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;EACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;EAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;EACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;EAChD,KAAK,MAAM;EACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EAC9B,KAAK;EACL,GAAG,MAAM;EACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EAC5B,GAAG;AACH;EACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;EACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;EACnC,GAAG,MAAM;EACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;EACpD,GAAG;EACH;;;;;;;;;;ECzBA,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAsD,eAAe,CAAC,GAAwE,CAAC,CAACC,cAAI,CAAC,UAAU,CAAc,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,MAAM,EAAE,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,MAAM,EAAE,CAAC,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,OAAM,WAAW,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,OAAM,SAAS,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,OAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,OAAM,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,OAAM,QAAQ,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,OAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,OAAM,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAM,SAAS,CAAC,IAAI,SAAS,CAAC,OAAM,SAAS,CAAC,IAAI,SAAS,CAAC,OAAM,SAAS,CAAC,IAAI,KAAK,CAAC,OAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAM,KAAK,CAAC,IAAI,WAAW,CAAC,OAAM,WAAW,CAAC,IAAI,YAAY,CAAC,OAAM,YAAY,CAAC,IAAI,mBAAmB,CAAC,OAAM,mBAAmB,CAAC,IAAI,YAAY,CAAC,OAAM,YAAY,CAAC,IAAI,aAAa,CAAC,OAAM,aAAa,CAAC,IAAI,YAAY,CAAC,OAAM,YAAY,CAAC,IAAI,aAAa,CAAC,OAAM,aAAa,CAAC,IAAI,cAAc,CAAC,OAAM,cAAc,CAAC,IAAI,cAAc,CAAC,OAAM,cAAc,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,OAAM,UAAU,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,iBAAiB,CAAC,OAAM,QAAQ,CAAC,IAAI,uBAAuB,CAAC,OAAM,aAAa,CAAC,IAAI,uBAAuB,CAAC,OAAM,aAAa,CAAC,IAAI,0BAA0B,CAAC,OAAM,gBAAgB,CAAC,IAAI,yBAAyB,CAAC,OAAM,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,mCAAmC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAK,QAAQ,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,4CAA4C,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;MCAz0HC;;;;;;;aACjB,YAAGC,IAAH,EAASC,EAAT,EAAaC,GAAb,EAAkB;EACd,UAAMC,CAAC,GAAG,KAAKA,CAAL,KAAW,KAAKA,CAAL,GAAS,EAApB,CAAV;EACA,OAACA,CAAC,CAACH,IAAD,CAAD,KAAYG,CAAC,CAACH,IAAD,CAAD,GAAU,EAAtB,CAAD,EAA4BI,IAA5B,CAAiC;EAAEH,QAAAA,EAAE,EAAFA,EAAF;EAAMC,QAAAA,GAAG,EAAHA;EAAN,OAAjC;EACA,aAAO,IAAP;EACH;;;aAED,cAAKF,IAAL,EAAWC,EAAX,EAAeC,GAAf,EAAoB;EAChB,UAAMG,IAAI,GAAG,IAAb;;EACA,eAASC,QAAT,GAA2B;EACvBD,QAAAA,IAAI,CAACE,GAAL,CAASP,IAAT,EAAeM,QAAf;;EADuB,0CAANE,IAAM;EAANA,UAAAA,IAAM;EAAA;;EAEvBP,QAAAA,EAAE,CAACQ,KAAH,CAASP,GAAT,EAAcM,IAAd;EACH;;EACDF,MAAAA,QAAQ,CAACI,CAAT,GAAaT,EAAb;EACA,aAAO,KAAKU,EAAL,CAAQX,IAAR,EAAcM,QAAd,EAAwBJ,GAAxB,CAAP;EACH;;;aAED,cAAKF,IAAL,EAAoB;EAChB,UAAMY,MAAM,GAAG,CAAC,CAAC,KAAKT,CAAL,KAAW,KAAKA,CAAL,GAAS,EAApB,CAAD,EAA0BH,IAA1B,KAAmC,EAApC,EAAwCa,KAAxC,EAAf;;EADgB,yCAANC,IAAM;EAANA,QAAAA,IAAM;EAAA;;EAEhB,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,MAAM,CAACI,MAA3B,EAAmCD,CAAC,IAAI,CAAxC,EAA2C;EACvCH,QAAAA,MAAM,CAACG,CAAD,CAAN,CAAUd,EAAV,CAAaQ,KAAb,CAAmBG,MAAM,CAACG,CAAD,CAAN,CAAUb,GAA7B,EAAkCY,IAAlC;EACH;;EACD,aAAO,IAAP;EACH;;;aAED,aAAId,IAAJ,EAAUiB,QAAV,EAAoB;EAChB,UAAMd,CAAC,GAAG,KAAKA,CAAL,KAAW,KAAKA,CAAL,GAAS,EAApB,CAAV;EACA,UAAMe,IAAI,GAAGf,CAAC,CAACH,IAAD,CAAd;EACA,UAAMmB,UAAU,GAAG,EAAnB;;EACA,UAAID,IAAI,IAAID,QAAZ,EAAsB;EAClB,aAAK,IAAIF,CAAC,GAAG,CAAR,EAAWK,GAAG,GAAGF,IAAI,CAACF,MAA3B,EAAmCD,CAAC,GAAGK,GAAvC,EAA4CL,CAAC,IAAI,CAAjD,EAAoD;EAChD,cAAIG,IAAI,CAACH,CAAD,CAAJ,CAAQd,EAAR,KAAegB,QAAf,IAA2BC,IAAI,CAACH,CAAD,CAAJ,CAAQd,EAAR,CAAWS,CAAX,KAAiBO,QAAhD,EAA0DE,UAAU,CAACf,IAAX,CAAgBc,IAAI,CAACH,CAAD,CAApB;EAC7D;EACJ;;EACD,UAAII,UAAU,CAACH,MAAf,EAAuB;EACnBb,QAAAA,CAAC,CAACH,IAAD,CAAD,GAAUmB,UAAV;EACH,OAFD,MAEO;EACH,eAAOhB,CAAC,CAACH,IAAD,CAAR;EACH;;EACD,aAAO,IAAP;EACH;;;;;;ECxCE,IAAMqB,SAAS,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAM,CAACC,SAAP,CAAiBF,SAAjD,GAA6D,EAA/E;EACA,IAAMG,QAAQ,GAAG,iEAAiEC,IAAjE,CAAsEJ,SAAtE,CAAjB;EACA,IAAMK,QAAQ,GAAG,iCAAiCD,IAAjC,CAAsCJ,SAAtC,CAAjB;EACA,IAAMM,QAAQ,GAAG,kBAAkBF,IAAlB,CAAuBJ,SAAvB,CAAjB;;ECDA,SAASO,KAAT,CAAeC,QAAf,EAA4C;EAAA,MAAnBC,MAAmB,uEAAVC,QAAU;EAC/C,SAAOD,MAAM,CAACE,aAAP,CAAqBH,QAArB,CAAP;EACH;EAEM,SAASI,QAAT,CAAkBJ,QAAlB,EAA+C;EAAA,MAAnBC,MAAmB,uEAAVC,QAAU;EAClD,SAAOG,KAAK,CAACC,IAAN,CAAWL,MAAM,CAACM,gBAAP,CAAwBP,QAAxB,CAAX,CAAP;EACH;EAEM,SAASQ,QAAT,CAAkBC,MAAlB,EAA0BC,SAA1B,EAAqC;EACxC,SAAOD,MAAM,CAACE,SAAP,CAAiBC,GAAjB,CAAqBF,SAArB,CAAP;EACH;EAEM,SAASG,WAAT,CAAqBJ,MAArB,EAA6BC,SAA7B,EAAwC;EAC3C,SAAOD,MAAM,CAACE,SAAP,CAAiBG,MAAjB,CAAwBJ,SAAxB,CAAP;EACH;EAEM,SAASK,QAAT,CAAkBN,MAAlB,EAA0BC,SAA1B,EAAqC;EACxC,SAAOD,MAAM,CAACE,SAAP,CAAiBK,QAAjB,CAA0BN,SAA1B,CAAP;EACH;EAEM,SAASO,MAAT,CAAgBhB,MAAhB,EAAwBiB,KAAxB,EAA+B;EAClC,MAAIA,KAAK,YAAYC,OAArB,EAA8B;EAC1BlB,IAAAA,MAAM,CAACmB,WAAP,CAAmBF,KAAnB;EACH,GAFD,MAEO;EACHjB,IAAAA,MAAM,CAACoB,kBAAP,CAA0B,WAA1B,EAAuCC,MAAM,CAACJ,KAAD,CAA7C;EACH;;EACD,SAAOjB,MAAM,CAACsB,gBAAP,IAA2BtB,MAAM,CAACuB,SAAzC;EACH;EAEM,SAASV,MAAT,CAAgBI,KAAhB,EAAuB;EAC1B,SAAOA,KAAK,CAACO,UAAN,CAAiBC,WAAjB,CAA6BR,KAA7B,CAAP;EACH;EAEM,SAASS,QAAT,CAAkBC,OAAlB,EAA2BC,GAA3B,EAAgCC,KAAhC,EAAuC;EAC1CF,EAAAA,OAAO,CAACG,KAAR,CAAcF,GAAd,IAAqBC,KAArB;EACA,SAAOF,OAAP;EACH;EAEM,SAASI,SAAT,CAAmBJ,OAAnB,EAA4BK,MAA5B,EAAoC;EACvCC,EAAAA,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBG,OAApB,CAA4B,UAACP,GAAD,EAAS;EACjCF,IAAAA,QAAQ,CAACC,OAAD,EAAUC,GAAV,EAAeI,MAAM,CAACJ,GAAD,CAArB,CAAR;EACH,GAFD;EAGA,SAAOD,OAAP;EACH;EAEM,SAASS,QAAT,CAAkBT,OAAlB,EAA2BC,GAA3B,EAAmD;EAAA,MAAnBS,UAAmB,uEAAN,IAAM;EACtD,MAAMR,KAAK,GAAGrC,MAAM,CAAC8C,gBAAP,CAAwBX,OAAxB,EAAiC,IAAjC,EAAuCY,gBAAvC,CAAwDX,GAAxD,CAAd;EACA,SAAOS,UAAU,GAAGG,UAAU,CAACX,KAAD,CAAb,GAAuBA,KAAxC;EACH;EAEM,SAASY,QAAT,CAAkBjC,MAAlB,EAA0B;EAC7B,SAAOJ,KAAK,CAACC,IAAN,CAAWG,MAAM,CAACkC,aAAP,CAAqBC,QAAhC,EAA0CC,MAA1C,CAAiD,UAACC,IAAD;EAAA,WAAUA,IAAI,KAAKrC,MAAnB;EAAA,GAAjD,CAAP;EACH;EAEM,SAASsC,YAAT,CAAsBtC,MAAtB,EAA8BC,SAA9B,EAAyC;EAC5CgC,EAAAA,QAAQ,CAACjC,MAAD,CAAR,CAAiB2B,OAAjB,CAAyB,UAACU,IAAD;EAAA,WAAUjC,WAAW,CAACiC,IAAD,EAAOpC,SAAP,CAArB;EAAA,GAAzB;EACAF,EAAAA,QAAQ,CAACC,MAAD,EAASC,SAAT,CAAR;EACH;EAEM,SAASsC,OAAT,CAAiBvC,MAAjB,EAAyBwC,GAAzB,EAA0C;EAAA,MAAZC,GAAY,uEAAN,IAAM;EAC7C,MAAIvD,QAAJ,EAAc;EACdc,EAAAA,MAAM,CAAC0C,YAAP,CAAoB,YAApB,EAAkCF,GAAlC;EACAxC,EAAAA,MAAM,CAAC0C,YAAP,CAAoB,kBAApB,EAAwCD,GAAxC;EACH;EAEM,SAASE,YAAT,CAAsBC,EAAtB,EAAsC;EAAA,MAAZC,MAAY,uEAAH,CAAG;EACzC,MAAMC,IAAI,GAAGF,EAAE,CAACG,qBAAH,EAAb;EACA,MAAMC,YAAY,GAAGhE,MAAM,CAACiE,WAAP,IAAsBxD,QAAQ,CAACyD,eAAT,CAAyBC,YAApE;EACA,MAAMC,WAAW,GAAGpE,MAAM,CAACqE,UAAP,IAAqB5D,QAAQ,CAACyD,eAAT,CAAyBI,WAAlE;EACA,MAAMC,UAAU,GAAGT,IAAI,CAACU,GAAL,GAAWX,MAAX,IAAqBG,YAArB,IAAqCF,IAAI,CAACU,GAAL,GAAWV,IAAI,CAACW,MAAhB,GAAyBZ,MAAzB,IAAmC,CAA3F;EACA,MAAMa,SAAS,GAAGZ,IAAI,CAACa,IAAL,GAAYd,MAAZ,IAAsBO,WAAW,GAAGP,MAApC,IAA8CC,IAAI,CAACa,IAAL,GAAYb,IAAI,CAACc,KAAjB,GAAyBf,MAAzB,IAAmC,CAAnG;EACA,SAAOU,UAAU,IAAIG,SAArB;EACH;EAEM,SAASG,gBAAT,CAA0BC,KAA1B,EAAiC9D,MAAjC,EAAyC;EAC5C,SAAO8D,KAAK,CAACC,YAAN,IAAsBD,KAAK,CAACC,YAAN,GAAqBC,OAArB,CAA6BhE,MAA7B,IAAuC,CAAC,CAArE;EACH;;EC9Ec,SAAS,iBAAiB,CAAC,EAAE,EAAE;EAC9C,EAAE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;EACpE;;ECFe,SAASiE,2BAAyB,GAAG;EACpD,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC;EACzE,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC;EAC3C,EAAE,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,OAAO,IAAI,CAAC;AAC/C;EACA,EAAE,IAAI;EACN,IAAI,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;EACnF,IAAI,OAAO,IAAI,CAAC;EAChB,GAAG,CAAC,OAAO,CAAC,EAAE;EACd,IAAI,OAAO,KAAK,CAAC;EACjB,GAAG;EACH;;ECTe,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;EACxD,EAAE,IAAIC,2BAAwB,EAAE,EAAE;EAClC,IAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;EACnC,GAAG,MAAM;EACT,IAAI,UAAU,GAAG,SAAS,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;EAC1D,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;EACrB,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;EAC5B,MAAM,IAAI,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;EACvD,MAAM,IAAI,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;EACvC,MAAM,IAAI,KAAK,EAAE5G,eAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;EAC3D,MAAM,OAAO,QAAQ,CAAC;EACtB,KAAK,CAAC;EACN,GAAG;AACH;EACA,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EAC3C;;ECbe,SAAS,gBAAgB,CAAC,KAAK,EAAE;EAChD,EAAE,IAAI,MAAM,GAAG,OAAO,GAAG,KAAK,UAAU,GAAG,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC;AACjE;EACA,EAAE,gBAAgB,GAAG,SAAS,gBAAgB,CAAC,KAAK,EAAE;EACtD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC6G,iBAAgB,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AACjE;EACA,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;EACrC,MAAM,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;EAChF,KAAK;AACL;EACA,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;EACvC,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD;EACA,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;EACjC,KAAK;AACL;EACA,IAAI,SAAS,OAAO,GAAG;EACvB,MAAM,OAAOC,UAAS,CAAC,KAAK,EAAE,SAAS,EAAEC,eAAc,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC;EAC3E,KAAK;AACL;EACA,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;EACvD,MAAM,WAAW,EAAE;EACnB,QAAQ,KAAK,EAAE,OAAO;EACtB,QAAQ,UAAU,EAAE,KAAK;EACzB,QAAQ,QAAQ,EAAE,IAAI;EACtB,QAAQ,YAAY,EAAE,IAAI;EAC1B,OAAO;EACP,KAAK,CAAC,CAAC;EACP,IAAI,OAAO/G,eAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;EAC1C,GAAG,CAAC;AACJ;EACA,EAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;EACjC;;;;;;MCpCagH,cAAb;EAAA;;EAAA;;EACI,0BAAYC,OAAZ,EAAqBC,OAArB,EAA8B;EAAA;;EAAA;;EAC1B,8BAAMD,OAAN;;EACA,QAAI,OAAOE,KAAK,CAACC,iBAAb,KAAmC,UAAvC,EAAmD;EAC/CD,MAAAA,KAAK,CAACC,iBAAN,gCAA8BF,OAAO,IAAI,MAAKG,WAA9C;EACH;;EACD,UAAKjH,IAAL,GAAY,gBAAZ;EAL0B;EAM7B;;EAPL;EAAA,iCAAoC+G,KAApC;EAUO,SAASG,WAAT,CAAqBC,SAArB,EAAgCrC,GAAhC,EAAqC;EACxC,MAAI,CAACqC,SAAL,EAAgB;EACZ,UAAM,IAAIP,cAAJ,CAAmB9B,GAAnB,CAAN;EACH;;EACD,SAAOqC,SAAP;EACH;;ECfM,SAASC,QAAT,CAAkBC,OAAlB,EAA2B;EAC9B,SAAO,kBAAkBC,MAAlB,CACHD,OAAO,CACFE,OADL,CACa,aADb,EAC4B,EAD5B,EAEKA,OAFL,CAEa,gBAFb,EAE+B,OAF/B,EAGKA,OAHL,CAGa,iBAHb,EAGgC,MAHhC,EAIKA,OAJL,CAIa,cAJb,EAI6B,MAJ7B,EAKKA,OALL,CAKa,gBALb,EAK+B,OAL/B,EAMKA,OANL,CAMa,4BANb,EAM2C,OAN3C,EAOKD,MAPL,CAOY,UAPZ,CADG,CAAP;EAUH;EAEM,SAASE,SAAT,CAAmBC,OAAnB,EAA4B;EAC/B,SAAOC,GAAG,CAACC,eAAJ,CACH,IAAIC,IAAJ,CAAS,CAACH,OAAD,CAAT,EAAoB;EAChBI,IAAAA,IAAI,EAAE;EADU,GAApB,CADG,CAAP;EAKH;EAEM,SAASC,QAAT,CAAkBC,GAAlB,EAAuB;EAC1B,MAAMC,KAAK,GAAG,IAAIC,MAAJ,CACV,qBACI,8BADJ,GAEI,8BAFJ,GAGI,UAHJ,GAII,UAJJ,GAKI,eALJ,GAMI,cAPM,EAQV,GARU,CAAd;;EAWA,WAASC,OAAT,GAA4B;EAAA,QAAXC,IAAW,uEAAJ,EAAI;EACxB,WAAOA,IAAI,CACNC,KADE,CACI,MADJ,EAEFC,GAFE,CAEE,UAAC1D,IAAD,EAAO2D,KAAP,EAAcC,GAAd,EAAsB;EACvB,UAAID,KAAK,KAAKC,GAAG,CAACvH,MAAJ,GAAa,CAA3B,EAA8B;EAC1B,YAAI2D,IAAI,CAAC3D,MAAL,KAAgB,CAApB,EAAuB;EACnB,4BAAW2D,IAAX;EACH;;EAED,YAAIA,IAAI,CAAC3D,MAAL,KAAgB,CAApB,EAAuB;EACnB,4BAAW2D,IAAX;EACH;EACJ,OARD,MAQO,IAAIA,IAAI,CAAC3D,MAAL,KAAgB,CAApB,EAAuB;EAC1B,eAAO,CAACsH,KAAK,KAAK,CAAV,GAAc,GAAd,GAAoB,IAArB,IAA6B3D,IAApC;EACH,OAXsB;;;EAcvB,aAAO2D,KAAK,KAAK,CAAV,GAAc3D,IAAd,GAAqB2D,KAAK,KAAKC,GAAG,CAACvH,MAAJ,GAAa,CAAvB,cAA+B2D,IAA/B,eAA4CA,IAA5C,CAA5B;EACH,KAjBE,EAkBF6D,IAlBE,CAkBG,EAlBH,CAAP;EAmBH;;EAED,6BAAoBT,GAAG,CAClBK,KADe,CACT,OADS,EAEfC,GAFe,CAEX,UAAAI,IAAI,EAAI;EACT,QAAMC,CAAC,GAAGD,IAAI,CAACE,KAAL,CAAWX,KAAX,CAAV;EACA,QAAI,CAACU,CAAL,EAAQ,OAAO,IAAP;EACR,WAAO;EACHE,MAAAA,KAAK,EAAEV,OAAO,CAACQ,CAAC,CAAC,CAAD,CAAD,CAAKG,IAAL,EAAD,CADX;EAEHC,MAAAA,GAAG,EAAEZ,OAAO,CAACQ,CAAC,CAAC,CAAD,CAAD,CAAKG,IAAL,EAAD,CAFT;EAGHE,MAAAA,IAAI,EAAEL,CAAC,CAAC,CAAD,CAAD,CACDnB,OADC,CACO,aADP,EACsB,EADtB,EAEDA,OAFC,CAEO,QAFP,EAEiB,IAFjB,EAGDsB,IAHC,GAIDT,KAJC,CAIK,OAJL,EAKDC,GALC,CAKG,UAAA1D,IAAI;EAAA,eAAIA,IAAI,CAACkE,IAAL,EAAJ;EAAA,OALP,EAMDL,IANC,CAMI,IANJ;EAHH,KAAP;EAWH,GAhBe,EAiBf9D,MAjBe,CAiBR,UAAA+D,IAAI;EAAA,WAAIA,IAAJ;EAAA,GAjBI,EAkBfJ,GAlBe,CAkBX,UAACI,IAAD,EAAOH,KAAP,EAAiB;EAClB,QAAIG,IAAJ,EAAU;EACN,uBAAUH,KAAK,GAAG,CAAlB,eAAwBG,IAAI,CAACG,KAA7B,kBAA0CH,IAAI,CAACK,GAA/C,eAAuDL,IAAI,CAACM,IAA5D;EACH;;EACD,WAAO,EAAP;EACH,GAvBe,EAwBfrE,MAxBe,CAwBR,UAAA+D,IAAI;EAAA,WAAIA,IAAI,CAACI,IAAL,EAAJ;EAAA,GAxBI,EAyBfL,IAzBe,CAyBV,MAzBU,CAApB;EA0BH;;ECjFM,SAASQ,MAAT,CAAgBC,GAAhB,EAAqB;EACxB,MAAIA,GAAG,CAACC,QAAJ,CAAa,GAAb,CAAJ,EAAuB;EACnB,WAAOF,MAAM,CAACC,GAAG,CAACb,KAAJ,CAAU,GAAV,EAAe,CAAf,CAAD,CAAb;EACH;;EAED,MAAIa,GAAG,CAACC,QAAJ,CAAa,GAAb,CAAJ,EAAuB;EACnB,WAAOF,MAAM,CAACC,GAAG,CAACb,KAAJ,CAAU,GAAV,EAAe,CAAf,CAAD,CAAb;EACH;;EAED,SAAOa,GAAG,CAACJ,IAAJ,GAAWM,WAAX,GAAyBf,KAAzB,CAA+B,GAA/B,EAAoCgB,GAApC,EAAP;EACH;EAEM,SAASC,QAAT,CAAkBJ,GAAlB,EAAuBjJ,IAAvB,EAA6B;EAChC,MAAMsJ,KAAK,GAAGvH,QAAQ,CAACwH,aAAT,CAAuB,GAAvB,CAAd;EACAD,EAAAA,KAAK,CAAC1F,KAAN,CAAY4F,OAAZ,GAAsB,MAAtB;EACAF,EAAAA,KAAK,CAACG,IAAN,GAAaR,GAAb;EACAK,EAAAA,KAAK,CAACD,QAAN,GAAiBrJ,IAAjB;EACA+B,EAAAA,QAAQ,CAAC2H,IAAT,CAAczG,WAAd,CAA0BqG,KAA1B;EACAA,EAAAA,KAAK,CAACK,KAAN;EACA5H,EAAAA,QAAQ,CAAC2H,IAAT,CAAcnG,WAAd,CAA0B+F,KAA1B;EACH;;ECpBc,SAAS,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE;EACpD,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AACxD;EACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;EACvD,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;EACrB,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC;EACd;;ECPe,SAAS,kBAAkB,CAAC,GAAG,EAAE;EAChD,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAOM,iBAAgB,CAAC,GAAG,CAAC,CAAC;EACvD;;ECHe,SAAS,gBAAgB,CAAC,IAAI,EAAE;EAC/C,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC5H;;ECDe,SAAS,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE;EAC/D,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO;EACjB,EAAE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,OAAOA,iBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAChE,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EACzD,EAAE,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;EAC9D,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EACvD,EAAE,IAAI,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAOA,iBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAClH;;ECRe,SAAS,kBAAkB,GAAG;EAC7C,EAAE,MAAM,IAAI,SAAS,CAAC,sIAAsI,CAAC,CAAC;EAC9J;;ECEe,SAAS,kBAAkB,CAAC,GAAG,EAAE;EAChD,EAAE,OAAOC,kBAAiB,CAAC,GAAG,CAAC,IAAIC,gBAAe,CAAC,GAAG,CAAC,IAAIC,2BAA0B,CAAC,GAAG,CAAC,IAAIC,kBAAiB,EAAE,CAAC;EAClH;;ECJO,IAAMC,GAAG,GAAGlG,MAAM,CAACmG,cAAnB;EAEP,IAAQC,cAAR,GAA2BpG,MAAM,CAACqG,SAAlC,CAAQD,cAAR;EACO,SAASE,GAAT,CAAaC,GAAb,EAAkBtK,IAAlB,EAAwB;EAC3B,SAAOmK,cAAc,CAACI,IAAf,CAAoBD,GAApB,EAAyBtK,IAAzB,CAAP;EACH;EAEM,SAASwK,cAAT,CAAwBlI,MAAxB,EAA4C;EAAA,oCAATmI,OAAS;EAATA,IAAAA,OAAS;EAAA;;EAC/C,SAAOA,OAAO,CAACC,MAAR,CAAe,UAACC,MAAD,EAASC,MAAT,EAAoB;EACtC7G,IAAAA,MAAM,CAAC8G,mBAAP,CAA2BD,MAA3B,EAAmC3G,OAAnC,CAA2C,UAAAP,GAAG,EAAI;EAC9CwD,MAAAA,WAAW,CAAC,CAACmD,GAAG,CAACM,MAAD,EAASjH,GAAT,CAAL,iDAA4DA,GAA5D,EAAX;EACAuG,MAAAA,GAAG,CAACU,MAAD,EAASjH,GAAT,EAAcK,MAAM,CAAC+G,wBAAP,CAAgCF,MAAhC,EAAwClH,GAAxC,CAAd,CAAH;EACH,KAHD;EAIA,WAAOiH,MAAP;EACH,GANM,EAMJrI,MANI,CAAP;EAOH;EAEM,SAASyI,SAAT,GAA+B;EAClC,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAAArG,IAAI;EAAA,WAAIA,IAAI,IAAI,QAAOA,IAAP,MAAgB,QAAxB,IAAoC,CAACzC,KAAK,CAAC+I,OAAN,CAActG,IAAd,CAAzC;EAAA,GAArB;;EADkC,qCAATuG,OAAS;EAATA,IAAAA,OAAS;EAAA;;EAElC,SAAOA,OAAO,CAACR,MAAR,CAAe,UAACS,IAAD,EAAOb,GAAP,EAAe;EACjCvG,IAAAA,MAAM,CAACC,IAAP,CAAYsG,GAAZ,EAAiBrG,OAAjB,CAAyB,UAAAP,GAAG,EAAI;EAC5B,UAAM0H,IAAI,GAAGD,IAAI,CAACzH,GAAD,CAAjB;EACA,UAAM2H,IAAI,GAAGf,GAAG,CAAC5G,GAAD,CAAhB;;EACA,UAAIxB,KAAK,CAAC+I,OAAN,CAAcG,IAAd,KAAuBlJ,KAAK,CAAC+I,OAAN,CAAcI,IAAd,CAA3B,EAAgD;EAC5CF,QAAAA,IAAI,CAACzH,GAAD,CAAJ,GAAY0H,IAAI,CAAC9D,MAAL,OAAA8D,IAAI,qBAAWC,IAAX,EAAhB;EACH,OAFD,MAEO,IAAIL,QAAQ,CAACI,IAAD,CAAR,IAAkBJ,QAAQ,CAACK,IAAD,CAA1B,IAAoC,EAAEA,IAAI,YAAYrI,OAAlB,CAAxC,EAAoE;EACvEmI,QAAAA,IAAI,CAACzH,GAAD,CAAJ,GAAYqH,SAAS,CAACK,IAAD,EAAOC,IAAP,CAArB;EACH,OAFM,MAEA;EACHF,QAAAA,IAAI,CAACzH,GAAD,CAAJ,GAAY2H,IAAZ;EACH;EACJ,KAVD;EAWA,WAAOF,IAAP;EACH,GAbM,EAaJ,EAbI,CAAP;EAcH;;ECnCM,SAASG,KAAT,GAAuB;EAAA,MAARC,EAAQ,uEAAH,CAAG;EAC1B,SAAO,IAAIC,OAAJ,CAAY,UAAAC,OAAO;EAAA,WAAIC,UAAU,CAACD,OAAD,EAAUF,EAAV,CAAd;EAAA,GAAnB,CAAP;EACH;EAEM,SAASI,QAAT,CAAkBC,IAAlB,EAAwBC,IAAxB,EAA8B/E,OAA9B,EAAuC;EAC1C,MAAIgF,OAAJ;;EACA,WAAS7L,EAAT,GAAqB;EAAA,sCAANO,IAAM;EAANA,MAAAA,IAAM;EAAA;;EACjB,QAAMuL,KAAK,GAAG,SAASA,KAAT,GAAiB;EAC3BD,MAAAA,OAAO,GAAG,IAAV;EACAF,MAAAA,IAAI,CAACnL,KAAL,CAAWqG,OAAX,EAAoBtG,IAApB;EACH,KAHD;;EAIAwL,IAAAA,YAAY,CAACF,OAAD,CAAZ;EACAA,IAAAA,OAAO,GAAGJ,UAAU,CAACK,KAAD,EAAQF,IAAR,CAApB;EACH;;EAED5L,EAAAA,EAAE,CAAC+L,YAAH,GAAkB,SAASC,EAAT,GAAc;EAC5BD,IAAAA,YAAY,CAACF,OAAD,CAAZ;EACH,GAFD;;EAIA,SAAO7L,EAAP;EACH;EAEM,SAASiM,QAAT,CAAkBjL,QAAlB,EAA4BkL,KAA5B,EAAmC;EACtC,MAAIC,WAAW,GAAG,KAAlB;EACA,MAAI5L,IAAJ;EACA,MAAIsG,OAAJ;;EACA,WAAS7G,EAAT,GAAsB;EAAA,uCAAPoM,KAAO;EAAPA,MAAAA,KAAO;EAAA;;EAClB,QAAID,WAAJ,EAAiB;EACb5L,MAAAA,IAAI,GAAG6L,KAAP;EACAvF,MAAAA,OAAO,GAAG,IAAV;EACA;EACH;;EAEDsF,IAAAA,WAAW,GAAG,IAAd;EACAnL,IAAAA,QAAQ,CAACR,KAAT,CAAe,IAAf,EAAqB4L,KAArB;EACAX,IAAAA,UAAU,CAAC,YAAM;EACbU,MAAAA,WAAW,GAAG,KAAd;;EACA,UAAI5L,IAAJ,EAAU;EACNP,QAAAA,EAAE,CAACQ,KAAH,CAASqG,OAAT,EAAkBtG,IAAlB;EACAA,QAAAA,IAAI,GAAG,IAAP;EACAsG,QAAAA,OAAO,GAAG,IAAV;EACH;EACJ,KAPS,EAOPqF,KAPO,CAAV;EAQH;;EACD,SAAOlM,EAAP;EACH;;EC7CM,SAASqM,KAAT,CAAeC,GAAf,EAAoBC,CAApB,EAAuBC,CAAvB,EAA0B;EAC7B,SAAOC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASL,GAAT,EAAcG,IAAI,CAACC,GAAL,CAASH,CAAT,EAAYC,CAAZ,CAAd,CAAT,EAAwCC,IAAI,CAACE,GAAL,CAASJ,CAAT,EAAYC,CAAZ,CAAxC,CAAP;EACH;EAEM,SAASI,YAAT,CAAsBC,MAAtB,EAA8B;EACjC,MAAMC,IAAI,GAAG,SAAPA,IAAO,CAAAR,GAAG;EAAA,WAAKA,GAAG,GAAG,EAAN,cAAeA,GAAf,IAAuBpJ,MAAM,CAACoJ,GAAD,CAAlC;EAAA,GAAhB;;EACA,MAAMS,IAAI,GAAGN,IAAI,CAACO,KAAL,CAAWH,MAAM,GAAG,IAApB,CAAb;EACA,MAAMF,GAAG,GAAGF,IAAI,CAACO,KAAL,CAAW,CAACH,MAAM,GAAGE,IAAI,GAAG,IAAjB,IAAyB,EAApC,CAAZ;EACA,MAAME,GAAG,GAAGR,IAAI,CAACO,KAAL,CAAWH,MAAM,GAAGE,IAAI,GAAG,IAAhB,GAAuBJ,GAAG,GAAG,EAAxC,CAAZ;EACA,SAAO,CAACI,IAAI,GAAG,CAAP,GAAW,CAACA,IAAD,EAAOJ,GAAP,EAAYM,GAAZ,CAAX,GAA8B,CAACN,GAAD,EAAMM,GAAN,CAA/B,EAA2C7E,GAA3C,CAA+C0E,IAA/C,EAAqDvE,IAArD,CAA0D,GAA1D,CAAP;EACH;EAEM,SAAS2E,MAAT,CAAgBC,GAAhB,EAAqB;EACxB,SAAOA,GAAG,CAAC7F,OAAJ,CACH,UADG,EAEH,UAAA8F,GAAG;EAAA,WACE;EACG,WAAK,OADR;EAEG,WAAK,MAFR;EAGG,WAAK,MAHR;EAIG,WAAK,OAJR;EAKG,WAAK;EALR,MAMCA,GAND,KAMSA,GAPX;EAAA,GAFA,CAAP;EAWH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECxBc,SAAS,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;EACzD,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE;EAClB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;EACpC,MAAM,KAAK,EAAE,KAAK;EAClB,MAAM,UAAU,EAAE,IAAI;EACtB,MAAM,YAAY,EAAE,IAAI;EACxB,MAAM,QAAQ,EAAE,IAAI;EACpB,KAAK,CAAC,CAAC;EACP,GAAG,MAAM;EACT,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;EACrB,GAAG;AACH;EACA,EAAE,OAAO,GAAG,CAAC;EACb;;;;;ECXA,IAAMZ,CAAC,GAAG,SAAV;EACA,IAAMa,CAAC,GAAG,QAAV;EACA,IAAMC,CAAC,GAAG,QAAV;EACA,IAAMC,CAAC,GAAG,QAAV;EACA,IAAMhB,CAAC,GAAG,OAAV;EACA,IAAMiB,CAAC,GAAG,UAAV;EACA,IAAMC,CAAC,GAAG,QAAV;;EAEA,SAASC,YAAT,CAAsBhK,KAAtB,EAA6BkE,IAA7B,EAAmC+F,KAAnC,EAA0C;EACtC,SAAO1G,WAAW,CAACW,IAAI,KAAKyF,CAAT,IAAc3J,KAAK,YAAYX,OAAhC,YAA4C4K,KAAK,CAACpF,IAAN,CAAW,GAAX,CAA5C,uBAAwE8E,CAAxE,yBAAlB;EACH;;EAED,IAAMO,SAAS,GAAG;EACdC,EAAAA,IAAI,EAAEH,YADQ;EAEdI,EAAAA,OAAO,aAAMtB,CAAN,CAFO;EAGdzM,EAAAA,IAAI,aAAMsN,CAAN,CAHU;EAIdhF,EAAAA,KAAK,aAAMiF,CAAN,CAJS;EAKd3J,EAAAA,KAAK,aAAM4J,CAAN,CALS;EAMd7D,EAAAA,KAAK,aAAM8D,CAAN,CANS;EAOdO,EAAAA,OAAO,aAAMP,CAAN,CAPO;EAQd5I,EAAAA,OAAO,aAAMyI,CAAN,CARO;EASdzL,EAAAA,QAAQ,aAAM2K,CAAN,CATM;EAUdyB,EAAAA,QAAQ,aAAMR,CAAN;EAVM,CAAlB;AAaA,eAAe;EACXS,EAAAA,SAAS,EAAEP,YADA;EAEX1E,EAAAA,GAAG,EAAEqE,CAFM;EAGXa,EAAAA,MAAM,EAAEb,CAHG;EAIXc,EAAAA,KAAK,EAAEd,CAJI;EAKXe,EAAAA,KAAK,EAAEf,CALI;EAMXgB,EAAAA,IAAI,EAAEhB,CANK;EAOXiB,EAAAA,MAAM,EAAEhB,CAPG;EAQXiB,EAAAA,MAAM,EAAE/B,CARG;EASXgC,EAAAA,KAAK,EAAEhC,CATI;EAUXiC,EAAAA,QAAQ,EAAEjC,CAVC;EAWXkC,EAAAA,QAAQ,EAAElC,CAXC;EAYXmC,EAAAA,QAAQ,EAAEnC,CAZC;EAaXoC,EAAAA,IAAI,EAAEpC,CAbK;EAcXqC,EAAAA,IAAI,EAAErC,CAdK;EAeXsC,EAAAA,MAAM,EAAEtC,CAfG;EAgBXuC,EAAAA,YAAY,EAAEvC,CAhBH;EAiBXwC,EAAAA,WAAW,EAAExC,CAjBF;EAkBXyC,EAAAA,UAAU,EAAEzC,CAlBD;EAmBX0C,EAAAA,OAAO,EAAE1C,CAnBE;EAoBX2C,EAAAA,MAAM,EAAE3C,CApBG;EAqBX4C,EAAAA,GAAG,EAAE5C,CArBM;EAsBX6C,EAAAA,KAAK,EAAE7C,CAtBI;EAuBX8C,EAAAA,KAAK,EAAE9C,CAvBI;EAwBX+C,EAAAA,QAAQ,EAAE/C,CAxBC;EAyBXgD,EAAAA,UAAU,EAAEhD,CAzBD;EA0BXiD,EAAAA,aAAa,EAAEjD,CA1BJ;EA2BXkD,EAAAA,cAAc,EAAElD,CA3BL;EA4BXmD,EAAAA,eAAe,EAAEnD,CA5BN;EA6BXoD,EAAAA,UAAU,EAAEpD,CA7BD;EA8BXqD,EAAAA,aAAa,EAAErD,CA9BJ;EA+BXsD,EAAAA,cAAc,EAAEtD,CA/BL;EAgCXuD,EAAAA,MAAM,EAAEvD,CAhCG;EAiCXwD,EAAAA,OAAO,EAAE,CAACxC,CAAD,CAjCE;EAkCXyC,EAAAA,SAAS,EAAE,WAAI5C,CAAJ,cAASG,CAAT,cAAcC,CAAd,EAlCA;EAmCXyC,EAAAA,MAAM,EAAE,CAACtC,SAAD,CAnCG;EAoCXuC,EAAAA,WAAW,EAAE,CAACvC,SAAD,CApCF;EAqCXwC,EAAAA,QAAQ,EAAE,qCAECxC,SAFD;EAGFyC,IAAAA,QAAQ,EAAE,kBAAC3M,KAAD,EAAQkE,IAAR,EAAc+F,KAAd,EAAwB;EAC9B,UAAM0C,QAAQ,GAAG,CAAC,KAAD,EAAQ,MAAR,EAAgB,OAAhB,CAAjB;EACA,aAAOpJ,WAAW,CACdoJ,QAAQ,CAACpH,QAAT,CAAkBvF,KAAlB,CADc,YAEXiK,KAAK,CAACpF,IAAN,CAAW,GAAX,CAFW,0BAEoB8H,QAAQ,CAACC,QAAT,EAFpB,oBAAlB;EAIH;EATC,KArCC;EAiDXC,EAAAA,OAAO,EAAE,CACL;EACIC,IAAAA,OAAO,aAAMhE,CAAN,CADX;EAEIzM,IAAAA,IAAI,EAAEsN,CAFV;EAGIrE,IAAAA,GAAG,EAAEqE;EAHT,GADK,CAjDE;EAwDXoD,EAAAA,SAAS,EAAE,CACP;EACIvI,IAAAA,IAAI,EAAEoF,CADV;EAEIxE,IAAAA,IAAI,EAAEuE;EAFV,GADO,CAxDA;EA8DXqD,EAAAA,UAAU,EAAE;EACR1H,IAAAA,GAAG,EAAEqE,CADG;EAERsD,IAAAA,MAAM,EAAErD,CAFA;EAGRrH,IAAAA,KAAK,EAAEqH,CAHC;EAIRxH,IAAAA,MAAM,EAAEwH,CAJA;EAKRsD,IAAAA,MAAM,EAAEtD;EALA,GA9DD;EAqEXuD,EAAAA,QAAQ,EAAE;EACN7H,IAAAA,GAAG,EAAEqE,CADC;EAEN1J,IAAAA,KAAK,EAAE4J,CAFD;EAGNuD,IAAAA,QAAQ,EAAEzD,CAHJ;EAIN0D,IAAAA,SAAS,EAAEvE;EAJL,GArEC;EA2EXwE,EAAAA,aAAa,EAAEzD,CA3EJ;EA4EX0D,EAAAA,KAAK,EAAE1D,CA5EI;EA6EX2D,EAAAA,UAAU,EAAE3D;EA7ED,CAAf;;AC3BA,eAAe;EACX4D,EAAAA,SAAS,EAAE,CACP,aADO,EAEP,UAFO,EAGP,UAHO,EAIP,YAJO,EAKP,UALO,EAMP,aANO,EAOP,YAPO,EAQP,aARO,EASP,cATO,EAUP,qBAVO,EAWP,UAXO,EAYP,OAZO,EAaP,OAbO,EAcP,MAdO,EAeP,YAfO,EAgBP,OAhBO,EAiBP,cAjBO,EAkBP,QAlBO,EAmBP,cAnBO,EAoBP,QApBO,EAqBP,SArBO,EAsBP,YAtBO,EAuBP,UAvBO,EAwBP,SAxBO,EAyBP,KAzBO,EA0BP,WA1BO,EA2BP,YA3BO,EA4BP,aA5BO,EA6BP,QA7BO,CADA;EAgCXC,EAAAA,OAAO,EAAE,CACL,cADK,EAEL,aAFK,EAGL,MAHK,EAIL,MAJK,EAKL,OALK,CAhCE;EAuCXC,EAAAA,MAAM,EAAE,CACJ,OADI,EAEJ,SAFI,EAGJ,gBAHI,EAIJ,gBAJI,EAKJ,SALI,EAMJ,OANI,EAOJ,OAPI,EAQJ,YARI,EASJ,gBATI,EAUJ,WAVI,EAWJ,OAXI,EAYJ,MAZI,EAaJ,SAbI,EAcJ,UAdI,EAeJ,YAfI,EAgBJ,QAhBI,EAiBJ,SAjBI,EAkBJ,SAlBI,EAmBJ,SAnBI,EAoBJ,YApBI,EAqBJ,cArBI,EAsBJ,SAtBI,CAvCG;EA+DXC,EAAAA,UAAU,EAAE,CACR,OADQ,EAER,QAFQ,EAGR,YAHQ,EAIR,aAJQ,EAKR,QALQ,EAMR,yBANQ,EAOR,yBAPQ,EAQR,aARQ,EASR,0BATQ,EAUR,4BAVQ,EAWR,yBAXQ,EAYR,yBAZQ,EAaR,yBAbQ,EAcR,0BAdQ,EAeR,2BAfQ,EAgBR,yBAhBQ,EAiBR,yBAjBQ,EAkBR,uBAlBQ,EAmBR,uBAnBQ,EAoBR,sBApBQ,EAqBR,sBArBQ;EA/DD,CAAf;;MCAqBC,YACjB,mBAAYC,GAAZ,EAAiB;EAAA;;EACb,MACmBC,MADnB,GAGID,GAHJ,CACIxK,WADJ,CACmByK,MADnB;EAAA,MAEcxB,SAFd,GAGIuB,GAHJ,CAEIE,MAFJ,CAEczB,SAFd;EAIA,OAAK0B,KAAL,GACI,CAACH,GAAG,CAACjQ,QAAL,IACA0O,SAAS,CAAC2B,IAAV,CAAe,UAAClN,IAAD,EAAU;EACrB,YAAQ+M,MAAM,CAAC/M,IAAD,CAAd;EACI,WAAK,QAAL;EACI,eAAOA,IAAI,KAAK,GAAT,IAAgB8M,GAAG,CAACpQ,SAAJ,CAAciF,OAAd,CAAsB3B,IAAtB,IAA8B,CAAC,CAAtD;;EACJ,WAAK,UAAL;EACI,eAAOA,IAAI,CAAC8M,GAAG,CAACpQ,SAAL,CAAX;;EACJ,WAAK,QAAL;EACI,eAAOsD,IAAI,CAAClD,IAAL,CAAUgQ,GAAG,CAACpQ,SAAd,CAAP;;EACJ;EACI,eAAO,KAAP;EARR;EAUH,GAXD,CAFJ;EAcH;;MClBgByQ;EACjB,oBAAYL,GAAZ,EAAiB;EAAA;;EAAA;;EACb,SAAKA,GAAL,GAAWA,GAAX;;EAEA,QAAIA,GAAG,CAACE,MAAJ,CAAWzD,SAAX,YAAgClL,OAApC,EAA6C;EACzC,WAAK+O,UAAL,GAAkBN,GAAG,CAACE,MAAJ,CAAWzD,SAA7B;EACH,KAFD,MAEO;EACH,WAAK6D,UAAL,GAAkBnQ,KAAK,CAAC6P,GAAG,CAACE,MAAJ,CAAWzD,SAAZ,CAAvB;EACAhH,MAAAA,WAAW,CAAC,KAAK6K,UAAN,0CAAmDN,GAAG,CAACE,MAAJ,CAAWzD,SAA9D,EAAX;EACH;;EAEDhH,IAAAA,WAAW,CACPuK,GAAG,CAACxK,WAAJ,CAAgB+K,SAAhB,CAA0BC,KAA1B,CAAgC,UAACC,GAAD;EAAA,aAASA,GAAG,CAACC,QAAJ,CAAaJ,UAAb,KAA4B,KAAI,CAACA,UAA1C;EAAA,KAAhC,CADO,EAEP,yDAFO,CAAX;;EAKA,QAAIN,GAAG,CAACvB,SAAJ,CAAc0B,KAAlB,EAAyB;EACrB,WAAKQ,OAAL;EACH,KAFD,MAEO;EACH,WAAKC,MAAL;EACH;EACJ;;;;aAsED,iBAAM9P,SAAN,EAAiB;EACb,aAAOX,KAAK,CAACW,SAAD,EAAY,KAAKwP,UAAjB,CAAZ;EACH;;;aAED,mBAAU;EACN,6BAAoC,KAAKN,GAAL,CAASE,MAA7C;EAAA,UAAQnC,QAAR,oBAAQA,QAAR;EAAA,UAAkBnB,KAAlB,oBAAkBA,KAAlB;EAAA,UAAyB2B,MAAzB,oBAAyBA,MAAzB;;EAEA,UAAI,CAACA,MAAL,EAAa;EACT,aAAK+B,UAAL,CAAgBO,SAAhB,GAA4BR,QAAQ,CAAChE,IAArC;EACH;;EAED,WAAKyE,WAAL,GAAmB,KAAK3Q,KAAL,CAAW,iBAAX,CAAnB;EACA,WAAK4Q,OAAL,GAAe,KAAK5Q,KAAL,CAAW,mBAAX,CAAf;EACA,WAAK6Q,MAAL,GAAc,KAAK7Q,KAAL,CAAW,YAAX,CAAd;EACA,WAAK8Q,OAAL,GAAe,KAAK9Q,KAAL,CAAW,aAAX,CAAf;EACA,WAAK+Q,SAAL,GAAiB,KAAK/Q,KAAL,CAAW,eAAX,CAAjB;EACA,WAAKgR,QAAL,GAAgB,KAAKhR,KAAL,CAAW,cAAX,CAAhB;EACA,WAAKiR,OAAL,GAAe,KAAKjR,KAAL,CAAW,aAAX,CAAf;EACA,WAAKkR,SAAL,GAAiB,KAAKlR,KAAL,CAAW,eAAX,CAAjB;EACA,WAAKmR,SAAL,GAAiB,KAAKnR,KAAL,CAAW,eAAX,CAAjB;EACA,WAAKoR,aAAL,GAAqB,KAAKpR,KAAL,CAAW,oBAAX,CAArB;EACA,WAAKqR,cAAL,GAAsB,KAAKrR,KAAL,CAAW,qBAAX,CAAtB;EACA,WAAKsR,MAAL,GAAc,KAAKtR,KAAL,CAAW,aAAX,CAAd;EACA,WAAKuR,QAAL,GAAgB,KAAKvR,KAAL,CAAW,cAAX,CAAhB;EACA,WAAKwR,OAAL,GAAe,KAAKxR,KAAL,CAAW,aAAX,CAAf;EACA,WAAKyR,YAAL,GAAoB,KAAKzR,KAAL,CAAW,mBAAX,CAApB;EACA,WAAK0R,KAAL,GAAa,KAAK1R,KAAL,CAAW,WAAX,CAAb;EACA,WAAK2R,MAAL,GAAc,KAAK3R,KAAL,CAAW,YAAX,CAAd;EACA,WAAK4R,QAAL,GAAgB,KAAK5R,KAAL,CAAW,eAAX,CAAhB;EACA,WAAK6R,aAAL,GAAqB,KAAK7R,KAAL,CAAW,oBAAX,CAArB;EACA,WAAK8R,YAAL,GAAoB,KAAK9R,KAAL,CAAW,mBAAX,CAApB;EACA,WAAK+R,KAAL,GAAa,KAAK/R,KAAL,CAAW,WAAX,CAAb;EACA,WAAKgS,UAAL,GAAkB,KAAKhS,KAAL,CAAW,iBAAX,CAAlB;EACA,WAAKiS,UAAL,GAAkB,KAAKjS,KAAL,CAAW,iBAAX,CAAlB;EACA,WAAKkS,WAAL,GAAmB,KAAKlS,KAAL,CAAW,kBAAX,CAAnB;EACA,WAAKmS,UAAL,GAAkB,KAAKnS,KAAL,CAAW,iBAAX,CAAlB;EACA,WAAKoS,UAAL,GAAkB,KAAKpS,KAAL,CAAW,iBAAX,CAAlB;EACA,WAAKqS,YAAL,GAAoB,KAAKrS,KAAL,CAAW,mBAAX,CAApB;EAEA,WAAK4Q,OAAL,CAAa5O,KAAb,CAAmBsQ,WAAnB,CAA+B,SAA/B,EAA0C7F,KAA1C;;EAEA,UAAImB,QAAJ,EAAc;EACVnN,QAAAA,QAAQ,CAAC,KAAKoR,aAAN,EAAqB,qBAArB,CAAR;EACApR,QAAAA,QAAQ,CAAC,KAAK4R,YAAN,EAAoB,qBAApB,CAAR;;EACA,YAAI,KAAKN,KAAT,EAAgB;EACZtR,UAAAA,QAAQ,CAAC,KAAKsR,KAAN,EAAa,qBAAb,CAAR;EACH;EACJ;;EAED,UAAI,KAAKlC,GAAL,CAASjQ,QAAb,EAAuB;EACnBa,QAAAA,QAAQ,CAAC,KAAK0P,UAAN,EAAkB,YAAlB,CAAR;EACH;EACJ;;;aAED,kBAAS;EACL,WAAKA,UAAL,CAAgBO,SAAhB;EAKA,WAAKE,OAAL,GAAe,KAAK5Q,KAAL,CAAW,mBAAX,CAAf;EACA,WAAK6Q,MAAL,GAAc,KAAK7Q,KAAL,CAAW,YAAX,CAAd;EACH;;;aAED,iBAAQe,MAAR,EAAgB;EACZ,UAAIA,MAAJ,EAAY;EACR,aAAKoP,UAAL,CAAgBO,SAAhB,GAA4B,EAA5B;EACH,OAFD,MAEO;EACHjQ,QAAAA,QAAQ,CAAC,KAAKmQ,OAAN,EAAe,aAAf,CAAR;EACH;EACJ;;;WA1ID,eAAkB;EACd;EAiEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCvFgB2B;EACjB,gBAAY1C,GAAZ,EAAiB;EAAA;;EACb,SAAKA,GAAL,GAAWA,GAAX;EACA,SAAK2C,SAAL,GAAiB;EACb,eAASC,IADI;EAEb,eAASC;EAFI,KAAjB;EAIA,SAAKC,IAAL;EACH;;;;aAED,gBAAO;EACH,UAAMjG,IAAI,GAAG,KAAKmD,GAAL,CAASE,MAAT,CAAgBrD,IAAhB,CAAqBnF,WAArB,EAAb;EACA,WAAKqL,QAAL,GAAgB,KAAKJ,SAAL,CAAe9F,IAAf,KAAwB,EAAxC;EACH;;;aAED,aAAI5K,GAAJ,EAAS;EACL,aAAO,KAAK8Q,QAAL,CAAc9Q,GAAd,KAAsBA,GAA7B;EACH;;;aAED,gBAAOC,KAAP,EAAc;EACV,WAAKyQ,SAAL,GAAiBrJ,SAAS,CAAC,KAAKqJ,SAAN,EAAiBzQ,KAAjB,CAA1B;EACA,WAAK4Q,IAAL;EACH;;;;;;ECxBU,SAASE,MAAT,CAAgBhD,GAAhB,EAAqBiD,MAArB,EAA6B;EACxC,MACI/C,MADJ,GAGIF,GAHJ,CACIE,MADJ;EAAA,MAEgBc,MAFhB,GAGIhB,GAHJ,CAEIU,QAFJ,CAEgBM,MAFhB;EAKAxI,EAAAA,GAAG,CAACyK,MAAD,EAAS,KAAT,EAAgB;EACfC,IAAAA,GADe,iBACT;EACF,aAAOlC,MAAM,CAACmC,GAAd;EACH,KAHc;EAIfC,IAAAA,GAJe,eAIX5L,GAJW,EAIN;EACL,UAAM6L,QAAQ,GAAGnD,MAAM,CAAC9J,IAAP,IAAemB,MAAM,CAACC,GAAD,CAAtC;EACA,UAAM8L,YAAY,GAAGpD,MAAM,CAACR,UAAP,CAAkB2D,QAAlB,CAArB;;EACA,UAAIA,QAAQ,IAAIC,YAAhB,EAA8B;EAC1BzJ,QAAAA,KAAK,GAAG0J,IAAR,CAAa,YAAM;EACfvD,UAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,IAAnB;EACA,cAAMvK,MAAM,GAAGoK,YAAY,CAACxK,IAAb,CAAkBkH,GAAlB,EAAuBgB,MAAvB,EAA+BxJ,GAA/B,EAAoCwI,GAApC,CAAf;EACAxH,UAAAA,GAAG,CAACwH,GAAD,EAAMqD,QAAN,EAAgB;EACfnR,YAAAA,KAAK,EAAEgH;EADQ,WAAhB,CAAH;EAGH,SAND;EAOH,OARD,MAQO;EACH8H,QAAAA,MAAM,CAACmC,GAAP,GAAa3L,GAAb;EACAwI,QAAAA,GAAG,CAACE,MAAJ,CAAW1I,GAAX,GAAiBA,GAAjB;EACAwI,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,KAAT,EAAgBlM,GAAhB;EACH;EACJ;EApBc,GAAhB,CAAH;EAsBH;;EC5Bc,SAASmM,QAAT,CAAkB3D,GAAlB,EAAuBiD,MAAvB,EAA+B;EAC1C,MACI/C,MADJ,GAIIF,GAJJ,CACIE,MADJ;EAAA,MAEI0D,OAFJ,GAII5D,GAJJ,CAEI4D,OAFJ;EAAA,sBAII5D,GAJJ,CAGIU,QAHJ;EAAA,MAGgBM,MAHhB,iBAGgBA,MAHhB;EAAA,MAGwBC,OAHxB,iBAGwBA,OAHxB;EAMA3O,EAAAA,MAAM,CAACC,IAAP,CAAY2N,MAAM,CAACV,aAAnB,EAAkChN,OAAlC,CAA0C,UAACP,GAAD,EAAS;EAC/C+O,IAAAA,MAAM,CAAC/O,GAAD,CAAN,GAAciO,MAAM,CAACV,aAAP,CAAqBvN,GAArB,CAAd;EACH,GAFD;;EAIA,MAAIiO,MAAM,CAAClD,KAAX,EAAkB;EACdgE,IAAAA,MAAM,CAAChE,KAAP,GAAekD,MAAM,CAAClD,KAAtB;EACH;;EAED,MAAIkD,MAAM,CAACpD,MAAX,EAAmB;EACfkE,IAAAA,MAAM,CAAClE,MAAP,GAAgBjC,KAAK,CAACqF,MAAM,CAACpD,MAAR,EAAgB,CAAhB,EAAmB,CAAnB,CAArB;EACH;;EAED,MAAMA,MAAM,GAAG8G,OAAO,CAACV,GAAR,CAAY,QAAZ,CAAf;;EACA,MAAIpG,MAAJ,EAAY;EACRkE,IAAAA,MAAM,CAAClE,MAAP,GAAgBjC,KAAK,CAACiC,MAAD,EAAS,CAAT,EAAY,CAAZ,CAArB;EACH;;EAED,MAAIoD,MAAM,CAACxD,MAAX,EAAmB;EACf;EACA3K,IAAAA,QAAQ,CAACkP,OAAD,EAAU,iBAAV,gBAAoCf,MAAM,CAACxD,MAA3C,OAAR;EACH;;EAED,MAAIwD,MAAM,CAACjD,QAAX,EAAqB;EACjB+D,IAAAA,MAAM,CAAC/D,QAAP,GAAkBiD,MAAM,CAACjD,QAAzB;EACH;;EAED+D,EAAAA,MAAM,CAACpC,QAAP,GAAkB,KAAlB;EACAqE,EAAAA,MAAM,CAACzL,GAAP,GAAa0I,MAAM,CAAC1I,GAApB;EACH;;EClCc,SAASqM,SAAT,CAAmB7D,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3C,MACI/C,MADJ,GAMIF,GANJ,CACIE,MADJ;EAAA,MAEc4D,KAFd,GAMI9D,GANJ,CAEIH,MAFJ,CAEciE,KAFd;EAAA,sBAMI9D,GANJ,CAGIU,QAHJ;EAAA,MAGgBK,OAHhB,iBAGgBA,OAHhB;EAAA,MAGyBC,MAHzB,iBAGyBA,MAHzB;EAAA,MAGiCC,OAHjC,iBAGiCA,OAHjC;EAAA,MAII8C,IAJJ,GAMI/D,GANJ,CAII+D,IAJJ;EAAA,MAKIC,MALJ,GAMIhE,GANJ,CAKIgE,MALJ;EAQA,MAAIC,aAAa,GAAG,CAApB;EACA,MAAMC,gBAAgB,GAAG,CAAzB;EAEAJ,EAAAA,KAAK,CAAC9C,MAAD,EAAS,OAAT,EAAkB,YAAM;EACzBiC,IAAAA,MAAM,CAACkB,MAAP,GAAgB,IAAhB;EACH,GAFI,CAAL;EAIAC,EAAAA,MAAM,CAACvE,MAAP,CAAcrN,OAAd,CAAsB,UAAC6R,SAAD,EAAe;EACjCP,IAAAA,KAAK,CAAC9C,MAAD,EAASqD,SAAT,EAAoB,UAAC1P,KAAD,EAAW;EAChCqL,MAAAA,GAAG,CAAC0D,IAAJ,iBAAkB/O,KAAK,CAACyB,IAAxB,GAAgCzB,KAAhC;EACH,KAFI,CAAL;EAGH,GAJD,EAhB2C;EAwB3C;;EAEAqL,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,eAAP,EAAwB,YAAM;EAC1B+U,IAAAA,aAAa,GAAG,CAAhB;EACAjE,IAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,KAAnB;EACH,GAHD;EAKAzD,EAAAA,GAAG,CAACsE,IAAJ,CAAS,eAAT,EAA0B,YAAM;EAC5BtE,IAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,KAAnB;EACAzD,IAAAA,GAAG,CAACpB,QAAJ,CAAa6E,IAAb,GAAoB,IAApB;EACAzD,IAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,IAAhB;EACAzD,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,OAAT;EACH,GALD,EA/B2C;EAwC3C;EAEA;EAEA;EAEA;EAEA;;EAEA1D,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,aAAP,EAAsB,YAAM;EACxB,QAAIgR,MAAM,CAAC9C,IAAX,EAAiB;EACb6F,MAAAA,MAAM,CAACuB,IAAP,GAAc,CAAd;EACAvB,MAAAA,MAAM,CAACwB,IAAP,GAAcxB,MAAM,CAACyB,OAArB;EACA1E,MAAAA,GAAG,CAACpB,QAAJ,CAAa6E,IAAb,GAAoB,KAApB;EACAzD,MAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,KAAhB;EACH,KALD,MAKO;EACHzD,MAAAA,GAAG,CAACpB,QAAJ,CAAa6E,IAAb,GAAoB,IAApB;EACAzD,MAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,IAAhB;EACH;EACJ,GAVD;EAYAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,aAAP,EAAsB,YAAM;EACxB,QAAI+U,aAAa,GAAGC,gBAApB,EAAsC;EAClCrK,MAAAA,KAAK,CAAC,IAAD,CAAL,CAAY0J,IAAZ,CAAiB,YAAM;EACnBU,QAAAA,aAAa,IAAI,CAAjB;EACAhB,QAAAA,MAAM,CAACzL,GAAP,GAAa0I,MAAM,CAAC1I,GAApB;EACAwM,QAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,WAAT,CAAjB,eAA2Ce,aAA3C;EACAjE,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,OAAT,EAAkBO,aAAlB;EACH,OALD;EAMH,KAPD,MAOO;EACHjE,MAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,KAAnB;EACAzD,MAAAA,GAAG,CAACpB,QAAJ,CAAa6E,IAAb,GAAoB,KAApB;EACA7S,MAAAA,QAAQ,CAACmQ,OAAD,EAAU,WAAV,CAAR;EACAlH,MAAAA,KAAK,CAAC,IAAD,CAAL,CAAY0J,IAAZ,CAAiB,YAAM;EACnBS,QAAAA,MAAM,CAACP,IAAP,GAAcM,IAAI,CAACb,GAAL,CAAS,mBAAT,CAAd;EACAlD,QAAAA,GAAG,CAAC2E,OAAJ,CAAY,KAAZ;EACH,OAHD;EAIH;EACJ,GAjBD,EA9D2C;EAmF3C;;EAEA3E,EAAAA,GAAG,CAACsE,IAAJ,CAAS,sBAAT,EAAiC,YAAM;EACnCrB,IAAAA,MAAM,CAAC/F,QAAP,GAAkBgD,MAAM,CAAChD,QAAzB;;EACA,QAAI8C,GAAG,CAACjQ,QAAR,EAAkB;EACdiQ,MAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,KAAnB;EACAzD,MAAAA,GAAG,CAACpB,QAAJ,CAAa6E,IAAb,GAAoB,IAApB;EACAzD,MAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,IAAhB;EACH;EACJ,GAPD;EASAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,iBAAP,EAA0B,YAAM;EAC5B8Q,IAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,IAAnB;EACH,GAFD;EAIAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,aAAP,EAAsB,YAAM;EACxB8Q,IAAAA,GAAG,CAACpB,QAAJ,CAAa6E,IAAb,GAAoB,IAApB;EACAzD,IAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,IAAhB;EACH,GAHD;EAKAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,YAAP,EAAqB,YAAM;EACvB8Q,IAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,KAAhB;EACA1R,IAAAA,QAAQ,CAACkP,OAAD,EAAU,SAAV,EAAqB,MAArB,CAAR;EACH,GAHD;EAKAjB,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,eAAP,EAAwB,YAAM;EAC1B8Q,IAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,KAAhB;EACH,GAFD,EA5G2C;EAkH3C;EAEA;EAEA;;EAEAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,cAAP,EAAuB,YAAM;EACzB8Q,IAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,KAAnB;EACH,GAFD;EAIAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,eAAP,EAAwB,YAAM;EAC1B8Q,IAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,IAAnB;EACH,GAFD,EA5H2C;EAkI3C;EAEA;EAEA;;EAEAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,kBAAP,EAA2B,YAAM;EAC7B8Q,IAAAA,GAAG,CAACuE,IAAJ,CAASd,IAAT,GAAgB,KAAhB;EACH,GAFD,EAxI2C;EA8I3C;;EAEAzD,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,eAAP,EAAwB,YAAM;EAC1B8Q,IAAAA,GAAG,CAACwD,OAAJ,CAAYC,IAAZ,GAAmB,IAAnB;EACH,GAFD;EAGH;;ECpJc,SAASmB,aAAT,CAAuB5E,GAAvB,EAA4BiD,MAA5B,EAAoC;EAC/C,MAAM4B,SAAS,GAAG,CAAC,MAAD,EAAS,KAAT,EAAgB,YAAhB,EAA8B,eAA9B,EAA+C,kBAA/C,CAAlB;;EAEA,WAASC,SAAT,CAAmBC,KAAnB,EAA0B;EACtBA,IAAAA,KAAK,CAACvS,OAAN,CAAc,UAACjE,IAAD,EAAU;EACpByR,MAAAA,GAAG,CAAC9Q,EAAJ,CAAOX,IAAP,EAAa,YAAM;EACf,YAAI0U,MAAM,CAAC1U,IAAD,CAAV,EAAkB;EACdwW,UAAAA,KAAK,CACA9R,MADL,CACY,UAACC,IAAD;EAAA,mBAAUA,IAAI,KAAK3E,IAAnB;EAAA,WADZ,EAEKiE,OAFL,CAEa,UAACU,IAAD,EAAU;EACf,gBAAI+P,MAAM,CAAC/P,IAAD,CAAV,EAAkB;EACd+P,cAAAA,MAAM,CAAC/P,IAAD,CAAN,GAAe,KAAf;EACH;EACJ,WANL;EAOH;EACJ,OAVD;EAWH,KAZD;EAaH;;EAED4R,EAAAA,SAAS,CAACD,SAAD,CAAT;EAEArM,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtBC,IAAAA,GADsB,iBAChB;EACF,aAAO2B,SAAS,CAACrE,KAAV,CAAgB,UAACjS,IAAD;EAAA,eAAU,CAAC0U,MAAM,CAAC1U,IAAD,CAAjB;EAAA,OAAhB,CAAP;EACH;EAHqB,GAAvB,CAAH;EAKH;;EC1Bc,SAASyW,OAAT,CAAiBhF,GAAjB,EAAsBiD,MAAtB,EAA8B;EACzC,MACIc,IADJ,GAMI/D,GANJ,CACI+D,IADJ;EAAA,MAEIC,MAFJ,GAMIhE,GANJ,CAEIgE,MAFJ;EAAA,MAGmBzD,SAHnB,GAMIP,GANJ,CAGIxK,WAHJ,CAGmB+K,SAHnB;EAAA,MAIc1C,KAJd,GAMImC,GANJ,CAIIE,MAJJ,CAIcrC,KAJd;EAAA,MAKgBmD,MALhB,GAMIhB,GANJ,CAKIU,QALJ,CAKgBM,MALhB;EAQAxI,EAAAA,GAAG,CAACyK,MAAD,EAAS,MAAT,EAAiB;EAChBG,IAAAA,GADgB,eACZlR,KADY,EACL;EACP,UAAIA,KAAJ,EAAW;EACP,YAAM+S,OAAO,GAAGjE,MAAM,CAACyD,IAAP,EAAhB;;EACA,YAAIQ,OAAO,CAAC1B,IAAZ,EAAkB;EACd0B,UAAAA,OAAO,CAAC1B,IAAR,GAAe2B,KAAf,CAAqB,UAAAC,GAAG,EAAI;EACxBnB,YAAAA,MAAM,CAACP,IAAP,GAAc0B,GAAd;EACA,kBAAMA,GAAN;EACH,WAHD;EAIH;;EAED,YAAItH,KAAJ,EAAW;EACP0C,UAAAA,SAAS,CACJtN,MADL,CACY,UAAAC,IAAI;EAAA,mBAAIA,IAAI,KAAK8M,GAAb;EAAA,WADhB,EAEKxN,OAFL,CAEa,UAAAU,IAAI,EAAI;EACbA,YAAAA,IAAI,CAAC+P,MAAL,CAAYmC,KAAZ,GAAoB,IAApB;EACH,WAJL;EAKH;;EAEDpB,QAAAA,MAAM,CAACP,IAAP,GAAcM,IAAI,CAACb,GAAL,CAAS,MAAT,CAAd;EACAlD,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT;EACH,OAnBD,MAmBO;EACHT,QAAAA,MAAM,CAACmC,KAAP,GAAe,IAAf;EACH;EACJ;EAxBe,GAAjB,CAAH;EA0BH;;ECnCc,SAASC,QAAT,CAAkBrF,GAAlB,EAAuBiD,MAAvB,EAA+B;EAC1C,MACgBjC,MADhB,GAIIhB,GAJJ,CACIU,QADJ,CACgBM,MADhB;EAAA,MAEI+C,IAFJ,GAII/D,GAJJ,CAEI+D,IAFJ;EAAA,MAGIC,MAHJ,GAIIhE,GAJJ,CAGIgE,MAHJ;EAMAxL,EAAAA,GAAG,CAACyK,MAAD,EAAS,OAAT,EAAkB;EACjBC,IAAAA,GADiB,iBACX;EACF,aAAOlC,MAAM,CAACsE,MAAd;EACH,KAHgB;EAIjBlC,IAAAA,GAJiB,eAIblR,KAJa,EAIN;EACP,UAAIA,KAAJ,EAAW;EACP8O,QAAAA,MAAM,CAACoE,KAAP;EACApB,QAAAA,MAAM,CAACP,IAAP,GAAcM,IAAI,CAACb,GAAL,CAAS,OAAT,CAAd;EACAlD,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,OAAT;EACH,OAJD,MAIO;EACHT,QAAAA,MAAM,CAACwB,IAAP,GAAc,IAAd;EACH;EACJ;EAZgB,GAAlB,CAAH;EAcH;;ECrBc,SAASc,SAAT,CAAmBvF,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3CzK,EAAAA,GAAG,CAACyK,MAAD,EAAS,QAAT,EAAmB;EAClBG,IAAAA,GADkB,eACdlR,KADc,EACP;EACP,UAAIA,KAAJ,EAAW;EACP,YAAI+Q,MAAM,CAACyB,OAAX,EAAoB;EAChBzB,UAAAA,MAAM,CAACmC,KAAP,GAAe,IAAf;EACH,SAFD,MAEO;EACHnC,UAAAA,MAAM,CAACwB,IAAP,GAAc,IAAd;EACH;EACJ;EACJ;EATiB,GAAnB,CAAH;EAWH;;ECZc,SAASe,SAAT,CAAiBxF,GAAjB,EAAsBiD,MAAtB,EAA8B;EACzC,MAAQe,MAAR,GAAmBhE,GAAnB,CAAQgE,MAAR;EAEAxL,EAAAA,GAAG,CAACyK,MAAD,EAAS,MAAT,EAAiB;EAChBG,IAAAA,GADgB,eACZ1M,IADY,EACN;EACNuM,MAAAA,MAAM,CAACwC,WAAP,GAAqB/O,IAArB;EACAsJ,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT,EAAiBT,MAAM,CAACwC,WAAxB;;EACA,UAAIxC,MAAM,CAACyC,QAAX,EAAqB;EACjB1B,QAAAA,MAAM,CAACP,IAAP,aAAiBrI,YAAY,CAAC6H,MAAM,CAACwC,WAAR,CAA7B,gBAAuDrK,YAAY,CAAC6H,MAAM,CAACyC,QAAR,CAAnE;EACH;EACJ;EAPe,GAAjB,CAAH;EAUAlN,EAAAA,GAAG,CAACyK,MAAD,EAAS,SAAT,EAAoB;EACnBG,IAAAA,GADmB,eACf1M,IADe,EACT;EACNuM,MAAAA,MAAM,CAACuB,IAAP,GAAcvB,MAAM,CAACwC,WAAP,GAAqB/O,IAAnC;EACH;EAHkB,GAApB,CAAH;EAMA8B,EAAAA,GAAG,CAACyK,MAAD,EAAS,UAAT,EAAqB;EACpBG,IAAAA,GADoB,eAChB1M,IADgB,EACV;EACNuM,MAAAA,MAAM,CAACuB,IAAP,GAAcvB,MAAM,CAACwC,WAAP,GAAqB/O,IAAnC;EACH;EAHmB,GAArB,CAAH;EAKH;;ECxBc,SAASiP,SAAT,CAAmB3F,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3C,MACgBjC,MADhB,GAKIhB,GALJ,CACIU,QADJ,CACgBM,MADhB;EAAA,MAEI+C,IAFJ,GAKI/D,GALJ,CAEI+D,IAFJ;EAAA,MAGIC,MAHJ,GAKIhE,GALJ,CAGIgE,MAHJ;EAAA,MAIIJ,OAJJ,GAKI5D,GALJ,CAII4D,OAJJ;EAOApL,EAAAA,GAAG,CAACyK,MAAD,EAAS,QAAT,EAAmB;EAClBC,IAAAA,GAAG,EAAE;EAAA,aAAMlC,MAAM,CAAClE,MAAP,IAAiB,CAAvB;EAAA,KADa;EAElBsG,IAAAA,GAAG,EAAE,aAAAwC,UAAU,EAAI;EACf5E,MAAAA,MAAM,CAAClE,MAAP,GAAgBjC,KAAK,CAAC+K,UAAD,EAAa,CAAb,EAAgB,CAAhB,CAArB;EACA5B,MAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,QAAT,CAAjB,eAAwC2C,QAAQ,CAAC7E,MAAM,CAAClE,MAAP,GAAgB,GAAjB,EAAsB,EAAtB,CAAhD;;EACA,UAAIkE,MAAM,CAAClE,MAAP,KAAkB,CAAtB,EAAyB;EACrB8G,QAAAA,OAAO,CAACR,GAAR,CAAY,QAAZ,EAAsBpC,MAAM,CAAClE,MAA7B;EACH;;EACDkD,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT,EAAmB1C,MAAM,CAAClE,MAA1B;EACH;EATiB,GAAnB,CAAH;EAYAtE,EAAAA,GAAG,CAACyK,MAAD,EAAS,OAAT,EAAkB;EACjBC,IAAAA,GAAG,EAAE;EAAA,aAAMlC,MAAM,CAAChE,KAAb;EAAA,KADY;EAEjBoG,IAAAA,GAAG,EAAE,aAAApG,KAAK,EAAI;EACVgE,MAAAA,MAAM,CAAChE,KAAP,GAAeA,KAAf;EACAgD,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT,EAAmB1C,MAAM,CAAClE,MAA1B;EACH;EALgB,GAAlB,CAAH;EAOH;;EC3Bc,SAASgJ,cAAT,CAAwB9F,GAAxB,EAA6BiD,MAA7B,EAAqC;EAChD,MAAQjC,MAAR,GAAmBhB,GAAG,CAACU,QAAvB,CAAQM,MAAR;EAEAxI,EAAAA,GAAG,CAACyK,MAAD,EAAS,aAAT,EAAwB;EACvBC,IAAAA,GAAG,EAAE;EAAA,aAAMlC,MAAM,CAACyE,WAAP,IAAsB,CAA5B;EAAA,KADkB;EAEvBrC,IAAAA,GAAG,EAAE,aAAC1M,IAAD,EAAU;EACX;EACAsK,MAAAA,MAAM,CAACyE,WAAP,GAAqB5K,KAAK,CAAChI,UAAU,CAAC6D,IAAI,CAACqP,OAAL,CAAa,CAAb,CAAD,CAAX,EAA8B,CAA9B,EAAiC9C,MAAM,CAACyC,QAAxC,CAA1B;EACH;EALsB,GAAxB,CAAH;EAOH;;ECVc,SAASM,WAAT,CAAqBhG,GAArB,EAA0BiD,MAA1B,EAAkC;EAC7CzK,EAAAA,GAAG,CAACyK,MAAD,EAAS,UAAT,EAAqB;EACpBC,IAAAA,GAAG,EAAE,eAAM;EACP,UAAQwC,QAAR,GAAqB1F,GAAG,CAACU,QAAJ,CAAaM,MAAlC,CAAQ0E,QAAR;EACA,UAAIA,QAAQ,KAAKO,QAAjB,EAA2B,OAAO,CAAP;EAC3B,aAAOP,QAAQ,IAAI,CAAnB;EACH;EALmB,GAArB,CAAH;EAOH;;ECRc,SAASQ,SAAT,CAAmBlG,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3C,MAAQc,IAAR,GAAyB/D,GAAzB,CAAQ+D,IAAR;EAAA,MAAcC,MAAd,GAAyBhE,GAAzB,CAAcgE,MAAd;;EAEA,WAASmC,SAAT,CAAmB3O,GAAnB,EAAwBjJ,IAAxB,EAA8BkX,WAA9B,EAA2C;EACvC,QAAIjO,GAAG,KAAKyL,MAAM,CAACzL,GAAnB,EAAwB;EACxBvB,IAAAA,GAAG,CAACmQ,eAAJ,CAAoBnD,MAAM,CAACzL,GAA3B;EACA,QAAQkN,OAAR,GAAoBzB,MAApB,CAAQyB,OAAR;EACAzB,IAAAA,MAAM,CAACzL,GAAP,GAAaA,GAAb;EACAwI,IAAAA,GAAG,CAACsE,IAAJ,CAAS,eAAT,EAA0B,YAAM;EAC5BrB,MAAAA,MAAM,CAAC1F,YAAP,GAAsB,KAAtB;EACA0F,MAAAA,MAAM,CAACzF,WAAP,GAAqB,KAArB;EACAyF,MAAAA,MAAM,CAAC5F,IAAP,GAAc,QAAd;EACA4F,MAAAA,MAAM,CAAC/F,QAAP,GAAkB,IAAlB;EACA+F,MAAAA,MAAM,CAACwC,WAAP,GAAqBA,WAArB;;EACA,UAAIf,OAAJ,EAAa;EACTzB,QAAAA,MAAM,CAACwB,IAAP,GAAc,IAAd;EACH;EACJ,KATD;;EAUA,QAAIlW,IAAJ,EAAU;EACNyV,MAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,cAAT,CAAjB,eAA8C3U,IAA9C;EACH;;EACDyR,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT,EAAmBlM,GAAnB;EACH;;EAEDgB,EAAAA,GAAG,CAACyK,MAAD,EAAS,eAAT,EAA0B;EACzB/Q,IAAAA,KAAK,EAAE,eAACsF,GAAD,EAAMjJ,IAAN,EAAe;EAClB,aAAO4X,SAAS,CAAC3O,GAAD,EAAMjJ,IAAN,EAAY0U,MAAM,CAACwC,WAAnB,CAAhB;EACH;EAHwB,GAA1B,CAAH;EAMAjN,EAAAA,GAAG,CAACyK,MAAD,EAAS,WAAT,EAAsB;EACrB/Q,IAAAA,KAAK,EAAE,eAACsF,GAAD,EAAMjJ,IAAN,EAAe;EAClB,aAAO4X,SAAS,CAAC3O,GAAD,EAAMjJ,IAAN,EAAY,CAAZ,CAAhB;EACH;EAHoB,GAAtB,CAAH;EAKH;;ECnCc,SAAS8X,eAAT,CAAyBrG,GAAzB,EAA8BiD,MAA9B,EAAsC;EACjD,sBAIIjD,GAJJ,CACIU,QADJ;EAAA,MACgBM,MADhB,iBACgBA,MADhB;EAAA,MACwBD,OADxB,iBACwBA,OADxB;EAAA,MAEIgD,IAFJ,GAII/D,GAJJ,CAEI+D,IAFJ;EAAA,MAGIC,MAHJ,GAIIhE,GAJJ,CAGIgE,MAHJ;EAMAxL,EAAAA,GAAG,CAACyK,MAAD,EAAS,cAAT,EAAyB;EACxBC,IAAAA,GADwB,iBAClB;EACF,aAAOnC,OAAO,CAACuF,OAAR,CAAgB/I,YAAvB;EACH,KAHuB;EAIxB6F,IAAAA,GAJwB,eAIpBmD,IAJoB,EAId;EACN,UAAIA,IAAJ,EAAU;EACN,YAAIA,IAAI,KAAKxF,OAAO,CAACuF,OAAR,CAAgB/I,YAA7B,EAA2C;EAC3C,YAAMiJ,QAAQ,GAAG,CAAC,GAAD,EAAM,IAAN,EAAY,GAAZ,EAAiB,IAAjB,EAAuB,GAAvB,EAA4B,IAA5B,EAAkC,GAAlC,CAAjB;EACA/Q,QAAAA,WAAW,CAAC+Q,QAAQ,CAAC/O,QAAT,CAAkB8O,IAAlB,CAAD,uCAAwDC,QAAQ,CAAC1H,QAAT,EAAxD,oBAAX;EACAkC,QAAAA,MAAM,CAACzD,YAAP,GAAsBgJ,IAAtB;EACAxF,QAAAA,OAAO,CAACuF,OAAR,CAAgB/I,YAAhB,GAA+BgJ,IAA/B;EACAvC,QAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,MAAT,CAAjB,eAAsCqD,IAAI,KAAK,GAAT,GAAexC,IAAI,CAACb,GAAL,CAAS,QAAT,CAAf,aAAuCqD,IAAvC,MAAtC;EACAvG,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,cAAT,EAAyB6C,IAAzB;EACH,OARD,MAQO,IAAItD,MAAM,CAAC1F,YAAX,EAAyB;EAC5B0F,QAAAA,MAAM,CAAC1F,YAAP,GAAsB,CAAtB;EACA,eAAOwD,OAAO,CAACuF,OAAR,CAAgB/I,YAAvB;EACAyC,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,cAAT;EACH;EACJ;EAlBuB,GAAzB,CAAH;EAqBAlL,EAAAA,GAAG,CAACyK,MAAD,EAAS,mBAAT,EAA8B;EAC7BG,IAAAA,GAD6B,eACzBlR,KADyB,EAClB;EACP,UAAIA,KAAJ,EAAW;EACP,YAAQqL,YAAR,GAAyBwD,OAAO,CAACuF,OAAjC,CAAQ/I,YAAR;;EACA,YAAIA,YAAJ,EAAkB;EACd0F,UAAAA,MAAM,CAAC1F,YAAP,GAAsBkJ,MAAM,CAAClJ,YAAD,CAA5B;EACH;EACJ;EACJ;EAR4B,GAA9B,CAAH;EAUH;;ECtCc,SAASmJ,cAAT,CAAwB1G,GAAxB,EAA6BiD,MAA7B,EAAqC;EAChD,sBAIIjD,GAJJ,CACIU,QADJ;EAAA,MACgBM,MADhB,iBACgBA,MADhB;EAAA,MACwBD,OADxB,iBACwBA,OADxB;EAAA,MAEIgD,IAFJ,GAII/D,GAJJ,CAEI+D,IAFJ;EAAA,MAGIC,MAHJ,GAIIhE,GAJJ,CAGIgE,MAHJ;EAMAxL,EAAAA,GAAG,CAACyK,MAAD,EAAS,aAAT,EAAwB;EACvBC,IAAAA,GADuB,iBACjB;EACF,aAAOnC,OAAO,CAACuF,OAAR,CAAgB9I,WAAhB,IAA+B,EAAtC;EACH,KAHsB;EAIvB4F,IAAAA,GAJuB,eAInBuD,KAJmB,EAIZ;EACP,UAAI,CAACA,KAAL,EAAYA,KAAK,GAAG,SAAR;EAEZ,UAAMC,SAAS,GAAG,CAAC,SAAD,EAAY,KAAZ,EAAmB,MAAnB,CAAlB;EACAnR,MAAAA,WAAW,CAACmR,SAAS,CAACnP,QAAV,CAAmBkP,KAAnB,CAAD,sCAAyDC,SAAS,CAAC9H,QAAV,EAAzD,oBAAX;;EAEA,UAAI6H,KAAK,KAAK,SAAd,EAAyB;EACrB5U,QAAAA,QAAQ,CAACiP,MAAD,EAAS,OAAT,EAAkB,IAAlB,CAAR;EACAjP,QAAAA,QAAQ,CAACiP,MAAD,EAAS,QAAT,EAAmB,IAAnB,CAAR;EACAjP,QAAAA,QAAQ,CAACiP,MAAD,EAAS,SAAT,EAAoB,IAApB,CAAR;EACA,eAAOD,OAAO,CAACuF,OAAR,CAAgB9I,WAAvB;EACH,OALD,MAKO;EACH,YAAMqJ,UAAU,GAAGF,KAAK,CAAChQ,KAAN,CAAY,GAAZ,CAAnB;EACA,YAAQmQ,UAAR,GAAoC9F,MAApC,CAAQ8F,UAAR;EAAA,YAAoBC,WAApB,GAAoC/F,MAApC,CAAoB+F,WAApB;EACA,YAAQ5S,WAAR,GAAsC4M,OAAtC,CAAQ5M,WAAR;EAAA,YAAqBH,YAArB,GAAsC+M,OAAtC,CAAqB/M,YAArB;EACA,YAAMgT,UAAU,GAAGF,UAAU,GAAGC,WAAhC;EACA,YAAME,UAAU,GAAGJ,UAAU,CAAC,CAAD,CAAV,GAAgBA,UAAU,CAAC,CAAD,CAA7C;;EACA,YAAIG,UAAU,GAAGC,UAAjB,EAA6B;EACzB,cAAMrB,UAAU,GAAIqB,UAAU,GAAGF,WAAd,GAA6BD,UAAhD;EACA/U,UAAAA,QAAQ,CAACiP,MAAD,EAAS,OAAT,YAAqB4E,UAAU,GAAG,GAAlC,OAAR;EACA7T,UAAAA,QAAQ,CAACiP,MAAD,EAAS,QAAT,EAAmB,MAAnB,CAAR;EACAjP,UAAAA,QAAQ,CAACiP,MAAD,EAAS,SAAT,cAAyB,CAAC7M,WAAW,GAAGA,WAAW,GAAGyR,UAA7B,IAA2C,CAApE,QAAR;EACH,SALD,MAKO;EACH,cAAMA,WAAU,GAAGkB,UAAU,GAAGG,UAAb,GAA0BF,WAA7C;;EACAhV,UAAAA,QAAQ,CAACiP,MAAD,EAAS,OAAT,EAAkB,MAAlB,CAAR;EACAjP,UAAAA,QAAQ,CAACiP,MAAD,EAAS,QAAT,YAAsB4E,WAAU,GAAG,GAAnC,OAAR;EACA7T,UAAAA,QAAQ,CAACiP,MAAD,EAAS,SAAT,YAAuB,CAAChN,YAAY,GAAGA,YAAY,GAAG4R,WAA/B,IAA6C,CAApE,UAAR;EACH;;EACD7E,QAAAA,OAAO,CAACuF,OAAR,CAAgB9I,WAAhB,GAA8BmJ,KAA9B;EACH;;EAED3C,MAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,cAAT,CAAjB,eAA8CyD,KAAK,KAAK,SAAV,GAAsB5C,IAAI,CAACb,GAAL,CAAS,SAAT,CAAtB,GAA4CyD,KAA1F;EACA3G,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,aAAT,EAAwBiD,KAAxB;EACH;EArCsB,GAAxB,CAAH;EAwCAnO,EAAAA,GAAG,CAACyK,MAAD,EAAS,kBAAT,EAA6B;EAC5BG,IAAAA,GAD4B,eACxBlR,KADwB,EACjB;EACP,UAAIA,KAAK,IAAI+Q,MAAM,CAACzF,WAApB,EAAiC;EAC7B,YAAQA,WAAR,GAAwByF,MAAxB,CAAQzF,WAAR;EACAyF,QAAAA,MAAM,CAACzF,WAAP,GAAqBA,WAArB;EACH;EACJ;EAN2B,GAA7B,CAAH;EAQH;;ECvDc,SAAS0J,aAAT,CAAuBlH,GAAvB,EAA4BiD,MAA5B,EAAoC;EAC/C,MACI/C,MADJ,GAIIF,GAJJ,CACIE,MADJ;EAAA,MAEI8D,MAFJ,GAIIhE,GAJJ,CAEIgE,MAFJ;EAAA,MAGgBhD,MAHhB,GAIIhB,GAJJ,CAGIU,QAHJ,CAGgBM,MAHhB;EAMA,MAAMmG,OAAO,GAAG7W,QAAQ,CAACwH,aAAT,CAAuB,QAAvB,CAAhB;EAEAU,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtB/Q,IAAAA,KAAK,EAAE;EAAA,aACH,IAAI6H,OAAJ,CAAY,UAACC,OAAD,EAAUoN,MAAV,EAAqB;EAC7B,YAAI;EACAD,UAAAA,OAAO,CAAC1S,KAAR,GAAgBuM,MAAM,CAAC8F,UAAvB;EACAK,UAAAA,OAAO,CAAC7S,MAAR,GAAiB0M,MAAM,CAAC+F,WAAxB;EACAI,UAAAA,OAAO,CAACE,UAAR,CAAmB,IAAnB,EAAyBC,SAAzB,CAAmCtG,MAAnC,EAA2C,CAA3C,EAA8C,CAA9C;EACAhH,UAAAA,OAAO,CAACmN,OAAO,CAACI,SAAR,CAAkB,WAAlB,CAAD,CAAP;EACH,SALD,CAKE,OAAOpC,GAAP,EAAY;EACVnB,UAAAA,MAAM,CAACP,IAAP,GAAc0B,GAAd;EACAiC,UAAAA,MAAM,CAACjC,GAAD,CAAN;EACH;EACJ,OAVD,CADG;EAAA;EADe,GAAvB,CAAH;EAeA3M,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtB/Q,IAAAA,KAAK,EAAE;EAAA,aACH,IAAI6H,OAAJ,CAAY,UAACC,OAAD,EAAUoN,MAAV,EAAqB;EAC7B,YAAI;EACAD,UAAAA,OAAO,CAAC1S,KAAR,GAAgBuM,MAAM,CAAC8F,UAAvB;EACAK,UAAAA,OAAO,CAAC7S,MAAR,GAAiB0M,MAAM,CAAC+F,WAAxB;EACAI,UAAAA,OAAO,CAACE,UAAR,CAAmB,IAAnB,EAAyBC,SAAzB,CAAmCtG,MAAnC,EAA2C,CAA3C,EAA8C,CAA9C;EACAmG,UAAAA,OAAO,CAACK,MAAR,CAAe,UAACC,IAAD,EAAU;EACrBzN,YAAAA,OAAO,CAAC/D,GAAG,CAACC,eAAJ,CAAoBuR,IAApB,CAAD,CAAP;EACH,WAFD;EAGH,SAPD,CAOE,OAAOtC,GAAP,EAAY;EACVnB,UAAAA,MAAM,CAACP,IAAP,GAAc0B,GAAd;EACAiC,UAAAA,MAAM,CAACjC,GAAD,CAAN;EACH;EACJ,OAZD,CADG;EAAA;EADe,GAAvB,CAAH;EAiBA3M,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtB/Q,IAAAA,KAAK,EAAE,iBAAM;EACT+Q,MAAAA,MAAM,CAACyE,UAAP,GAAoBnE,IAApB,CAAyB,UAACoE,OAAD,EAAa;EAClC/P,QAAAA,QAAQ,CAAC+P,OAAD,YAAazH,MAAM,CAACvD,KAAP,IAAgB,WAA7B,cAA4CvB,YAAY,CAAC4F,MAAM,CAACyE,WAAR,CAAxD,UAAR;EACAzF,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,YAAT,EAAuBiE,OAAvB;EACH,OAHD;EAIH;EANqB,GAAvB,CAAH;EAQH;;;;;;;;;;;EC9CD,CAAC,YAAY;AAEb;EACA,CAAC,IAAI,QAAQ,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,GAAG,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;EAC/G,CAAC,IAAI,UAAU,GAAoC,MAAM,CAAC,OAAO,CAAC;AAClE;EACA,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY;EACvB,EAAE,IAAI,GAAG,CAAC;AACV;EACA,EAAE,IAAI,KAAK,GAAG;EACd,GAAG;EACH,IAAI,mBAAmB;EACvB,IAAI,gBAAgB;EACpB,IAAI,mBAAmB;EACvB,IAAI,mBAAmB;EACvB,IAAI,kBAAkB;EACtB,IAAI,iBAAiB;EACrB,IAAI;EACJ;EACA,GAAG;EACH,IAAI,yBAAyB;EAC7B,IAAI,sBAAsB;EAC1B,IAAI,yBAAyB;EAC7B,IAAI,yBAAyB;EAC7B,IAAI,wBAAwB;EAC5B,IAAI,uBAAuB;AAC3B;EACA,IAAI;EACJ;EACA,GAAG;EACH,IAAI,yBAAyB;EAC7B,IAAI,wBAAwB;EAC5B,IAAI,gCAAgC;EACpC,IAAI,wBAAwB;EAC5B,IAAI,wBAAwB;EAC5B,IAAI,uBAAuB;AAC3B;EACA,IAAI;EACJ,GAAG;EACH,IAAI,sBAAsB;EAC1B,IAAI,qBAAqB;EACzB,IAAI,sBAAsB;EAC1B,IAAI,sBAAsB;EAC1B,IAAI,qBAAqB;EACzB,IAAI,oBAAoB;EACxB,IAAI;EACJ,GAAG;EACH,IAAI,qBAAqB;EACzB,IAAI,kBAAkB;EACtB,IAAI,qBAAqB;EACzB,IAAI,qBAAqB;EACzB,IAAI,oBAAoB;EACxB,IAAI,mBAAmB;EACvB,IAAI;EACJ,GAAG,CAAC;AACJ;EACA,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;EACZ,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;EACvB,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf;EACA,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;EACrB,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;EAClB,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE;EAClC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EACrC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;EAC/B,KAAK;EACL,IAAI,OAAO,GAAG,CAAC;EACf,IAAI;EACJ,GAAG;AACH;EACA,EAAE,OAAO,KAAK,CAAC;EACf,EAAE,GAAG,CAAC;AACN;EACA,CAAC,IAAI,YAAY,GAAG;EACpB,EAAE,MAAM,EAAE,EAAE,CAAC,gBAAgB;EAC7B,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe;EAC3B,EAAE,CAAC;AACH;EACA,CAAC,IAAI,UAAU,GAAG;EAClB,EAAE,OAAO,EAAE,UAAU,OAAO,EAAE,OAAO,EAAE;EACvC,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;EACjD,IAAI,IAAI,mBAAmB,GAAG,YAAY;EAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;EAC7C,KAAK,OAAO,EAAE,CAAC;EACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB;EACA,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;AAC3C;EACA,IAAI,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC;AAClD;EACA,IAAI,IAAI,aAAa,GAAG,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAC/D;EACA,IAAI,IAAI,aAAa,YAAY,OAAO,EAAE;EAC1C,KAAK,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;EAC3D,KAAK;EACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACjB,GAAG;EACH,EAAE,IAAI,EAAE,YAAY;EACpB,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;EACjD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;EAC5B,KAAK,OAAO,EAAE,CAAC;EACf,KAAK,OAAO;EACZ,KAAK;AACL;EACA,IAAI,IAAI,gBAAgB,GAAG,YAAY;EACvC,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;EAC1C,KAAK,OAAO,EAAE,CAAC;EACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB;EACA,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACxC;EACA,IAAI,IAAI,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;AACtD;EACA,IAAI,IAAI,aAAa,YAAY,OAAO,EAAE;EAC1C,KAAK,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;EACxD,KAAK;EACL,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;EACjB,GAAG;EACH,EAAE,MAAM,EAAE,UAAU,OAAO,EAAE,OAAO,EAAE;EACtC,GAAG,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;EAC3E,GAAG;EACH,EAAE,QAAQ,EAAE,UAAU,QAAQ,EAAE;EAChC,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;EAC/B,GAAG;EACH,EAAE,OAAO,EAAE,UAAU,QAAQ,EAAE;EAC/B,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;EAC9B,GAAG;EACH,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,QAAQ,EAAE;EACjC,GAAG,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;EACvC,GAAG,IAAI,SAAS,EAAE;EAClB,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;EAC1D,IAAI;EACJ,GAAG;EACH,EAAE,GAAG,EAAE,UAAU,KAAK,EAAE,QAAQ,EAAE;EAClC,GAAG,IAAI,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;EACvC,GAAG,IAAI,SAAS,EAAE;EAClB,IAAI,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;EAC7D,IAAI;EACJ,GAAG;EACH,EAAE,GAAG,EAAE,EAAE;EACT,EAAE,CAAC;AACH;EACA,CAAC,IAAI,CAAC,EAAE,EAAE;EACV,EAAE,IAAI,UAAU,EAAE;EAClB,GAAG,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;EACvC,GAAG,MAAM;EACT,GAAG,MAAM,CAAC,UAAU,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;EAC1C,GAAG;AACH;EACA,EAAE,OAAO;EACT,EAAE;AACF;EACA,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE;EACrC,EAAE,YAAY,EAAE;EAChB,GAAG,GAAG,EAAE,YAAY;EACpB,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;EACnD,IAAI;EACJ,GAAG;EACH,EAAE,OAAO,EAAE;EACX,GAAG,UAAU,EAAE,IAAI;EACnB,GAAG,GAAG,EAAE,YAAY;EACpB,IAAI,OAAO,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC;EAC1C,IAAI;EACJ,GAAG;EACH,EAAE,SAAS,EAAE;EACb,GAAG,UAAU,EAAE,IAAI;EACnB,GAAG,GAAG,EAAE,YAAY;EACpB;EACA,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;EACnD,IAAI;EACJ,GAAG;EACH,EAAE,CAAC,CAAC;AACJ;EACA,CAAC,IAAI,UAAU,EAAE;EACjB,EAAE,iBAAiB,UAAU,CAAC;EAC9B,EAAE,MAAM;EACR,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;EACjC,EAAE;EACF,CAAC,GAAG;;;;;ECpLJ,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC5H,GAAD,EAAMiD,MAAN,EAAiB;EACtC,MAAQlC,OAAR,GAAoBf,GAAG,CAACU,QAAxB,CAAQK,OAAR;EAEA8G,EAAAA,UAAU,CAAC3Y,EAAX,CAAc,QAAd,EAAwB;EAAA,WAAM8Q,GAAG,CAAC0D,IAAJ,CAAS,YAAT,EAAuBmE,UAAU,CAACC,YAAlC,CAAN;EAAA,GAAxB;EAEAtP,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtBC,IAAAA,GADsB,iBAChB;EACF,aAAO2E,UAAU,CAACC,YAAlB;EACH,KAHqB;EAItB1E,IAAAA,GAJsB,eAIlBlR,KAJkB,EAIX;EACP,UAAIA,KAAJ,EAAW;EACP2V,QAAAA,UAAU,CAACE,OAAX,CAAmBhH,OAAnB,EAA4BwC,IAA5B,CAAiC,YAAM;EACnC3S,UAAAA,QAAQ,CAACmQ,OAAD,EAAU,gBAAV,CAAR;EACAkC,UAAAA,MAAM,CAAC+E,gBAAP,GAA0B,IAA1B;EACAhI,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT;EACA1D,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,YAAT,EAAuB,IAAvB;EACH,SALD;EAMH,OAPD,MAOO;EACHmE,QAAAA,UAAU,CAACI,IAAX,GAAkB1E,IAAlB,CAAuB,YAAM;EACzBtS,UAAAA,WAAW,CAAC8P,OAAD,EAAU,gBAAV,CAAX;EACAkC,UAAAA,MAAM,CAAC+E,gBAAP,GAA0B,IAA1B;EACA/E,UAAAA,MAAM,CAAC/F,QAAP,GAAkB8C,GAAG,CAACE,MAAJ,CAAWhD,QAA7B;EACA8C,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT;EACA1D,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,YAAT;EACH,SAND;EAOH;EACJ;EArBqB,GAAvB,CAAH;EAuBH,CA5BD;;EA8BA,IAAMwE,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAClI,GAAD,EAAMiD,MAAN,EAAiB;EACtC,MAAQjC,MAAR,GAAmBhB,GAAG,CAACU,QAAvB,CAAQM,MAAR;EAEAxI,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtBC,IAAAA,GADsB,iBAChB;EACF,aAAOlC,MAAM,CAACmH,0BAAd;EACH,KAHqB;EAItB/E,IAAAA,GAJsB,eAIlBlR,KAJkB,EAIX;EACP,UAAIA,KAAJ,EAAW;EACP8O,QAAAA,MAAM,CAACoH,qBAAP;EACApI,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,YAAT,EAAuB,IAAvB;EACH,OAHD,MAGO;EACH1C,QAAAA,MAAM,CAACqH,oBAAP;EACArI,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,YAAT;EACH;EACJ;EAZqB,GAAvB,CAAH;EAcH,CAjBD;;EAmBe,SAAS4E,aAAT,CAAuBtI,GAAvB,EAA4BiD,MAA5B,EAAoC;EAC/C,MACIc,IADJ,GAII/D,GAJJ,CACI+D,IADJ;EAAA,MAEIC,MAFJ,GAIIhE,GAJJ,CAEIgE,MAFJ;EAAA,MAGgBhD,MAHhB,GAIIhB,GAJJ,CAGIU,QAHJ,CAGgBM,MAHhB;EAMAhB,EAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpB,QAAIuD,UAAU,CAACU,SAAf,EAA0B;EACtBX,MAAAA,gBAAgB,CAAC5H,GAAD,EAAMiD,MAAN,CAAhB;EACH,KAFD,MAEO,IAAI3S,QAAQ,CAACkY,iBAAT,IAA8BxH,MAAM,CAACyH,wBAAzC,EAAmE;EACtEP,MAAAA,gBAAgB,CAAClI,GAAD,EAAMiD,MAAN,CAAhB;EACH,KAFM,MAEA;EACHzK,MAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtBC,QAAAA,GADsB,iBAChB;EACF,iBAAO,KAAP;EACH,SAHqB;EAItBE,QAAAA,GAJsB,iBAIhB;EACFY,UAAAA,MAAM,CAACP,IAAP,GAAcM,IAAI,CAACb,GAAL,CAAS,0BAAT,CAAd;EACH;EANqB,OAAvB,CAAH;EAQH;EACJ,GAfD;EAiBA1K,EAAAA,GAAG,CAACyK,MAAD,EAAS,kBAAT,EAA6B;EAC5BG,IAAAA,GAD4B,eACxBlR,KADwB,EACjB;EACP,UAAIA,KAAJ,EAAW;EACP+Q,QAAAA,MAAM,CAACjF,UAAP,GAAoB,CAACiF,MAAM,CAACjF,UAA5B;EACH;EACJ;EAL2B,GAA7B,CAAH;EAOH;;ECjFc,SAAS0K,gBAAT,CAA0B1I,GAA1B,EAA+BiD,MAA/B,EAAuC;EAClD,MAAQlC,OAAR,GAAoBf,GAAG,CAACU,QAAxB,CAAQK,OAAR;EAEAvI,EAAAA,GAAG,CAACyK,MAAD,EAAS,eAAT,EAA0B;EACzBC,IAAAA,GADyB,iBACnB;EACF,aAAO/R,QAAQ,CAAC4P,OAAD,EAAU,oBAAV,CAAf;EACH,KAHwB;EAIzBqC,IAAAA,GAJyB,eAIrBlR,KAJqB,EAId;EACP,UAAIA,KAAJ,EAAW;EACPtB,QAAAA,QAAQ,CAACmQ,OAAD,EAAU,oBAAV,CAAR;EACAkC,QAAAA,MAAM,CAAC+E,gBAAP,GAA0B,IAA1B;EACAhI,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT;EACA1D,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,eAAT,EAA0B,IAA1B;EACH,OALD,MAKO;EACHzS,QAAAA,WAAW,CAAC8P,OAAD,EAAU,oBAAV,CAAX;EACAkC,QAAAA,MAAM,CAAC+E,gBAAP,GAA0B,IAA1B;EACA/E,QAAAA,MAAM,CAAC/F,QAAP,GAAkB8C,GAAG,CAACE,MAAJ,CAAWhD,QAA7B;EACA8C,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT;EACA1D,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,eAAT;EACH;EACJ;EAjBwB,GAA1B,CAAH;EAoBAlL,EAAAA,GAAG,CAACyK,MAAD,EAAS,qBAAT,EAAgC;EAC/BG,IAAAA,GAD+B,eAC3BlR,KAD2B,EACpB;EACP,UAAIA,KAAJ,EAAW;EACP+Q,QAAAA,MAAM,CAAChF,aAAP,GAAuB,CAACgF,MAAM,CAAChF,aAA/B;EACH;EACJ;EAL8B,GAAhC,CAAH;EAOH;;EC9Bc,SAAS0K,mBAAT,CAA6B3I,GAA7B,EAAkCiD,MAAlC,EAA0C;EACrD,sBAAgCjD,GAAG,CAACU,QAApC;EAAA,MAAQJ,UAAR,iBAAQA,UAAR;EAAA,MAAoBS,OAApB,iBAAoBA,OAApB;EAEAvI,EAAAA,GAAG,CAACyK,MAAD,EAAS,kBAAT,EAA6B;EAC5BC,IAAAA,GAD4B,iBACtB;EACF,aAAO/R,QAAQ,CAACmP,UAAD,EAAa,uBAAb,CAAf;EACH,KAH2B;EAI5B8C,IAAAA,GAAG,EAAE,aAAClR,KAAD,EAAW;EACZ,UAAIA,KAAJ,EAAW;EACPtB,QAAAA,QAAQ,CAAC0P,UAAD,EAAa,uBAAb,CAAR;EACA2C,QAAAA,MAAM,CAAC/F,QAAP,GAAkB,IAAlB;EACA,6BAA6D5M,QAAQ,CAAC2H,IAAtE;EAAA,YAAsB2Q,UAAtB,kBAAQ5U,YAAR;EAAA,YAA+C6U,SAA/C,kBAAkC1U,WAAlC;EACA,YAAsB2U,YAAtB,GAAiE/H,OAAjE,CAAQ/M,YAAR;EAAA,YAAiD+U,WAAjD,GAAiEhI,OAAjE,CAAoC5M,WAApC;EACA,YAAM6U,SAAS,GAAGH,SAAS,GAAGD,UAA9B;EACA,YAAM5B,UAAU,GAAG+B,WAAW,GAAGD,YAAjC;EACA,YAAMG,QAAQ,GAAGD,SAAS,GAAGhC,UAA7B;;EACA,YAAIiC,QAAJ,EAAc;EACV,cAAMC,KAAK,GAAGjO,IAAI,CAACE,GAAL,CAASyN,UAAU,GAAGG,WAAtB,EAAmCF,SAAS,GAAGC,YAA/C,EAA6D/C,OAA7D,CAAqE,CAArE,CAAd;EACAhU,UAAAA,QAAQ,CAACgP,OAAD,EAAU,WAAV,gCAA8CmI,KAA9C,cAAuDA,KAAvD,OAAR;EACAlJ,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT;EACA1D,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,kBAAT,EAA6B,IAA7B;EACH;EACJ,OAdD,MAcO;EACHzS,QAAAA,WAAW,CAACqP,UAAD,EAAa,uBAAb,CAAX;EACA2C,QAAAA,MAAM,CAAC/F,QAAP,GAAkB8C,GAAG,CAACE,MAAJ,CAAWhD,QAA7B;EACAnL,QAAAA,QAAQ,CAACgP,OAAD,EAAU,WAAV,EAAuB,IAAvB,CAAR;EACAf,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT;EACA1D,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,kBAAT;EACH;EACJ;EA1B2B,GAA7B,CAAH;EA6BAlL,EAAAA,GAAG,CAACyK,MAAD,EAAS,wBAAT,EAAmC;EAClCG,IAAAA,GADkC,eAC9BlR,KAD8B,EACvB;EACP,UAAIA,KAAJ,EAAW;EACP+Q,QAAAA,MAAM,CAACkG,gBAAP,GAA0B,CAAClG,MAAM,CAACkG,gBAAlC;EACH;EACJ;EALiC,GAAnC,CAAH;EAOH;;ECvCD,SAASC,SAAT,CAAmBpJ,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC5B,MACgBjC,MADhB,GAIIhB,GAJJ,CACIU,QADJ,CACgBM,MADhB;EAAA,MAEc8C,KAFd,GAII9D,GAJJ,CAEIH,MAFJ,CAEciE,KAFd;EAAA,MAGIE,MAHJ,GAIIhE,GAJJ,CAGIgE,MAHJ;EAMAhD,EAAAA,MAAM,CAACqI,uBAAP,GAAiC,KAAjC;EAEA7Q,EAAAA,GAAG,CAACyK,MAAD,EAAS,KAAT,EAAgB;EACfC,IAAAA,GADe,iBACT;EACF,aAAO5S,QAAQ,CAACgZ,uBAAhB;EACH,KAHc;EAIflG,IAAAA,GAJe,eAIXlR,KAJW,EAIJ;EACP,UAAIA,KAAJ,EAAW;EACP8O,QAAAA,MAAM,CAACuI,uBAAP,GAAiCrE,KAAjC,CAAuC,UAACC,GAAD,EAAS;EAC5CnB,UAAAA,MAAM,CAACP,IAAP,GAAc0B,GAAd;EACA,gBAAMA,GAAN;EACH,SAHD;EAIH,OALD,MAKO;EACH7U,QAAAA,QAAQ,CAACkZ,oBAAT,GAAgCtE,KAAhC,CAAsC,UAACC,GAAD,EAAS;EAC3CnB,UAAAA,MAAM,CAACP,IAAP,GAAc0B,GAAd;EACA,gBAAMA,GAAN;EACH,SAHD;EAIH;EACJ;EAhBc,GAAhB,CAAH;EAmBArB,EAAAA,KAAK,CAAC9C,MAAD,EAAS,uBAAT,EAAkC,YAAM;EACzChB,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,KAAT,EAAgB,IAAhB;EACH,GAFI,CAAL;EAIAI,EAAAA,KAAK,CAAC9C,MAAD,EAAS,uBAAT,EAAkC,YAAM;EACzChB,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,KAAT;EACH,GAFI,CAAL;EAGH;;EAED,SAAS+F,SAAT,CAAmBzJ,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC5B,MAAQjC,MAAR,GAAmBhB,GAAG,CAACU,QAAvB,CAAQM,MAAR;EAEAA,EAAAA,MAAM,CAAC0I,yBAAP,CAAiC,QAAjC;EAEAlR,EAAAA,GAAG,CAACyK,MAAD,EAAS,KAAT,EAAgB;EACfC,IAAAA,GADe,iBACT;EACF,aAAOlC,MAAM,CAAC2I,sBAAP,KAAkC,oBAAzC;EACH,KAHc;EAIfvG,IAAAA,GAJe,eAIXlR,KAJW,EAIJ;EACP,UAAIA,KAAJ,EAAW;EACP8O,QAAAA,MAAM,CAAC0I,yBAAP,CAAiC,oBAAjC;EACA1J,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,KAAT,EAAgB,IAAhB;EACH,OAHD,MAGO;EACH1C,QAAAA,MAAM,CAAC0I,yBAAP,CAAiC,QAAjC;EACA1J,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,KAAT;EACH;EACJ;EAZc,GAAhB,CAAH;EAcH;;EAEc,SAASkG,MAAT,CAAgB5J,GAAhB,EAAqBiD,MAArB,EAA6B;EACxC,MACIc,IADJ,GAII/D,GAJJ,CACI+D,IADJ;EAAA,MAEIC,MAFJ,GAIIhE,GAJJ,CAEIgE,MAFJ;EAAA,MAGgBhD,MAHhB,GAIIhB,GAJJ,CAGIU,QAHJ,CAGgBM,MAHhB;;EAKA,MAAI1Q,QAAQ,CAACuZ,uBAAb,EAAsC;EAClCT,IAAAA,SAAS,CAACpJ,GAAD,EAAMiD,MAAN,CAAT;EACH,GAFD,MAEO,IAAIjC,MAAM,CAAC8I,8BAAX,EAA2C;EAC9CL,IAAAA,SAAS,CAACzJ,GAAD,EAAMiD,MAAN,CAAT;EACH,GAFM,MAEA;EACHzK,IAAAA,GAAG,CAACyK,MAAD,EAAS,KAAT,EAAgB;EACfC,MAAAA,GADe,iBACT;EACF,eAAO,KAAP;EACH,OAHc;EAIfE,MAAAA,GAJe,iBAIT;EACFY,QAAAA,MAAM,CAACP,IAAP,GAAcM,IAAI,CAACb,GAAL,CAAS,mBAAT,CAAd;EACH;EANc,KAAhB,CAAH;EAQH;;EAED1K,EAAAA,GAAG,CAACyK,MAAD,EAAS,WAAT,EAAsB;EACrBG,IAAAA,GADqB,eACjBlR,KADiB,EACV;EACP,UAAIA,KAAJ,EAAW;EACP+Q,QAAAA,MAAM,CAACrF,GAAP,GAAa,CAACqF,MAAM,CAACrF,GAArB;EACH;EACJ;EALoB,GAAtB,CAAH;EAOH;;ECtFc,SAAS4H,OAAT,CAAiBxF,GAAjB,EAAsBiD,MAAtB,EAA8B;EACzC,MAAQjC,MAAR,GAAmBhB,GAAG,CAACU,QAAvB,CAAQM,MAAR;EAEAxI,EAAAA,GAAG,CAACyK,MAAD,EAAS,QAAT,EAAmB;EAClBC,IAAAA,GAAG,EAAE;EAAA,aAAMD,MAAM,CAAC8G,UAAP,GAAoB/I,MAAM,CAAC0E,QAAjC;EAAA;EADa,GAAnB,CAAH;EAIAlN,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtBC,IAAAA,GAAG,EAAE;EAAA,aAAOlC,MAAM,CAACgJ,QAAP,CAAgBza,MAAhB,GAAyByR,MAAM,CAACgJ,QAAP,CAAgB3S,GAAhB,CAAoB2J,MAAM,CAACgJ,QAAP,CAAgBza,MAAhB,GAAyB,CAA7C,CAAzB,GAA2E,CAAlF;EAAA;EADiB,GAAvB,CAAH;EAGH;;ECVc,SAAS0a,SAAT,CAAmBjK,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3CzK,EAAAA,GAAG,CAACyK,MAAD,EAAS,QAAT,EAAmB;EAClBC,IAAAA,GAAG,EAAE;EAAA,aAAMD,MAAM,CAACwC,WAAP,GAAqBxC,MAAM,CAACyC,QAAlC;EAAA;EADa,GAAnB,CAAH;EAGH;;ECJc,SAASwE,UAAT,CAAoBlK,GAApB,EAAyBiD,MAAzB,EAAiC;EAC5C,MAAQjC,MAAR,GAAmBhB,GAAG,CAACU,QAAvB,CAAQM,MAAR;EACAxI,EAAAA,GAAG,CAACyK,MAAD,EAAS,SAAT,EAAoB;EACnBC,IAAAA,GAAG,EAAE;EAAA,aAAM,CAAC,EAAElC,MAAM,CAACyE,WAAP,GAAqB,CAArB,IAA0B,CAACzE,MAAM,CAACsE,MAAlC,IAA4C,CAACtE,MAAM,CAACmJ,KAApD,IAA6DnJ,MAAM,CAACoJ,UAAP,GAAoB,CAAnF,CAAP;EAAA;EADc,GAApB,CAAH;EAGH;;ECLc,SAASC,SAAT,CAAmBrK,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3C,sBAAwCjD,GAAG,CAACU,QAA5C;EAAA,MAAQJ,UAAR,iBAAQA,UAAR;EAAA,MAAoBS,OAApB,iBAAoBA,OAApB;EAAA,MAA6BC,MAA7B,iBAA6BA,MAA7B;EAEAxI,EAAAA,GAAG,CAACyK,MAAD,EAAS,UAAT,EAAqB;EACpBC,IAAAA,GADoB,iBACd;EACF,aAAO/R,QAAQ,CAACmP,UAAD,EAAa,eAAb,CAAf;EACH,KAHmB;EAIpB8C,IAAAA,GAJoB,eAIhBlR,KAJgB,EAIT;EACP,UAAIA,KAAJ,EAAW;EACP,YAAQ4U,UAAR,GAAoC9F,MAApC,CAAQ8F,UAAR;EAAA,YAAoBC,WAApB,GAAoC/F,MAApC,CAAoB+F,WAApB;;EACA,oCAA0BzG,UAAU,CAAC1M,qBAAX,EAA1B;EAAA,YAAQa,KAAR,yBAAQA,KAAR;EAAA,YAAeH,MAAf,yBAAeA,MAAf;;EACA,YAAM0S,UAAU,GAAGF,UAAU,GAAGC,WAAhC;EACA,YAAMuD,cAAc,GAAG7V,KAAK,GAAGH,MAA/B;EACA1D,QAAAA,QAAQ,CAAC0P,UAAD,EAAa,eAAb,CAAR;;EACA,YAAIgK,cAAc,GAAGtD,UAArB,EAAiC;EAC7B,cAAMpB,UAAU,GAAKtR,MAAM,GAAG0S,UAAV,GAAwBvS,KAAzB,GAAkC,GAArD;EACA1C,UAAAA,QAAQ,CAACgP,OAAD,EAAU,OAAV,YAAsB6E,UAAtB,OAAR;EACA7T,UAAAA,QAAQ,CAACgP,OAAD,EAAU,QAAV,EAAoB,MAApB,CAAR;EACH,SAJD,MAIO;EACH,cAAM6E,WAAU,GAAInR,KAAK,GAAGuS,UAAR,GAAqB1S,MAAtB,GAAgC,GAAnD;;EACAvC,UAAAA,QAAQ,CAACgP,OAAD,EAAU,OAAV,EAAmB,MAAnB,CAAR;EACAhP,UAAAA,QAAQ,CAACgP,OAAD,EAAU,QAAV,YAAuB6E,WAAvB,OAAR;EACH;;EACD5F,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,UAAT,EAAqB;EACjBjP,UAAAA,KAAK,EAAEwO,MAAM,CAACxO,KADG;EAEjBH,UAAAA,MAAM,EAAE2O,MAAM,CAAC3O;EAFE,SAArB;EAIH,OAnBD,MAmBO;EACHrD,QAAAA,WAAW,CAACqP,UAAD,EAAa,eAAb,CAAX;EACAvO,QAAAA,QAAQ,CAACgP,OAAD,EAAU,OAAV,EAAmB,IAAnB,CAAR;EACAhP,QAAAA,QAAQ,CAACgP,OAAD,EAAU,QAAV,EAAoB,IAApB,CAAR;EACAf,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,UAAT;EACH;EACJ;EA9BmB,GAArB,CAAH;EAgCH;;ECnCc,SAAS6G,OAAT,CAAiBvK,GAAjB,EAAsBiD,MAAtB,EAA8B;EACzCzK,EAAAA,GAAG,CAACyK,MAAD,EAAS,MAAT,EAAiB;EAChBC,IAAAA,GAAG,EAAE,eAAM;EACP,aAAOlD,GAAG,CAACU,QAAJ,CAAaK,OAAb,CAAqBnN,qBAArB,EAAP;EACH;EAHe,GAAjB,CAAH;EAMA,GAAC,QAAD,EAAW,QAAX,EAAqB,MAArB,EAA6B,OAA7B,EAAsC,KAAtC,EAA6C,OAA7C,EAAsDpB,OAAtD,CAA8D,UAAAP,GAAG,EAAI;EACjEuG,IAAAA,GAAG,CAACyK,MAAD,EAAShR,GAAT,EAAc;EACbiR,MAAAA,GAAG,EAAE,eAAM;EACP,eAAOD,MAAM,CAACtP,IAAP,CAAY1B,GAAZ,CAAP;EACH;EAHY,KAAd,CAAH;EAKH,GAND;EAQAuG,EAAAA,GAAG,CAACyK,MAAD,EAAS,GAAT,EAAc;EACbC,IAAAA,GAAG,EAAE,eAAM;EACP,aAAOD,MAAM,CAACzO,IAAP,GAAc3E,MAAM,CAAC2a,WAA5B;EACH;EAHY,GAAd,CAAH;EAMAhS,EAAAA,GAAG,CAACyK,MAAD,EAAS,GAAT,EAAc;EACbC,IAAAA,GAAG,EAAE,eAAM;EACP,aAAOD,MAAM,CAAC5O,GAAP,GAAaxE,MAAM,CAAC4a,WAA3B;EACH;EAHY,GAAd,CAAH;EAKH;;EC1Bc,SAASC,OAAT,CAAiB1K,GAAjB,EAAsBiD,MAAtB,EAA8B;EACzC,MACgBlC,OADhB,GAIIf,GAJJ,CACIU,QADJ,CACgBK,OADhB;EAAA,MAEIgD,IAFJ,GAII/D,GAJJ,CAEI+D,IAFJ;EAAA,MAGIC,MAHJ,GAIIhE,GAJJ,CAGIgE,MAHJ;EAMAxL,EAAAA,GAAG,CAACyK,MAAD,EAAS,MAAT,EAAiB;EAChBC,IAAAA,GADgB,iBACV;EACF,aAAOnC,OAAO,CAACuF,OAAR,CAAgBjJ,IAAvB;EACH,KAHe;EAIhB+F,IAAAA,GAJgB,eAIZ/F,IAJY,EAIN;EACN,UAAI,CAACA,IAAL,EAAWA,IAAI,GAAG,QAAP;EAEX,UAAMsN,QAAQ,GAAG,CAAC,QAAD,EAAW,YAAX,EAAyB,UAAzB,CAAjB;EACAlV,MAAAA,WAAW,CAACkV,QAAQ,CAAClT,QAAT,CAAkB4F,IAAlB,CAAD,+BAAgDsN,QAAQ,CAAC7L,QAAT,EAAhD,oBAAX;;EAEA,UAAIzB,IAAI,KAAK,QAAb,EAAuB;EACnB,eAAO0D,OAAO,CAACuF,OAAR,CAAgBjJ,IAAvB;EACH,OAFD,MAEO;EACH4F,QAAAA,MAAM,CAAC3F,MAAP,GAAgB,KAAhB;EACAyD,QAAAA,OAAO,CAACuF,OAAR,CAAgBjJ,IAAhB,GAAuBA,IAAvB;EACH;;EAED,UAAMuN,IAAI,GAAGvN,IAAI,CAACvH,OAAL,CAAauH,IAAI,CAAC,CAAD,CAAjB,EAAsBA,IAAI,CAAC,CAAD,CAAJ,CAAQwN,WAAR,EAAtB,CAAb;EACA7G,MAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,MAAT,CAAjB,eAAsCa,IAAI,CAACb,GAAL,CAAS0H,IAAT,CAAtC;EACA5K,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT,EAAiBrG,IAAjB;EACH;EApBe,GAAjB,CAAH;EAuBA7E,EAAAA,GAAG,CAACyK,MAAD,EAAS,WAAT,EAAsB;EACrBG,IAAAA,GADqB,eACjBlR,KADiB,EACV;EACP,UAAIA,KAAK,IAAI+Q,MAAM,CAAC5F,IAApB,EAA0B;EACtB,YAAQA,IAAR,GAAiB4F,MAAjB,CAAQ5F,IAAR;EACA4F,QAAAA,MAAM,CAAC5F,IAAP,GAAcA,IAAd;EACH;EACJ;EANoB,GAAtB,CAAH;EAQH;;ECtCc,SAASyN,QAAT,CAAkB9K,GAAlB,EAAuBiD,MAAvB,EAA+B;EAC1C,MAAQnC,WAAR,GAAwBd,GAAG,CAACU,QAA5B,CAAQI,WAAR;EAEAtI,EAAAA,GAAG,CAACyK,MAAD,EAAS,OAAT,EAAkB;EACjBC,IAAAA,GADiB,iBACX;EACF,aAAOzQ,QAAQ,CAACqO,WAAD,EAAc,SAAd,EAAyB,KAAzB,CAAR,KAA4C,MAAnD;EACH,KAHgB;EAIjBsC,IAAAA,GAJiB,eAIblR,KAJa,EAIN;EACPH,MAAAA,QAAQ,CAAC+O,WAAD,EAAc,SAAd,EAAyB5O,KAAK,GAAG,OAAH,GAAa,MAA3C,CAAR;EACA8N,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,OAAT,EAAkBxR,KAAlB;EACH;EAPgB,GAAlB,CAAH;EASH;;ECZc,SAAS6Y,OAAT,CAAiB/K,GAAjB,EAAsBiD,MAAtB,EAA8B;EACzC,MACIc,IADJ,GAMI/D,GANJ,CACI+D,IADJ;EAAA,MAEI7D,MAFJ,GAMIF,GANJ,CAEIE,MAFJ;EAAA,MAGI0D,OAHJ,GAMI5D,GANJ,CAGI4D,OAHJ;EAAA,MAIcE,KAJd,GAMI9D,GANJ,CAIIH,MAJJ,CAIciE,KAJd;EAAA,sBAMI9D,GANJ,CAKIU,QALJ;EAAA,MAKgBK,OALhB,iBAKgBA,OALhB;EAAA,MAKyBwB,UALzB,iBAKyBA,UALzB;EAAA,MAKqCD,UALrC,iBAKqCA,UALrC;EAAA,MAKiDD,WALjD,iBAKiDA,WALjD;EAQA,MAAI2I,UAAU,GAAG,EAAjB;EACA,MAAIC,SAAS,GAAG,KAAhB;EACA,MAAIC,SAAS,GAAG,CAAhB;EACA,MAAIC,SAAS,GAAG,CAAhB;EACA,MAAIC,cAAc,GAAG,CAArB;EACA,MAAIC,aAAa,GAAG,CAApB;EAEAvH,EAAAA,KAAK,CAACzB,WAAD,EAAc,WAAd,EAA2B,UAAC1N,KAAD,EAAW;EACvCsW,IAAAA,SAAS,GAAG,IAAZ;EACAC,IAAAA,SAAS,GAAGvW,KAAK,CAAC2W,KAAlB;EACAH,IAAAA,SAAS,GAAGxW,KAAK,CAAC4W,KAAlB;EACAH,IAAAA,cAAc,GAAGnI,MAAM,CAACzO,IAAxB;EACA6W,IAAAA,aAAa,GAAGpI,MAAM,CAAC5O,GAAvB;EACH,GANI,CAAL;EAQAyP,EAAAA,KAAK,CAACxT,QAAD,EAAW,WAAX,EAAwB,UAACqE,KAAD,EAAW;EACpC,QAAIsW,SAAJ,EAAe;EACXra,MAAAA,QAAQ,CAACmQ,OAAD,EAAU,iBAAV,CAAR;EACA,UAAM1M,GAAG,GAAGgX,aAAa,GAAG1W,KAAK,CAAC4W,KAAtB,GAA8BJ,SAA1C;EACA,UAAM3W,IAAI,GAAG4W,cAAc,GAAGzW,KAAK,CAAC2W,KAAvB,GAA+BJ,SAA5C;EACAnZ,MAAAA,QAAQ,CAACgP,OAAD,EAAU,KAAV,YAAoB1M,GAApB,QAAR;EACAtC,MAAAA,QAAQ,CAACgP,OAAD,EAAU,MAAV,YAAqBvM,IAArB,QAAR;EACAoP,MAAAA,OAAO,CAACR,GAAR,CAAY,KAAZ,EAAmB/O,GAAnB;EACAuP,MAAAA,OAAO,CAACR,GAAR,CAAY,MAAZ,EAAoB5O,IAApB;EACH;EACJ,GAVI,CAAL;EAYAsP,EAAAA,KAAK,CAACxT,QAAD,EAAW,SAAX,EAAsB,YAAM;EAC7B2a,IAAAA,SAAS,GAAG,KAAZ;EACAha,IAAAA,WAAW,CAAC8P,OAAD,EAAU,iBAAV,CAAX;EACH,GAHI,CAAL;EAKA+C,EAAAA,KAAK,CAACvB,UAAD,EAAa,OAAb,EAAsB,YAAM;EAC7BU,IAAAA,MAAM,CAACuI,IAAP,GAAc,KAAd;EACAP,IAAAA,SAAS,GAAG,KAAZ;EACAha,IAAAA,WAAW,CAAC8P,OAAD,EAAU,iBAAV,CAAX;EACH,GAJI,CAAL;EAMA1P,EAAAA,MAAM,CAACiR,UAAD,EAAapC,MAAM,CAACvD,KAAP,IAAgBoH,IAAI,CAACb,GAAL,CAAS,aAAT,CAA7B,CAAN;EAEA1K,EAAAA,GAAG,CAACyK,MAAD,EAAS,MAAT,EAAiB;EAChBC,IAAAA,GADgB,iBACV;EACF,aAAO/R,QAAQ,CAAC4P,OAAD,EAAU,UAAV,CAAf;EACH,KAHe;EAIhBqC,IAAAA,GAJgB,eAIZlR,KAJY,EAIL;EACP,UAAIA,KAAJ,EAAW;EACP+Q,QAAAA,MAAM,CAAC/F,QAAP,GAAkB,KAAlB;EACA8N,QAAAA,UAAU,GAAGjK,OAAO,CAAC5O,KAAR,CAAcsZ,OAA3B;EACA7a,QAAAA,QAAQ,CAACmQ,OAAD,EAAU,UAAV,CAAR;EACA,YAAM1M,GAAG,GAAGuP,OAAO,CAACV,GAAR,CAAY,KAAZ,CAAZ;EACA,YAAM1O,IAAI,GAAGoP,OAAO,CAACV,GAAR,CAAY,MAAZ,CAAb;;EACA,YAAI7O,GAAG,IAAIG,IAAX,EAAiB;EACbzC,UAAAA,QAAQ,CAACgP,OAAD,EAAU,KAAV,YAAoB1M,GAApB,QAAR;EACAtC,UAAAA,QAAQ,CAACgP,OAAD,EAAU,MAAV,YAAqBvM,IAArB,QAAR;;EACA,cAAI,CAAChB,YAAY,CAAC6O,WAAD,CAAjB,EAAgC;EAC5BuB,YAAAA,OAAO,CAAC8H,GAAR,CAAY,KAAZ;EACA9H,YAAAA,OAAO,CAAC8H,GAAR,CAAY,MAAZ;EACAzI,YAAAA,MAAM,CAACuI,IAAP,GAAc,IAAd;EACH;EACJ,SARD,MAQO;EACH,cAAMG,KAAK,GAAGrb,QAAQ,CAAC2H,IAAvB;;EACA,cAAM5D,IAAG,GAAGsX,KAAK,CAAC3X,YAAN,GAAqBiP,MAAM,CAAC3O,MAA5B,GAAqC,EAAjD;;EACA,cAAME,KAAI,GAAGmX,KAAK,CAACxX,WAAN,GAAoB8O,MAAM,CAACxO,KAA3B,GAAmC,EAAhD;;EACAmP,UAAAA,OAAO,CAACR,GAAR,CAAY,KAAZ,EAAmB/O,IAAnB;EACAuP,UAAAA,OAAO,CAACR,GAAR,CAAY,MAAZ,EAAoB5O,KAApB;EACAzC,UAAAA,QAAQ,CAACgP,OAAD,EAAU,KAAV,YAAoB1M,IAApB,QAAR;EACAtC,UAAAA,QAAQ,CAACgP,OAAD,EAAU,MAAV,YAAqBvM,KAArB,QAAR;EACH;;EACDyO,QAAAA,MAAM,CAACzF,WAAP,GAAqB,KAArB;EACAyF,QAAAA,MAAM,CAAC1F,YAAP,GAAsB,KAAtB;EACAyC,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT,EAAiB,IAAjB;EACH,OA1BD,MA0BO;EACH3C,QAAAA,OAAO,CAAC5O,KAAR,CAAcsZ,OAAd,GAAwBT,UAAxB;EACA/Z,QAAAA,WAAW,CAAC8P,OAAD,EAAU,UAAV,CAAX;EACAhP,QAAAA,QAAQ,CAACgP,OAAD,EAAU,KAAV,EAAiB,IAAjB,CAAR;EACAhP,QAAAA,QAAQ,CAACgP,OAAD,EAAU,MAAV,EAAkB,IAAlB,CAAR;EACAkC,QAAAA,MAAM,CAACzF,WAAP,GAAqB,KAArB;EACAyF,QAAAA,MAAM,CAAC1F,YAAP,GAAsB,KAAtB;EACA0F,QAAAA,MAAM,CAAC/F,QAAP,GAAkBgD,MAAM,CAAChD,QAAzB;EACA8C,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT;EACH;EACJ;EAzCe,GAAjB,CAAH;EA4CAlL,EAAAA,GAAG,CAACyK,MAAD,EAAS,YAAT,EAAuB;EACtBG,IAAAA,GADsB,eAClBlR,KADkB,EACX;EACP,UAAIA,KAAJ,EAAW;EACP+Q,QAAAA,MAAM,CAACuI,IAAP,GAAc,CAACvI,MAAM,CAACuI,IAAtB;EACH;EACJ;EALqB,GAAvB,CAAH;EAOH;;ECpGc,SAASI,OAAT,CAAiB5L,GAAjB,EAAsBiD,MAAtB,EAA8B;EACzC,MAAI4I,QAAQ,GAAG,EAAf;EACArT,EAAAA,GAAG,CAACyK,MAAD,EAAS,MAAT,EAAiB;EAChBC,IAAAA,GAAG,EAAE;EAAA,aAAM2I,QAAN;EAAA,KADW;EAEhBzI,IAAAA,GAAG,EAAE,aAAClR,KAAD,EAAW;EACZ,UAAIzB,KAAK,CAAC+I,OAAN,CAActH,KAAd,KAAwB,OAAOA,KAAK,CAAC,CAAD,CAAZ,KAAoB,QAA5C,IAAwD,OAAOA,KAAK,CAAC,CAAD,CAAZ,KAAoB,QAAhF,EAA0F;EACtF,YAAMiF,KAAK,GAAG0D,KAAK,CAAC3I,KAAK,CAAC,CAAD,CAAN,EAAW,CAAX,EAAc+I,IAAI,CAACE,GAAL,CAASjJ,KAAK,CAAC,CAAD,CAAd,EAAmB+Q,MAAM,CAACyC,QAA1B,CAAd,CAAnB;EACA,YAAMrO,GAAG,GAAGwD,KAAK,CAAC3I,KAAK,CAAC,CAAD,CAAN,EAAWiF,KAAX,EAAkB8L,MAAM,CAACyC,QAAzB,CAAjB;;EACA,YAAIrO,GAAG,GAAGF,KAAN,IAAe,CAAnB,EAAsB;EAClB0U,UAAAA,QAAQ,GAAG,CAAC1U,KAAD,EAAQE,GAAR,CAAX;EACA2I,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT,EAAiBmI,QAAjB;EACH,SAHD,MAGO;EACHA,UAAAA,QAAQ,GAAG,EAAX;EACA7L,UAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT;EACH;EACJ,OAVD,MAUO;EACHmI,QAAAA,QAAQ,GAAG,EAAX;EACA7L,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT;EACH;EACJ;EAjBe,GAAjB,CAAH;EAoBA1D,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,kBAAP,EAA2B,YAAM;EAC7B,QAAI2c,QAAQ,CAACtc,MAAb,EAAqB;EACjB,UAAI0T,MAAM,CAACwC,WAAP,GAAqBoG,QAAQ,CAAC,CAAD,CAA7B,IAAoC5I,MAAM,CAACwC,WAAP,GAAqBoG,QAAQ,CAAC,CAAD,CAArE,EAA0E;EACtE5I,QAAAA,MAAM,CAACuB,IAAP,GAAcqH,QAAQ,CAAC,CAAD,CAAtB;EACH;EACJ;EACJ,GAND;EAOH;;EC7Bc,SAASC,SAAT,CAAmB9L,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3C,sBAIIjD,GAJJ,CACIU,QADJ;EAAA,MACgBM,MADhB,iBACgBA,MADhB;EAAA,MACwBD,OADxB,iBACwBA,OADxB;EAAA,MAEIgD,IAFJ,GAII/D,GAJJ,CAEI+D,IAFJ;EAAA,MAGIC,MAHJ,GAIIhE,GAJJ,CAGIgE,MAHJ;EAMAxL,EAAAA,GAAG,CAACyK,MAAD,EAAS,QAAT,EAAmB;EAClBC,IAAAA,GAAG,EAAE;EAAA,aAAMuD,MAAM,CAAC1F,OAAO,CAACuF,OAAR,CAAgBhJ,MAAjB,CAAN,IAAkC,CAAxC;EAAA,KADa;EAElB8F,IAAAA,GAAG,EAAE,aAAC2I,GAAD,EAAS;EACV,UAAI,CAACA,GAAL,EAAUA,GAAG,GAAG,CAAN;EAEV,UAAMC,OAAO,GAAG,CAAC,CAAC,GAAF,EAAO,CAAC,GAAR,EAAa,CAAC,EAAd,EAAkB,CAAlB,EAAqB,EAArB,EAAyB,GAAzB,EAA8B,GAA9B,CAAhB;EACAvW,MAAAA,WAAW,CAACuW,OAAO,CAACvU,QAAR,CAAiBsU,GAAjB,CAAD,iCAAgDC,OAAO,CAAClN,QAAR,EAAhD,oBAAX;;EAEA,UAAIiN,GAAG,KAAK,CAAZ,EAAe;EACX,eAAOhL,OAAO,CAACuF,OAAR,CAAgBhJ,MAAvB;EACAvL,QAAAA,QAAQ,CAACiP,MAAD,EAAS,WAAT,EAAsB,IAAtB,CAAR;EACH,OAHD,MAGO;EACHiC,QAAAA,MAAM,CAAC5F,IAAP,GAAc,KAAd;EACA0D,QAAAA,OAAO,CAACuF,OAAR,CAAgBhJ,MAAhB,GAAyByO,GAAzB;;EAEA,YAAME,aAAa,GAAG,SAAhBA,aAAgB,GAAM;EACxB,cAAQnF,UAAR,GAAoC9F,MAApC,CAAQ8F,UAAR;EAAA,cAAoBC,WAApB,GAAoC/F,MAApC,CAAoB+F,WAApB;EACA,iBAAOD,UAAU,GAAGC,WAAb,GAA2BA,WAAW,GAAGD,UAAzC,GAAsDA,UAAU,GAAGC,WAA1E;EACH,SAHD;;EAKA,YAAImF,QAAQ,GAAG,CAAf;EACA,YAAIC,UAAU,GAAG,CAAjB;;EACA,gBAAQJ,GAAR;EACI,eAAK,CAAC,GAAN;EACIG,YAAAA,QAAQ,GAAG,EAAX;EACAC,YAAAA,UAAU,GAAGF,aAAa,EAA1B;EACA;;EACJ,eAAK,CAAC,GAAN;EACIC,YAAAA,QAAQ,GAAG,GAAX;EACA;;EACJ,eAAK,CAAC,EAAN;EACIA,YAAAA,QAAQ,GAAG,GAAX;EACAC,YAAAA,UAAU,GAAGF,aAAa,EAA1B;EACA;;EACJ,eAAK,EAAL;EACIC,YAAAA,QAAQ,GAAG,EAAX;EACAC,YAAAA,UAAU,GAAGF,aAAa,EAA1B;EACA;;EACJ,eAAK,GAAL;EACIC,YAAAA,QAAQ,GAAG,GAAX;EACA;;EACJ,eAAK,GAAL;EACIA,YAAAA,QAAQ,GAAG,GAAX;EACAC,YAAAA,UAAU,GAAGF,aAAa,EAA1B;EACA;EAtBR;;EA2BAla,QAAAA,QAAQ,CAACiP,MAAD,EAAS,WAAT,mBAAgCkL,QAAhC,wBAAsDC,UAAtD,OAAR;EACH;;EAEDnI,MAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,QAAT,CAAjB,eAAwC6I,GAAxC;EACA/L,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT,EAAmBqI,GAAnB;EACH;EAtDiB,GAAnB,CAAH;EAyDAvT,EAAAA,GAAG,CAACyK,MAAD,EAAS,aAAT,EAAwB;EACvBG,IAAAA,GADuB,eACnBlR,KADmB,EACZ;EACP,UAAIA,KAAK,IAAI+Q,MAAM,CAAC3F,MAApB,EAA4B;EACxB,YAAQA,MAAR,GAAmB2F,MAAnB,CAAQ3F,MAAR;EACA2F,QAAAA,MAAM,CAAC3F,MAAP,GAAgBA,MAAhB;EACH;EACJ;EANsB,GAAxB,CAAH;EAQH;;ECxEc,SAAS8O,SAAT,CAAmBpM,GAAnB,EAAwBiD,MAAxB,EAAgC;EAC3C,MACI/C,MADJ,GAGIF,GAHJ,CACIE,MADJ;EAAA,MAEgBe,OAFhB,GAGIjB,GAHJ,CAEIU,QAFJ,CAEgBO,OAFhB;EAKAzI,EAAAA,GAAG,CAACyK,MAAD,EAAS,QAAT,EAAmB;EAClBC,IAAAA,GAAG,EAAE;EAAA,aAAMhD,MAAM,CAACxD,MAAb;EAAA,KADa;EAElB0G,IAAAA,GAFkB,eAEd5L,GAFc,EAET;EACL0I,MAAAA,MAAM,CAACxD,MAAP,GAAgBlF,GAAhB;EACAzF,MAAAA,QAAQ,CAACkP,OAAD,EAAU,iBAAV,gBAAoCzJ,GAApC,OAAR;EACH;EALiB,GAAnB,CAAH;EAOH;;MCiBoB6U,SACjB,gBAAYrM,GAAZ,EAAiB;EAAA;;EACbgD,EAAAA,MAAM,CAAChD,GAAD,EAAM,IAAN,CAAN;EACA6D,EAAAA,SAAS,CAAC7D,GAAD,EAAM,IAAN,CAAT;EACA2D,EAAAA,QAAQ,CAAC3D,GAAD,EAAM,IAAN,CAAR;EACA4E,EAAAA,aAAa,CAAC5E,GAAD,EAAM,IAAN,CAAb;EACAgF,EAAAA,OAAO,CAAChF,GAAD,EAAM,IAAN,CAAP;EACAqF,EAAAA,QAAQ,CAACrF,GAAD,EAAM,IAAN,CAAR;EACAuF,EAAAA,SAAS,CAACvF,GAAD,EAAM,IAAN,CAAT;EACAwF,EAAAA,SAAO,CAACxF,GAAD,EAAM,IAAN,CAAP;EACA2F,EAAAA,SAAS,CAAC3F,GAAD,EAAM,IAAN,CAAT;EACA8F,EAAAA,cAAc,CAAC9F,GAAD,EAAM,IAAN,CAAd;EACAgG,EAAAA,WAAW,CAAChG,GAAD,EAAM,IAAN,CAAX;EACAkG,EAAAA,SAAS,CAAClG,GAAD,EAAM,IAAN,CAAT;EACAqG,EAAAA,eAAe,CAACrG,GAAD,EAAM,IAAN,CAAf;EACA0G,EAAAA,cAAc,CAAC1G,GAAD,EAAM,IAAN,CAAd;EACAkH,EAAAA,aAAa,CAAClH,GAAD,EAAM,IAAN,CAAb;EACAsI,EAAAA,aAAa,CAACtI,GAAD,EAAM,IAAN,CAAb;EACA0I,EAAAA,gBAAgB,CAAC1I,GAAD,EAAM,IAAN,CAAhB;EACA2I,EAAAA,mBAAmB,CAAC3I,GAAD,EAAM,IAAN,CAAnB;EACA4J,EAAAA,MAAM,CAAC5J,GAAD,EAAM,IAAN,CAAN;EACAsM,EAAAA,OAAS,CAACtM,GAAD,EAAM,IAAN,CAAT;EACAiK,EAAAA,SAAS,CAACjK,GAAD,EAAM,IAAN,CAAT;EACAkK,EAAAA,UAAU,CAAClK,GAAD,EAAM,IAAN,CAAV;EACAuM,EAAAA,SAAW,CAACvM,GAAD,EAAM,IAAN,CAAX;EACAuK,EAAAA,OAAO,CAACvK,GAAD,EAAM,IAAN,CAAP;EACA0K,EAAAA,OAAO,CAAC1K,GAAD,EAAM,IAAN,CAAP;EACA8K,EAAAA,QAAQ,CAAC9K,GAAD,EAAM,IAAN,CAAR;EACA+K,EAAAA,OAAO,CAAC/K,GAAD,EAAM,IAAN,CAAP;EACA4L,EAAAA,OAAO,CAAC5L,GAAD,EAAM,IAAN,CAAP;EACA8L,EAAAA,SAAS,CAAC9L,GAAD,EAAM,IAAN,CAAT;EACAoM,EAAAA,SAAS,CAACpM,GAAD,EAAM,IAAN,CAAT;EACAjH,EAAAA,cAAc,CAACiH,GAAD,EAAM,IAAN,CAAd;EACH;;EChEU,SAAS,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE;EACzD,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;EAClE,IAAI,MAAM,GAAG9K,eAAc,CAAC,MAAM,CAAC,CAAC;EACpC,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,MAAM;EAC/B,GAAG;AACH;EACA,EAAE,OAAO,MAAM,CAAC;EAChB;;ECPe,SAAS,IAAI,GAAG;EAC/B,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE;EACrD,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;EACvB,GAAG,MAAM;EACT,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;EACrD,MAAM,IAAI,IAAI,GAAGsX,cAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EACjD,MAAM,IAAI,CAAC,IAAI,EAAE,OAAO;EACxB,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjE;EACA,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;EACpB,QAAQ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;EACvE,OAAO;AACP;EACA,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC;EACxB,KAAK,CAAC;EACN,GAAG;AACH;EACA,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EACrC;;MCfqBC;EACjB,qBAAYzM,GAAZ,EAAiB;EAAA;;EACb,SAAK0M,EAAL,GAAU,CAAV;EACA,SAAK1M,GAAL,GAAWA,GAAX;EACA,SAAKhP,GAAL,GAAW,KAAKA,GAAL,CAAS2b,IAAT,CAAc,IAAd,CAAX;EACH;;;;WAED,eAAW;EACP,aAAOxb,QAAQ,CAAC,KAAK6O,GAAL,CAASU,QAAT,CAAkBK,OAAnB,gBAAmC,KAAKxS,IAAxC,WAAf;EACH;WAED,aAAS2D,KAAT,EAAgB;EACZ,UAAQ6O,OAAR,GAAoB,KAAKf,GAAL,CAASU,QAA7B,CAAQK,OAAR;EACA,UAAMjQ,SAAS,iBAAU,KAAKvC,IAAf,UAAf;;EACA,UAAI2D,KAAJ,EAAW;EACPtB,QAAAA,QAAQ,CAACmQ,OAAD,EAAUjQ,SAAV,CAAR;EACH,OAFD,MAEO;EACHG,QAAAA,WAAW,CAAC8P,OAAD,EAAUjQ,SAAV,CAAX;EACH;;EACD,WAAKkP,GAAL,CAAS0D,IAAT,CAAc,KAAKnV,IAAnB,EAAyB2D,KAAzB;EACH;;;WAED,aAAWA,KAAX,EAAkB;EACd,UAAIA,KAAJ,EAAW;EACP,aAAKuR,IAAL,GAAY,CAAC,KAAKA,IAAlB;EACH;EACJ;;;aAED,aAAImJ,SAAJ,EAAe;EAAA;;EACX,UAAM1M,MAAM,GAAG,OAAO0M,SAAP,KAAqB,UAArB,GAAkCA,SAAS,CAAC,KAAK5M,GAAN,CAA3C,GAAwD4M,SAAvE;EACA,UAAI,CAAC,KAAKC,OAAN,IAAiB,CAAC,KAAKte,IAAvB,IAA+B2R,MAAM,CAAC5D,OAA1C,EAAmD;EACnD,UAAM/N,IAAI,GAAG2R,MAAM,CAAC3R,IAAP,cAAkB,KAAKA,IAAvB,SAA8B,KAAKme,EAAnC,CAAb;EACAjX,MAAAA,WAAW,CAAC,CAACmD,GAAG,CAAC,IAAD,EAAOrK,IAAP,CAAL,yCAAmDA,IAAnD,uBAAoE,KAAKA,IAAzE,OAAX;EAEA,WAAKme,EAAL,IAAW,CAAX;EACA,UAAMI,IAAI,GAAGxc,QAAQ,CAACwH,aAAT,CAAuB,KAAvB,CAAb;EACAlH,MAAAA,QAAQ,CAACkc,IAAD,gBAAc,KAAKve,IAAnB,EAAR;EACAqC,MAAAA,QAAQ,CAACkc,IAAD,gBAAc,KAAKve,IAAnB,cAA2BA,IAA3B,EAAR;EAEA,UAAMwe,MAAM,GAAGtc,KAAK,CAACC,IAAN,CAAW,KAAKmc,OAAL,CAAa7Z,QAAxB,CAAf;EACA8Z,MAAAA,IAAI,CAACxG,OAAL,CAAazP,KAAb,GAAqBqJ,MAAM,CAACrJ,KAAP,IAAgB,KAAK6V,EAA1C;EACA,UAAMM,SAAS,GAAGD,MAAM,CAACE,IAAP,CAAY,UAAC/Z,IAAD;EAAA,eAAUuT,MAAM,CAACvT,IAAI,CAACoT,OAAL,CAAazP,KAAd,CAAN,IAA8B4P,MAAM,CAACqG,IAAI,CAACxG,OAAL,CAAazP,KAAd,CAA9C;EAAA,OAAZ,CAAlB;;EACA,UAAImW,SAAJ,EAAe;EACXA,QAAAA,SAAS,CAACE,qBAAV,CAAgC,aAAhC,EAA+CJ,IAA/C;EACH,OAFD,MAEO;EACHzb,QAAAA,MAAM,CAAC,KAAKwb,OAAN,EAAeC,IAAf,CAAN;EACH;;EAED,UAAI5M,MAAM,CAAC7D,IAAX,EAAiB;EACbhL,QAAAA,MAAM,CAACyb,IAAD,EAAO5M,MAAM,CAAC7D,IAAd,CAAN;EACH;;EAED,UAAI6D,MAAM,CAAC/N,KAAX,EAAkB;EACdC,QAAAA,SAAS,CAAC0a,IAAD,EAAO5M,MAAM,CAAC/N,KAAd,CAAT;EACH;;EAED,UAAI+N,MAAM,CAAC9M,OAAX,EAAoB;EAChBA,QAAAA,OAAO,CAAC0Z,IAAD,EAAO5M,MAAM,CAAC9M,OAAd,CAAP;EACH;;EAED,UAAI8M,MAAM,CAAChI,KAAX,EAAkB;EACd,aAAK8H,GAAL,CAASH,MAAT,CAAgBiE,KAAhB,CAAsBgJ,IAAtB,EAA4B,OAA5B,EAAqC,UAACnY,KAAD,EAAW;EAC5CA,UAAAA,KAAK,CAACwY,cAAN;EACAjN,UAAAA,MAAM,CAAChI,KAAP,CAAaY,IAAb,CAAkB,KAAI,CAACkH,GAAvB,EAA4B,KAA5B,EAAkCrL,KAAlC;EACH,SAHD;EAIH;;EAED,UAAIuL,MAAM,CAAC9P,QAAP,IAAmB,CAAC,MAAD,EAAS,OAAT,EAAkBqH,QAAlB,CAA2ByI,MAAM,CAACrB,QAAlC,CAAvB,EAAoE;EAChE,aAAKzO,QAAL,CAAc8P,MAAd,EAAsB4M,IAAtB;EACH;;EAED,UAAI5M,MAAM,CAAC3D,OAAX,EAAoB;EAChB2D,QAAAA,MAAM,CAAC3D,OAAP,CAAezD,IAAf,CAAoB,KAAKkH,GAAzB,EAA8B8M,IAA9B;EACH;;EAED,UAAIA,IAAI,CAACM,UAAL,CAAgB7d,MAAhB,KAA2B,CAA3B,IAAgCud,IAAI,CAACM,UAAL,CAAgB,CAAhB,EAAmBC,QAAnB,KAAgC,CAApE,EAAuE;EACnEzc,QAAAA,QAAQ,CAACkc,IAAD,EAAO,sBAAP,CAAR;EACH;EACJ;;;aAED,kBAAS5M,MAAT,EAAiB4M,IAAjB,EAAuB;EAAA;;EACnB,6BAAyB,KAAK9M,GAAL,CAASH,MAAlC;EAAA,UAAQyN,KAAR,oBAAQA,KAAR;EAAA,UAAexJ,KAAf,oBAAeA,KAAf;EAEAlT,MAAAA,QAAQ,CAACkc,IAAD,EAAO,sBAAP,CAAR;EACA,UAAMS,MAAM,GAAGjd,QAAQ,CAACwH,aAAT,CAAuB,KAAvB,CAAf;EACAlH,MAAAA,QAAQ,CAAC2c,MAAD,EAAS,oBAAT,CAAR;EACAlc,MAAAA,MAAM,CAACkc,MAAD,EAASrN,MAAM,CAAC7D,IAAhB,CAAN;EACAyQ,MAAAA,IAAI,CAACU,SAAL,GAAiB,EAAjB;EACAnc,MAAAA,MAAM,CAACyb,IAAD,EAAOS,MAAP,CAAN;EAEA,UAAME,IAAI,GAAGvN,MAAM,CAAC9P,QAAP,CAAgBwG,GAAhB,CAAoB,UAAC1D,IAAD;EAAA,0DAA4CA,IAAI,CAAC3E,IAAjD;EAAA,OAApB,EAAmFwI,IAAnF,CAAwF,EAAxF,CAAb;EACA,UAAM2W,KAAK,GAAGpd,QAAQ,CAACwH,aAAT,CAAuB,KAAvB,CAAd;EACAlH,MAAAA,QAAQ,CAAC8c,KAAD,EAAQ,mBAAR,CAAR;EACArc,MAAAA,MAAM,CAACqc,KAAD,EAAQD,IAAR,CAAN;EACApc,MAAAA,MAAM,CAACyb,IAAD,EAAOY,KAAP,CAAN;;EAEA,UAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;EAClBD,QAAAA,KAAK,CAACvb,KAAN,CAAYqC,IAAZ,cAAuB/B,QAAQ,CAACib,KAAD,EAAQ,OAAR,CAAR,GAA2B,CAA3B,GAA+Bjb,QAAQ,CAACqa,IAAD,EAAO,OAAP,CAAR,GAA0B,CAAhF;EACH,OAFD;;EAIAQ,MAAAA,KAAK,CAACR,IAAD,EAAOa,OAAP,CAAL;EAEA7J,MAAAA,KAAK,CAACgJ,IAAD,EAAO,OAAP,EAAgB,UAACnY,KAAD,EAAW;EAC5B,YAAIxD,QAAQ,CAACwD,KAAK,CAAC9D,MAAP,EAAe,mBAAf,CAAZ,EAAiD;EAC7C,cAAMtC,IAAI,GAAGoG,KAAK,CAAC9D,MAAN,CAAa2c,SAA1B;EACA,cAAID,MAAM,CAACC,SAAP,KAAqBjf,IAAzB,EAA+B;EAC/B,cAAM0e,IAAI,GAAG/M,MAAM,CAAC9P,QAAP,CAAgB6c,IAAhB,CAAqB,UAAC/Z,IAAD;EAAA,mBAAUA,IAAI,CAAC3E,IAAL,KAAcA,IAAxB;EAAA,WAArB,CAAb;EACAgf,UAAAA,MAAM,CAACC,SAAP,GAAmBjf,IAAnB;EACAof,UAAAA,OAAO;;EACP,cAAIV,IAAJ,EAAU;EACN,gBAAI/M,MAAM,CAAC1D,QAAX,EAAqB;EACjB0D,cAAAA,MAAM,CAAC1D,QAAP,CAAgB1D,IAAhB,CAAqB,MAAI,CAACkH,GAA1B,EAA+BiN,IAA/B;EACH;;EACD,YAAA,MAAI,CAACjN,GAAL,CAAS0D,IAAT,CAAc,UAAd,EAA0BuJ,IAA1B;EACH;EACJ;EACJ,OAdI,CAAL;EAeH;;;;;;;;;ECvHU,SAASjP,YAAT,CAAoBkC,MAApB,EAA4B;EACvC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN9M,MAAAA,OAAO,EAAE4M,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,YAAb,CAFH;EAGN3G,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,YACc9J,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAKIO,GALJ,CAEIP,KAFJ;EAAA,YAGIsE,IAHJ,GAKI/D,GALJ,CAGI+D,IAHJ;EAAA,YAIId,MAJJ,GAKIjD,GALJ,CAIIiD,MAJJ;EAOA5R,QAAAA,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAACzB,UAAjB,CAAN;EAEA8F,QAAAA,KAAK,CAAC8J,QAAD,EAAW,OAAX,EAAoB,YAAM;EAC3B3K,UAAAA,MAAM,CAAC4K,gBAAP,GAA0B,IAA1B;EACH,SAFI,CAAL;EAIA7N,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,YAAP,EAAqB,UAAAgD,KAAK,EAAI;EAC1BkB,UAAAA,OAAO,CAACwa,QAAD,EAAW7J,IAAI,CAACb,GAAL,CAAShR,KAAK,GAAG,iBAAH,GAAuB,YAArC,CAAX,CAAP;EACH,SAFD;EAGH;EApBK;EAAA,GAAV;EAsBH;;;;;ECvBc,SAAS+L,eAAT,CAAuBiC,MAAvB,EAA+B;EAC1C,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN9M,MAAAA,OAAO,EAAE4M,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,gBAAb,CAFH;EAGN3G,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,YACc9J,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAKIO,GALJ,CAEIP,KAFJ;EAAA,YAGIsE,IAHJ,GAKI/D,GALJ,CAGI+D,IAHJ;EAAA,YAIId,MAJJ,GAKIjD,GALJ,CAIIiD,MAJJ;EAOA5R,QAAAA,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAACxB,aAAjB,CAAN;EAEA6F,QAAAA,KAAK,CAAC8J,QAAD,EAAW,OAAX,EAAoB,YAAM;EAC3B3K,UAAAA,MAAM,CAAC6K,mBAAP,GAA6B,IAA7B;EACH,SAFI,CAAL;EAIA9N,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,eAAP,EAAwB,UAAAgD,KAAK,EAAI;EAC7BkB,UAAAA,OAAO,CAACwa,QAAD,EAAW7J,IAAI,CAACb,GAAL,CAAShR,KAAK,GAAG,qBAAH,GAA2B,gBAAzC,CAAX,CAAP;EACH,SAFD;EAGH;EApBK;EAAA,GAAV;EAsBH;;;;;ECvBc,SAAS0L,KAAT,CAAasC,MAAb,EAAqB;EAChC,SAAO,UAACF,GAAD;EAAA,+CACAE,MADA;EAEH9M,MAAAA,OAAO,EAAE4M,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,UAAb,CAFN;EAGH3G,MAAAA,OAAO,EAAE,iBAACqR,QAAD,EAAc;EACnB,YACc9J,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAKIO,GALJ,CAEIP,KAFJ;EAAA,YAGIsE,IAHJ,GAKI/D,GALJ,CAGI+D,IAHJ;EAAA,YAIId,MAJJ,GAKIjD,GALJ,CAIIiD,MAJJ;EAOA5R,QAAAA,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAAC7B,GAAjB,CAAN;EAEAkG,QAAAA,KAAK,CAAC8J,QAAD,EAAW,OAAX,EAAoB,YAAM;EAC3B3K,UAAAA,MAAM,CAAC8K,SAAP,GAAmB,IAAnB;EACH,SAFI,CAAL;EAIA/N,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,KAAP,EAAc,UAACgD,KAAD,EAAW;EACrBkB,UAAAA,OAAO,CAACwa,QAAD,EAAW7J,IAAI,CAACb,GAAL,CAAShR,KAAK,GAAG,eAAH,GAAqB,UAAnC,CAAX,CAAP;EACH,SAFD;EAGH;EApBE;EAAA,GAAP;EAsBH;;;;;ECvBc,SAAS8b,YAAT,CAAsB9N,MAAtB,EAA8B;EACzC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN3D,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,YACc9J,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAKIO,GALJ,CAEIP,KAFJ;EAAA,YAGIsE,IAHJ,GAKI/D,GALJ,CAGI+D,IAHJ;EAAA,YAIId,MAJJ,GAKIjD,GALJ,CAIIiD,MAJJ;EAOA,YAAMgL,KAAK,GAAG5c,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAACgF,IAAjB,CAApB;EACA,YAAMyJ,MAAM,GAAG7c,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAAC2F,KAAjB,CAArB;EACAhS,QAAAA,OAAO,CAAC6a,KAAD,EAAQlK,IAAI,CAACb,GAAL,CAAS,MAAT,CAAR,CAAP;EACA9P,QAAAA,OAAO,CAAC8a,MAAD,EAASnK,IAAI,CAACb,GAAL,CAAS,OAAT,CAAT,CAAP;EAEAY,QAAAA,KAAK,CAACmK,KAAD,EAAQ,OAAR,EAAiB,YAAM;EACxBhL,UAAAA,MAAM,CAACwB,IAAP,GAAc,IAAd;EACH,SAFI,CAAL;EAIAX,QAAAA,KAAK,CAACoK,MAAD,EAAS,OAAT,EAAkB,YAAM;EACzBjL,UAAAA,MAAM,CAACmC,KAAP,GAAe,IAAf;EACH,SAFI,CAAL;;EAIA,iBAAS+I,QAAT,GAAoB;EAChBpc,UAAAA,QAAQ,CAACkc,KAAD,EAAQ,SAAR,EAAmB,MAAnB,CAAR;EACAlc,UAAAA,QAAQ,CAACmc,MAAD,EAAS,SAAT,EAAoB,MAApB,CAAR;EACH;;EAED,iBAASE,SAAT,GAAqB;EACjBrc,UAAAA,QAAQ,CAACkc,KAAD,EAAQ,SAAR,EAAmB,MAAnB,CAAR;EACAlc,UAAAA,QAAQ,CAACmc,MAAD,EAAS,SAAT,EAAoB,MAApB,CAAR;EACH;;EAED,YAAIjL,MAAM,CAACyB,OAAX,EAAoB;EAChB0J,UAAAA,SAAS;EACZ,SAFD,MAEO;EACHD,UAAAA,QAAQ;EACX;;EAEDnO,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,eAAP,EAAwB,YAAM;EAC1Bkf,UAAAA,SAAS;EACZ,SAFD;EAIApO,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,aAAP,EAAsB,YAAM;EACxBif,UAAAA,QAAQ;EACX,SAFD;EAGH;EA9CK;EAAA,GAAV;EAgDH;;;;;ECvCM,SAASE,eAAT,CAAyBrO,GAAzB,EAA8BrL,KAA9B,EAAqC;EACxC,MACgB0M,SADhB,GAGIrB,GAHJ,CACIU,QADJ,CACgBW,SADhB;EAAA,MAEI4B,MAFJ,GAGIjD,GAHJ,CAEIiD,MAFJ;;EAKA,8BAAiB5B,SAAS,CAACzN,qBAAV,EAAjB;EAAA,MAAQY,IAAR,yBAAQA,IAAR;;EACA,MAAMC,KAAK,GAAGoG,KAAK,CAAClG,KAAK,CAAC2W,KAAN,GAAc9W,IAAf,EAAqB,CAArB,EAAwB6M,SAAS,CAAClN,WAAlC,CAAnB;EACA,MAAMkH,MAAM,GAAI5G,KAAK,GAAG4M,SAAS,CAAClN,WAAnB,GAAkC8O,MAAM,CAACyC,QAAxD;EACA,MAAMhP,IAAI,GAAG0E,YAAY,CAACC,MAAD,CAAzB;EACA,MAAMuK,UAAU,GAAG/K,KAAK,CAACpG,KAAK,GAAG4M,SAAS,CAAClN,WAAnB,EAAgC,CAAhC,EAAmC,CAAnC,CAAxB;EACA,SAAO;EAAEkH,IAAAA,MAAM,EAANA,MAAF;EAAU3E,IAAAA,IAAI,EAAJA,IAAV;EAAgBjC,IAAAA,KAAK,EAALA,KAAhB;EAAuBmR,IAAAA,UAAU,EAAVA;EAAvB,GAAP;EACH;EAEc,SAAS0I,QAAT,CAAkBpO,MAAlB,EAA0B;EACrC,SAAO,UAACF,GAAD,EAAS;EACZ,sBAIIA,GAJJ,CACIE,MADJ;EAAA,QACcjB,SADd,eACcA,SADd;EAAA,QACyBrC,KADzB,eACyBA,KADzB;EAAA,QAEckH,KAFd,GAII9D,GAJJ,CAEIH,MAFJ,CAEciE,KAFd;EAAA,QAGIb,MAHJ,GAIIjD,GAJJ,CAGIiD,MAHJ;EAKA,+CACO/C,MADP;EAEI7D,MAAAA,IAAI,oNAG0DO,KAH1D,wKAK6DA,KAL7D,wHAFR;EAWIL,MAAAA,OAAO,EAAE,iBAACqR,QAAD,EAAc;EACnB,YAAI3C,SAAS,GAAG,KAAhB;EACA,YAAMsD,OAAO,GAAGpe,KAAK,CAAC,sBAAD,EAAyByd,QAAzB,CAArB;EACA,YAAMY,OAAO,GAAGre,KAAK,CAAC,sBAAD,EAAyByd,QAAzB,CAArB;EACA,YAAMa,UAAU,GAAGte,KAAK,CAAC,yBAAD,EAA4Byd,QAA5B,CAAxB;EACA,YAAMc,UAAU,GAAGve,KAAK,CAAC,yBAAD,EAA4Byd,QAA5B,CAAxB;EACA,YAAMe,IAAI,GAAGxe,KAAK,CAAC,mBAAD,EAAsByd,QAAtB,CAAlB;;EAEA,iBAASgB,aAAT,CAAuBja,KAAvB,EAA8B;EAC1B,iCAAkB0Z,eAAe,CAACrO,GAAD,EAAMrL,KAAN,CAAjC;EAAA,cAAQF,KAAR,oBAAQA,KAAR;;EACA,cAAQ6C,IAAR,GAAiB3C,KAAK,CAAC9D,MAAN,CAAayV,OAA9B,CAAQhP,IAAR;EACAqX,UAAAA,IAAI,CAAC9N,SAAL,GAAiBvJ,IAAjB;EACA,cAAMuX,QAAQ,GAAGF,IAAI,CAACxa,WAAtB;;EACA,cAAIM,KAAK,IAAIoa,QAAQ,GAAG,CAAxB,EAA2B;EACvB9c,YAAAA,QAAQ,CAAC4c,IAAD,EAAO,MAAP,EAAe,CAAf,CAAR;EACH,WAFD,MAEO,IAAIla,KAAK,GAAGmZ,QAAQ,CAACzZ,WAAT,GAAuB0a,QAAQ,GAAG,CAA9C,EAAiD;EACpD9c,YAAAA,QAAQ,CAAC4c,IAAD,EAAO,MAAP,YAAkBf,QAAQ,CAACzZ,WAAT,GAAuB0a,QAAzC,QAAR;EACH,WAFM,MAEA;EACH9c,YAAAA,QAAQ,CAAC4c,IAAD,EAAO,MAAP,YAAkBla,KAAK,GAAGoa,QAAQ,GAAG,CAArC,QAAR;EACH;EACJ;;EAED,iBAASC,QAAT,CAAkBna,KAAlB,EAAyB;EACrB,kCAAwB0Z,eAAe,CAACrO,GAAD,EAAMrL,KAAN,CAAvC;EAAA,cAAQF,KAAR,qBAAQA,KAAR;EAAA,cAAeiC,IAAf,qBAAeA,IAAf;;EACAiY,UAAAA,IAAI,CAAC9N,SAAL,GAAiBnK,IAAjB;EACA,cAAMmY,QAAQ,GAAGF,IAAI,CAACxa,WAAtB;;EACA,cAAIM,KAAK,IAAIoa,QAAQ,GAAG,CAAxB,EAA2B;EACvB9c,YAAAA,QAAQ,CAAC4c,IAAD,EAAO,MAAP,EAAe,CAAf,CAAR;EACH,WAFD,MAEO,IAAIla,KAAK,GAAGmZ,QAAQ,CAACzZ,WAAT,GAAuB0a,QAAQ,GAAG,CAA9C,EAAiD;EACpD9c,YAAAA,QAAQ,CAAC4c,IAAD,EAAO,MAAP,YAAkBf,QAAQ,CAACzZ,WAAT,GAAuB0a,QAAzC,QAAR;EACH,WAFM,MAEA;EACH9c,YAAAA,QAAQ,CAAC4c,IAAD,EAAO,MAAP,YAAkBla,KAAK,GAAGoa,QAAQ,GAAG,CAArC,QAAR;EACH;EACJ;;EAED,iBAASE,MAAT,CAAgB3Y,IAAhB,EAAsBwP,UAAtB,EAAkC;EAC9B,cAAIxP,IAAI,KAAK,QAAb,EAAuB;EACnBrE,YAAAA,QAAQ,CAACwc,OAAD,EAAU,OAAV,YAAsB3I,UAAU,GAAG,GAAnC,OAAR;EACH;;EAED,cAAIxP,IAAI,KAAK,QAAb,EAAuB;EACnBrE,YAAAA,QAAQ,CAACyc,OAAD,EAAU,OAAV,YAAsB5I,UAAU,GAAG,GAAnC,OAAR;EACA7T,YAAAA,QAAQ,CACJ2c,UADI,EAEJ,MAFI,iBAGI9I,UAAU,GAAG,GAHjB,iBAG2BnT,QAAQ,CAACic,UAAD,EAAa,OAAb,CAAR,GAAgC,CAH3D,SAAR;EAKH;EACJ;;EAEDzP,QAAAA,SAAS,CAACzM,OAAV,CAAkB,UAACU,IAAD,EAAU;EACxB,cAAMsB,IAAI,GAAIqG,KAAK,CAAC3H,IAAI,CAACwD,IAAN,EAAY,CAAZ,EAAeuM,MAAM,CAACyC,QAAtB,CAAL,GAAuCzC,MAAM,CAACyC,QAA/C,GAA2D,GAAxE;EACArU,UAAAA,MAAM,CACFod,UADE,8BAEkBvb,IAAI,CAACoE,IAFvB,4BAE2CpE,IAAI,CAACwD,IAFhD,8BAEsElC,IAFtE,iBAAN;EAIH,SAND;EAQAua,QAAAA,MAAM,CAAC,QAAD,EAAW9L,MAAM,CAAC+L,MAAlB,CAAN;EAEAhP,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,gBAAP,EAAyB,YAAM;EAC3B6f,UAAAA,MAAM,CAAC,QAAD,EAAW9L,MAAM,CAAC+L,MAAlB,CAAN;EACH,SAFD;EAIAhP,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,kBAAP,EAA2B,YAAM;EAC7B6f,UAAAA,MAAM,CAAC,QAAD,EAAW9L,MAAM,CAACgM,MAAlB,CAAN;EACH,SAFD;EAIAjP,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,aAAP,EAAsB,YAAM;EACxB6f,UAAAA,MAAM,CAAC,QAAD,EAAW,CAAX,CAAN;EACH,SAFD;EAIAjL,QAAAA,KAAK,CAAC8J,QAAD,EAAW,WAAX,EAAwB,UAACjZ,KAAD,EAAW;EACpC5C,UAAAA,QAAQ,CAAC4c,IAAD,EAAO,SAAP,EAAkB,OAAlB,CAAR;;EACA,cAAIja,gBAAgB,CAACC,KAAD,EAAQ8Z,UAAR,CAApB,EAAyC;EACrCG,YAAAA,aAAa,CAACja,KAAD,CAAb;EACH,WAFD,MAEO;EACHma,YAAAA,QAAQ,CAACna,KAAD,CAAR;EACH;EACJ,SAPI,CAAL;EASAmP,QAAAA,KAAK,CAAC8J,QAAD,EAAW,UAAX,EAAuB,YAAM;EAC9B7b,UAAAA,QAAQ,CAAC4c,IAAD,EAAO,SAAP,EAAkB,MAAlB,CAAR;EACH,SAFI,CAAL;EAIA7K,QAAAA,KAAK,CAAC8J,QAAD,EAAW,OAAX,EAAoB,UAACjZ,KAAD,EAAW;EAChC,cAAIA,KAAK,CAAC9D,MAAN,KAAiB6d,UAArB,EAAiC;EAC7B,oCAA+BL,eAAe,CAACrO,GAAD,EAAMrL,KAAN,CAA9C;EAAA,gBAAQ0G,MAAR,qBAAQA,MAAR;EAAA,gBAAgBuK,UAAhB,qBAAgBA,UAAhB;;EACAmJ,YAAAA,MAAM,CAAC,QAAD,EAAWnJ,UAAX,CAAN;EACA3C,YAAAA,MAAM,CAACuB,IAAP,GAAcnJ,MAAd;EACH;EACJ,SANI,CAAL;EAQAyI,QAAAA,KAAK,CAAC4K,UAAD,EAAa,WAAb,EAA0B,YAAM;EACjCzD,UAAAA,SAAS,GAAG,IAAZ;EACH,SAFI,CAAL;EAIAnH,QAAAA,KAAK,CAACxT,QAAD,EAAW,WAAX,EAAwB,UAACqE,KAAD,EAAW;EACpC,cAAIsW,SAAJ,EAAe;EACX,oCAA+BoD,eAAe,CAACrO,GAAD,EAAMrL,KAAN,CAA9C;EAAA,gBAAQ0G,MAAR,qBAAQA,MAAR;EAAA,gBAAgBuK,UAAhB,qBAAgBA,UAAhB;;EACAhV,YAAAA,QAAQ,CAAC8d,UAAD,EAAa,oBAAb,CAAR;EACAK,YAAAA,MAAM,CAAC,QAAD,EAAWnJ,UAAX,CAAN;EACA3C,YAAAA,MAAM,CAACuB,IAAP,GAAcnJ,MAAd;EACH;EACJ,SAPI,CAAL;EASAyI,QAAAA,KAAK,CAACxT,QAAD,EAAW,SAAX,EAAsB,YAAM;EAC7B,cAAI2a,SAAJ,EAAe;EACXA,YAAAA,SAAS,GAAG,KAAZ;EACAha,YAAAA,WAAW,CAACyd,UAAD,EAAa,oBAAb,CAAX;EACH;EACJ,SALI,CAAL;EAMH;EA3HL;EA6HH,GAnID;EAoIH;;;;;EC7Jc,SAASrP,UAAT,CAAkBa,MAAlB,EAA0B;EACrC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN9M,MAAAA,OAAO,EAAE4M,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,eAAb,CAFH;EAGN3G,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,YACc9J,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAKIO,GALJ,CAEIP,KAFJ;EAAA,YAGIsE,IAHJ,GAKI/D,GALJ,CAGI+D,IAHJ;EAAA,YAII1E,QAJJ,GAKIW,GALJ,CAIIX,QAJJ;EAOAhO,QAAAA,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAACJ,QAAjB,CAAN;EAEAyE,QAAAA,KAAK,CAAC8J,QAAD,EAAW,OAAX,EAAoB,YAAM;EAC3BvO,UAAAA,QAAQ,CAAC8E,MAAT,GAAkB,IAAlB;EACH,SAFI,CAAL;EAIAnE,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,UAAP,EAAmB,UAAAgD,KAAK,EAAI;EACxBkB,UAAAA,OAAO,CAACwa,QAAD,EAAW7J,IAAI,CAACb,GAAL,CAAShR,KAAK,GAAG,eAAH,GAAqB,eAAnC,CAAX,CAAP;EACH,SAFD;EAGH;EApBK;EAAA,GAAV;EAsBH;;;;;ECvBc,SAASwE,IAAT,CAAcwJ,MAAd,EAAsB;EACjC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN3D,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,iBAASsB,OAAT,GAAmB;EACf,cAAMC,OAAO,aAAM/T,YAAY,CAAC4E,GAAG,CAACiD,MAAJ,CAAWwC,WAAZ,CAAlB,gBAAgDrK,YAAY,CAAC4E,GAAG,CAACiD,MAAJ,CAAWyC,QAAZ,CAA5D,CAAb;;EACA,cAAIyJ,OAAO,KAAKvB,QAAQ,CAACJ,SAAzB,EAAoC;EAChCI,YAAAA,QAAQ,CAACJ,SAAT,GAAqB2B,OAArB;EACH;EACJ;;EAEDD,QAAAA,OAAO;EACP,SAAC,sBAAD,EAAyB,kBAAzB,EAA6C,gBAA7C,EAA+D1c,OAA/D,CAAuE,UAAAmC,KAAK,EAAI;EAC5EqL,UAAAA,GAAG,CAAC9Q,EAAJ,CAAOyF,KAAP,EAAcua,OAAd;EACH,SAFD;EAGH;EAdK;EAAA,GAAV;EAgBH;;;;;ECjBc,SAASpS,QAAT,CAAgBoD,MAAhB,EAAwB;EACnC,SAAO,UAACF,GAAD;EAAA,+CACAE,MADA;EAEH3D,MAAAA,OAAO,EAAE,iBAACqR,QAAD,EAAc;EACnB,YACc9J,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAKIO,GALJ,CAEIP,KAFJ;EAAA,YAGIwD,MAHJ,GAKIjD,GALJ,CAGIiD,MAHJ;EAAA,YAIIc,IAJJ,GAKI/D,GALJ,CAII+D,IAJJ;EAOA,YAAIkH,SAAS,GAAG,KAAhB;EACA,YAAMmE,UAAU,GAAG,EAAnB,CATmB;;EAUnB,YAAMC,WAAW,GAAG,EAApB,CAVmB;;EAWnB,YAAMC,OAAO,GAAGje,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAAC3C,MAAjB,CAAtB;EACA,YAAMyS,YAAY,GAAGle,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAAC+P,WAAjB,CAA3B;EACA,YAAMC,YAAY,GAAGpe,MAAM,CAACuc,QAAD,EAAW,sCAAX,CAA3B;EACA,YAAM8B,aAAa,GAAGre,MAAM,CAACoe,YAAD,EAAe,8CAAf,CAA5B;EACArc,QAAAA,OAAO,CAACkc,OAAD,EAAUvL,IAAI,CAACb,GAAL,CAAS,MAAT,CAAV,CAAP;EACAnR,QAAAA,QAAQ,CAACwd,YAAD,EAAe,SAAf,EAA0B,MAA1B,CAAR;;EAEA,YAAIvP,GAAG,CAACjQ,QAAR,EAAkB;EACdgC,UAAAA,QAAQ,CAAC0d,YAAD,EAAe,SAAf,EAA0B,MAA1B,CAAR;EACH;;EAED,iBAASE,qBAAT,CAA+Bhb,KAA/B,EAAsC;EAClC,sCAA4B8a,YAAY,CAAC7b,qBAAb,EAA5B;EAAA,cAAcgc,SAAd,yBAAQpb,IAAR;;EACA,cAAMoR,UAAU,GACZ/K,KAAK,CAAClG,KAAK,CAAC2W,KAAN,GAAcsE,SAAd,GAA0BP,WAAW,GAAG,CAAzC,EAA4C,CAA5C,EAA+CD,UAAU,GAAGC,WAAW,GAAG,CAA1E,CAAL,IACCD,UAAU,GAAGC,WADd,CADJ;EAGA,iBAAOzJ,UAAP;EACH;;EAED,iBAASiK,eAAT,GAA2C;EAAA,cAAlBjK,UAAkB,uEAAL,GAAK;;EACvC,cAAI3C,MAAM,CAACjG,KAAP,IAAgB4I,UAAU,KAAK,CAAnC,EAAsC;EAClC7T,YAAAA,QAAQ,CAACud,OAAD,EAAU,SAAV,EAAqB,MAArB,CAAR;EACAvd,YAAAA,QAAQ,CAACwd,YAAD,EAAe,SAAf,EAA0B,MAA1B,CAAR;EACAxd,YAAAA,QAAQ,CAAC2d,aAAD,EAAgB,MAAhB,EAAwB,GAAxB,CAAR;EACH,WAJD,MAIO;EACH,gBAAMjb,KAAK,GAAG,CAAC2a,UAAU,GAAGC,WAAd,IAA6BzJ,UAA3C;EACA7T,YAAAA,QAAQ,CAACud,OAAD,EAAU,SAAV,EAAqB,MAArB,CAAR;EACAvd,YAAAA,QAAQ,CAACwd,YAAD,EAAe,SAAf,EAA0B,MAA1B,CAAR;EACAxd,YAAAA,QAAQ,CAAC2d,aAAD,EAAgB,MAAhB,YAA2Bjb,KAA3B,QAAR;EACH;EACJ;;EAEDob,QAAAA,eAAe,CAAC5M,MAAM,CAACnG,MAAR,CAAf;EACAkD,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,oBAAP,EAA6B,YAAM;EAC/B2gB,UAAAA,eAAe,CAAC5M,MAAM,CAACnG,MAAR,CAAf;EACH,SAFD;EAIAgH,QAAAA,KAAK,CAACwL,OAAD,EAAU,OAAV,EAAmB,YAAM;EAC1BrM,UAAAA,MAAM,CAACjG,KAAP,GAAe,IAAf;EACH,SAFI,CAAL;EAIA8G,QAAAA,KAAK,CAACyL,YAAD,EAAe,OAAf,EAAwB,YAAM;EAC/BtM,UAAAA,MAAM,CAACjG,KAAP,GAAe,KAAf;EACH,SAFI,CAAL;EAIA8G,QAAAA,KAAK,CAAC2L,YAAD,EAAe,OAAf,EAAwB,UAAC9a,KAAD,EAAW;EACpCsO,UAAAA,MAAM,CAACjG,KAAP,GAAe,KAAf;EACAiG,UAAAA,MAAM,CAACnG,MAAP,GAAgB6S,qBAAqB,CAAChb,KAAD,CAArC;EACH,SAHI,CAAL;EAKAmP,QAAAA,KAAK,CAAC4L,aAAD,EAAgB,WAAhB,EAA6B,YAAM;EACpCzE,UAAAA,SAAS,GAAG,IAAZ;EACH,SAFI,CAAL;EAIAnH,QAAAA,KAAK,CAAC8J,QAAD,EAAW,WAAX,EAAwB,UAACjZ,KAAD,EAAW;EACpC,cAAIsW,SAAJ,EAAe;EACXhI,YAAAA,MAAM,CAACjG,KAAP,GAAe,KAAf;EACAiG,YAAAA,MAAM,CAACnG,MAAP,GAAgB6S,qBAAqB,CAAChb,KAAD,CAArC;EACH;EACJ,SALI,CAAL;EAOAmP,QAAAA,KAAK,CAACxT,QAAD,EAAW,SAAX,EAAsB,YAAM;EAC7B,cAAI2a,SAAJ,EAAe;EACXA,YAAAA,SAAS,GAAG,KAAZ;EACH;EACJ,SAJI,CAAL;EAKH;EA/EE;EAAA,GAAP;EAiFH;;;;;EClFc,SAASvN,SAAT,CAAiBwC,MAAjB,EAAyB;EACpC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN9M,MAAAA,OAAO,EAAE4M,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,cAAb,CAFH;EAGN3G,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,YACc9J,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAKIO,GALJ,CAEIP,KAFJ;EAAA,YAGIsE,IAHJ,GAKI/D,GALJ,CAGI+D,IAHJ;EAAA,YAIIrG,OAJJ,GAKIsC,GALJ,CAIItC,OAJJ;EAOArM,QAAAA,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAAC/B,OAAjB,CAAN;EAEAoG,QAAAA,KAAK,CAAC8J,QAAD,EAAW,OAAX,EAAoB,YAAM;EAC3BlQ,UAAAA,OAAO,CAACyG,MAAR,GAAiB,IAAjB;EACH,SAFI,CAAL;EAIAnE,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,SAAP,EAAkB,UAAAgD,KAAK,EAAI;EACvBkB,UAAAA,OAAO,CAACwa,QAAD,EAAW7J,IAAI,CAACb,GAAL,CAAShR,KAAK,GAAG,cAAH,GAAoB,cAAlC,CAAX,CAAP;EACH,SAFD;EAGH;EApBK;EAAA,GAAV;EAsBH;;;;;ECtBc,SAASgN,UAAT,CAAoBgB,MAApB,EAA4B;EACvC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN3D,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,YACc1O,UADd,GAIIc,GAJJ,CACIE,MADJ,CACchB,UADd;EAAA,YAEgBmC,SAFhB,GAIIrB,GAJJ,CAEIU,QAFJ,CAEgBW,SAFhB;EAAA,0BAIIrB,GAJJ,CAGIH,MAHJ;EAAA,YAGciE,KAHd,eAGcA,KAHd;EAAA,YAGqBgM,OAHrB,eAGqBA,OAHrB;EAMA,YAAItM,OAAO,GAAG,KAAd;EACA,YAAIuM,MAAM,GAAG,KAAb;;EAEA,iBAASC,cAAT,CAAwBrb,KAAxB,EAA+B;EAC3B,iCAA4B0Z,eAAe,CAACrO,GAAD,EAAMrL,KAAN,CAA3C;EAAA,cAAesb,QAAf,oBAAQxb,KAAR;;EACA,cAAQ+C,GAAR,GAA+C0H,UAA/C,CAAQ1H,GAAR;EAAA,cAAalD,MAAb,GAA+C4K,UAA/C,CAAa5K,MAAb;EAAA,cAAqBG,KAArB,GAA+CyK,UAA/C,CAAqBzK,KAArB;EAAA,cAA4B0K,MAA5B,GAA+CD,UAA/C,CAA4BC,MAA5B;EAAA,cAAoCC,MAApC,GAA+CF,UAA/C,CAAoCE,MAApC;EACA,cAAM8Q,QAAQ,GAAG7O,SAAS,CAAClN,WAAV,GAAwBgL,MAAzC;EACA,cAAMgR,QAAQ,GAAGlV,IAAI,CAACO,KAAL,CAAWyU,QAAQ,GAAGC,QAAtB,CAAjB;EACA,cAAME,MAAM,GAAGnV,IAAI,CAACoV,IAAL,CAAUF,QAAQ,GAAG/Q,MAArB,IAA+B,CAA9C;EACA,cAAMkR,MAAM,GAAGH,QAAQ,GAAG/Q,MAAX,IAAqBA,MAAM,GAAG,CAA7C;EACArN,UAAAA,QAAQ,CAAC6b,QAAD,EAAW,iBAAX,gBAAqCpW,GAArC,OAAR;EACAzF,UAAAA,QAAQ,CAAC6b,QAAD,EAAW,QAAX,YAAwBtZ,MAAxB,QAAR;EACAvC,UAAAA,QAAQ,CAAC6b,QAAD,EAAW,OAAX,YAAuBnZ,KAAvB,QAAR;EACA1C,UAAAA,QAAQ,CAAC6b,QAAD,EAAW,oBAAX,aAAqC0C,MAAM,GAAG7b,KAA9C,iBAA0D2b,MAAM,GAAG9b,MAAnE,QAAR;;EACA,cAAI2b,QAAQ,IAAIxb,KAAK,GAAG,CAAxB,EAA2B;EACvB1C,YAAAA,QAAQ,CAAC6b,QAAD,EAAW,MAAX,EAAmB,CAAnB,CAAR;EACH,WAFD,MAEO,IAAIqC,QAAQ,GAAG5O,SAAS,CAAClN,WAAV,GAAwBM,KAAK,GAAG,CAA/C,EAAkD;EACrD1C,YAAAA,QAAQ,CAAC6b,QAAD,EAAW,MAAX,YAAsBvM,SAAS,CAAClN,WAAV,GAAwBM,KAA9C,QAAR;EACH,WAFM,MAEA;EACH1C,YAAAA,QAAQ,CAAC6b,QAAD,EAAW,MAAX,YAAsBqC,QAAQ,GAAGxb,KAAK,GAAG,CAAzC,QAAR;EACH;EACJ;;EAEDqP,QAAAA,KAAK,CAACzC,SAAD,EAAY,WAAZ,EAAyB,UAAA1M,KAAK,EAAI;EACnC,cAAI,CAAC6O,OAAL,EAAc;EACVA,YAAAA,OAAO,GAAG,IAAV;EACAsM,YAAAA,OAAO,CAAC5Q,UAAU,CAAC1H,GAAZ,CAAP,CAAwB+L,IAAxB,CAA6B,YAAM;EAC/BwM,cAAAA,MAAM,GAAG,IAAT;EACH,aAFD;EAGH;;EAED,cAAIA,MAAJ,EAAY;EACRhe,YAAAA,QAAQ,CAAC6b,QAAD,EAAW,SAAX,EAAsB,OAAtB,CAAR;EACAoC,YAAAA,cAAc,CAACrb,KAAD,CAAd;EACH;EACJ,SAZI,CAAL;EAcAmP,QAAAA,KAAK,CAACzC,SAAD,EAAY,UAAZ,EAAwB,YAAM;EAC/BtP,UAAAA,QAAQ,CAAC6b,QAAD,EAAW,SAAX,EAAsB,MAAtB,CAAR;EACH,SAFI,CAAL;EAGH;EAjDK;EAAA,GAAV;EAmDH;;;;;ECrDc,SAASnQ,YAAT,CAAoByC,MAApB,EAA4B;EACvC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN9M,MAAAA,OAAO,EAAE4M,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,YAAb,CAFH;EAGN3G,MAAAA,OAAO,EAAE,iBAAAqR,QAAQ,EAAI;EACjB,YACc9J,KADd,GAII9D,GAJJ,CACIH,MADJ,CACciE,KADd;EAAA,YAEIrE,KAFJ,GAIIO,GAJJ,CAEIP,KAFJ;EAAA,YAGIwD,MAHJ,GAIIjD,GAJJ,CAGIiD,MAHJ;EAMA5R,QAAAA,MAAM,CAACuc,QAAD,EAAWnO,KAAK,CAAChC,UAAjB,CAAN;EACAqG,QAAAA,KAAK,CAAC8J,QAAD,EAAW,OAAX,EAAoB,YAAM;EAC3B3K,UAAAA,MAAM,CAACxF,UAAP;EACH,SAFI,CAAL;EAGH;EAdK;EAAA,GAAV;EAgBH;;;;;;ECnBc,SAASsB,OAAT,CAAiBmB,MAAjB,EAAyB;EACpC,SAAO,UAACF,GAAD,EAAS;EACZ,QAAMuQ,aAAa,GAAGvQ,GAAG,CAACE,MAAJ,CAAWnB,OAAjC;EACA,QAAMyR,cAAc,GAAGD,aAAa,CAACtD,IAAd,CAAmB,UAAC/Z,IAAD;EAAA,aAAUA,IAAI,CAAC8L,OAAf;EAAA,KAAnB,KAA8CuR,aAAa,CAAC,CAAD,CAAlF;EACA,+CACOrQ,MADP;EAEI7D,MAAAA,IAAI,EAAEmU,cAAc,GAAGA,cAAc,CAACjiB,IAAlB,GAAyB,EAFjD;EAGI6B,MAAAA,QAAQ,EAAEmgB,aAHd;EAII/T,MAAAA,QAJJ,oBAIatJ,IAJb,EAImB;EACX8M,QAAAA,GAAG,CAACiD,MAAJ,CAAWwN,aAAX,CAAyBvd,IAAI,CAACsE,GAA9B,EAAmCtE,IAAI,CAAC3E,IAAxC;EACH;EANL;EAQH,GAXD;EAYH;;;;;ECXc,SAAS6O,IAAT,CAAc8C,MAAd,EAAsB;EACjC,SAAO,UAACF,GAAD;EAAA,+CACAE,MADA;EAEH3D,MAAAA,OAAO,EAAE,iBAACqR,QAAD,EAAc;EACnB,YAAQ3K,MAAR,GAAmBjD,GAAnB,CAAQiD,MAAR;EAEA,YAAMyN,KAAK,GAAGrf,MAAM,CAACuc,QAAD,2CAApB;EACA,YAAM+C,MAAM,GAAGtf,MAAM,CAACuc,QAAD,2CAArB;EAEA5N,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,MAAP,EAAe,UAACgD,KAAD,EAAW;EACtB,cAAIA,KAAJ,EAAW;EACPH,YAAAA,QAAQ,CAAC6b,QAAD,EAAW,SAAX,EAAsB,OAAtB,CAAR;EACA7b,YAAAA,QAAQ,CAAC2e,KAAD,EAAQ,MAAR,iBAAyBxe,KAAK,CAAC,CAAD,CAAL,GAAW+Q,MAAM,CAACyC,QAAnB,GAA+B,GAAvD,iBAAiEgL,KAAK,CAACvc,WAAvE,SAAR;EACApC,YAAAA,QAAQ,CAAC4e,MAAD,EAAS,MAAT,YAAqBze,KAAK,CAAC,CAAD,CAAL,GAAW+Q,MAAM,CAACyC,QAAnB,GAA+B,GAAnD,OAAR;EACH,WAJD,MAIO;EACH3T,YAAAA,QAAQ,CAAC6b,QAAD,EAAW,SAAX,EAAsB,MAAtB,CAAR;EACH;EACJ,SARD;EASH;EAjBE;EAAA,GAAP;EAmBH;;;;;;MCNoBgD;;;;;EACjB,mBAAY5Q,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EAEA,UAAKzR,IAAL,GAAY,SAAZ;EAEA,QACI2R,MADJ,GAIIF,GAJJ,CACIE,MADJ;EAAA,QAEI+C,MAFJ,GAIIjD,GAJJ,CAEIiD,MAFJ;EAAA,QAGgBlC,OAHhB,GAIIf,GAJJ,CAGIU,QAHJ,CAGgBK,OAHhB;EAMA,UAAK8P,aAAL,GAAqBC,IAAI,CAACC,GAAL,EAArB;EAEA/Q,IAAAA,GAAG,CAAC9Q,EAAJ,CAAO,WAAP,EAAoB,YAAM;EACtB,YAAKuU,IAAL,GAAY,IAAZ;EACAxS,MAAAA,WAAW,CAAC8P,OAAD,EAAU,iBAAV,CAAX;EACAnQ,MAAAA,QAAQ,CAACmQ,OAAD,EAAU,WAAV,CAAR;EACA,YAAK8P,aAAL,GAAqBC,IAAI,CAACC,GAAL,EAArB;EACH,KALD;EAOA/Q,IAAAA,GAAG,CAAC9Q,EAAJ,CAAO,kBAAP,EAA2B,YAAM;EAC7B,UAAI+T,MAAM,CAACyB,OAAP,IAAkB,MAAKjB,IAAvB,IAA+BqN,IAAI,CAACC,GAAL,KAAa,MAAKF,aAAlB,IAAmC,IAAtE,EAA4E;EACxE,cAAKpN,IAAL,GAAY,KAAZ;EACA7S,QAAAA,QAAQ,CAACmQ,OAAD,EAAU,iBAAV,CAAR;EACA9P,QAAAA,WAAW,CAAC8P,OAAD,EAAU,WAAV,CAAX;EACH;EACJ,KAND;EAQAf,IAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpB,YAAKtT,GAAL,CACIsd,QAAQ,CAAC;EACL/f,QAAAA,IAAI,EAAE,UADD;EAEL+N,QAAAA,OAAO,EAAE4D,MAAM,CAACnD,MAFX;EAGL8B,QAAAA,QAAQ,EAAE,KAHL;EAILhI,QAAAA,KAAK,EAAE;EAJF,OAAD,CADZ;;EASA,YAAK7F,GAAL,CACIkO,UAAU,CAAC;EACP3Q,QAAAA,IAAI,EAAE,YADC;EAEP+N,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAChB,UAAP,CAAkB1H,GAAnB,IAA0B0I,MAAM,CAACnD,MAFnC;EAGP8B,QAAAA,QAAQ,EAAE,KAHH;EAIPhI,QAAAA,KAAK,EAAE;EAJA,OAAD,CADd;;EASA,YAAK7F,GAAL,CACIoM,IAAI,CAAC;EACD7O,QAAAA,IAAI,EAAE,MADL;EAED+N,QAAAA,OAAO,EAAE,KAFR;EAGDuC,QAAAA,QAAQ,EAAE,KAHT;EAIDhI,QAAAA,KAAK,EAAE;EAJN,OAAD,CADR;;EASA,YAAK7F,GAAL,CACIgd,YAAY,CAAC;EACTzf,QAAAA,IAAI,EAAE,cADG;EAET+N,QAAAA,OAAO,EAAE,KAFA;EAGTuC,QAAAA,QAAQ,EAAE,MAHD;EAIThI,QAAAA,KAAK,EAAE;EAJE,OAAD,CADhB;;EASA,YAAK7F,GAAL,CACI8L,QAAM,CAAC;EACHvO,QAAAA,IAAI,EAAE,QADH;EAEH+N,QAAAA,OAAO,EAAE,KAFN;EAGHuC,QAAAA,QAAQ,EAAE,MAHP;EAIHhI,QAAAA,KAAK,EAAE;EAJJ,OAAD,CADV;;EASA,YAAK7F,GAAL,CACI0F,IAAI,CAAC;EACDnI,QAAAA,IAAI,EAAE,MADL;EAED+N,QAAAA,OAAO,EAAE4D,MAAM,CAACnD,MAFf;EAGD8B,QAAAA,QAAQ,EAAE,MAHT;EAIDhI,QAAAA,KAAK,EAAE;EAJN,OAAD,CADR;;EASA,YAAK7F,GAAL,CACI+N,OAAO,CAAC;EACJxQ,QAAAA,IAAI,EAAE,SADF;EAEJ+N,QAAAA,OAAO,EAAE4D,MAAM,CAACnB,OAAP,CAAexP,MAAf,KAA0B,CAF/B;EAGJsP,QAAAA,QAAQ,EAAE,OAHN;EAIJhI,QAAAA,KAAK,EAAE;EAJH,OAAD,CADX;;EASA,YAAK7F,GAAL,CACIyM,YAAU,CAAC;EACPlP,QAAAA,IAAI,EAAE,YADC;EAEP+N,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAACzC,UAFV;EAGPoB,QAAAA,QAAQ,EAAE,OAHH;EAIPhI,QAAAA,KAAK,EAAE;EAJA,OAAD,CADd;;EASA,YAAK7F,GAAL,CACIqO,UAAQ,CAAC;EACL9Q,QAAAA,IAAI,EAAE,UADD;EAEL+N,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAACb,QAAP,CAAgB7H,GAFrB;EAGLqH,QAAAA,QAAQ,EAAE,OAHL;EAILhI,QAAAA,KAAK,EAAE;EAJF,OAAD,CADZ;;EASA,YAAK7F,GAAL,CACI0M,SAAO,CAAC;EACJnP,QAAAA,IAAI,EAAE,SADF;EAEJ+N,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAACxC,OAFb;EAGJmB,QAAAA,QAAQ,EAAE,OAHN;EAIJhI,QAAAA,KAAK,EAAE;EAJH,OAAD,CADX;;EASA,YAAK7F,GAAL,CACI4M,KAAG,CAAC;EACArP,QAAAA,IAAI,EAAE,KADN;EAEA+N,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAACtC,GAFjB;EAGAiB,QAAAA,QAAQ,EAAE,OAHV;EAIAhI,QAAAA,KAAK,EAAE;EAJP,OAAD,CADP;;EASA,YAAK7F,GAAL,CACIiN,eAAa,CAAC;EACV1P,QAAAA,IAAI,EAAE,eADI;EAEV+N,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAACjC,aAFP;EAGVY,QAAAA,QAAQ,EAAE,OAHA;EAIVhI,QAAAA,KAAK,EAAE;EAJG,OAAD,CADjB;;EASA,YAAK7F,GAAL,CACIgN,YAAU,CAAC;EACPzP,QAAAA,IAAI,EAAE,YADC;EAEP+N,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAClC,UAFV;EAGPa,QAAAA,QAAQ,EAAE,OAHH;EAIPhI,QAAAA,KAAK,EAAE;EAJA,OAAD,CADd;;EASAqJ,MAAAA,MAAM,CAACtB,QAAP,CAAgBpM,OAAhB,CAAwB,UAACU,IAAD,EAAU;EAC9B,cAAKlC,GAAL,CAASkC,IAAT;EACH,OAFD;EAGH,KAzHD;EA5Ba;EAsJhB;;;;aAED,aAAI0Z,SAAJ,EAAe;EACX,UAAM1M,MAAM,GAAG,OAAO0M,SAAP,KAAqB,UAArB,GAAkCA,SAAS,CAAC,KAAK5M,GAAN,CAA3C,GAAwD4M,SAAvE;EACA,+BAAqD,KAAK5M,GAAL,CAASU,QAA9D;EAAA,UAAQW,SAAR,sBAAQA,SAAR;EAAA,UAAmBE,aAAnB,sBAAmBA,aAAnB;EAAA,UAAkCC,cAAlC,sBAAkCA,cAAlC;;EAEA,cAAQtB,MAAM,CAACrB,QAAf;EACI,aAAK,KAAL;EACI,eAAKgO,OAAL,GAAexL,SAAf;EACA;;EACJ,aAAK,MAAL;EACI,eAAKwL,OAAL,GAAetL,aAAf;EACA;;EACJ,aAAK,OAAL;EACI,eAAKsL,OAAL,GAAerL,cAAf;EACA;;EACJ;EACI/L,UAAAA,WAAW,CAAC,KAAD,+DAAX;EACA;EAZR;;EAeA,uEAAUyK,MAAV;EACH;;;;IA7KgCuM;;;;;ECdtB,SAASlP,cAAT,CAAsB2C,MAAtB,EAA8B;EACzC,SAAO,UAACF,GAAD,EAAS;EACZ,QAAQ+D,IAAR,GAAyB/D,GAAzB,CAAQ+D,IAAR;EAAA,QAAcd,MAAd,GAAyBjD,GAAzB,CAAciD,MAAd;EACA,+CACO/C,MADP;EAEI7D,MAAAA,IAAI,YAAK0H,IAAI,CAACb,GAAL,CAAS,YAAT,CAAL,wLAG4Ca,IAAI,CAACb,GAAL,CAAS,QAAT,CAH5C,wLAFR;EAUIhL,MAAAA,KAAK,EAAE,eAACyG,WAAD,EAAchK,KAAd,EAAwB;EAC3B,YAAQ4R,IAAR,GAAiB5R,KAAK,CAAC9D,MAAN,CAAayV,OAA9B,CAAQC,IAAR;;EACA,YAAIA,IAAJ,EAAU;EACNtD,UAAAA,MAAM,CAAC1F,YAAP,GAAsBkJ,MAAM,CAACF,IAAD,CAA5B;EACA5H,UAAAA,WAAW,CAAC8E,IAAZ,GAAmB,KAAnB;EACH;EACJ,OAhBL;EAiBIlH,MAAAA,OAAO,EAAE,iBAACyU,KAAD,EAAW;EAChBhR,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,cAAP,EAAuB,UAACqX,IAAD,EAAU;EAC7B,cAAM0K,QAAQ,GAAGzgB,QAAQ,CAAC,MAAD,EAASwgB,KAAT,CAAR,CAAwB/D,IAAxB,CAA6B,UAAC/Z,IAAD;EAAA,mBAAUuT,MAAM,CAACvT,IAAI,CAACoT,OAAL,CAAaC,IAAd,CAAN,KAA8BA,IAAxC;EAAA,WAA7B,CAAjB;;EACA,cAAI0K,QAAJ,EAAc;EACV9d,YAAAA,YAAY,CAAC8d,QAAD,EAAW,aAAX,CAAZ;EACH;EACJ,SALD;EAMH;EAxBL;EA0BH,GA5BD;EA6BH;;;;;EC9Bc,SAASzT,aAAT,CAAqB0C,MAArB,EAA6B;EACxC,SAAO,UAACF,GAAD,EAAS;EACZ,QAAQ+D,IAAR,GAAyB/D,GAAzB,CAAQ+D,IAAR;EAAA,QAAcd,MAAd,GAAyBjD,GAAzB,CAAciD,MAAd;EACA,+CACO/C,MADP;EAEI7D,MAAAA,IAAI,YAAK0H,IAAI,CAACb,GAAL,CAAS,cAAT,CAAL,mFACiDa,IAAI,CAACb,GAAL,CAAS,SAAT,CADjD,sIAFR;EAOIhL,MAAAA,KAAK,EAAE,eAACyG,WAAD,EAAchK,KAAd,EAAwB;EAC3B,YAAQgS,KAAR,GAAkBhS,KAAK,CAAC9D,MAAN,CAAayV,OAA/B,CAAQK,KAAR;;EACA,YAAIA,KAAJ,EAAW;EACP1D,UAAAA,MAAM,CAACzF,WAAP,GAAqBmJ,KAArB;EACAhI,UAAAA,WAAW,CAAC8E,IAAZ,GAAmB,KAAnB;EACH;EACJ,OAbL;EAcIlH,MAAAA,OAAO,EAAE,iBAACyU,KAAD,EAAW;EAChBhR,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,aAAP,EAAsB,UAACyX,KAAD,EAAW;EAC7B,cAAMsK,QAAQ,GAAGzgB,QAAQ,CAAC,MAAD,EAASwgB,KAAT,CAAR,CAAwB/D,IAAxB,CAA6B,UAAC/Z,IAAD;EAAA,mBAAUA,IAAI,CAACoT,OAAL,CAAaK,KAAb,KAAuBA,KAAjC;EAAA,WAA7B,CAAjB;;EACA,cAAIsK,QAAJ,EAAc;EACV9d,YAAAA,YAAY,CAAC8d,QAAD,EAAW,aAAX,CAAZ;EACH;EACJ,SALD;EAMH;EArBL;EAuBH,GAzBD;EA0BH;;;;;;EC7Bc,SAASC,IAAT,CAAchR,MAAd,EAAsB;EACjC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN7D,MAAAA,IAAI,EAAE2D,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,YAAb,CAFA;EAGNhL,MAAAA,KAAK,EAAE,eAAAyG,WAAW,EAAI;EAClBqB,QAAAA,GAAG,CAACkR,IAAJ,CAASzN,IAAT,GAAgB,IAAhB;EACA9E,QAAAA,WAAW,CAAC8E,IAAZ,GAAmB,KAAnB;EACH;EANK;EAAA,GAAV;EAQH;;;;;;ECTc,SAAS0N,OAAT,CAAiBjR,MAAjB,EAAyB;EACpC,6CACOA,MADP;EAEI7D,IAAAA,IAAI,EAAE;EAFV;EAIH;;;;;;ECLc,SAASyB,KAAT,CAAeoC,MAAf,EAAuB;EAClC,SAAO,UAAAF,GAAG,EAAI;EACV,QAAQ+D,IAAR,GAAyB/D,GAAzB,CAAQ+D,IAAR;EAAA,QAAcd,MAAd,GAAyBjD,GAAzB,CAAciD,MAAd;EACA,+CACO/C,MADP;EAEI7D,MAAAA,IAAI,EAAE0H,IAAI,CAACb,GAAL,CAAS,WAAT,CAFV;EAGIhL,MAAAA,KAAK,EAAE,eAAAyG,WAAW,EAAI;EAClBsE,QAAAA,MAAM,CAACnF,KAAP,GAAe,CAACmF,MAAM,CAACnF,KAAvB;EACAa,QAAAA,WAAW,CAAC8E,IAAZ,GAAmB,KAAnB;EACH,OANL;EAOIlH,MAAAA,OAAO,EAAE,iBAAAyU,KAAK,EAAI;EACdhR,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,OAAP,EAAgB,UAAAgD,KAAK,EAAI;EACrB8e,UAAAA,KAAK,CAACxD,SAAN,GAAkBzJ,IAAI,CAACb,GAAL,CAAShR,KAAK,GAAG,UAAH,GAAgB,WAA9B,CAAlB;EACH,SAFD;EAGH;EAXL;EAaH,GAfD;EAgBH;;;;;;ECjBc,SAASkf,KAAT,CAAelR,MAAf,EAAuB;EAClC,SAAO,UAAAF,GAAG;EAAA,+CACHE,MADG;EAEN7D,MAAAA,IAAI,EAAE2D,GAAG,CAAC+D,IAAJ,CAASb,GAAT,CAAa,OAAb,CAFA;EAGNhL,MAAAA,KAAK,EAAE,eAAAyG,WAAW,EAAI;EAClBA,QAAAA,WAAW,CAAC8E,IAAZ,GAAmB,KAAnB;EACH;EALK;EAAA,GAAV;EAOH;;;;;;MCCoB4N;;;;;EACjB,uBAAYrR,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EAEA,UAAKzR,IAAL,GAAY,aAAZ;EAEA,QACI2R,MADJ,GAIIF,GAJJ,CACIE,MADJ;EAAA,wBAIIF,GAJJ,CAEIU,QAFJ;EAAA,QAEgBK,OAFhB,iBAEgBA,OAFhB;EAAA,QAEyByB,YAFzB,iBAEyBA,YAFzB;EAAA,QAGcsB,KAHd,GAII9D,GAJJ,CAGIH,MAHJ,CAGciE,KAHd;EAMA,UAAK+I,OAAL,GAAerK,YAAf;EAEAxC,IAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpB,YAAKtT,GAAL,CACIuM,cAAY,CAAC;EACTjB,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAC3C,YADR;EAEThP,QAAAA,IAAI,EAAE,cAFG;EAGTsI,QAAAA,KAAK,EAAE;EAHE,OAAD,CADhB;;EAQA,YAAK7F,GAAL,CACIwM,aAAW,CAAC;EACRlB,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAC1C,WADT;EAERjP,QAAAA,IAAI,EAAE,aAFE;EAGRsI,QAAAA,KAAK,EAAE;EAHC,OAAD,CADf;;EAQA,YAAK7F,GAAL,CACIkgB,IAAI,CAAC;EACD5U,QAAAA,OAAO,EAAE,KADR;EAED/N,QAAAA,IAAI,EAAE,MAFL;EAGDsI,QAAAA,KAAK,EAAE;EAHN,OAAD,CADR;;EAQA,YAAK7F,GAAL,CACImgB,OAAO,CAAC;EACJ7U,QAAAA,OAAO,EAAE,KADL;EAEJ/N,QAAAA,IAAI,EAAE,SAFF;EAGJsI,QAAAA,KAAK,EAAE;EAHH,OAAD,CADX;;EAQA,YAAK7F,GAAL,CACI8M,KAAK,CAAC;EACFxB,QAAAA,OAAO,EAAE,CAAC4D,MAAM,CAACpC,KADf;EAEFvP,QAAAA,IAAI,EAAE,OAFJ;EAGFsI,QAAAA,KAAK,EAAE;EAHL,OAAD,CADT;;EAQA,YAAK7F,GAAL,CACIogB,KAAK,CAAC;EACF9U,QAAAA,OAAO,EAAE,KADP;EAEF/N,QAAAA,IAAI,EAAE,OAFJ;EAGFsI,QAAAA,KAAK,EAAE;EAHL,OAAD,CADT;;EAQAqJ,MAAAA,MAAM,CAACvB,WAAP,CAAmBnM,OAAnB,CAA2B,UAACU,IAAD,EAAU;EACjC,cAAKlC,GAAL,CAASkC,IAAT;EACH,OAFD;EAIA4Q,MAAAA,KAAK,CAAC/C,OAAD,EAAU,aAAV,EAAyB,UAACpM,KAAD,EAAW;EACrCA,QAAAA,KAAK,CAACwY,cAAN;EACA,cAAK1J,IAAL,GAAY,IAAZ;EAEA,YAAM6N,MAAM,GAAG3c,KAAK,CAAC4c,OAArB;EACA,YAAMC,MAAM,GAAG7c,KAAK,CAAC8c,OAArB;;EACA,oCAAmE1Q,OAAO,CAACnN,qBAAR,EAAnE;EAAA,YAAgB8d,OAAhB,yBAAQpd,MAAR;EAAA,YAAgCqd,MAAhC,yBAAyBld,KAAzB;EAAA,YAA8Cmd,KAA9C,yBAAwCpd,IAAxC;EAAA,YAA0Dqd,IAA1D,yBAAqDxd,GAArD;;EACA,oCAA2CmO,YAAY,CAAC5O,qBAAb,EAA3C;EAAA,YAAgBke,OAAhB,yBAAQxd,MAAR;EAAA,YAAgCyd,MAAhC,yBAAyBtd,KAAzB;;EACA,YAAIud,QAAQ,GAAGV,MAAM,GAAGM,KAAxB;EACA,YAAIK,OAAO,GAAGT,MAAM,GAAGK,IAAvB;;EAEA,YAAIP,MAAM,GAAGS,MAAT,GAAkBH,KAAK,GAAGD,MAA9B,EAAsC;EAClCK,UAAAA,QAAQ,GAAGL,MAAM,GAAGI,MAApB;EACH;;EAED,YAAIP,MAAM,GAAGM,OAAT,GAAmBD,IAAI,GAAGH,OAA9B,EAAuC;EACnCO,UAAAA,OAAO,GAAGP,OAAO,GAAGI,OAApB;EACH;;EAED1f,QAAAA,SAAS,CAACoQ,YAAD,EAAe;EACpBnO,UAAAA,GAAG,YAAK4d,OAAL,OADiB;EAEpBzd,UAAAA,IAAI,YAAKwd,QAAL;EAFgB,SAAf,CAAT;EAIH,OAvBI,CAAL;EAyBAlO,MAAAA,KAAK,CAAC/C,OAAD,EAAU,OAAV,EAAmB,UAACpM,KAAD,EAAW;EAC/B,YAAI,CAACD,gBAAgB,CAACC,KAAD,EAAQ6N,YAAR,CAArB,EAA4C;EACxC,gBAAKiB,IAAL,GAAY,KAAZ;EACH;EACJ,OAJI,CAAL;EAMAzD,MAAAA,GAAG,CAAC9Q,EAAJ,CAAO,MAAP,EAAe,YAAM;EACjB,cAAKuU,IAAL,GAAY,KAAZ;EACH,OAFD;EAGH,KAvFD;EAba;EAqGhB;;;IAtGoCgJ;;;;;;MCNpByF;;;;;EACjB,gBAAYlS,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EACA,UAAKA,GAAL,GAAWA,GAAX;EACA,UAAKzR,IAAL,GAAY,MAAZ;;EACA,QAAI,MAAKyR,GAAL,CAASU,QAAT,CAAkBwB,KAAtB,EAA6B;EACzB,YAAKY,IAAL;EACH;;EANY;EAOhB;;;;aAED,gBAAO;EAAA;;EACH,sBAGI,KAAK9C,GAHT;EAAA,yCACIU,QADJ;EAAA,UACgByB,UADhB,sBACgBA,UADhB;EAAA,UAC4BC,UAD5B,sBAC4BA,UAD5B;EAAA,UACwCpB,MADxC,sBACwCA,MADxC;EAAA,UAEc8C,KAFd,aAEIjE,MAFJ,CAEciE,KAFd;EAKAA,MAAAA,KAAK,CAAC1B,UAAD,EAAa,OAAb,EAAsB,YAAM;EAC7B,QAAA,MAAI,CAACqB,IAAL,GAAY,KAAZ;EACH,OAFI,CAAL;EAIA,UAAI0O,KAAK,GAAG,IAAZ;EACA,UAAMC,KAAK,GAAG5hB,QAAQ,CAAC,cAAD,EAAiB2R,UAAjB,CAAtB;EAEA,WAAKnC,GAAL,CAAS9Q,EAAT,CAAY,SAAZ,EAAuB,YAAM;EACzBqL,QAAAA,YAAY,CAAC4X,KAAD,CAAZ;EACH,OAFD;;EAIA,eAAS/U,IAAT,GAAgB;EACZgV,QAAAA,KAAK,CAAC5f,OAAN,CAAc,UAACU,IAAD,EAAU;EACpB,cAAMhB,KAAK,GAAG8O,MAAM,CAAC9N,IAAI,CAACoT,OAAL,CAAa+L,KAAd,CAApB;EACAnf,UAAAA,IAAI,CAACsa,SAAL,GAAiB,OAAOtb,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAAC6T,OAAN,CAAc,CAAd,CAA5B,GAA+C7T,KAAhE;EACH,SAHD;EAIAigB,QAAAA,KAAK,GAAGlY,UAAU,CAAC,YAAM;EACrBmD,UAAAA,IAAI;EACP,SAFiB,EAEf,IAFe,CAAlB;EAGH;;EAED,WAAK4C,GAAL,CAAS9Q,EAAT,CAAY,MAAZ,EAAoB,UAACgD,KAAD,EAAW;EAC3BqI,QAAAA,YAAY,CAAC4X,KAAD,CAAZ;;EACA,YAAIjgB,KAAJ,EAAW;EACPkL,UAAAA,IAAI;EACP;EACJ,OALD;EAMH;;;;IA3C6BqP;;;;;;MCWb6F;;;;;EACjB,oBAAYtS,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EAEA,UAAKzR,IAAL,GAAY,UAAZ;EAEA,QACc8Q,QADd,GAGIW,GAHJ,CACIE,MADJ,CACcb,QADd;EAAA,QAEgB6B,SAFhB,GAGIlB,GAHJ,CAEIU,QAFJ,CAEgBQ,SAFhB;EAKA9O,IAAAA,SAAS,CAAC8O,SAAD,EAAY7B,QAAQ,CAAClN,KAArB,CAAT;;EAEA,QAAIkN,QAAQ,CAAC7H,GAAb,EAAkB;EACd,YAAKsL,IAAL,CAAUzD,QAAQ,CAAC7H,GAAnB;EACH;;EAED,QAAI6H,QAAQ,CAACE,SAAb,EAAwB;EACpB3O,MAAAA,QAAQ,CAACsQ,SAAD,EAAY,eAAZ,CAAR;EACH;;EAlBY;EAmBhB;;;;WAED,eAAU;EACN,aAAO,KAAKlB,GAAL,CAASU,QAAT,CAAkB6R,MAAlB,CAAyBpP,GAAhC;EACH;;;WAED,eAAgB;EACZ,aAAO,KAAKnD,GAAL,CAASU,QAAT,CAAkBM,MAAlB,CAAyBwR,UAAzB,CAAoC,CAApC,CAAP;EACH;;;WAED,eAAgB;EACZ,aAAO,KAAKC,SAAL,CAAeC,UAAf,CAA0B,CAA1B,CAAP;EACH;;;WAED,eAAgB;EACZ,UAAQxR,SAAR,GAAsB,KAAKlB,GAAL,CAASU,QAA/B,CAAQQ,SAAR;EACA,aAAO/P,QAAQ,CAAC+P,SAAD,EAAY,eAAZ,CAAf;EACH;WAED,aAAcyR,GAAd,EAAmB;EACf,UAAQzR,SAAR,GAAsB,KAAKlB,GAAL,CAASU,QAA/B,CAAQQ,SAAR;;EACA,UAAIyR,GAAJ,EAAS;EACL/hB,QAAAA,QAAQ,CAACsQ,SAAD,EAAY,eAAZ,CAAR;EACH,OAFD,MAEO;EACHjQ,QAAAA,WAAW,CAACiQ,SAAD,EAAY,eAAZ,CAAX;EACH;EACJ;;;aAED,eAAMjP,GAAN,EAAWC,KAAX,EAAkB;EACd,UAAQgP,SAAR,GAAsB,KAAKlB,GAAL,CAASU,QAA/B,CAAQQ,SAAR;;EACA,UAAI,QAAOjP,GAAP,MAAe,QAAnB,EAA6B;EACzB,eAAOG,SAAS,CAAC8O,SAAD,EAAYjP,GAAZ,CAAhB;EACH;;EACD,aAAOF,QAAQ,CAACmP,SAAD,EAAYjP,GAAZ,EAAiBC,KAAjB,CAAf;EACH;;;aAED,kBAAS;EACL,UAAQgP,SAAR,GAAsB,KAAKlB,GAAL,CAASU,QAA/B,CAAQQ,SAAR;EACAA,MAAAA,SAAS,CAACL,SAAV,GAAsB,EAAtB;;EACA,UAAI,KAAK+R,SAAT,EAAoB;EAChB1R,QAAAA,SAAS,CAACL,SAAV,GAAsB,KAAK+R,SAAL,CAAetb,IAAf,CACjBX,KADiB,CACX,OADW,EAEjBC,GAFiB,CAEb,UAAC1D,IAAD;EAAA,8BAAgBwI,MAAM,CAACxI,IAAD,CAAtB;EAAA,SAFa,EAGjB6D,IAHiB,CAGZ,EAHY,CAAtB;EAIA,aAAKiJ,GAAL,CAAS0D,IAAT,CAAc,gBAAd,EAAgC,KAAKkP,SAAL,CAAetb,IAA/C;EACH;EACJ;;;aAED,iBAAOE,GAAP,EAAsB;EAAA;;EAAA,UAAVqb,GAAU,uEAAJ,EAAI;EAClB,sBAAyB,KAAK7S,GAA9B;EAAA,UAAQ+D,IAAR,aAAQA,IAAR;EAAA,UAAcC,MAAd,aAAcA,MAAd;EACA,aAAO,KAAKlB,IAAL,CAAUtL,GAAV,EAAeqb,GAAf,EAAoBtP,IAApB,CAAyB,UAACuP,MAAD,EAAY;EACxC,YAAID,GAAG,CAACtkB,IAAR,EAAc;EACVyV,UAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,iBAAT,CAAjB,eAAiD2P,GAAG,CAACtkB,IAArD;EACH;;EACD,QAAA,MAAI,CAACyR,GAAL,CAAS0D,IAAT,CAAc,gBAAd,EAAgCoP,MAAhC;;EACA,eAAOA,MAAP;EACH,OANM,CAAP;EAOH;;;aAED,cAAKtb,GAAL,EAAoB;EAAA;;EAAA,UAAVqb,GAAU,uEAAJ,EAAI;EAChB,uBAKI,KAAK7S,GALT;EAAA,UACIgE,MADJ,cACIA,MADJ;EAAA,UAEcF,KAFd,cAEIjE,MAFJ,CAEciE,KAFd;EAAA,UAGczE,QAHd,cAGIa,MAHJ,CAGcb,QAHd;EAAA,2CAIIqB,QAJJ;EAAA,UAIgBQ,SAJhB,uBAIgBA,SAJhB;EAAA,UAI2BF,MAJ3B,uBAI2BA,MAJ3B;EAAA,UAImCuR,MAJnC,uBAImCA,MAJnC;;EAOA,UAAI,CAACA,MAAL,EAAa;EACT,YAAMA,OAAM,GAAGjiB,QAAQ,CAACwH,aAAT,CAAuB,OAAvB,CAAf;;EACAya,QAAAA,OAAM,CAACvT,OAAP,GAAiB,IAAjB;EACAuT,QAAAA,OAAM,CAACQ,IAAP,GAAc,UAAd;EACA/R,QAAAA,MAAM,CAACxP,WAAP,CAAmB+gB,OAAnB;EACA,aAAKvS,GAAL,CAASU,QAAT,CAAkB6R,MAAlB,GAA2BA,OAA3B;EACAzO,QAAAA,KAAK,CAAC,KAAK2O,SAAN,EAAiB,WAAjB,EAA8B,KAAKO,MAAL,CAAYrG,IAAZ,CAAiB,IAAjB,CAA9B,CAAL;EACH;;EAED,aAAOsG,KAAK,CAACzb,GAAD,CAAL,CACF+L,IADE,CACG,UAAC2P,QAAD;EAAA,eAAcA,QAAQ,CAACC,WAAT,EAAd;EAAA,OADH,EAEF5P,IAFE,CAEG,UAAC6P,MAAD,EAAY;EACd,YAAMC,OAAO,GAAG,IAAIC,WAAJ,CAAgBT,GAAG,CAACvT,QAAJ,IAAgBD,QAAQ,CAACC,QAAzC,CAAhB;EACA,YAAMhI,IAAI,GAAG+b,OAAO,CAACE,MAAR,CAAeH,MAAf,CAAb;;EAEA,QAAA,MAAI,CAACpT,GAAL,CAAS0D,IAAT,CAAc,cAAd,EAA8BlM,GAA9B;;EACA,gBAAQqb,GAAG,CAACW,GAAJ,IAAWjc,MAAM,CAACC,GAAD,CAAzB;EACI,eAAK,KAAL;EACI,mBAAOzB,SAAS,CAACJ,QAAQ,CAAC2B,IAAD,CAAT,CAAhB;;EACJ,eAAK,KAAL;EACI,mBAAOvB,SAAS,CAACM,QAAQ,CAACiB,IAAD,CAAT,CAAhB;;EACJ,eAAK,KAAL;EACI,mBAAOvB,SAAS,CAACuB,IAAD,CAAhB;;EACJ;EACI,mBAAOE,GAAP;EARR;EAUH,OAjBE,EAkBF+L,IAlBE,CAkBG,UAACuP,MAAD,EAAY;EACd5R,QAAAA,SAAS,CAACL,SAAV,GAAsB,EAAtB;EACA,YAAI,MAAI,CAACrJ,GAAL,KAAasb,MAAjB,EAAyB,OAAOA,MAAP;EACzB7c,QAAAA,GAAG,CAACmQ,eAAJ,CAAoB,MAAI,CAAC5O,GAAzB;EACA,QAAA,MAAI,CAACwI,GAAL,CAASU,QAAT,CAAkB6R,MAAlB,CAAyBpP,GAAzB,GAA+B2P,MAA/B;EACA,eAAOA,MAAP;EACH,OAxBE,EAyBF5N,KAzBE,CAyBI,UAACC,GAAD,EAAS;EACZnB,QAAAA,MAAM,CAACP,IAAP,GAAc0B,GAAd;EACA,cAAMA,GAAN;EACH,OA5BE,CAAP;EA6BH;;;;IA7HiCsH;;ECZvB,SAASgH,SAAT,CAAmBzT,GAAnB,EAAwBH,MAAxB,EAAgC;EAC3C,MACgBkB,OADhB,GAEIf,GAFJ,CACIU,QADJ,CACgBK,OADhB;EAIAlB,EAAAA,MAAM,CAACiE,KAAP,CAAaxT,QAAb,EAAuB,CAAC,OAAD,EAAU,aAAV,CAAvB,EAAiD,UAACqE,KAAD,EAAW;EACxD,QAAID,gBAAgB,CAACC,KAAD,EAAQoM,OAAR,CAApB,EAAsC;EAClCf,MAAAA,GAAG,CAAC0T,OAAJ,GAAc,IAAd;EACA1T,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,OAAT;EACH,KAHD,MAGO;EACH1D,MAAAA,GAAG,CAAC0T,OAAJ,GAAc,KAAd;EACA1T,MAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT;EACH;EACJ,GARD;EASH;;ECdc,SAASiQ,SAAT,CAAmB3T,GAAnB,EAAwBH,MAAxB,EAAgC;EAC3C,MAAQkB,OAAR,GAAoBf,GAAG,CAACU,QAAxB,CAAQK,OAAR;EAEAlB,EAAAA,MAAM,CAACyN,KAAP,CACIvM,OADJ,EAEI,YAAM;EACFnQ,IAAAA,QAAQ,CAACmQ,OAAD,EAAU,WAAV,CAAR;EACAf,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,OAAT,EAAkB,IAAlB;EACH,GALL,EAMI,YAAM;EACFzS,IAAAA,WAAW,CAAC8P,OAAD,EAAU,WAAV,CAAX;EACAf,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,OAAT;EACH,GATL;EAWH;;EChBc,SAASkQ,iBAAT,CAA2B5T,GAA3B,EAAgCH,MAAhC,EAAwC;EACnD,MAAQkB,OAAR,GAAoBf,GAAG,CAACU,QAAxB,CAAQK,OAAR;EAEAlB,EAAAA,MAAM,CAACiE,KAAP,CAAa/C,OAAb,EAAsB,WAAtB,EAAmC,UAACpM,KAAD,EAAW;EAC1CqL,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,WAAT,EAAsB/O,KAAtB;EACH,GAFD;EAGH;;ECJc,SAASkf,UAAT,CAAoB7T,GAApB,EAAyBH,MAAzB,EAAiC;EAC5C,MAAQK,MAAR,GAA2BF,GAA3B,CAAQE,MAAR;EAAA,MAAgB+C,MAAhB,GAA2BjD,GAA3B,CAAgBiD,MAAhB;EAEA,MAAM6Q,QAAQ,GAAGrZ,QAAQ,CAAC,YAAM;EAC5B,QAAIwI,MAAM,CAAC8Q,UAAX,EAAuB;EACnB9Q,MAAAA,MAAM,CAAC/F,QAAP,GAAkBgD,MAAM,CAAChD,QAAzB;EACH;;EACD+F,IAAAA,MAAM,CAAC+E,gBAAP,GAA0B,IAA1B;EACAhI,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT;EACH,GANwB,EAMtB,GANsB,CAAzB;EAQA7D,EAAAA,MAAM,CAACiE,KAAP,CAAajU,MAAb,EAAqB,CAAC,mBAAD,EAAsB,QAAtB,CAArB,EAAsD,YAAM;EACxDikB,IAAAA,QAAQ;EACX,GAFD;EAGH;;ECdc,SAASE,WAAT,CAAqBhU,GAArB,EAA0BH,MAA1B,EAAkC;EAC7C,MAAIG,GAAG,CAACjQ,QAAJ,IAAgB,CAACiQ,GAAG,CAACE,MAAJ,CAAWnD,MAAhC,EAAwC;EACpC,QACIkG,MADJ,GAIIjD,GAJJ,CACIiD,MADJ;EAAA,QAEIe,MAFJ,GAIIhE,GAJJ,CAEIgE,MAFJ;EAAA,QAGgBhD,MAHhB,GAIIhB,GAJJ,CAGIU,QAHJ,CAGgBM,MAHhB;EAMA,QAAIiK,SAAS,GAAG,KAAhB;EACA,QAAIgJ,MAAM,GAAG,CAAb;EACA,QAAIxO,WAAW,GAAG,CAAlB;EAEA5F,IAAAA,MAAM,CAACiE,KAAP,CAAa9C,MAAb,EAAqB,YAArB,EAAmC,UAACrM,KAAD,EAAW;EAC1C,UAAIA,KAAK,CAACuf,OAAN,CAAc3kB,MAAd,KAAyB,CAA7B,EAAgC;EAC5B0b,QAAAA,SAAS,GAAG,IAAZ;EACAgJ,QAAAA,MAAM,GAAGtf,KAAK,CAACuf,OAAN,CAAc,CAAd,EAAiB3C,OAA1B;EACH;EACJ,KALD;EAOA1R,IAAAA,MAAM,CAACiE,KAAP,CAAaxT,QAAb,EAAuB,WAAvB,EAAoC,UAACqE,KAAD,EAAW;EAC3C,UAAIA,KAAK,CAACuf,OAAN,CAAc3kB,MAAd,KAAyB,CAAzB,IAA8B0b,SAAlC,EAA6C;EACzC,YAAMkJ,SAAS,GAAGxf,KAAK,CAACuf,OAAN,CAAc,CAAd,EAAiB3C,OAAjB,GAA2B0C,MAA7C;EACA,YAAMG,UAAU,GAAGvZ,KAAK,CAACsZ,SAAS,GAAGnT,MAAM,CAAC7M,WAApB,EAAiC,CAAC,CAAlC,EAAqC,CAArC,CAAxB;EACAsR,QAAAA,WAAW,GAAG5K,KAAK,CAACoI,MAAM,CAACwC,WAAP,GAAqB,KAAK2O,UAA3B,EAAuC,CAAvC,EAA0CnR,MAAM,CAACyC,QAAjD,CAAnB;EACA1B,QAAAA,MAAM,CAACP,IAAP,aAAiBrI,YAAY,CAACqK,WAAD,CAA7B,gBAAgDrK,YAAY,CAAC6H,MAAM,CAACyC,QAAR,CAA5D;EACH;EACJ,KAPD;EASA7F,IAAAA,MAAM,CAACiE,KAAP,CAAaxT,QAAb,EAAuB,UAAvB,EAAmC,YAAM;EACrC,UAAI2a,SAAS,IAAIxF,WAAjB,EAA8B;EAC1BxC,QAAAA,MAAM,CAACuB,IAAP,GAAciB,WAAd;EACH;;EACDwF,MAAAA,SAAS,GAAG,KAAZ;EACAgJ,MAAAA,MAAM,GAAG,CAAT;EACAxO,MAAAA,WAAW,GAAG,CAAd;EACH,KAPD;EAQH;EACJ;;ECrCc,SAAS4O,QAAT,CAAkBrU,GAAlB,EAAuBH,MAAvB,EAA+B;EAC1C,MACIoD,MADJ,GAIIjD,GAJJ,CACIiD,MADJ;EAAA,MAEI/C,MAFJ,GAIIF,GAJJ,CAEIE,MAFJ;EAAA,MAGgBI,UAHhB,GAIIN,GAJJ,CAGIU,QAHJ,CAGgBJ,UAHhB;EAMA,MAAMgU,QAAQ,GAAG7Z,QAAQ,CAAC,YAAM;EAC5BuF,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,MAAT,EAAiBlQ,YAAY,CAAC8M,UAAD,EAAa,EAAb,CAA7B;EACH,GAFwB,EAEtB,GAFsB,CAAzB;EAIAT,EAAAA,MAAM,CAACiE,KAAP,CAAajU,MAAb,EAAqB,QAArB,EAA+B,YAAM;EACjCykB,IAAAA,QAAQ;EACX,GAFD;EAIAtU,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,MAAP,EAAe,UAACiR,KAAD,EAAW;EACtB,QAAID,MAAM,CAAC/C,QAAX,EAAqB;EACjB8F,MAAAA,MAAM,CAACuI,IAAP,GAAc,CAACrL,KAAf;EACH;EACJ,GAJD;EAKH;;MCdoBoU;EACjB,kBAAYvU,GAAZ,EAAiB;EAAA;;EAAA;;EACb,SAAKwU,aAAL,GAAqB,EAArB;EACA,SAAK1Q,KAAL,GAAa,KAAKA,KAAL,CAAW6I,IAAX,CAAgB,IAAhB,CAAb;EACA,SAAKW,KAAL,GAAa,KAAKA,KAAL,CAAWX,IAAX,CAAgB,IAAhB,CAAb;EACA,SAAKmD,OAAL,GAAe,KAAKA,OAAL,CAAanD,IAAb,CAAkB,IAAlB,CAAf;;EAEA,QAAI3M,GAAG,CAACvB,SAAJ,CAAc0B,KAAlB,EAAyB;EACrBH,MAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpBmP,QAAAA,SAAS,CAACzT,GAAD,EAAM,KAAN,CAAT;EACA2T,QAAAA,SAAS,CAAC3T,GAAD,EAAM,KAAN,CAAT;EACAyU,QAAAA,iBAAa,CAACzU,GAAD,EAAM,KAAN,CAAb;EACA6T,QAAAA,UAAU,CAAC7T,GAAD,EAAM,KAAN,CAAV;EACAgU,QAAAA,WAAW,CAAChU,GAAD,EAAM,KAAN,CAAX;EACAqU,QAAAA,QAAQ,CAACrU,GAAD,EAAM,KAAN,CAAR;EACH,OAPD;EAQH;EACJ;;;;aAED,eAAMnP,MAAN,EAActC,IAAd,EAAoBiB,QAApB,EAA2C;EAAA;;EAAA,UAAb0Q,MAAa,uEAAJ,EAAI;;EACvC,UAAIzP,KAAK,CAAC+I,OAAN,CAAcjL,IAAd,CAAJ,EAAyB;EACrB,eAAOA,IAAI,CAACqI,GAAL,CAAS,UAAC1D,IAAD;EAAA,iBAAU,MAAI,CAAC4Q,KAAL,CAAWjT,MAAX,EAAmBqC,IAAnB,EAAyB1D,QAAzB,EAAmC0Q,MAAnC,CAAV;EAAA,SAAT,CAAP;EACH;;EAEDrP,MAAAA,MAAM,CAAC6jB,gBAAP,CAAwBnmB,IAAxB,EAA8BiB,QAA9B,EAAwC0Q,MAAxC;;EACA,UAAMyE,OAAO,GAAG,SAAVA,OAAU;EAAA,eAAM9T,MAAM,CAAC8jB,mBAAP,CAA2BpmB,IAA3B,EAAiCiB,QAAjC,EAA2C0Q,MAA3C,CAAN;EAAA,OAAhB;;EACA,WAAKsU,aAAL,CAAmB7lB,IAAnB,CAAwBgW,OAAxB;EACA,aAAOA,OAAP;EACH;;;aAED,eAAM9T,MAAN,EAAc+jB,UAAd,EAA0BC,UAA1B,EAAsC;EAClC,UAAID,UAAJ,EAAgB;EACZ,aAAK9Q,KAAL,CAAWjT,MAAX,EAAmB,YAAnB,EAAiC+jB,UAAjC;EACH;;EACD,UAAIC,UAAJ,EAAgB;EACZ,aAAK/Q,KAAL,CAAWjT,MAAX,EAAmB,YAAnB,EAAiCgkB,UAAjC;EACH;EACJ;;;aAED,iBAAQC,GAAR,EAAa;EAAA;;EACT,aAAO,IAAI/a,OAAJ,CAAY,UAACC,OAAD,EAAUoN,MAAV,EAAqB;EACpC,YAAI2N,KAAJ;;EAEA,YAAID,GAAG,YAAYE,gBAAnB,EAAqC;EACjCD,UAAAA,KAAK,GAAGD,GAAR;EACH,SAFD,MAEO,IAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;EAChCC,UAAAA,KAAK,GAAG,IAAIE,KAAJ,EAAR;EACAF,UAAAA,KAAK,CAAC5R,GAAN,GAAY2R,GAAZ;EACH,SAHM,MAGA;EACH,iBAAO1N,MAAM,CAAC,IAAIjS,cAAJ,CAAmB,qBAAnB,CAAD,CAAb;EACH;;EAED,YAAI4f,KAAK,CAACG,QAAV,EAAoB;EAChB,iBAAOlb,OAAO,CAAC+a,KAAD,CAAd;EACH;;EAED,QAAA,MAAI,CAACjR,KAAL,CAAWiR,KAAX,EAAkB,MAAlB,EAA0B;EAAA,iBAAM/a,OAAO,CAAC+a,KAAD,CAAb;EAAA,SAA1B;;EACA,QAAA,MAAI,CAACjR,KAAL,CAAWiR,KAAX,EAAkB,OAAlB,EAA2B;EAAA,iBAAM3N,MAAM,CAAC,IAAIjS,cAAJ,iCAA4C4f,KAAK,CAAC5R,GAAlD,EAAD,CAAZ;EAAA,SAA3B;;EAEA,eAAOnJ,OAAO,CAAC+a,KAAD,CAAd;EACH,OApBM,CAAP;EAqBH;;;aAED,mBAAU;EACN,WAAKP,aAAL,CAAmBhiB,OAAnB,CAA2B,UAACmC,KAAD;EAAA,eAAWA,KAAK,EAAhB;EAAA,OAA3B;EACH;;;;;;MCzEgBwgB;EACjB,kBAAYnV,GAAZ,EAAiB;EAAA;;EAAA;;EACb,SAAKzN,IAAL,GAAY,EAAZ;EAEA,QACI2N,MADJ,GAIIF,GAJJ,CACIE,MADJ;EAAA,QAEI+C,MAFJ,GAIIjD,GAJJ,CAEIiD,MAFJ;EAAA,QAGca,KAHd,GAII9D,GAJJ,CAGIH,MAHJ,CAGciE,KAHd;;EAMA,QAAI5D,MAAM,CAACvC,MAAX,EAAmB;EACfqC,MAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpB,QAAA,KAAI,CAACtT,GAAL,CAAS,EAAT,EAAa,YAAM;EACf,cAAIiS,MAAM,CAAChF,aAAX,EAA0B;EACtBgF,YAAAA,MAAM,CAAChF,aAAP,GAAuB,KAAvB;EACH;EACJ,SAJD;;EAMA,QAAA,KAAI,CAACjN,GAAL,CAAS,EAAT,EAAa,YAAM;EACfiS,UAAAA,MAAM,CAACkB,MAAP,GAAgB,IAAhB;EACH,SAFD;;EAIA,QAAA,KAAI,CAACnT,GAAL,CAAS,EAAT,EAAa,YAAM;EACfiS,UAAAA,MAAM,CAACmS,QAAP,GAAkB,CAAlB;EACH,SAFD;;EAIA,QAAA,KAAI,CAACpkB,GAAL,CAAS,EAAT,EAAa,YAAM;EACfiS,UAAAA,MAAM,CAACnG,MAAP,IAAiB,GAAjB;EACH,SAFD;;EAIA,QAAA,KAAI,CAAC9L,GAAL,CAAS,EAAT,EAAa,YAAM;EACfiS,UAAAA,MAAM,CAACoS,OAAP,GAAiB,CAAjB;EACH,SAFD;;EAIA,QAAA,KAAI,CAACrkB,GAAL,CAAS,EAAT,EAAa,YAAM;EACfiS,UAAAA,MAAM,CAACnG,MAAP,IAAiB,GAAjB;EACH,SAFD;;EAIAgH,QAAAA,KAAK,CAACjU,MAAD,EAAS,SAAT,EAAoB,UAAC8E,KAAD,EAAW;EAChC,cAAIqL,GAAG,CAAC0T,OAAR,EAAiB;EACb,gBAAM9X,GAAG,GAAGtL,QAAQ,CAACglB,aAAT,CAAuBC,OAAvB,CAA+B1K,WAA/B,EAAZ;EACA,gBAAM2K,QAAQ,GAAGllB,QAAQ,CAACglB,aAAT,CAAuBG,YAAvB,CAAoC,iBAApC,CAAjB;;EACA,gBAAI7Z,GAAG,KAAK,OAAR,IAAmBA,GAAG,KAAK,UAA3B,IAAyC4Z,QAAQ,KAAK,EAAtD,IAA4DA,QAAQ,KAAK,MAA7E,EAAqF;EACjF,kBAAM3V,MAAM,GAAG,KAAI,CAACtN,IAAL,CAAUoC,KAAK,CAAC+gB,OAAhB,CAAf;;EACA,kBAAI7V,MAAJ,EAAY;EACRlL,gBAAAA,KAAK,CAACwY,cAAN;EACAtN,gBAAAA,MAAM,CAACrN,OAAP,CAAe,UAAChE,EAAD;EAAA,yBAAQA,EAAE,CAACsK,IAAH,CAAQkH,GAAR,CAAR;EAAA,iBAAf;EACAA,gBAAAA,GAAG,CAAC0D,IAAJ,CAAS,QAAT,EAAmB/O,KAAnB;EACH;EACJ;EACJ;EACJ,SAbI,CAAL;EAcH,OAzCD;EA0CH;EACJ;;;;aAED,aAAI1C,GAAJ,EAAS0C,KAAT,EAAgB;EACZ,UAAI,KAAKpC,IAAL,CAAUN,GAAV,CAAJ,EAAoB;EAChB,aAAKM,IAAL,CAAUN,GAAV,EAAetD,IAAf,CAAoBgG,KAApB;EACH,OAFD,MAEO;EACH,aAAKpC,IAAL,CAAUN,GAAV,IAAiB,CAAC0C,KAAD,CAAjB;EACH;EACJ;;;;;;;;;;MC5DgBghB;;;;;EACjB,iBAAY3V,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EACA,UAAKzR,IAAL,GAAY,OAAZ;EACA,UAAKse,OAAL,GAAe7M,GAAG,CAACU,QAAJ,CAAae,MAA5B;EACAzB,IAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpBtE,MAAAA,GAAG,CAACE,MAAJ,CAAWxB,MAAX,CAAkBlM,OAAlB,CAA0B,UAAAU,IAAI,EAAI;EAC9B,cAAKlC,GAAL,CAASkC,IAAT;EACH,OAFD;EAGH,KAJD;EAJa;EAShB;;;IAV8BuZ;;;;;;MCCdmJ;;;;;EACjB,mBAAY5V,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EACA,UAAKzR,IAAL,GAAY,SAAZ;EACA8C,IAAAA,MAAM,CAAC2O,GAAG,CAACU,QAAJ,CAAagB,QAAd,EAAwB1B,GAAG,CAACP,KAAJ,CAAU+D,OAAlC,CAAN;EAHa;EAIhB;;;IALgCiJ;;MCDhBoJ;EACjB,kBAAY7V,GAAZ,EAAiB;EAAA;;EACb,SAAKA,GAAL,GAAWA,GAAX;EACA,SAAKtJ,IAAL,GAAY,IAAZ;EACA,SAAKyb,KAAL,GAAa,IAAb;EACH;;;;WAED,aAAS9e,GAAT,EAAc;EACV,+BAAkC,KAAK2M,GAAL,CAASU,QAA3C;EAAA,UAAQK,OAAR,sBAAQA,OAAR;EAAA,UAAiBa,YAAjB,sBAAiBA,YAAjB;EACAA,MAAAA,YAAY,CAAC4L,SAAb,GAAyBna,GAAG,YAAYiC,KAAf,GAAuBjC,GAAG,CAAC+B,OAAJ,CAAYgC,IAAZ,EAAvB,GAA4C/D,GAArE;EACAzC,MAAAA,QAAQ,CAACmQ,OAAD,EAAU,iBAAV,CAAR;EACAxG,MAAAA,YAAY,CAAC,KAAK4X,KAAN,CAAZ;EACA,WAAKA,KAAL,GAAalY,UAAU,CAAC,YAAM;EAC1B2H,QAAAA,YAAY,CAAC4L,SAAb,GAAyB,EAAzB;EACAvc,QAAAA,WAAW,CAAC8P,OAAD,EAAU,iBAAV,CAAX;EACH,OAHsB,EAGpB,KAAKrK,IAHe,CAAvB;EAIH;;;;;;;;;;MCfgBof;;;;;EACjB,gBAAY9V,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EACA,UAAKzR,IAAL,GAAY,MAAZ;EACA8C,IAAAA,MAAM,CAAC2O,GAAG,CAACU,QAAJ,CAAaoB,MAAd,EAAsB9B,GAAG,CAACP,KAAJ,CAAUU,KAAhC,CAAN;EAHa;EAIhB;;;IAL6BsM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCWbsJ,QACjB,eAAY/V,GAAZ,EAAiB;EAAA;;EAAA;;EACb,MAAMP,KAAK;EACP+D,IAAAA,OAAO,EAAPA,OADO;EAEPrD,IAAAA,KAAK,EAALA,KAFO;EAGPsE,IAAAA,IAAI,EAAJA,IAHO;EAIPW,IAAAA,KAAK,EAALA,KAJO;EAKPtI,IAAAA,MAAM,EAANA,MALO;EAMP0S,IAAAA,WAAW,EAAXA,WANO;EAOPnQ,IAAAA,QAAQ,EAARA,QAPO;EAQP5B,IAAAA,UAAU,EAAVA,UARO;EASPC,IAAAA,OAAO,EAAPA,OATO;EAUPM,IAAAA,UAAU,EAAVA,UAVO;EAWPC,IAAAA,aAAa,EAAbA,aAXO;EAYPL,IAAAA,GAAG,EAAHA;EAZO,KAaJoC,GAAG,CAACE,MAAJ,CAAWT,KAbP,CAAX;;EAgBAnN,EAAAA,MAAM,CAACC,IAAP,CAAYkN,KAAZ,EAAmBjN,OAAnB,CAA2B,UAACP,GAAD,EAAS;EAChCuG,IAAAA,GAAG,CAAC,KAAD,EAAOvG,GAAP,EAAY;EACXiR,MAAAA,GAAG,EAAE,eAAM;EACP,YAAM8S,IAAI,GAAG1lB,QAAQ,CAACwH,aAAT,CAAuB,GAAvB,CAAb;EACAlH,QAAAA,QAAQ,CAAColB,IAAD,EAAO,UAAP,CAAR;EACAplB,QAAAA,QAAQ,CAAColB,IAAD,qBAAmB/jB,GAAnB,EAAR;EACAZ,QAAAA,MAAM,CAAC2kB,IAAD,EAAOvW,KAAK,CAACxN,GAAD,CAAZ,CAAN;EACA,eAAO+jB,IAAP;EACH;EAPU,KAAZ,CAAH;EASH,GAVD;EAWH;;;;;ECzCU,SAAS3Y,IAAT,CAAc6C,MAAd,EAAsB;EACjC,SAAO,UAAAF,GAAG,EAAI;EACV,QAAQ+D,IAAR,GAAyB/D,GAAzB,CAAQ+D,IAAR;EAAA,QAAcd,MAAd,GAAyBjD,GAAzB,CAAciD,MAAd;EACA,+CACO/C,MADP;EAEI7D,MAAAA,IAAI,gEACkC0H,IAAI,CAACb,GAAL,CAAS,MAAT,CADlC,0MAIoDa,IAAI,CAACb,GAAL,CAAS,QAAT,CAJpD,kLAOwDa,IAAI,CAACb,GAAL,CAAS,YAAT,CAPxD,gLAUsDa,IAAI,CAACb,GAAL,CAAS,UAAT,CAVtD,gFAFR;EAgBIhL,MAAAA,KAAK,EAAE,eAACwF,OAAD,EAAU/I,KAAV,EAAoB;EACvB,YAAQzC,KAAR,GAAkByC,KAAK,CAAC9D,MAAN,CAAayV,OAA/B,CAAQpU,KAAR;;EACA,YAAIA,KAAJ,EAAW;EACP+Q,UAAAA,MAAM,CAAC5F,IAAP,GAAcnL,KAAd;EACH;EACJ,OArBL;EAsBIqK,MAAAA,OAAO,EAAE,iBAAAwF,QAAQ,EAAI;EACjB/B,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,MAAP,EAAe,UAAAmO,IAAI,EAAI;EACnB,cAAM4T,QAAQ,GAAGzgB,QAAQ,CAAC,QAAD,EAAWuR,QAAX,CAAR,CAA6BkL,IAA7B,CAAkC,UAAA/Z,IAAI;EAAA,mBAAIA,IAAI,CAACoT,OAAL,CAAapU,KAAb,KAAuBmL,IAA3B;EAAA,WAAtC,CAAjB;;EACA,cAAI4T,QAAJ,EAAc;EACV9d,YAAAA,YAAY,CAAC8d,QAAQ,CAACle,aAAV,EAAyB,SAAzB,CAAZ;EACH;EACJ,SALD;EAMH;EA7BL;EA+BH,GAjCD;EAkCH;;;;;ECnCc,SAASuK,MAAT,CAAgB4C,MAAhB,EAAwB;EACnC,SAAO,UAACF,GAAD,EAAS;EACZ,QAAQ+D,IAAR,GAAyB/D,GAAzB,CAAQ+D,IAAR;EAAA,QAAcd,MAAd,GAAyBjD,GAAzB,CAAciD,MAAd;EACA,+CACO/C,MADP;EAEI7D,MAAAA,IAAI,sFAEM0H,IAAI,CAACb,GAAL,CAAS,QAAT,CAFN,8eAFR;EAeIhL,MAAAA,KAAK,EAAE,eAACwF,OAAD,EAAU/I,KAAV,EAAoB;EACvB,YAAQzC,KAAR,GAAkByC,KAAK,CAAC9D,MAAN,CAAayV,OAA/B,CAAQpU,KAAR;;EACA,YAAIA,KAAJ,EAAW;EACP,cAAM6Z,GAAG,GAAG9I,MAAM,CAAC3F,MAAP,GAAgBmJ,MAAM,CAACvU,KAAD,CAAlC;;EACA,cAAI6Z,GAAG,KAAK,GAAR,IAAeA,GAAG,KAAK,CAAC,GAA5B,EAAiC;EAC7B9I,YAAAA,MAAM,CAAC3F,MAAP,GAAgB,CAAhB;EACH,WAFD,MAEO;EACH2F,YAAAA,MAAM,CAAC3F,MAAP,GAAgByO,GAAhB;EACH;EACJ,SAPD,MAOO;EACH9I,UAAAA,MAAM,CAAC3F,MAAP,GAAgB,CAAhB;EACH;EACJ,OA3BL;EA4BIf,MAAAA,OAAO,EAAE,iBAACwF,QAAD,EAAc;EACnB,YAAMwL,MAAM,GAAGpd,KAAK,CAAC,mBAAD,EAAsB4R,QAAtB,CAApB;EACA/B,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,QAAP,EAAiB,UAACoO,MAAD,EAAY;EACzBiQ,UAAAA,MAAM,CAACC,SAAP,aAAsBlQ,MAAM,IAAI,CAAhC;EACH,SAFD;EAGH;EAjCL;EAmCH,GArCD;EAsCH;;;;;ECvCc,SAASE,WAAT,CAAqB0C,MAArB,EAA6B;EACxC,SAAO,UAAAF,GAAG,EAAI;EACV,QAAQ+D,IAAR,GAAyB/D,GAAzB,CAAQ+D,IAAR;EAAA,QAAcd,MAAd,GAAyBjD,GAAzB,CAAciD,MAAd;EACA,+CACO/C,MADP;EAEI7D,MAAAA,IAAI,gEACkC0H,IAAI,CAACb,GAAL,CAAS,cAAT,CADlC,2MAIqDa,IAAI,CAACb,GAAL,CAAS,SAAT,CAJrD,oZAFR;EAgBIhL,MAAAA,KAAK,EAAE,eAACwF,OAAD,EAAU/I,KAAV,EAAoB;EACvB,YAAQzC,KAAR,GAAkByC,KAAK,CAAC9D,MAAN,CAAayV,OAA/B,CAAQpU,KAAR;;EACA,YAAIA,KAAJ,EAAW;EACP+Q,UAAAA,MAAM,CAACzF,WAAP,GAAqBtL,KAArB;EACH;EACJ,OArBL;EAsBIqK,MAAAA,OAAO,EAAE,iBAAAwF,QAAQ,EAAI;EACjB/B,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,aAAP,EAAsB,UAAAyX,KAAK,EAAI;EAC3B,cAAMsK,QAAQ,GAAGzgB,QAAQ,CAAC,QAAD,EAAWuR,QAAX,CAAR,CAA6BkL,IAA7B,CAAkC,UAAA/Z,IAAI;EAAA,mBAAIA,IAAI,CAACoT,OAAL,CAAapU,KAAb,KAAuByU,KAA3B;EAAA,WAAtC,CAAjB;;EACA,cAAIsK,QAAJ,EAAc;EACV9d,YAAAA,YAAY,CAAC8d,QAAQ,CAACle,aAAV,EAAyB,SAAzB,CAAZ;EACH;EACJ,SALD;EAMH;EA7BL;EA+BH,GAjCD;EAkCH;;;;;ECnCc,SAASwK,YAAT,CAAsB2C,MAAtB,EAA8B;EACzC,SAAO,UAAAF,GAAG,EAAI;EACV,QACI+D,IADJ,GAII/D,GAJJ,CACI+D,IADJ;EAAA,QAEId,MAFJ,GAIIjD,GAJJ,CAEIiD,MAFJ;EAAA,QAGca,KAHd,GAII9D,GAJJ,CAGIH,MAHJ,CAGciE,KAHd;EAKA,2CACO5D,MADP;EAEI7D,MAAAA,IAAI,sFAEM0H,IAAI,CAACb,GAAL,CAAS,YAAT,CAFN,+RAFR;EAUI3G,MAAAA,OAAO,EAAE,iBAAAwF,QAAQ,EAAI;EACjB,YAAMkU,MAAM,GAAG9lB,KAAK,CAAC,0BAAD,EAA6B4R,QAA7B,CAApB;EACA,YAAMwL,MAAM,GAAGpd,KAAK,CAAC,qBAAD,EAAwB4R,QAAxB,CAApB;EACA+B,QAAAA,KAAK,CAACmS,MAAD,EAAS,QAAT,EAAmB,YAAM;EAC1B,cAAQ/jB,KAAR,GAAkB+jB,MAAlB,CAAQ/jB,KAAR;EACAqb,UAAAA,MAAM,CAACC,SAAP,GAAmBtb,KAAnB;EACA+Q,UAAAA,MAAM,CAAC1F,YAAP,GAAsBkJ,MAAM,CAACvU,KAAD,CAA5B;EACH,SAJI,CAAL;EAMA8N,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,cAAP,EAAuB,UAAAqX,IAAI,EAAI;EAC3B,cAAIA,IAAI,IAAI0P,MAAM,CAAC/jB,KAAP,KAAiBqU,IAA7B,EAAmC;EAC/B0P,YAAAA,MAAM,CAAC/jB,KAAP,GAAeqU,IAAf;EACAgH,YAAAA,MAAM,CAACC,SAAP,GAAmBjH,IAAnB;EACH;EACJ,SALD;EAMH;EAzBL;EA2BH,GAjCD;EAkCH;;;;;;MC/BoB2P;;;;;EACjB,mBAAYlW,GAAZ,EAAiB;EAAA;;EAAA;;EACb,8BAAMA,GAAN;EAEA,UAAKzR,IAAL,GAAY,SAAZ;EAEA,QACI2R,MADJ,GAIIF,GAJJ,CACIE,MADJ;EAAA,wBAIIF,GAJJ,CAEIU,QAFJ;EAAA,QAEgBqB,QAFhB,iBAEgBA,QAFhB;EAAA,QAE0BE,YAF1B,iBAE0BA,YAF1B;EAAA,QAGc6B,KAHd,GAII9D,GAJJ,CAGIH,MAHJ,CAGciE,KAHd;EAMA,UAAK+I,OAAL,GAAe5K,YAAf;;EAEA,QAAI/B,MAAM,CAACxC,OAAX,EAAoB;EAChBsC,MAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpBR,QAAAA,KAAK,CAAC/B,QAAD,EAAW,OAAX,EAAoB,UAAArT,CAAC,EAAI;EAC1B,cAAIA,CAAC,CAACmC,MAAF,KAAakR,QAAjB,EAA2B;EACvB,kBAAK0B,IAAL,GAAY,KAAZ;EACH;EACJ,SAJI,CAAL;;EAMA,cAAKzS,GAAL,CACIqM,IAAI,CAAC;EACDf,UAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAC7C,IADhB;EAED9O,UAAAA,IAAI,EAAE;EAFL,SAAD,CADR;;EAOA,cAAKyC,GAAL,CACIsM,MAAM,CAAC;EACHhB,UAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAC5C,MADd;EAEH/O,UAAAA,IAAI,EAAE;EAFH,SAAD,CADV;;EAOA,cAAKyC,GAAL,CACIwM,WAAW,CAAC;EACRlB,UAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAC1C,WADT;EAERjP,UAAAA,IAAI,EAAE;EAFE,SAAD,CADf;;EAOA,cAAKyC,GAAL,CACIuM,YAAY,CAAC;EACTjB,UAAAA,OAAO,EAAE,CAAC4D,MAAM,CAAC3C,YADR;EAEThP,UAAAA,IAAI,EAAE;EAFG,SAAD,CADhB;EAMH,OAlCD;EAoCAyR,MAAAA,GAAG,CAAC9Q,EAAJ,CAAO,MAAP,EAAe,YAAM;EACjB,cAAKuU,IAAL,GAAY,KAAZ;EACH,OAFD;EAGH;;EArDY;EAsDhB;;;IAvDgCgJ;;MCNhB0J;EACjB,qBAAc;EAAA;;EACV,SAAK5nB,IAAL,GAAY,oBAAZ;EACA,SAAK6nB,QAAL,GAAgB,EAAhB;EACH;;;;aAED,aAAInkB,GAAJ,EAAS;EACL,UAAI;EACA,YAAM2R,OAAO,GAAGyS,IAAI,CAACC,KAAL,CAAWzmB,MAAM,CAAC0mB,YAAP,CAAoBC,OAApB,CAA4B,KAAKjoB,IAAjC,CAAX,KAAsD,EAAtE;EACA,eAAO0D,GAAG,GAAG2R,OAAO,CAAC3R,GAAD,CAAV,GAAkB2R,OAA5B;EACH,OAHD,CAGE,OAAO6S,KAAP,EAAc;EACZ,eAAOxkB,GAAG,GAAG,KAAKmkB,QAAL,CAAcnkB,GAAd,CAAH,GAAwB,KAAKmkB,QAAvC;EACH;EACJ;;;aAED,aAAInkB,GAAJ,EAASC,KAAT,EAAgB;EACZ,UAAI;EACA,YAAM0R,OAAO,GAAGtR,MAAM,CAACokB,MAAP,CAAc,EAAd,EAAkB,KAAKxT,GAAL,EAAlB,sBACXjR,GADW,EACLC,KADK,EAAhB;EAGArC,QAAAA,MAAM,CAAC0mB,YAAP,CAAoBI,OAApB,CAA4B,KAAKpoB,IAAjC,EAAuC8nB,IAAI,CAACO,SAAL,CAAehT,OAAf,CAAvC;EACH,OALD,CAKE,OAAO6S,KAAP,EAAc;EACZ,aAAKL,QAAL,CAAcnkB,GAAd,IAAqBC,KAArB;EACH;EACJ;;;aAED,aAAID,GAAJ,EAAS;EACL,UAAI;EACA,YAAM2R,OAAO,GAAG,KAAKV,GAAL,EAAhB;EACA,eAAOU,OAAO,CAAC3R,GAAD,CAAd;EACApC,QAAAA,MAAM,CAAC0mB,YAAP,CAAoBI,OAApB,CAA4B,KAAKpoB,IAAjC,EAAuC8nB,IAAI,CAACO,SAAL,CAAehT,OAAf,CAAvC;EACH,OAJD,CAIE,OAAO6S,KAAP,EAAc;EACZ,eAAO,KAAKL,QAAL,CAAcnkB,GAAd,CAAP;EACH;EACJ;;;aAED,iBAAQ;EACJ,UAAI;EACApC,QAAAA,MAAM,CAAC0mB,YAAP,CAAoBM,UAApB,CAA+B,KAAKtoB,IAApC;EACH,OAFD,CAEE,OAAOkoB,KAAP,EAAc;EACZ,aAAKL,QAAL,GAAgB,EAAhB;EACH;EACJ;;;;;;ECxCL,SAASU,UAAT,CAAoB9W,GAApB,EAAyB;EACrB,MACI+D,IADJ,GAII/D,GAJJ,CACI+D,IADJ;EAAA,MAEI1E,QAFJ,GAIIW,GAJJ,CAEIX,QAFJ;EAAA,MAGcyE,KAHd,GAII9D,GAJJ,CAGIH,MAHJ,CAGciE,KAHd;EAMA,SAAO;EACHnH,IAAAA,KAAK,EAAE,UADJ;EAEHpO,IAAAA,IAAI,EAAE,gBAFH;EAGHsI,IAAAA,KAAK,EAAE,EAHJ;EAIHwF,IAAAA,IAAI,8EAEM0H,IAAI,CAACb,GAAL,CAAS,sBAAT,CAFN,uQAJD;EAYH3G,IAAAA,OAAO,EAAE,iBAACwF,QAAD,EAAc;EACnB,UAAMkU,MAAM,GAAG9lB,KAAK,CAAC,0BAAD,EAA6B4R,QAA7B,CAApB;EACA,UAAMwL,MAAM,GAAGpd,KAAK,CAAC,qBAAD,EAAwB4R,QAAxB,CAApB;EACA+B,MAAAA,KAAK,CAACmS,MAAD,EAAS,QAAT,EAAmB,YAAM;EAC1B,YAAQ/jB,KAAR,GAAkB+jB,MAAlB,CAAQ/jB,KAAR;EACAqb,QAAAA,MAAM,CAACC,SAAP,GAAmBtb,KAAnB;EACA8N,QAAAA,GAAG,CAACxB,OAAJ,CAAYN,cAAZ,CAA2BxK,MAA3B,CAAkC+S,MAAM,CAACvU,KAAD,CAAxC;EACH,OAJI,CAAL;EAMA8N,MAAAA,GAAG,CAAC9Q,EAAJ,CAAO,iBAAP,EAA0B,YAAM;EAC5B+mB,QAAAA,MAAM,CAAC/jB,KAAP,GAAe,CAAf;EACAqb,QAAAA,MAAM,CAACC,SAAP,GAAmB,CAAnB;EACH,OAHD;EAKAxN,MAAAA,GAAG,CAAC9Q,EAAJ,CAAO,gBAAP,EAAyB,UAACgD,KAAD,EAAW;EAChCmN,QAAAA,QAAQ,CAAC2T,MAAT;;EACA,YAAIiD,MAAM,CAAC/jB,KAAP,KAAiBA,KAArB,EAA4B;EACxB+jB,UAAAA,MAAM,CAAC/jB,KAAP,GAAeA,KAAf;EACAqb,UAAAA,MAAM,CAACC,SAAP,GAAmBtb,KAAnB;EACH;EACJ,OAND;EAOH;EAjCE,GAAP;EAmCH;;EAEc,SAASgM,cAAT,CAAwB8B,GAAxB,EAA6B;EACxC,MAAQnF,KAAR,GAAkBmF,GAAG,CAACxK,WAAJ,CAAgBuhB,KAAlC,CAAQlc,KAAR;EACA,MAAQ6C,OAAR,GAAoDsC,GAApD,CAAQtC,OAAR;EAAA,MAAiBsG,MAAjB,GAAoDhE,GAApD,CAAiBgE,MAAjB;EAAA,MAAyBtD,QAAzB,GAAoDV,GAApD,CAAyBU,QAAzB;EAAA,MAAmCqD,IAAnC,GAAoD/D,GAApD,CAAmC+D,IAAnC;EAAA,MAAyCd,MAAzC,GAAoDjD,GAApD,CAAyCiD,MAAzC;EAEAvF,EAAAA,OAAO,CAAC1M,GAAR,CAAY8lB,UAAZ;EACA,MAAIE,SAAS,GAAG,EAAhB;EACAhX,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,iBAAP,EAA0B,YAAM;EAC5B8nB,IAAAA,SAAS,GAAG,EAAZ;EACH,GAFD;EAIA,SAAO;EACHzoB,IAAAA,IAAI,EAAE,gBADH;EAEHmF,IAAAA,MAFG,kBAEIxB,KAFJ,EAEW;EACV,UAAIwO,QAAQ,CAAC6R,MAAT,IAAmB7R,QAAQ,CAAC6R,MAAT,CAAgB0E,KAAvC,EAA8C;EAC1C,YAAMC,IAAI,GAAGzmB,KAAK,CAACC,IAAN,CAAWgQ,QAAQ,CAAC6R,MAAT,CAAgB0E,KAAhB,CAAsBC,IAAjC,CAAb;EACA,YAAMxgB,IAAI,GAAGmE,KAAK,CAAC3I,KAAD,EAAQ,CAAC,CAAT,EAAY,CAAZ,CAAlB;EACAglB,QAAAA,IAAI,CAAC1kB,OAAL,CAAa,UAAC2kB,GAAD,EAAMtgB,KAAN,EAAgB;EACzB,cAAI,CAACmgB,SAAS,CAACngB,KAAD,CAAd,EAAuB;EACnBmgB,YAAAA,SAAS,CAACngB,KAAD,CAAT,GAAmB;EACfugB,cAAAA,SAAS,EAAED,GAAG,CAACC,SADA;EAEfC,cAAAA,OAAO,EAAEF,GAAG,CAACE;EAFE,aAAnB;EAIH;;EACDF,UAAAA,GAAG,CAACC,SAAJ,GAAgBvc,KAAK,CAACmc,SAAS,CAACngB,KAAD,CAAT,CAAiBugB,SAAjB,GAA6B1gB,IAA9B,EAAoC,CAApC,EAAuCuM,MAAM,CAACyC,QAA9C,CAArB;EACAyR,UAAAA,GAAG,CAACE,OAAJ,GAAcxc,KAAK,CAACmc,SAAS,CAACngB,KAAD,CAAT,CAAiBwgB,OAAjB,GAA2B3gB,IAA5B,EAAkC,CAAlC,EAAqCuM,MAAM,CAACyC,QAA5C,CAAnB;EACH,SATD;EAUA1B,QAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,sBAAT,CAAjB,eAAsDhR,KAAtD;EACA8N,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,gBAAT,EAA2BxR,KAA3B;EACH,OAfD,MAeO;EACH8R,QAAAA,MAAM,CAACP,IAAP,aAAiBM,IAAI,CAACb,GAAL,CAAS,oBAAT,CAAjB;EACAlD,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,gBAAT,EAA2B,CAA3B;EACH;EACJ;EAtBE,GAAP;EAwBH;;EC9Ec,SAAStF,UAAT,CAAoB4B,GAApB,EAAyB;EACpC,MACc8D,KADd,GAOI9D,GAPJ,CACIH,MADJ,CACciE,KADd;EAAA,MAEIpD,QAFJ,GAOIV,GAPJ,CAEIU,QAFJ;EAAA,MAGIuC,MAHJ,GAOIjD,GAPJ,CAGIiD,MAHJ;EAAA,MAII/C,MAJJ,GAOIF,GAPJ,CAIIE,MAJJ;EAAA,MAKIxC,OALJ,GAOIsC,GAPJ,CAKItC,OALJ;EAAA,MAMIqG,IANJ,GAOI/D,GAPJ,CAMI+D,IANJ;;EASA,WAASuT,SAAT,CAAmBC,IAAnB,EAAyB;EACrB,QAAIA,IAAJ,EAAU;EACN,UAAMC,WAAW,GAAG9W,QAAQ,CAACM,MAAT,CAAgBwW,WAAhB,CAA4BD,IAAI,CAACnhB,IAAjC,CAApB;;EACA,UAAIohB,WAAW,KAAK,OAAhB,IAA2BA,WAAW,KAAK,UAA/C,EAA2D;EACvD,YAAMhgB,GAAG,GAAGvB,GAAG,CAACC,eAAJ,CAAoBqhB,IAApB,CAAZ;EACArX,QAAAA,MAAM,CAACvD,KAAP,GAAe4a,IAAI,CAAChpB,IAApB;EACA0U,QAAAA,MAAM,CAACkD,SAAP,CAAiB3O,GAAjB,EAAsB+f,IAAI,CAAChpB,IAA3B;EACAyR,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,YAAT,EAAuB6T,IAAvB;EACH,OALD,MAKO;EACH9hB,QAAAA,WAAW,CAAC,KAAD,EAAQ,+CAAR,CAAX;EACH;EACJ;EACJ;;EAEDqO,EAAAA,KAAK,CAACpD,QAAQ,CAACK,OAAV,EAAmB,UAAnB,EAA+B,UAAArS,CAAC,EAAI;EACrCA,IAAAA,CAAC,CAACye,cAAF;EACH,GAFI,CAAL;EAIArJ,EAAAA,KAAK,CAACpD,QAAQ,CAACK,OAAV,EAAmB,MAAnB,EAA2B,UAAArS,CAAC,EAAI;EACjCA,IAAAA,CAAC,CAACye,cAAF;EACA,QAAMoK,IAAI,GAAG7oB,CAAC,CAAC+oB,YAAF,CAAeC,KAAf,CAAqB,CAArB,CAAb;EACAJ,IAAAA,SAAS,CAACC,IAAD,CAAT;EACH,GAJI,CAAL;;EAMA,WAASI,MAAT,CAAgB9mB,MAAhB,EAAwB;EACpB,QAAM+mB,MAAM,GAAGvmB,MAAM,CAACR,MAAD,EAAS,qBAAT,CAArB;EACAkB,IAAAA,QAAQ,CAAClB,MAAD,EAAS,UAAT,EAAqB,UAArB,CAAR;EACAuB,IAAAA,SAAS,CAACwlB,MAAD,EAAS;EACd/Y,MAAAA,QAAQ,EAAE,UADI;EAEdpK,MAAAA,KAAK,EAAE,MAFO;EAGdH,MAAAA,MAAM,EAAE,MAHM;EAIdE,MAAAA,IAAI,EAAE,GAJQ;EAKdH,MAAAA,GAAG,EAAE,GALS;EAMdwjB,MAAAA,OAAO,EAAE;EANK,KAAT,CAAT;EAQA/T,IAAAA,KAAK,CAAC8T,MAAD,EAAS,QAAT,EAAmB,YAAM;EAC1B,UAAML,IAAI,GAAGK,MAAM,CAACF,KAAP,CAAa,CAAb,CAAb;EACAJ,MAAAA,SAAS,CAACC,IAAD,CAAT;EACH,KAHI,CAAL;EAIH;;EAEDvX,EAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpB5G,IAAAA,OAAO,CAAC1M,GAAR,CAAY;EACR2L,MAAAA,KAAK,EAAE,aADC;EAERpO,MAAAA,IAAI,EAAE,YAFE;EAGRsI,MAAAA,KAAK,EAAE,EAHC;EAIRwF,MAAAA,IAAI,sFAEM0H,IAAI,CAACb,GAAL,CAAS,aAAT,CAFN,6IAKkCa,IAAI,CAACb,GAAL,CAAS,MAAT,CALlC,6GAJI;EAaR3G,MAAAA,OAAO,EAAE,iBAAAwF,QAAQ,EAAI;EACjB,YAAM+V,IAAI,GAAG3nB,KAAK,CAAC,iBAAD,EAAoB4R,QAApB,CAAlB;EACA,YAAMwL,MAAM,GAAGpd,KAAK,CAAC,mBAAD,EAAsB4R,QAAtB,CAApB;EACA/B,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,YAAP,EAAqB,UAAAqoB,IAAI,EAAI;EACzBhK,UAAAA,MAAM,CAACwK,WAAP,GAAqBR,IAAI,CAAChpB,IAA1B;EACAgf,UAAAA,MAAM,CAAC5Q,KAAP,GAAe4a,IAAI,CAAChpB,IAApB;EACH,SAHD;EAIAopB,QAAAA,MAAM,CAACG,IAAD,CAAN;EACH;EArBO,KAAZ;EAuBH,GAxBD;EA0BA,SAAO;EACHvpB,IAAAA,IAAI,EAAE,YADH;EAEHopB,IAAAA,MAAM,EAANA;EAFG,GAAP;EAIH;;ECjFc,SAAStZ,aAAT,CAAuB2B,GAAvB,EAA4B;EACvC,MACc8D,KADd,GAKI9D,GALJ,CACIH,MADJ,CACciE,KADd;EAAA,MAEIzE,QAFJ,GAKIW,GALJ,CAEIX,QAFJ;EAAA,MAGI3B,OAHJ,GAKIsC,GALJ,CAGItC,OAHJ;EAAA,MAIIqG,IAJJ,GAKI/D,GALJ,CAII+D,IAJJ;;EAOA,WAASiU,YAAT,CAAsBT,IAAtB,EAA4B;EACxB,QAAIA,IAAJ,EAAU;EACN,UAAMnhB,IAAI,GAAGmB,MAAM,CAACggB,IAAI,CAAChpB,IAAN,CAAnB;;EACA,UAAI,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsBkJ,QAAtB,CAA+BrB,IAA/B,CAAJ,EAA0C;EACtCiJ,QAAAA,QAAQ,CAAC4Y,MAAT,CAAgBhiB,GAAG,CAACC,eAAJ,CAAoBqhB,IAApB,CAAhB,EAA2C;EACvChpB,UAAAA,IAAI,EAAEgpB,IAAI,CAAChpB,IAD4B;EAEvCilB,UAAAA,GAAG,EAAEpd;EAFkC,SAA3C;EAIA4J,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,eAAT,EAA0B6T,IAA1B;EACH,OAND,MAMO;EACH9hB,QAAAA,WAAW,CAAC,KAAD,EAAQ,4DAAR,CAAX;EACH;EACJ;EACJ;;EAED,WAASkiB,MAAT,CAAgB9mB,MAAhB,EAAwB;EACpB,QAAM+mB,MAAM,GAAGvmB,MAAM,CAACR,MAAD,EAAS,qBAAT,CAArB;EACAkB,IAAAA,QAAQ,CAAClB,MAAD,EAAS,UAAT,EAAqB,UAArB,CAAR;EACAuB,IAAAA,SAAS,CAACwlB,MAAD,EAAS;EACd/Y,MAAAA,QAAQ,EAAE,UADI;EAEdpK,MAAAA,KAAK,EAAE,MAFO;EAGdH,MAAAA,MAAM,EAAE,MAHM;EAIdE,MAAAA,IAAI,EAAE,GAJQ;EAKdH,MAAAA,GAAG,EAAE,GALS;EAMdwjB,MAAAA,OAAO,EAAE;EANK,KAAT,CAAT;EAQA/T,IAAAA,KAAK,CAAC8T,MAAD,EAAS,QAAT,EAAmB,YAAM;EAC1B,UAAML,IAAI,GAAGK,MAAM,CAACF,KAAP,CAAa,CAAb,CAAb;EACAM,MAAAA,YAAY,CAACT,IAAD,CAAZ;EACH,KAHI,CAAL;EAIH;;EAEDvX,EAAAA,GAAG,CAACsE,IAAJ,CAAS,OAAT,EAAkB,YAAM;EACpB5G,IAAAA,OAAO,CAAC1M,GAAR,CAAY;EACR2L,MAAAA,KAAK,EAAE,gBADC;EAERpO,MAAAA,IAAI,EAAE,eAFE;EAGRsI,MAAAA,KAAK,EAAE,EAHC;EAIRwF,MAAAA,IAAI,sFAEM0H,IAAI,CAACb,GAAL,CAAS,gBAAT,CAFN,6IAKkCa,IAAI,CAACb,GAAL,CAAS,MAAT,CALlC,6GAJI;EAaR3G,MAAAA,OAAO,EAAE,iBAACwF,QAAD,EAAc;EACnB,YAAM+V,IAAI,GAAG3nB,KAAK,CAAC,iBAAD,EAAoB4R,QAApB,CAAlB;EACA,YAAMwL,MAAM,GAAGpd,KAAK,CAAC,mBAAD,EAAsB4R,QAAtB,CAApB;EACA/B,QAAAA,GAAG,CAAC9Q,EAAJ,CAAO,eAAP,EAAwB,UAACqoB,IAAD,EAAU;EAC9BhK,UAAAA,MAAM,CAACwK,WAAP,GAAqBR,IAAI,CAAChpB,IAA1B;EACAgf,UAAAA,MAAM,CAAC5Q,KAAP,GAAe4a,IAAI,CAAChpB,IAApB;EACH,SAHD;EAIAopB,QAAAA,MAAM,CAACG,IAAD,CAAN;EACH;EArBO,KAAZ;EAuBH,GAxBD;EA0BA,SAAO;EACHvpB,IAAAA,IAAI,EAAE,eADH;EAEHopB,IAAAA,MAAM,EAANA;EAFG,GAAP;EAIH;;ECxEc,SAASxZ,eAAT,CAAyB6B,GAAzB,EAA8B;EACzC,MACItB,MADJ,GAIIsB,GAJJ,CACItB,MADJ;EAAA,MAEIuE,MAFJ,GAIIjD,GAJJ,CAEIiD,MAFJ;EAAA,MAGcrG,KAHd,GAIIoD,GAJJ,CAGIE,MAHJ,CAGctD,KAHd;EAMA8B,EAAAA,MAAM,CAAC1N,GAAP,CAAW;EACPzC,IAAAA,IAAI,EAAE,iBADC;EAEP4D,IAAAA,KAAK,EAAE;EACH4F,MAAAA,OAAO,EAAE,MADN;EAEH8G,MAAAA,QAAQ,EAAE,UAFP;EAGHrK,MAAAA,IAAI,EAAE,CAHH;EAIH0jB,MAAAA,KAAK,EAAE,CAJJ;EAKHC,MAAAA,MAAM,EAAE,CALL;EAMH7jB,MAAAA,MAAM,EAAE,KANL;EAOH8jB,MAAAA,UAAU,EAAExb;EAPT,KAFA;EAWPL,IAAAA,OAXO,mBAWC8b,YAXD,EAWe;EAClBrY,MAAAA,GAAG,CAAC9Q,EAAJ,CAAO,SAAP,EAAkB,UAAAgD,KAAK,EAAI;EACvBmmB,QAAAA,YAAY,CAAClmB,KAAb,CAAmB4F,OAAnB,GAA6B7F,KAAK,GAAG,MAAH,GAAY,OAA9C;EACH,OAFD;EAIA8N,MAAAA,GAAG,CAAC9Q,EAAJ,CAAO,SAAP,EAAkB,YAAM;EACpBmpB,QAAAA,YAAY,CAAClmB,KAAb,CAAmB4F,OAAnB,GAA6B,MAA7B;EACH,OAFD;EAIAiI,MAAAA,GAAG,CAAC9Q,EAAJ,CAAO,kBAAP,EAA2B,YAAM;EAC7BmpB,QAAAA,YAAY,CAAClmB,KAAb,CAAmBsC,KAAnB,aAA8BwO,MAAM,CAACgM,MAAP,GAAgB,GAA9C;EACH,OAFD;EAGH;EAvBM,GAAX;EA0BA,SAAO;EACH1gB,IAAAA,IAAI,EAAE;EADH,GAAP;EAGH;;ECpCc,SAAS+P,cAAT,CAAwB0B,GAAxB,EAA6B;EACxC,MAAIsY,UAAU,GAAG,KAAjB;EACA,MAAIC,QAAQ,GAAG,CAAf;EACA,MAAIC,QAAQ,GAAG,CAAf;EACA,MAAIC,QAAQ,GAAG,CAAf;EACA,MAAItG,KAAK,GAAG,IAAZ;;EAEA,WAASuG,SAAT,GAAqB;EACjBH,IAAAA,QAAQ,GAAG,CAAX;EACAC,IAAAA,QAAQ,GAAG,CAAX;EACAC,IAAAA,QAAQ,GAAG,CAAX;EACAE,IAAAA,oBAAoB,CAACxG,KAAD,CAApB;EACAA,IAAAA,KAAK,GAAG,IAAR;EACH;;EAED,WAASiF,SAAT,GAAqB;EACjB,QAAIjF,KAAJ,EAAW;;EACX,KAAC,SAAS/U,IAAT,GAAgB;EACb,UAAI4C,GAAG,CAAC4Y,SAAR,EAAmB;EACnBzG,MAAAA,KAAK,GAAG0G,qBAAqB,CAAC,YAAM;EAChC,YAAMC,OAAO,GAAGhI,IAAI,CAACC,GAAL,EAAhB;;EACA,YAAI0H,QAAJ,EAAc;EACV,cAAMM,QAAQ,GAAGD,OAAO,GAAGL,QAA3B;EACAD,UAAAA,QAAQ,IAAIO,QAAZ;;EACA,cAAI,CAAC/Y,GAAG,CAACiD,MAAJ,CAAWyB,OAAhB,EAAyB;EACrB6T,YAAAA,QAAQ,IAAIQ,QAAZ;EACH;EACJ;;EACDN,QAAAA,QAAQ,GAAGK,OAAX;EACA9Y,QAAAA,GAAG,CAAC0D,IAAJ,CAAS,gBAAT,EAA2B6U,QAAQ,GAAGC,QAAtC;;EACA,YAAIA,QAAQ,IAAIF,UAAhB,EAA4B;EACxBC,UAAAA,QAAQ,GAAG,CAAX;EACAC,UAAAA,QAAQ,GAAG,CAAX;EACH;;EACDpb,QAAAA,IAAI;EACP,OAhB4B,CAA7B;EAiBH,KAnBD;EAoBH;;EAED4C,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,MAAP,EAAekoB,SAAf;EACApX,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,OAAP,EAAgBwpB,SAAhB;EAEA,SAAO;EACHnqB,IAAAA,IAAI,EAAE,gBADH;EAEHyqB,IAAAA,KAAK,EAAEN,SAFJ;EAGHvhB,IAAAA,KAAK,EAAEigB,SAHJ;EAIH6B,IAAAA,MAAM,EAAE,gBAAAviB,IAAI,EAAI;EACZ4hB,MAAAA,UAAU,GAAG5hB,IAAb;EACH;EANE,GAAP;EAQH;;EChDc,SAASwiB,GAAT,CAAalZ,GAAb,EAAkB;EAC7B,MAAQtB,MAAR,GAAmBsB,GAAnB,CAAQtB,MAAR;EAEA,MAAIya,IAAI,GAAG,IAAX;EACAza,EAAAA,MAAM,CAAC1N,GAAP,CAAW;EACPzC,IAAAA,IAAI,EAAE,KADC;EAEP4D,IAAAA,KAAK,EAAE;EACHgmB,MAAAA,MAAM,EAAE;EADL,KAFA;EAKP5b,IAAAA,OALO,mBAKC6c,GALD,EAKM;EACTD,MAAAA,IAAI,GAAGC,GAAP;EACH;EAPM,GAAX;EAUA,MAAIjH,KAAK,GAAG,IAAZ;EACA,MAAMjX,GAAG,GAAG,CAAZ;EACA,MAAMb,OAAO,GAAG,IAAhB;;EAEA,WAASgf,KAAT,GAAiB;EACb,QAAMC,KAAK,GAAGH,IAAI,CAACI,iBAAnB;EACAxnB,IAAAA,QAAQ,CAAConB,IAAD,EAAO,QAAP,EAAiBnZ,GAAG,CAACpB,QAAJ,CAAa6E,IAAb,GAAoB,MAApB,GAA6B,MAA9C,CAAR;;EACA,QAAI6V,KAAJ,EAAW;EACP,UAAIA,KAAK,GAAGpe,GAAZ,EAAiB;EACbhK,QAAAA,MAAM,CAACioB,IAAI,CAACK,iBAAN,CAAN;EACArH,QAAAA,KAAK,GAAGlY,UAAU,CAACof,KAAD,EAAQhf,OAAR,CAAlB;EACH,OAHD,MAGO;EACH8X,QAAAA,KAAK,GAAGlY,UAAU,CAAC,YAAM;EACrB/I,UAAAA,MAAM,CAACioB,IAAI,CAACK,iBAAN,CAAN;EACAH,UAAAA,KAAK;EACR,SAHiB,EAGfhf,OAHe,CAAlB;EAIH;EACJ,KAVD,MAUO;EACHtI,MAAAA,QAAQ,CAAConB,IAAD,EAAO,SAAP,EAAkB,MAAlB,CAAR;EACH;EACJ;;EAEDnZ,EAAAA,GAAG,CAAC9Q,EAAJ,CAAO,SAAP,EAAkB;EAAA,WAAMqL,YAAY,CAAC4X,KAAD,CAAlB;EAAA,GAAlB;EAEA,SAAO;EACH5jB,IAAAA,IAAI,EAAE,KADH;EAEHmV,IAAAA,IAFG,gBAEErQ,GAFF,EAEO;EACN,UAAI,OAAOA,GAAP,KAAe,QAAnB,EAA6B;EAC7BhC,MAAAA,MAAM,CAAC8nB,IAAD,eAAazd,MAAM,CAACrI,GAAD,CAAnB,UAAN;EACAtB,MAAAA,QAAQ,CAAConB,IAAD,EAAO,SAAP,EAAkB,OAAlB,CAAR;EACA5e,MAAAA,YAAY,CAAC4X,KAAD,CAAZ;EACAkH,MAAAA,KAAK;EACR;EARE,GAAP;EAUH;;MC1CoBI;EACjB,mBAAYzZ,GAAZ,EAAiB;EAAA;;EAAA;;EACb,SAAKA,GAAL,GAAWA,GAAX;EACA,SAAK0M,EAAL,GAAU,CAAV;EAEA,QAAQxM,MAAR,GAAmBF,GAAnB,CAAQE,MAAR;;EAEA,QAAIA,MAAM,CAACb,QAAP,CAAgB7H,GAAhB,IAAuB0I,MAAM,CAAChC,cAAlC,EAAkD;EAC9C,WAAKlN,GAAL,CAASkN,cAAT;EACH;;EAED,QAAI,CAACgC,MAAM,CAACnD,MAAR,IAAkBmD,MAAM,CAAC/B,eAA7B,EAA8C;EAC1C,WAAKnN,GAAL,CAASmN,eAAT;EACH;;EAED,QAAI+B,MAAM,CAAC9B,UAAX,EAAuB;EACnB,WAAKpN,GAAL,CAASoN,UAAT;EACH;;EAED,QAAI8B,MAAM,CAAC7B,aAAX,EAA0B;EACtB,WAAKrN,GAAL,CAASqN,aAAT;EACH;;EAED,QAAI6B,MAAM,CAAC5B,cAAX,EAA2B;EACvB,WAAKtN,GAAL,CAASsN,cAAT;EACH;;EAED,QAAI4B,MAAM,CAACgZ,GAAX,EAAgB;EACZ,WAAKloB,GAAL,CAASkoB,GAAT;EACH;;EAEDlZ,IAAAA,GAAG,CAACE,MAAJ,CAAW1B,OAAX,CAAmBhM,OAAnB,CAA2B,UAACknB,MAAD,EAAY;EACnC,MAAA,KAAI,CAAC1oB,GAAL,CAAS0oB,MAAT;EACH,KAFD;EAGH;;;;aAED,aAAIA,MAAJ,EAAY;EACR,WAAKhN,EAAL,IAAW,CAAX;EACA,UAAMxT,MAAM,GAAGwgB,MAAM,CAAC5gB,IAAP,CAAY,IAAZ,EAAkB,KAAKkH,GAAvB,CAAf;EACA,UAAM2Z,UAAU,GAAIzgB,MAAM,IAAIA,MAAM,CAAC3K,IAAlB,IAA2BmrB,MAAM,CAACnrB,IAAlC,oBAAmD,KAAKme,EAAxD,CAAnB;EACAjX,MAAAA,WAAW,CAAC,CAACmD,GAAG,CAAC,IAAD,EAAO+gB,UAAP,CAAL,gEAAgFA,UAAhF,EAAX;EACAnhB,MAAAA,GAAG,CAAC,IAAD,EAAOmhB,UAAP,EAAmB;EAClBznB,QAAAA,KAAK,EAAEgH;EADW,OAAnB,CAAH;EAGA,aAAO,IAAP;EACH;;;;;;MClDgB0gB,SACjB,gBAAY5Z,GAAZ,EAAiB;EAAA;;EACb,MACIE,MADJ,GAIIF,GAJJ,CACIE,MADJ;EAAA,MAEc4D,KAFd,GAII9D,GAJJ,CAEIH,MAFJ,CAEciE,KAFd;EAAA,MAGgB9C,MAHhB,GAIIhB,GAJJ,CAGIU,QAHJ,CAGgBM,MAHhB;EAMAoD,EAAAA,MAAM,CAACvE,MAAP,CAAcrN,OAAd,CAAsB,UAAA6R,SAAS,EAAI;EAC/BP,IAAAA,KAAK,CAAC9C,MAAD,EAASqD,SAAT,EAAoB,UAAA1P,KAAK,EAAI;EAC9BqL,MAAAA,GAAG,CAAC0D,IAAJ,iBAAkB/O,KAAK,CAACyB,IAAxB,GAAgCzB,KAAhC;EACH,KAFI,CAAL;EAGH,GAJD;EAMArC,EAAAA,MAAM,CAACC,IAAP,CAAY2N,MAAM,CAACV,aAAnB,EAAkChN,OAAlC,CAA0C,UAAAP,GAAG,EAAI;EAC7C+O,IAAAA,MAAM,CAAC/O,GAAD,CAAN,GAAciO,MAAM,CAACV,aAAP,CAAqBvN,GAArB,CAAd;EACH,GAFD;;EAIA,MAAIiO,MAAM,CAAClD,KAAX,EAAkB;EACdgE,IAAAA,MAAM,CAAChE,KAAP,GAAekD,MAAM,CAAClD,KAAtB;EACH;;EAED,MAAIkD,MAAM,CAACpD,MAAX,EAAmB;EACfkE,IAAAA,MAAM,CAAClE,MAAP,GAAgBjC,KAAK,CAACqF,MAAM,CAACpD,MAAR,EAAgB,CAAhB,EAAmB,CAAnB,CAArB;EACH;;EAED,MAAIoD,MAAM,CAACxD,MAAX,EAAmB;EACfsE,IAAAA,MAAM,CAACtE,MAAP,GAAgBwD,MAAM,CAACxD,MAAvB;EACH;;EAED,MAAIwD,MAAM,CAACjD,QAAX,EAAqB;EACjB+D,IAAAA,MAAM,CAAC/D,QAAP,GAAkBiD,MAAM,CAACjD,QAAzB;EACH;;EAED+D,EAAAA,MAAM,CAACpC,QAAP,GAAkB,IAAlB;EAEA,MAAMyE,QAAQ,GAAGnD,MAAM,CAAC9J,IAAP,IAAemB,MAAM,CAAC2I,MAAM,CAAC1I,GAAR,CAAtC;EACA,MAAM8L,YAAY,GAAGpD,MAAM,CAACR,UAAP,CAAkB2D,QAAlB,CAArB;;EACA,MAAIA,QAAQ,IAAIC,YAAhB,EAA8B;EAC1BA,IAAAA,YAAY,CAACtC,MAAD,EAASd,MAAM,CAAC1I,GAAhB,EAAqBwI,GAArB,CAAZ;EACAA,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,YAAT,EAAuBL,QAAvB;EACH,GAHD,MAGO;EACHrC,IAAAA,MAAM,CAACmC,GAAP,GAAajD,MAAM,CAAC1I,GAApB;EACAwI,IAAAA,GAAG,CAAC0D,IAAJ,CAAS,KAAT,EAAgB1C,MAAM,CAACmC,GAAvB;EACH;EACJ;;;;;ECtBL,IAAIuJ,EAAE,GAAG,CAAT;EACA,IAAMnM,SAAS,GAAG,EAAlB;;MACqBsZ;;;;;EACjB,qBAAY3Z,MAAZ,EAAoB;EAAA;;EAAA;;EAChB;EACA,UAAKA,MAAL,GAAc4Z,SAAS,CAAC/C,SAAA,CAAgB8C,SAAS,CAAC3Z,MAA1B,EAAkCA,MAAlC,CAAD,EAA4C6Z,MAA5C,CAAvB;EACA,UAAKrG,OAAL,GAAe,KAAf;EACA,UAAKkF,SAAL,GAAiB,KAAjB;EACA,UAAKhpB,SAAL,GAAiBmnB,SAAjB;EACA,UAAKhnB,QAAL,GAAgBgnB,QAAhB;EACA,UAAK7mB,QAAL,GAAgB6mB,QAAhB;EACA,UAAKtY,SAAL,GAAiB,IAAIsB,SAAJ,+BAAjB;EACA,UAAKW,QAAL,GAAgB,IAAIL,QAAJ,+BAAhB;EACA,UAAKR,MAAL,GAAc,IAAI0U,MAAJ,+BAAd;;EACA,QAAI,MAAK9V,SAAL,CAAe0B,KAAnB,EAA0B;EACtB,YAAKyD,OAAL,GAAe,IAAIuS,OAAJ,+BAAf;EACA,YAAK1W,KAAL,GAAa,IAAIsW,KAAJ,+BAAb;EACA,YAAKhS,IAAL,GAAY,IAAIrB,IAAJ,+BAAZ;EACA,YAAKsB,MAAL,GAAc,IAAI6R,MAAJ,+BAAd;EACA,YAAK5S,MAAL,GAAc,IAAIoJ,MAAJ,+BAAd;EACA,YAAK3N,MAAL,GAAc,IAAIiX,KAAJ,+BAAd;EACA,YAAK/W,QAAL,GAAgB,IAAIgS,OAAJ,+BAAhB;EACA,YAAKjS,WAAL,GAAmB,IAAI0S,WAAJ,+BAAnB;EACA,YAAKhS,QAAL,GAAgB,IAAIiT,QAAJ,+BAAhB;EACA,YAAKpB,IAAL,GAAY,IAAIgB,IAAJ,+BAAZ;EACA,YAAK1O,OAAL,GAAe,IAAIoS,OAAJ,+BAAf;EACA,YAAKjY,MAAL,GAAc,IAAIwX,MAAJ,+BAAd;EACA,YAAK5Q,IAAL,GAAY,IAAIuR,IAAJ,+BAAZ;EACA,YAAKpY,OAAL,GAAe,IAAIwY,OAAJ,+BAAf;EACA,YAAK1X,OAAL,GAAe,IAAIib,OAAJ,+BAAf;EACH,KAhBD,MAgBO;EACH,YAAK7Y,MAAL,GAAc,IAAIgZ,MAAJ,+BAAd;EACH;;EAEDlN,IAAAA,EAAE,IAAI,CAAN;EACA,UAAKA,EAAL,GAAUA,EAAV;EACAnM,IAAAA,SAAS,CAAC5R,IAAV;EAjCgB;EAkCnB;;;;aA0GD,mBAA2B;EAAA,UAAnBqrB,UAAmB,uEAAN,IAAM;EACvB,WAAKna,MAAL,CAAY8E,OAAZ;EACA,WAAKjE,QAAL,CAAciE,OAAd,CAAsBqV,UAAtB;EACAzZ,MAAAA,SAAS,CAAC0Z,MAAV,CAAiB1Z,SAAS,CAAC1L,OAAV,CAAkB,IAAlB,CAAjB,EAA0C,CAA1C;EACA,WAAK+jB,SAAL,GAAiB,IAAjB;EACA,WAAKlV,IAAL,CAAU,SAAV;EACH;;;WA9GD,eAAuB;EACnB,aAAOnD,SAAP;EACH;;;WAED,eAAqB;EACjB,aAAO,QAAP;EACH;;;WAED,eAAiB;EACb,aAAO,eAAP;EACH;;;WAED,eAAoB;EAChB,aAAO6D,MAAP;EACH;;;WAED,eAAmB;EACf,aAAO2S,KAAP;EACH;;;WAED,eAAoB;EAChB,aAAOgD,MAAP;EACH;;;WAED,eAAqB;EACjB,aAAOzrB,OAAP;EACH;;;WAED,eAAuB;EACnB,aAAOwrB,SAAP;EACH;;;WAED,eAAoB;EAChB,aAAOA,SAAS,CAAC7Z,MAAjB;EACH;;;WAED,eAAkB;EACd,aAAOI,QAAQ,CAAChE,IAAhB;EACH;;;WAED,eAAoB;EAChB,aAAO;EACHI,QAAAA,SAAS,EAAE,YADR;EAEHjF,QAAAA,GAAG,EAAE,EAFF;EAGHkF,QAAAA,MAAM,EAAE,EAHL;EAIHC,QAAAA,KAAK,EAAE,EAJJ;EAKHC,QAAAA,KAAK,EAAE,MALJ;EAMHE,QAAAA,MAAM,EAAE,GANL;EAOHC,QAAAA,MAAM,EAAE,KAPL;EAQHC,QAAAA,KAAK,EAAE,KARJ;EASHC,QAAAA,QAAQ,EAAE,KATP;EAUHC,QAAAA,QAAQ,EAAE,KAVP;EAWHC,QAAAA,QAAQ,EAAE,KAXP;EAYHC,QAAAA,IAAI,EAAE,KAZH;EAaHC,QAAAA,IAAI,EAAE,KAbH;EAcHC,QAAAA,MAAM,EAAE,KAdL;EAeHC,QAAAA,YAAY,EAAE,KAfX;EAgBHC,QAAAA,WAAW,EAAE,KAhBV;EAiBHC,QAAAA,UAAU,EAAE,KAjBT;EAkBHC,QAAAA,OAAO,EAAE,KAlBN;EAmBHC,QAAAA,MAAM,EAAE,IAnBL;EAoBHC,QAAAA,GAAG,EAAE,KApBF;EAqBHC,QAAAA,KAAK,EAAE,IArBJ;EAsBHC,QAAAA,KAAK,EAAE,KAtBJ;EAuBHC,QAAAA,QAAQ,EAAE,IAvBP;EAwBHC,QAAAA,UAAU,EAAE,KAxBT;EAyBHC,QAAAA,aAAa,EAAE,KAzBZ;EA0BHC,QAAAA,cAAc,EAAE,KA1Bb;EA2BHC,QAAAA,eAAe,EAAE,KA3Bd;EA4BHC,QAAAA,UAAU,EAAE,KA5BT;EA6BHC,QAAAA,aAAa,EAAE,KA7BZ;EA8BHC,QAAAA,cAAc,EAAE,KA9Bb;EA+BHC,QAAAA,MAAM,EAAE,KA/BL;EAgCHG,QAAAA,MAAM,EAAE,EAhCL;EAiCHC,QAAAA,WAAW,EAAE,EAjCV;EAkCHC,QAAAA,QAAQ,EAAE,EAlCP;EAmCHG,QAAAA,OAAO,EAAE,EAnCN;EAoCHE,QAAAA,SAAS,EAAE,EApCR;EAqCHT,QAAAA,OAAO,EAAE,EArCN;EAsCHC,QAAAA,SAAS,EAAE,EAtCR;EAuCHyb,QAAAA,QAAQ,EAAE,EAvCP;EAwCHhb,QAAAA,UAAU,EAAE;EACR1H,UAAAA,GAAG,EAAE,EADG;EAER2H,UAAAA,MAAM,EAAE,EAFA;EAGR1K,UAAAA,KAAK,EAAE,GAHC;EAIRH,UAAAA,MAAM,EAAE,EAJA;EAKR8K,UAAAA,MAAM,EAAE;EALA,SAxCT;EA+CHC,QAAAA,QAAQ,EAAE;EACN7H,UAAAA,GAAG,EAAE,EADC;EAENrF,UAAAA,KAAK,EAAE,EAFD;EAGNmN,UAAAA,QAAQ,EAAE,OAHJ;EAINC,UAAAA,SAAS,EAAE;EAJL,SA/CP;EAqDHC,QAAAA,aAAa,EAAE;EACXZ,UAAAA,QAAQ,EAAE,KADC;EAEXub,UAAAA,OAAO,EAAEpD,QAAA,GAAiB,MAAjB,GAA0B;EAFxB,SArDZ;EAyDHtX,QAAAA,KAAK,EAAE,EAzDJ;EA0DHC,QAAAA,UAAU,EAAE,EA1DT;EA2DH7C,QAAAA,IAAI,EAAE/M,SAAS,CAACiT,QAAV,CAAmBrL,WAAnB;EA3DH,OAAP;EA6DH;;;;IA3IkCpJ;EAuJvC8rB,OAAO,CAAClB,GAAR,CACI,iDADJ,EAEI,kCAFJ,EAGI,kCAHJ,EAII,EAJJ;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/inherits.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/typeof.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/construct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/lightMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/light.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n light: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, 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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$undercover = this.query('.art-undercover');\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n if (this.$info) {\n addClass(this.$info, 'art-backdrop-filter');\n }\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(remove) {\n if (remove) {\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.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle();\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n if (player.playing) {\n player.play();\n } else {\n player.pause();\n }\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n value() {\n const promise = $video.play();\n\n if (promise.then) {\n promise.then().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter((item) => item !== art)\n .forEach((item) => {\n item.player.pause();\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n value() {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n value() {\n if (player.playing) {\n player.pause();\n } else {\n player.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play();\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { def, getStyle, setStyle } from '../utils';\n\nexport default function lightMix(art, player) {\n const { $undercover } = art.template;\n\n def(player, 'light', {\n get() {\n return getStyle($undercover, 'display', false) !== 'none';\n },\n set(value) {\n setStyle($undercover, 'display', value ? 'block' : 'none');\n art.emit('light', value);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 lightMix from './lightMix';\nimport miniMix from './miniMix';\nimport loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n lightMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
${item.name}
`).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play();\n });\n\n proxy($pause, 'click', () => {\n player.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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle();\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle();\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __VERSION__',\n };\n}\n","export default function light(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: i18n.get('Light Off'),\n click: contextmenu => {\n player.light = !player.light;\n contextmenu.show = false;\n },\n mounted: $menu => {\n art.on('light', value => {\n $menu.innerText = i18n.get(value ? 'Light On' : 'Light Off');\n });\n },\n };\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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport info from './info';\nimport version from './version';\nimport light from './light';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n light({\n disable: !option.light,\n name: 'light',\n index: 50,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle();\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Rotate')}: 0°\n
\n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

${escape(msg)}

`);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n light: false,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["setPrototypeOf","assertThisInitialized","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","light","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","prototypes","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$undercover","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","playing","play","pause","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pauseMix","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","paused","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","lightMix","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","superPropBase","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","$track","textTracks","textTrack","activeCues","val","activeCue","opt","subUrl","kind","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","removeHtml","splice","switcher","preload","console"],"mappings":"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"} \ No newline at end of file diff --git a/packages/artplayer-plugin-gif/.npmignore b/packages/artplayer-plugin-gif/.npmignore deleted file mode 100644 index 429145126..000000000 --- a/packages/artplayer-plugin-gif/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -node_modules -.DS_Store -yarn.lock -package-lock.json -test -coverage -.nyc_output -.cache -docs \ No newline at end of file diff --git a/packages/artplayer-plugin-gif/.npmrc b/packages/artplayer-plugin-gif/.npmrc deleted file mode 100644 index 9cf949503..000000000 --- a/packages/artplayer-plugin-gif/.npmrc +++ /dev/null @@ -1 +0,0 @@ -package-lock=false \ No newline at end of file diff --git a/packages/artplayer-plugin-gif/README.md b/packages/artplayer-plugin-gif/README.md deleted file mode 100644 index 6991cd399..000000000 --- a/packages/artplayer-plugin-gif/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# artplayer-plugin-gif - -Gif plugin for ArtPlayer, use [gifshot](https://github.com/yahoo/gifshot) as a dependency - -## Demo - -[Checkout the demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-gif.js&example=gif) from Github Pages - -## Install - -Install with `npm` - -```bash -$ npm install artplayer-plugin-gif -``` - -Or install with `yarn` - -```bash -$ yarn add artplayer-plugin-gif -``` - -```js -import artplayerPluginGif from 'artplayer-plugin-gif'; -``` - -Or umd builds are also available - -```html - -``` - -Will expose the global variable to `window.artplayerPluginGif`. - -## Usage - -This will add a button called "GIF" in the bottom control bar. - -```js -var art = new Artplayer({ - container: '.artplayer-app', - url: 'path/to/video.mp4', - controls: [ - { - name: 'gif', - position: 'right', - html: '创建GIF', - mounted: $gif => { - art.plugins.artplayerPluginGif.attach($gif); - }, - }, - ], - plugins: [artplayerPluginGif], -}); -``` - -Or can be called via api - -```js -art.plugins.artplayerPluginGif.create( - { - // some configuration - // https://github.com/yahoo/gifshot#options - }, - function(imageUrl) { - console.log(imageUrl); - }, -); -``` - -## License - -MIT © [Harvey Zack](https://sleepy.im/) diff --git a/packages/artplayer-plugin-gif/dist/artplayer-plugin-gif.js b/packages/artplayer-plugin-gif/dist/artplayer-plugin-gif.js deleted file mode 100644 index 3489582eb..000000000 --- a/packages/artplayer-plugin-gif/dist/artplayer-plugin-gif.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-plugin-gif.js v3.5.31 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2021 Harvey Zack - * Released under the MIT License. - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).artplayerPluginGif=t()}(this,(function(){"use strict";var e=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function t(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t((function(e,t){!function(t,r,i,n){var o,a,s={URL:t.URL||t.webkitURL||t.mozURL||t.msURL,getUserMedia:(a=i.getUserMedia||i.webkitGetUserMedia||i.mozGetUserMedia||i.msGetUserMedia,a?a.bind(i):a),requestAnimFrame:t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame,requestTimeout:function(e,t){if(e=e||s.noop,t=t||0,!s.requestAnimFrame)return setTimeout(e,t);var r=(new Date).getTime(),i=new Object,n=s.requestAnimFrame;return i.value=n((function o(){(new Date).getTime()-r>=t?e.call():i.value=n(o)})),i},Blob:t.Blob||t.BlobBuilder||t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder,btoa:(o=t.btoa||function(e){for(var t="",r=0,i=e.length,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o=void 0,a=void 0,s=void 0,c=void 0,d=void 0,l=void 0,u=void 0;r>2,d=(3&o)<<4|(a=e.charCodeAt(r++))>>4,l=(15&a)<<2|(s=e.charCodeAt(r++))>>6,u=63&s,isNaN(a)?l=u=64:isNaN(s)&&(u=64),t=t+n.charAt(c)+n.charAt(d)+n.charAt(l)+n.charAt(u);return t},o?o.bind(t):s.noop),isObject:function(e){return e&&"[object Object]"===Object.prototype.toString.call(e)},isEmptyObject:function(e){return s.isObject(e)&&!Object.keys(e).length},isArray:function(e){return e&&Array.isArray(e)},isFunction:function(e){return e&&"function"==typeof e},isElement:function(e){return e&&1===e.nodeType},isString:function(e){return"string"==typeof e||"[object String]"===Object.prototype.toString.call(e)},isSupported:{canvas:function(){var e=r.createElement("canvas");return e&&e.getContext&&e.getContext("2d")},webworkers:function(){return t.Worker},blob:function(){return s.Blob},Uint8Array:function(){return t.Uint8Array},Uint32Array:function(){return t.Uint32Array},videoCodecs:function(){var e=r.createElement("video"),t={mp4:!1,h264:!1,ogv:!1,ogg:!1,webm:!1};try{e&&e.canPlayType&&(t.mp4=""!==e.canPlayType('video/mp4; codecs="mp4v.20.8"'),t.h264=""!==(e.canPlayType('video/mp4; codecs="avc1.42E01E"')||e.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')),t.ogv=""!==e.canPlayType('video/ogg; codecs="theora"'),t.ogg=""!==e.canPlayType('video/ogg; codecs="theora"'),t.webm=-1!==e.canPlayType('video/webm; codecs="vp8, vorbis"'))}catch(e){}return t}()},noop:function(){},each:function(e,t){var r=void 0,i=void 0;if(s.isArray(e))for(r=-1,i=e.length;++r0&&arguments[0]!==n?arguments[0]:{};if(!r.body||!1===e.resizeFont)return e.fontSize;var t=e.text,i=e.gifWidth,o=parseInt(e.fontSize,10),a=parseInt(e.minFontSize,10),s=r.createElement("div"),c=r.createElement("span");for(s.setAttribute("width",i),s.appendChild(c),c.innerHTML=t,c.style.fontSize=o+"px",c.style.textIndent="-9999px",c.style.visibility="hidden",r.body.appendChild(c);c.offsetWidth>i&&o>=a;)c.style.fontSize=--o+"px";return r.body.removeChild(c),o+"px"},webWorkerError:!1},c=Object.freeze({default:s}),d={validate:function(e){e=s.isObject(e)?e:{};var t={};return s.each(d.validators,(function(r,i){var n=i.errorCode;if(!e[n]&&!i.condition)return(t=i).error=!0,!1})),delete t.condition,t},isValid:function(e){var t=!0!==d.validate(e).error;return t},validators:[{condition:s.isFunction(s.getUserMedia),errorCode:"getUserMedia",errorMsg:"The getUserMedia API is not supported in your browser"},{condition:s.isSupported.canvas(),errorCode:"canvas",errorMsg:"Canvas elements are not supported in your browser"},{condition:s.isSupported.webworkers(),errorCode:"webworkers",errorMsg:"The Web Workers API is not supported in your browser"},{condition:s.isFunction(s.URL),errorCode:"window.URL",errorMsg:"The window.URL API is not supported in your browser"},{condition:s.isSupported.blob(),errorCode:"window.Blob",errorMsg:"The window.Blob File API is not supported in your browser"},{condition:s.isSupported.Uint8Array(),errorCode:"window.Uint8Array",errorMsg:"The window.Uint8Array function constructor is not supported in your browser"},{condition:s.isSupported.Uint32Array(),errorCode:"window.Uint32Array",errorMsg:"The window.Uint32Array function constructor is not supported in your browser"}],messages:{videoCodecs:{errorCode:"videocodec",errorMsg:"The video codec you are trying to use is not supported in your browser"}}},l=Object.freeze({default:d}),u=function(){},f={sampleInterval:10,numWorkers:2,filter:"",gifWidth:200,gifHeight:200,interval:.1,numFrames:10,frameDuration:1,keepCameraOn:!1,images:[],video:null,webcamVideoElement:null,cameraStream:null,text:"",fontWeight:"normal",fontSize:"16px",minFontSize:"10px",resizeFont:!1,fontFamily:"sans-serif",fontColor:"#ffffff",textAlign:"center",textBaseline:"bottom",textXCoordinate:null,textYCoordinate:null,progressCallback:u,completeCallback:u,saveRenderingContexts:!1,savedRenderingContexts:[],crossOrigin:"Anonymous"},g=Object.freeze({default:f});function m(){return d.isValid()}function h(){var e,t,r,i,n,o=256,a=499,s=491,c=487,d=503,l=3*d,u=o-1,f=4,g=100,m=16,h=1<>v,w=h<>3,S=6,C=1<>1,t=c+1;t>1,t=c+1;t<256;t++)R[t]=u}function L(){var n,o,u,m,h,p,v,b,w,y,C,k,W,A;for(r>S)<=1&&(v=0),n=0;n=A&&(W-=r),0===y&&(y=1),++n%y==0)for(b-=b/e,(v=(p-=p/O)>>S)<=1&&(v=0),o=0;o=0;)i=d?i=o:(i++,s<0&&(s=-s),(c=l[0]-e)<0&&(c=-c),(s+=c)=0&&((s=t-(l=n[a])[1])>=d?a=-1:(a--,s<0&&(s=-s),(c=l[0]-e)<0&&(c=-c),(s+=c)>=f,n[e][1]>>=f,n[e][2]>>=f,n[e][3]=e}function B(e,t,r,i,a){var s,c,d,l,u,f,g;for((d=t-e)<-1&&(d=-1),(l=t+e)>o&&(l=o),s=t+1,c=t-1,f=1;sd;){if(u=M[f++],sd){g=n[c--];try{g[0]-=u*(g[0]-r)/T|0,g[1]-=u*(g[1]-i)/T|0,g[2]-=u*(g[2]-a)/T|0}catch(e){}}}}function D(e,t,r,i,o){var a=n[t],s=e/F;a[0]-=s*(a[0]-r)|0,a[1]-=s*(a[1]-i)|0,a[2]-=s*(a[2]-o)|0}function N(e,t,r){var i,a,s,c,d,l,u,g,h,y;for(h=g=~(1<<31),u=l=-1,i=0;i>m-f))>v,j[i]-=d,U[i]+=d<65535||r>65535)throw"Width/Height invalid.";e[o++]=71,e[o++]=73,e[o++]=70,e[o++]=56,e[o++]=57,e[o++]=97;if(e[o++]=255&t,e[o++]=t>>8&255,e[o++]=255&r,e[o++]=r>>8&255,e[o++]=0|(null!==s?128:0),e[o++]=0,e[o++]=0,null!==a){if(a<0||a>65535)throw"Loop count invalid.";e[o++]=33,e[o++]=255,e[o++]=11,e[o++]=78,e[o++]=69,e[o++]=84,e[o++]=83,e[o++]=67,e[o++]=65,e[o++]=80,e[o++]=69,e[o++]=50,e[o++]=46,e[o++]=48,e[o++]=3,e[o++]=1,e[o++]=255&a,e[o++]=a>>8&255,e[o++]=0}var c=!1;this.addFrame=function(t,r,i,a,d,l){if(!0===c&&(--o,c=!1),l=l===n?{}:l,t<0||r<0||t>65535||r>65535)throw"x/y invalid.";if(i<=0||a<=0||i>65535||a>65535)throw"Width/Height invalid.";if(d.length256||t&t-1)throw"Invalid code/color length, must be power of 2 and 2 .. 256.";return t}(f),m=0;g>>=1;)++m;g=1<3)throw"Disposal out of range.";var v=!1,b=0;if(l.transparent!==n&&null!==l.transparent&&(v=!0,(b=l.transparent)<0||b>=g))throw"Transparent color index.";if((0!==p||v||0!==h)&&(e[o++]=33,e[o++]=249,e[o++]=4,e[o++]=p<<2|(!0===v?1:0),e[o++]=255&h,e[o++]=h>>8&255,e[o++]=b,e[o++]=0),e[o++]=44,e[o++]=255&t,e[o++]=t>>8&255,e[o++]=255&r,e[o++]=r>>8&255,e[o++]=255&i,e[o++]=i>>8&255,e[o++]=255&a,e[o++]=a>>8&255,e[o++]=!0===u?128|m-1:0,!0===u)for(var w=0,y=f.length;w>16&255,e[o++]=S>>8&255,e[o++]=255&S}o=function(e,t,r,i){e[t++]=r;var o=t++,a=1<=r;)e[t++]=255&f,f>>=8,u-=8,t===o+256&&(e[o]=255,o=t++)}function m(e){f|=e<=8;)e[t++]=255&f,f>>=8,u-=8,t===o+256&&(e[o]=255,o=t++);4096===d?(m(a),d=c+1,l=r+1,p={}):(d>=1<0&&arguments[0]!==n?arguments[0]:{},r=e.data;delete s.data,s.pixels=Array.prototype.slice.call(r.pixels),s.palette=Array.prototype.slice.call(r.palette),s.done=!0,s.beingProcessed=!1,t.freeWorker(c),t.onFrameFinished(i)};(s=a[e]).beingProcessed||s.done?this.onFrameFinished():(s.sampleInterval=o,s.beingProcessed=!0,s.gifshot=!0,(c=this.getWorker())?(c.onmessage=d,c.postMessage(s)):d({data:t.workerMethods.run(s)}))},startRendering:function(e){this.onRenderCompleteCallback=e;for(var t=0;t=0&&this.processFrame(e)},generateGIF:function(e,t){var r=[],i={loop:this.repeat},n=this.options,o=n.interval,a=n.frameDuration,c=!!n.images.length,d=n.gifHeight,l=n.gifWidth,u=new v(r,l,d,i),f=this.onRenderProgressCallback,g=c?100*o:0,m=void 0;this.generatingGIF=!0,s.each(e,(function(t,r){var i=r.palette;f(.75+.25*r.position*1/e.length);for(var n=0;n0&&arguments[0]!==n?arguments[0]:{},t=this.frames,r=e.data;this.frames.push({data:r,width:e.width,height:e.height,palette:null,dithering:null,done:!1,beingProcessed:!1,position:t.length})},onRenderProgress:function(e){this.onRenderProgressCallback=e},isRendering:function(){return this.generatingGIF},getBase64GIF:function(e){var t=this;t.startRendering((function(r){t.destroyWorkers(),s.requestTimeout((function(){e(r)}),0)}))},destroyWorkers:function(){if(!this.workerError){var e=this.workers;s.each(e,(function(e,t){var r=t.worker,i=t.objectUrl;r.terminate(),s.URL.revokeObjectURL(i)}))}}};var S=function(){},C=function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=arguments[1];t=s.isFunction(t)?t:S;var i=r.createElement("canvas"),o=void 0,a=e.images,c=!!a.length,d=e.cameraStream,l=e.crop,u=e.filter,f=e.fontColor,g=e.fontFamily,m=e.fontWeight,h=e.keepCameraOn,p=(e.numWorkers,e.progressCallback),v=e.saveRenderingContexts,b=e.savedRenderingContexts,y=e.text,C=e.textAlign,x=e.textBaseline,O=e.videoElement,k=e.videoHeight,F=e.videoWidth,W=e.webcamVideoElement,E=Number(e.gifWidth),A=Number(e.gifHeight),T=Number(e.interval),R=(Number(e.sampleInterval),c?0:1e3*T),U=[],j=b.length?b.length:e.numFrames,M=j,I=new w(e),P=s.getFontSize(e),V=e.textXCoordinate?e.textXCoordinate:"left"===C?1:"right"===C?E:E/2,L=e.textYCoordinate?e.textYCoordinate:"top"===x?1:"center"===x?A/2:A,H=m+" "+P+" "+g,z=l?Math.floor(l.scaledWidth/2):0,G=l?F-l.scaledWidth:0,B=l?Math.floor(l.scaledHeight/2):0,D=l?k-l.scaledHeight:0,N=function e(){var r=M-1;function i(){var i;v&&U.push(o.getImageData(0,0,E,A)),y&&(o.font=H,o.fillStyle=f,o.textAlign=C,o.textBaseline=x,o.fillText(y,V,L)),i=o.getImageData(0,0,E,A),I.addFrameImageData(i),p((j-(M=r))/j),r>0&&s.requestTimeout(e,R),M||I.getBase64GIF((function(e){t({error:!1,errorCode:"",errorMsg:"",image:e,cameraStream:d,videoElement:O,webcamVideoElement:W,savedRenderingContexts:U,keepCameraOn:h})}))}b.length?(o.putImageData(b[j-M],0,0),i()):function e(){try{G>F&&(G=F),D>k&&(D=k),z<0&&(z=0),B<0&&(B=0),o.filter=u,o.drawImage(O,z,B,G,D,0,0,E,A),i()}catch(t){if("NS_ERROR_NOT_AVAILABLE"!==t.name)throw t;s.requestTimeout(e,100)}}()};j=j!==n?j:10,T=T!==n?T:.1,i.width=E,i.height=A,o=i.getContext("2d"),function e(){b.length||0!==O.currentTime?N():s.requestTimeout(e,100)}()},x=function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.videoWidth,r=e.videoHeight,i=e.gifWidth,o=e.gifHeight,a={width:0,height:0,scaledWidth:0,scaledHeight:0};return t>r?(a.width=Math.round(t*(o/r))-i,a.scaledWidth=Math.round(a.width*(r/o))):(a.height=Math.round(r*(i/t))-o,a.scaledHeight=Math.round(a.height*(t/i))),a},O={loadedData:!1,defaultVideoDimensions:{width:640,height:480},findVideoSize:function e(t){e.attempts=e.attempts||0;var r=t.cameraStream,i=t.completedCallback,n=t.videoElement;n&&(n.videoWidth>0&&n.videoHeight>0?(n.removeEventListener("loadeddata",O.findVideoSize),i({videoElement:n,cameraStream:r,videoWidth:n.videoWidth,videoHeight:n.videoHeight})):e.attempts<10?(e.attempts+=1,s.requestTimeout((function(){O.findVideoSize(t)}),400)):i({videoElement:n,cameraStream:r,videoWidth:O.defaultVideoDimensions.width,videoHeight:O.defaultVideoDimensions.height}))},onStreamingTimeout:function(e){s.isFunction(e)&&e({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - Timed out while trying to start streaming",image:null,cameraStream:{}})},stream:function(e){var t=s.isArray(e.existingVideo)?e.existingVideo[0]:e.existingVideo,r=e.cameraStream,i=e.completedCallback,n=e.streamedCallback,o=e.videoElement;if(s.isFunction(n)&&n(),t){if(s.isString(t))o.src=t,o.innerHTML='';else if(t instanceof Blob){try{o.src=s.URL.createObjectURL(t)}catch(e){}o.innerHTML=''}}else if(o.mozSrcObject)o.mozSrcObject=r;else if(s.URL)try{o.srcObject=r,o.src=s.URL.createObjectURL(r)}catch(e){o.srcObject=r}o.play(),s.requestTimeout((function e(){e.count=e.count||0,!0===O.loadedData?(O.findVideoSize({videoElement:o,cameraStream:r,completedCallback:i}),O.loadedData=!1):(e.count+=1)>10?O.findVideoSize({videoElement:o,cameraStream:r,completedCallback:i}):e()}),0)},startStreaming:function(e){var t=s.isFunction(e.error)?e.error:s.noop,i=s.isFunction(e.streamed)?e.streamed:s.noop,n=s.isFunction(e.completed)?e.completed:s.noop,o=e.crossOrigin,a=e.existingVideo,c=e.lastCameraStream,d=e.options,l=e.webcamVideoElement,u=s.isElement(a)?a:l||r.createElement("video");o&&(u.crossOrigin=d.crossOrigin),u.autoplay=!0,u.loop=!0,u.muted=!0,u.addEventListener("loadeddata",(function(e){O.loadedData=!0,d.offset&&(u.currentTime=d.offset)})),a?O.stream({videoElement:u,existingVideo:a,completedCallback:n}):c?O.stream({videoElement:u,cameraStream:c,streamedCallback:i,completedCallback:n}):s.getUserMedia({video:!0},(function(e){O.stream({videoElement:u,cameraStream:e,streamedCallback:i,completedCallback:n})}),t)},startVideoStreaming:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:{},r=t.timeout!==n?t.timeout:0,i=t.callback,o=t.webcamVideoElement,a=void 0;r>0&&(a=s.requestTimeout((function(){O.onStreamingTimeout(i)}),1e4)),O.startStreaming({error:function(){i({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - the user probably denied permission",image:null,cameraStream:{}})},streamed:function(){clearTimeout(a)},completed:function(){var t=arguments.length>0&&arguments[0]!==n?arguments[0]:{},r=t.cameraStream,i=t.videoElement,o=t.videoHeight,a=t.videoWidth;e({cameraStream:r,videoElement:i,videoHeight:o,videoWidth:a})},lastCameraStream:t.lastCameraStream,webcamVideoElement:o,crossOrigin:t.crossOrigin,options:t})},stopVideoStreaming:function(e){var t=e=s.isObject(e)?e:{},r=t.keepCameraOn,i=t.videoElement,n=t.webcamVideoElement,o=e.cameraStream||{},a=o.getTracks&&o.getTracks()||[],c=!!a.length,d=a[0];!r&&c&&s.isFunction(d.stop)&&d.stop(),s.isElement(i)&&!n&&(i.pause(),s.isFunction(s.URL.revokeObjectURL)&&!s.webWorkerError&&i.src&&s.URL.revokeObjectURL(i.src),s.removeElement(i))}};function k(e){e=s.isObject(e)?e:{},O.stopVideoStreaming(e)}function F(e,t){var i=e.options||{},n=i.images,o=i.video,a=Number(i.gifWidth),c=Number(i.gifHeight),d=(Number(i.numFrames),e.cameraStream),l=e.videoElement,u=e.videoWidth,f=e.videoHeight,g=x({videoWidth:u,videoHeight:f,gifHeight:c,gifWidth:a}),m=t;i.crop=g,i.videoElement=l,i.videoWidth=u,i.videoHeight=f,i.cameraStream=d,s.isElement(l)&&(l.width=a+g.width,l.height=c+g.height,i.webcamVideoElement||(s.setCSSAttr(l,{position:"fixed",opacity:"0"}),r.body.appendChild(l)),l.play(),C(i,(function(e){n&&n.length||o&&o.length||k(e),m(e)})))}function W(e,t){if(t=s.isFunction(e)?e:t,e=s.isObject(e)?e:{},s.isFunction(t)){var i=s.mergeOptions(f,e)||{},o=e.cameraStream,a=i.images,c=a?a.length:0,l=i.video,u=i.webcamVideoElement;i=s.mergeOptions(i,{gifWidth:Math.floor(i.gifWidth),gifHeight:Math.floor(i.gifHeight)}),c?function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.callback,i=e.images,o=e.options,a=e.imagesLength,c={getUserMedia:!0,"window.URL":!0},l=d.validate(c),u=[],f=0,g=void 0,m=void 0;if(l.error)return t(l);function h(){s.each(u,(function(e,t){t&&(t.text?m.addFrame(t.img,o,t.text):m.addFrame(t,o))})),y(m,t)}m=new w(o),s.each(i,(function(e,i){var n=i;i.src&&(n=n.src),s.isElement(n)?(o.crossOrigin&&(n.crossOrigin=o.crossOrigin),u[e]=n,(f+=1)===a&&h()):s.isString(n)&&(g=new Image,o.crossOrigin&&(g.crossOrigin=o.crossOrigin),function(r){i.text&&(r.text=i.text),r.onerror=function(e){var r=void 0;if(0==--a)return(r={}).error="None of the requested images was capable of being retrieved",t(r)},r.onload=function(t){i.text?u[e]={img:r,text:r.text}:u[e]=r,(f+=1)===a&&h(),s.removeElement(r)},r.src=n}(g),s.setCSSAttr(g,{position:"fixed",opacity:"0"}),r.body.appendChild(g))}))}({images:a,imagesLength:c,callback:t,options:i}):l?function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.callback,r=e.existingVideo,i=e.options,o={getUserMedia:!0,"window.URL":!0},a=d.validate(o),c=void 0,l=void 0;if(a.error)return t(a);if(s.isElement(r)&&r.src){if(l=r.src,c=s.getExtension(l),!s.isSupported.videoCodecs[c])return t(d.messages.videoCodecs)}else s.isArray(r)&&s.each(r,(function(e,t){if(c=t instanceof Blob?t.type.substr(t.type.lastIndexOf("/")+1,t.length):t.substr(t.lastIndexOf(".")+1,t.length),s.isSupported.videoCodecs[c])return r=t,!1}));O.startStreaming({completed:function(e){e.options=i||{},F(e,t)},existingVideo:r,crossOrigin:i.crossOrigin,options:i})}({existingVideo:l,callback:t,options:i}):function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.callback,r=e.lastCameraStream,i=e.options,o=e.webcamVideoElement;if(!m())return t(d.validate());i.savedRenderingContexts.length?C(i,(function(e){t(e)})):O.startVideoStreaming((function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{};e.options=i||{},F(e,t)}),{lastCameraStream:r,callback:t,webcamVideoElement:o,crossOrigin:i.crossOrigin})}({lastCameraStream:o,callback:t,webcamVideoElement:u,options:i})}}var E={utils:c,error:l,defaultOptions:g,createGIF:W,takeSnapShot:function(e,t){if(t=s.isFunction(e)?e:t,e=s.isObject(e)?e:{},s.isFunction(t)){var r=s.mergeOptions(f,e);W(s.mergeOptions(r,{interval:.1,numFrames:1,gifWidth:Math.floor(r.gifWidth),gifHeight:Math.floor(r.gifHeight)}),t)}},stopVideoStreaming:k,isSupported:function(){return d.isValid()},isWebCamGIFSupported:m,isExistingVideoGIFSupported:function(e){var t=!1;if(s.isArray(e)&&e.length){if(s.each(e,(function(e,r){s.isSupported.videoCodecs[r]&&(t=!0)})),!t)return!1}else if(s.isString(e)&&e.length&&!s.isSupported.videoCodecs[e])return!1;return d.isValid({getUserMedia:!0})},isExistingImagesGIFSupported:function(){return d.isValid({getUserMedia:!0})},VERSION:"0.4.5"};e.exports=E}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{createElement:function(){}},"undefined"!=typeof window?window.navigator:{})})),i=t((function(e){var t;t=function(){return function(e,t,r){t=t||"",r=r||512;for(var i=atob(e),n=[],o=0;o0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;w=!0,f.show=!0,e.emit("artplayerPluginGif:start"),d.show=c.get("Start creating gif..."),r.createGIF(o(o({},t),{},{video:[v.src],crossOrigin:"anonymous"}),(function(t){if(t.error)d.show=t.errorMsg,n(!1,t.errorMsg);else if("function"==typeof a){var r=t.image.split(",")[1],o=i(r,"image/gif"),s=URL.createObjectURL(o);d.show=c.get("Create gif successfully"),e.emit("artplayerPluginGif",s),a(s)}w=!1,f.show=!1,e.emit("artplayerPluginGif:end")}))}}}})); diff --git a/packages/artplayer-plugin-gif/package.json b/packages/artplayer-plugin-gif/package.json deleted file mode 100644 index 5f61b7bbb..000000000 --- a/packages/artplayer-plugin-gif/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "artplayer-plugin-gif", - "version": "3.5.31", - "expose": "artplayerPluginGif", - "description": "Gif plugin for ArtPlayer", - "main": "dist/artplayer-plugin-gif.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/zhw2590582/ArtPlayer.git" - }, - "keywords": [ - "video", - "player" - ], - "author": "Harvey Zack ", - "license": "MIT", - "bugs": { - "url": "https://github.com/zhw2590582/ArtPlayer/issues" - }, - "homepage": "https://github.com/zhw2590582/ArtPlayer#readme", - "dependencies": { - "b64-to-blob": "^1.2.19", - "blob-util": "^2.0.2", - "gifshot": "^0.4.5" - }, - "gitHead": "5ea211ef738351668e4acace326af4ff6947e2ee" -} diff --git a/packages/artplayer-plugin-gif/src/index.js b/packages/artplayer-plugin-gif/src/index.js deleted file mode 100644 index 89d65e47b..000000000 --- a/packages/artplayer-plugin-gif/src/index.js +++ /dev/null @@ -1,159 +0,0 @@ -import gifshot from 'gifshot'; -import b64toBlob from 'b64-to-blob'; - -function artplayerPluginGif(art) { - const { errorHandle, clamp, downloadFile } = art.constructor.utils; - const { - i18n, - notice, - layers, - player, - loading, - option: { theme, title }, - events: { proxy }, - template: { $video }, - } = art; - - i18n.update({ - 'zh-cn': { - 'Long press, gif length is between 1 second and 10 seconds': '长按,gif 长度为 1 ~ 10 秒', - 'Gif time is too short': 'Gif 时间太短', - 'Start creating gif...': '开始创建 gif...', - 'Create gif successfully': '创建 gif 成功', - 'There is another gif in the processing': '正有另一个 gif 在创建中', - 'Release the mouse to start': '放开鼠标即可开始', - }, - 'zh-tw': { - 'Long press, gif length is between 1 second and 10 seconds': '長按,gif 長度為 1 ~ 10 秒', - 'Gif time is too short': 'Gif 時間太短', - 'Start creating gif...': '開始創建 gif...', - 'Create gif successfully': '創建 gif 成功', - 'There is another gif in the processing': '正有另一個 gif 在創建中', - 'Release the mouse to start': '放開鼠標即可開始', - }, - }); - - let $progress = null; - layers.add( - { - name: 'artplayer-plugin-gif-progress', - style: { - position: 'absolute', - top: '0', - left: '0', - height: '2px', - width: '0%', - 'background-color': theme, - }, - mounted($ref) { - $progress = $ref; - } - }, - ); - - const timeLimit = 10000; - let isProcessing = false; - let pressStartTime = 0; - let progressTimer = null; - let isPress = false; - let offset = 0; - - art.on('destroy', () => { - if (progressTimer) { - clearTimeout(progressTimer); - } - }); - - function cleanTimer() { - $progress.style.width = '0%'; - clearTimeout(progressTimer); - progressTimer = null; - } - - function createGif() { - cleanTimer(); - const pressTime = new Date() - pressStartTime; - if (isProcessing) { - notice.show = i18n.get('There is another gif in the processing'); - } else if (pressTime < 1000) { - notice.show = i18n.get('Gif time is too short'); - } else { - const numFrames = Math.floor(clamp(pressTime, 1000, timeLimit) / 100); - const { videoWidth, videoHeight } = $video; - art.plugins.artplayerPluginGif.create( - { - numFrames, - offset: Math.floor(offset), - gifHeight: 200, - gifWidth: (videoWidth / videoHeight) * 200, - }, - image => { - downloadFile(image, `${title || 'unnamed'}.gif`); - }, - ); - } - } - - return { - name: 'artplayerPluginGif', - attach($gif) { - proxy($gif, 'mousedown', () => { - isPress = true; - cleanTimer(); - offset = player.currentTime; - pressStartTime = new Date(); - notice.show = i18n.get('Long press, gif length is between 1 second and 10 seconds'); - (function loop() { - progressTimer = setTimeout(() => { - const width = parseInt($progress.style.width, 10); - if (width <= 100) { - $progress.style.width = `${width + 1}%`; - loop(); - } else { - notice.show = i18n.get('Release the mouse to start'); - } - }, timeLimit / 100); - })(); - }); - - proxy(document, 'mouseup', () => { - if (isPress) { - isPress = false; - createGif(); - offset = 0; - } - }); - }, - create(config = {}, callback) { - isProcessing = true; - loading.show = true; - art.emit('artplayerPluginGif:start'); - notice.show = i18n.get('Start creating gif...'); - gifshot.createGIF( - { - ...config, - video: [$video.src], - crossOrigin: 'anonymous', - }, - obj => { - if (obj.error) { - notice.show = obj.errorMsg; - errorHandle(false, obj.errorMsg); - } else if (typeof callback === 'function') { - const base64String = obj.image.split(',')[1]; - const blob = b64toBlob(base64String, 'image/gif'); - const blobUrl = URL.createObjectURL(blob); - notice.show = i18n.get('Create gif successfully'); - art.emit('artplayerPluginGif', blobUrl); - callback(blobUrl); - } - isProcessing = false; - loading.show = false; - art.emit('artplayerPluginGif:end'); - }, - ); - }, - }; -} - -export default artplayerPluginGif; diff --git a/packages/artplayer-react/.npmignore b/packages/artplayer-react/.npmignore deleted file mode 100644 index 429145126..000000000 --- a/packages/artplayer-react/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -node_modules -.DS_Store -yarn.lock -package-lock.json -test -coverage -.nyc_output -.cache -docs \ No newline at end of file diff --git a/packages/artplayer-react/.npmrc b/packages/artplayer-react/.npmrc deleted file mode 100644 index 9cf949503..000000000 --- a/packages/artplayer-react/.npmrc +++ /dev/null @@ -1 +0,0 @@ -package-lock=false \ No newline at end of file diff --git a/packages/artplayer-react/README.md b/packages/artplayer-react/README.md deleted file mode 100644 index ae6db6432..000000000 --- a/packages/artplayer-react/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# artplayer-react - -React Component for Artplayer, It is recommended to package itself according to actual business needs. - -## Demo - -[Checkout the demo](https://codesandbox.io/s/n74859y9rl) from Codesandbox - -## Install - -Install with `npm` - -```bash -$ npm install artplayer-react -``` - -Or install with `yarn` - -```bash -$ yarn add artplayer-react -``` - -## Usage - -```js -import ArtplayerComponent from 'artplayer-react'; - -// ... - console.log(ins)} // get the instance -/>; -``` - -## License - -MIT © [Harvey Zack](https://sleepy.im/) diff --git a/packages/artplayer-react/dist/artplayer-react.js b/packages/artplayer-react/dist/artplayer-react.js deleted file mode 100644 index 9a3575ea1..000000000 --- a/packages/artplayer-react/dist/artplayer-react.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-react.js v3.5.31 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2021 Harvey Zack - * Released under the MIT License. - */ - -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ArtplayerReact=e()}(this,(function(){"use strict";var t=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n=0||(o[r]=t[r]);return o};var e=function(e,r){if(null==e)return{};var n,o,i=t(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i};var r=function(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function n(t,e){return t(e={exports:{}},e.exports),e.exports}var o=n((function(t){function e(r){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=e=function(t){return typeof t}:t.exports=e=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(r)}t.exports=e}));var i=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function a(t,e){for(var r=0;rH.length&&H.push(t)}function X(t,e,r,n){var o=typeof t;"undefined"!==o&&"boolean"!==o||(t=null);var i=!1;if(null===t)i=!0;else switch(o){case"string":case"number":i=!0;break;case"object":switch(t.$$typeof){case g:case w:i=!0}}if(i)return r(n,t,""===e?"."+Z(t,0):e),1;if(i=0,e=""===e?".":e+":",Array.isArray(t))for(var a=0;a1?e-1:0),n=1;n2?r-2:0),o=2;o2?r-2:0),o=2;o8)throw new Error("warningWithoutStack() currently supports at most 8 arguments.");if(!t){if("undefined"!=typeof console){var i=n.map((function(t){return""+t}));i.unshift("Warning: "+e),Function.prototype.apply.call(console.error,console,i)}try{var a=0,c="Warning: "+e.replace(/%s/g,(function(){return n[a++]}));throw new Error(c)}catch(t){}}},S={};function R(t,e){var r=t.constructor,n=r&&(r.displayName||r.name)||"ReactClass",o=n+"."+e;S[o]||(P(!1,"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",e,n),S[o]=!0)}var E={isMounted:function(t){return!1},enqueueForceUpdate:function(t,e,r){R(t,"forceUpdate")},enqueueReplaceState:function(t,e,r,n){R(t,"replaceState")},enqueueSetState:function(t,e,r,n){R(t,"setState")}},$={};function C(t,e,r){this.props=t,this.context=e,this.refs=$,this.updater=r||E}Object.freeze($),C.prototype.isReactComponent={},C.prototype.setState=function(t,e){if("object"!=typeof t&&"function"!=typeof t&&null!=t)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")},C.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};var D={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},T=function(t,e){Object.defineProperty(C.prototype,t,{get:function(){j(!1,"%s(...) is deprecated in plain JavaScript React classes. %s",e[0],e[1])}})};for(var A in D)D.hasOwnProperty(A)&&T(A,D[A]);function z(){}function _(t,e,r){this.props=t,this.context=e,this.refs=$,this.updater=r||E}z.prototype=C.prototype;var L=_.prototype=new z;L.constructor=_,e(L,C.prototype),L.isPureReactComponent=!0;var M={current:null},I={current:null},q=/^(.*)[\\\/]/;function F(t){if(null==t)return null;if("number"==typeof t.tag&&P(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),"function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case a:return"Fragment";case i:return"Portal";case l:return"Profiler";case c:return"StrictMode";case d:return"Suspense";case y:return"SuspenseList"}if("object"==typeof t)switch(t.$$typeof){case u:return"Context.Consumer";case s:return"Context.Provider";case p:return n=t,o=t.render,f="ForwardRef",v=o.displayName||o.name||"",n.displayName||(""!==v?f+"("+v+")":f);case h:return F(t.type);case m:var e=1===(r=t)._status?r._result:null;if(e)return F(e)}var r,n,o,f,v;return null}var N={},W=null;function V(t){W=t}N.getCurrentStack=null,N.getStackAddendum=function(){var t="";if(W){var e=F(W.type),r=W._owner;t+=function(t,e,r){var n="";if(e){var o=e.fileName,i=o.replace(q,"");if(/^index\./.test(i)){var a=o.match(q);if(a){var c=a[1];c&&(i=c.replace(q,"")+"/"+i)}}n=" (at "+i+":"+e.lineNumber+")"}else r&&(n=" (created by "+r+")");return"\n in "+(t||"Unknown")+n}(e,W._source,r&&F(r.type))}var n=N.getCurrentStack;return n&&(t+=n()||""),t};var U={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:I,IsSomeRendererActing:{current:!1},assign:e};e(U,{ReactDebugCurrentFrame:N,ReactComponentTreeHook:{}});var H,B,Y=function(t,e){if(!t){for(var r=U.ReactDebugCurrentFrame,n=r.getStackAddendum(),o=arguments.length,i=new Array(o>2?o-2:0),a=2;a1){for(var u=Array(s),f=0;f1){for(var d=Array(p),y=0;y.")}return e}(e);if(!Ot[r]){Ot[r]=!0;var n="";t&&t._owner&&t._owner!==I.current&&(n=" It was passed a child from "+F(t._owner.type)+"."),V(t),Y(!1,'Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',r,n),V(null)}}}function jt(t,e){if("object"==typeof t)if(Array.isArray(t))for(var r=0;r",i=" Did you accidentally export a JSX literal instead of a component?"):c=typeof t,Y(!1,"React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",c,i)}var s=et.apply(this,arguments);if(null==s)return s;if(n)for(var u=2;u is not supported and will be removed in a future major release. Did you mean to render instead?")),r.Provider},set:function(t){r.Provider=t}},_currentValue:{get:function(){return r._currentValue},set:function(t){r._currentValue=t}},_currentValue2:{get:function(){return r._currentValue2},set:function(t){r._currentValue2=t}},_threadCount:{get:function(){return r._threadCount},set:function(t){r._threadCount=t}},Consumer:{get:function(){return n||(n=!0,Y(!1,"Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),r.Consumer}}}),r.Consumer=i,r._currentRenderer=null,r._currentRenderer2=null,r},forwardRef:function(t){return null!=t&&t.$$typeof===h?P(!1,"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof t?P(!1,"forwardRef requires a render function but was given %s.",null===t?"null":typeof t):0!==t.length&&2!==t.length&&P(!1,"forwardRef render functions accept exactly two parameters: props and ref. %s",1===t.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=t&&(null!=t.defaultProps||null!=t.propTypes)&&P(!1,"forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"),{$$typeof:p,render:t}},lazy:function(t){var e,r,n={$$typeof:m,_ctor:t,_status:-1,_result:null};return Object.defineProperties(n,{defaultProps:{configurable:!0,get:function(){return e},set:function(t){Y(!1,"React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),e=t,Object.defineProperty(n,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return r},set:function(t){Y(!1,"React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),r=t,Object.defineProperty(n,"propTypes",{enumerable:!0})}}}),n},memo:function(t,e){return bt(t)||P(!1,"memo: The first argument must be a component. Instead received: %s",null===t?"null":typeof t),{$$typeof:h,type:t,compare:void 0===e?null:e}},useCallback:function(t,e){return gt().useCallback(t,e)},useContext:function(t,e){var r=gt();if(void 0!==e&&Y(!1,"useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",e,"number"==typeof e&&Array.isArray(arguments[2])?"\n\nDid you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks":""),void 0!==t._context){var n=t._context;n.Consumer===t?Y(!1,"Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):n.Provider===t&&Y(!1,"Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return r.useContext(t,e)},useEffect:function(t,e){return gt().useEffect(t,e)},useImperativeHandle:function(t,e,r){return gt().useImperativeHandle(t,e,r)},useDebugValue:function(t,e){return gt().useDebugValue(t,e)},useLayoutEffect:function(t,e){return gt().useLayoutEffect(t,e)},useMemo:function(t,e){return gt().useMemo(t,e)},useReducer:function(t,e,r){return gt().useReducer(t,e,r)},useRef:function(t){return gt().useRef(t)},useState:function(t){return gt().useState(t)},Fragment:a,Profiler:l,StrictMode:c,Suspense:d,createElement:Rt,cloneElement:function(t,e,r){for(var n=rt.apply(this,arguments),o=2;o1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function wt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function xt(t,e){return t.classList.add(e)}function Ot(t,e){return t.classList.remove(e)}function kt(t,e){return t.classList.contains(e)}function jt(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function Pt(t){return t.parentNode.removeChild(t)}function St(t,e,r){return t.style[e]=r,t}function Rt(t,e){return Object.keys(e).forEach((function(r){St(t,r,e[r])})),t}function Et(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function $t(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function Ct(t,e){$t(t).forEach((function(t){return Ot(t,e)})),xt(t,e)}function Dt(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";mt||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function Tt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function At(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}var zt=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")};var _t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}},Lt=n((function(t){function e(r,n,o){return _t()?t.exports=e=Reflect.construct:t.exports=e=function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&l(o,r.prototype),o},e.apply(null,arguments)}t.exports=e}));function Mt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var It=function(t){s(r,t);var e=Mt(r);function r(t,n){var o;return i(this,r),o=e.call(this,t),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(u(o),n||o.constructor),o.name="ArtPlayerError",o}return r}(n((function(t){function e(r){var n="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!zt(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return Lt(t,arguments,p(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),l(e,t)},e(r)}t.exports=e}))(Error));function qt(t,e){if(!t)throw new It(e);return t}function Ft(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function Nt(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function Wt(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function Vt(t){return t.includes("?")?Vt(t.split("?")[0]):t.includes("#")?Vt(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function Ut(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}var Ht=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function ne(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),l=0;l0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function ae(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var ce=Object.freeze({__proto__:null,query:gt,queryAll:wt,addClass:xt,removeClass:Ot,hasClass:kt,append:jt,remove:Pt,setStyle:St,setStyles:Rt,getStyle:Et,sublings:$t,inverseClass:Ct,tooltip:Dt,isInViewport:Tt,includeFromEvent:At,ArtPlayerError:It,errorHandle:qt,srtToVtt:Ft,vttToBlob:Nt,assToVtt:Wt,getExt:Vt,download:Ut,def:Qt,has:Kt,proxyPropertys:te,mergeDeep:ee,sleep:re,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(e.userAgent);case"regexp":return t.test(e.userAgent);default:return!1}}))},we=function(){function t(e){var r=this;i(this,t),this.art=e,e.option.container instanceof Element?this.$container=e.option.container:(this.$container=gt(e.option.container),qt(this.$container,"No container element found by ".concat(e.option.container))),qt(e.constructor.instances.every((function(t){return t.template.$container!==r.$container})),"Cannot mount multiple instances on the same dom element"),e.whitelist.state?this.desktop():this.mobile()}return c(t,[{key:"query",value:function(t){return gt(t,this.$container)}},{key:"desktop",value:function(){var e=this.art.option,r=e.backdrop,n=e.theme;e.useSSR||(this.$container.innerHTML=t.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(xt(this.$settingInner,"art-backdrop-filter"),xt(this.$contextmenu,"art-backdrop-filter"),this.$info&&xt(this.$info,"art-backdrop-filter")),this.art.isMobile&&xt(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":xt(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),t}(),xe={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},Oe={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},ke=function(){function t(e){i(this,t),this.art=e,this.languages={"zh-cn":xe,"zh-tw":Oe},this.init()}return c(t,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=ee(this.languages,t),this.init()}}]),t}();var je=n((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var y=d*s/l;St(n,"width","".concat(100*y,"%")),St(n,"height","100%"),St(n,"padding","0 ".concat((u-u*y)/2,"px"))}else{var h=l/d/s;St(n,"width","100%"),St(n,"height","".concat(100*h,"%")),St(n,"padding","".concat((f-f*h)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),Qt(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(e,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");Qt(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),Qt(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),Qt(e,"screenshot",{value:function(){e.getDataURL().then((function(e){Ut(e,"".concat(r.title||"artplayer","_").concat(ie(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(e,this),Pe(e,this),function(t,e){var r=t.template.$player;Qt(e,"fullscreenWeb",{get:function(){return kt(r,"art-fullscreen-web")},set:function(n){n?(xt(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(Ot(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),Qt(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(e,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;Qt(e,"fullscreenRotate",{get:function(){return kt(n,"art-fullscreen-rotate")},set:function(r){if(r){xt(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,l=o.clientHeight,s=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(e,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;Qt(e,"autoSize",{get:function(){return kt(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,l=n.getBoundingClientRect(),s=l.width,u=l.height,f=a/c,p=s/u;if(xt(n,"art-auto-size"),p>f)St(o,"width","".concat(u*f/s*100,"%")),St(o,"height","100%");else{var d=s/f/u*100;St(o,"width","100%"),St(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else Ot(n,"art-auto-size"),St(o,"width",null),St(o,"height",null),t.emit("autoSize")}})}(e,this),function(t,e){Qt(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){Qt(e,t,{get:function(){return e.rect[t]}})})),Qt(e,"x",{get:function(){return e.left+window.pageXOffset}}),Qt(e,"y",{get:function(){return e.top+window.pageYOffset}})}(e,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;Qt(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];qt(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),Qt(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(e,this),function(t,e){var r=t.template.$undercover;Qt(e,"light",{get:function(){return"none"!==Et(r,"display",!1)},set:function(e){St(r,"display",e?"block":"none"),t.emit("light",e)}})}(e,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,l=a.$miniClose,s=a.$miniTitle,u=a.$miniHeader,f="",p=!1,d=0,y=0,h=0,m=0;i(u,"mousedown",(function(t){p=!0,d=t.pageX,y=t.pageY,h=e.left,m=e.top})),i(document,"mousemove",(function(t){if(p){xt(c,"art-is-dragging");var e=m+t.pageY-y,r=h+t.pageX-d;St(c,"top","".concat(e,"px")),St(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){p=!1,Ot(c,"art-is-dragging")})),i(l,"click",(function(){e.mini=!1,p=!1,Ot(c,"art-is-dragging")})),jt(s,n.title||r.get("Mini player")),Qt(e,"mini",{get:function(){return kt(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,f=c.style.cssText,xt(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)St(c,"top","".concat(i,"px")),St(c,"left","".concat(a,"px")),Tt(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var l=document.body,s=l.clientHeight-e.height-50,p=l.clientWidth-e.width-50;o.set("top",s),o.set("left",p),St(c,"top","".concat(s,"px")),St(c,"left","".concat(p,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=f,Ot(c,"art-mini"),St(c,"top",null),St(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),Qt(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(e,this),function(t,e){var r=[];Qt(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=oe(n[0],0,Math.min(n[1],e.duration)),i=oe(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(e,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;Qt(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(qt(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,St(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var l=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},s=0,u=1;switch(r){case-270:s=90,u=l();break;case-180:s=180;break;case-90:s=270,u=l();break;case 90:s=90,u=l();break;case 180:s=180;break;case 270:s=270,u=l()}St(n,"transform","rotate(".concat(s,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),Qt(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(e,this),function(t,e){var r=t.option,n=t.template.$poster;Qt(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,St(n,"backgroundImage","url(".concat(t,")"))}})}(e,this),te(e,this)};var Ee=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=p(t)););return t},$e=n((function(t){function e(r,n,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,r){var n=Ee(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(r):o.value}},e(r,n,o||r)}t.exports=e})),Ce=function(){function t(e){i(this,t),this.id=0,this.art=e,this.add=this.add.bind(this)}return c(t,[{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);qt(!Kt(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");xt(o,"art-".concat(this.name)),xt(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):jt(this.$parent,o),r.html&&jt(o,r.html),r.style&&Rt(o,r.style),r.tooltip&&Dt(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&xt(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;xt(e,"art-control-selector");var a=document.createElement("div");xt(a,"art-selector-value"),jt(a,t.html),e.innerText="",jt(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),l=document.createElement("div");xt(l,"art-selector-list"),jt(l,c),jt(e,l);var s=function(){l.style.left="-".concat(Et(l,"width")/2-Et(e,"width")/2,"px")};o(e,s),i(e,"click",(function(e){if(kt(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,s(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}},{key:"show",get:function(){return kt(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?xt(e,r):Ot(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}}]),t}();function De(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Te(t){for(var e=1;e
'),mounted:function(t){var r=!1,o=gt(".art-progress-loaded",t),c=gt(".art-progress-played",t),l=gt(".art-progress-highlight",t),s=gt(".art-progress-indicator",t),u=gt(".art-progress-tip",t);function f(t,e){"loaded"===t&&St(o,"width","".concat(100*e,"%")),"played"===t&&(St(c,"width","".concat(100*e,"%")),St(s,"left","calc(".concat(100*e,"% - ").concat(Et(s,"width")/2,"px)")))}n.forEach((function(t){var e=oe(t.time,0,a.duration)/a.duration*100;jt(l,''))})),f("loaded",a.loaded),e.on("video:progress",(function(){f("loaded",a.loaded)})),e.on("video:timeupdate",(function(){f("played",a.played)})),e.on("video:ended",(function(){f("played",1)})),i(t,"mousemove",(function(r){St(u,"display","block"),At(r,l)?function(r){var n=Ne(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?St(u,"left",0):n>t.clientWidth-i/2?St(u,"left","".concat(t.clientWidth-i,"px")):St(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=Ne(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?St(u,"left",0):o>t.clientWidth-a/2?St(u,"left","".concat(t.clientWidth-a,"px")):St(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){St(u,"display","none")})),i(t,"click",(function(t){if(t.target!==s){var r=Ne(e,t),n=r.second;f("played",r.percentage),a.seek=n}})),i(s,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=Ne(e,t),o=n.second,i=n.percentage;xt(s,"art-show-indicator"),f("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,Ot(s,"art-show-indicator"))}))}})}}function Ve(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ue(t){for(var e=1;en.clientWidth-l/2?St(t,"left","".concat(n.clientWidth-l,"px")):St(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){St(t,"display","none")}))}})}}function tr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function er(t){for(var e=1;e=3e3&&(n.show=!1,xt(c,"art-hide-cursor"),Ot(c,"art-hover"))})),t.once("ready",(function(){n.add(We({name:"progress",disable:o.isLive,position:"top",index:10})),n.add(Ke({name:"thumbnails",disable:!o.thumbnails.url||o.isLive,position:"top",index:20})),n.add(function(t){return function(e){return ir(ir({},t),{},{mounted:function(t){var r=e.player,n=jt(t,''),o=jt(t,'');e.on("loop",(function(e){e?(St(t,"display","block"),St(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),St(o,"left","".concat(e[1]/r.duration*100,"%"))):St(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),n.add(function(t){return function(e){return Ie(Ie({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=jt(t,n.play),c=jt(t,n.pause);function l(){St(a,"display","flex"),St(c,"display","none")}function s(){St(a,"display","none"),St(c,"display","flex")}Dt(a,o.get("Play")),Dt(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?s():l(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){l()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),n.add(function(t){return function(e){return Xe(Xe({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=jt(t,n.volume),l=jt(t,n.volumeClose),s=jt(t,'
'),u=jt(s,'
');function f(t){var e=s.getBoundingClientRect().left;return oe(t.pageX-e-6,0,54)/48}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)St(c,"display","none"),St(l,"display","flex"),St(u,"left","0");else{var e=48*t;St(c,"display","flex"),St(l,"display","none"),St(u,"left","".concat(e,"px"))}}Dt(c,i.get("Mute")),St(l,"display","none"),e.isMobile&&St(s,"display","none"),p(o.volume),e.on("video:volumechange",(function(){p(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(l,"click",(function(){o.muted=!1})),r(s,"click",(function(t){o.muted=!1,o.volume=f(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=f(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),n.add(function(t){return function(e){return Be(Be({},t),{},{mounted:function(t){function r(){var r="".concat(ie(e.player.currentTime)," / ").concat(ie(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:o.isLive,position:"left",index:30})),n.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return nr(nr({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===o.quality.length,position:"right",index:10})),n.add(function(t){return function(e){return er(er({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;jt(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!o.screenshot,position:"right",index:20})),n.add(function(t){return function(e){return Ue(Ue({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;jt(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){Dt(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!o.subtitle.url,position:"right",index:30})),n.add(function(t){return function(e){return Ze(Ze({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;jt(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){Dt(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!o.setting,position:"right",index:40})),n.add(function(t){return function(e){return Le(Le({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;jt(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){Dt(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!o.pip,position:"right",index:50})),n.add(function(t){return function(e){return ze(ze({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;jt(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){Dt(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!o.fullscreenWeb,position:"right",index:60})),n.add(function(t){return function(e){return Te(Te({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;jt(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){Dt(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!o.fullscreen,position:"right",index:70})),o.controls.forEach((function(t){n.add(t)}))})),n}return c(r,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,n=this.art.template,o=n.$progress,i=n.$controlsLeft,a=n.$controlsRight;switch(e.position){case"top":this.$parent=o;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:qt(!1,"Control option.position must one of 'top', 'left', 'right'")}$e(p(r.prototype),"add",this).call(this,e)}}]),r}(Ce);function lr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function sr(t){for(var e=1;e0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=wt("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&Ct(r,"art-current")}))}})}}({disable:!o.playbackRate,name:"playbackRate",index:10})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return fr(fr({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=wt("span",t).find((function(t){return t.dataset.ratio===e}));r&&Ct(r,"art-current")}))}})}}({disable:!o.aspectRatio,name:"aspectRatio",index:20})),n.add(function(t){return function(e){return dr(dr({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),n.add(function(t){return hr(hr({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return vr(vr({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!o.light,name:"light",index:50})),n.add(function(t){return function(e){return gr(gr({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),o.contextmenu.forEach((function(t){n.add(t)})),s(c,"contextmenu",(function(t){t.preventDefault(),n.show=!0;var e=t.clientX,r=t.clientY,o=c.getBoundingClientRect(),i=o.height,a=o.width,s=o.left,u=o.top,f=l.getBoundingClientRect(),p=f.height,d=f.width,y=e-s,h=r-u;e+d>s+a&&(y=a-d),r+p>u+i&&(h=i-p),Rt(l,{top:"".concat(h,"px"),left:"".concat(y,"px")})})),s(c,"click",(function(t){At(t,l)||(n.show=!1)})),t.on("blur",(function(){n.show=!1}))})),n}return r}(Ce);function Or(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var kr=function(t){s(r,t);var e=Or(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).art=t,n.name="info",n.art.template.$info&&n.init(),n}return c(r,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=wt("[data-video]",n);function l(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){l()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&l()}))}}]),r}(Ce);function jr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var Pr=function(t){s(r,t);var e=jr(r);function r(t){var n;i(this,r),(n=e.call(this,t)).name="subtitle";var o=t.option.subtitle,a=t.template.$subtitle;return Rt(a,o.style),o.url&&n.init(o.url),o.bilingual&&xt(a,"art-bilingual"),n}return c(r,[{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===o(t)?Rt(r,t):St(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(ae(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,l=c.$subtitle,s=c.$video,u=c.$track;if(!u){var f=document.createElement("track");f.default=!0,f.kind="metadata",s.appendChild(f),this.art.template.$track=f,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||Vt(t)){case"srt":return Nt(Ft(o));case"ass":return Nt(Wt(o));case"vtt":return Nt(o);default:return t}})).then((function(t){return l.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}},{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return kt(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?xt(e,"art-bilingual"):Ot(e,"art-bilingual")}}]),r}(Ce);var Sr=function(){function t(e){var r=this;i(this,t),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),e.whitelist.state&&e.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){At(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(e,r),function(t,e){var r=t.template.$player;e.hover(r,(function(){xt(r,"art-hover"),t.emit("hover",!0)}),(function(){Ot(r,"art-hover"),t.emit("hover")}))}(e,r),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(e,r),function(t,e){var r=t.option,n=t.player,o=ne((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(e,r),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=oe((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=oe(r.currentTime+60*e,0,r.duration),n.show="".concat(ie(c)," / ").concat(ie(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(e,r),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=ne((function(){t.emit("view",Tt(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(e,r)}))}return c(t,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new It("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new It("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),t}(),Rr=function(){function t(e){var r=this;i(this,t),this.keys={};var n=e.option,o=e.player,a=e.events.proxy;n.hotkey&&e.once("ready",(function(){r.add(27,(function(){o.fullscreenWeb&&(o.fullscreenWeb=!1)})),r.add(32,(function(){o.toggle=!0})),r.add(37,(function(){o.backward=5})),r.add(38,(function(){o.volume+=.1})),r.add(39,(function(){o.forward=5})),r.add(40,(function(){o.volume-=.1})),a(window,"keydown",(function(t){if(e.isFocus){var n=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==n&&"TEXTAREA"!==n&&""!==o&&"true"!==o){var i=r.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(e)})),e.emit("hotkey",t))}}}))}))}return c(t,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),t}();function Er(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var $r=function(t){s(r,t);var e=Er(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).name="layer",n.$parent=t.template.$layer,t.once("ready",(function(){t.option.layers.forEach((function(t){n.add(t)}))})),n}return r}(Ce);function Cr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var Dr=function(t){s(r,t);var e=Cr(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).name="loading",jt(t.template.$loading,t.icons.loading),n}return r}(Ce),Tr=function(){function t(e){i(this,t),this.art=e,this.time=2e3,this.timer=null}return c(t,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,xt(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",Ot(r,"art-notice-show")}),this.time)}}]),t}();function Ar(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var zr=function(t){s(r,t);var e=Ar(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).name="mask",jt(t.template.$state,t.icons.state),n}return r}(Ce);function _r(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Lr=function t(e){var n=this;i(this,t);var o=function(t){for(var e=1;e',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},e.option.icons);Object.keys(o).forEach((function(t){Qt(n,t,{get:function(){var e=document.createElement("i");return xt(e,"art-icon"),xt(e,"art-icon-".concat(t)),jt(e,o[t]),e}})}))};function Mr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ir(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=wt("button",t).find((function(t){return t.dataset.value===e}));r&&Ct(r.parentElement,"current")}))}})}}({disable:!o.flip,name:"flip"})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fr(Fr({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=gt(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!o.rotate,name:"rotate"})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return Wr(Wr({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=wt("button",t).find((function(t){return t.dataset.value===e}));r&&Ct(r.parentElement,"current")}))}})}}({disable:!o.aspectRatio,name:"aspectRatio"})),n.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Ur(Ur({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=gt(".art-setting-range input",t),i=gt(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!o.playbackRate,name:"playbackRate"}))})),t.on("blur",(function(){n.show=!1}))),n}return r}(Ce),Yr=function(){function t(){i(this,t),this.name="artplayer_settings",this.settings={}}return c(t,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(t,e){try{var n=Object.assign({},this.get(),r({},t,e));window.localStorage.setItem(this.name,JSON.stringify(n))}catch(r){this.settings[t]=e}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),t}();function Xr(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=gt(".art-setting-range input",e),i=gt(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Jr(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(Xr);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var l=Array.from(o.$track.track.cues),s=e(r,-5,5);l.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+s,0,a.duration),t.endTime=e(c[r].endTime+s,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Zr(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else qt(!1,"Playback of this file format is not supported")}}function l(t){var r=jt(t,'');St(t,"position","relative"),Rt(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=gt(".art-upload-btn",e),n=gt(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function Qr(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=jt(n,'');St(n,"position","relative"),Rt(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=Vt(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):qt(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=gt(".art-upload-btn",e),n=gt(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Gr(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Kr(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function tn(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;St(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(Pt(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){Pt(r.firstElementChild),o()}),3e3):St(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(jt(r,"

".concat(ae(t),"

")),St(r,"display","block"),clearTimeout(n),o())}}}var en=function(){function t(e){var r=this;i(this,t),this.art=e,this.id=0;var n=e.option;n.subtitle.url&&n.subtitleOffset&&this.add(Jr),!n.isLive&&n.miniProgressBar&&this.add(Gr),n.localVideo&&this.add(Zr),n.localSubtitle&&this.add(Qr),n.networkMonitor&&this.add(Kr),n.log&&this.add(tn),e.option.plugins.forEach((function(t){r.add(t)}))}return c(t,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return qt(!Kt(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),Qt(this,r,{value:e}),this}}]),t}(),rn=function t(e){i(this,t);var r=e.option,n=e.events.proxy,o=e.template.$video;be.events.forEach((function(t){n(o,t,(function(t){e.emit("video:".concat(t.type),t)}))})),Object.keys(r.moreVideoAttr).forEach((function(t){o[t]=r.moreVideoAttr[t]})),r.muted&&(o.muted=r.muted),r.volume&&(o.volume=oe(r.volume,0,1)),r.poster&&(o.poster=r.poster),r.autoplay&&(o.autoplay=r.autoplay),o.controls=!0;var a=r.type||Vt(r.url),c=r.customType[a];a&&c?(c(o,r.url,e),e.emit("customType",a)):(o.src=r.url,e.emit("url",o.src))};function nn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var on=0,an=[],cn=function(t){s(r,t);var e=nn(r);function r(t){var n;return i(this,r),(n=e.call(this)).option=dt(ee(r.option,t),ve),n.isFocus=!1,n.isDestroy=!1,n.userAgent=ht,n.isMobile=mt,n.isWechat=bt,n.whitelist=new ge(u(n)),n.template=new we(u(n)),n.events=new Sr(u(n)),n.whitelist.state?(n.storage=new Yr(u(n)),n.icons=new Lr(u(n)),n.i18n=new ke(u(n)),n.notice=new Tr(u(n)),n.player=new Re(u(n)),n.layers=new $r(u(n)),n.controls=new cr(u(n)),n.contextmenu=new xr(u(n)),n.subtitle=new Pr(u(n)),n.info=new kr(u(n)),n.loading=new Dr(u(n)),n.hotkey=new Rr(u(n)),n.mask=new zr(u(n)),n.setting=new Br(u(n)),n.plugins=new en(u(n))):n.mobile=new rn(u(n)),on+=1,n.id=on,an.push(u(n)),n}return c(r,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),an.splice(an.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return an}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return be}},{key:"utils",get:function(){return ce}},{key:"scheme",get:function(){return ve}},{key:"Emitter",get:function(){return yt}},{key:"validator",get:function(){return dt}},{key:"kindOf",get:function(){return dt.kindOf}},{key:"html",get:function(){return we.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:vt?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),r}(yt);function ln(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function sn(t){for(var e=1;e", - "license": "MIT", - "bugs": { - "url": "https://github.com/zhw2590582/ArtPlayer/issues" - }, - "homepage": "https://github.com/zhw2590582/ArtPlayer#readme", - "dependencies": { - "react": "latest" - }, - "gitHead": "5ea211ef738351668e4acace326af4ff6947e2ee" -} diff --git a/packages/artplayer-react/src/index.js b/packages/artplayer-react/src/index.js deleted file mode 100644 index 4c0d8eb90..000000000 --- a/packages/artplayer-react/src/index.js +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; -import Artplayer from '../../artplayer/src'; -import '../../artplayer/src/style/index.scss'; - -export default class ArtplayerReact extends React.Component { - constructor(props) { - super(props); - Artplayer.utils.errorHandle( - props.option && typeof props.option === 'object', - "The prop 'option' object cannot be missing", - ); - this.instance = null; - this.artRef = React.createRef(); - } - - componentDidMount() { - const { option, getInstance } = this.props; - this.instance = new Artplayer({ - ...option, - container: this.artRef.current, - }); - - if (getInstance && typeof getInstance === 'function') { - getInstance(this.instance); - } - } - - componentWillUnmount() { - if (this.instance && this.instance.destroy) { - this.instance.destroy(); - } - } - - render() { - const { option, getInstance, ...rest } = this.props; - return React.createElement('div', { - ref: this.artRef, - ...rest, - }); - } -} diff --git a/packages/artplayer-vue/.npmignore b/packages/artplayer-vue/.npmignore deleted file mode 100644 index 429145126..000000000 --- a/packages/artplayer-vue/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -node_modules -.DS_Store -yarn.lock -package-lock.json -test -coverage -.nyc_output -.cache -docs \ No newline at end of file diff --git a/packages/artplayer-vue/.npmrc b/packages/artplayer-vue/.npmrc deleted file mode 100644 index 9cf949503..000000000 --- a/packages/artplayer-vue/.npmrc +++ /dev/null @@ -1 +0,0 @@ -package-lock=false \ No newline at end of file diff --git a/packages/artplayer-vue/README.md b/packages/artplayer-vue/README.md deleted file mode 100644 index 164722a02..000000000 --- a/packages/artplayer-vue/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# artplayer-vue - -Vue Component for Artplayer, It is recommended to package itself according to actual business needs. - -## Demo - -[Checkout the demo](https://codesandbox.io/s/thirsty-sunset-3lz7m) from Codesandbox - -## Install - -Install with `npm` - -```bash -$ npm install artplayer-vue -``` - -Or install with `yarn` - -```bash -$ yarn add artplayer-vue -``` - -## Usage - -```js -import ArtplayerComponent from 'artplayer-vue'; - -// ... -; -``` - -## License - -MIT © [Harvey Zack](https://sleepy.im/) diff --git a/packages/artplayer-vue/dist/artplayer-vue.js b/packages/artplayer-vue/dist/artplayer-vue.js deleted file mode 100644 index 2bda177ac..000000000 --- a/packages/artplayer-vue/dist/artplayer-vue.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-vue.js v3.5.31 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2021 Harvey Zack - * Released under the MIT License. - */ - -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ArtplayerVue=e()}(this,(function(){"use strict";var t=function(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t};var e=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function r(t,e){for(var r=0;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function g(t,e){return t.classList.add(e)}function w(t,e){return t.classList.remove(e)}function x(t,e){return t.classList.contains(e)}function O(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function k(t){return t.parentNode.removeChild(t)}function j(t,e,r){return t.style[e]=r,t}function P(t,e){return Object.keys(e).forEach((function(r){j(t,r,e[r])})),t}function S(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function E(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function R(t,e){E(t).forEach((function(t){return w(t,e)})),g(t,e)}function D(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";h||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function T(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}var z=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")};var A=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}},C=i((function(t){function e(r,n,o){return A()?t.exports=e=Reflect.construct:t.exports=e=function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&a(o,r.prototype),o},e.apply(null,arguments)}t.exports=e}));function L(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var M=function(t){c(n,t);var r=L(n);function n(t,i){var a;return e(this,n),a=r.call(this,t),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(o(a),i||a.constructor),a.name="ArtPlayerError",a}return n}(i((function(t){function e(r){var n="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!z(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return C(t,arguments,u(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),a(e,t)},e(r)}t.exports=e}))(Error));function q(t,e){if(!t)throw new M(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function I(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function W(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function V(t){return t.includes("?")?V(t.split("?")[0]):t.includes("#")?V(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function B(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}var H=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function et(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function ot(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var it=Object.freeze({__proto__:null,query:v,queryAll:m,addClass:g,removeClass:w,hasClass:x,append:O,remove:k,setStyle:j,setStyles:P,getStyle:S,sublings:E,inverseClass:R,tooltip:D,isInViewport:$,includeFromEvent:T,ArtPlayerError:M,errorHandle:q,srtToVtt:F,vttToBlob:I,assToVtt:W,getExt:V,download:B,def:Z,has:Q,proxyPropertys:G,mergeDeep:K,sleep:tt,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},mt=function(){function t(r){var n=this;e(this,t),this.art=r,r.option.container instanceof Element?this.$container=r.option.container:(this.$container=v(r.option.container),q(this.$container,"No container element found by ".concat(r.option.container))),q(r.constructor.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),r.whitelist.state?this.desktop():this.mobile()}return n(t,[{key:"query",value:function(t){return v(t,this.$container)}},{key:"desktop",value:function(){var e=this.art.option,r=e.backdrop,n=e.theme;e.useSSR||(this.$container.innerHTML=t.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(g(this.$settingInner,"art-backdrop-filter"),g(this.$contextmenu,"art-backdrop-filter"),this.$info&&g(this.$info,"art-backdrop-filter")),this.art.isMobile&&g(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":g(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),t}(),gt={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},wt={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},xt=function(){function t(r){e(this,t),this.art=r,this.languages={"zh-cn":gt,"zh-tw":wt},this.init()}return n(t,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=K(this.languages,t),this.init()}}]),t}();var Ot=i((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var h=d*l/s;j(n,"width","".concat(100*h,"%")),j(n,"height","100%"),j(n,"padding","0 ".concat((u-u*h)/2,"px"))}else{var y=s/d/l;j(n,"width","100%"),j(n,"height","".concat(100*y,"%")),j(n,"padding","".concat((p-p*y)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),Z(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(r,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");Z(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),Z(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),Z(e,"screenshot",{value:function(){e.getDataURL().then((function(e){B(e,"".concat(r.title||"artplayer","_").concat(nt(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(r,this),kt(r,this),function(t,e){var r=t.template.$player;Z(e,"fullscreenWeb",{get:function(){return x(r,"art-fullscreen-web")},set:function(n){n?(g(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(w(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),Z(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;Z(e,"fullscreenRotate",{get:function(){return x(n,"art-fullscreen-rotate")},set:function(r){if(r){g(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,s=o.clientHeight,l=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;Z(e,"autoSize",{get:function(){return x(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,s=n.getBoundingClientRect(),l=s.width,u=s.height,p=a/c,f=l/u;if(g(n,"art-auto-size"),f>p)j(o,"width","".concat(u*p/l*100,"%")),j(o,"height","100%");else{var d=l/p/u*100;j(o,"width","100%"),j(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else w(n,"art-auto-size"),j(o,"width",null),j(o,"height",null),t.emit("autoSize")}})}(r,this),function(t,e){Z(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){Z(e,t,{get:function(){return e.rect[t]}})})),Z(e,"x",{get:function(){return e.left+window.pageXOffset}}),Z(e,"y",{get:function(){return e.top+window.pageYOffset}})}(r,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;Z(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];q(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),Z(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(r,this),function(t,e){var r=t.template.$undercover;Z(e,"light",{get:function(){return"none"!==S(r,"display",!1)},set:function(e){j(r,"display",e?"block":"none"),t.emit("light",e)}})}(r,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,s=a.$miniClose,l=a.$miniTitle,u=a.$miniHeader,p="",f=!1,d=0,h=0,y=0,b=0;i(u,"mousedown",(function(t){f=!0,d=t.pageX,h=t.pageY,y=e.left,b=e.top})),i(document,"mousemove",(function(t){if(f){g(c,"art-is-dragging");var e=b+t.pageY-h,r=y+t.pageX-d;j(c,"top","".concat(e,"px")),j(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){f=!1,w(c,"art-is-dragging")})),i(s,"click",(function(){e.mini=!1,f=!1,w(c,"art-is-dragging")})),O(l,n.title||r.get("Mini player")),Z(e,"mini",{get:function(){return x(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,p=c.style.cssText,g(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)j(c,"top","".concat(i,"px")),j(c,"left","".concat(a,"px")),$(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var s=document.body,l=s.clientHeight-e.height-50,f=s.clientWidth-e.width-50;o.set("top",l),o.set("left",f),j(c,"top","".concat(l,"px")),j(c,"left","".concat(f,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=p,w(c,"art-mini"),j(c,"top",null),j(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),Z(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(r,this),function(t,e){var r=[];Z(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=rt(n[0],0,Math.min(n[1],e.duration)),i=rt(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(r,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;Z(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(q(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,j(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var s=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},l=0,u=1;switch(r){case-270:l=90,u=s();break;case-180:l=180;break;case-90:l=270,u=s();break;case 90:l=90,u=s();break;case 180:l=180;break;case 270:l=270,u=s()}j(n,"transform","rotate(".concat(l,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),Z(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(r,this),function(t,e){var r=t.option,n=t.template.$poster;Z(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,j(n,"backgroundImage","url(".concat(t,")"))}})}(r,this),G(r,this)};var St=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t},Et=i((function(t){function e(r,n,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,r){var n=St(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(r):o.value}},e(r,n,o||r)}t.exports=e})),Rt=function(){function t(r){e(this,t),this.id=0,this.art=r,this.add=this.add.bind(this)}return n(t,[{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);q(!Q(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");g(o,"art-".concat(this.name)),g(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):O(this.$parent,o),r.html&&O(o,r.html),r.style&&P(o,r.style),r.tooltip&&D(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&g(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;g(e,"art-control-selector");var a=document.createElement("div");g(a,"art-selector-value"),O(a,t.html),e.innerText="",O(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),s=document.createElement("div");g(s,"art-selector-list"),O(s,c),O(e,s);var l=function(){s.style.left="-".concat(S(s,"width")/2-S(e,"width")/2,"px")};o(e,l),i(e,"click",(function(e){if(x(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,l(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}},{key:"show",get:function(){return x(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?g(e,r):w(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}}]),t}();function Dt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function $t(e){for(var r=1;r
'),mounted:function(t){var r=!1,o=v(".art-progress-loaded",t),c=v(".art-progress-played",t),s=v(".art-progress-highlight",t),l=v(".art-progress-indicator",t),u=v(".art-progress-tip",t);function p(t,e){"loaded"===t&&j(o,"width","".concat(100*e,"%")),"played"===t&&(j(c,"width","".concat(100*e,"%")),j(l,"left","calc(".concat(100*e,"% - ").concat(S(l,"width")/2,"px)")))}n.forEach((function(t){var e=rt(t.time,0,a.duration)/a.duration*100;O(s,''))})),p("loaded",a.loaded),e.on("video:progress",(function(){p("loaded",a.loaded)})),e.on("video:timeupdate",(function(){p("played",a.played)})),e.on("video:ended",(function(){p("played",1)})),i(t,"mousemove",(function(r){j(u,"display","block"),T(r,s)?function(r){var n=It(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?j(u,"left",0):n>t.clientWidth-i/2?j(u,"left","".concat(t.clientWidth-i,"px")):j(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=It(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?j(u,"left",0):o>t.clientWidth-a/2?j(u,"left","".concat(t.clientWidth-a,"px")):j(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){j(u,"display","none")})),i(t,"click",(function(t){if(t.target!==l){var r=It(e,t),n=r.second;p("played",r.percentage),a.seek=n}})),i(l,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=It(e,t),o=n.second,i=n.percentage;g(l,"art-show-indicator"),p("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,w(l,"art-show-indicator"))}))}})}}function Vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Bt(e){for(var r=1;rn.clientWidth-s/2?j(t,"left","".concat(n.clientWidth-s,"px")):j(t,"left","".concat(i-s/2,"px"))}(o))})),i(n,"mouseout",(function(){j(t,"display","none")}))}})}}function Gt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Kt(e){for(var r=1;r=3e3&&(n.show=!1,g(c,"art-hide-cursor"),w(c,"art-hover"))})),t.once("ready",(function(){n.add(Wt({name:"progress",disable:i.isLive,position:"top",index:10})),n.add(Qt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),n.add(function(t){return function(e){return ne(ne({},t),{},{mounted:function(t){var r=e.player,n=O(t,''),o=O(t,'');e.on("loop",(function(e){e?(j(t,"display","block"),j(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),j(o,"left","".concat(e[1]/r.duration*100,"%"))):j(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),n.add(function(t){return function(e){return Mt(Mt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=O(t,n.play),c=O(t,n.pause);function s(){j(a,"display","flex"),j(c,"display","none")}function l(){j(a,"display","none"),j(c,"display","flex")}D(a,o.get("Play")),D(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?l():s(),e.on("video:playing",(function(){l()})),e.on("video:pause",(function(){s()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),n.add(function(t){return function(e){return _t(_t({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=O(t,n.volume),s=O(t,n.volumeClose),l=O(t,'
'),u=O(l,'
');function p(t){var e=l.getBoundingClientRect().left;return rt(t.pageX-e-6,0,54)/48}function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)j(c,"display","none"),j(s,"display","flex"),j(u,"left","0");else{var e=48*t;j(c,"display","flex"),j(s,"display","none"),j(u,"left","".concat(e,"px"))}}D(c,i.get("Mute")),j(s,"display","none"),e.isMobile&&j(l,"display","none"),f(o.volume),e.on("video:volumechange",(function(){f(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(s,"click",(function(){o.muted=!1})),r(l,"click",(function(t){o.muted=!1,o.volume=p(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=p(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),n.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){function r(){var r="".concat(nt(e.player.currentTime)," / ").concat(nt(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:i.isLive,position:"left",index:30})),n.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return ee(ee({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===i.quality.length,position:"right",index:10})),n.add(function(t){return function(e){return Kt(Kt({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;O(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),n.add(function(t){return function(e){return Bt(Bt({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;O(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){D(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),n.add(function(t){return function(e){return Yt(Yt({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;O(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){D(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!i.setting,position:"right",index:40})),n.add(function(t){return function(e){return Ct(Ct({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;O(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){D(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!i.pip,position:"right",index:50})),n.add(function(t){return function(e){return zt(zt({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;O(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){D(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),n.add(function(t){return function(e){return $t($t({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;O(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){D(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){n.add(t)}))})),n}return n(o,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,r=this.art.template,n=r.$progress,i=r.$controlsLeft,a=r.$controlsRight;switch(e.position){case"top":this.$parent=n;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:q(!1,"Control option.position must one of 'top', 'left', 'right'")}Et(u(o.prototype),"add",this).call(this,e)}}]),o}(Rt);function ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ce(e){for(var r=1;r0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=m("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&R(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return le(le({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("span",t).find((function(t){return t.dataset.ratio===e}));r&&R(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return pe(pe({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return de(de({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return ye(ye({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!i.light,name:"light",index:50})),o.add(function(t){return function(e){return ve(ve({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),i.contextmenu.forEach((function(t){o.add(t)})),l(c,"contextmenu",(function(t){t.preventDefault(),o.show=!0;var e=t.clientX,r=t.clientY,n=c.getBoundingClientRect(),i=n.height,a=n.width,l=n.left,u=n.top,p=s.getBoundingClientRect(),f=p.height,d=p.width,h=e-l,y=r-u;e+d>l+a&&(h=a-d),r+f>u+i&&(y=i-f),P(s,{top:"".concat(y,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){T(t,s)||(o.show=!1)})),t.on("blur",(function(){o.show=!1}))})),o}return n}(Rt);function we(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var xe=function(t){c(o,t);var r=we(o);function o(t){var n;return e(this,o),(n=r.call(this,t)).art=t,n.name="info",n.art.template.$info&&n.init(),n}return n(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=m("[data-video]",n);function s(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){s()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&s()}))}}]),o}(Rt);function Oe(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var ke=function(t){c(o,t);var r=Oe(o);function o(t){var n;e(this,o),(n=r.call(this,t)).name="subtitle";var i=t.option.subtitle,a=t.template.$subtitle;return P(a,i.style),i.url&&n.init(i.url),i.bilingual&&g(a,"art-bilingual"),n}return n(o,[{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===s(t)?P(r,t):j(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(ot(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,s=c.$subtitle,l=c.$video,u=c.$track;if(!u){var p=document.createElement("track");p.default=!0,p.kind="metadata",l.appendChild(p),this.art.template.$track=p,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||V(t)){case"srt":return I(F(o));case"ass":return I(W(o));case"vtt":return I(o);default:return t}})).then((function(t){return s.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}},{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return x(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?g(e,"art-bilingual"):w(e,"art-bilingual")}}]),o}(Rt);var je=function(){function t(r){var n=this;e(this,t),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){T(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){g(r,"art-hover"),t.emit("hover",!0)}),(function(){w(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=t.player,o=et((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(r,n),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=rt((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=rt(r.currentTime+60*e,0,r.duration),n.show="".concat(nt(c)," / ").concat(nt(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(r,n),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=et((function(){t.emit("view",$(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(r,n)}))}return n(t,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new M("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new M("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),t}(),Pe=function(){function t(r){var n=this;e(this,t),this.keys={};var o=r.option,i=r.player,a=r.events.proxy;o.hotkey&&r.once("ready",(function(){n.add(27,(function(){i.fullscreenWeb&&(i.fullscreenWeb=!1)})),n.add(32,(function(){i.toggle=!0})),n.add(37,(function(){i.backward=5})),n.add(38,(function(){i.volume+=.1})),n.add(39,(function(){i.forward=5})),n.add(40,(function(){i.volume-=.1})),a(window,"keydown",(function(t){if(r.isFocus){var e=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==o&&"true"!==o){var i=n.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(r)})),r.emit("hotkey",t))}}}))}))}return n(t,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),t}();function Se(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var Ee=function(t){c(n,t);var r=Se(n);function n(t){var o;return e(this,n),(o=r.call(this,t)).name="layer",o.$parent=t.template.$layer,t.once("ready",(function(){t.option.layers.forEach((function(t){o.add(t)}))})),o}return n}(Rt);function Re(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var De=function(t){c(n,t);var r=Re(n);function n(t){var o;return e(this,n),(o=r.call(this,t)).name="loading",O(t.template.$loading,t.icons.loading),o}return n}(Rt),$e=function(){function t(r){e(this,t),this.art=r,this.time=2e3,this.timer=null}return n(t,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,g(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",w(r,"art-notice-show")}),this.time)}}]),t}();function Te(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var ze=function(t){c(n,t);var r=Te(n);function n(t){var o;return e(this,n),(o=r.call(this,t)).name="mask",O(t.template.$state,t.icons.state),o}return n}(Rt);function Ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Ce=function r(n){var o=this;e(this,r);var i=function(e){for(var r=1;r',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},n.option.icons);Object.keys(i).forEach((function(t){Z(o,t,{get:function(){var e=document.createElement("i");return g(e,"art-icon"),g(e,"art-icon-".concat(t)),O(e,i[t]),e}})}))};function Le(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Me(e){for(var r=1;r'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=v(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return We(We({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Be(Be({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=v(".art-setting-range input",t),i=v(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}))})),t.on("blur",(function(){o.show=!1}))),o}return n}(Rt),Ue=function(){function r(){e(this,r),this.name="artplayer_settings",this.settings={}}return n(r,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(e,r){try{var n=Object.assign({},this.get(),t({},e,r));window.localStorage.setItem(this.name,JSON.stringify(n))}catch(t){this.settings[e]=r}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),r}();function _e(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=v(".art-setting-range input",e),i=v(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Xe(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(_e);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var s=Array.from(o.$track.track.cues),l=e(r,-5,5);s.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+l,0,a.duration),t.endTime=e(c[r].endTime+l,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Ye(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else q(!1,"Playback of this file format is not supported")}}function s(t){var r=O(t,'');j(t,"position","relative"),P(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),s(r)}})})),{name:"localVideo",attach:s}}function Ze(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=O(n,'');j(n,"position","relative"),P(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=V(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):q(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Je(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Qe(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function Ge(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;j(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(k(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){k(r.firstElementChild),o()}),3e3):j(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(O(r,"

".concat(ot(t),"

")),j(r,"display","block"),clearTimeout(n),o())}}}var Ke=function(){function t(r){var n=this;e(this,t),this.art=r,this.id=0;var o=r.option;o.subtitle.url&&o.subtitleOffset&&this.add(Xe),!o.isLive&&o.miniProgressBar&&this.add(Je),o.localVideo&&this.add(Ye),o.localSubtitle&&this.add(Ze),o.networkMonitor&&this.add(Qe),o.log&&this.add(Ge),r.option.plugins.forEach((function(t){n.add(t)}))}return n(t,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return q(!Q(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),Z(this,r,{value:e}),this}}]),t}(),tr=function t(r){e(this,t);var n=r.option,o=r.events.proxy,i=r.template.$video;bt.events.forEach((function(t){o(i,t,(function(t){r.emit("video:".concat(t.type),t)}))})),Object.keys(n.moreVideoAttr).forEach((function(t){i[t]=n.moreVideoAttr[t]})),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=rt(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),i.controls=!0;var a=n.type||V(n.url),c=n.customType[a];a&&c?(c(i,n.url,r),r.emit("customType",a)):(i.src=n.url,r.emit("url",i.src))};function er(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var rr=0,nr=[],or=function(t){c(i,t);var r=er(i);function i(t){var n;return e(this,i),(n=r.call(this)).option=p(K(i.option,t),yt),n.isFocus=!1,n.isDestroy=!1,n.userAgent=d,n.isMobile=h,n.isWechat=b,n.whitelist=new vt(o(n)),n.template=new mt(o(n)),n.events=new je(o(n)),n.whitelist.state?(n.storage=new Ue(o(n)),n.icons=new Ce(o(n)),n.i18n=new xt(o(n)),n.notice=new $e(o(n)),n.player=new Pt(o(n)),n.layers=new Ee(o(n)),n.controls=new ie(o(n)),n.contextmenu=new ge(o(n)),n.subtitle=new ke(o(n)),n.info=new xe(o(n)),n.loading=new De(o(n)),n.hotkey=new Pe(o(n)),n.mask=new ze(o(n)),n.setting=new Ne(o(n)),n.plugins=new Ke(o(n))):n.mobile=new tr(o(n)),rr+=1,n.id=rr,nr.push(o(n)),n}return n(i,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),nr.splice(nr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return nr}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return bt}},{key:"utils",get:function(){return it}},{key:"scheme",get:function(){return yt}},{key:"Emitter",get:function(){return f}},{key:"validator",get:function(){return p}},{key:"kindOf",get:function(){return p.kindOf}},{key:"html",get:function(){return mt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:y?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),i}(f);function ir(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ar(e){for(var r=1;r", - "license": "MIT", - "bugs": { - "url": "https://github.com/zhw2590582/ArtPlayer/issues" - }, - "homepage": "https://github.com/zhw2590582/ArtPlayer#readme", - "gitHead": "5ea211ef738351668e4acace326af4ff6947e2ee" -} diff --git a/packages/artplayer-vue/src/index.js b/packages/artplayer-vue/src/index.js deleted file mode 100644 index d750f8eed..000000000 --- a/packages/artplayer-vue/src/index.js +++ /dev/null @@ -1,37 +0,0 @@ -import Artplayer from '../../artplayer/src'; -import '../../artplayer/src/style/index.scss'; - -export default { - data() { - return { - instance: null, - }; - }, - props: { - option: { - type: Object, - required: true, - }, - getInstance: Function, - }, - mounted() { - this.instance = new Artplayer({ - ...this.option, - container: this.$refs.artRef, - }); - - this.$nextTick(() => { - this.$emit('getInstance', this.instance); - }); - }, - beforeDestroy() { - if (this.instance && this.instance.destroy) { - this.instance.destroy(); - } - }, - render(h) { - return h('div', { - ref: 'artRef', - }); - }, -}; diff --git a/packages/artplayer/src/control/playAndPause.js b/packages/artplayer/src/control/playAndPause.js index 0397ebef4..e8edb81a0 100644 --- a/packages/artplayer/src/control/playAndPause.js +++ b/packages/artplayer/src/control/playAndPause.js @@ -17,11 +17,11 @@ export default function playAndPause(option) { tooltip($pause, i18n.get('Pause')); proxy($play, 'click', () => { - player.play = true; + player.play(); }); proxy($pause, 'click', () => { - player.pause = true; + player.pause(); }); function showPlay() { diff --git a/packages/artplayer/src/control/setting.js b/packages/artplayer/src/control/setting.js index 6f068d10a..31e600de4 100644 --- a/packages/artplayer/src/control/setting.js +++ b/packages/artplayer/src/control/setting.js @@ -15,7 +15,7 @@ export default function setting(option) { append($control, icons.setting); proxy($control, 'click', () => { - setting.toggle = true; + setting.toggle(); }); art.on('setting', value => { diff --git a/packages/artplayer/src/control/subtitle.js b/packages/artplayer/src/control/subtitle.js index b92ab90c0..f51069c18 100644 --- a/packages/artplayer/src/control/subtitle.js +++ b/packages/artplayer/src/control/subtitle.js @@ -15,7 +15,7 @@ export default function subtitle(option) { append($control, icons.subtitle); proxy($control, 'click', () => { - subtitle.toggle = true; + subtitle.toggle(); }); art.on('subtitle', value => { diff --git a/packages/artplayer/src/hotkey.js b/packages/artplayer/src/hotkey.js index 37960d543..cc2ae289f 100644 --- a/packages/artplayer/src/hotkey.js +++ b/packages/artplayer/src/hotkey.js @@ -17,7 +17,7 @@ export default class Hotkey { }); this.add(32, () => { - player.toggle = true; + player.toggle(); }); this.add(37, () => { diff --git a/packages/artplayer/src/player/eventInit.js b/packages/artplayer/src/player/eventInit.js index d032f9b30..e2bad9230 100644 --- a/packages/artplayer/src/player/eventInit.js +++ b/packages/artplayer/src/player/eventInit.js @@ -14,7 +14,7 @@ export default function eventInit(art, player) { const maxReconnectTime = 5; proxy($video, 'click', () => { - player.toggle = true; + player.toggle(); }); config.events.forEach((eventName) => { @@ -54,7 +54,11 @@ export default function eventInit(art, player) { art.on('video:ended', () => { if (option.loop) { player.seek = 0; - player.play = player.playing; + if (player.playing) { + player.play(); + } else { + player.pause(); + } art.controls.show = false; art.mask.show = false; } else { diff --git a/packages/artplayer/src/player/pauseMix.js b/packages/artplayer/src/player/pauseMix.js index 8a71cb059..9d53910ec 100644 --- a/packages/artplayer/src/player/pauseMix.js +++ b/packages/artplayer/src/player/pauseMix.js @@ -8,17 +8,10 @@ export default function pauseMix(art, player) { } = art; def(player, 'pause', { - get() { - return $video.paused; - }, - set(value) { - if (value) { - $video.pause(); - notice.show = i18n.get('Pause'); - art.emit('pause'); - } else { - player.play = true; - } + value() { + $video.pause(); + notice.show = i18n.get('Pause'); + art.emit('pause'); }, }); } diff --git a/packages/artplayer/src/player/playMix.js b/packages/artplayer/src/player/playMix.js index e648ec8c8..049e5442a 100644 --- a/packages/artplayer/src/player/playMix.js +++ b/packages/artplayer/src/player/playMix.js @@ -10,29 +10,26 @@ export default function playMix(art, player) { } = art; def(player, 'play', { - set(value) { - if (value) { - const promise = $video.play(); - if (promise.then) { - promise.then().catch(err => { - notice.show = err; - throw err; - }); - } + value() { + const promise = $video.play(); - if (mutex) { - instances - .filter(item => item !== art) - .forEach(item => { - item.player.pause = true; - }); - } - - notice.show = i18n.get('Play'); - art.emit('play'); - } else { - player.pause = true; + if (promise.then) { + promise.then().catch((err) => { + notice.show = err; + throw err; + }); } + + if (mutex) { + instances + .filter((item) => item !== art) + .forEach((item) => { + item.player.pause(); + }); + } + + notice.show = i18n.get('Play'); + art.emit('play'); }, }); } diff --git a/packages/artplayer/src/player/switchMix.js b/packages/artplayer/src/player/switchMix.js index cb1a9872b..158411f26 100644 --- a/packages/artplayer/src/player/switchMix.js +++ b/packages/artplayer/src/player/switchMix.js @@ -15,7 +15,7 @@ export default function switchMix(art, player) { player.autoSize = true; player.currentTime = currentTime; if (playing) { - player.play = true; + player.play(); } }); if (name) { diff --git a/packages/artplayer/src/player/toggleMix.js b/packages/artplayer/src/player/toggleMix.js index d6770bbd3..4afc400ce 100644 --- a/packages/artplayer/src/player/toggleMix.js +++ b/packages/artplayer/src/player/toggleMix.js @@ -2,13 +2,11 @@ import { def } from '../utils'; export default function toggleMix(art, player) { def(player, 'toggle', { - set(value) { - if (value) { - if (player.playing) { - player.pause = true; - } else { - player.play = true; - } + value() { + if (player.playing) { + player.pause(); + } else { + player.play(); } }, }); From 74bc297e8f4ee00f268616b7ae9b1c6624afd823 Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 14:07:39 +0800 Subject: [PATCH 03/61] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .size-snapshot.json | 87 - README-CN.md | 132 - dist/artplayer-plugin-backlight.js | 8 - dist/artplayer-plugin-danmuku.js | 8 - dist/artplayer-plugin-gif.js | 8 - dist/artplayer-react.js | 8 - dist/artplayer-tool-github.js | 8 - dist/artplayer-tool-thumbnail.js | 8 - dist/artplayer-vue.js | 8 - dist/artplayer.js | 8 - docs/uncompiled/artplayer-plugin-ass.js | 2124 ------ docs/uncompiled/artplayer-plugin-ass.js.map | 1 - docs/uncompiled/artplayer-plugin-gif.js | 3037 -------- docs/uncompiled/artplayer-plugin-gif.js.map | 1 - docs/uncompiled/artplayer-react.js | 6776 ----------------- docs/uncompiled/artplayer-react.js.map | 1 - docs/uncompiled/artplayer-vue.js | 4518 ----------- docs/uncompiled/artplayer-vue.js.map | 1 - docs/uncompiled/artplayer.js | 176 +- docs/uncompiled/artplayer.js.map | 2 +- images/alipay.jpg | Bin 70061 -> 0 bytes images/wechatpay.jpg | Bin 107347 -> 0 bytes .../artplayer-plugin-backlight/package.json | 2 +- .../artplayer-plugin-danmuku/package.json | 2 +- packages/artplayer-tool-github/package.json | 2 +- .../artplayer-tool-thumbnail/package.json | 2 +- packages/artplayer/package.json | 2 +- packages/artplayer/src/contextmenu/index.js | 9 - packages/artplayer/src/contextmenu/light.js | 18 - packages/artplayer/src/i18n/zh-cn.json | 2 - packages/artplayer/src/i18n/zh-tw.json | 2 - packages/artplayer/src/index.js | 1 - packages/artplayer/src/player/index.js | 2 - packages/artplayer/src/player/lightMix.js | 15 - packages/artplayer/src/scheme/index.js | 3 +- packages/artplayer/src/style/artplayer.scss | 12 - packages/artplayer/src/template.js | 12 +- packages/artplayer/types/artplayer.d.ts | 3 +- 39 files changed, 76 insertions(+), 16934 deletions(-) delete mode 100644 .size-snapshot.json delete mode 100644 README-CN.md delete mode 100644 dist/artplayer-plugin-backlight.js delete mode 100644 dist/artplayer-plugin-danmuku.js delete mode 100644 dist/artplayer-plugin-gif.js delete mode 100644 dist/artplayer-react.js delete mode 100644 dist/artplayer-tool-github.js delete mode 100644 dist/artplayer-tool-thumbnail.js delete mode 100644 dist/artplayer-vue.js delete mode 100644 dist/artplayer.js delete mode 100644 docs/uncompiled/artplayer-plugin-ass.js delete mode 100644 docs/uncompiled/artplayer-plugin-ass.js.map delete mode 100644 docs/uncompiled/artplayer-plugin-gif.js delete mode 100644 docs/uncompiled/artplayer-plugin-gif.js.map delete mode 100644 docs/uncompiled/artplayer-react.js delete mode 100644 docs/uncompiled/artplayer-react.js.map delete mode 100644 docs/uncompiled/artplayer-vue.js delete mode 100644 docs/uncompiled/artplayer-vue.js.map delete mode 100644 images/alipay.jpg delete mode 100644 images/wechatpay.jpg delete mode 100644 packages/artplayer/src/contextmenu/light.js delete mode 100644 packages/artplayer/src/player/lightMix.js diff --git a/.gitignore b/.gitignore index 7f134bcf2..ebbba4a9e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ node_modules examples commit.json package-lock.json +.size-snapshot.json yarn.lock \ No newline at end of file diff --git a/.size-snapshot.json b/.size-snapshot.json deleted file mode 100644 index 0f839d069..000000000 --- a/.size-snapshot.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "packages/artplayer/dist/artplayer.js": { - "bundled": 190385, - "minified": 110834, - "gzipped": 26131 - }, - "packages/artplayer-plugin-backlight/dist/artplayer-plugin-backlight.js": { - "bundled": 4629, - "minified": 1985, - "gzipped": 955 - }, - "packages/artplayer-tool-github/dist/artplayer-tool-github.js": { - "bundled": 12660, - "minified": 12305, - "gzipped": 4307 - }, - "packages/artplayer-plugin-gif/dist/artplayer-plugin-gif.js": { - "bundled": 98490, - "minified": 28883, - "gzipped": 10422 - }, - "packages/artplayer-tool-thumbnail/dist/artplayer-tool-thumbnail.js": { - "bundled": 15973, - "minified": 7709, - "gzipped": 2786 - }, - "packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js": { - "bundled": 24161, - "minified": 12813, - "gzipped": 4163 - }, - "packages/artplayer-vue/dist/artplayer-vue.js": { - "bundled": 191944, - "minified": 111758, - "gzipped": 26250 - }, - "packages/artplayer-react/dist/artplayer-react.js": { - "bundled": 273879, - "minified": 140344, - "gzipped": 35380 - }, - "artplayer-plugin-backlight.js": { - "bundled": 4678, - "minified": 2027, - "gzipped": 969 - }, - "artplayer.js": { - "bundled": 207463, - "minified": 118948, - "gzipped": 27991 - }, - "artplayer-plugin-danmuku.js": { - "bundled": 25668, - "minified": 13645, - "gzipped": 4422 - }, - "artplayer-plugin-gif.js": { - "bundled": 98584, - "minified": 28937, - "gzipped": 10434 - }, - "artplayer-react.js": { - "bundled": 294866, - "minified": 151155, - "gzipped": 37283 - }, - "artplayer-tool-github.js": { - "bundled": 12711, - "minified": 12347, - "gzipped": 4310 - }, - "artplayer-tool-thumbnail.js": { - "bundled": 17324, - "minified": 8545, - "gzipped": 3060 - }, - "artplayer-vue.js": { - "bundled": 212235, - "minified": 122243, - "gzipped": 28253 - }, - "artplayer-plugin-ass.js": { - "bundled": 2292, - "minified": 1227, - "gzipped": 611 - } -} diff --git a/README-CN.md b/README-CN.md deleted file mode 100644 index 43156dec0..000000000 --- a/README-CN.md +++ /dev/null @@ -1,132 +0,0 @@ -# ArtPlayer.js - -> :art: ArtPlayer.js 是一个现代全功能的 HTML5 视频播放器 - -[![Build Status](https://www.travis-ci.org/zhw2590582/ArtPlayer.svg?branch=master)](https://www.travis-ci.org/zhw2590582/ArtPlayer) -![version](https://badgen.net/npm/v/artplayer) -![license](https://badgen.net/npm/license/artplayer) -![size](https://badgen.net/bundlephobia/minzip/artplayer) -[![npm Downloads](https://img.shields.io/npm/dt/artplayer.svg)](https://www.npmjs.com/package/artplayer) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/354e9953b70a4791a5a46194d587c707)](https://www.codacy.com/app/zhw2590582/ArtPlayer?utm_source=github.com&utm_medium=referral&utm_content=zhw2590582/ArtPlayer&utm_campaign=Badge_Grade) - -![Screenshot](./images/screenshot.png) - -## Features - -- 大小 - 缩小并压缩后的大小只有`25kb` -- 字幕 - 支持 `.VTT`, `.ASS` 和 `.SRT` 格式 -- 自定义 - `右键菜单`, `业务图层`, `视频控制器` 和 `设置面板` -- 控制器 - `画质切换`, `字幕切换`, `播放速度`, `长宽比`, `视频翻转`, `全屏`, `画中画`, `截图`, `缩略图`, `自适应尺寸`, `高亮` 和 `热键`... -- 内建 - `打开本地字幕`, `打开本地视频`, `迷你进度条`, `网络监测` 和 `字幕时间偏移` -- 集成 - 容易与其它依赖集成:`flv.js`, `hls.js`, `dash.js`, `shaka-player`, `webtorrent`... -- 代码 - 纯 `ES6` 和 `SASS`, 高解耦的代码, 清晰的结构, 容易跟踪 `Bug` 和添加新功能 -- 文档 - 详尽的接口文档和丰富的代码演示 -- 接口 - 丰富的接口和响应事件, 容易对接到业务或者自定义插件 -- 多语言 - 支持控件的国际化 - -## 生态 - -| 项目 | 描述 | 演示 | -| --------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| [artplayer-plugin-danmuku](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-plugin-danmuku) | 弹幕库插件 | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-danmuku.js&example=danmuku) | -| [artplayer-plugin-gif](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-plugin-gif) | GIF 生成插件 | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-gif.js&example=gif) | -| [artplayer-plugin-backlight](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-plugin-backlight) | 背光插件 | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-backlight.js&example=backlight) | -| [artplayer-tool-thumbnail](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-tool-thumbnail) | 缩略图生成工具 | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-tool-thumbnail.js&example=thumbnail) | -| [artplayer-tool-github](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-tool-github) | Github 弹幕库工具 | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-tool-github.js%0A.%2Funcompiled%2Fartplayer-plugin-danmuku.js&example=github) | | -| [artplayer-react](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-react) | React 组件 | [demo](https://codesandbox.io/s/n74859y9rl) | -| [artplayer-vue](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-vue) | Vue 组件 | [demo](https://codesandbox.io/s/thirsty-sunset-3lz7m) | - -## 主页 - -[https://artplayer.org](https://artplayer.org) - -## 手机端演示 - -![mobile](./images/mobile.png) - -## 文档 - -[https://artplayer.org/document](https://artplayer.org/document) - -## 安装 - -通过 `npm` 安装: - -```bash -$ npm install artplayer -``` - -或者通过 `yarn` 安装: - -```bash -$ yarn add artplayer -``` - -```js -import Artplayer from 'artplayer'; -``` - -或者直接引入`umd`文件: - -```html - -``` - -或者从 jsDelivr CDN 引入: - -```html - -``` - -将会导出全局变量到`window.Artplayer`. - -## 使用 - -```html -
-``` - -```js -var art = new Artplayer({ - container: '.artplayer-app', - url: 'path/to/video.mp4', -}); -``` - -## 贡献 - -安装依赖: - -```bash -$ npm install -$ npm run bootstrap -``` - -运行开发人员模式,然后选择要开发的项目: - -```bash -$ npm run dev -``` - -开启网页服务器: - -```bash -$ npm start -``` - -## 捐助 - -我们通过这些渠道接受捐赠: - -- [Patreon](https://www.patreon.com/artplayer) -- [Paypal](https://www.paypal.me/harveyzack) -- [微信支付](./images/wechatpay.jpg) -- [支付宝](./images/alipay.jpg) - -## QQ 群 - -![QQ Group](./images/qqgroup.png) - -## 证书 - -MIT © [Harvey Zack](https://sleepy.im/) diff --git a/dist/artplayer-plugin-backlight.js b/dist/artplayer-plugin-backlight.js deleted file mode 100644 index 99b9c1bd0..000000000 --- a/dist/artplayer-plugin-backlight.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-plugin-backlight.js v3.5.31 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2021 Harvey Zack - * Released under the MIT License. - */ - -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).artplayerPluginBacklight=e()}(this,(function(){"use strict";function t(t){for(var e=[],o=0;o<10;o+=1)for(var n=0;n<5;n+=1)0!==o&&9!==o&&0!==n&&4!==n||e.push(t(o,n,10,5));return e}return function(e){var o=e.constructor.utils.setStyles,n=e.template,a=n.$player,i=n.$video,r=e.player,c=document.createElement("div");c.classList.add("artplayer-backlight"),o(c,{position:"absolute",zIndex:9,left:0,top:0,right:0,bottom:0,width:"100%",height:"100%"});var l,s=(l=c,t((function(t,e,o,n){var a=document.createElement("div");return a.style.position="absolute",a.style.left="".concat(100*t/o,"%"),a.style.top="".concat(100*e/n,"%"),a.style.width="".concat(100/o,"%"),a.style.height="".concat(100/n,"%"),a.style.webkitBorderRadius="50%",a.style.borderRadius="50%",a.style.webkitTransition="all .2s ease",a.style.transition="all .2s ease",l.appendChild(a),{$box:a,left:0===t,right:t===o-1,top:0===e,bottom:e===n-1}}))),u=document.createElement("canvas");return a.insertBefore(c,i),function o(){setTimeout((function(){if(r.playing){var n=i.clientWidth,a=i.clientHeight;(function(e,o,n,a){var i=e.getContext("2d");return e.width=n,e.height=a,i.drawImage(o,0,0),t((function(t,e,o,r){for(var c=n/o,l=a/r,s=t*c,u=e*l,d=i.getImageData(s,u,c,l).data,f=0,h=0,p=0,g=0,y=d.length;g'.concat(e.get("Danmu opacity"),': 100%
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=100*Number(e),t.plugins.artplayerPluginDanmuku.config({opacity:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.opacity&&(r.value=t.opacity,i.innerText=100*t.opacity)}))}}}function o(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-size",index:11,html:'
'.concat(e.get("Danmu size"),': 25px
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=e,t.plugins.artplayerPluginDanmuku.config({fontSize:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.fontSize&&(r.value=t.fontSize,i.innerText=t.fontSize)}))}}}function u(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-speed",index:12,html:'
'.concat(e.get("Danmu speed"),': 5s
'),mounted:function(e){var r=e.querySelector("input[type=range]"),i=e.querySelector(".art-value");n(r,"change",(function(){var e=r.value;i.innerText=e,t.plugins.artplayerPluginDanmuku.config({speed:Number(e)})})),t.on("artplayerPluginDanmuku:config",(function(t){r.value!==t.speed&&(r.value=t.speed,i.innerText=t.speed)}))}}}function s(t){var e=t.i18n,n=t.events.proxy;return{name:"danmuku-synchronousPlayback",index:13,html:'"),mounted:function(e){var r=e.querySelector("input[type=checkbox]");n(r,"change",(function(){t.plugins.artplayerPluginDanmuku.config({synchronousPlayback:r.checked})})),t.on("artplayerPluginDanmuku:config",(function(t){r.checked!==t.synchronousPlayback&&(r.checked=t.synchronousPlayback)}))}}}function l(t,e,n){return t.filter((function(t){return t.$state===e})).map(n)}function c(t,e){var n=t.getBoundingClientRect();return e?n[e]:n}var p=function(t){if(Array.isArray(t))return t};var f=function(t,e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t)){var n=[],r=!0,i=!1,a=void 0;try{for(var o,u=t[Symbol.iterator]();!(r=(o=u.next()).done)&&(n.push(o.value),!e||n.length!==e);r=!0);}catch(t){i=!0,a=t}finally{try{r||null==u.return||u.return()}finally{if(i)throw a}}return n}};var h=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n[\S ]*?)<\/d>/gi);return e&&e.length?e.map((function(t){var e=t.match(/(.+)<\/d>/),n=y(e,3),r=n[1],i=n[2],a=r.split(",");return 8===a.length&&i.trim()?{text:i,time:Number(a[0]),mode:g(Number(a[1])),fontSize:Number(a[2]),color:"#".concat(Number(a[3]).toString(16)),timestamp:Number(a[4]),pool:Number(a[5]),userID:a[6],rowID:Number(a[7])}:null})):[]}(t)}))}function b(t,e){var n=y(t.option.margin,2),r=n[0],i=n[1],a=c(t.art.template.$player),o=t.queue.filter((function(t){return t.mode===e.mode&&"emit"===t.$state&&t.$ref&&t.$ref.style.fontSize===e.$ref.style.fontSize&&parseFloat(t.$ref.style.top)<=a.height-i})).map((function(t){var e=c(t.$ref),n=e.width,r=e.height,i=e.top-a.top,o=e.left-a.left;return{top:i,left:o,height:r,width:n,right:a.width-o-n}})).sort((function(t,e){return t.top-e.top}));return 0===o.length?r:(o.unshift({top:0,left:0,right:0,height:r,width:a.width}),o.push({top:a.height-i,left:0,right:0,height:i,width:a.width}),function(t){for(var e=0,n={},r=0;ro&&(e=c,o=p)}if(0===e)for(var f=0,h=0;hf&&(f=m,e=y(g,1)[0].top)}if(0===e){var x=a.filter((function(t,e){return 0!==e&&e!==a.length-1})).sort((function(t,e){return n[t].length-n[e].length}));e=y(x,1)[0]}return e}(o))}function x(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function $(e){for(var n=1;n=t.time&&t.time>=n.currentTime-.1&&"wait"===t.$state})).forEach((function(r){r.$ref=function(t){var e=t.find((function(t){return t.$ref&&"wait"===t.$state}));if(e){var n=e.$ref;return e.$ref=null,n}var r=document.createElement("div");return r.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n font-weight: normal;\n line-height: 1.125;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',r}(t.queue),t.$danmuku.appendChild(r.$ref),r.$ref.style.opacity=t.option.opacity,r.$ref.style.fontSize="".concat(t.option.fontSize,"px"),r.$ref.innerText=r.text,r.$ref.style.color=r.color||"#fff",r.$ref.style.border=r.border?"1px solid ".concat(r.color||"#fff"):"none",r.$restTime=t.option.synchronousPlayback&&n.playbackRate?t.option.speed/Number(n.playbackRate):t.option.speed,r.$lastStartTime=Date.now();var i=c(r.$ref,"width"),a=b(t,r);switch(r.$state="emit",r.mode){case 0:r.$restWidth=e+i+5,r.$ref.style.left="".concat(e,"px"),r.$ref.style.top="".concat(a,"px"),r.$ref.style.transform="translateX(".concat(-r.$restWidth,"px) translateY(0px) translateZ(0px)"),r.$ref.style.transition="transform ".concat(r.$restTime,"s linear 0s");break;case 1:r.$ref.style.top="".concat(a,"px"),r.$ref.style.left="50%",r.$ref.style.marginLeft="-".concat(i/2,"px")}}))}t.isStop||t.update()})),this}},{key:"stop",value:function(){return this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop"),this}},{key:"start",value:function(){return this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start"),this}},{key:"show",value:function(){return this.isHide=!1,this.$danmuku.style.display="block",this.art.emit("artplayerPluginDanmuku:show"),this}},{key:"hide",value:function(){return this.isHide=!0,this.$danmuku.style.display="none",this.art.emit("artplayerPluginDanmuku:hide"),this}},{key:"emit",value:function(t){var e=this.art,n=e.notice,r=e.player,i=e.i18n,a=this.art.constructor,o=a.utils.clamp;return(0,a.validator)(t,{text:"string",mode:"number|undefined",color:"string|undefined",time:"number|undefined",border:"boolean|undefined"}),t.text.trim()?t.text.length>this.option.maxlength?(n.show="".concat(i.get("The length of the danmu does not exceed")," ").concat(this.option.maxlength),this):(t.time?t.time=o(t.time,0,1/0):t.time=r.currentTime+.5,this.queue.push($($({mode:0},t),{},{$state:"wait",$ref:null,$restTime:0,$lastStartTime:0,$restWidth:0})),this):(n.show=i.get("Danmu text cannot be empty"),this)}}],[{key:"option",get:function(){return{danmuku:[],speed:5,maxlength:50,margin:[10,100],opacity:1,fontSize:25,synchronousPlayback:!1}}},{key:"scheme",get:function(){return{danmuku:"array|function|string",speed:"number",maxlength:"number",margin:"array",opacity:"number",fontSize:"number",synchronousPlayback:"boolean"}}}]),t}();return function(t){return function(e){var n=new k(e,t);return{name:"artplayerPluginDanmuku",emit:n.emit.bind(n),config:n.config.bind(n),hide:n.hide.bind(n),show:n.show.bind(n),get isHide(){return n.isHide}}}}})); diff --git a/dist/artplayer-plugin-gif.js b/dist/artplayer-plugin-gif.js deleted file mode 100644 index 3489582eb..000000000 --- a/dist/artplayer-plugin-gif.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-plugin-gif.js v3.5.31 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2021 Harvey Zack - * Released under the MIT License. - */ - -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).artplayerPluginGif=t()}(this,(function(){"use strict";var e=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function t(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t((function(e,t){!function(t,r,i,n){var o,a,s={URL:t.URL||t.webkitURL||t.mozURL||t.msURL,getUserMedia:(a=i.getUserMedia||i.webkitGetUserMedia||i.mozGetUserMedia||i.msGetUserMedia,a?a.bind(i):a),requestAnimFrame:t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame,requestTimeout:function(e,t){if(e=e||s.noop,t=t||0,!s.requestAnimFrame)return setTimeout(e,t);var r=(new Date).getTime(),i=new Object,n=s.requestAnimFrame;return i.value=n((function o(){(new Date).getTime()-r>=t?e.call():i.value=n(o)})),i},Blob:t.Blob||t.BlobBuilder||t.WebKitBlobBuilder||t.MozBlobBuilder||t.MSBlobBuilder,btoa:(o=t.btoa||function(e){for(var t="",r=0,i=e.length,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o=void 0,a=void 0,s=void 0,c=void 0,d=void 0,l=void 0,u=void 0;r>2,d=(3&o)<<4|(a=e.charCodeAt(r++))>>4,l=(15&a)<<2|(s=e.charCodeAt(r++))>>6,u=63&s,isNaN(a)?l=u=64:isNaN(s)&&(u=64),t=t+n.charAt(c)+n.charAt(d)+n.charAt(l)+n.charAt(u);return t},o?o.bind(t):s.noop),isObject:function(e){return e&&"[object Object]"===Object.prototype.toString.call(e)},isEmptyObject:function(e){return s.isObject(e)&&!Object.keys(e).length},isArray:function(e){return e&&Array.isArray(e)},isFunction:function(e){return e&&"function"==typeof e},isElement:function(e){return e&&1===e.nodeType},isString:function(e){return"string"==typeof e||"[object String]"===Object.prototype.toString.call(e)},isSupported:{canvas:function(){var e=r.createElement("canvas");return e&&e.getContext&&e.getContext("2d")},webworkers:function(){return t.Worker},blob:function(){return s.Blob},Uint8Array:function(){return t.Uint8Array},Uint32Array:function(){return t.Uint32Array},videoCodecs:function(){var e=r.createElement("video"),t={mp4:!1,h264:!1,ogv:!1,ogg:!1,webm:!1};try{e&&e.canPlayType&&(t.mp4=""!==e.canPlayType('video/mp4; codecs="mp4v.20.8"'),t.h264=""!==(e.canPlayType('video/mp4; codecs="avc1.42E01E"')||e.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')),t.ogv=""!==e.canPlayType('video/ogg; codecs="theora"'),t.ogg=""!==e.canPlayType('video/ogg; codecs="theora"'),t.webm=-1!==e.canPlayType('video/webm; codecs="vp8, vorbis"'))}catch(e){}return t}()},noop:function(){},each:function(e,t){var r=void 0,i=void 0;if(s.isArray(e))for(r=-1,i=e.length;++r0&&arguments[0]!==n?arguments[0]:{};if(!r.body||!1===e.resizeFont)return e.fontSize;var t=e.text,i=e.gifWidth,o=parseInt(e.fontSize,10),a=parseInt(e.minFontSize,10),s=r.createElement("div"),c=r.createElement("span");for(s.setAttribute("width",i),s.appendChild(c),c.innerHTML=t,c.style.fontSize=o+"px",c.style.textIndent="-9999px",c.style.visibility="hidden",r.body.appendChild(c);c.offsetWidth>i&&o>=a;)c.style.fontSize=--o+"px";return r.body.removeChild(c),o+"px"},webWorkerError:!1},c=Object.freeze({default:s}),d={validate:function(e){e=s.isObject(e)?e:{};var t={};return s.each(d.validators,(function(r,i){var n=i.errorCode;if(!e[n]&&!i.condition)return(t=i).error=!0,!1})),delete t.condition,t},isValid:function(e){var t=!0!==d.validate(e).error;return t},validators:[{condition:s.isFunction(s.getUserMedia),errorCode:"getUserMedia",errorMsg:"The getUserMedia API is not supported in your browser"},{condition:s.isSupported.canvas(),errorCode:"canvas",errorMsg:"Canvas elements are not supported in your browser"},{condition:s.isSupported.webworkers(),errorCode:"webworkers",errorMsg:"The Web Workers API is not supported in your browser"},{condition:s.isFunction(s.URL),errorCode:"window.URL",errorMsg:"The window.URL API is not supported in your browser"},{condition:s.isSupported.blob(),errorCode:"window.Blob",errorMsg:"The window.Blob File API is not supported in your browser"},{condition:s.isSupported.Uint8Array(),errorCode:"window.Uint8Array",errorMsg:"The window.Uint8Array function constructor is not supported in your browser"},{condition:s.isSupported.Uint32Array(),errorCode:"window.Uint32Array",errorMsg:"The window.Uint32Array function constructor is not supported in your browser"}],messages:{videoCodecs:{errorCode:"videocodec",errorMsg:"The video codec you are trying to use is not supported in your browser"}}},l=Object.freeze({default:d}),u=function(){},f={sampleInterval:10,numWorkers:2,filter:"",gifWidth:200,gifHeight:200,interval:.1,numFrames:10,frameDuration:1,keepCameraOn:!1,images:[],video:null,webcamVideoElement:null,cameraStream:null,text:"",fontWeight:"normal",fontSize:"16px",minFontSize:"10px",resizeFont:!1,fontFamily:"sans-serif",fontColor:"#ffffff",textAlign:"center",textBaseline:"bottom",textXCoordinate:null,textYCoordinate:null,progressCallback:u,completeCallback:u,saveRenderingContexts:!1,savedRenderingContexts:[],crossOrigin:"Anonymous"},g=Object.freeze({default:f});function m(){return d.isValid()}function h(){var e,t,r,i,n,o=256,a=499,s=491,c=487,d=503,l=3*d,u=o-1,f=4,g=100,m=16,h=1<>v,w=h<>3,S=6,C=1<>1,t=c+1;t>1,t=c+1;t<256;t++)R[t]=u}function L(){var n,o,u,m,h,p,v,b,w,y,C,k,W,A;for(r>S)<=1&&(v=0),n=0;n=A&&(W-=r),0===y&&(y=1),++n%y==0)for(b-=b/e,(v=(p-=p/O)>>S)<=1&&(v=0),o=0;o=0;)i=d?i=o:(i++,s<0&&(s=-s),(c=l[0]-e)<0&&(c=-c),(s+=c)=0&&((s=t-(l=n[a])[1])>=d?a=-1:(a--,s<0&&(s=-s),(c=l[0]-e)<0&&(c=-c),(s+=c)>=f,n[e][1]>>=f,n[e][2]>>=f,n[e][3]=e}function B(e,t,r,i,a){var s,c,d,l,u,f,g;for((d=t-e)<-1&&(d=-1),(l=t+e)>o&&(l=o),s=t+1,c=t-1,f=1;sd;){if(u=M[f++],sd){g=n[c--];try{g[0]-=u*(g[0]-r)/T|0,g[1]-=u*(g[1]-i)/T|0,g[2]-=u*(g[2]-a)/T|0}catch(e){}}}}function D(e,t,r,i,o){var a=n[t],s=e/F;a[0]-=s*(a[0]-r)|0,a[1]-=s*(a[1]-i)|0,a[2]-=s*(a[2]-o)|0}function N(e,t,r){var i,a,s,c,d,l,u,g,h,y;for(h=g=~(1<<31),u=l=-1,i=0;i>m-f))>v,j[i]-=d,U[i]+=d<65535||r>65535)throw"Width/Height invalid.";e[o++]=71,e[o++]=73,e[o++]=70,e[o++]=56,e[o++]=57,e[o++]=97;if(e[o++]=255&t,e[o++]=t>>8&255,e[o++]=255&r,e[o++]=r>>8&255,e[o++]=0|(null!==s?128:0),e[o++]=0,e[o++]=0,null!==a){if(a<0||a>65535)throw"Loop count invalid.";e[o++]=33,e[o++]=255,e[o++]=11,e[o++]=78,e[o++]=69,e[o++]=84,e[o++]=83,e[o++]=67,e[o++]=65,e[o++]=80,e[o++]=69,e[o++]=50,e[o++]=46,e[o++]=48,e[o++]=3,e[o++]=1,e[o++]=255&a,e[o++]=a>>8&255,e[o++]=0}var c=!1;this.addFrame=function(t,r,i,a,d,l){if(!0===c&&(--o,c=!1),l=l===n?{}:l,t<0||r<0||t>65535||r>65535)throw"x/y invalid.";if(i<=0||a<=0||i>65535||a>65535)throw"Width/Height invalid.";if(d.length256||t&t-1)throw"Invalid code/color length, must be power of 2 and 2 .. 256.";return t}(f),m=0;g>>=1;)++m;g=1<3)throw"Disposal out of range.";var v=!1,b=0;if(l.transparent!==n&&null!==l.transparent&&(v=!0,(b=l.transparent)<0||b>=g))throw"Transparent color index.";if((0!==p||v||0!==h)&&(e[o++]=33,e[o++]=249,e[o++]=4,e[o++]=p<<2|(!0===v?1:0),e[o++]=255&h,e[o++]=h>>8&255,e[o++]=b,e[o++]=0),e[o++]=44,e[o++]=255&t,e[o++]=t>>8&255,e[o++]=255&r,e[o++]=r>>8&255,e[o++]=255&i,e[o++]=i>>8&255,e[o++]=255&a,e[o++]=a>>8&255,e[o++]=!0===u?128|m-1:0,!0===u)for(var w=0,y=f.length;w>16&255,e[o++]=S>>8&255,e[o++]=255&S}o=function(e,t,r,i){e[t++]=r;var o=t++,a=1<=r;)e[t++]=255&f,f>>=8,u-=8,t===o+256&&(e[o]=255,o=t++)}function m(e){f|=e<=8;)e[t++]=255&f,f>>=8,u-=8,t===o+256&&(e[o]=255,o=t++);4096===d?(m(a),d=c+1,l=r+1,p={}):(d>=1<0&&arguments[0]!==n?arguments[0]:{},r=e.data;delete s.data,s.pixels=Array.prototype.slice.call(r.pixels),s.palette=Array.prototype.slice.call(r.palette),s.done=!0,s.beingProcessed=!1,t.freeWorker(c),t.onFrameFinished(i)};(s=a[e]).beingProcessed||s.done?this.onFrameFinished():(s.sampleInterval=o,s.beingProcessed=!0,s.gifshot=!0,(c=this.getWorker())?(c.onmessage=d,c.postMessage(s)):d({data:t.workerMethods.run(s)}))},startRendering:function(e){this.onRenderCompleteCallback=e;for(var t=0;t=0&&this.processFrame(e)},generateGIF:function(e,t){var r=[],i={loop:this.repeat},n=this.options,o=n.interval,a=n.frameDuration,c=!!n.images.length,d=n.gifHeight,l=n.gifWidth,u=new v(r,l,d,i),f=this.onRenderProgressCallback,g=c?100*o:0,m=void 0;this.generatingGIF=!0,s.each(e,(function(t,r){var i=r.palette;f(.75+.25*r.position*1/e.length);for(var n=0;n0&&arguments[0]!==n?arguments[0]:{},t=this.frames,r=e.data;this.frames.push({data:r,width:e.width,height:e.height,palette:null,dithering:null,done:!1,beingProcessed:!1,position:t.length})},onRenderProgress:function(e){this.onRenderProgressCallback=e},isRendering:function(){return this.generatingGIF},getBase64GIF:function(e){var t=this;t.startRendering((function(r){t.destroyWorkers(),s.requestTimeout((function(){e(r)}),0)}))},destroyWorkers:function(){if(!this.workerError){var e=this.workers;s.each(e,(function(e,t){var r=t.worker,i=t.objectUrl;r.terminate(),s.URL.revokeObjectURL(i)}))}}};var S=function(){},C=function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=arguments[1];t=s.isFunction(t)?t:S;var i=r.createElement("canvas"),o=void 0,a=e.images,c=!!a.length,d=e.cameraStream,l=e.crop,u=e.filter,f=e.fontColor,g=e.fontFamily,m=e.fontWeight,h=e.keepCameraOn,p=(e.numWorkers,e.progressCallback),v=e.saveRenderingContexts,b=e.savedRenderingContexts,y=e.text,C=e.textAlign,x=e.textBaseline,O=e.videoElement,k=e.videoHeight,F=e.videoWidth,W=e.webcamVideoElement,E=Number(e.gifWidth),A=Number(e.gifHeight),T=Number(e.interval),R=(Number(e.sampleInterval),c?0:1e3*T),U=[],j=b.length?b.length:e.numFrames,M=j,I=new w(e),P=s.getFontSize(e),V=e.textXCoordinate?e.textXCoordinate:"left"===C?1:"right"===C?E:E/2,L=e.textYCoordinate?e.textYCoordinate:"top"===x?1:"center"===x?A/2:A,H=m+" "+P+" "+g,z=l?Math.floor(l.scaledWidth/2):0,G=l?F-l.scaledWidth:0,B=l?Math.floor(l.scaledHeight/2):0,D=l?k-l.scaledHeight:0,N=function e(){var r=M-1;function i(){var i;v&&U.push(o.getImageData(0,0,E,A)),y&&(o.font=H,o.fillStyle=f,o.textAlign=C,o.textBaseline=x,o.fillText(y,V,L)),i=o.getImageData(0,0,E,A),I.addFrameImageData(i),p((j-(M=r))/j),r>0&&s.requestTimeout(e,R),M||I.getBase64GIF((function(e){t({error:!1,errorCode:"",errorMsg:"",image:e,cameraStream:d,videoElement:O,webcamVideoElement:W,savedRenderingContexts:U,keepCameraOn:h})}))}b.length?(o.putImageData(b[j-M],0,0),i()):function e(){try{G>F&&(G=F),D>k&&(D=k),z<0&&(z=0),B<0&&(B=0),o.filter=u,o.drawImage(O,z,B,G,D,0,0,E,A),i()}catch(t){if("NS_ERROR_NOT_AVAILABLE"!==t.name)throw t;s.requestTimeout(e,100)}}()};j=j!==n?j:10,T=T!==n?T:.1,i.width=E,i.height=A,o=i.getContext("2d"),function e(){b.length||0!==O.currentTime?N():s.requestTimeout(e,100)}()},x=function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.videoWidth,r=e.videoHeight,i=e.gifWidth,o=e.gifHeight,a={width:0,height:0,scaledWidth:0,scaledHeight:0};return t>r?(a.width=Math.round(t*(o/r))-i,a.scaledWidth=Math.round(a.width*(r/o))):(a.height=Math.round(r*(i/t))-o,a.scaledHeight=Math.round(a.height*(t/i))),a},O={loadedData:!1,defaultVideoDimensions:{width:640,height:480},findVideoSize:function e(t){e.attempts=e.attempts||0;var r=t.cameraStream,i=t.completedCallback,n=t.videoElement;n&&(n.videoWidth>0&&n.videoHeight>0?(n.removeEventListener("loadeddata",O.findVideoSize),i({videoElement:n,cameraStream:r,videoWidth:n.videoWidth,videoHeight:n.videoHeight})):e.attempts<10?(e.attempts+=1,s.requestTimeout((function(){O.findVideoSize(t)}),400)):i({videoElement:n,cameraStream:r,videoWidth:O.defaultVideoDimensions.width,videoHeight:O.defaultVideoDimensions.height}))},onStreamingTimeout:function(e){s.isFunction(e)&&e({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - Timed out while trying to start streaming",image:null,cameraStream:{}})},stream:function(e){var t=s.isArray(e.existingVideo)?e.existingVideo[0]:e.existingVideo,r=e.cameraStream,i=e.completedCallback,n=e.streamedCallback,o=e.videoElement;if(s.isFunction(n)&&n(),t){if(s.isString(t))o.src=t,o.innerHTML='';else if(t instanceof Blob){try{o.src=s.URL.createObjectURL(t)}catch(e){}o.innerHTML=''}}else if(o.mozSrcObject)o.mozSrcObject=r;else if(s.URL)try{o.srcObject=r,o.src=s.URL.createObjectURL(r)}catch(e){o.srcObject=r}o.play(),s.requestTimeout((function e(){e.count=e.count||0,!0===O.loadedData?(O.findVideoSize({videoElement:o,cameraStream:r,completedCallback:i}),O.loadedData=!1):(e.count+=1)>10?O.findVideoSize({videoElement:o,cameraStream:r,completedCallback:i}):e()}),0)},startStreaming:function(e){var t=s.isFunction(e.error)?e.error:s.noop,i=s.isFunction(e.streamed)?e.streamed:s.noop,n=s.isFunction(e.completed)?e.completed:s.noop,o=e.crossOrigin,a=e.existingVideo,c=e.lastCameraStream,d=e.options,l=e.webcamVideoElement,u=s.isElement(a)?a:l||r.createElement("video");o&&(u.crossOrigin=d.crossOrigin),u.autoplay=!0,u.loop=!0,u.muted=!0,u.addEventListener("loadeddata",(function(e){O.loadedData=!0,d.offset&&(u.currentTime=d.offset)})),a?O.stream({videoElement:u,existingVideo:a,completedCallback:n}):c?O.stream({videoElement:u,cameraStream:c,streamedCallback:i,completedCallback:n}):s.getUserMedia({video:!0},(function(e){O.stream({videoElement:u,cameraStream:e,streamedCallback:i,completedCallback:n})}),t)},startVideoStreaming:function(e){var t=arguments.length>1&&arguments[1]!==n?arguments[1]:{},r=t.timeout!==n?t.timeout:0,i=t.callback,o=t.webcamVideoElement,a=void 0;r>0&&(a=s.requestTimeout((function(){O.onStreamingTimeout(i)}),1e4)),O.startStreaming({error:function(){i({error:!0,errorCode:"getUserMedia",errorMsg:"There was an issue with the getUserMedia API - the user probably denied permission",image:null,cameraStream:{}})},streamed:function(){clearTimeout(a)},completed:function(){var t=arguments.length>0&&arguments[0]!==n?arguments[0]:{},r=t.cameraStream,i=t.videoElement,o=t.videoHeight,a=t.videoWidth;e({cameraStream:r,videoElement:i,videoHeight:o,videoWidth:a})},lastCameraStream:t.lastCameraStream,webcamVideoElement:o,crossOrigin:t.crossOrigin,options:t})},stopVideoStreaming:function(e){var t=e=s.isObject(e)?e:{},r=t.keepCameraOn,i=t.videoElement,n=t.webcamVideoElement,o=e.cameraStream||{},a=o.getTracks&&o.getTracks()||[],c=!!a.length,d=a[0];!r&&c&&s.isFunction(d.stop)&&d.stop(),s.isElement(i)&&!n&&(i.pause(),s.isFunction(s.URL.revokeObjectURL)&&!s.webWorkerError&&i.src&&s.URL.revokeObjectURL(i.src),s.removeElement(i))}};function k(e){e=s.isObject(e)?e:{},O.stopVideoStreaming(e)}function F(e,t){var i=e.options||{},n=i.images,o=i.video,a=Number(i.gifWidth),c=Number(i.gifHeight),d=(Number(i.numFrames),e.cameraStream),l=e.videoElement,u=e.videoWidth,f=e.videoHeight,g=x({videoWidth:u,videoHeight:f,gifHeight:c,gifWidth:a}),m=t;i.crop=g,i.videoElement=l,i.videoWidth=u,i.videoHeight=f,i.cameraStream=d,s.isElement(l)&&(l.width=a+g.width,l.height=c+g.height,i.webcamVideoElement||(s.setCSSAttr(l,{position:"fixed",opacity:"0"}),r.body.appendChild(l)),l.play(),C(i,(function(e){n&&n.length||o&&o.length||k(e),m(e)})))}function W(e,t){if(t=s.isFunction(e)?e:t,e=s.isObject(e)?e:{},s.isFunction(t)){var i=s.mergeOptions(f,e)||{},o=e.cameraStream,a=i.images,c=a?a.length:0,l=i.video,u=i.webcamVideoElement;i=s.mergeOptions(i,{gifWidth:Math.floor(i.gifWidth),gifHeight:Math.floor(i.gifHeight)}),c?function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.callback,i=e.images,o=e.options,a=e.imagesLength,c={getUserMedia:!0,"window.URL":!0},l=d.validate(c),u=[],f=0,g=void 0,m=void 0;if(l.error)return t(l);function h(){s.each(u,(function(e,t){t&&(t.text?m.addFrame(t.img,o,t.text):m.addFrame(t,o))})),y(m,t)}m=new w(o),s.each(i,(function(e,i){var n=i;i.src&&(n=n.src),s.isElement(n)?(o.crossOrigin&&(n.crossOrigin=o.crossOrigin),u[e]=n,(f+=1)===a&&h()):s.isString(n)&&(g=new Image,o.crossOrigin&&(g.crossOrigin=o.crossOrigin),function(r){i.text&&(r.text=i.text),r.onerror=function(e){var r=void 0;if(0==--a)return(r={}).error="None of the requested images was capable of being retrieved",t(r)},r.onload=function(t){i.text?u[e]={img:r,text:r.text}:u[e]=r,(f+=1)===a&&h(),s.removeElement(r)},r.src=n}(g),s.setCSSAttr(g,{position:"fixed",opacity:"0"}),r.body.appendChild(g))}))}({images:a,imagesLength:c,callback:t,options:i}):l?function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.callback,r=e.existingVideo,i=e.options,o={getUserMedia:!0,"window.URL":!0},a=d.validate(o),c=void 0,l=void 0;if(a.error)return t(a);if(s.isElement(r)&&r.src){if(l=r.src,c=s.getExtension(l),!s.isSupported.videoCodecs[c])return t(d.messages.videoCodecs)}else s.isArray(r)&&s.each(r,(function(e,t){if(c=t instanceof Blob?t.type.substr(t.type.lastIndexOf("/")+1,t.length):t.substr(t.lastIndexOf(".")+1,t.length),s.isSupported.videoCodecs[c])return r=t,!1}));O.startStreaming({completed:function(e){e.options=i||{},F(e,t)},existingVideo:r,crossOrigin:i.crossOrigin,options:i})}({existingVideo:l,callback:t,options:i}):function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=e.callback,r=e.lastCameraStream,i=e.options,o=e.webcamVideoElement;if(!m())return t(d.validate());i.savedRenderingContexts.length?C(i,(function(e){t(e)})):O.startVideoStreaming((function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{};e.options=i||{},F(e,t)}),{lastCameraStream:r,callback:t,webcamVideoElement:o,crossOrigin:i.crossOrigin})}({lastCameraStream:o,callback:t,webcamVideoElement:u,options:i})}}var E={utils:c,error:l,defaultOptions:g,createGIF:W,takeSnapShot:function(e,t){if(t=s.isFunction(e)?e:t,e=s.isObject(e)?e:{},s.isFunction(t)){var r=s.mergeOptions(f,e);W(s.mergeOptions(r,{interval:.1,numFrames:1,gifWidth:Math.floor(r.gifWidth),gifHeight:Math.floor(r.gifHeight)}),t)}},stopVideoStreaming:k,isSupported:function(){return d.isValid()},isWebCamGIFSupported:m,isExistingVideoGIFSupported:function(e){var t=!1;if(s.isArray(e)&&e.length){if(s.each(e,(function(e,r){s.isSupported.videoCodecs[r]&&(t=!0)})),!t)return!1}else if(s.isString(e)&&e.length&&!s.isSupported.videoCodecs[e])return!1;return d.isValid({getUserMedia:!0})},isExistingImagesGIFSupported:function(){return d.isValid({getUserMedia:!0})},VERSION:"0.4.5"};e.exports=E}("undefined"!=typeof window?window:{},"undefined"!=typeof document?document:{createElement:function(){}},"undefined"!=typeof window?window.navigator:{})})),i=t((function(e){var t;t=function(){return function(e,t,r){t=t||"",r=r||512;for(var i=atob(e),n=[],o=0;o0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;w=!0,f.show=!0,e.emit("artplayerPluginGif:start"),d.show=c.get("Start creating gif..."),r.createGIF(o(o({},t),{},{video:[v.src],crossOrigin:"anonymous"}),(function(t){if(t.error)d.show=t.errorMsg,n(!1,t.errorMsg);else if("function"==typeof a){var r=t.image.split(",")[1],o=i(r,"image/gif"),s=URL.createObjectURL(o);d.show=c.get("Create gif successfully"),e.emit("artplayerPluginGif",s),a(s)}w=!1,f.show=!1,e.emit("artplayerPluginGif:end")}))}}}})); diff --git a/dist/artplayer-react.js b/dist/artplayer-react.js deleted file mode 100644 index 9a3575ea1..000000000 --- a/dist/artplayer-react.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-react.js v3.5.31 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2021 Harvey Zack - * Released under the MIT License. - */ - -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ArtplayerReact=e()}(this,(function(){"use strict";var t=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n=0||(o[r]=t[r]);return o};var e=function(e,r){if(null==e)return{};var n,o,i=t(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i};var r=function(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function n(t,e){return t(e={exports:{}},e.exports),e.exports}var o=n((function(t){function e(r){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?t.exports=e=function(t){return typeof t}:t.exports=e=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(r)}t.exports=e}));var i=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function a(t,e){for(var r=0;rH.length&&H.push(t)}function X(t,e,r,n){var o=typeof t;"undefined"!==o&&"boolean"!==o||(t=null);var i=!1;if(null===t)i=!0;else switch(o){case"string":case"number":i=!0;break;case"object":switch(t.$$typeof){case g:case w:i=!0}}if(i)return r(n,t,""===e?"."+Z(t,0):e),1;if(i=0,e=""===e?".":e+":",Array.isArray(t))for(var a=0;a1?e-1:0),n=1;n2?r-2:0),o=2;o2?r-2:0),o=2;o8)throw new Error("warningWithoutStack() currently supports at most 8 arguments.");if(!t){if("undefined"!=typeof console){var i=n.map((function(t){return""+t}));i.unshift("Warning: "+e),Function.prototype.apply.call(console.error,console,i)}try{var a=0,c="Warning: "+e.replace(/%s/g,(function(){return n[a++]}));throw new Error(c)}catch(t){}}},S={};function R(t,e){var r=t.constructor,n=r&&(r.displayName||r.name)||"ReactClass",o=n+"."+e;S[o]||(P(!1,"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",e,n),S[o]=!0)}var E={isMounted:function(t){return!1},enqueueForceUpdate:function(t,e,r){R(t,"forceUpdate")},enqueueReplaceState:function(t,e,r,n){R(t,"replaceState")},enqueueSetState:function(t,e,r,n){R(t,"setState")}},$={};function C(t,e,r){this.props=t,this.context=e,this.refs=$,this.updater=r||E}Object.freeze($),C.prototype.isReactComponent={},C.prototype.setState=function(t,e){if("object"!=typeof t&&"function"!=typeof t&&null!=t)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")},C.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};var D={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},T=function(t,e){Object.defineProperty(C.prototype,t,{get:function(){j(!1,"%s(...) is deprecated in plain JavaScript React classes. %s",e[0],e[1])}})};for(var A in D)D.hasOwnProperty(A)&&T(A,D[A]);function z(){}function _(t,e,r){this.props=t,this.context=e,this.refs=$,this.updater=r||E}z.prototype=C.prototype;var L=_.prototype=new z;L.constructor=_,e(L,C.prototype),L.isPureReactComponent=!0;var M={current:null},I={current:null},q=/^(.*)[\\\/]/;function F(t){if(null==t)return null;if("number"==typeof t.tag&&P(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),"function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t;switch(t){case a:return"Fragment";case i:return"Portal";case l:return"Profiler";case c:return"StrictMode";case d:return"Suspense";case y:return"SuspenseList"}if("object"==typeof t)switch(t.$$typeof){case u:return"Context.Consumer";case s:return"Context.Provider";case p:return n=t,o=t.render,f="ForwardRef",v=o.displayName||o.name||"",n.displayName||(""!==v?f+"("+v+")":f);case h:return F(t.type);case m:var e=1===(r=t)._status?r._result:null;if(e)return F(e)}var r,n,o,f,v;return null}var N={},W=null;function V(t){W=t}N.getCurrentStack=null,N.getStackAddendum=function(){var t="";if(W){var e=F(W.type),r=W._owner;t+=function(t,e,r){var n="";if(e){var o=e.fileName,i=o.replace(q,"");if(/^index\./.test(i)){var a=o.match(q);if(a){var c=a[1];c&&(i=c.replace(q,"")+"/"+i)}}n=" (at "+i+":"+e.lineNumber+")"}else r&&(n=" (created by "+r+")");return"\n in "+(t||"Unknown")+n}(e,W._source,r&&F(r.type))}var n=N.getCurrentStack;return n&&(t+=n()||""),t};var U={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:I,IsSomeRendererActing:{current:!1},assign:e};e(U,{ReactDebugCurrentFrame:N,ReactComponentTreeHook:{}});var H,B,Y=function(t,e){if(!t){for(var r=U.ReactDebugCurrentFrame,n=r.getStackAddendum(),o=arguments.length,i=new Array(o>2?o-2:0),a=2;a1){for(var u=Array(s),f=0;f1){for(var d=Array(p),y=0;y.")}return e}(e);if(!Ot[r]){Ot[r]=!0;var n="";t&&t._owner&&t._owner!==I.current&&(n=" It was passed a child from "+F(t._owner.type)+"."),V(t),Y(!1,'Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',r,n),V(null)}}}function jt(t,e){if("object"==typeof t)if(Array.isArray(t))for(var r=0;r",i=" Did you accidentally export a JSX literal instead of a component?"):c=typeof t,Y(!1,"React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",c,i)}var s=et.apply(this,arguments);if(null==s)return s;if(n)for(var u=2;u is not supported and will be removed in a future major release. Did you mean to render instead?")),r.Provider},set:function(t){r.Provider=t}},_currentValue:{get:function(){return r._currentValue},set:function(t){r._currentValue=t}},_currentValue2:{get:function(){return r._currentValue2},set:function(t){r._currentValue2=t}},_threadCount:{get:function(){return r._threadCount},set:function(t){r._threadCount=t}},Consumer:{get:function(){return n||(n=!0,Y(!1,"Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),r.Consumer}}}),r.Consumer=i,r._currentRenderer=null,r._currentRenderer2=null,r},forwardRef:function(t){return null!=t&&t.$$typeof===h?P(!1,"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof t?P(!1,"forwardRef requires a render function but was given %s.",null===t?"null":typeof t):0!==t.length&&2!==t.length&&P(!1,"forwardRef render functions accept exactly two parameters: props and ref. %s",1===t.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=t&&(null!=t.defaultProps||null!=t.propTypes)&&P(!1,"forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"),{$$typeof:p,render:t}},lazy:function(t){var e,r,n={$$typeof:m,_ctor:t,_status:-1,_result:null};return Object.defineProperties(n,{defaultProps:{configurable:!0,get:function(){return e},set:function(t){Y(!1,"React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),e=t,Object.defineProperty(n,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return r},set:function(t){Y(!1,"React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),r=t,Object.defineProperty(n,"propTypes",{enumerable:!0})}}}),n},memo:function(t,e){return bt(t)||P(!1,"memo: The first argument must be a component. Instead received: %s",null===t?"null":typeof t),{$$typeof:h,type:t,compare:void 0===e?null:e}},useCallback:function(t,e){return gt().useCallback(t,e)},useContext:function(t,e){var r=gt();if(void 0!==e&&Y(!1,"useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",e,"number"==typeof e&&Array.isArray(arguments[2])?"\n\nDid you call array.map(useContext)? Calling Hooks inside a loop is not supported. Learn more at https://fb.me/rules-of-hooks":""),void 0!==t._context){var n=t._context;n.Consumer===t?Y(!1,"Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):n.Provider===t&&Y(!1,"Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return r.useContext(t,e)},useEffect:function(t,e){return gt().useEffect(t,e)},useImperativeHandle:function(t,e,r){return gt().useImperativeHandle(t,e,r)},useDebugValue:function(t,e){return gt().useDebugValue(t,e)},useLayoutEffect:function(t,e){return gt().useLayoutEffect(t,e)},useMemo:function(t,e){return gt().useMemo(t,e)},useReducer:function(t,e,r){return gt().useReducer(t,e,r)},useRef:function(t){return gt().useRef(t)},useState:function(t){return gt().useState(t)},Fragment:a,Profiler:l,StrictMode:c,Suspense:d,createElement:Rt,cloneElement:function(t,e,r){for(var n=rt.apply(this,arguments),o=2;o1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function wt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function xt(t,e){return t.classList.add(e)}function Ot(t,e){return t.classList.remove(e)}function kt(t,e){return t.classList.contains(e)}function jt(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function Pt(t){return t.parentNode.removeChild(t)}function St(t,e,r){return t.style[e]=r,t}function Rt(t,e){return Object.keys(e).forEach((function(r){St(t,r,e[r])})),t}function Et(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function $t(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function Ct(t,e){$t(t).forEach((function(t){return Ot(t,e)})),xt(t,e)}function Dt(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";mt||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function Tt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function At(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}var zt=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")};var _t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}},Lt=n((function(t){function e(r,n,o){return _t()?t.exports=e=Reflect.construct:t.exports=e=function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&l(o,r.prototype),o},e.apply(null,arguments)}t.exports=e}));function Mt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var It=function(t){s(r,t);var e=Mt(r);function r(t,n){var o;return i(this,r),o=e.call(this,t),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(u(o),n||o.constructor),o.name="ArtPlayerError",o}return r}(n((function(t){function e(r){var n="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!zt(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return Lt(t,arguments,p(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),l(e,t)},e(r)}t.exports=e}))(Error));function qt(t,e){if(!t)throw new It(e);return t}function Ft(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function Nt(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function Wt(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function Vt(t){return t.includes("?")?Vt(t.split("?")[0]):t.includes("#")?Vt(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function Ut(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}var Ht=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function ne(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),l=0;l0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function ae(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var ce=Object.freeze({__proto__:null,query:gt,queryAll:wt,addClass:xt,removeClass:Ot,hasClass:kt,append:jt,remove:Pt,setStyle:St,setStyles:Rt,getStyle:Et,sublings:$t,inverseClass:Ct,tooltip:Dt,isInViewport:Tt,includeFromEvent:At,ArtPlayerError:It,errorHandle:qt,srtToVtt:Ft,vttToBlob:Nt,assToVtt:Wt,getExt:Vt,download:Ut,def:Qt,has:Kt,proxyPropertys:te,mergeDeep:ee,sleep:re,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(e.userAgent);case"regexp":return t.test(e.userAgent);default:return!1}}))},we=function(){function t(e){var r=this;i(this,t),this.art=e,e.option.container instanceof Element?this.$container=e.option.container:(this.$container=gt(e.option.container),qt(this.$container,"No container element found by ".concat(e.option.container))),qt(e.constructor.instances.every((function(t){return t.template.$container!==r.$container})),"Cannot mount multiple instances on the same dom element"),e.whitelist.state?this.desktop():this.mobile()}return c(t,[{key:"query",value:function(t){return gt(t,this.$container)}},{key:"desktop",value:function(){var e=this.art.option,r=e.backdrop,n=e.theme;e.useSSR||(this.$container.innerHTML=t.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(xt(this.$settingInner,"art-backdrop-filter"),xt(this.$contextmenu,"art-backdrop-filter"),this.$info&&xt(this.$info,"art-backdrop-filter")),this.art.isMobile&&xt(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":xt(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),t}(),xe={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},Oe={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},ke=function(){function t(e){i(this,t),this.art=e,this.languages={"zh-cn":xe,"zh-tw":Oe},this.init()}return c(t,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=ee(this.languages,t),this.init()}}]),t}();var je=n((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var y=d*s/l;St(n,"width","".concat(100*y,"%")),St(n,"height","100%"),St(n,"padding","0 ".concat((u-u*y)/2,"px"))}else{var h=l/d/s;St(n,"width","100%"),St(n,"height","".concat(100*h,"%")),St(n,"padding","".concat((f-f*h)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),Qt(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(e,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");Qt(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),Qt(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),Qt(e,"screenshot",{value:function(){e.getDataURL().then((function(e){Ut(e,"".concat(r.title||"artplayer","_").concat(ie(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(e,this),Pe(e,this),function(t,e){var r=t.template.$player;Qt(e,"fullscreenWeb",{get:function(){return kt(r,"art-fullscreen-web")},set:function(n){n?(xt(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(Ot(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),Qt(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(e,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;Qt(e,"fullscreenRotate",{get:function(){return kt(n,"art-fullscreen-rotate")},set:function(r){if(r){xt(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,l=o.clientHeight,s=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(e,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;Qt(e,"autoSize",{get:function(){return kt(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,l=n.getBoundingClientRect(),s=l.width,u=l.height,f=a/c,p=s/u;if(xt(n,"art-auto-size"),p>f)St(o,"width","".concat(u*f/s*100,"%")),St(o,"height","100%");else{var d=s/f/u*100;St(o,"width","100%"),St(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else Ot(n,"art-auto-size"),St(o,"width",null),St(o,"height",null),t.emit("autoSize")}})}(e,this),function(t,e){Qt(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){Qt(e,t,{get:function(){return e.rect[t]}})})),Qt(e,"x",{get:function(){return e.left+window.pageXOffset}}),Qt(e,"y",{get:function(){return e.top+window.pageYOffset}})}(e,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;Qt(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];qt(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),Qt(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(e,this),function(t,e){var r=t.template.$undercover;Qt(e,"light",{get:function(){return"none"!==Et(r,"display",!1)},set:function(e){St(r,"display",e?"block":"none"),t.emit("light",e)}})}(e,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,l=a.$miniClose,s=a.$miniTitle,u=a.$miniHeader,f="",p=!1,d=0,y=0,h=0,m=0;i(u,"mousedown",(function(t){p=!0,d=t.pageX,y=t.pageY,h=e.left,m=e.top})),i(document,"mousemove",(function(t){if(p){xt(c,"art-is-dragging");var e=m+t.pageY-y,r=h+t.pageX-d;St(c,"top","".concat(e,"px")),St(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){p=!1,Ot(c,"art-is-dragging")})),i(l,"click",(function(){e.mini=!1,p=!1,Ot(c,"art-is-dragging")})),jt(s,n.title||r.get("Mini player")),Qt(e,"mini",{get:function(){return kt(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,f=c.style.cssText,xt(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)St(c,"top","".concat(i,"px")),St(c,"left","".concat(a,"px")),Tt(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var l=document.body,s=l.clientHeight-e.height-50,p=l.clientWidth-e.width-50;o.set("top",s),o.set("left",p),St(c,"top","".concat(s,"px")),St(c,"left","".concat(p,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=f,Ot(c,"art-mini"),St(c,"top",null),St(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),Qt(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(e,this),function(t,e){var r=[];Qt(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=oe(n[0],0,Math.min(n[1],e.duration)),i=oe(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(e,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;Qt(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(qt(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,St(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var l=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},s=0,u=1;switch(r){case-270:s=90,u=l();break;case-180:s=180;break;case-90:s=270,u=l();break;case 90:s=90,u=l();break;case 180:s=180;break;case 270:s=270,u=l()}St(n,"transform","rotate(".concat(s,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),Qt(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(e,this),function(t,e){var r=t.option,n=t.template.$poster;Qt(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,St(n,"backgroundImage","url(".concat(t,")"))}})}(e,this),te(e,this)};var Ee=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=p(t)););return t},$e=n((function(t){function e(r,n,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,r){var n=Ee(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(r):o.value}},e(r,n,o||r)}t.exports=e})),Ce=function(){function t(e){i(this,t),this.id=0,this.art=e,this.add=this.add.bind(this)}return c(t,[{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);qt(!Kt(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");xt(o,"art-".concat(this.name)),xt(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):jt(this.$parent,o),r.html&&jt(o,r.html),r.style&&Rt(o,r.style),r.tooltip&&Dt(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&xt(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;xt(e,"art-control-selector");var a=document.createElement("div");xt(a,"art-selector-value"),jt(a,t.html),e.innerText="",jt(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),l=document.createElement("div");xt(l,"art-selector-list"),jt(l,c),jt(e,l);var s=function(){l.style.left="-".concat(Et(l,"width")/2-Et(e,"width")/2,"px")};o(e,s),i(e,"click",(function(e){if(kt(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,s(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}},{key:"show",get:function(){return kt(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?xt(e,r):Ot(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}}]),t}();function De(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Te(t){for(var e=1;e
'),mounted:function(t){var r=!1,o=gt(".art-progress-loaded",t),c=gt(".art-progress-played",t),l=gt(".art-progress-highlight",t),s=gt(".art-progress-indicator",t),u=gt(".art-progress-tip",t);function f(t,e){"loaded"===t&&St(o,"width","".concat(100*e,"%")),"played"===t&&(St(c,"width","".concat(100*e,"%")),St(s,"left","calc(".concat(100*e,"% - ").concat(Et(s,"width")/2,"px)")))}n.forEach((function(t){var e=oe(t.time,0,a.duration)/a.duration*100;jt(l,''))})),f("loaded",a.loaded),e.on("video:progress",(function(){f("loaded",a.loaded)})),e.on("video:timeupdate",(function(){f("played",a.played)})),e.on("video:ended",(function(){f("played",1)})),i(t,"mousemove",(function(r){St(u,"display","block"),At(r,l)?function(r){var n=Ne(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?St(u,"left",0):n>t.clientWidth-i/2?St(u,"left","".concat(t.clientWidth-i,"px")):St(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=Ne(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?St(u,"left",0):o>t.clientWidth-a/2?St(u,"left","".concat(t.clientWidth-a,"px")):St(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){St(u,"display","none")})),i(t,"click",(function(t){if(t.target!==s){var r=Ne(e,t),n=r.second;f("played",r.percentage),a.seek=n}})),i(s,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=Ne(e,t),o=n.second,i=n.percentage;xt(s,"art-show-indicator"),f("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,Ot(s,"art-show-indicator"))}))}})}}function Ve(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ue(t){for(var e=1;en.clientWidth-l/2?St(t,"left","".concat(n.clientWidth-l,"px")):St(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){St(t,"display","none")}))}})}}function tr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function er(t){for(var e=1;e=3e3&&(n.show=!1,xt(c,"art-hide-cursor"),Ot(c,"art-hover"))})),t.once("ready",(function(){n.add(We({name:"progress",disable:o.isLive,position:"top",index:10})),n.add(Ke({name:"thumbnails",disable:!o.thumbnails.url||o.isLive,position:"top",index:20})),n.add(function(t){return function(e){return ir(ir({},t),{},{mounted:function(t){var r=e.player,n=jt(t,''),o=jt(t,'');e.on("loop",(function(e){e?(St(t,"display","block"),St(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),St(o,"left","".concat(e[1]/r.duration*100,"%"))):St(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),n.add(function(t){return function(e){return Ie(Ie({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=jt(t,n.play),c=jt(t,n.pause);function l(){St(a,"display","flex"),St(c,"display","none")}function s(){St(a,"display","none"),St(c,"display","flex")}Dt(a,o.get("Play")),Dt(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?s():l(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){l()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),n.add(function(t){return function(e){return Xe(Xe({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=jt(t,n.volume),l=jt(t,n.volumeClose),s=jt(t,'
'),u=jt(s,'
');function f(t){var e=s.getBoundingClientRect().left;return oe(t.pageX-e-6,0,54)/48}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)St(c,"display","none"),St(l,"display","flex"),St(u,"left","0");else{var e=48*t;St(c,"display","flex"),St(l,"display","none"),St(u,"left","".concat(e,"px"))}}Dt(c,i.get("Mute")),St(l,"display","none"),e.isMobile&&St(s,"display","none"),p(o.volume),e.on("video:volumechange",(function(){p(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(l,"click",(function(){o.muted=!1})),r(s,"click",(function(t){o.muted=!1,o.volume=f(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=f(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),n.add(function(t){return function(e){return Be(Be({},t),{},{mounted:function(t){function r(){var r="".concat(ie(e.player.currentTime)," / ").concat(ie(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:o.isLive,position:"left",index:30})),n.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return nr(nr({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===o.quality.length,position:"right",index:10})),n.add(function(t){return function(e){return er(er({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;jt(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!o.screenshot,position:"right",index:20})),n.add(function(t){return function(e){return Ue(Ue({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;jt(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){Dt(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!o.subtitle.url,position:"right",index:30})),n.add(function(t){return function(e){return Ze(Ze({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;jt(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){Dt(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!o.setting,position:"right",index:40})),n.add(function(t){return function(e){return Le(Le({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;jt(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){Dt(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!o.pip,position:"right",index:50})),n.add(function(t){return function(e){return ze(ze({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;jt(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){Dt(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!o.fullscreenWeb,position:"right",index:60})),n.add(function(t){return function(e){return Te(Te({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;jt(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){Dt(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!o.fullscreen,position:"right",index:70})),o.controls.forEach((function(t){n.add(t)}))})),n}return c(r,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,n=this.art.template,o=n.$progress,i=n.$controlsLeft,a=n.$controlsRight;switch(e.position){case"top":this.$parent=o;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:qt(!1,"Control option.position must one of 'top', 'left', 'right'")}$e(p(r.prototype),"add",this).call(this,e)}}]),r}(Ce);function lr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function sr(t){for(var e=1;e0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=wt("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&Ct(r,"art-current")}))}})}}({disable:!o.playbackRate,name:"playbackRate",index:10})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return fr(fr({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=wt("span",t).find((function(t){return t.dataset.ratio===e}));r&&Ct(r,"art-current")}))}})}}({disable:!o.aspectRatio,name:"aspectRatio",index:20})),n.add(function(t){return function(e){return dr(dr({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),n.add(function(t){return hr(hr({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return vr(vr({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!o.light,name:"light",index:50})),n.add(function(t){return function(e){return gr(gr({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),o.contextmenu.forEach((function(t){n.add(t)})),s(c,"contextmenu",(function(t){t.preventDefault(),n.show=!0;var e=t.clientX,r=t.clientY,o=c.getBoundingClientRect(),i=o.height,a=o.width,s=o.left,u=o.top,f=l.getBoundingClientRect(),p=f.height,d=f.width,y=e-s,h=r-u;e+d>s+a&&(y=a-d),r+p>u+i&&(h=i-p),Rt(l,{top:"".concat(h,"px"),left:"".concat(y,"px")})})),s(c,"click",(function(t){At(t,l)||(n.show=!1)})),t.on("blur",(function(){n.show=!1}))})),n}return r}(Ce);function Or(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var kr=function(t){s(r,t);var e=Or(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).art=t,n.name="info",n.art.template.$info&&n.init(),n}return c(r,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=wt("[data-video]",n);function l(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){l()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&l()}))}}]),r}(Ce);function jr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var Pr=function(t){s(r,t);var e=jr(r);function r(t){var n;i(this,r),(n=e.call(this,t)).name="subtitle";var o=t.option.subtitle,a=t.template.$subtitle;return Rt(a,o.style),o.url&&n.init(o.url),o.bilingual&&xt(a,"art-bilingual"),n}return c(r,[{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===o(t)?Rt(r,t):St(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(ae(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,l=c.$subtitle,s=c.$video,u=c.$track;if(!u){var f=document.createElement("track");f.default=!0,f.kind="metadata",s.appendChild(f),this.art.template.$track=f,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||Vt(t)){case"srt":return Nt(Ft(o));case"ass":return Nt(Wt(o));case"vtt":return Nt(o);default:return t}})).then((function(t){return l.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}},{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return kt(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?xt(e,"art-bilingual"):Ot(e,"art-bilingual")}}]),r}(Ce);var Sr=function(){function t(e){var r=this;i(this,t),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),e.whitelist.state&&e.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){At(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(e,r),function(t,e){var r=t.template.$player;e.hover(r,(function(){xt(r,"art-hover"),t.emit("hover",!0)}),(function(){Ot(r,"art-hover"),t.emit("hover")}))}(e,r),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(e,r),function(t,e){var r=t.option,n=t.player,o=ne((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(e,r),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=oe((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=oe(r.currentTime+60*e,0,r.duration),n.show="".concat(ie(c)," / ").concat(ie(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(e,r),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=ne((function(){t.emit("view",Tt(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(e,r)}))}return c(t,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new It("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new It("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),t}(),Rr=function(){function t(e){var r=this;i(this,t),this.keys={};var n=e.option,o=e.player,a=e.events.proxy;n.hotkey&&e.once("ready",(function(){r.add(27,(function(){o.fullscreenWeb&&(o.fullscreenWeb=!1)})),r.add(32,(function(){o.toggle=!0})),r.add(37,(function(){o.backward=5})),r.add(38,(function(){o.volume+=.1})),r.add(39,(function(){o.forward=5})),r.add(40,(function(){o.volume-=.1})),a(window,"keydown",(function(t){if(e.isFocus){var n=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==n&&"TEXTAREA"!==n&&""!==o&&"true"!==o){var i=r.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(e)})),e.emit("hotkey",t))}}}))}))}return c(t,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),t}();function Er(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var $r=function(t){s(r,t);var e=Er(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).name="layer",n.$parent=t.template.$layer,t.once("ready",(function(){t.option.layers.forEach((function(t){n.add(t)}))})),n}return r}(Ce);function Cr(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var Dr=function(t){s(r,t);var e=Cr(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).name="loading",jt(t.template.$loading,t.icons.loading),n}return r}(Ce),Tr=function(){function t(e){i(this,t),this.art=e,this.time=2e3,this.timer=null}return c(t,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,xt(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",Ot(r,"art-notice-show")}),this.time)}}]),t}();function Ar(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var zr=function(t){s(r,t);var e=Ar(r);function r(t){var n;return i(this,r),(n=e.call(this,t)).name="mask",jt(t.template.$state,t.icons.state),n}return r}(Ce);function _r(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Lr=function t(e){var n=this;i(this,t);var o=function(t){for(var e=1;e',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},e.option.icons);Object.keys(o).forEach((function(t){Qt(n,t,{get:function(){var e=document.createElement("i");return xt(e,"art-icon"),xt(e,"art-icon-".concat(t)),jt(e,o[t]),e}})}))};function Mr(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ir(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=wt("button",t).find((function(t){return t.dataset.value===e}));r&&Ct(r.parentElement,"current")}))}})}}({disable:!o.flip,name:"flip"})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fr(Fr({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=gt(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!o.rotate,name:"rotate"})),n.add(function(t){return function(e){var r=e.i18n,n=e.player;return Wr(Wr({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=wt("button",t).find((function(t){return t.dataset.value===e}));r&&Ct(r.parentElement,"current")}))}})}}({disable:!o.aspectRatio,name:"aspectRatio"})),n.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Ur(Ur({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=gt(".art-setting-range input",t),i=gt(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!o.playbackRate,name:"playbackRate"}))})),t.on("blur",(function(){n.show=!1}))),n}return r}(Ce),Yr=function(){function t(){i(this,t),this.name="artplayer_settings",this.settings={}}return c(t,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(t,e){try{var n=Object.assign({},this.get(),r({},t,e));window.localStorage.setItem(this.name,JSON.stringify(n))}catch(r){this.settings[t]=e}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),t}();function Xr(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=gt(".art-setting-range input",e),i=gt(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Jr(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(Xr);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var l=Array.from(o.$track.track.cues),s=e(r,-5,5);l.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+s,0,a.duration),t.endTime=e(c[r].endTime+s,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Zr(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else qt(!1,"Playback of this file format is not supported")}}function l(t){var r=jt(t,'');St(t,"position","relative"),Rt(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=gt(".art-upload-btn",e),n=gt(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function Qr(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=jt(n,'');St(n,"position","relative"),Rt(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=Vt(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):qt(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=gt(".art-upload-btn",e),n=gt(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Gr(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Kr(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function tn(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;St(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(Pt(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){Pt(r.firstElementChild),o()}),3e3):St(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(jt(r,"

".concat(ae(t),"

")),St(r,"display","block"),clearTimeout(n),o())}}}var en=function(){function t(e){var r=this;i(this,t),this.art=e,this.id=0;var n=e.option;n.subtitle.url&&n.subtitleOffset&&this.add(Jr),!n.isLive&&n.miniProgressBar&&this.add(Gr),n.localVideo&&this.add(Zr),n.localSubtitle&&this.add(Qr),n.networkMonitor&&this.add(Kr),n.log&&this.add(tn),e.option.plugins.forEach((function(t){r.add(t)}))}return c(t,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return qt(!Kt(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),Qt(this,r,{value:e}),this}}]),t}(),rn=function t(e){i(this,t);var r=e.option,n=e.events.proxy,o=e.template.$video;be.events.forEach((function(t){n(o,t,(function(t){e.emit("video:".concat(t.type),t)}))})),Object.keys(r.moreVideoAttr).forEach((function(t){o[t]=r.moreVideoAttr[t]})),r.muted&&(o.muted=r.muted),r.volume&&(o.volume=oe(r.volume,0,1)),r.poster&&(o.poster=r.poster),r.autoplay&&(o.autoplay=r.autoplay),o.controls=!0;var a=r.type||Vt(r.url),c=r.customType[a];a&&c?(c(o,r.url,e),e.emit("customType",a)):(o.src=r.url,e.emit("url",o.src))};function nn(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=p(t);if(e){var o=p(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return f(this,r)}}var on=0,an=[],cn=function(t){s(r,t);var e=nn(r);function r(t){var n;return i(this,r),(n=e.call(this)).option=dt(ee(r.option,t),ve),n.isFocus=!1,n.isDestroy=!1,n.userAgent=ht,n.isMobile=mt,n.isWechat=bt,n.whitelist=new ge(u(n)),n.template=new we(u(n)),n.events=new Sr(u(n)),n.whitelist.state?(n.storage=new Yr(u(n)),n.icons=new Lr(u(n)),n.i18n=new ke(u(n)),n.notice=new Tr(u(n)),n.player=new Re(u(n)),n.layers=new $r(u(n)),n.controls=new cr(u(n)),n.contextmenu=new xr(u(n)),n.subtitle=new Pr(u(n)),n.info=new kr(u(n)),n.loading=new Dr(u(n)),n.hotkey=new Rr(u(n)),n.mask=new zr(u(n)),n.setting=new Br(u(n)),n.plugins=new en(u(n))):n.mobile=new rn(u(n)),on+=1,n.id=on,an.push(u(n)),n}return c(r,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),an.splice(an.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return an}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return be}},{key:"utils",get:function(){return ce}},{key:"scheme",get:function(){return ve}},{key:"Emitter",get:function(){return yt}},{key:"validator",get:function(){return dt}},{key:"kindOf",get:function(){return dt.kindOf}},{key:"html",get:function(){return we.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:vt?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),r}(yt);function ln(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function sn(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:{};return t(this,r),(e=o.call(this)).processing=!1,e.option={},e.setup(Object.assign({},r.DEFAULTS,n)),e.video=r.creatVideo(),e.duration=0,e.inputChange=e.inputChange.bind(i(e)),e.ondrop=e.ondrop.bind(i(e)),e.option.fileInput.addEventListener("change",e.inputChange),e.option.fileInput.addEventListener("dragover",r.ondragover),e.option.fileInput.addEventListener("drop",r.ondrop),e}return n(r,[{key:"ondrop",value:function(t){t.preventDefault();var e=t.dataTransfer.files[0];this.loadVideo(e)}},{key:"setup",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.option=Object.assign({},this.option,e);var n=this.option,i=n.fileInput,o=n.delay,r=n.number,a=n.width,s=n.height,u=n.column;if(this.errorHandle(i instanceof Element,"The 'fileInput' is not a Element"),"INPUT"!==i.tagName||"file"!==i.type){i.style.position="relative";var h=document.createElement("input");h.type="file",h.style.position="absolute",h.style.width="100%",h.style.height="100%",h.style.left="0",h.style.top="0",h.style.right="0",h.style.bottom="0",h.style.opacity="0",i.appendChild(h),this.option.fileInput=h}return["delay","number","width","height","column","begin","end"].forEach((function(e){t.errorHandle("number"==typeof t.option[e],"The '".concat(e,"' is not a number"))})),this.option.delay=d(o,10,1e3),this.option.number=d(r,10,1e3),this.option.width=d(a,10,1e3),this.option.height=d(s,10,1e3),this.option.column=d(u,1,1e3),this}},{key:"inputChange",value:function(){var t=this.option.fileInput.files[0];this.loadVideo(t)}},{key:"loadVideo",value:function(t){var e=this,n=this.option.delay;if(t){var i=this.video.canPlayType(t.type);this.errorHandle("maybe"===i||"probably"===i,"Playback of this file format is not supported: ".concat(t.type));var o=URL.createObjectURL(t);this.videoUrl=o,this.file=t,this.emit("file",this.file),this.video.src=o,p(n).then((function(){e.emit("video",e.video)})).catch((function(t){throw e.emit("error",t.message),t}))}}},{key:"start",value:function(){var t=this;if(!this.video.duration)return p(1e3).then(this.start);var e=this.option,n=e.width,i=e.height,o=e.number,r=e.delay,a=e.begin,s=e.end;this.option.begin=d(a,0,this.video.duration),this.option.end=d(s||this.video.duration,a,this.video.duration),this.errorHandle(this.option.end>this.option.begin,"End time must be greater than the start time"),this.duration=this.option.end-this.option.begin,this.density=o/this.duration,this.errorHandle(this.file&&this.video,"Please select the video file first"),this.errorHandle(!this.processing,"There is currently a task in progress, please wait a moment..."),this.errorHandle(this.density<=1,"The preview density cannot be greater than 1, but got ".concat(this.density));var u=this.creatScreenshotDate(),h=this.creatCanvas(),c=h.getContext("2d");this.emit("canvas",h);var l,f=u.map((function(e,a){return function(){return t.video.currentTime=e.time,new Promise((function(s){p(r).then((function(){c.drawImage(t.video,e.x,e.y,n,i),h.toBlob((function(e){t.thumbnailUrl&&URL.revokeObjectURL(t.thumbnailUrl),t.thumbnailUrl=URL.createObjectURL(e),t.emit("update",t.thumbnailUrl,(a+1)/o),s()}))})).catch((function(t){throw t}))}))}}));return this.processing=!0,(l=f,l.reduce((function(t,e){return t.then(e)}),Promise.resolve())).then((function(){return p(2*r).then((function(){t.processing=!1,t.emit("done")})).catch((function(e){throw t.processing=!1,t.emit("error",e.message),e}))})).catch((function(e){throw t.processing=!1,t.emit("error",e.message),e}))}},{key:"creatScreenshotDate",value:function(){for(var t=this.option,e=t.number,n=t.width,i=t.height,o=t.column,r=t.begin,a=this.duration/e,s=[r+a];s.length1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function m(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function g(t,e){return t.classList.add(e)}function w(t,e){return t.classList.remove(e)}function x(t,e){return t.classList.contains(e)}function O(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function k(t){return t.parentNode.removeChild(t)}function j(t,e,r){return t.style[e]=r,t}function P(t,e){return Object.keys(e).forEach((function(r){j(t,r,e[r])})),t}function S(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function E(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function R(t,e){E(t).forEach((function(t){return w(t,e)})),g(t,e)}function D(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";h||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function T(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}var z=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")};var A=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}},C=i((function(t){function e(r,n,o){return A()?t.exports=e=Reflect.construct:t.exports=e=function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&a(o,r.prototype),o},e.apply(null,arguments)}t.exports=e}));function L(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var M=function(t){c(n,t);var r=L(n);function n(t,i){var a;return e(this,n),a=r.call(this,t),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(o(a),i||a.constructor),a.name="ArtPlayerError",a}return n}(i((function(t){function e(r){var n="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!z(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,e)}function e(){return C(t,arguments,u(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),a(e,t)},e(r)}t.exports=e}))(Error));function q(t,e){if(!t)throw new M(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function I(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function W(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function V(t){return t.includes("?")?V(t.split("?")[0]):t.includes("#")?V(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function B(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}var H=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function et(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),s=0;s0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function ot(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var it=Object.freeze({__proto__:null,query:v,queryAll:m,addClass:g,removeClass:w,hasClass:x,append:O,remove:k,setStyle:j,setStyles:P,getStyle:S,sublings:E,inverseClass:R,tooltip:D,isInViewport:$,includeFromEvent:T,ArtPlayerError:M,errorHandle:q,srtToVtt:F,vttToBlob:I,assToVtt:W,getExt:V,download:B,def:Z,has:Q,proxyPropertys:G,mergeDeep:K,sleep:tt,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},mt=function(){function t(r){var n=this;e(this,t),this.art=r,r.option.container instanceof Element?this.$container=r.option.container:(this.$container=v(r.option.container),q(this.$container,"No container element found by ".concat(r.option.container))),q(r.constructor.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),r.whitelist.state?this.desktop():this.mobile()}return n(t,[{key:"query",value:function(t){return v(t,this.$container)}},{key:"desktop",value:function(){var e=this.art.option,r=e.backdrop,n=e.theme;e.useSSR||(this.$container.innerHTML=t.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(g(this.$settingInner,"art-backdrop-filter"),g(this.$contextmenu,"art-backdrop-filter"),this.$info&&g(this.$info,"art-backdrop-filter")),this.art.isMobile&&g(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":g(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),t}(),gt={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},wt={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},xt=function(){function t(r){e(this,t),this.art=r,this.languages={"zh-cn":gt,"zh-tw":wt},this.init()}return n(t,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=K(this.languages,t),this.init()}}]),t}();var Ot=i((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var h=d*l/s;j(n,"width","".concat(100*h,"%")),j(n,"height","100%"),j(n,"padding","0 ".concat((u-u*h)/2,"px"))}else{var y=s/d/l;j(n,"width","100%"),j(n,"height","".concat(100*y,"%")),j(n,"padding","".concat((p-p*y)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),Z(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(r,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");Z(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),Z(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),Z(e,"screenshot",{value:function(){e.getDataURL().then((function(e){B(e,"".concat(r.title||"artplayer","_").concat(nt(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(r,this),kt(r,this),function(t,e){var r=t.template.$player;Z(e,"fullscreenWeb",{get:function(){return x(r,"art-fullscreen-web")},set:function(n){n?(g(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(w(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),Z(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;Z(e,"fullscreenRotate",{get:function(){return x(n,"art-fullscreen-rotate")},set:function(r){if(r){g(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,s=o.clientHeight,l=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;Z(e,"autoSize",{get:function(){return x(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,s=n.getBoundingClientRect(),l=s.width,u=s.height,p=a/c,f=l/u;if(g(n,"art-auto-size"),f>p)j(o,"width","".concat(u*p/l*100,"%")),j(o,"height","100%");else{var d=l/p/u*100;j(o,"width","100%"),j(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else w(n,"art-auto-size"),j(o,"width",null),j(o,"height",null),t.emit("autoSize")}})}(r,this),function(t,e){Z(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){Z(e,t,{get:function(){return e.rect[t]}})})),Z(e,"x",{get:function(){return e.left+window.pageXOffset}}),Z(e,"y",{get:function(){return e.top+window.pageYOffset}})}(r,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;Z(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];q(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),Z(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(r,this),function(t,e){var r=t.template.$undercover;Z(e,"light",{get:function(){return"none"!==S(r,"display",!1)},set:function(e){j(r,"display",e?"block":"none"),t.emit("light",e)}})}(r,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,s=a.$miniClose,l=a.$miniTitle,u=a.$miniHeader,p="",f=!1,d=0,h=0,y=0,b=0;i(u,"mousedown",(function(t){f=!0,d=t.pageX,h=t.pageY,y=e.left,b=e.top})),i(document,"mousemove",(function(t){if(f){g(c,"art-is-dragging");var e=b+t.pageY-h,r=y+t.pageX-d;j(c,"top","".concat(e,"px")),j(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){f=!1,w(c,"art-is-dragging")})),i(s,"click",(function(){e.mini=!1,f=!1,w(c,"art-is-dragging")})),O(l,n.title||r.get("Mini player")),Z(e,"mini",{get:function(){return x(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,p=c.style.cssText,g(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)j(c,"top","".concat(i,"px")),j(c,"left","".concat(a,"px")),$(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var s=document.body,l=s.clientHeight-e.height-50,f=s.clientWidth-e.width-50;o.set("top",l),o.set("left",f),j(c,"top","".concat(l,"px")),j(c,"left","".concat(f,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=p,w(c,"art-mini"),j(c,"top",null),j(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),Z(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(r,this),function(t,e){var r=[];Z(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=rt(n[0],0,Math.min(n[1],e.duration)),i=rt(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(r,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;Z(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(q(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,j(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var s=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},l=0,u=1;switch(r){case-270:l=90,u=s();break;case-180:l=180;break;case-90:l=270,u=s();break;case 90:l=90,u=s();break;case 180:l=180;break;case 270:l=270,u=s()}j(n,"transform","rotate(".concat(l,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),Z(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(r,this),function(t,e){var r=t.option,n=t.template.$poster;Z(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,j(n,"backgroundImage","url(".concat(t,")"))}})}(r,this),G(r,this)};var St=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t},Et=i((function(t){function e(r,n,o){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,r){var n=St(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(r):o.value}},e(r,n,o||r)}t.exports=e})),Rt=function(){function t(r){e(this,t),this.id=0,this.art=r,this.add=this.add.bind(this)}return n(t,[{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);q(!Q(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");g(o,"art-".concat(this.name)),g(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):O(this.$parent,o),r.html&&O(o,r.html),r.style&&P(o,r.style),r.tooltip&&D(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&g(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;g(e,"art-control-selector");var a=document.createElement("div");g(a,"art-selector-value"),O(a,t.html),e.innerText="",O(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),s=document.createElement("div");g(s,"art-selector-list"),O(s,c),O(e,s);var l=function(){s.style.left="-".concat(S(s,"width")/2-S(e,"width")/2,"px")};o(e,l),i(e,"click",(function(e){if(x(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,l(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}},{key:"show",get:function(){return x(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?g(e,r):w(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}}]),t}();function Dt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function $t(e){for(var r=1;r
'),mounted:function(t){var r=!1,o=v(".art-progress-loaded",t),c=v(".art-progress-played",t),s=v(".art-progress-highlight",t),l=v(".art-progress-indicator",t),u=v(".art-progress-tip",t);function p(t,e){"loaded"===t&&j(o,"width","".concat(100*e,"%")),"played"===t&&(j(c,"width","".concat(100*e,"%")),j(l,"left","calc(".concat(100*e,"% - ").concat(S(l,"width")/2,"px)")))}n.forEach((function(t){var e=rt(t.time,0,a.duration)/a.duration*100;O(s,''))})),p("loaded",a.loaded),e.on("video:progress",(function(){p("loaded",a.loaded)})),e.on("video:timeupdate",(function(){p("played",a.played)})),e.on("video:ended",(function(){p("played",1)})),i(t,"mousemove",(function(r){j(u,"display","block"),T(r,s)?function(r){var n=It(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?j(u,"left",0):n>t.clientWidth-i/2?j(u,"left","".concat(t.clientWidth-i,"px")):j(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=It(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?j(u,"left",0):o>t.clientWidth-a/2?j(u,"left","".concat(t.clientWidth-a,"px")):j(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){j(u,"display","none")})),i(t,"click",(function(t){if(t.target!==l){var r=It(e,t),n=r.second;p("played",r.percentage),a.seek=n}})),i(l,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=It(e,t),o=n.second,i=n.percentage;g(l,"art-show-indicator"),p("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,w(l,"art-show-indicator"))}))}})}}function Vt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Bt(e){for(var r=1;rn.clientWidth-s/2?j(t,"left","".concat(n.clientWidth-s,"px")):j(t,"left","".concat(i-s/2,"px"))}(o))})),i(n,"mouseout",(function(){j(t,"display","none")}))}})}}function Gt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Kt(e){for(var r=1;r=3e3&&(n.show=!1,g(c,"art-hide-cursor"),w(c,"art-hover"))})),t.once("ready",(function(){n.add(Wt({name:"progress",disable:i.isLive,position:"top",index:10})),n.add(Qt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),n.add(function(t){return function(e){return ne(ne({},t),{},{mounted:function(t){var r=e.player,n=O(t,''),o=O(t,'');e.on("loop",(function(e){e?(j(t,"display","block"),j(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),j(o,"left","".concat(e[1]/r.duration*100,"%"))):j(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),n.add(function(t){return function(e){return Mt(Mt({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=O(t,n.play),c=O(t,n.pause);function s(){j(a,"display","flex"),j(c,"display","none")}function l(){j(a,"display","none"),j(c,"display","flex")}D(a,o.get("Play")),D(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?l():s(),e.on("video:playing",(function(){l()})),e.on("video:pause",(function(){s()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),n.add(function(t){return function(e){return _t(_t({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=O(t,n.volume),s=O(t,n.volumeClose),l=O(t,'
'),u=O(l,'
');function p(t){var e=l.getBoundingClientRect().left;return rt(t.pageX-e-6,0,54)/48}function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)j(c,"display","none"),j(s,"display","flex"),j(u,"left","0");else{var e=48*t;j(c,"display","flex"),j(s,"display","none"),j(u,"left","".concat(e,"px"))}}D(c,i.get("Mute")),j(s,"display","none"),e.isMobile&&j(l,"display","none"),f(o.volume),e.on("video:volumechange",(function(){f(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(s,"click",(function(){o.muted=!1})),r(l,"click",(function(t){o.muted=!1,o.volume=p(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=p(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),n.add(function(t){return function(e){return Nt(Nt({},t),{},{mounted:function(t){function r(){var r="".concat(nt(e.player.currentTime)," / ").concat(nt(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:i.isLive,position:"left",index:30})),n.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return ee(ee({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===i.quality.length,position:"right",index:10})),n.add(function(t){return function(e){return Kt(Kt({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;O(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),n.add(function(t){return function(e){return Bt(Bt({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;O(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){D(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),n.add(function(t){return function(e){return Yt(Yt({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;O(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){D(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!i.setting,position:"right",index:40})),n.add(function(t){return function(e){return Ct(Ct({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;O(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){D(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!i.pip,position:"right",index:50})),n.add(function(t){return function(e){return zt(zt({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;O(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){D(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),n.add(function(t){return function(e){return $t($t({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;O(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){D(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){n.add(t)}))})),n}return n(o,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,r=this.art.template,n=r.$progress,i=r.$controlsLeft,a=r.$controlsRight;switch(e.position){case"top":this.$parent=n;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:q(!1,"Control option.position must one of 'top', 'left', 'right'")}Et(u(o.prototype),"add",this).call(this,e)}}]),o}(Rt);function ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ce(e){for(var r=1;r0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=m("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&R(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return le(le({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("span",t).find((function(t){return t.dataset.ratio===e}));r&&R(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return pe(pe({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return de(de({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return ye(ye({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!i.light,name:"light",index:50})),o.add(function(t){return function(e){return ve(ve({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),i.contextmenu.forEach((function(t){o.add(t)})),l(c,"contextmenu",(function(t){t.preventDefault(),o.show=!0;var e=t.clientX,r=t.clientY,n=c.getBoundingClientRect(),i=n.height,a=n.width,l=n.left,u=n.top,p=s.getBoundingClientRect(),f=p.height,d=p.width,h=e-l,y=r-u;e+d>l+a&&(h=a-d),r+f>u+i&&(y=i-f),P(s,{top:"".concat(y,"px"),left:"".concat(h,"px")})})),l(c,"click",(function(t){T(t,s)||(o.show=!1)})),t.on("blur",(function(){o.show=!1}))})),o}return n}(Rt);function we(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var xe=function(t){c(o,t);var r=we(o);function o(t){var n;return e(this,o),(n=r.call(this,t)).art=t,n.name="info",n.art.template.$info&&n.init(),n}return n(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=m("[data-video]",n);function s(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){s()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&s()}))}}]),o}(Rt);function Oe(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var ke=function(t){c(o,t);var r=Oe(o);function o(t){var n;e(this,o),(n=r.call(this,t)).name="subtitle";var i=t.option.subtitle,a=t.template.$subtitle;return P(a,i.style),i.url&&n.init(i.url),i.bilingual&&g(a,"art-bilingual"),n}return n(o,[{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===s(t)?P(r,t):j(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(ot(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,s=c.$subtitle,l=c.$video,u=c.$track;if(!u){var p=document.createElement("track");p.default=!0,p.kind="metadata",l.appendChild(p),this.art.template.$track=p,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||V(t)){case"srt":return I(F(o));case"ass":return I(W(o));case"vtt":return I(o);default:return t}})).then((function(t){return s.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}},{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return x(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?g(e,"art-bilingual"):w(e,"art-bilingual")}}]),o}(Rt);var je=function(){function t(r){var n=this;e(this,t),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){T(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){g(r,"art-hover"),t.emit("hover",!0)}),(function(){w(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=t.player,o=et((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(r,n),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=rt((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=rt(r.currentTime+60*e,0,r.duration),n.show="".concat(nt(c)," / ").concat(nt(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(r,n),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=et((function(){t.emit("view",$(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(r,n)}))}return n(t,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new M("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new M("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),t}(),Pe=function(){function t(r){var n=this;e(this,t),this.keys={};var o=r.option,i=r.player,a=r.events.proxy;o.hotkey&&r.once("ready",(function(){n.add(27,(function(){i.fullscreenWeb&&(i.fullscreenWeb=!1)})),n.add(32,(function(){i.toggle=!0})),n.add(37,(function(){i.backward=5})),n.add(38,(function(){i.volume+=.1})),n.add(39,(function(){i.forward=5})),n.add(40,(function(){i.volume-=.1})),a(window,"keydown",(function(t){if(r.isFocus){var e=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==o&&"true"!==o){var i=n.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(r)})),r.emit("hotkey",t))}}}))}))}return n(t,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),t}();function Se(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var Ee=function(t){c(n,t);var r=Se(n);function n(t){var o;return e(this,n),(o=r.call(this,t)).name="layer",o.$parent=t.template.$layer,t.once("ready",(function(){t.option.layers.forEach((function(t){o.add(t)}))})),o}return n}(Rt);function Re(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var De=function(t){c(n,t);var r=Re(n);function n(t){var o;return e(this,n),(o=r.call(this,t)).name="loading",O(t.template.$loading,t.icons.loading),o}return n}(Rt),$e=function(){function t(r){e(this,t),this.art=r,this.time=2e3,this.timer=null}return n(t,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,g(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",w(r,"art-notice-show")}),this.time)}}]),t}();function Te(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var ze=function(t){c(n,t);var r=Te(n);function n(t){var o;return e(this,n),(o=r.call(this,t)).name="mask",O(t.template.$state,t.icons.state),o}return n}(Rt);function Ae(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var Ce=function r(n){var o=this;e(this,r);var i=function(e){for(var r=1;r',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},n.option.icons);Object.keys(i).forEach((function(t){Z(o,t,{get:function(){var e=document.createElement("i");return g(e,"art-icon"),g(e,"art-icon-".concat(t)),O(e,i[t]),e}})}))};function Le(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Me(e){for(var r=1;r'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=v(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return We(We({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=m("button",t).find((function(t){return t.dataset.value===e}));r&&R(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Be(Be({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=v(".art-setting-range input",t),i=v(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}))})),t.on("blur",(function(){o.show=!1}))),o}return n}(Rt),Ue=function(){function r(){e(this,r),this.name="artplayer_settings",this.settings={}}return n(r,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(e,r){try{var n=Object.assign({},this.get(),t({},e,r));window.localStorage.setItem(this.name,JSON.stringify(n))}catch(t){this.settings[e]=r}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),r}();function _e(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=v(".art-setting-range input",e),i=v(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Xe(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(_e);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var s=Array.from(o.$track.track.cues),l=e(r,-5,5);s.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+l,0,a.duration),t.endTime=e(c[r].endTime+l,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Ye(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else q(!1,"Playback of this file format is not supported")}}function s(t){var r=O(t,'');j(t,"position","relative"),P(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),s(r)}})})),{name:"localVideo",attach:s}}function Ze(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=O(n,'');j(n,"position","relative"),P(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=V(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):q(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Je(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Qe(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function Ge(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;j(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(k(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){k(r.firstElementChild),o()}),3e3):j(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(O(r,"

".concat(ot(t),"

")),j(r,"display","block"),clearTimeout(n),o())}}}var Ke=function(){function t(r){var n=this;e(this,t),this.art=r,this.id=0;var o=r.option;o.subtitle.url&&o.subtitleOffset&&this.add(Xe),!o.isLive&&o.miniProgressBar&&this.add(Je),o.localVideo&&this.add(Ye),o.localSubtitle&&this.add(Ze),o.networkMonitor&&this.add(Qe),o.log&&this.add(Ge),r.option.plugins.forEach((function(t){n.add(t)}))}return n(t,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return q(!Q(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),Z(this,r,{value:e}),this}}]),t}(),tr=function t(r){e(this,t);var n=r.option,o=r.events.proxy,i=r.template.$video;bt.events.forEach((function(t){o(i,t,(function(t){r.emit("video:".concat(t.type),t)}))})),Object.keys(n.moreVideoAttr).forEach((function(t){i[t]=n.moreVideoAttr[t]})),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=rt(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),i.controls=!0;var a=n.type||V(n.url),c=n.customType[a];a&&c?(c(i,n.url,r),r.emit("customType",a)):(i.src=n.url,r.emit("url",i.src))};function er(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=u(t);if(e){var o=u(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return l(this,r)}}var rr=0,nr=[],or=function(t){c(i,t);var r=er(i);function i(t){var n;return e(this,i),(n=r.call(this)).option=p(K(i.option,t),yt),n.isFocus=!1,n.isDestroy=!1,n.userAgent=d,n.isMobile=h,n.isWechat=b,n.whitelist=new vt(o(n)),n.template=new mt(o(n)),n.events=new je(o(n)),n.whitelist.state?(n.storage=new Ue(o(n)),n.icons=new Ce(o(n)),n.i18n=new xt(o(n)),n.notice=new $e(o(n)),n.player=new Pt(o(n)),n.layers=new Ee(o(n)),n.controls=new ie(o(n)),n.contextmenu=new ge(o(n)),n.subtitle=new ke(o(n)),n.info=new xe(o(n)),n.loading=new De(o(n)),n.hotkey=new Pe(o(n)),n.mask=new ze(o(n)),n.setting=new Ne(o(n)),n.plugins=new Ke(o(n))):n.mobile=new tr(o(n)),rr+=1,n.id=rr,nr.push(o(n)),n}return n(i,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),nr.splice(nr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return nr}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return bt}},{key:"utils",get:function(){return it}},{key:"scheme",get:function(){return yt}},{key:"Emitter",get:function(){return f}},{key:"validator",get:function(){return p}},{key:"kindOf",get:function(){return p.kindOf}},{key:"html",get:function(){return mt.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:y?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),i}(f);function ir(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function ar(e){for(var r=1;r1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document;return e.querySelector(t)}function g(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function m(t,e){return t.classList.add(e)}function b(t,e){return t.classList.remove(e)}function w(t,e){return t.classList.contains(e)}function x(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function O(t){return t.parentNode.removeChild(t)}function k(t,e,r){return t.style[e]=r,t}function j(t,e){return Object.keys(e).forEach((function(r){k(t,r,e[r])})),t}function P(t,e){var r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=window.getComputedStyle(t,null).getPropertyValue(e);return r?parseFloat(n):n}function S(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function E(t,e){S(t).forEach((function(t){return b(t,e)})),m(t,e)}function R(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";d||(t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",r))}function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=t.getBoundingClientRect(),n=window.innerHeight||document.documentElement.clientHeight,o=window.innerWidth||document.documentElement.clientWidth,i=r.top-e<=n&&r.top+r.height+e>=0,a=r.left-e<=o+e&&r.left+r.width+e>=0;return i&&a}function T(t,e){return t.composedPath&&t.composedPath().indexOf(e)>-1}function D(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function z(t,e,r){return z=D()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},z.apply(null,arguments)}function A(t){var e="function"==typeof Map?new Map:void 0;return A=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return z(t,arguments,l(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),o(n,t)},A(t)}function C(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var L=function(e){i(o,e);var r=C(o);function o(e,i){var a;return t(this,o),a=r.call(this,e),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(n(a),i||a.constructor),a.name="ArtPlayerError",a}return o}(A(Error));function M(t,e){if(!t)throw new L(e);return t}function F(t){return"WEBVTT \r\n\r\n".concat(t.replace(/{[\s\S]*?}/g,"").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").concat("\r\n\r\n"))}function q(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function B(t){var e=new 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 t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.split(/[:.]/).map((function(t,e,r){if(e===r.length-1){if(1===t.length)return".".concat(t,"00");if(2===t.length)return".".concat(t,"0")}else if(1===t.length)return(0===e?"0":":0")+t;return 0===e?t:e===r.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var n=t.match(e);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(t){return t.trim()})).join("\n")}:null})).filter((function(t){return t})).map((function(t,e){return t?"".concat(e+1,"\n").concat(t.start," --\x3e ").concat(t.end,"\n").concat(t.text):""})).filter((function(t){return t.trim()})).join("\n\n"))}function I(t){return t.includes("?")?I(t.split("?")[0]):t.includes("#")?I(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function W(t,e){var r=document.createElement("a");r.style.display="none",r.href=t,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function V(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function Z(t,e){var r,n,o=!1;return function i(){for(var a=arguments.length,c=new Array(a),l=0;l0?[e,r,n]:[r,n]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}function K(t){return t.replace(/[&<>'"]/g,(function(t){return{"&":"&","<":"<",">":">","'":"'",'"':"""}[t]||t}))}var tt=Object.freeze({__proto__:null,query:v,queryAll:g,addClass:m,removeClass:b,hasClass:w,append:x,remove:O,setStyle:k,setStyles:j,getStyle:P,sublings:S,inverseClass:E,tooltip:R,isInViewport:$,includeFromEvent:T,ArtPlayerError:L,errorHandle:M,srtToVtt:F,vttToBlob:q,assToVtt:B,getExt:I,download:W,def:N,has:_,proxyPropertys:X,mergeDeep:Q,sleep:Y,debounce:function(t,e,r){var n;function o(){for(var o=arguments.length,i=new Array(o),a=0;a-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},ht=function(){function e(r){var n=this;t(this,e),this.art=r,r.option.container instanceof Element?this.$container=r.option.container:(this.$container=v(r.option.container),M(this.$container,"No container element found by ".concat(r.option.container))),M(r.constructor.instances.every((function(t){return t.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),r.whitelist.state?this.desktop():this.mobile()}return r(e,[{key:"query",value:function(t){return v(t,this.$container)}},{key:"desktop",value:function(){var t=this.art.option,r=t.backdrop,n=t.theme;t.useSSR||(this.$container.innerHTML=e.html),this.$undercover=this.query(".art-undercover"),this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video"),this.$poster=this.query(".art-poster"),this.$subtitle=this.query(".art-subtitle"),this.$danmuku=this.query(".art-danmuku"),this.$bottom=this.query(".art-bottom"),this.$progress=this.query(".art-progress"),this.$controls=this.query(".art-controls"),this.$controlsLeft=this.query(".art-controls-left"),this.$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.$settingInner=this.query(".art-setting-inner"),this.$settingBody=this.query(".art-setting-body"),this.$info=this.query(".art-info"),this.$infoPanel=this.query(".art-info-panel"),this.$infoClose=this.query(".art-info-close"),this.$miniHeader=this.query(".art-mini-header"),this.$miniTitle=this.query(".art-mini-title"),this.$miniClose=this.query(".art-mini-close"),this.$contextmenu=this.query(".art-contextmenus"),this.$player.style.setProperty("--theme",n),r&&(m(this.$settingInner,"art-backdrop-filter"),m(this.$contextmenu,"art-backdrop-filter"),this.$info&&m(this.$info,"art-backdrop-filter")),this.art.isMobile&&m(this.$container,"art-mobile")}},{key:"mobile",value:function(){this.$container.innerHTML='
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":m(this.$player,"art-destroy")}}],[{key:"html",get:function(){return'
Player version:
3.5.31
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
xD7
'}}]),e}(),yt={"Video info":"统计信息",Close:"关闭","Light Off":"关灯","Light On":"开灯","Video load failed":"加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"翻转",Rotate:"旋转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},vt={"Video info":"統計訊息",Close:"關閉","Light Off":"關燈","Light On":"開燈","Video load failed":"載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"翻轉",Rotate:"旋轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕","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":"不支持全屏模式","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},gt=function(){function e(r){t(this,e),this.art=r,this.languages={"zh-cn":yt,"zh-tw":vt},this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option.lang.toLowerCase();this.language=this.languages[t]||{}}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){this.languages=Q(this.languages,t),this.init()}}]),e}();var mt={exports:{}};!function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},r=t.exports,n=function(){for(var t,r=[["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"]],n=0,o=r.length,i={};nd){var h=d*s/l;k(n,"width","".concat(100*h,"%")),k(n,"height","100%"),k(n,"padding","0 ".concat((u-u*h)/2,"px"))}else{var y=l/d/s;k(n,"width","100%"),k(n,"height","".concat(100*y,"%")),k(n,"padding","".concat((p-p*y)/2,"px 0"))}o.dataset.aspectRatio=e}a.show="".concat(i.get("Aspect ratio"),": ").concat("default"===e?i.get("Default"):e),t.emit("aspectRatio",e)}}),N(e,"aspectRatioReset",{set:function(t){if(t&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r}}})}(r,this),function(t,e){var r=t.option,n=t.notice,o=t.template.$video,i=document.createElement("canvas");N(e,"getDataURL",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),t(i.toDataURL("image/png"))}catch(t){n.show=t,e(t)}}))}}),N(e,"getBlobUrl",{value:function(){return new Promise((function(t,e){try{i.width=o.videoWidth,i.height=o.videoHeight,i.getContext("2d").drawImage(o,0,0),i.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){n.show=t,e(t)}}))}}),N(e,"screenshot",{value:function(){e.getDataURL().then((function(e){W(e,"".concat(r.title||"artplayer","_").concat(G(o.currentTime),".png")),t.emit("screenshot",e)}))}})}(r,this),wt(r,this),function(t,e){var r=t.template.$player;N(e,"fullscreenWeb",{get:function(){return w(r,"art-fullscreen-web")},set:function(n){n?(m(r,"art-fullscreen-web"),e.aspectRatioReset=!0,t.emit("resize"),t.emit("fullscreenWeb",!0)):(b(r,"art-fullscreen-web"),e.aspectRatioReset=!0,e.autoSize=t.option.autoSize,t.emit("resize"),t.emit("fullscreenWeb"))}}),N(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player;N(e,"fullscreenRotate",{get:function(){return w(n,"art-fullscreen-rotate")},set:function(r){if(r){m(n,"art-fullscreen-rotate"),e.autoSize=!0;var i=document.body,a=i.clientHeight,c=i.clientWidth,l=o.clientHeight,s=o.clientWidth;if(c/a0&&!r.paused&&!r.ended&&r.readyState>2)}})}(r,this),function(t,e){var r=t.template,n=r.$container,o=r.$player,i=r.$video;N(e,"autoSize",{get:function(){return w(n,"art-auto-size")},set:function(r){if(r){var a=i.videoWidth,c=i.videoHeight,l=n.getBoundingClientRect(),s=l.width,u=l.height,p=a/c,f=s/u;if(m(n,"art-auto-size"),f>p)k(o,"width","".concat(u*p/s*100,"%")),k(o,"height","100%");else{var d=s/p/u*100;k(o,"width","100%"),k(o,"height","".concat(d,"%"))}t.emit("autoSize",{width:e.width,height:e.height})}else b(n,"art-auto-size"),k(o,"width",null),k(o,"height",null),t.emit("autoSize")}})}(r,this),function(t,e){N(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(t){N(e,t,{get:function(){return e.rect[t]}})})),N(e,"x",{get:function(){return e.left+window.pageXOffset}}),N(e,"y",{get:function(){return e.top+window.pageYOffset}})}(r,this),function(t,e){var r=t.template.$player,n=t.i18n,o=t.notice;N(e,"flip",{get:function(){return r.dataset.flip},set:function(i){i||(i="normal");var a=["normal","horizontal","vertical"];M(a.includes(i),"'flip' only accept ".concat(a.toString()," as parameters")),"normal"===i?delete r.dataset.flip:(e.rotate=!1,r.dataset.flip=i);var c=i.replace(i[0],i[0].toUpperCase());o.show="".concat(n.get("Flip"),": ").concat(n.get(c)),t.emit("flip",i)}}),N(e,"flipReset",{set:function(t){if(t&&e.flip){var r=e.flip;e.flip=r}}})}(r,this),function(t,e){var r=t.template.$undercover;N(e,"light",{get:function(){return"none"!==P(r,"display",!1)},set:function(e){k(r,"display",e?"block":"none"),t.emit("light",e)}})}(r,this),function(t,e){var r=t.i18n,n=t.option,o=t.storage,i=t.events.proxy,a=t.template,c=a.$player,l=a.$miniClose,s=a.$miniTitle,u=a.$miniHeader,p="",f=!1,d=0,h=0,y=0,v=0;i(u,"mousedown",(function(t){f=!0,d=t.pageX,h=t.pageY,y=e.left,v=e.top})),i(document,"mousemove",(function(t){if(f){m(c,"art-is-dragging");var e=v+t.pageY-h,r=y+t.pageX-d;k(c,"top","".concat(e,"px")),k(c,"left","".concat(r,"px")),o.set("top",e),o.set("left",r)}})),i(document,"mouseup",(function(){f=!1,b(c,"art-is-dragging")})),i(l,"click",(function(){e.mini=!1,f=!1,b(c,"art-is-dragging")})),x(s,n.title||r.get("Mini player")),N(e,"mini",{get:function(){return w(c,"art-mini")},set:function(r){if(r){e.autoSize=!1,p=c.style.cssText,m(c,"art-mini");var i=o.get("top"),a=o.get("left");if(i&&a)k(c,"top","".concat(i,"px")),k(c,"left","".concat(a,"px")),$(u)||(o.del("top"),o.del("left"),e.mini=!0);else{var l=document.body,s=l.clientHeight-e.height-50,f=l.clientWidth-e.width-50;o.set("top",s),o.set("left",f),k(c,"top","".concat(s,"px")),k(c,"left","".concat(f,"px"))}e.aspectRatio=!1,e.playbackRate=!1,t.emit("mini",!0)}else c.style.cssText=p,b(c,"art-mini"),k(c,"top",null),k(c,"left",null),e.aspectRatio=!1,e.playbackRate=!1,e.autoSize=n.autoSize,t.emit("mini")}}),N(e,"miniToggle",{set:function(t){t&&(e.mini=!e.mini)}})}(r,this),function(t,e){var r=[];N(e,"loop",{get:function(){return r},set:function(n){if(Array.isArray(n)&&"number"==typeof n[0]&&"number"==typeof n[1]){var o=J(n[0],0,Math.min(n[1],e.duration)),i=J(n[1],o,e.duration);i-o>=1?(r=[o,i],t.emit("loop",r)):(r=[],t.emit("loop"))}else r=[],t.emit("loop")}}),t.on("video:timeupdate",(function(){r.length&&(e.currentTimer[1])&&(e.seek=r[0])}))}(r,this),function(t,e){var r=t.template,n=r.$video,o=r.$player,i=t.i18n,a=t.notice;N(e,"rotate",{get:function(){return Number(o.dataset.rotate)||0},set:function(r){r||(r=0);var c=[-270,-180,-90,0,90,180,270];if(M(c.includes(r),"'rotate' only accept ".concat(c.toString()," as parameters")),0===r)delete o.dataset.rotate,k(n,"transform",null);else{e.flip=!1,o.dataset.rotate=r;var l=function(){var t=n.videoWidth,e=n.videoHeight;return t>e?e/t:t/e},s=0,u=1;switch(r){case-270:s=90,u=l();break;case-180:s=180;break;case-90:s=270,u=l();break;case 90:s=90,u=l();break;case 180:s=180;break;case 270:s=270,u=l()}k(n,"transform","rotate(".concat(s,"deg) scale(").concat(u,")"))}a.show="".concat(i.get("Rotate"),": ").concat(r,"°"),t.emit("rotate",r)}}),N(e,"rotateReset",{set:function(t){if(t&&e.rotate){var r=e.rotate;e.rotate=r}}})}(r,this),function(t,e){var r=t.option,n=t.template.$poster;N(e,"poster",{get:function(){return r.poster},set:function(t){r.poster=t,k(n,"backgroundImage","url(".concat(t,")"))}})}(r,this),X(r,this)};function kt(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=l(t)););return t}function jt(){return jt="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,r){var n=kt(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},jt.apply(this,arguments)}var Pt=function(){function e(r){t(this,e),this.id=0,this.art=r,this.add=this.add.bind(this)}return r(e,[{key:"show",get:function(){return w(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){var e=this.art.template.$player,r="art-".concat(this.name,"-show");t?m(e,r):b(e,r),this.art.emit(this.name,t)}},{key:"toggle",set:function(t){t&&(this.show=!this.show)}},{key:"add",value:function(t){var e=this,r="function"==typeof t?t(this.art):t;if(this.$parent&&this.name&&!r.disable){var n=r.name||"".concat(this.name).concat(this.id);M(!_(this,n),"Cannot add an existing name [".concat(n,"] to the [").concat(this.name,"]")),this.id+=1;var o=document.createElement("div");m(o,"art-".concat(this.name)),m(o,"art-".concat(this.name,"-").concat(n));var i=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var a=i.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));a?a.insertAdjacentElement("beforebegin",o):x(this.$parent,o),r.html&&x(o,r.html),r.style&&j(o,r.style),r.tooltip&&R(o,r.tooltip),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(e.art,e,t)})),r.selector&&["left","right"].includes(r.position)&&this.selector(r,o),r.mounted&&r.mounted.call(this.art,o),1===o.childNodes.length&&3===o.childNodes[0].nodeType&&m(o,"art-control-onlyText")}}},{key:"selector",value:function(t,e){var r=this,n=this.art.events,o=n.hover,i=n.proxy;m(e,"art-control-selector");var a=document.createElement("div");m(a,"art-selector-value"),x(a,t.html),e.innerText="",x(e,a);var c=t.selector.map((function(t){return'
'.concat(t.name,"
")})).join(""),l=document.createElement("div");m(l,"art-selector-list"),x(l,c),x(e,l);var s=function(){l.style.left="-".concat(P(l,"width")/2-P(e,"width")/2,"px")};o(e,s),i(e,"click",(function(e){if(w(e.target,"art-selector-item")){var n=e.target.innerText;if(a.innerText===n)return;var o=t.selector.find((function(t){return t.name===n}));a.innerText=n,s(),o&&(t.onSelect&&t.onSelect.call(r.art,o),r.art.emit("selector",o))}}))}}]),e}();function St(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Et(t){for(var e=1;e
'),mounted:function(t){var r=!1,o=v(".art-progress-loaded",t),c=v(".art-progress-played",t),l=v(".art-progress-highlight",t),s=v(".art-progress-indicator",t),u=v(".art-progress-tip",t);function p(t,e){"loaded"===t&&k(o,"width","".concat(100*e,"%")),"played"===t&&(k(c,"width","".concat(100*e,"%")),k(s,"left","calc(".concat(100*e,"% - ").concat(P(s,"width")/2,"px)")))}n.forEach((function(t){var e=J(t.time,0,a.duration)/a.duration*100;x(l,''))})),p("loaded",a.loaded),e.on("video:progress",(function(){p("loaded",a.loaded)})),e.on("video:timeupdate",(function(){p("played",a.played)})),e.on("video:ended",(function(){p("played",1)})),i(t,"mousemove",(function(r){k(u,"display","block"),T(r,l)?function(r){var n=Mt(e,r).width,o=r.target.dataset.text;u.innerHTML=o;var i=u.clientWidth;n<=i/2?k(u,"left",0):n>t.clientWidth-i/2?k(u,"left","".concat(t.clientWidth-i,"px")):k(u,"left","".concat(n-i/2,"px"))}(r):function(r){var n=Mt(e,r),o=n.width,i=n.time;u.innerHTML=i;var a=u.clientWidth;o<=a/2?k(u,"left",0):o>t.clientWidth-a/2?k(u,"left","".concat(t.clientWidth-a,"px")):k(u,"left","".concat(o-a/2,"px"))}(r)})),i(t,"mouseout",(function(){k(u,"display","none")})),i(t,"click",(function(t){if(t.target!==s){var r=Mt(e,t),n=r.second;p("played",r.percentage),a.seek=n}})),i(s,"mousedown",(function(){r=!0})),i(document,"mousemove",(function(t){if(r){var n=Mt(e,t),o=n.second,i=n.percentage;m(s,"art-show-indicator"),p("played",i),a.seek=o}})),i(document,"mouseup",(function(){r&&(r=!1,b(s,"art-show-indicator"))}))}})}}function qt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Bt(t){for(var e=1;en.clientWidth-l/2?k(t,"left","".concat(n.clientWidth-l,"px")):k(t,"left","".concat(i-l/2,"px"))}(o))})),i(n,"mouseout",(function(){k(t,"display","none")}))}})}}function Yt(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Zt(t){for(var e=1;e=3e3&&(r.show=!1,m(c,"art-hide-cursor"),b(c,"art-hover"))})),e.once("ready",(function(){r.add(Ft({name:"progress",disable:i.isLive,position:"top",index:10})),r.add(Qt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(function(t){return function(e){return te(te({},t),{},{mounted:function(t){var r=e.player,n=x(t,''),o=x(t,'');e.on("loop",(function(e){e?(k(t,"display","block"),k(n,"left","calc(".concat(e[0]/r.duration*100,"% - ").concat(n.clientWidth,"px)")),k(o,"left","".concat(e[1]/r.duration*100,"%"))):k(t,"display","none")}))}})}}({name:"loop",disable:!1,position:"top",index:30})),r.add(function(t){return function(e){return At(At({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player,a=x(t,n.play),c=x(t,n.pause);function l(){k(a,"display","flex"),k(c,"display","none")}function s(){k(a,"display","none"),k(c,"display","flex")}R(a,o.get("Play")),R(c,o.get("Pause")),r(a,"click",(function(){i.play=!0})),r(c,"click",(function(){i.pause=!0})),i.playing?s():l(),e.on("video:playing",(function(){s()})),e.on("video:pause",(function(){l()}))}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(function(t){return function(e){return Ht(Ht({},t),{},{mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player,i=e.i18n,a=!1,c=x(t,n.volume),l=x(t,n.volumeClose),s=x(t,'
'),u=x(s,'
');function p(t){var e=s.getBoundingClientRect().left;return J(t.pageX-e-6,0,54)/48}function f(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===t)k(c,"display","none"),k(l,"display","flex"),k(u,"left","0");else{var e=48*t;k(c,"display","flex"),k(l,"display","none"),k(u,"left","".concat(e,"px"))}}R(c,i.get("Mute")),k(l,"display","none"),e.isMobile&&k(s,"display","none"),f(o.volume),e.on("video:volumechange",(function(){f(o.volume)})),r(c,"click",(function(){o.muted=!0})),r(l,"click",(function(){o.muted=!1})),r(s,"click",(function(t){o.muted=!1,o.volume=p(t)})),r(u,"mousedown",(function(){a=!0})),r(t,"mousemove",(function(t){a&&(o.muted=!1,o.volume=p(t))})),r(document,"mouseup",(function(){a&&(a=!1)}))}})}}({name:"volume",disable:!1,position:"left",index:20})),r.add(function(t){return function(e){return Wt(Wt({},t),{},{mounted:function(t){function r(){var r="".concat(G(e.player.currentTime)," / ").concat(G(e.player.duration));r!==t.innerText&&(t.innerText=r)}r(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach((function(t){e.on(t,r)}))}})}}({name:"time",disable:i.isLive,position:"left",index:30})),r.add(function(t){return function(e){var r=e.option.quality,n=r.find((function(t){return t.default}))||r[0];return Gt(Gt({},t),{},{html:n?n.name:"",selector:r,onSelect:function(t){e.player.switchQuality(t.url,t.name)}})}}({name:"quality",disable:0===i.quality.length,position:"right",index:10})),r.add(function(t){return function(e){return Zt(Zt({},t),{},{tooltip:e.i18n.get("Screenshot"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.player;x(t,n.screenshot),r(t,"click",(function(){o.screenshot()}))}})}}({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),r.add(function(t){return function(e){return Bt(Bt({},t),{},{tooltip:e.i18n.get("Hide subtitle"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.subtitle;x(t,n.subtitle),r(t,"click",(function(){i.toggle=!0})),e.on("subtitle",(function(e){R(t,o.get(e?"Hide subtitle":"Show subtitle"))}))}})}}({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),r.add(function(t){return function(e){return Ut(Ut({},t),{},{tooltip:e.i18n.get("Show setting"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.setting;x(t,n.setting),r(t,"click",(function(){i.toggle=!0})),e.on("setting",(function(e){R(t,o.get(e?"Hide setting":"Show setting"))}))}})}}({name:"setting",disable:!i.setting,position:"right",index:40})),r.add(function(t){return function(e){return Dt(Dt({},t),{},{tooltip:e.i18n.get("PIP mode"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.pip),r(t,"click",(function(){i.pipToggle=!0})),e.on("pip",(function(e){R(t,o.get(e?"Exit PIP mode":"PIP mode"))}))}})}}({name:"pip",disable:!i.pip,position:"right",index:50})),r.add(function(t){return function(e){return $t($t({},t),{},{tooltip:e.i18n.get("Web fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreenWeb),r(t,"click",(function(){i.fullscreenWebToggle=!0})),e.on("fullscreenWeb",(function(e){R(t,o.get(e?"Exit web fullscreen":"Web fullscreen"))}))}})}}({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),r.add(function(t){return function(e){return Et(Et({},t),{},{tooltip:e.i18n.get("Fullscreen"),mounted:function(t){var r=e.events.proxy,n=e.icons,o=e.i18n,i=e.player;x(t,n.fullscreen),r(t,"click",(function(){i.fullscreenToggle=!0})),e.on("fullscreen",(function(e){R(t,o.get(e?"Exit fullscreen":"Fullscreen"))}))}})}}({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){r.add(t)}))})),r}return r(o,[{key:"add",value:function(t){var e="function"==typeof t?t(this.art):t,r=this.art.template,n=r.$progress,i=r.$controlsLeft,a=r.$controlsRight;switch(e.position){case"top":this.$parent=n;break;case"left":this.$parent=i;break;case"right":this.$parent=a;break;default:M(!1,"Control option.position must one of 'top', 'left', 'right'")}jt(l(o.prototype),"add",this).call(this,e)}}]),o}(Pt);function ne(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function oe(t){for(var e=1;e0.50.75').concat(r.get("Normal"),'1.251.52.0'),click:function(t,e){var r=e.target.dataset.rate;r&&(n.playbackRate=Number(r),t.show=!1)},mounted:function(t){e.on("playbackRate",(function(e){var r=g("span",t).find((function(t){return Number(t.dataset.rate)===e}));r&&E(r,"art-current")}))}})}}({disable:!i.playbackRate,name:"playbackRate",index:10})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return ae(ae({},t),{},{html:"".concat(r.get("Aspect ratio"),':').concat(r.get("Default"),'4:316:9'),click:function(t,e){var r=e.target.dataset.ratio;r&&(n.aspectRatio=r,t.show=!1)},mounted:function(t){e.on("aspectRatio",(function(e){var r=g("span",t).find((function(t){return t.dataset.ratio===e}));r&&E(r,"art-current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio",index:20})),o.add(function(t){return function(e){return le(le({},t),{},{html:e.i18n.get("Video info"),click:function(t){e.info.show=!0,t.show=!1}})}}({disable:!1,name:"info",index:30})),o.add(function(t){return ue(ue({},t),{},{html:'ArtPlayer 3.5.31'})}({disable:!1,name:"version",index:40})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return fe(fe({},t),{},{html:r.get("Light Off"),click:function(t){n.light=!n.light,t.show=!1},mounted:function(t){e.on("light",(function(e){t.innerText=r.get(e?"Light On":"Light Off")}))}})}}({disable:!i.light,name:"light",index:50})),o.add(function(t){return function(e){return he(he({},t),{},{html:e.i18n.get("Close"),click:function(t){t.show=!1}})}}({disable:!1,name:"close",index:60})),i.contextmenu.forEach((function(t){o.add(t)})),s(c,"contextmenu",(function(t){t.preventDefault(),o.show=!0;var e=t.clientX,r=t.clientY,n=c.getBoundingClientRect(),i=n.height,a=n.width,s=n.left,u=n.top,p=l.getBoundingClientRect(),f=p.height,d=p.width,h=e-s,y=r-u;e+d>s+a&&(h=a-d),r+f>u+i&&(y=i-f),j(l,{top:"".concat(y,"px"),left:"".concat(h,"px")})})),s(c,"click",(function(t){T(t,l)||(o.show=!1)})),e.on("blur",(function(){o.show=!1}))})),o}return n}(Pt);function ge(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var me=function(e){i(o,e);var n=ge(o);function o(e){var r;return t(this,o),(r=n.call(this,e)).art=e,r.name="info",r.art.template.$info&&r.init(),r}return r(o,[{key:"init",value:function(){var t=this,e=this.art,r=e.template,n=r.$infoPanel,o=r.$infoClose,i=r.$video;(0,e.events.proxy)(o,"click",(function(){t.show=!1}));var a=null,c=g("[data-video]",n);function l(){c.forEach((function(t){var e=i[t.dataset.video];t.innerText="number"==typeof e?e.toFixed(2):e})),a=setTimeout((function(){l()}),1e3)}this.art.on("destroy",(function(){clearTimeout(a)})),this.art.on("info",(function(t){clearTimeout(a),t&&l()}))}}]),o}(Pt);function be(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var we=function(e){i(o,e);var n=be(o);function o(e){var r;t(this,o),(r=n.call(this,e)).name="subtitle";var i=e.option.subtitle,a=e.template.$subtitle;return j(a,i.style),i.url&&r.init(i.url),i.bilingual&&m(a,"art-bilingual"),r}return r(o,[{key:"url",get:function(){return this.art.template.$track.src}},{key:"textTrack",get:function(){return this.art.template.$video.textTracks[0]}},{key:"activeCue",get:function(){return this.textTrack.activeCues[0]}},{key:"bilingual",get:function(){return w(this.art.template.$subtitle,"art-bilingual")},set:function(t){var e=this.art.template.$subtitle;t?m(e,"art-bilingual"):b(e,"art-bilingual")}},{key:"style",value:function(t,e){var r=this.art.template.$subtitle;return"object"===a(t)?j(r,t):k(r,t,e)}},{key:"update",value:function(){var t=this.art.template.$subtitle;t.innerHTML="",this.activeCue&&(t.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(t){return"

".concat(K(t),"

")})).join(""),this.art.emit("subtitleUpdate",this.activeCue.text))}},{key:"switch",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.i18n,i=n.notice;return this.init(t,r).then((function(t){return r.name&&(i.show="".concat(o.get("Switch subtitle"),": ").concat(r.name)),e.art.emit("subtitleSwitch",t),t}))}},{key:"init",value:function(t){var e=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.art,o=n.notice,i=n.events.proxy,a=n.option.subtitle,c=n.template,l=c.$subtitle,s=c.$video,u=c.$track;if(!u){var p=document.createElement("track");p.default=!0,p.kind="metadata",s.appendChild(p),this.art.template.$track=p,i(this.textTrack,"cuechange",this.update.bind(this))}return fetch(t).then((function(t){return t.arrayBuffer()})).then((function(n){var o=new TextDecoder(r.encoding||a.encoding).decode(n);switch(e.art.emit("subtitleLoad",t),r.ext||I(t)){case"srt":return q(F(o));case"ass":return q(B(o));case"vtt":return q(o);default:return t}})).then((function(t){return l.innerHTML="",e.url===t||(URL.revokeObjectURL(e.url),e.art.template.$track.src=t),t})).catch((function(t){throw o.show=t,t}))}}]),o}(Pt);var xe=function(){function e(r){var n=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),r.whitelist.state&&r.once("ready",(function(){!function(t,e){var r=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){T(e,r)?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(r,n),function(t,e){var r=t.template.$player;e.hover(r,(function(){m(r,"art-hover"),t.emit("hover",!0)}),(function(){b(r,"art-hover"),t.emit("hover")}))}(r,n),function(t,e){var r=t.template.$player;e.proxy(r,"mousemove",(function(e){t.emit("mousemove",e)}))}(r,n),function(t,e){var r=t.option,n=t.player,o=Z((function(){n.normalSize&&(n.autoSize=r.autoSize),n.aspectRatioReset=!0,t.emit("resize")}),500);e.proxy(window,["orientationchange","resize"],(function(){o()}))}(r,n),function(t,e){if(t.isMobile&&!t.option.isLive){var r=t.player,n=t.notice,o=t.template.$video,i=!1,a=0,c=0;e.proxy(o,"touchstart",(function(t){1===t.touches.length&&(i=!0,a=t.touches[0].clientX)})),e.proxy(document,"touchmove",(function(t){if(1===t.touches.length&&i){var e=J((t.touches[0].clientX-a)/o.clientWidth,-1,1);c=J(r.currentTime+60*e,0,r.duration),n.show="".concat(G(c)," / ").concat(G(r.duration))}})),e.proxy(document,"touchend",(function(){i&&c&&(r.seek=c),i=!1,a=0,c=0}))}}(r,n),function(t,e){var r=t.player,n=t.option,o=t.template.$container,i=Z((function(){t.emit("view",$(o,50))}),200);e.proxy(window,"scroll",(function(){i()})),t.on("view",(function(t){n.autoMini&&(r.mini=!t)}))}(r,n)}))}return r(e,[{key:"proxy",value:function(t,e,r){var n=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(Array.isArray(e))return e.map((function(e){return n.proxy(t,e,r,o)}));t.addEventListener(e,r,o);var i=function(){return t.removeEventListener(e,r,o)};return this.destroyEvents.push(i),i}},{key:"hover",value:function(t,e,r){e&&this.proxy(t,"mouseenter",e),r&&this.proxy(t,"mouseleave",r)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(r,n){var o;if(t instanceof HTMLImageElement)o=t;else{if("string"!=typeof t)return n(new L("Unable to get Image"));(o=new Image).src=t}return o.complete||(e.proxy(o,"load",(function(){return r(o)})),e.proxy(o,"error",(function(){return n(new L("Failed to load Image: ".concat(o.src)))}))),r(o)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),e}(),Oe=function(){function e(r){var n=this;t(this,e),this.keys={};var o=r.option,i=r.player,a=r.events.proxy;o.hotkey&&r.once("ready",(function(){n.add(27,(function(){i.fullscreenWeb&&(i.fullscreenWeb=!1)})),n.add(32,(function(){i.toggle=!0})),n.add(37,(function(){i.backward=5})),n.add(38,(function(){i.volume+=.1})),n.add(39,(function(){i.forward=5})),n.add(40,(function(){i.volume-=.1})),a(window,"keydown",(function(t){if(r.isFocus){var e=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==o&&"true"!==o){var i=n.keys[t.keyCode];i&&(t.preventDefault(),i.forEach((function(t){return t.call(r)})),r.emit("hotkey",t))}}}))}))}return r(e,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),e}();function ke(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var je=function(e){i(n,e);var r=ke(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="layer",o.$parent=e.template.$layer,e.once("ready",(function(){e.option.layers.forEach((function(t){o.add(t)}))})),o}return n}(Pt);function Pe(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var Se=function(e){i(n,e);var r=Pe(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="loading",x(e.template.$loading,e.icons.loading),o}return n}(Pt),Ee=function(){function e(r){t(this,e),this.art=r,this.time=2e3,this.timer=null}return r(e,[{key:"show",set:function(t){var e=this.art.template,r=e.$player,n=e.$noticeInner;n.innerText=t instanceof Error?t.message.trim():t,m(r,"art-notice-show"),clearTimeout(this.timer),this.timer=setTimeout((function(){n.innerText="",b(r,"art-notice-show")}),this.time)}}]),e}();function Re(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var $e=function(e){i(n,e);var r=Re(n);function n(e){var o;return t(this,n),(o=r.call(this,e)).name="mask",x(e.template.$state,e.icons.state),o}return n}(Pt);function Te(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}var De=function e(r){var n=this;t(this,e);var o=function(t){for(var e=1;e',state:'',play:'',pause:'',volume:'',volumeClose:'',subtitle:'',screenshot:'\t',setting:'',fullscreen:'\t\t\t\t',fullscreenWeb:'\t',pip:''},r.option.icons);Object.keys(o).forEach((function(t){N(n,t,{get:function(){var e=document.createElement("i");return m(e,"art-icon"),m(e,"art-icon-".concat(t)),x(e,o[t]),e}})}))};function ze(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function Ae(t){for(var e=1;e'.concat(r.get("Flip"),'
"),click:function(t,e){var r=e.target.dataset.value;r&&(n.flip=r)},mounted:function(t){e.on("flip",(function(e){var r=g("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.flip,name:"flip"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Le(Le({},t),{},{html:'
'.concat(r.get("Rotate"),': 0°
'),click:function(t,e){var r=e.target.dataset.value;if(r){var o=n.rotate+Number(r);n.rotate=360===o||-360===o?0:o}else n.rotate=0},mounted:function(t){var r=v(".art-rotate-value",t);e.on("rotate",(function(t){r.innerText="".concat(t||0,"°")}))}})}}({disable:!i.rotate,name:"rotate"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player;return Fe(Fe({},t),{},{html:'
'.concat(r.get("Aspect ratio"),'
'),click:function(t,e){var r=e.target.dataset.value;r&&(n.aspectRatio=r)},mounted:function(t){e.on("aspectRatio",(function(e){var r=g("button",t).find((function(t){return t.dataset.value===e}));r&&E(r.parentElement,"current")}))}})}}({disable:!i.aspectRatio,name:"aspectRatio"})),o.add(function(t){return function(e){var r=e.i18n,n=e.player,o=e.events.proxy;return Be(Be({},t),{},{html:'
'.concat(r.get("Play speed"),': 1.0x
'),mounted:function(t){var r=v(".art-setting-range input",t),i=v(".art-subtitle-value",t);o(r,"change",(function(){var t=r.value;i.innerText=t,n.playbackRate=Number(t)})),e.on("playbackRate",(function(t){t&&r.value!==t&&(r.value=t,i.innerText=t)}))}})}}({disable:!i.playbackRate,name:"playbackRate"}))})),e.on("blur",(function(){o.show=!1}))),o}return n}(Pt),Ve=function(){function e(){t(this,e),this.name="artplayer_settings",this.settings={}}return r(e,[{key:"get",value:function(t){try{var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:e}catch(e){return t?this.settings[t]:this.settings}}},{key:"set",value:function(t,e){try{var r=Object.assign({},this.get(),et({},t,e));window.localStorage.setItem(this.name,JSON.stringify(r))}catch(r){this.settings[t]=e}}},{key:"del",value:function(t){try{var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}catch(e){delete this.settings[t]}}},{key:"clean",value:function(){try{window.localStorage.removeItem(this.name)}catch(t){this.settings={}}}}]),e}();function He(t){var e=t.i18n,r=t.subtitle,n=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'
'.concat(e.get("Subtitle offset time"),': 0s
'),mounted:function(e){var o=v(".art-setting-range input",e),i=v(".art-subtitle-value",e);n(o,"change",(function(){var e=o.value;i.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),t.on("subtitleOffset",(function(t){r.update(),o.value!==t&&(o.value=t,i.innerText=t)}))}}}function Ne(t){var e=t.constructor.utils.clamp,r=t.setting,n=t.notice,o=t.template,i=t.i18n,a=t.player;r.add(He);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(r){if(o.$track&&o.$track.track){var l=Array.from(o.$track.track.cues),s=e(r,-5,5);l.forEach((function(t,r){c[r]||(c[r]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[r].startTime+s,0,a.duration),t.endTime=e(c[r].endTime+s,0,a.duration)})),n.show="".concat(i.get("Subtitle offset time"),": ").concat(r,"s"),t.emit("subtitleOffset",r)}else n.show="".concat(i.get("No subtitles found")),t.emit("subtitleOffset",0)}}}function Ue(t){var e=t.events.proxy,r=t.template,n=t.player,o=t.option,i=t.setting,a=t.i18n;function c(e){if(e){var i=r.$video.canPlayType(e.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(e);o.title=e.name,n.switchUrl(a,e.name),t.emit("localVideo",e)}else M(!1,"Playback of this file format is not supported")}}function l(t){var r=x(t,'');k(t,"position","relative"),j(r,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(r,"change",(function(){c(r.files[0])}))}return e(r.$player,"dragover",(function(t){t.preventDefault()})),e(r.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.once("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'
'.concat(a.get("Local Video"),'
').concat(a.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localVideo",(function(t){n.textContent=t.name,n.title=t.name})),l(r)}})})),{name:"localVideo",attach:l}}function _e(t){var e=t.events.proxy,r=t.subtitle,n=t.setting,o=t.i18n;function i(n){var o=x(n,'');k(n,"position","relative"),j(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(o,"change",(function(){!function(e){if(e){var n=I(e.name);["ass","vtt","srt"].includes(n)?(r.switch(URL.createObjectURL(e),{name:e.name,ext:n}),t.emit("localSubtitle",e)):M(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return t.once("ready",(function(){n.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'
'.concat(o.get("Local Subtitle"),'
').concat(o.get("Open"),'
'),mounted:function(e){var r=v(".art-upload-btn",e),n=v(".art-upload-value",e);t.on("localSubtitle",(function(t){n.textContent=t.name,n.title=t.name})),i(r)}})})),{name:"localSubtitle",attach:i}}function Xe(t){var e=t.layers,r=t.player,n=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:n},mounted:function(e){t.on("control",(function(t){e.style.display=t?"none":"block"})),t.on("destroy",(function(){e.style.display="none"})),t.on("video:timeupdate",(function(){e.style.width="".concat(100*r.played,"%")}))}}),{name:"miniProgressBar"}}function Qe(t){var e=1e4,r=0,n=0,o=0,i=null;function a(){r=0,n=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){t.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;n+=c,t.player.playing||(r+=c)}o=i,t.emit("networkMonitor",r/n),n>=e&&(r=0,n=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function Ye(t){var e=t.layers,r=null;e.add({name:"log",style:{bottom:"50px"},mounted:function(t){r=t}});var n=null;function o(){var e=r.childElementCount;k(r,"bottom",t.controls.show?"50px":"10px"),e?e>5?(O(r.firstElementChild),n=setTimeout(o,3e3)):n=setTimeout((function(){O(r.firstElementChild),o()}),3e3):k(r,"display","none")}return t.on("destroy",(function(){return clearTimeout(n)})),{name:"log",emit:function(t){"string"==typeof t&&(x(r,"

".concat(K(t),"

")),k(r,"display","block"),clearTimeout(n),o())}}}var Ze=function(){function e(r){var n=this;t(this,e),this.art=r,this.id=0;var o=r.option;o.subtitle.url&&o.subtitleOffset&&this.add(Ne),!o.isLive&&o.miniProgressBar&&this.add(Xe),o.localVideo&&this.add(Ue),o.localSubtitle&&this.add(_e),o.networkMonitor&&this.add(Qe),o.log&&this.add(Ye),r.option.plugins.forEach((function(t){n.add(t)}))}return r(e,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),r=e&&e.name||t.name||"plugin".concat(this.id);return M(!_(this,r),"Cannot add a plugin that already has the same name: ".concat(r)),N(this,r,{value:e}),this}}]),e}(),Je=function e(r){t(this,e);var n=r.option,o=r.events.proxy,i=r.template.$video;ft.events.forEach((function(t){o(i,t,(function(t){r.emit("video:".concat(t.type),t)}))})),Object.keys(n.moreVideoAttr).forEach((function(t){i[t]=n.moreVideoAttr[t]})),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=J(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),i.controls=!0;var a=n.type||I(n.url),c=n.customType[a];a&&c?(c(i,n.url,r),r.emit("customType",a)):(i.src=n.url,r.emit("url",i.src))};function Ge(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,n=l(t);if(e){var o=l(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return c(this,r)}}var Ke=0,tr=[],er=function(e){i(a,e);var o=Ge(a);function a(e){var r;return t(this,a),(r=o.call(this)).option=u(Q(a.option,e),pt),r.isFocus=!1,r.isDestroy=!1,r.userAgent=f,r.isMobile=d,r.isWechat=y,r.whitelist=new dt(n(r)),r.template=new ht(n(r)),r.events=new xe(n(r)),r.whitelist.state?(r.storage=new Ve(n(r)),r.icons=new De(n(r)),r.i18n=new gt(n(r)),r.notice=new Ee(n(r)),r.player=new Ot(n(r)),r.layers=new je(n(r)),r.controls=new re(n(r)),r.contextmenu=new ve(n(r)),r.subtitle=new we(n(r)),r.info=new me(n(r)),r.loading=new Se(n(r)),r.hotkey=new Oe(n(r)),r.mask=new $e(n(r)),r.setting=new We(n(r)),r.plugins=new Ze(n(r))):r.mobile=new Je(n(r)),Ke+=1,r.id=Ke,tr.push(n(r)),r}return r(a,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),tr.splice(tr.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"instances",get:function(){return tr}},{key:"version",get:function(){return"3.5.31"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return ft}},{key:"utils",get:function(){return tt}},{key:"scheme",get:function(){return pt}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return u}},{key:"kindOf",get:function(){return u.kindOf}},{key:"html",get:function(){return ht.html}},{key:"option",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,autoMini:!1,loop:!1,flip:!1,rotate:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,light:!1,backdrop:!0,fullscreen:!1,fullscreenWeb:!1,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,networkMonitor:!1,useSSR:!1,layers:[],contextmenu:[],controls:[],quality:[],highlight:[],plugins:[],whitelist:[],switcher:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{},encoding:"utf-8",bilingual:!1},moreVideoAttr:{controls:!1,preload:h?"auto":"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),a}(p);return console.log("%c ArtPlayer %c 3.5.31 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),er})); diff --git a/docs/uncompiled/artplayer-plugin-ass.js b/docs/uncompiled/artplayer-plugin-ass.js deleted file mode 100644 index 88a615388..000000000 --- a/docs/uncompiled/artplayer-plugin-ass.js +++ /dev/null @@ -1,2124 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.artplayerPluginAss = factory()); -}(this, (function () { 'use strict'; - - function parseEffect(text) { - var param = text - .toLowerCase() - .trim() - .split(/\s*;\s*/); - if (param[0] === 'banner') { - return { - name: param[0], - delay: param[1] * 1 || 0, - leftToRight: param[2] * 1 || 0, - fadeAwayWidth: param[3] * 1 || 0, - }; - } - if (/^scroll\s/.test(param[0])) { - return { - name: param[0], - y1: Math.min(param[1] * 1, param[2] * 1), - y2: Math.max(param[1] * 1, param[2] * 1), - delay: param[3] * 1 || 0, - fadeAwayHeight: param[4] * 1 || 0, - }; - } - return null; - } - - function parseDrawing(text) { - return text - .toLowerCase() - // numbers - .replace(/([+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)/g, ' $1 ') - // commands - .replace(/([mnlbspc])/g, ' $1 ') - .trim() - .replace(/\s+/g, ' ') - .split(/\s(?=[mnlbspc])/) - .map(function (cmd) { return ( - cmd.split(' ') - .filter(function (x, i) { return !(i && Number.isNaN(x * 1)); }) - ); }); - } - - var numTags = [ - 'b', 'i', 'u', 's', 'fsp', - 'k', 'K', 'kf', 'ko', 'kt', - 'fe', 'q', 'p', 'pbo', 'a', 'an', - 'fscx', 'fscy', 'fax', 'fay', 'frx', 'fry', 'frz', 'fr', - 'be', 'blur', 'bord', 'xbord', 'ybord', 'shad', 'xshad', 'yshad' ]; - - var numRegexs = numTags.map(function (nt) { return ({ name: nt, regex: new RegExp(("^" + nt + "-?\\d")) }); }); - - function parseTag(text) { - var assign; - - var tag = {}; - for (var i = 0; i < numRegexs.length; i++) { - var ref = numRegexs[i]; - var name = ref.name; - var regex = ref.regex; - if (regex.test(text)) { - tag[name] = text.slice(name.length) * 1; - return tag; - } - } - if (/^fn/.test(text)) { - tag.fn = text.slice(2); - } else if (/^r/.test(text)) { - tag.r = text.slice(1); - } else if (/^fs[\d+-]/.test(text)) { - tag.fs = text.slice(2); - } else if (/^\d?c&?H?[0-9a-f]+|^\d?c$/i.test(text)) { - var ref$1 = text.match(/^(\d?)c&?H?(\w*)/); - var num = ref$1[1]; - var color = ref$1[2]; - tag[("c" + (num || 1))] = color && ("000000" + color).slice(-6); - } else if (/^\da&?H?[0-9a-f]+/i.test(text)) { - var ref$2 = text.match(/^(\d)a&?H?(\w\w)/); - var num$1 = ref$2[1]; - var alpha = ref$2[2]; - tag[("a" + num$1)] = alpha; - } else if (/^alpha&?H?[0-9a-f]+/i.test(text)) { - (assign = text.match(/^alpha&?H?([0-9a-f]+)/i), tag.alpha = assign[1]); - tag.alpha = ("00" + (tag.alpha)).slice(-2); - } else if (/^(?:pos|org|move|fad|fade)\(/.test(text)) { - var ref$3 = text.match(/^(\w+)\((.*?)\)?$/); - var key = ref$3[1]; - var value = ref$3[2]; - tag[key] = value - .trim() - .split(/\s*,\s*/) - .map(Number); - } else if (/^i?clip/.test(text)) { - var p = text - .match(/^i?clip\((.*?)\)?$/)[1] - .trim() - .split(/\s*,\s*/); - tag.clip = { - inverse: /iclip/.test(text), - scale: 1, - drawing: null, - dots: null, - }; - if (p.length === 1) { - tag.clip.drawing = parseDrawing(p[0]); - } - if (p.length === 2) { - tag.clip.scale = p[0] * 1; - tag.clip.drawing = parseDrawing(p[1]); - } - if (p.length === 4) { - tag.clip.dots = p.map(Number); - } - } else if (/^t\(/.test(text)) { - var p$1 = text - .match(/^t\((.*?)\)?$/)[1] - .trim() - .replace(/\\.*/, function (x) { return x.replace(/,/g, '\n'); }) - .split(/\s*,\s*/); - if (!p$1[0]) { return tag; } - tag.t = { - t1: 0, - t2: 0, - accel: 1, - tags: p$1[p$1.length - 1] - .replace(/\n/g, ',') - .split('\\') - .slice(1) - .map(parseTag), - }; - if (p$1.length === 2) { - tag.t.accel = p$1[0] * 1; - } - if (p$1.length === 3) { - tag.t.t1 = p$1[0] * 1; - tag.t.t2 = p$1[1] * 1; - } - if (p$1.length === 4) { - tag.t.t1 = p$1[0] * 1; - tag.t.t2 = p$1[1] * 1; - tag.t.accel = p$1[2] * 1; - } - } - - return tag; - } - - function parseTags(text) { - var tags = []; - var depth = 0; - var str = ''; - for (var i = 0; i < text.length; i++) { - var x = text[i]; - if (x === '(') { depth++; } - if (x === ')') { depth--; } - if (depth < 0) { depth = 0; } - if (!depth && x === '\\') { - if (str) { - tags.push(str); - } - str = ''; - } else { - str += x; - } - } - tags.push(str); - return tags.map(parseTag); - } - - function parseText(text) { - var pairs = text.split(/{([^{}]*?)}/); - var parsed = []; - if (pairs[0].length) { - parsed.push({ tags: [], text: pairs[0], drawing: [] }); - } - for (var i = 1; i < pairs.length; i += 2) { - var tags = parseTags(pairs[i]); - var isDrawing = tags.reduce(function (v, tag) { return (tag.p === undefined ? v : !!tag.p); }, false); - parsed.push({ - tags: tags, - text: isDrawing ? '' : pairs[i + 1], - drawing: isDrawing ? parseDrawing(pairs[i + 1]) : [], - }); - } - return { - raw: text, - combined: parsed.map(function (frag) { return frag.text; }).join(''), - parsed: parsed, - }; - } - - function parseTime(time) { - var t = time.split(':'); - return t[0] * 3600 + t[1] * 60 + t[2] * 1; - } - - function parseDialogue(text, format) { - var fields = text.split(','); - if (fields.length > format.length) { - var textField = fields.slice(format.length - 1).join(); - fields = fields.slice(0, format.length - 1); - fields.push(textField); - } - - var dia = {}; - for (var i = 0; i < fields.length; i++) { - var fmt = format[i]; - var fld = fields[i].trim(); - switch (fmt) { - case 'Layer': - case 'MarginL': - case 'MarginR': - case 'MarginV': - dia[fmt] = fld * 1; - break; - case 'Start': - case 'End': - dia[fmt] = parseTime(fld); - break; - case 'Effect': - dia[fmt] = parseEffect(fld); - break; - case 'Text': - dia[fmt] = parseText(fld); - break; - default: - dia[fmt] = fld; - } - } - - return dia; - } - - function parseFormat(text) { - return text.match(/Format\s*:\s*(.*)/i)[1].split(/\s*,\s*/); - } - - function parseStyle(text) { - return text.match(/Style\s*:\s*(.*)/i)[1].split(/\s*,\s*/); - } - - function parse(text) { - var tree = { - info: {}, - styles: { format: [], style: [] }, - events: { format: [], comment: [], dialogue: [] }, - }; - var lines = text.split(/\r?\n/); - var state = 0; - for (var i = 0; i < lines.length; i++) { - var line = lines[i].trim(); - if (/^;/.test(line)) { continue; } - - if (/^\[Script Info\]/i.test(line)) { state = 1; } - else if (/^\[V4\+? Styles\]/i.test(line)) { state = 2; } - else if (/^\[Events\]/i.test(line)) { state = 3; } - else if (/^\[.*\]/.test(line)) { state = 0; } - - if (state === 0) { continue; } - if (state === 1) { - if (/:/.test(line)) { - var ref = line.match(/(.*?)\s*:\s*(.*)/); - var key = ref[1]; - var value = ref[2]; - tree.info[key] = value; - } - } - if (state === 2) { - if (/^Format\s*:/i.test(line)) { - tree.styles.format = parseFormat(line); - } - if (/^Style\s*:/i.test(line)) { - tree.styles.style.push(parseStyle(line)); - } - } - if (state === 3) { - if (/^Format\s*:/i.test(line)) { - tree.events.format = parseFormat(line); - } - if (/^(?:Comment|Dialogue)\s*:/i.test(line)) { - var ref$1 = line.match(/^(\w+?)\s*:\s*(.*)/i); - var key$1 = ref$1[1]; - var value$1 = ref$1[2]; - tree.events[key$1.toLowerCase()].push(parseDialogue(value$1, tree.events.format)); - } - } - } - - return tree; - } - - var assign = Object.assign || ( - /* istanbul ignore next */ - function assign(target) { - var sources = [], len = arguments.length - 1; - while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ]; - - for (var i = 0; i < sources.length; i++) { - if (!sources[i]) { continue; } - var keys = Object.keys(sources[i]); - for (var j = 0; j < keys.length; j++) { - // eslint-disable-next-line no-param-reassign - target[keys[j]] = sources[i][keys[j]]; - } - } - return target; - } - ); - - function createCommand(arr) { - var cmd = { - type: null, - prev: null, - next: null, - points: [], - }; - if (/[mnlbs]/.test(arr[0])) { - cmd.type = arr[0] - .toUpperCase() - .replace('N', 'L') - .replace('B', 'C'); - } - for (var len = arr.length - !(arr.length & 1), i = 1; i < len; i += 2) { - cmd.points.push({ x: arr[i] * 1, y: arr[i + 1] * 1 }); - } - return cmd; - } - - function isValid(cmd) { - if (!cmd.points.length || !cmd.type) { - return false; - } - if (/C|S/.test(cmd.type) && cmd.points.length < 3) { - return false; - } - return true; - } - - function getViewBox(commands) { - var ref; - - var minX = Infinity; - var minY = Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - (ref = []).concat.apply(ref, commands.map(function (ref) { - var points = ref.points; - - return points; - })).forEach(function (ref) { - var x = ref.x; - var y = ref.y; - - minX = Math.min(minX, x); - minY = Math.min(minY, y); - maxX = Math.max(maxX, x); - maxY = Math.max(maxY, y); - }); - return { - minX: minX, - minY: minY, - width: maxX - minX, - height: maxY - minY, - }; - } - - /** - * Convert S command to B command - * Reference from https://github.com/d3/d3/blob/v3.5.17/src/svg/line.js#L259 - * @param {Array} points points - * @param {String} prev type of previous command - * @param {String} next type of next command - * @return {Array} converted commands - */ - function s2b(points, prev, next) { - var results = []; - var bb1 = [0, 2 / 3, 1 / 3, 0]; - var bb2 = [0, 1 / 3, 2 / 3, 0]; - var bb3 = [0, 1 / 6, 2 / 3, 1 / 6]; - var dot4 = function (a, b) { return (a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]); }; - var px = [points[points.length - 1].x, points[0].x, points[1].x, points[2].x]; - var py = [points[points.length - 1].y, points[0].y, points[1].y, points[2].y]; - results.push({ - type: prev === 'M' ? 'M' : 'L', - points: [{ x: dot4(bb3, px), y: dot4(bb3, py) }], - }); - for (var i = 3; i < points.length; i++) { - px = [points[i - 3].x, points[i - 2].x, points[i - 1].x, points[i].x]; - py = [points[i - 3].y, points[i - 2].y, points[i - 1].y, points[i].y]; - results.push({ - type: 'C', - points: [ - { x: dot4(bb1, px), y: dot4(bb1, py) }, - { x: dot4(bb2, px), y: dot4(bb2, py) }, - { x: dot4(bb3, px), y: dot4(bb3, py) } ], - }); - } - if (next === 'L' || next === 'C') { - var last = points[points.length - 1]; - results.push({ type: 'L', points: [{ x: last.x, y: last.y }] }); - } - return results; - } - - function toSVGPath(instructions) { - return instructions.map(function (ref) { - var type = ref.type; - var points = ref.points; - - return ( - type + points.map(function (ref) { - var x = ref.x; - var y = ref.y; - - return (x + "," + y); - }).join(',') - ); - }).join(''); - } - - function compileDrawing(rawCommands) { - var ref$1; - - var commands = []; - var i = 0; - while (i < rawCommands.length) { - var arr = rawCommands[i]; - var cmd = createCommand(arr); - if (isValid(cmd)) { - if (cmd.type === 'S') { - var ref = (commands[i - 1] || { points: [{ x: 0, y: 0 }] }).points.slice(-1)[0]; - var x = ref.x; - var y = ref.y; - cmd.points.unshift({ x: x, y: y }); - } - if (i) { - cmd.prev = commands[i - 1].type; - commands[i - 1].next = cmd.type; - } - commands.push(cmd); - i++; - } else { - if (i && commands[i - 1].type === 'S') { - var additionPoints = { - p: cmd.points, - c: commands[i - 1].points.slice(0, 3), - }; - commands[i - 1].points = commands[i - 1].points.concat( - (additionPoints[arr[0]] || []).map(function (ref) { - var x = ref.x; - var y = ref.y; - - return ({ x: x, y: y }); - }) - ); - } - rawCommands.splice(i, 1); - } - } - var instructions = (ref$1 = []).concat.apply( - ref$1, commands.map(function (ref) { - var type = ref.type; - var points = ref.points; - var prev = ref.prev; - var next = ref.next; - - return ( - type === 'S' - ? s2b(points, prev, next) - : { type: type, points: points } - ); - }) - ); - - return assign({ instructions: instructions, d: toSVGPath(instructions) }, getViewBox(commands)); - } - - var tTags = [ - 'fs', 'clip', - 'c1', 'c2', 'c3', 'c4', 'a1', 'a2', 'a3', 'a4', 'alpha', - 'fscx', 'fscy', 'fax', 'fay', 'frx', 'fry', 'frz', 'fr', - 'be', 'blur', 'bord', 'xbord', 'ybord', 'shad', 'xshad', 'yshad' ]; - - function compileTag(tag, key, presets) { - var obj, obj$1, obj$2; - - if ( presets === void 0 ) presets = {}; - var value = tag[key]; - if (value === undefined) { - return null; - } - if (key === 'pos' || key === 'org') { - return value.length === 2 ? ( obj = {}, obj[key] = { x: value[0], y: value[1] }, obj ) : null; - } - if (key === 'move') { - var x1 = value[0]; - var y1 = value[1]; - var x2 = value[2]; - var y2 = value[3]; - var t1 = value[4]; if ( t1 === void 0 ) t1 = 0; - var t2 = value[5]; if ( t2 === void 0 ) t2 = 0; - return value.length === 4 || value.length === 6 - ? { move: { x1: x1, y1: y1, x2: x2, y2: y2, t1: t1, t2: t2 } } - : null; - } - if (key === 'fad' || key === 'fade') { - if (value.length === 2) { - var t1$1 = value[0]; - var t2$1 = value[1]; - return { fade: { type: 'fad', t1: t1$1, t2: t2$1 } }; - } - if (value.length === 7) { - var a1 = value[0]; - var a2 = value[1]; - var a3 = value[2]; - var t1$2 = value[3]; - var t2$2 = value[4]; - var t3 = value[5]; - var t4 = value[6]; - return { fade: { type: 'fade', a1: a1, a2: a2, a3: a3, t1: t1$2, t2: t2$2, t3: t3, t4: t4 } }; - } - return null; - } - if (key === 'clip') { - var inverse = value.inverse; - var scale = value.scale; - var drawing = value.drawing; - var dots = value.dots; - if (drawing) { - return { clip: { inverse: inverse, scale: scale, drawing: compileDrawing(drawing), dots: dots } }; - } - if (dots) { - var x1$1 = dots[0]; - var y1$1 = dots[1]; - var x2$1 = dots[2]; - var y2$1 = dots[3]; - return { clip: { inverse: inverse, scale: scale, drawing: drawing, dots: { x1: x1$1, y1: y1$1, x2: x2$1, y2: y2$1 } } }; - } - return null; - } - if (/^[xy]?(bord|shad)$/.test(key)) { - value = Math.max(value, 0); - } - if (key === 'bord') { - return { xbord: value, ybord: value }; - } - if (key === 'shad') { - return { xshad: value, yshad: value }; - } - if (/^c\d$/.test(key)) { - return ( obj$1 = {}, obj$1[key] = value || presets[key], obj$1 ); - } - if (key === 'alpha') { - return { a1: value, a2: value, a3: value, a4: value }; - } - if (key === 'fr') { - return { frz: value }; - } - if (key === 'fs') { - return { - fs: /^\+|-/.test(value) - ? (value * 1 > -10 ? (1 + value / 10) : 1) * presets.fs - : value * 1, - }; - } - if (key === 't') { - var t1$3 = value.t1; - var accel = value.accel; - var tags = value.tags; - var t2$3 = value.t2 || (presets.end - presets.start) * 1e3; - var compiledTag = {}; - tags.forEach(function (t) { - var k = Object.keys(t)[0]; - if (~tTags.indexOf(k) && !(k === 'clip' && !t[k].dots)) { - assign(compiledTag, compileTag(t, k, presets)); - } - }); - return { t: { t1: t1$3, t2: t2$3, accel: accel, tag: compiledTag } }; - } - return ( obj$2 = {}, obj$2[key] = value, obj$2 ); - } - - var a2an = [ - null, 1, 2, 3, - null, 7, 8, 9, - null, 4, 5, 6 ]; - - var globalTags = ['r', 'a', 'an', 'pos', 'org', 'move', 'fade', 'fad', 'clip']; - - function createSlice(name, styles) { - return { - name: name, - borderStyle: styles[name].style.BorderStyle, - tag: styles[name].tag, - fragments: [], - }; - } - - function compileText(ref) { - var styles = ref.styles; - var name = ref.name; - var parsed = ref.parsed; - var start = ref.start; - var end = ref.end; - - var alignment; - var pos; - var org; - var move; - var fade; - var clip; - var slices = []; - var slice = createSlice(name, styles); - var prevTag = {}; - for (var i = 0; i < parsed.length; i++) { - var ref$1 = parsed[i]; - var tags = ref$1.tags; - var text = ref$1.text; - var drawing = ref$1.drawing; - var reset = (void 0); - for (var j = 0; j < tags.length; j++) { - var tag = tags[j]; - reset = tag.r === undefined ? reset : tag.r; - } - var fragment = { - tag: reset === undefined ? JSON.parse(JSON.stringify(prevTag)) : {}, - text: text, - drawing: drawing.length ? compileDrawing(drawing) : null, - }; - for (var j$1 = 0; j$1 < tags.length; j$1++) { - var tag$1 = tags[j$1]; - alignment = alignment || a2an[tag$1.a || 0] || tag$1.an; - pos = pos || compileTag(tag$1, 'pos'); - org = org || compileTag(tag$1, 'org'); - move = move || compileTag(tag$1, 'move'); - fade = fade || compileTag(tag$1, 'fade') || compileTag(tag$1, 'fad'); - clip = compileTag(tag$1, 'clip') || clip; - var key = Object.keys(tag$1)[0]; - if (key && !~globalTags.indexOf(key)) { - var ref$2 = slice.tag; - var c1 = ref$2.c1; - var c2 = ref$2.c2; - var c3 = ref$2.c3; - var c4 = ref$2.c4; - var fs = prevTag.fs || slice.tag.fs; - var compiledTag = compileTag(tag$1, key, { start: start, end: end, c1: c1, c2: c2, c3: c3, c4: c4, fs: fs }); - if (key === 't') { - fragment.tag.t = fragment.tag.t || []; - fragment.tag.t.push(compiledTag.t); - } else { - assign(fragment.tag, compiledTag); - } - } - } - prevTag = fragment.tag; - if (reset !== undefined) { - slices.push(slice); - slice = createSlice(styles[reset] ? reset : name, styles); - } - if (fragment.text || fragment.drawing) { - var prev = slice.fragments[slice.fragments.length - 1] || {}; - if (prev.text && fragment.text && !Object.keys(fragment.tag).length) { - // merge fragment to previous if its tag is empty - prev.text += fragment.text; - } else { - slice.fragments.push(fragment); - } - } - } - slices.push(slice); - - return assign({ alignment: alignment, slices: slices }, pos, org, move, fade, clip); - } - - function compileDialogues(ref) { - var styles = ref.styles; - var dialogues = ref.dialogues; - - var minLayer = Infinity; - var results = []; - for (var i = 0; i < dialogues.length; i++) { - var dia = dialogues[i]; - if (dia.Start >= dia.End) { - continue; - } - if (!styles[dia.Style]) { - dia.Style = 'Default'; - } - var stl = styles[dia.Style].style; - var compiledText = compileText({ - styles: styles, - name: dia.Style, - parsed: dia.Text.parsed, - start: dia.Start, - end: dia.End, - }); - var alignment = compiledText.alignment || stl.Alignment; - minLayer = Math.min(minLayer, dia.Layer); - results.push(assign({ - layer: dia.Layer, - start: dia.Start, - end: dia.End, - // reset style by `\r` will not effect margin and alignment - margin: { - left: dia.MarginL || stl.MarginL, - right: dia.MarginR || stl.MarginR, - vertical: dia.MarginV || stl.MarginV, - }, - effect: dia.Effect, - }, compiledText, { alignment: alignment })); - } - for (var i$1 = 0; i$1 < results.length; i$1++) { - results[i$1].layer -= minLayer; - } - return results.sort(function (a, b) { return a.start - b.start || a.end - b.end; }); - } - - // same as Aegisub - // https://github.com/Aegisub/Aegisub/blob/master/src/ass_style.h - var DEFAULT_STYLE = { - Name: 'Default', - Fontname: 'Arial', - Fontsize: '20', - PrimaryColour: '&H00FFFFFF&', - SecondaryColour: '&H000000FF&', - OutlineColour: '&H00000000&', - BackColour: '&H00000000&', - Bold: '0', - Italic: '0', - Underline: '0', - StrikeOut: '0', - ScaleX: '100', - ScaleY: '100', - Spacing: '0', - Angle: '0', - BorderStyle: '1', - Outline: '2', - Shadow: '2', - Alignment: '2', - MarginL: '10', - MarginR: '10', - MarginV: '10', - Encoding: '1', - }; - - /** - * @param {String} color - * @returns {Array} [AA, BBGGRR] - */ - function parseStyleColor(color) { - if (/^(&|H|&H)[0-9a-f]{6,}/i.test(color)) { - var ref = color.match(/&?H?([0-9a-f]{2})?([0-9a-f]{6})/i); - var a = ref[1]; - var c = ref[2]; - return [a || '00', c]; - } - var num = parseInt(color, 10); - if (!Number.isNaN(num)) { - var min = -2147483648; - var max = 2147483647; - if (num < min) { - return ['00', '000000']; - } - var aabbggrr = (min <= num && num <= max) - ? ("00000000" + ((num < 0 ? num + 4294967296 : num).toString(16))).slice(-8) - : String(num).slice(0, 8); - return [aabbggrr.slice(0, 2), aabbggrr.slice(2)]; - } - return ['00', '000000']; - } - - function compileStyles(ref) { - var info = ref.info; - var style = ref.style; - var format = ref.format; - var defaultStyle = ref.defaultStyle; - - var result = {}; - var styles = [ - assign({}, DEFAULT_STYLE, defaultStyle, { Name: 'Default' }) ].concat( style.map(function (stl) { - var s = {}; - for (var i = 0; i < format.length; i++) { - s[format[i]] = stl[i]; - } - return s; - }) ); - var loop = function ( i ) { - var s = styles[i]; - // this behavior is same as Aegisub by black-box testing - if (/^(\*+)Default$/.test(s.Name)) { - s.Name = 'Default'; - } - Object.keys(s).forEach(function (key) { - if (key !== 'Name' && key !== 'Fontname' && !/Colour/.test(key)) { - s[key] *= 1; - } - }); - var ref$1 = parseStyleColor(s.PrimaryColour); - var a1 = ref$1[0]; - var c1 = ref$1[1]; - var ref$2 = parseStyleColor(s.SecondaryColour); - var a2 = ref$2[0]; - var c2 = ref$2[1]; - var ref$3 = parseStyleColor(s.OutlineColour); - var a3 = ref$3[0]; - var c3 = ref$3[1]; - var ref$4 = parseStyleColor(s.BackColour); - var a4 = ref$4[0]; - var c4 = ref$4[1]; - var tag = { - fn: s.Fontname, - fs: s.Fontsize, - c1: c1, - a1: a1, - c2: c2, - a2: a2, - c3: c3, - a3: a3, - c4: c4, - a4: a4, - b: Math.abs(s.Bold), - i: Math.abs(s.Italic), - u: Math.abs(s.Underline), - s: Math.abs(s.StrikeOut), - fscx: s.ScaleX, - fscy: s.ScaleY, - fsp: s.Spacing, - frz: s.Angle, - xbord: s.Outline, - ybord: s.Outline, - xshad: s.Shadow, - yshad: s.Shadow, - q: /^[0-3]$/.test(info.WrapStyle) ? info.WrapStyle * 1 : 2, - }; - result[s.Name] = { style: s, tag: tag }; - }; - - for (var i = 0; i < styles.length; i++) loop( i ); - return result; - } - - function compile(text, options) { - if ( options === void 0 ) options = {}; - - var tree = parse(text); - var styles = compileStyles({ - info: tree.info, - style: tree.styles.style, - format: tree.styles.format, - defaultStyle: options.defaultStyle || {}, - }); - return { - info: tree.info, - width: tree.info.PlayResX * 1 || null, - height: tree.info.PlayResY * 1 || null, - collisions: tree.info.Collisions || 'Normal', - styles: styles, - dialogues: compileDialogues({ - styles: styles, - dialogues: tree.events.dialogue, - }), - }; - } - - var raf = ( - window.requestAnimationFrame - || window.mozRequestAnimationFrame - || window.webkitRequestAnimationFrame - || (function (cb) { return setTimeout(cb, 50 / 3); }) - ); - - var caf = ( - window.cancelAnimationFrame - || window.mozCancelAnimationFrame - || window.webkitCancelAnimationFrame - || clearTimeout - ); - - function color2rgba(c) { - var t = c.match(/(\w\w)(\w\w)(\w\w)(\w\w)/); - var a = 1 - ("0x" + (t[1])) / 255; - var b = +("0x" + (t[2])); - var g = +("0x" + (t[3])); - var r = +("0x" + (t[4])); - return ("rgba(" + r + "," + g + "," + b + "," + a + ")"); - } - - function uuid() { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { - var r = Math.random() * 16 | 0; - var v = c === 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - } - - function createSVGEl(name, attrs) { - if ( attrs === void 0 ) attrs = []; - - var $el = document.createElementNS('http://www.w3.org/2000/svg', name); - for (var i = 0; i < attrs.length; i++) { - var attr = attrs[i]; - $el.setAttributeNS( - attr[0] === 'xlink:href' ? 'http://www.w3.org/1999/xlink' : null, - attr[0], - attr[1] - ); - } - return $el; - } - - function getVendor(prop) { - var ref = document.body; - var style = ref.style; - var Prop = prop.replace(/^\w/, function (x) { return x.toUpperCase(); }); - if (prop in style) { return ''; } - if (("webkit" + Prop) in style) { return '-webkit-'; } - if (("moz" + Prop) in style) { return '-moz-'; } - return ''; - } - - var vendor = { - transform: getVendor('transform'), - animation: getVendor('animation'), - clipPath: getVendor('clipPath'), - }; - - function getStyleRoot(container) { - var rootNode = container.getRootNode ? container.getRootNode() : document; - return rootNode === document ? rootNode.head : rootNode; - } - - var strokeTags = ['c3', 'a3', 'c4', 'a4', 'xbord', 'ybord', 'xshad', 'yshad', 'blur', 'be']; - var transformTags = ['fscx', 'fscy', 'frx', 'fry', 'frz', 'fax', 'fay']; - - function createClipPath(clip) { - var sw = this._.scriptRes.width; - var sh = this._.scriptRes.height; - var d = ''; - if (clip.dots !== null) { - var ref = clip.dots; - var x1 = ref.x1; - var y1 = ref.y1; - var x2 = ref.x2; - var y2 = ref.y2; - x1 /= sw; - y1 /= sh; - x2 /= sw; - y2 /= sh; - d = "M" + x1 + "," + y1 + "L" + x1 + "," + y2 + "," + x2 + "," + y2 + "," + x2 + "," + y1 + "Z"; - } - if (clip.drawing !== null) { - d = clip.drawing.instructions.map(function (ref) { - var type = ref.type; - var points = ref.points; - - return ( - type + points.map(function (ref) { - var x = ref.x; - var y = ref.y; - - return ((x / sw) + "," + (y / sh)); - }).join(',') - ); - }).join(''); - } - var scale = 1 / (1 << (clip.scale - 1)); - if (clip.inverse) { - d += "M0,0L0," + scale + "," + scale + "," + scale + "," + scale + ",0,0,0Z"; - } - var id = "ASS-" + (uuid()); - var $clipPath = createSVGEl('clipPath', [ - ['id', id], - ['clipPathUnits', 'objectBoundingBox'] ]); - $clipPath.appendChild(createSVGEl('path', [ - ['d', d], - ['transform', ("scale(" + scale + ")")], - ['clip-rule', 'evenodd'] ])); - this._.$defs.appendChild($clipPath); - return { - $clipPath: $clipPath, - cssText: ((vendor.clipPath) + "clip-path:url(#" + id + ");"), - }; - } - - function setClipPath(dialogue) { - if (!dialogue.clip) { - return; - } - var $fobb = document.createElement('div'); - this._.$stage.insertBefore($fobb, dialogue.$div); - $fobb.appendChild(dialogue.$div); - $fobb.className = 'ASS-fix-objectBoundingBox'; - var ref = createClipPath.call(this, dialogue.clip); - var cssText = ref.cssText; - var $clipPath = ref.$clipPath; - this._.$defs.appendChild($clipPath); - $fobb.style.cssText = cssText; - assign(dialogue, { $div: $fobb, $clipPath: $clipPath }); - } - - var $fixFontSize = document.createElement('div'); - $fixFontSize.className = 'ASS-fix-font-size'; - $fixFontSize.textContent = 'M'; - - var cache = Object.create(null); - - function getRealFontSize(fn, fs) { - var key = fn + "-" + fs; - if (!cache[key]) { - $fixFontSize.style.cssText = "line-height:normal;font-size:" + fs + "px;font-family:\"" + fn + "\",Arial;"; - cache[key] = fs * fs / $fixFontSize.clientHeight; - } - return cache[key]; - } - - function createSVGStroke(tag, id, scale) { - var hasBorder = tag.xbord || tag.ybord; - var hasShadow = tag.xshad || tag.yshad; - var isOpaque = tag.a1 !== 'FF'; - var blur = tag.blur || tag.be || 0; - var $filter = createSVGEl('filter', [['id', id]]); - $filter.appendChild(createSVGEl('feGaussianBlur', [ - ['stdDeviation', hasBorder ? 0 : blur], - ['in', 'SourceGraphic'], - ['result', 'sg_b'] ])); - $filter.appendChild(createSVGEl('feFlood', [ - ['flood-color', color2rgba(tag.a1 + tag.c1)], - ['result', 'c1'] ])); - $filter.appendChild(createSVGEl('feComposite', [ - ['operator', 'in'], - ['in', 'c1'], - ['in2', 'sg_b'], - ['result', 'main'] ])); - if (hasBorder) { - $filter.appendChild(createSVGEl('feMorphology', [ - ['radius', ((tag.xbord * scale) + " " + (tag.ybord * scale))], - ['operator', 'dilate'], - ['in', 'SourceGraphic'], - ['result', 'dil'] ])); - $filter.appendChild(createSVGEl('feGaussianBlur', [ - ['stdDeviation', blur], - ['in', 'dil'], - ['result', 'dil_b'] ])); - $filter.appendChild(createSVGEl('feComposite', [ - ['operator', 'out'], - ['in', 'dil_b'], - ['in2', 'SourceGraphic'], - ['result', 'dil_b_o'] ])); - $filter.appendChild(createSVGEl('feFlood', [ - ['flood-color', color2rgba(tag.a3 + tag.c3)], - ['result', 'c3'] ])); - $filter.appendChild(createSVGEl('feComposite', [ - ['operator', 'in'], - ['in', 'c3'], - ['in2', 'dil_b_o'], - ['result', 'border'] ])); - } - if (hasShadow && (hasBorder || isOpaque)) { - $filter.appendChild(createSVGEl('feOffset', [ - ['dx', tag.xshad * scale], - ['dy', tag.yshad * scale], - ['in', hasBorder ? 'dil' : 'SourceGraphic'], - ['result', 'off'] ])); - $filter.appendChild(createSVGEl('feGaussianBlur', [ - ['stdDeviation', blur], - ['in', 'off'], - ['result', 'off_b'] ])); - if (!isOpaque) { - $filter.appendChild(createSVGEl('feOffset', [ - ['dx', tag.xshad * scale], - ['dy', tag.yshad * scale], - ['in', 'SourceGraphic'], - ['result', 'sg_off'] ])); - $filter.appendChild(createSVGEl('feComposite', [ - ['operator', 'out'], - ['in', 'off_b'], - ['in2', 'sg_off'], - ['result', 'off_b_o'] ])); - } - $filter.appendChild(createSVGEl('feFlood', [ - ['flood-color', color2rgba(tag.a4 + tag.c4)], - ['result', 'c4'] ])); - $filter.appendChild(createSVGEl('feComposite', [ - ['operator', 'in'], - ['in', 'c4'], - ['in2', isOpaque ? 'off_b' : 'off_b_o'], - ['result', 'shadow'] ])); - } - var $merge = createSVGEl('feMerge', []); - if (hasShadow && (hasBorder || isOpaque)) { - $merge.appendChild(createSVGEl('feMergeNode', [['in', 'shadow']])); - } - if (hasBorder) { - $merge.appendChild(createSVGEl('feMergeNode', [['in', 'border']])); - } - $merge.appendChild(createSVGEl('feMergeNode', [['in', 'main']])); - $filter.appendChild($merge); - return $filter; - } - - function createCSSStroke(tag, scale) { - var arr = []; - var oc = color2rgba(tag.a3 + tag.c3); - var ox = tag.xbord * scale; - var oy = tag.ybord * scale; - var sc = color2rgba(tag.a4 + tag.c4); - var sx = tag.xshad * scale; - var sy = tag.yshad * scale; - var blur = tag.blur || tag.be || 0; - if (!(ox + oy + sx + sy)) { return 'none'; } - if (ox || oy) { - for (var i = -1; i <= 1; i++) { - for (var j = -1; j <= 1; j++) { - for (var x = 1; x < ox; x++) { - for (var y = 1; y < oy; y++) { - if (i || j) { - arr.push((oc + " " + (i * x) + "px " + (j * y) + "px " + blur + "px")); - } - } - } - arr.push((oc + " " + (i * ox) + "px " + (j * oy) + "px " + blur + "px")); - } - } - } - if (sx || sy) { - var pnx = sx > 0 ? 1 : -1; - var pny = sy > 0 ? 1 : -1; - sx = Math.abs(sx); - sy = Math.abs(sy); - for (var x$1 = Math.max(ox, sx - ox); x$1 < sx + ox; x$1++) { - for (var y$1 = Math.max(oy, sy - oy); y$1 < sy + oy; y$1++) { - arr.push((sc + " " + (x$1 * pnx) + "px " + (y$1 * pny) + "px " + blur + "px")); - } - } - arr.push((sc + " " + ((sx + ox) * pnx) + "px " + ((sy + oy) * pny) + "px " + blur + "px")); - } - return arr.join(); - } - - function createTransform(tag) { - return [ - // TODO: I don't know why perspective is 314, it just performances well. - 'perspective(314px)', - ("rotateY(" + (tag.fry || 0) + "deg)"), - ("rotateX(" + (tag.frx || 0) + "deg)"), - ("rotateZ(" + (-tag.frz || 0) + "deg)"), - ("scale(" + (tag.p ? 1 : (tag.fscx || 100) / 100) + "," + (tag.p ? 1 : (tag.fscy || 100) / 100) + ")"), - ("skew(" + (tag.fax || 0) + "rad," + (tag.fay || 0) + "rad)") ].join(' '); - } - - function setTransformOrigin(dialogue) { - var alignment = dialogue.alignment; - var width = dialogue.width; - var height = dialogue.height; - var x = dialogue.x; - var y = dialogue.y; - var $div = dialogue.$div; - var org = dialogue.org; - if (!org) { - org = { x: 0, y: 0 }; - if (alignment % 3 === 1) { org.x = x; } - if (alignment % 3 === 2) { org.x = x + width / 2; } - if (alignment % 3 === 0) { org.x = x + width; } - if (alignment <= 3) { org.y = y + height; } - if (alignment >= 4 && alignment <= 6) { org.y = y + height / 2; } - if (alignment >= 7) { org.y = y; } - } - for (var i = $div.childNodes.length - 1; i >= 0; i--) { - var node = $div.childNodes[i]; - if (node.dataset.hasRotate === 'true') { - // It's not extremely precise for offsets are round the value to an integer. - var tox = org.x - x - node.offsetLeft; - var toy = org.y - y - node.offsetTop; - node.style.cssText += (vendor.transform) + "transform-origin:" + tox + "px " + toy + "px;"; - } - } - } - - function getKeyframeString(name, list) { - return ("@" + (vendor.animation) + "keyframes " + name + " {" + list + "}\n"); - } - - var KeyframeBlockList = function KeyframeBlockList() { - this.obj = {}; - }; - - KeyframeBlockList.prototype.set = function set (keyText, prop, value) { - if (!this.obj[keyText]) { this.obj[keyText] = {}; } - this.obj[keyText][prop] = value; - }; - - KeyframeBlockList.prototype.setT = function setT (ref) { - var t1 = ref.t1; - var t2 = ref.t2; - var duration = ref.duration; - var prop = ref.prop; - var from = ref.from; - var to = ref.to; - - this.set('0.000%', prop, from); - if (t1 < duration) { - this.set((((t1 / duration * 100).toFixed(3)) + "%"), prop, from); - } - if (t2 < duration) { - this.set((((t2 / duration * 100).toFixed(3)) + "%"), prop, to); - } - this.set('100.000%', prop, to); - }; - - KeyframeBlockList.prototype.toString = function toString () { - var this$1 = this; - - return Object.keys(this.obj) - .map(function (keyText) { return ( - (keyText + "{" + (Object.keys(this$1.obj[keyText]) - .map(function (prop) { return ("" + (vendor[prop] || '') + prop + ":" + (this$1.obj[keyText][prop]) + ";"); }) - .join('')) + "}") - ); }) - .join(''); - }; - - // TODO: multi \t can't be merged directly - function mergeT(ts) { - return ts.reduceRight(function (results, t) { - var merged = false; - return results - .map(function (r) { - merged = t.t1 === r.t1 && t.t2 === r.t2 && t.accel === r.accel; - return assign({}, r, merged ? { tag: assign({}, r.tag, t.tag) } : {}); - }) - .concat(merged ? [] : t); - }, []); - } - - function getKeyframes() { - var this$1 = this; - - var keyframes = ''; - this.dialogues.forEach(function (dialogue) { - var start = dialogue.start; - var end = dialogue.end; - var effect = dialogue.effect; - var move = dialogue.move; - var fade = dialogue.fade; - var slices = dialogue.slices; - var duration = (end - start) * 1000; - var diaKbl = new KeyframeBlockList(); - // TODO: when effect and move both exist, its behavior is weird, for now only move works. - if (effect && !move) { - var name = effect.name; - var delay = effect.delay; - var lefttoright = effect.lefttoright; - var y1 = effect.y1; - var y2 = effect.y2 || this$1._.resampledRes.height; - if (name === 'banner') { - var tx = this$1.scale * (duration / delay) * (lefttoright ? 1 : -1); - diaKbl.set('0.000%', 'transform', 'translateX(0)'); - diaKbl.set('100.000%', 'transform', ("translateX(" + tx + "px)")); - } - if (/^scroll/.test(name)) { - var updown = /up/.test(name) ? -1 : 1; - var tFrom = "translateY(" + (this$1.scale * y1 * updown) + "px)"; - var tTo = "translateY(" + (this$1.scale * y2 * updown) + "px)"; - var dp = (y2 - y1) / (duration / delay) * 100; - diaKbl.set('0.000%', 'transform', tFrom); - if (dp < 100) { - diaKbl.set(((dp.toFixed(3)) + "%"), 'transform', tTo); - } - diaKbl.set('100.000%', 'transform', tTo); - } - } - if (move) { - var x1 = move.x1; - var y1$1 = move.y1; - var x2 = move.x2; - var y2$1 = move.y2; - var t1 = move.t1; - var t2 = move.t2 || duration; - var pos = dialogue.pos || { x: 0, y: 0 }; - var values = [{ x: x1, y: y1$1 }, { x: x2, y: y2$1 }].map(function (ref) { - var x = ref.x; - var y = ref.y; - - return ( - ("translate(" + (this$1.scale * (x - pos.x)) + "px, " + (this$1.scale * (y - pos.y)) + "px)") - ); - }); - diaKbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'transform', from: values[0], to: values[1] }); - } - if (fade) { - if (fade.type === 'fad') { - var t1$1 = fade.t1; - var t2$1 = fade.t2; - diaKbl.set('0.000%', 'opacity', 0); - if (t1$1 < duration) { - diaKbl.set((((t1$1 / duration * 100).toFixed(3)) + "%"), 'opacity', 1); - if (t1$1 + t2$1 < duration) { - diaKbl.set(((((duration - t2$1) / duration * 100).toFixed(3)) + "%"), 'opacity', 1); - } - diaKbl.set('100.000%', 'opacity', 0); - } else { - diaKbl.set('100.000%', 'opacity', duration / t1$1); - } - } else { - var a1 = fade.a1; - var a2 = fade.a2; - var a3 = fade.a3; - var t1$2 = fade.t1; - var t2$2 = fade.t2; - var t3 = fade.t3; - var t4 = fade.t4; - var keyTexts = [t1$2, t2$2, t3, t4].map(function (t) { return (((t / duration * 100).toFixed(3)) + "%"); }); - var values$1 = [a1, a2, a3].map(function (a) { return 1 - a / 255; }); - diaKbl.set('0.000%', 'opacity', values$1[0]); - if (t1$2 < duration) { diaKbl.set(keyTexts[0], 'opacity', values$1[0]); } - if (t2$2 < duration) { diaKbl.set(keyTexts[1], 'opacity', values$1[1]); } - if (t3 < duration) { diaKbl.set(keyTexts[2], 'opacity', values$1[1]); } - if (t4 < duration) { diaKbl.set(keyTexts[3], 'opacity', values$1[2]); } - diaKbl.set('100.000%', 'opacity', values$1[2]); - } - } - var diaList = diaKbl.toString(); - if (diaList) { - assign(dialogue, { animationName: ("ASS-" + (uuid())) }); - keyframes += getKeyframeString(dialogue.animationName, diaList); - } - slices.forEach(function (slice) { - slice.fragments.forEach(function (fragment) { - if (!fragment.tag.t || !fragment.tag.t.length) { - return; - } - var kbl = new KeyframeBlockList(); - var fromTag = assign({}, slice.tag, fragment.tag); - // TODO: accel is not implemented yet - mergeT(fragment.tag.t).forEach(function (ref) { - var t1 = ref.t1; - var t2 = ref.t2; - var tag = ref.tag; - - if (tag.fs) { - var from = (this$1.scale * getRealFontSize(fromTag.fn, fromTag.fs)) + "px"; - var to = (this$1.scale * getRealFontSize(tag.fn, fromTag.fs)) + "px"; - kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'font-size', from: from, to: to }); - } - if (tag.fsp) { - var from$1 = (this$1.scale * fromTag.fsp) + "px"; - var to$1 = (this$1.scale * tag.fsp) + "px"; - kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'letter-spacing', from: from$1, to: to$1 }); - } - var hasAlpha = ( - tag.a1 !== undefined - && tag.a1 === tag.a2 - && tag.a2 === tag.a3 - && tag.a3 === tag.a4 - ); - if (tag.c1 || (tag.a1 && !hasAlpha)) { - var from$2 = color2rgba(fromTag.a1 + fromTag.c1); - var to$2 = color2rgba((tag.a1 || fromTag.a1) + (tag.c1 || fromTag.c1)); - kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'color', from: from$2, to: to$2 }); - } - if (hasAlpha) { - var from$3 = 1 - parseInt(fromTag.a1, 16) / 255; - var to$3 = 1 - parseInt(tag.a1, 16) / 255; - kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'opacity', from: from$3, to: to$3 }); - } - var hasStroke = strokeTags.some(function (x) { return ( - tag[x] !== undefined - && tag[x] !== (fragment.tag[x] || slice.tag[x]) - ); }); - if (hasStroke) { - var scale = /Yes/i.test(this$1.info.ScaledBorderAndShadow) ? this$1.scale : 1; - var from$4 = createCSSStroke(fromTag, scale); - var to$4 = createCSSStroke(assign({}, fromTag, tag), scale); - kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'text-shadow', from: from$4, to: to$4 }); - } - var hasTransfrom = transformTags.some(function (x) { return ( - tag[x] !== undefined - && tag[x] !== (fragment.tag[x] || slice.tag[x]) - ); }); - if (hasTransfrom) { - var toTag = assign({}, fromTag, tag); - if (fragment.drawing) { - // scales will be handled inside svg - assign(toTag, { - p: 0, - fscx: ((tag.fscx || fromTag.fscx) / fromTag.fscx) * 100, - fscy: ((tag.fscy || fromTag.fscy) / fromTag.fscy) * 100, - }); - assign(fromTag, { fscx: 100, fscy: 100 }); - } - var from$5 = createTransform(fromTag); - var to$5 = createTransform(toTag); - kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'transform', from: from$5, to: to$5 }); - } - }); - var list = kbl.toString(); - assign(fragment, { animationName: ("ASS-" + (uuid())) }); - keyframes += getKeyframeString(fragment.animationName, list); - }); - }); - }); - return keyframes; - } - - function createAnimation(name, duration, delay) { - var va = vendor.animation; - return ( - va + "animation-name:" + name + ";" - + va + "animation-duration:" + duration + "s;" - + va + "animation-delay:" + delay + "s;" - + va + "animation-timing-function:linear;" - + va + "animation-iteration-count:1;" - + va + "animation-fill-mode:forwards;" - ); - } - - function createDrawing(fragment, styleTag) { - var tag = assign({}, styleTag, fragment.tag); - var ref = fragment.drawing; - var minX = ref.minX; - var minY = ref.minY; - var width = ref.width; - var height = ref.height; - var baseScale = this.scale / (1 << (tag.p - 1)); - var scaleX = (tag.fscx ? tag.fscx / 100 : 1) * baseScale; - var scaleY = (tag.fscy ? tag.fscy / 100 : 1) * baseScale; - var blur = tag.blur || tag.be || 0; - var vbx = tag.xbord + (tag.xshad < 0 ? -tag.xshad : 0) + blur; - var vby = tag.ybord + (tag.yshad < 0 ? -tag.yshad : 0) + blur; - var vbw = width * scaleX + 2 * tag.xbord + Math.abs(tag.xshad) + 2 * blur; - var vbh = height * scaleY + 2 * tag.ybord + Math.abs(tag.yshad) + 2 * blur; - var $svg = createSVGEl('svg', [ - ['width', vbw], - ['height', vbh], - ['viewBox', ((-vbx) + " " + (-vby) + " " + vbw + " " + vbh)] ]); - var strokeScale = /Yes/i.test(this.info.ScaledBorderAndShadow) ? this.scale : 1; - var filterId = "ASS-" + (uuid()); - var $defs = createSVGEl('defs'); - $defs.appendChild(createSVGStroke(tag, filterId, strokeScale)); - $svg.appendChild($defs); - var symbolId = "ASS-" + (uuid()); - var $symbol = createSVGEl('symbol', [ - ['id', symbolId], - ['viewBox', (minX + " " + minY + " " + width + " " + height)] ]); - $symbol.appendChild(createSVGEl('path', [['d', fragment.drawing.d]])); - $svg.appendChild($symbol); - $svg.appendChild(createSVGEl('use', [ - ['width', width * scaleX], - ['height', height * scaleY], - ['xlink:href', ("#" + symbolId)], - ['filter', ("url(#" + filterId + ")")] ])); - $svg.style.cssText = ( - 'position:absolute;' - + "left:" + (minX * scaleX - vbx) + "px;" - + "top:" + (minY * scaleY - vby) + "px;" - ); - return { - $svg: $svg, - cssText: ("position:relative;width:" + (width * scaleX) + "px;height:" + (height * scaleY) + "px;"), - }; - } - - function encodeText(text, q) { - return text - .replace(//g, '>') - .replace(/\s/g, ' ') - .replace(/\\h/g, ' ') - .replace(/\\N/g, '
') - .replace(/\\n/g, q === 2 ? '
' : ' '); - } - - function createDialogue(dialogue) { - var this$1 = this; - - var $div = document.createElement('div'); - $div.className = 'ASS-dialogue'; - var df = document.createDocumentFragment(); - var slices = dialogue.slices; - var start = dialogue.start; - var end = dialogue.end; - slices.forEach(function (slice) { - var borderStyle = slice.borderStyle; - slice.fragments.forEach(function (fragment) { - var text = fragment.text; - var drawing = fragment.drawing; - var animationName = fragment.animationName; - var tag = assign({}, slice.tag, fragment.tag); - var cssText = 'display:inline-block;'; - var vct = this$1.video.currentTime; - if (!drawing) { - cssText += "font-family:\"" + (tag.fn) + "\",Arial;"; - cssText += "font-size:" + (this$1.scale * getRealFontSize(tag.fn, tag.fs)) + "px;"; - cssText += "color:" + (color2rgba(tag.a1 + tag.c1)) + ";"; - var scale = /Yes/i.test(this$1.info.ScaledBorderAndShadow) ? this$1.scale : 1; - if (borderStyle === 1) { - cssText += "text-shadow:" + (createCSSStroke(tag, scale)) + ";"; - } - if (borderStyle === 3) { - cssText += ( - "background-color:" + (color2rgba(tag.a3 + tag.c3)) + ";" - + "box-shadow:" + (createCSSStroke(tag, scale)) + ";" - ); - } - cssText += tag.b ? ("font-weight:" + (tag.b === 1 ? 'bold' : tag.b) + ";") : ''; - cssText += tag.i ? 'font-style:italic;' : ''; - cssText += (tag.u || tag.s) ? ("text-decoration:" + (tag.u ? 'underline' : '') + " " + (tag.s ? 'line-through' : '') + ";") : ''; - cssText += tag.fsp ? ("letter-spacing:" + (tag.fsp) + "px;") : ''; - // TODO: (tag.q === 0) and (tag.q === 3) are not implemented yet, - // for now just handle it as (tag.q === 1) - if (tag.q === 1 || tag.q === 0 || tag.q === 3) { - cssText += 'word-break:break-all;white-space:normal;'; - } - if (tag.q === 2) { - cssText += 'word-break:normal;white-space:nowrap;'; - } - } - var hasTransfrom = transformTags.some(function (x) { return ( - /^fsc[xy]$/.test(x) ? tag[x] !== 100 : !!tag[x] - ); }); - if (hasTransfrom) { - cssText += (vendor.transform) + "transform:" + (createTransform(tag)) + ";"; - if (!drawing) { - cssText += 'transform-style:preserve-3d;word-break:normal;white-space:nowrap;'; - } - } - if (animationName) { - cssText += createAnimation(animationName, end - start, Math.min(0, start - vct)); - } - if (drawing && tag.pbo) { - var pbo = this$1.scale * -tag.pbo * (tag.fscy || 100) / 100; - cssText += "vertical-align:" + pbo + "px;"; - } - - var hasRotate = /"fr[xyz]":[^0]/.test(JSON.stringify(tag)); - encodeText(text, tag.q).split('
').forEach(function (html, idx) { - var $span = document.createElement('span'); - $span.dataset.hasRotate = hasRotate; - if (drawing) { - var obj = createDrawing.call(this$1, fragment, slice.tag); - $span.style.cssText = obj.cssText; - $span.appendChild(obj.$svg); - } else { - if (idx) { - df.appendChild(document.createElement('br')); - } - if (!html) { - return; - } - $span.innerHTML = html; - } - // TODO: maybe it can be optimized - $span.style.cssText += cssText; - df.appendChild($span); - }); - }); - }); - $div.appendChild(df); - return $div; - } - - function allocate(dialogue) { - var layer = dialogue.layer; - var margin = dialogue.margin; - var width = dialogue.width; - var height = dialogue.height; - var alignment = dialogue.alignment; - var end = dialogue.end; - var stageWidth = this.width - (this.scale * (margin.left + margin.right) | 0); - var stageHeight = this.height; - var vertical = this.scale * margin.vertical | 0; - var vct = this.video.currentTime * 100; - this._.space[layer] = this._.space[layer] || { - left: { width: new Uint16Array(stageHeight + 1), end: new Uint16Array(stageHeight + 1) }, - center: { width: new Uint16Array(stageHeight + 1), end: new Uint16Array(stageHeight + 1) }, - right: { width: new Uint16Array(stageHeight + 1), end: new Uint16Array(stageHeight + 1) }, - }; - var channel = this._.space[layer]; - var align = ['right', 'left', 'center'][alignment % 3]; - var willCollide = function (y) { - var lw = channel.left.width[y]; - var cw = channel.center.width[y]; - var rw = channel.right.width[y]; - var le = channel.left.end[y]; - var ce = channel.center.end[y]; - var re = channel.right.end[y]; - return ( - (align === 'left' && ( - (le > vct && lw) - || (ce > vct && cw && 2 * width + cw > stageWidth) - || (re > vct && rw && width + rw > stageWidth) - )) - || (align === 'center' && ( - (le > vct && lw && 2 * lw + width > stageWidth) - || (ce > vct && cw) - || (re > vct && rw && 2 * rw + width > stageWidth) - )) - || (align === 'right' && ( - (le > vct && lw && lw + width > stageWidth) - || (ce > vct && cw && 2 * width + cw > stageWidth) - || (re > vct && rw) - )) - ); - }; - var count = 0; - var result = 0; - var find = function (y) { - count = willCollide(y) ? 0 : count + 1; - if (count >= height) { - result = y; - return true; - } - return false; - }; - if (alignment <= 3) { - for (var i = stageHeight - vertical - 1; i > vertical; i--) { - if (find(i)) { break; } - } - } else if (alignment >= 7) { - for (var i$1 = vertical + 1; i$1 < stageHeight - vertical; i$1++) { - if (find(i$1)) { break; } - } - } else { - for (var i$2 = (stageHeight - height) >> 1; i$2 < stageHeight - vertical; i$2++) { - if (find(i$2)) { break; } - } - } - if (alignment > 3) { - result -= height - 1; - } - for (var i$3 = result; i$3 < result + height; i$3++) { - channel[align].width[i$3] = width; - channel[align].end[i$3] = end * 100; - } - return result; - } - - function getPosition(dialogue) { - var effect = dialogue.effect; - var move = dialogue.move; - var alignment = dialogue.alignment; - var width = dialogue.width; - var height = dialogue.height; - var margin = dialogue.margin; - var slices = dialogue.slices; - var x = 0; - var y = 0; - if (effect) { - if (effect.name === 'banner') { - if (alignment <= 3) { y = this.height - height - margin.vertical; } - if (alignment >= 4 && alignment <= 6) { y = (this.height - height) / 2; } - if (alignment >= 7) { y = margin.vertical; } - x = effect.lefttoright ? -width : this.width; - } - } else if (dialogue.pos || move) { - var pos = dialogue.pos || { x: 0, y: 0 }; - if (alignment % 3 === 1) { x = this.scale * pos.x; } - if (alignment % 3 === 2) { x = this.scale * pos.x - width / 2; } - if (alignment % 3 === 0) { x = this.scale * pos.x - width; } - if (alignment <= 3) { y = this.scale * pos.y - height; } - if (alignment >= 4 && alignment <= 6) { y = this.scale * pos.y - height / 2; } - if (alignment >= 7) { y = this.scale * pos.y; } - } else { - if (alignment % 3 === 1) { x = 0; } - if (alignment % 3 === 2) { x = (this.width - width) / 2; } - if (alignment % 3 === 0) { x = this.width - width - this.scale * margin.right; } - var hasT = slices.some(function (slice) { return ( - slice.fragments.some(function (ref) { - var animationName = ref.animationName; - - return animationName; - }) - ); }); - if (hasT) { - if (alignment <= 3) { y = this.height - height - margin.vertical; } - if (alignment >= 4 && alignment <= 6) { y = (this.height - height) / 2; } - if (alignment >= 7) { y = margin.vertical; } - } else { - y = allocate.call(this, dialogue); - } - } - return { x: x, y: y }; - } - - function createStyle(dialogue) { - var layer = dialogue.layer; - var start = dialogue.start; - var end = dialogue.end; - var alignment = dialogue.alignment; - var effect = dialogue.effect; - var pos = dialogue.pos; - var margin = dialogue.margin; - var animationName = dialogue.animationName; - var width = dialogue.width; - var height = dialogue.height; - var x = dialogue.x; - var y = dialogue.y; - var vct = this.video.currentTime; - var cssText = ''; - if (layer) { cssText += "z-index:" + layer + ";"; } - if (animationName) { - cssText += createAnimation(animationName, end - start, Math.min(0, start - vct)); - } - cssText += "text-align:" + (['right', 'left', 'center'][alignment % 3]) + ";"; - if (!effect) { - var mw = this.width - this.scale * (margin.left + margin.right); - cssText += "max-width:" + mw + "px;"; - if (!pos) { - if (alignment % 3 === 1) { - cssText += "margin-left:" + (this.scale * margin.left) + "px;"; - } - if (alignment % 3 === 0) { - cssText += "margin-right:" + (this.scale * margin.right) + "px;"; - } - if (width > this.width - this.scale * (margin.left + margin.right)) { - cssText += "margin-left:" + (this.scale * margin.left) + "px;"; - cssText += "margin-right:" + (this.scale * margin.right) + "px;"; - } - } - } - cssText += "width:" + width + "px;height:" + height + "px;left:" + x + "px;top:" + y + "px;"; - return cssText; - } - - function renderer(dialogue) { - var $div = createDialogue.call(this, dialogue); - assign(dialogue, { $div: $div }); - this._.$stage.appendChild($div); - var ref = $div.getBoundingClientRect(); - var width = ref.width; - var height = ref.height; - assign(dialogue, { width: width, height: height }); - assign(dialogue, getPosition.call(this, dialogue)); - $div.style.cssText = createStyle.call(this, dialogue); - setTransformOrigin(dialogue); - setClipPath.call(this, dialogue); - return dialogue; - } - - function framing() { - var vct = this.video.currentTime; - for (var i = this._.stagings.length - 1; i >= 0; i--) { - var dia = this._.stagings[i]; - var end = dia.end; - if (dia.effect && /scroll/.test(dia.effect.name)) { - var ref = dia.effect; - var y1 = ref.y1; - var y2 = ref.y2; - var delay = ref.delay; - var duration = ((y2 || this._.resampledRes.height) - y1) / (1000 / delay); - end = Math.min(end, dia.start + duration); - } - if (end < vct) { - this._.$stage.removeChild(dia.$div); - if (dia.$clipPath) { - this._.$defs.removeChild(dia.$clipPath); - } - this._.stagings.splice(i, 1); - } - } - var dias = this.dialogues; - while ( - this._.index < dias.length - && vct >= dias[this._.index].start - ) { - if (vct < dias[this._.index].end) { - var dia$1 = renderer.call(this, dias[this._.index]); - this._.stagings.push(dia$1); - } - ++this._.index; - } - } - - function play() { - var this$1 = this; - - var frame = function () { - framing.call(this$1); - this$1._.requestId = raf(frame); - }; - caf(this._.requestId); - this._.requestId = raf(frame); - this._.$stage.classList.remove('ASS-animation-paused'); - return this; - } - - function pause() { - caf(this._.requestId); - this._.requestId = 0; - this._.$stage.classList.add('ASS-animation-paused'); - return this; - } - - function clear() { - while (this._.$stage.lastChild) { - this._.$stage.removeChild(this._.$stage.lastChild); - } - while (this._.$defs.lastChild) { - this._.$defs.removeChild(this._.$defs.lastChild); - } - this._.stagings = []; - this._.space = []; - } - - function seek() { - var vct = this.video.currentTime; - var dias = this.dialogues; - clear.call(this); - this._.index = (function () { - var from = 0; - var to = dias.length - 1; - while (from + 1 < to && vct > dias[(to + from) >> 1].end) { - from = (to + from) >> 1; - } - if (!from) { return 0; } - for (var i = from; i < to; i++) { - if ( - dias[i].end > vct && vct >= dias[i].start - || (i && dias[i - 1].end < vct && vct < dias[i].start) - ) { - return i; - } - } - return to; - })(); - framing.call(this); - } - - function bindEvents() { - var l = this._.listener; - l.play = play.bind(this); - l.pause = pause.bind(this); - l.seeking = seek.bind(this); - this.video.addEventListener('play', l.play); - this.video.addEventListener('pause', l.pause); - this.video.addEventListener('seeking', l.seeking); - } - - function unbindEvents() { - var l = this._.listener; - this.video.removeEventListener('play', l.play); - this.video.removeEventListener('pause', l.pause); - this.video.removeEventListener('seeking', l.seeking); - l.play = null; - l.pause = null; - l.seeking = null; - } - - function resize() { - var cw = this.video.clientWidth; - var ch = this.video.clientHeight; - var vw = this.video.videoWidth || cw; - var vh = this.video.videoHeight || ch; - var sw = this._.scriptRes.width; - var sh = this._.scriptRes.height; - var rw = sw; - var rh = sh; - var videoScale = Math.min(cw / vw, ch / vh); - if (this.resampling === 'video_width') { - rh = sw / vw * vh; - } - if (this.resampling === 'video_height') { - rw = sh / vh * vw; - } - this.scale = Math.min(cw / rw, ch / rh); - if (this.resampling === 'script_width') { - this.scale = videoScale * (vw / rw); - } - if (this.resampling === 'script_height') { - this.scale = videoScale * (vh / rh); - } - this.width = this.scale * rw; - this.height = this.scale * rh; - this._.resampledRes = { width: rw, height: rh }; - - this.container.style.cssText = "width:" + cw + "px;height:" + ch + "px;"; - var cssText = ( - "width:" + (this.width) + "px;" - + "height:" + (this.height) + "px;" - + "top:" + ((ch - this.height) / 2) + "px;" - + "left:" + ((cw - this.width) / 2) + "px;" - ); - this._.$stage.style.cssText = cssText; - this._.$svg.style.cssText = cssText; - this._.$svg.setAttributeNS(null, 'viewBox', ("0 0 " + sw + " " + sh)); - - this._.$animation.innerHTML = getKeyframes.call(this); - seek.call(this); - - return this; - } - - var GLOBAL_CSS = '.ASS-container,.ASS-stage{position:relative;overflow:hidden}.ASS-container video{position:absolute;top:0;left:0}.ASS-stage{pointer-events:none;position:absolute}.ASS-dialogue{font-size:0;position:absolute}.ASS-fix-font-size{position:absolute;visibility:hidden}.ASS-fix-objectBoundingBox{width:100%;height:100%;position:absolute;top:0;left:0}.ASS-animation-paused *{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}'; - - function init(source, video, options) { - if ( options === void 0 ) options = {}; - - this.scale = 1; - - // private variables - this._ = { - index: 0, - stagings: [], - space: [], - listener: {}, - $svg: createSVGEl('svg'), - $defs: createSVGEl('defs'), - $stage: document.createElement('div'), - $animation: document.createElement('style'), - }; - this._.$svg.appendChild(this._.$defs); - this._.$stage.className = 'ASS-stage ASS-animation-paused'; - - this._.resampling = options.resampling || 'video_height'; - - this.container = options.container || document.createElement('div'); - this.container.classList.add('ASS-container'); - this.container.appendChild($fixFontSize); - this.container.appendChild(this._.$svg); - this._.hasInitContainer = !!options.container; - - this.video = video; - bindEvents.call(this); - if (!this._.hasInitContainer) { - var isPlaying = !video.paused; - video.parentNode.insertBefore(this.container, video); - this.container.appendChild(video); - if (isPlaying && video.paused) { - video.play(); - } - } - this.container.appendChild(this._.$stage); - - var ref = compile(source); - var info = ref.info; - var width = ref.width; - var height = ref.height; - var dialogues = ref.dialogues; - this.info = info; - this._.scriptRes = { - width: width || video.videoWidth, - height: height || video.videoHeight, - }; - this.dialogues = dialogues; - - var styleRoot = getStyleRoot(this.container); - var $style = styleRoot.querySelector('#ASS-global-style'); - if (!$style) { - $style = document.createElement('style'); - $style.type = 'text/css'; - $style.id = 'ASS-global-style'; - $style.appendChild(document.createTextNode(GLOBAL_CSS)); - styleRoot.appendChild($style); - } - this._.$animation.type = 'text/css'; - this._.$animation.className = 'ASS-animation'; - styleRoot.appendChild(this._.$animation); - - resize.call(this); - - if (!this.video.paused) { - seek.call(this); - play.call(this); - } - - return this; - } - - function show() { - this._.$stage.style.visibility = 'visible'; - return this; - } - - function hide() { - this._.$stage.style.visibility = 'hidden'; - return this; - } - - function destroy() { - pause.call(this); - clear.call(this); - unbindEvents.call(this, this._.listener); - - var styleRoot = getStyleRoot(this.container); - if (!this._.hasInitContainer) { - var isPlay = !this.video.paused; - this.container.parentNode.insertBefore(this.video, this.container); - this.container.parentNode.removeChild(this.container); - if (isPlay && this.video.paused) { - this.video.play(); - } - } - styleRoot.removeChild(this._.$animation); - - // eslint-disable-next-line no-restricted-syntax - for (var key in this) { - if (Object.prototype.hasOwnProperty.call(this, key)) { - this[key] = null; - } - } - - return this; - } - - var regex = /^(video|script)_(width|height)$/; - - function getter() { - return regex.test(this._.resampling) ? this._.resampling : 'video_height'; - } - - function setter(r) { - if (r === this._.resampling) { return r; } - if (regex.test(r)) { - this._.resampling = r; - this.resize(); - } - return this._.resampling; - } - - var ASS = function ASS(source, video, options) { - if (typeof source !== 'string') { - return this; - } - return init.call(this, source, video, options); - }; - - var prototypeAccessors = { resampling: { configurable: true } }; - - ASS.prototype.resize = function resize$1 () { - return resize.call(this); - }; - - ASS.prototype.show = function show$1 () { - return show.call(this); - }; - - ASS.prototype.hide = function hide$1 () { - return hide.call(this); - }; - - ASS.prototype.destroy = function destroy$1 () { - return destroy.call(this); - }; - - prototypeAccessors.resampling.get = function () { - return getter.call(this); - }; - - prototypeAccessors.resampling.set = function (r) { - return setter.call(this, r); - }; - - Object.defineProperties( ASS.prototype, prototypeAccessors ); - - function styleInject(css, ref) { - if ( ref === void 0 ) ref = {}; - var insertAt = ref.insertAt; - - if (!css || typeof document === 'undefined') { return; } - - var head = document.head || document.getElementsByTagName('head')[0]; - var style = document.createElement('style'); - style.type = 'text/css'; - - if (insertAt === 'top') { - if (head.firstChild) { - head.insertBefore(style, head.firstChild); - } else { - head.appendChild(style); - } - } else { - head.appendChild(style); - } - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - style.appendChild(document.createTextNode(css)); - } - } - - var css_248z = ".artplayer-plugin-ass{bottom:0!important}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBQ0Usa0JBQXNCIiwiZmlsZSI6InN0eWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0cGxheWVyLXBsdWdpbi1hc3Mge1xuICBib3R0b206IDAgIWltcG9ydGFudDsgfVxuIl19 */"; - styleInject(css_248z); - - function artplayerPluginAss(url) { - return function (art) { - var ass = null; - fetch(url).then(function (res) { - return res.text(); - }).then(function (text) { - var _art$template = art.template, - $video = _art$template.$video, - $subtitle = _art$template.$subtitle; - $subtitle.classList.add('artplayer-plugin-ass'); - art.once('ready', function () { - ass = new ASS(text, $video, { - container: $subtitle, - resampling: 'video_width' - }); - ass.resize(); - art.emit('artplayerPluginAss', ass); - art.on('resize', function () { - return ass.resize(); - }); - art.on('destroy', function () { - return ass.destroy(); - }); - }); - }); - return { - name: 'artplayerPluginAss', - ass: ass - }; - }; - } - - return artplayerPluginAss; - -}))); -//# sourceMappingURL=artplayer-plugin-ass.js.map diff --git a/docs/uncompiled/artplayer-plugin-ass.js.map b/docs/uncompiled/artplayer-plugin-ass.js.map deleted file mode 100644 index 864c4aac5..000000000 --- a/docs/uncompiled/artplayer-plugin-ass.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"artplayer-plugin-ass.js","sources":["../../packages/artplayer-plugin-ass/node_modules/_assjs@0.0.11@assjs/dist/ass.esm.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer-plugin-ass/src/index.js"],"sourcesContent":["function parseEffect(text) {\n var param = text\n .toLowerCase()\n .trim()\n .split(/\\s*;\\s*/);\n if (param[0] === 'banner') {\n return {\n name: param[0],\n delay: param[1] * 1 || 0,\n leftToRight: param[2] * 1 || 0,\n fadeAwayWidth: param[3] * 1 || 0,\n };\n }\n if (/^scroll\\s/.test(param[0])) {\n return {\n name: param[0],\n y1: Math.min(param[1] * 1, param[2] * 1),\n y2: Math.max(param[1] * 1, param[2] * 1),\n delay: param[3] * 1 || 0,\n fadeAwayHeight: param[4] * 1 || 0,\n };\n }\n return null;\n}\n\nfunction parseDrawing(text) {\n return text\n .toLowerCase()\n // numbers\n .replace(/([+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)/g, ' $1 ')\n // commands\n .replace(/([mnlbspc])/g, ' $1 ')\n .trim()\n .replace(/\\s+/g, ' ')\n .split(/\\s(?=[mnlbspc])/)\n .map(function (cmd) { return (\n cmd.split(' ')\n .filter(function (x, i) { return !(i && Number.isNaN(x * 1)); })\n ); });\n}\n\nvar numTags = [\n 'b', 'i', 'u', 's', 'fsp',\n 'k', 'K', 'kf', 'ko', 'kt',\n 'fe', 'q', 'p', 'pbo', 'a', 'an',\n 'fscx', 'fscy', 'fax', 'fay', 'frx', 'fry', 'frz', 'fr',\n 'be', 'blur', 'bord', 'xbord', 'ybord', 'shad', 'xshad', 'yshad' ];\n\nvar numRegexs = numTags.map(function (nt) { return ({ name: nt, regex: new RegExp((\"^\" + nt + \"-?\\\\d\")) }); });\n\nfunction parseTag(text) {\n var assign;\n\n var tag = {};\n for (var i = 0; i < numRegexs.length; i++) {\n var ref = numRegexs[i];\n var name = ref.name;\n var regex = ref.regex;\n if (regex.test(text)) {\n tag[name] = text.slice(name.length) * 1;\n return tag;\n }\n }\n if (/^fn/.test(text)) {\n tag.fn = text.slice(2);\n } else if (/^r/.test(text)) {\n tag.r = text.slice(1);\n } else if (/^fs[\\d+-]/.test(text)) {\n tag.fs = text.slice(2);\n } else if (/^\\d?c&?H?[0-9a-f]+|^\\d?c$/i.test(text)) {\n var ref$1 = text.match(/^(\\d?)c&?H?(\\w*)/);\n var num = ref$1[1];\n var color = ref$1[2];\n tag[(\"c\" + (num || 1))] = color && (\"000000\" + color).slice(-6);\n } else if (/^\\da&?H?[0-9a-f]+/i.test(text)) {\n var ref$2 = text.match(/^(\\d)a&?H?(\\w\\w)/);\n var num$1 = ref$2[1];\n var alpha = ref$2[2];\n tag[(\"a\" + num$1)] = alpha;\n } else if (/^alpha&?H?[0-9a-f]+/i.test(text)) {\n (assign = text.match(/^alpha&?H?([0-9a-f]+)/i), tag.alpha = assign[1]);\n tag.alpha = (\"00\" + (tag.alpha)).slice(-2);\n } else if (/^(?:pos|org|move|fad|fade)\\(/.test(text)) {\n var ref$3 = text.match(/^(\\w+)\\((.*?)\\)?$/);\n var key = ref$3[1];\n var value = ref$3[2];\n tag[key] = value\n .trim()\n .split(/\\s*,\\s*/)\n .map(Number);\n } else if (/^i?clip/.test(text)) {\n var p = text\n .match(/^i?clip\\((.*?)\\)?$/)[1]\n .trim()\n .split(/\\s*,\\s*/);\n tag.clip = {\n inverse: /iclip/.test(text),\n scale: 1,\n drawing: null,\n dots: null,\n };\n if (p.length === 1) {\n tag.clip.drawing = parseDrawing(p[0]);\n }\n if (p.length === 2) {\n tag.clip.scale = p[0] * 1;\n tag.clip.drawing = parseDrawing(p[1]);\n }\n if (p.length === 4) {\n tag.clip.dots = p.map(Number);\n }\n } else if (/^t\\(/.test(text)) {\n var p$1 = text\n .match(/^t\\((.*?)\\)?$/)[1]\n .trim()\n .replace(/\\\\.*/, function (x) { return x.replace(/,/g, '\\n'); })\n .split(/\\s*,\\s*/);\n if (!p$1[0]) { return tag; }\n tag.t = {\n t1: 0,\n t2: 0,\n accel: 1,\n tags: p$1[p$1.length - 1]\n .replace(/\\n/g, ',')\n .split('\\\\')\n .slice(1)\n .map(parseTag),\n };\n if (p$1.length === 2) {\n tag.t.accel = p$1[0] * 1;\n }\n if (p$1.length === 3) {\n tag.t.t1 = p$1[0] * 1;\n tag.t.t2 = p$1[1] * 1;\n }\n if (p$1.length === 4) {\n tag.t.t1 = p$1[0] * 1;\n tag.t.t2 = p$1[1] * 1;\n tag.t.accel = p$1[2] * 1;\n }\n }\n\n return tag;\n}\n\nfunction parseTags(text) {\n var tags = [];\n var depth = 0;\n var str = '';\n for (var i = 0; i < text.length; i++) {\n var x = text[i];\n if (x === '(') { depth++; }\n if (x === ')') { depth--; }\n if (depth < 0) { depth = 0; }\n if (!depth && x === '\\\\') {\n if (str) {\n tags.push(str);\n }\n str = '';\n } else {\n str += x;\n }\n }\n tags.push(str);\n return tags.map(parseTag);\n}\n\nfunction parseText(text) {\n var pairs = text.split(/{([^{}]*?)}/);\n var parsed = [];\n if (pairs[0].length) {\n parsed.push({ tags: [], text: pairs[0], drawing: [] });\n }\n for (var i = 1; i < pairs.length; i += 2) {\n var tags = parseTags(pairs[i]);\n var isDrawing = tags.reduce(function (v, tag) { return (tag.p === undefined ? v : !!tag.p); }, false);\n parsed.push({\n tags: tags,\n text: isDrawing ? '' : pairs[i + 1],\n drawing: isDrawing ? parseDrawing(pairs[i + 1]) : [],\n });\n }\n return {\n raw: text,\n combined: parsed.map(function (frag) { return frag.text; }).join(''),\n parsed: parsed,\n };\n}\n\nfunction parseTime(time) {\n var t = time.split(':');\n return t[0] * 3600 + t[1] * 60 + t[2] * 1;\n}\n\nfunction parseDialogue(text, format) {\n var fields = text.split(',');\n if (fields.length > format.length) {\n var textField = fields.slice(format.length - 1).join();\n fields = fields.slice(0, format.length - 1);\n fields.push(textField);\n }\n\n var dia = {};\n for (var i = 0; i < fields.length; i++) {\n var fmt = format[i];\n var fld = fields[i].trim();\n switch (fmt) {\n case 'Layer':\n case 'MarginL':\n case 'MarginR':\n case 'MarginV':\n dia[fmt] = fld * 1;\n break;\n case 'Start':\n case 'End':\n dia[fmt] = parseTime(fld);\n break;\n case 'Effect':\n dia[fmt] = parseEffect(fld);\n break;\n case 'Text':\n dia[fmt] = parseText(fld);\n break;\n default:\n dia[fmt] = fld;\n }\n }\n\n return dia;\n}\n\nfunction parseFormat(text) {\n return text.match(/Format\\s*:\\s*(.*)/i)[1].split(/\\s*,\\s*/);\n}\n\nfunction parseStyle(text) {\n return text.match(/Style\\s*:\\s*(.*)/i)[1].split(/\\s*,\\s*/);\n}\n\nfunction parse(text) {\n var tree = {\n info: {},\n styles: { format: [], style: [] },\n events: { format: [], comment: [], dialogue: [] },\n };\n var lines = text.split(/\\r?\\n/);\n var state = 0;\n for (var i = 0; i < lines.length; i++) {\n var line = lines[i].trim();\n if (/^;/.test(line)) { continue; }\n\n if (/^\\[Script Info\\]/i.test(line)) { state = 1; }\n else if (/^\\[V4\\+? Styles\\]/i.test(line)) { state = 2; }\n else if (/^\\[Events\\]/i.test(line)) { state = 3; }\n else if (/^\\[.*\\]/.test(line)) { state = 0; }\n\n if (state === 0) { continue; }\n if (state === 1) {\n if (/:/.test(line)) {\n var ref = line.match(/(.*?)\\s*:\\s*(.*)/);\n var key = ref[1];\n var value = ref[2];\n tree.info[key] = value;\n }\n }\n if (state === 2) {\n if (/^Format\\s*:/i.test(line)) {\n tree.styles.format = parseFormat(line);\n }\n if (/^Style\\s*:/i.test(line)) {\n tree.styles.style.push(parseStyle(line));\n }\n }\n if (state === 3) {\n if (/^Format\\s*:/i.test(line)) {\n tree.events.format = parseFormat(line);\n }\n if (/^(?:Comment|Dialogue)\\s*:/i.test(line)) {\n var ref$1 = line.match(/^(\\w+?)\\s*:\\s*(.*)/i);\n var key$1 = ref$1[1];\n var value$1 = ref$1[2];\n tree.events[key$1.toLowerCase()].push(parseDialogue(value$1, tree.events.format));\n }\n }\n }\n\n return tree;\n}\n\nvar assign = Object.assign || (\n /* istanbul ignore next */\n function assign(target) {\n var sources = [], len = arguments.length - 1;\n while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];\n\n for (var i = 0; i < sources.length; i++) {\n if (!sources[i]) { continue; }\n var keys = Object.keys(sources[i]);\n for (var j = 0; j < keys.length; j++) {\n // eslint-disable-next-line no-param-reassign\n target[keys[j]] = sources[i][keys[j]];\n }\n }\n return target;\n }\n);\n\nfunction createCommand(arr) {\n var cmd = {\n type: null,\n prev: null,\n next: null,\n points: [],\n };\n if (/[mnlbs]/.test(arr[0])) {\n cmd.type = arr[0]\n .toUpperCase()\n .replace('N', 'L')\n .replace('B', 'C');\n }\n for (var len = arr.length - !(arr.length & 1), i = 1; i < len; i += 2) {\n cmd.points.push({ x: arr[i] * 1, y: arr[i + 1] * 1 });\n }\n return cmd;\n}\n\nfunction isValid(cmd) {\n if (!cmd.points.length || !cmd.type) {\n return false;\n }\n if (/C|S/.test(cmd.type) && cmd.points.length < 3) {\n return false;\n }\n return true;\n}\n\nfunction getViewBox(commands) {\n var ref;\n\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n (ref = []).concat.apply(ref, commands.map(function (ref) {\n var points = ref.points;\n\n return points;\n })).forEach(function (ref) {\n var x = ref.x;\n var y = ref.y;\n\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n });\n return {\n minX: minX,\n minY: minY,\n width: maxX - minX,\n height: maxY - minY,\n };\n}\n\n/**\n * Convert S command to B command\n * Reference from https://github.com/d3/d3/blob/v3.5.17/src/svg/line.js#L259\n * @param {Array} points points\n * @param {String} prev type of previous command\n * @param {String} next type of next command\n * @return {Array} converted commands\n */\nfunction s2b(points, prev, next) {\n var results = [];\n var bb1 = [0, 2 / 3, 1 / 3, 0];\n var bb2 = [0, 1 / 3, 2 / 3, 0];\n var bb3 = [0, 1 / 6, 2 / 3, 1 / 6];\n var dot4 = function (a, b) { return (a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3]); };\n var px = [points[points.length - 1].x, points[0].x, points[1].x, points[2].x];\n var py = [points[points.length - 1].y, points[0].y, points[1].y, points[2].y];\n results.push({\n type: prev === 'M' ? 'M' : 'L',\n points: [{ x: dot4(bb3, px), y: dot4(bb3, py) }],\n });\n for (var i = 3; i < points.length; i++) {\n px = [points[i - 3].x, points[i - 2].x, points[i - 1].x, points[i].x];\n py = [points[i - 3].y, points[i - 2].y, points[i - 1].y, points[i].y];\n results.push({\n type: 'C',\n points: [\n { x: dot4(bb1, px), y: dot4(bb1, py) },\n { x: dot4(bb2, px), y: dot4(bb2, py) },\n { x: dot4(bb3, px), y: dot4(bb3, py) } ],\n });\n }\n if (next === 'L' || next === 'C') {\n var last = points[points.length - 1];\n results.push({ type: 'L', points: [{ x: last.x, y: last.y }] });\n }\n return results;\n}\n\nfunction toSVGPath(instructions) {\n return instructions.map(function (ref) {\n var type = ref.type;\n var points = ref.points;\n\n return (\n type + points.map(function (ref) {\n var x = ref.x;\n var y = ref.y;\n\n return (x + \",\" + y);\n }).join(',')\n );\n }).join('');\n}\n\nfunction compileDrawing(rawCommands) {\n var ref$1;\n\n var commands = [];\n var i = 0;\n while (i < rawCommands.length) {\n var arr = rawCommands[i];\n var cmd = createCommand(arr);\n if (isValid(cmd)) {\n if (cmd.type === 'S') {\n var ref = (commands[i - 1] || { points: [{ x: 0, y: 0 }] }).points.slice(-1)[0];\n var x = ref.x;\n var y = ref.y;\n cmd.points.unshift({ x: x, y: y });\n }\n if (i) {\n cmd.prev = commands[i - 1].type;\n commands[i - 1].next = cmd.type;\n }\n commands.push(cmd);\n i++;\n } else {\n if (i && commands[i - 1].type === 'S') {\n var additionPoints = {\n p: cmd.points,\n c: commands[i - 1].points.slice(0, 3),\n };\n commands[i - 1].points = commands[i - 1].points.concat(\n (additionPoints[arr[0]] || []).map(function (ref) {\n var x = ref.x;\n var y = ref.y;\n\n return ({ x: x, y: y });\n })\n );\n }\n rawCommands.splice(i, 1);\n }\n }\n var instructions = (ref$1 = []).concat.apply(\n ref$1, commands.map(function (ref) {\n var type = ref.type;\n var points = ref.points;\n var prev = ref.prev;\n var next = ref.next;\n\n return (\n type === 'S'\n ? s2b(points, prev, next)\n : { type: type, points: points }\n );\n })\n );\n\n return assign({ instructions: instructions, d: toSVGPath(instructions) }, getViewBox(commands));\n}\n\nvar tTags = [\n 'fs', 'clip',\n 'c1', 'c2', 'c3', 'c4', 'a1', 'a2', 'a3', 'a4', 'alpha',\n 'fscx', 'fscy', 'fax', 'fay', 'frx', 'fry', 'frz', 'fr',\n 'be', 'blur', 'bord', 'xbord', 'ybord', 'shad', 'xshad', 'yshad' ];\n\nfunction compileTag(tag, key, presets) {\n var obj, obj$1, obj$2;\n\n if ( presets === void 0 ) presets = {};\n var value = tag[key];\n if (value === undefined) {\n return null;\n }\n if (key === 'pos' || key === 'org') {\n return value.length === 2 ? ( obj = {}, obj[key] = { x: value[0], y: value[1] }, obj ) : null;\n }\n if (key === 'move') {\n var x1 = value[0];\n var y1 = value[1];\n var x2 = value[2];\n var y2 = value[3];\n var t1 = value[4]; if ( t1 === void 0 ) t1 = 0;\n var t2 = value[5]; if ( t2 === void 0 ) t2 = 0;\n return value.length === 4 || value.length === 6\n ? { move: { x1: x1, y1: y1, x2: x2, y2: y2, t1: t1, t2: t2 } }\n : null;\n }\n if (key === 'fad' || key === 'fade') {\n if (value.length === 2) {\n var t1$1 = value[0];\n var t2$1 = value[1];\n return { fade: { type: 'fad', t1: t1$1, t2: t2$1 } };\n }\n if (value.length === 7) {\n var a1 = value[0];\n var a2 = value[1];\n var a3 = value[2];\n var t1$2 = value[3];\n var t2$2 = value[4];\n var t3 = value[5];\n var t4 = value[6];\n return { fade: { type: 'fade', a1: a1, a2: a2, a3: a3, t1: t1$2, t2: t2$2, t3: t3, t4: t4 } };\n }\n return null;\n }\n if (key === 'clip') {\n var inverse = value.inverse;\n var scale = value.scale;\n var drawing = value.drawing;\n var dots = value.dots;\n if (drawing) {\n return { clip: { inverse: inverse, scale: scale, drawing: compileDrawing(drawing), dots: dots } };\n }\n if (dots) {\n var x1$1 = dots[0];\n var y1$1 = dots[1];\n var x2$1 = dots[2];\n var y2$1 = dots[3];\n return { clip: { inverse: inverse, scale: scale, drawing: drawing, dots: { x1: x1$1, y1: y1$1, x2: x2$1, y2: y2$1 } } };\n }\n return null;\n }\n if (/^[xy]?(bord|shad)$/.test(key)) {\n value = Math.max(value, 0);\n }\n if (key === 'bord') {\n return { xbord: value, ybord: value };\n }\n if (key === 'shad') {\n return { xshad: value, yshad: value };\n }\n if (/^c\\d$/.test(key)) {\n return ( obj$1 = {}, obj$1[key] = value || presets[key], obj$1 );\n }\n if (key === 'alpha') {\n return { a1: value, a2: value, a3: value, a4: value };\n }\n if (key === 'fr') {\n return { frz: value };\n }\n if (key === 'fs') {\n return {\n fs: /^\\+|-/.test(value)\n ? (value * 1 > -10 ? (1 + value / 10) : 1) * presets.fs\n : value * 1,\n };\n }\n if (key === 't') {\n var t1$3 = value.t1;\n var accel = value.accel;\n var tags = value.tags;\n var t2$3 = value.t2 || (presets.end - presets.start) * 1e3;\n var compiledTag = {};\n tags.forEach(function (t) {\n var k = Object.keys(t)[0];\n if (~tTags.indexOf(k) && !(k === 'clip' && !t[k].dots)) {\n assign(compiledTag, compileTag(t, k, presets));\n }\n });\n return { t: { t1: t1$3, t2: t2$3, accel: accel, tag: compiledTag } };\n }\n return ( obj$2 = {}, obj$2[key] = value, obj$2 );\n}\n\nvar a2an = [\n null, 1, 2, 3,\n null, 7, 8, 9,\n null, 4, 5, 6 ];\n\nvar globalTags = ['r', 'a', 'an', 'pos', 'org', 'move', 'fade', 'fad', 'clip'];\n\nfunction createSlice(name, styles) {\n return {\n name: name,\n borderStyle: styles[name].style.BorderStyle,\n tag: styles[name].tag,\n fragments: [],\n };\n}\n\nfunction compileText(ref) {\n var styles = ref.styles;\n var name = ref.name;\n var parsed = ref.parsed;\n var start = ref.start;\n var end = ref.end;\n\n var alignment;\n var pos;\n var org;\n var move;\n var fade;\n var clip;\n var slices = [];\n var slice = createSlice(name, styles);\n var prevTag = {};\n for (var i = 0; i < parsed.length; i++) {\n var ref$1 = parsed[i];\n var tags = ref$1.tags;\n var text = ref$1.text;\n var drawing = ref$1.drawing;\n var reset = (void 0);\n for (var j = 0; j < tags.length; j++) {\n var tag = tags[j];\n reset = tag.r === undefined ? reset : tag.r;\n }\n var fragment = {\n tag: reset === undefined ? JSON.parse(JSON.stringify(prevTag)) : {},\n text: text,\n drawing: drawing.length ? compileDrawing(drawing) : null,\n };\n for (var j$1 = 0; j$1 < tags.length; j$1++) {\n var tag$1 = tags[j$1];\n alignment = alignment || a2an[tag$1.a || 0] || tag$1.an;\n pos = pos || compileTag(tag$1, 'pos');\n org = org || compileTag(tag$1, 'org');\n move = move || compileTag(tag$1, 'move');\n fade = fade || compileTag(tag$1, 'fade') || compileTag(tag$1, 'fad');\n clip = compileTag(tag$1, 'clip') || clip;\n var key = Object.keys(tag$1)[0];\n if (key && !~globalTags.indexOf(key)) {\n var ref$2 = slice.tag;\n var c1 = ref$2.c1;\n var c2 = ref$2.c2;\n var c3 = ref$2.c3;\n var c4 = ref$2.c4;\n var fs = prevTag.fs || slice.tag.fs;\n var compiledTag = compileTag(tag$1, key, { start: start, end: end, c1: c1, c2: c2, c3: c3, c4: c4, fs: fs });\n if (key === 't') {\n fragment.tag.t = fragment.tag.t || [];\n fragment.tag.t.push(compiledTag.t);\n } else {\n assign(fragment.tag, compiledTag);\n }\n }\n }\n prevTag = fragment.tag;\n if (reset !== undefined) {\n slices.push(slice);\n slice = createSlice(styles[reset] ? reset : name, styles);\n }\n if (fragment.text || fragment.drawing) {\n var prev = slice.fragments[slice.fragments.length - 1] || {};\n if (prev.text && fragment.text && !Object.keys(fragment.tag).length) {\n // merge fragment to previous if its tag is empty\n prev.text += fragment.text;\n } else {\n slice.fragments.push(fragment);\n }\n }\n }\n slices.push(slice);\n\n return assign({ alignment: alignment, slices: slices }, pos, org, move, fade, clip);\n}\n\nfunction compileDialogues(ref) {\n var styles = ref.styles;\n var dialogues = ref.dialogues;\n\n var minLayer = Infinity;\n var results = [];\n for (var i = 0; i < dialogues.length; i++) {\n var dia = dialogues[i];\n if (dia.Start >= dia.End) {\n continue;\n }\n if (!styles[dia.Style]) {\n dia.Style = 'Default';\n }\n var stl = styles[dia.Style].style;\n var compiledText = compileText({\n styles: styles,\n name: dia.Style,\n parsed: dia.Text.parsed,\n start: dia.Start,\n end: dia.End,\n });\n var alignment = compiledText.alignment || stl.Alignment;\n minLayer = Math.min(minLayer, dia.Layer);\n results.push(assign({\n layer: dia.Layer,\n start: dia.Start,\n end: dia.End,\n // reset style by `\\r` will not effect margin and alignment\n margin: {\n left: dia.MarginL || stl.MarginL,\n right: dia.MarginR || stl.MarginR,\n vertical: dia.MarginV || stl.MarginV,\n },\n effect: dia.Effect,\n }, compiledText, { alignment: alignment }));\n }\n for (var i$1 = 0; i$1 < results.length; i$1++) {\n results[i$1].layer -= minLayer;\n }\n return results.sort(function (a, b) { return a.start - b.start || a.end - b.end; });\n}\n\n// same as Aegisub\n// https://github.com/Aegisub/Aegisub/blob/master/src/ass_style.h\nvar DEFAULT_STYLE = {\n Name: 'Default',\n Fontname: 'Arial',\n Fontsize: '20',\n PrimaryColour: '&H00FFFFFF&',\n SecondaryColour: '&H000000FF&',\n OutlineColour: '&H00000000&',\n BackColour: '&H00000000&',\n Bold: '0',\n Italic: '0',\n Underline: '0',\n StrikeOut: '0',\n ScaleX: '100',\n ScaleY: '100',\n Spacing: '0',\n Angle: '0',\n BorderStyle: '1',\n Outline: '2',\n Shadow: '2',\n Alignment: '2',\n MarginL: '10',\n MarginR: '10',\n MarginV: '10',\n Encoding: '1',\n};\n\n/**\n * @param {String} color\n * @returns {Array} [AA, BBGGRR]\n */\nfunction parseStyleColor(color) {\n if (/^(&|H|&H)[0-9a-f]{6,}/i.test(color)) {\n var ref = color.match(/&?H?([0-9a-f]{2})?([0-9a-f]{6})/i);\n var a = ref[1];\n var c = ref[2];\n return [a || '00', c];\n }\n var num = parseInt(color, 10);\n if (!Number.isNaN(num)) {\n var min = -2147483648;\n var max = 2147483647;\n if (num < min) {\n return ['00', '000000'];\n }\n var aabbggrr = (min <= num && num <= max)\n ? (\"00000000\" + ((num < 0 ? num + 4294967296 : num).toString(16))).slice(-8)\n : String(num).slice(0, 8);\n return [aabbggrr.slice(0, 2), aabbggrr.slice(2)];\n }\n return ['00', '000000'];\n}\n\nfunction compileStyles(ref) {\n var info = ref.info;\n var style = ref.style;\n var format = ref.format;\n var defaultStyle = ref.defaultStyle;\n\n var result = {};\n var styles = [\n assign({}, DEFAULT_STYLE, defaultStyle, { Name: 'Default' }) ].concat( style.map(function (stl) {\n var s = {};\n for (var i = 0; i < format.length; i++) {\n s[format[i]] = stl[i];\n }\n return s;\n }) );\n var loop = function ( i ) {\n var s = styles[i];\n // this behavior is same as Aegisub by black-box testing\n if (/^(\\*+)Default$/.test(s.Name)) {\n s.Name = 'Default';\n }\n Object.keys(s).forEach(function (key) {\n if (key !== 'Name' && key !== 'Fontname' && !/Colour/.test(key)) {\n s[key] *= 1;\n }\n });\n var ref$1 = parseStyleColor(s.PrimaryColour);\n var a1 = ref$1[0];\n var c1 = ref$1[1];\n var ref$2 = parseStyleColor(s.SecondaryColour);\n var a2 = ref$2[0];\n var c2 = ref$2[1];\n var ref$3 = parseStyleColor(s.OutlineColour);\n var a3 = ref$3[0];\n var c3 = ref$3[1];\n var ref$4 = parseStyleColor(s.BackColour);\n var a4 = ref$4[0];\n var c4 = ref$4[1];\n var tag = {\n fn: s.Fontname,\n fs: s.Fontsize,\n c1: c1,\n a1: a1,\n c2: c2,\n a2: a2,\n c3: c3,\n a3: a3,\n c4: c4,\n a4: a4,\n b: Math.abs(s.Bold),\n i: Math.abs(s.Italic),\n u: Math.abs(s.Underline),\n s: Math.abs(s.StrikeOut),\n fscx: s.ScaleX,\n fscy: s.ScaleY,\n fsp: s.Spacing,\n frz: s.Angle,\n xbord: s.Outline,\n ybord: s.Outline,\n xshad: s.Shadow,\n yshad: s.Shadow,\n q: /^[0-3]$/.test(info.WrapStyle) ? info.WrapStyle * 1 : 2,\n };\n result[s.Name] = { style: s, tag: tag };\n };\n\n for (var i = 0; i < styles.length; i++) loop( i );\n return result;\n}\n\nfunction compile(text, options) {\n if ( options === void 0 ) options = {};\n\n var tree = parse(text);\n var styles = compileStyles({\n info: tree.info,\n style: tree.styles.style,\n format: tree.styles.format,\n defaultStyle: options.defaultStyle || {},\n });\n return {\n info: tree.info,\n width: tree.info.PlayResX * 1 || null,\n height: tree.info.PlayResY * 1 || null,\n collisions: tree.info.Collisions || 'Normal',\n styles: styles,\n dialogues: compileDialogues({\n styles: styles,\n dialogues: tree.events.dialogue,\n }),\n };\n}\n\nvar raf = (\n window.requestAnimationFrame\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame\n || (function (cb) { return setTimeout(cb, 50 / 3); })\n);\n\nvar caf = (\n window.cancelAnimationFrame\n || window.mozCancelAnimationFrame\n || window.webkitCancelAnimationFrame\n || clearTimeout\n);\n\nfunction color2rgba(c) {\n var t = c.match(/(\\w\\w)(\\w\\w)(\\w\\w)(\\w\\w)/);\n var a = 1 - (\"0x\" + (t[1])) / 255;\n var b = +(\"0x\" + (t[2]));\n var g = +(\"0x\" + (t[3]));\n var r = +(\"0x\" + (t[4]));\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",\" + a + \")\");\n}\n\nfunction uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n\nfunction createSVGEl(name, attrs) {\n if ( attrs === void 0 ) attrs = [];\n\n var $el = document.createElementNS('http://www.w3.org/2000/svg', name);\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n $el.setAttributeNS(\n attr[0] === 'xlink:href' ? 'http://www.w3.org/1999/xlink' : null,\n attr[0],\n attr[1]\n );\n }\n return $el;\n}\n\nfunction getVendor(prop) {\n var ref = document.body;\n var style = ref.style;\n var Prop = prop.replace(/^\\w/, function (x) { return x.toUpperCase(); });\n if (prop in style) { return ''; }\n if ((\"webkit\" + Prop) in style) { return '-webkit-'; }\n if ((\"moz\" + Prop) in style) { return '-moz-'; }\n return '';\n}\n\nvar vendor = {\n transform: getVendor('transform'),\n animation: getVendor('animation'),\n clipPath: getVendor('clipPath'),\n};\n\nfunction getStyleRoot(container) {\n var rootNode = container.getRootNode ? container.getRootNode() : document;\n return rootNode === document ? rootNode.head : rootNode;\n}\n\nvar strokeTags = ['c3', 'a3', 'c4', 'a4', 'xbord', 'ybord', 'xshad', 'yshad', 'blur', 'be'];\nvar transformTags = ['fscx', 'fscy', 'frx', 'fry', 'frz', 'fax', 'fay'];\n\nfunction createClipPath(clip) {\n var sw = this._.scriptRes.width;\n var sh = this._.scriptRes.height;\n var d = '';\n if (clip.dots !== null) {\n var ref = clip.dots;\n var x1 = ref.x1;\n var y1 = ref.y1;\n var x2 = ref.x2;\n var y2 = ref.y2;\n x1 /= sw;\n y1 /= sh;\n x2 /= sw;\n y2 /= sh;\n d = \"M\" + x1 + \",\" + y1 + \"L\" + x1 + \",\" + y2 + \",\" + x2 + \",\" + y2 + \",\" + x2 + \",\" + y1 + \"Z\";\n }\n if (clip.drawing !== null) {\n d = clip.drawing.instructions.map(function (ref) {\n var type = ref.type;\n var points = ref.points;\n\n return (\n type + points.map(function (ref) {\n var x = ref.x;\n var y = ref.y;\n\n return ((x / sw) + \",\" + (y / sh));\n }).join(',')\n );\n }).join('');\n }\n var scale = 1 / (1 << (clip.scale - 1));\n if (clip.inverse) {\n d += \"M0,0L0,\" + scale + \",\" + scale + \",\" + scale + \",\" + scale + \",0,0,0Z\";\n }\n var id = \"ASS-\" + (uuid());\n var $clipPath = createSVGEl('clipPath', [\n ['id', id],\n ['clipPathUnits', 'objectBoundingBox'] ]);\n $clipPath.appendChild(createSVGEl('path', [\n ['d', d],\n ['transform', (\"scale(\" + scale + \")\")],\n ['clip-rule', 'evenodd'] ]));\n this._.$defs.appendChild($clipPath);\n return {\n $clipPath: $clipPath,\n cssText: ((vendor.clipPath) + \"clip-path:url(#\" + id + \");\"),\n };\n}\n\nfunction setClipPath(dialogue) {\n if (!dialogue.clip) {\n return;\n }\n var $fobb = document.createElement('div');\n this._.$stage.insertBefore($fobb, dialogue.$div);\n $fobb.appendChild(dialogue.$div);\n $fobb.className = 'ASS-fix-objectBoundingBox';\n var ref = createClipPath.call(this, dialogue.clip);\n var cssText = ref.cssText;\n var $clipPath = ref.$clipPath;\n this._.$defs.appendChild($clipPath);\n $fobb.style.cssText = cssText;\n assign(dialogue, { $div: $fobb, $clipPath: $clipPath });\n}\n\nvar $fixFontSize = document.createElement('div');\n$fixFontSize.className = 'ASS-fix-font-size';\n$fixFontSize.textContent = 'M';\n\nvar cache = Object.create(null);\n\nfunction getRealFontSize(fn, fs) {\n var key = fn + \"-\" + fs;\n if (!cache[key]) {\n $fixFontSize.style.cssText = \"line-height:normal;font-size:\" + fs + \"px;font-family:\\\"\" + fn + \"\\\",Arial;\";\n cache[key] = fs * fs / $fixFontSize.clientHeight;\n }\n return cache[key];\n}\n\nfunction createSVGStroke(tag, id, scale) {\n var hasBorder = tag.xbord || tag.ybord;\n var hasShadow = tag.xshad || tag.yshad;\n var isOpaque = tag.a1 !== 'FF';\n var blur = tag.blur || tag.be || 0;\n var $filter = createSVGEl('filter', [['id', id]]);\n $filter.appendChild(createSVGEl('feGaussianBlur', [\n ['stdDeviation', hasBorder ? 0 : blur],\n ['in', 'SourceGraphic'],\n ['result', 'sg_b'] ]));\n $filter.appendChild(createSVGEl('feFlood', [\n ['flood-color', color2rgba(tag.a1 + tag.c1)],\n ['result', 'c1'] ]));\n $filter.appendChild(createSVGEl('feComposite', [\n ['operator', 'in'],\n ['in', 'c1'],\n ['in2', 'sg_b'],\n ['result', 'main'] ]));\n if (hasBorder) {\n $filter.appendChild(createSVGEl('feMorphology', [\n ['radius', ((tag.xbord * scale) + \" \" + (tag.ybord * scale))],\n ['operator', 'dilate'],\n ['in', 'SourceGraphic'],\n ['result', 'dil'] ]));\n $filter.appendChild(createSVGEl('feGaussianBlur', [\n ['stdDeviation', blur],\n ['in', 'dil'],\n ['result', 'dil_b'] ]));\n $filter.appendChild(createSVGEl('feComposite', [\n ['operator', 'out'],\n ['in', 'dil_b'],\n ['in2', 'SourceGraphic'],\n ['result', 'dil_b_o'] ]));\n $filter.appendChild(createSVGEl('feFlood', [\n ['flood-color', color2rgba(tag.a3 + tag.c3)],\n ['result', 'c3'] ]));\n $filter.appendChild(createSVGEl('feComposite', [\n ['operator', 'in'],\n ['in', 'c3'],\n ['in2', 'dil_b_o'],\n ['result', 'border'] ]));\n }\n if (hasShadow && (hasBorder || isOpaque)) {\n $filter.appendChild(createSVGEl('feOffset', [\n ['dx', tag.xshad * scale],\n ['dy', tag.yshad * scale],\n ['in', hasBorder ? 'dil' : 'SourceGraphic'],\n ['result', 'off'] ]));\n $filter.appendChild(createSVGEl('feGaussianBlur', [\n ['stdDeviation', blur],\n ['in', 'off'],\n ['result', 'off_b'] ]));\n if (!isOpaque) {\n $filter.appendChild(createSVGEl('feOffset', [\n ['dx', tag.xshad * scale],\n ['dy', tag.yshad * scale],\n ['in', 'SourceGraphic'],\n ['result', 'sg_off'] ]));\n $filter.appendChild(createSVGEl('feComposite', [\n ['operator', 'out'],\n ['in', 'off_b'],\n ['in2', 'sg_off'],\n ['result', 'off_b_o'] ]));\n }\n $filter.appendChild(createSVGEl('feFlood', [\n ['flood-color', color2rgba(tag.a4 + tag.c4)],\n ['result', 'c4'] ]));\n $filter.appendChild(createSVGEl('feComposite', [\n ['operator', 'in'],\n ['in', 'c4'],\n ['in2', isOpaque ? 'off_b' : 'off_b_o'],\n ['result', 'shadow'] ]));\n }\n var $merge = createSVGEl('feMerge', []);\n if (hasShadow && (hasBorder || isOpaque)) {\n $merge.appendChild(createSVGEl('feMergeNode', [['in', 'shadow']]));\n }\n if (hasBorder) {\n $merge.appendChild(createSVGEl('feMergeNode', [['in', 'border']]));\n }\n $merge.appendChild(createSVGEl('feMergeNode', [['in', 'main']]));\n $filter.appendChild($merge);\n return $filter;\n}\n\nfunction createCSSStroke(tag, scale) {\n var arr = [];\n var oc = color2rgba(tag.a3 + tag.c3);\n var ox = tag.xbord * scale;\n var oy = tag.ybord * scale;\n var sc = color2rgba(tag.a4 + tag.c4);\n var sx = tag.xshad * scale;\n var sy = tag.yshad * scale;\n var blur = tag.blur || tag.be || 0;\n if (!(ox + oy + sx + sy)) { return 'none'; }\n if (ox || oy) {\n for (var i = -1; i <= 1; i++) {\n for (var j = -1; j <= 1; j++) {\n for (var x = 1; x < ox; x++) {\n for (var y = 1; y < oy; y++) {\n if (i || j) {\n arr.push((oc + \" \" + (i * x) + \"px \" + (j * y) + \"px \" + blur + \"px\"));\n }\n }\n }\n arr.push((oc + \" \" + (i * ox) + \"px \" + (j * oy) + \"px \" + blur + \"px\"));\n }\n }\n }\n if (sx || sy) {\n var pnx = sx > 0 ? 1 : -1;\n var pny = sy > 0 ? 1 : -1;\n sx = Math.abs(sx);\n sy = Math.abs(sy);\n for (var x$1 = Math.max(ox, sx - ox); x$1 < sx + ox; x$1++) {\n for (var y$1 = Math.max(oy, sy - oy); y$1 < sy + oy; y$1++) {\n arr.push((sc + \" \" + (x$1 * pnx) + \"px \" + (y$1 * pny) + \"px \" + blur + \"px\"));\n }\n }\n arr.push((sc + \" \" + ((sx + ox) * pnx) + \"px \" + ((sy + oy) * pny) + \"px \" + blur + \"px\"));\n }\n return arr.join();\n}\n\nfunction createTransform(tag) {\n return [\n // TODO: I don't know why perspective is 314, it just performances well.\n 'perspective(314px)',\n (\"rotateY(\" + (tag.fry || 0) + \"deg)\"),\n (\"rotateX(\" + (tag.frx || 0) + \"deg)\"),\n (\"rotateZ(\" + (-tag.frz || 0) + \"deg)\"),\n (\"scale(\" + (tag.p ? 1 : (tag.fscx || 100) / 100) + \",\" + (tag.p ? 1 : (tag.fscy || 100) / 100) + \")\"),\n (\"skew(\" + (tag.fax || 0) + \"rad,\" + (tag.fay || 0) + \"rad)\") ].join(' ');\n}\n\nfunction setTransformOrigin(dialogue) {\n var alignment = dialogue.alignment;\n var width = dialogue.width;\n var height = dialogue.height;\n var x = dialogue.x;\n var y = dialogue.y;\n var $div = dialogue.$div;\n var org = dialogue.org;\n if (!org) {\n org = { x: 0, y: 0 };\n if (alignment % 3 === 1) { org.x = x; }\n if (alignment % 3 === 2) { org.x = x + width / 2; }\n if (alignment % 3 === 0) { org.x = x + width; }\n if (alignment <= 3) { org.y = y + height; }\n if (alignment >= 4 && alignment <= 6) { org.y = y + height / 2; }\n if (alignment >= 7) { org.y = y; }\n }\n for (var i = $div.childNodes.length - 1; i >= 0; i--) {\n var node = $div.childNodes[i];\n if (node.dataset.hasRotate === 'true') {\n // It's not extremely precise for offsets are round the value to an integer.\n var tox = org.x - x - node.offsetLeft;\n var toy = org.y - y - node.offsetTop;\n node.style.cssText += (vendor.transform) + \"transform-origin:\" + tox + \"px \" + toy + \"px;\";\n }\n }\n}\n\nfunction getKeyframeString(name, list) {\n return (\"@\" + (vendor.animation) + \"keyframes \" + name + \" {\" + list + \"}\\n\");\n}\n\nvar KeyframeBlockList = function KeyframeBlockList() {\n this.obj = {};\n};\n\nKeyframeBlockList.prototype.set = function set (keyText, prop, value) {\n if (!this.obj[keyText]) { this.obj[keyText] = {}; }\n this.obj[keyText][prop] = value;\n};\n\nKeyframeBlockList.prototype.setT = function setT (ref) {\n var t1 = ref.t1;\n var t2 = ref.t2;\n var duration = ref.duration;\n var prop = ref.prop;\n var from = ref.from;\n var to = ref.to;\n\n this.set('0.000%', prop, from);\n if (t1 < duration) {\n this.set((((t1 / duration * 100).toFixed(3)) + \"%\"), prop, from);\n }\n if (t2 < duration) {\n this.set((((t2 / duration * 100).toFixed(3)) + \"%\"), prop, to);\n }\n this.set('100.000%', prop, to);\n};\n\nKeyframeBlockList.prototype.toString = function toString () {\n var this$1 = this;\n\n return Object.keys(this.obj)\n .map(function (keyText) { return (\n (keyText + \"{\" + (Object.keys(this$1.obj[keyText])\n .map(function (prop) { return (\"\" + (vendor[prop] || '') + prop + \":\" + (this$1.obj[keyText][prop]) + \";\"); })\n .join('')) + \"}\")\n ); })\n .join('');\n};\n\n// TODO: multi \\t can't be merged directly\nfunction mergeT(ts) {\n return ts.reduceRight(function (results, t) {\n var merged = false;\n return results\n .map(function (r) {\n merged = t.t1 === r.t1 && t.t2 === r.t2 && t.accel === r.accel;\n return assign({}, r, merged ? { tag: assign({}, r.tag, t.tag) } : {});\n })\n .concat(merged ? [] : t);\n }, []);\n}\n\nfunction getKeyframes() {\n var this$1 = this;\n\n var keyframes = '';\n this.dialogues.forEach(function (dialogue) {\n var start = dialogue.start;\n var end = dialogue.end;\n var effect = dialogue.effect;\n var move = dialogue.move;\n var fade = dialogue.fade;\n var slices = dialogue.slices;\n var duration = (end - start) * 1000;\n var diaKbl = new KeyframeBlockList();\n // TODO: when effect and move both exist, its behavior is weird, for now only move works.\n if (effect && !move) {\n var name = effect.name;\n var delay = effect.delay;\n var lefttoright = effect.lefttoright;\n var y1 = effect.y1;\n var y2 = effect.y2 || this$1._.resampledRes.height;\n if (name === 'banner') {\n var tx = this$1.scale * (duration / delay) * (lefttoright ? 1 : -1);\n diaKbl.set('0.000%', 'transform', 'translateX(0)');\n diaKbl.set('100.000%', 'transform', (\"translateX(\" + tx + \"px)\"));\n }\n if (/^scroll/.test(name)) {\n var updown = /up/.test(name) ? -1 : 1;\n var tFrom = \"translateY(\" + (this$1.scale * y1 * updown) + \"px)\";\n var tTo = \"translateY(\" + (this$1.scale * y2 * updown) + \"px)\";\n var dp = (y2 - y1) / (duration / delay) * 100;\n diaKbl.set('0.000%', 'transform', tFrom);\n if (dp < 100) {\n diaKbl.set(((dp.toFixed(3)) + \"%\"), 'transform', tTo);\n }\n diaKbl.set('100.000%', 'transform', tTo);\n }\n }\n if (move) {\n var x1 = move.x1;\n var y1$1 = move.y1;\n var x2 = move.x2;\n var y2$1 = move.y2;\n var t1 = move.t1;\n var t2 = move.t2 || duration;\n var pos = dialogue.pos || { x: 0, y: 0 };\n var values = [{ x: x1, y: y1$1 }, { x: x2, y: y2$1 }].map(function (ref) {\n var x = ref.x;\n var y = ref.y;\n\n return (\n (\"translate(\" + (this$1.scale * (x - pos.x)) + \"px, \" + (this$1.scale * (y - pos.y)) + \"px)\")\n );\n });\n diaKbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'transform', from: values[0], to: values[1] });\n }\n if (fade) {\n if (fade.type === 'fad') {\n var t1$1 = fade.t1;\n var t2$1 = fade.t2;\n diaKbl.set('0.000%', 'opacity', 0);\n if (t1$1 < duration) {\n diaKbl.set((((t1$1 / duration * 100).toFixed(3)) + \"%\"), 'opacity', 1);\n if (t1$1 + t2$1 < duration) {\n diaKbl.set(((((duration - t2$1) / duration * 100).toFixed(3)) + \"%\"), 'opacity', 1);\n }\n diaKbl.set('100.000%', 'opacity', 0);\n } else {\n diaKbl.set('100.000%', 'opacity', duration / t1$1);\n }\n } else {\n var a1 = fade.a1;\n var a2 = fade.a2;\n var a3 = fade.a3;\n var t1$2 = fade.t1;\n var t2$2 = fade.t2;\n var t3 = fade.t3;\n var t4 = fade.t4;\n var keyTexts = [t1$2, t2$2, t3, t4].map(function (t) { return (((t / duration * 100).toFixed(3)) + \"%\"); });\n var values$1 = [a1, a2, a3].map(function (a) { return 1 - a / 255; });\n diaKbl.set('0.000%', 'opacity', values$1[0]);\n if (t1$2 < duration) { diaKbl.set(keyTexts[0], 'opacity', values$1[0]); }\n if (t2$2 < duration) { diaKbl.set(keyTexts[1], 'opacity', values$1[1]); }\n if (t3 < duration) { diaKbl.set(keyTexts[2], 'opacity', values$1[1]); }\n if (t4 < duration) { diaKbl.set(keyTexts[3], 'opacity', values$1[2]); }\n diaKbl.set('100.000%', 'opacity', values$1[2]);\n }\n }\n var diaList = diaKbl.toString();\n if (diaList) {\n assign(dialogue, { animationName: (\"ASS-\" + (uuid())) });\n keyframes += getKeyframeString(dialogue.animationName, diaList);\n }\n slices.forEach(function (slice) {\n slice.fragments.forEach(function (fragment) {\n if (!fragment.tag.t || !fragment.tag.t.length) {\n return;\n }\n var kbl = new KeyframeBlockList();\n var fromTag = assign({}, slice.tag, fragment.tag);\n // TODO: accel is not implemented yet\n mergeT(fragment.tag.t).forEach(function (ref) {\n var t1 = ref.t1;\n var t2 = ref.t2;\n var tag = ref.tag;\n\n if (tag.fs) {\n var from = (this$1.scale * getRealFontSize(fromTag.fn, fromTag.fs)) + \"px\";\n var to = (this$1.scale * getRealFontSize(tag.fn, fromTag.fs)) + \"px\";\n kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'font-size', from: from, to: to });\n }\n if (tag.fsp) {\n var from$1 = (this$1.scale * fromTag.fsp) + \"px\";\n var to$1 = (this$1.scale * tag.fsp) + \"px\";\n kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'letter-spacing', from: from$1, to: to$1 });\n }\n var hasAlpha = (\n tag.a1 !== undefined\n && tag.a1 === tag.a2\n && tag.a2 === tag.a3\n && tag.a3 === tag.a4\n );\n if (tag.c1 || (tag.a1 && !hasAlpha)) {\n var from$2 = color2rgba(fromTag.a1 + fromTag.c1);\n var to$2 = color2rgba((tag.a1 || fromTag.a1) + (tag.c1 || fromTag.c1));\n kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'color', from: from$2, to: to$2 });\n }\n if (hasAlpha) {\n var from$3 = 1 - parseInt(fromTag.a1, 16) / 255;\n var to$3 = 1 - parseInt(tag.a1, 16) / 255;\n kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'opacity', from: from$3, to: to$3 });\n }\n var hasStroke = strokeTags.some(function (x) { return (\n tag[x] !== undefined\n && tag[x] !== (fragment.tag[x] || slice.tag[x])\n ); });\n if (hasStroke) {\n var scale = /Yes/i.test(this$1.info.ScaledBorderAndShadow) ? this$1.scale : 1;\n var from$4 = createCSSStroke(fromTag, scale);\n var to$4 = createCSSStroke(assign({}, fromTag, tag), scale);\n kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'text-shadow', from: from$4, to: to$4 });\n }\n var hasTransfrom = transformTags.some(function (x) { return (\n tag[x] !== undefined\n && tag[x] !== (fragment.tag[x] || slice.tag[x])\n ); });\n if (hasTransfrom) {\n var toTag = assign({}, fromTag, tag);\n if (fragment.drawing) {\n // scales will be handled inside svg\n assign(toTag, {\n p: 0,\n fscx: ((tag.fscx || fromTag.fscx) / fromTag.fscx) * 100,\n fscy: ((tag.fscy || fromTag.fscy) / fromTag.fscy) * 100,\n });\n assign(fromTag, { fscx: 100, fscy: 100 });\n }\n var from$5 = createTransform(fromTag);\n var to$5 = createTransform(toTag);\n kbl.setT({ t1: t1, t2: t2, duration: duration, prop: 'transform', from: from$5, to: to$5 });\n }\n });\n var list = kbl.toString();\n assign(fragment, { animationName: (\"ASS-\" + (uuid())) });\n keyframes += getKeyframeString(fragment.animationName, list);\n });\n });\n });\n return keyframes;\n}\n\nfunction createAnimation(name, duration, delay) {\n var va = vendor.animation;\n return (\n va + \"animation-name:\" + name + \";\"\n + va + \"animation-duration:\" + duration + \"s;\"\n + va + \"animation-delay:\" + delay + \"s;\"\n + va + \"animation-timing-function:linear;\"\n + va + \"animation-iteration-count:1;\"\n + va + \"animation-fill-mode:forwards;\"\n );\n}\n\nfunction createDrawing(fragment, styleTag) {\n var tag = assign({}, styleTag, fragment.tag);\n var ref = fragment.drawing;\n var minX = ref.minX;\n var minY = ref.minY;\n var width = ref.width;\n var height = ref.height;\n var baseScale = this.scale / (1 << (tag.p - 1));\n var scaleX = (tag.fscx ? tag.fscx / 100 : 1) * baseScale;\n var scaleY = (tag.fscy ? tag.fscy / 100 : 1) * baseScale;\n var blur = tag.blur || tag.be || 0;\n var vbx = tag.xbord + (tag.xshad < 0 ? -tag.xshad : 0) + blur;\n var vby = tag.ybord + (tag.yshad < 0 ? -tag.yshad : 0) + blur;\n var vbw = width * scaleX + 2 * tag.xbord + Math.abs(tag.xshad) + 2 * blur;\n var vbh = height * scaleY + 2 * tag.ybord + Math.abs(tag.yshad) + 2 * blur;\n var $svg = createSVGEl('svg', [\n ['width', vbw],\n ['height', vbh],\n ['viewBox', ((-vbx) + \" \" + (-vby) + \" \" + vbw + \" \" + vbh)] ]);\n var strokeScale = /Yes/i.test(this.info.ScaledBorderAndShadow) ? this.scale : 1;\n var filterId = \"ASS-\" + (uuid());\n var $defs = createSVGEl('defs');\n $defs.appendChild(createSVGStroke(tag, filterId, strokeScale));\n $svg.appendChild($defs);\n var symbolId = \"ASS-\" + (uuid());\n var $symbol = createSVGEl('symbol', [\n ['id', symbolId],\n ['viewBox', (minX + \" \" + minY + \" \" + width + \" \" + height)] ]);\n $symbol.appendChild(createSVGEl('path', [['d', fragment.drawing.d]]));\n $svg.appendChild($symbol);\n $svg.appendChild(createSVGEl('use', [\n ['width', width * scaleX],\n ['height', height * scaleY],\n ['xlink:href', (\"#\" + symbolId)],\n ['filter', (\"url(#\" + filterId + \")\")] ]));\n $svg.style.cssText = (\n 'position:absolute;'\n + \"left:\" + (minX * scaleX - vbx) + \"px;\"\n + \"top:\" + (minY * scaleY - vby) + \"px;\"\n );\n return {\n $svg: $svg,\n cssText: (\"position:relative;width:\" + (width * scaleX) + \"px;height:\" + (height * scaleY) + \"px;\"),\n };\n}\n\nfunction encodeText(text, q) {\n return text\n .replace(//g, '>')\n .replace(/\\s/g, ' ')\n .replace(/\\\\h/g, ' ')\n .replace(/\\\\N/g, '
')\n .replace(/\\\\n/g, q === 2 ? '
' : ' ');\n}\n\nfunction createDialogue(dialogue) {\n var this$1 = this;\n\n var $div = document.createElement('div');\n $div.className = 'ASS-dialogue';\n var df = document.createDocumentFragment();\n var slices = dialogue.slices;\n var start = dialogue.start;\n var end = dialogue.end;\n slices.forEach(function (slice) {\n var borderStyle = slice.borderStyle;\n slice.fragments.forEach(function (fragment) {\n var text = fragment.text;\n var drawing = fragment.drawing;\n var animationName = fragment.animationName;\n var tag = assign({}, slice.tag, fragment.tag);\n var cssText = 'display:inline-block;';\n var vct = this$1.video.currentTime;\n if (!drawing) {\n cssText += \"font-family:\\\"\" + (tag.fn) + \"\\\",Arial;\";\n cssText += \"font-size:\" + (this$1.scale * getRealFontSize(tag.fn, tag.fs)) + \"px;\";\n cssText += \"color:\" + (color2rgba(tag.a1 + tag.c1)) + \";\";\n var scale = /Yes/i.test(this$1.info.ScaledBorderAndShadow) ? this$1.scale : 1;\n if (borderStyle === 1) {\n cssText += \"text-shadow:\" + (createCSSStroke(tag, scale)) + \";\";\n }\n if (borderStyle === 3) {\n cssText += (\n \"background-color:\" + (color2rgba(tag.a3 + tag.c3)) + \";\"\n + \"box-shadow:\" + (createCSSStroke(tag, scale)) + \";\"\n );\n }\n cssText += tag.b ? (\"font-weight:\" + (tag.b === 1 ? 'bold' : tag.b) + \";\") : '';\n cssText += tag.i ? 'font-style:italic;' : '';\n cssText += (tag.u || tag.s) ? (\"text-decoration:\" + (tag.u ? 'underline' : '') + \" \" + (tag.s ? 'line-through' : '') + \";\") : '';\n cssText += tag.fsp ? (\"letter-spacing:\" + (tag.fsp) + \"px;\") : '';\n // TODO: (tag.q === 0) and (tag.q === 3) are not implemented yet,\n // for now just handle it as (tag.q === 1)\n if (tag.q === 1 || tag.q === 0 || tag.q === 3) {\n cssText += 'word-break:break-all;white-space:normal;';\n }\n if (tag.q === 2) {\n cssText += 'word-break:normal;white-space:nowrap;';\n }\n }\n var hasTransfrom = transformTags.some(function (x) { return (\n /^fsc[xy]$/.test(x) ? tag[x] !== 100 : !!tag[x]\n ); });\n if (hasTransfrom) {\n cssText += (vendor.transform) + \"transform:\" + (createTransform(tag)) + \";\";\n if (!drawing) {\n cssText += 'transform-style:preserve-3d;word-break:normal;white-space:nowrap;';\n }\n }\n if (animationName) {\n cssText += createAnimation(animationName, end - start, Math.min(0, start - vct));\n }\n if (drawing && tag.pbo) {\n var pbo = this$1.scale * -tag.pbo * (tag.fscy || 100) / 100;\n cssText += \"vertical-align:\" + pbo + \"px;\";\n }\n\n var hasRotate = /\"fr[xyz]\":[^0]/.test(JSON.stringify(tag));\n encodeText(text, tag.q).split('
').forEach(function (html, idx) {\n var $span = document.createElement('span');\n $span.dataset.hasRotate = hasRotate;\n if (drawing) {\n var obj = createDrawing.call(this$1, fragment, slice.tag);\n $span.style.cssText = obj.cssText;\n $span.appendChild(obj.$svg);\n } else {\n if (idx) {\n df.appendChild(document.createElement('br'));\n }\n if (!html) {\n return;\n }\n $span.innerHTML = html;\n }\n // TODO: maybe it can be optimized\n $span.style.cssText += cssText;\n df.appendChild($span);\n });\n });\n });\n $div.appendChild(df);\n return $div;\n}\n\nfunction allocate(dialogue) {\n var layer = dialogue.layer;\n var margin = dialogue.margin;\n var width = dialogue.width;\n var height = dialogue.height;\n var alignment = dialogue.alignment;\n var end = dialogue.end;\n var stageWidth = this.width - (this.scale * (margin.left + margin.right) | 0);\n var stageHeight = this.height;\n var vertical = this.scale * margin.vertical | 0;\n var vct = this.video.currentTime * 100;\n this._.space[layer] = this._.space[layer] || {\n left: { width: new Uint16Array(stageHeight + 1), end: new Uint16Array(stageHeight + 1) },\n center: { width: new Uint16Array(stageHeight + 1), end: new Uint16Array(stageHeight + 1) },\n right: { width: new Uint16Array(stageHeight + 1), end: new Uint16Array(stageHeight + 1) },\n };\n var channel = this._.space[layer];\n var align = ['right', 'left', 'center'][alignment % 3];\n var willCollide = function (y) {\n var lw = channel.left.width[y];\n var cw = channel.center.width[y];\n var rw = channel.right.width[y];\n var le = channel.left.end[y];\n var ce = channel.center.end[y];\n var re = channel.right.end[y];\n return (\n (align === 'left' && (\n (le > vct && lw)\n || (ce > vct && cw && 2 * width + cw > stageWidth)\n || (re > vct && rw && width + rw > stageWidth)\n ))\n || (align === 'center' && (\n (le > vct && lw && 2 * lw + width > stageWidth)\n || (ce > vct && cw)\n || (re > vct && rw && 2 * rw + width > stageWidth)\n ))\n || (align === 'right' && (\n (le > vct && lw && lw + width > stageWidth)\n || (ce > vct && cw && 2 * width + cw > stageWidth)\n || (re > vct && rw)\n ))\n );\n };\n var count = 0;\n var result = 0;\n var find = function (y) {\n count = willCollide(y) ? 0 : count + 1;\n if (count >= height) {\n result = y;\n return true;\n }\n return false;\n };\n if (alignment <= 3) {\n for (var i = stageHeight - vertical - 1; i > vertical; i--) {\n if (find(i)) { break; }\n }\n } else if (alignment >= 7) {\n for (var i$1 = vertical + 1; i$1 < stageHeight - vertical; i$1++) {\n if (find(i$1)) { break; }\n }\n } else {\n for (var i$2 = (stageHeight - height) >> 1; i$2 < stageHeight - vertical; i$2++) {\n if (find(i$2)) { break; }\n }\n }\n if (alignment > 3) {\n result -= height - 1;\n }\n for (var i$3 = result; i$3 < result + height; i$3++) {\n channel[align].width[i$3] = width;\n channel[align].end[i$3] = end * 100;\n }\n return result;\n}\n\nfunction getPosition(dialogue) {\n var effect = dialogue.effect;\n var move = dialogue.move;\n var alignment = dialogue.alignment;\n var width = dialogue.width;\n var height = dialogue.height;\n var margin = dialogue.margin;\n var slices = dialogue.slices;\n var x = 0;\n var y = 0;\n if (effect) {\n if (effect.name === 'banner') {\n if (alignment <= 3) { y = this.height - height - margin.vertical; }\n if (alignment >= 4 && alignment <= 6) { y = (this.height - height) / 2; }\n if (alignment >= 7) { y = margin.vertical; }\n x = effect.lefttoright ? -width : this.width;\n }\n } else if (dialogue.pos || move) {\n var pos = dialogue.pos || { x: 0, y: 0 };\n if (alignment % 3 === 1) { x = this.scale * pos.x; }\n if (alignment % 3 === 2) { x = this.scale * pos.x - width / 2; }\n if (alignment % 3 === 0) { x = this.scale * pos.x - width; }\n if (alignment <= 3) { y = this.scale * pos.y - height; }\n if (alignment >= 4 && alignment <= 6) { y = this.scale * pos.y - height / 2; }\n if (alignment >= 7) { y = this.scale * pos.y; }\n } else {\n if (alignment % 3 === 1) { x = 0; }\n if (alignment % 3 === 2) { x = (this.width - width) / 2; }\n if (alignment % 3 === 0) { x = this.width - width - this.scale * margin.right; }\n var hasT = slices.some(function (slice) { return (\n slice.fragments.some(function (ref) {\n var animationName = ref.animationName;\n\n return animationName;\n })\n ); });\n if (hasT) {\n if (alignment <= 3) { y = this.height - height - margin.vertical; }\n if (alignment >= 4 && alignment <= 6) { y = (this.height - height) / 2; }\n if (alignment >= 7) { y = margin.vertical; }\n } else {\n y = allocate.call(this, dialogue);\n }\n }\n return { x: x, y: y };\n}\n\nfunction createStyle(dialogue) {\n var layer = dialogue.layer;\n var start = dialogue.start;\n var end = dialogue.end;\n var alignment = dialogue.alignment;\n var effect = dialogue.effect;\n var pos = dialogue.pos;\n var margin = dialogue.margin;\n var animationName = dialogue.animationName;\n var width = dialogue.width;\n var height = dialogue.height;\n var x = dialogue.x;\n var y = dialogue.y;\n var vct = this.video.currentTime;\n var cssText = '';\n if (layer) { cssText += \"z-index:\" + layer + \";\"; }\n if (animationName) {\n cssText += createAnimation(animationName, end - start, Math.min(0, start - vct));\n }\n cssText += \"text-align:\" + (['right', 'left', 'center'][alignment % 3]) + \";\";\n if (!effect) {\n var mw = this.width - this.scale * (margin.left + margin.right);\n cssText += \"max-width:\" + mw + \"px;\";\n if (!pos) {\n if (alignment % 3 === 1) {\n cssText += \"margin-left:\" + (this.scale * margin.left) + \"px;\";\n }\n if (alignment % 3 === 0) {\n cssText += \"margin-right:\" + (this.scale * margin.right) + \"px;\";\n }\n if (width > this.width - this.scale * (margin.left + margin.right)) {\n cssText += \"margin-left:\" + (this.scale * margin.left) + \"px;\";\n cssText += \"margin-right:\" + (this.scale * margin.right) + \"px;\";\n }\n }\n }\n cssText += \"width:\" + width + \"px;height:\" + height + \"px;left:\" + x + \"px;top:\" + y + \"px;\";\n return cssText;\n}\n\nfunction renderer(dialogue) {\n var $div = createDialogue.call(this, dialogue);\n assign(dialogue, { $div: $div });\n this._.$stage.appendChild($div);\n var ref = $div.getBoundingClientRect();\n var width = ref.width;\n var height = ref.height;\n assign(dialogue, { width: width, height: height });\n assign(dialogue, getPosition.call(this, dialogue));\n $div.style.cssText = createStyle.call(this, dialogue);\n setTransformOrigin(dialogue);\n setClipPath.call(this, dialogue);\n return dialogue;\n}\n\nfunction framing() {\n var vct = this.video.currentTime;\n for (var i = this._.stagings.length - 1; i >= 0; i--) {\n var dia = this._.stagings[i];\n var end = dia.end;\n if (dia.effect && /scroll/.test(dia.effect.name)) {\n var ref = dia.effect;\n var y1 = ref.y1;\n var y2 = ref.y2;\n var delay = ref.delay;\n var duration = ((y2 || this._.resampledRes.height) - y1) / (1000 / delay);\n end = Math.min(end, dia.start + duration);\n }\n if (end < vct) {\n this._.$stage.removeChild(dia.$div);\n if (dia.$clipPath) {\n this._.$defs.removeChild(dia.$clipPath);\n }\n this._.stagings.splice(i, 1);\n }\n }\n var dias = this.dialogues;\n while (\n this._.index < dias.length\n && vct >= dias[this._.index].start\n ) {\n if (vct < dias[this._.index].end) {\n var dia$1 = renderer.call(this, dias[this._.index]);\n this._.stagings.push(dia$1);\n }\n ++this._.index;\n }\n}\n\nfunction play() {\n var this$1 = this;\n\n var frame = function () {\n framing.call(this$1);\n this$1._.requestId = raf(frame);\n };\n caf(this._.requestId);\n this._.requestId = raf(frame);\n this._.$stage.classList.remove('ASS-animation-paused');\n return this;\n}\n\nfunction pause() {\n caf(this._.requestId);\n this._.requestId = 0;\n this._.$stage.classList.add('ASS-animation-paused');\n return this;\n}\n\nfunction clear() {\n while (this._.$stage.lastChild) {\n this._.$stage.removeChild(this._.$stage.lastChild);\n }\n while (this._.$defs.lastChild) {\n this._.$defs.removeChild(this._.$defs.lastChild);\n }\n this._.stagings = [];\n this._.space = [];\n}\n\nfunction seek() {\n var vct = this.video.currentTime;\n var dias = this.dialogues;\n clear.call(this);\n this._.index = (function () {\n var from = 0;\n var to = dias.length - 1;\n while (from + 1 < to && vct > dias[(to + from) >> 1].end) {\n from = (to + from) >> 1;\n }\n if (!from) { return 0; }\n for (var i = from; i < to; i++) {\n if (\n dias[i].end > vct && vct >= dias[i].start\n || (i && dias[i - 1].end < vct && vct < dias[i].start)\n ) {\n return i;\n }\n }\n return to;\n })();\n framing.call(this);\n}\n\nfunction bindEvents() {\n var l = this._.listener;\n l.play = play.bind(this);\n l.pause = pause.bind(this);\n l.seeking = seek.bind(this);\n this.video.addEventListener('play', l.play);\n this.video.addEventListener('pause', l.pause);\n this.video.addEventListener('seeking', l.seeking);\n}\n\nfunction unbindEvents() {\n var l = this._.listener;\n this.video.removeEventListener('play', l.play);\n this.video.removeEventListener('pause', l.pause);\n this.video.removeEventListener('seeking', l.seeking);\n l.play = null;\n l.pause = null;\n l.seeking = null;\n}\n\nfunction resize() {\n var cw = this.video.clientWidth;\n var ch = this.video.clientHeight;\n var vw = this.video.videoWidth || cw;\n var vh = this.video.videoHeight || ch;\n var sw = this._.scriptRes.width;\n var sh = this._.scriptRes.height;\n var rw = sw;\n var rh = sh;\n var videoScale = Math.min(cw / vw, ch / vh);\n if (this.resampling === 'video_width') {\n rh = sw / vw * vh;\n }\n if (this.resampling === 'video_height') {\n rw = sh / vh * vw;\n }\n this.scale = Math.min(cw / rw, ch / rh);\n if (this.resampling === 'script_width') {\n this.scale = videoScale * (vw / rw);\n }\n if (this.resampling === 'script_height') {\n this.scale = videoScale * (vh / rh);\n }\n this.width = this.scale * rw;\n this.height = this.scale * rh;\n this._.resampledRes = { width: rw, height: rh };\n\n this.container.style.cssText = \"width:\" + cw + \"px;height:\" + ch + \"px;\";\n var cssText = (\n \"width:\" + (this.width) + \"px;\"\n + \"height:\" + (this.height) + \"px;\"\n + \"top:\" + ((ch - this.height) / 2) + \"px;\"\n + \"left:\" + ((cw - this.width) / 2) + \"px;\"\n );\n this._.$stage.style.cssText = cssText;\n this._.$svg.style.cssText = cssText;\n this._.$svg.setAttributeNS(null, 'viewBox', (\"0 0 \" + sw + \" \" + sh));\n\n this._.$animation.innerHTML = getKeyframes.call(this);\n seek.call(this);\n\n return this;\n}\n\nvar GLOBAL_CSS = '.ASS-container,.ASS-stage{position:relative;overflow:hidden}.ASS-container video{position:absolute;top:0;left:0}.ASS-stage{pointer-events:none;position:absolute}.ASS-dialogue{font-size:0;position:absolute}.ASS-fix-font-size{position:absolute;visibility:hidden}.ASS-fix-objectBoundingBox{width:100%;height:100%;position:absolute;top:0;left:0}.ASS-animation-paused *{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}';\n\nfunction init(source, video, options) {\n if ( options === void 0 ) options = {};\n\n this.scale = 1;\n\n // private variables\n this._ = {\n index: 0,\n stagings: [],\n space: [],\n listener: {},\n $svg: createSVGEl('svg'),\n $defs: createSVGEl('defs'),\n $stage: document.createElement('div'),\n $animation: document.createElement('style'),\n };\n this._.$svg.appendChild(this._.$defs);\n this._.$stage.className = 'ASS-stage ASS-animation-paused';\n\n this._.resampling = options.resampling || 'video_height';\n\n this.container = options.container || document.createElement('div');\n this.container.classList.add('ASS-container');\n this.container.appendChild($fixFontSize);\n this.container.appendChild(this._.$svg);\n this._.hasInitContainer = !!options.container;\n\n this.video = video;\n bindEvents.call(this);\n if (!this._.hasInitContainer) {\n var isPlaying = !video.paused;\n video.parentNode.insertBefore(this.container, video);\n this.container.appendChild(video);\n if (isPlaying && video.paused) {\n video.play();\n }\n }\n this.container.appendChild(this._.$stage);\n\n var ref = compile(source);\n var info = ref.info;\n var width = ref.width;\n var height = ref.height;\n var dialogues = ref.dialogues;\n this.info = info;\n this._.scriptRes = {\n width: width || video.videoWidth,\n height: height || video.videoHeight,\n };\n this.dialogues = dialogues;\n\n var styleRoot = getStyleRoot(this.container);\n var $style = styleRoot.querySelector('#ASS-global-style');\n if (!$style) {\n $style = document.createElement('style');\n $style.type = 'text/css';\n $style.id = 'ASS-global-style';\n $style.appendChild(document.createTextNode(GLOBAL_CSS));\n styleRoot.appendChild($style);\n }\n this._.$animation.type = 'text/css';\n this._.$animation.className = 'ASS-animation';\n styleRoot.appendChild(this._.$animation);\n\n resize.call(this);\n\n if (!this.video.paused) {\n seek.call(this);\n play.call(this);\n }\n\n return this;\n}\n\nfunction show() {\n this._.$stage.style.visibility = 'visible';\n return this;\n}\n\nfunction hide() {\n this._.$stage.style.visibility = 'hidden';\n return this;\n}\n\nfunction destroy() {\n pause.call(this);\n clear.call(this);\n unbindEvents.call(this, this._.listener);\n\n var styleRoot = getStyleRoot(this.container);\n if (!this._.hasInitContainer) {\n var isPlay = !this.video.paused;\n this.container.parentNode.insertBefore(this.video, this.container);\n this.container.parentNode.removeChild(this.container);\n if (isPlay && this.video.paused) {\n this.video.play();\n }\n }\n styleRoot.removeChild(this._.$animation);\n\n // eslint-disable-next-line no-restricted-syntax\n for (var key in this) {\n if (Object.prototype.hasOwnProperty.call(this, key)) {\n this[key] = null;\n }\n }\n\n return this;\n}\n\nvar regex = /^(video|script)_(width|height)$/;\n\nfunction getter() {\n return regex.test(this._.resampling) ? this._.resampling : 'video_height';\n}\n\nfunction setter(r) {\n if (r === this._.resampling) { return r; }\n if (regex.test(r)) {\n this._.resampling = r;\n this.resize();\n }\n return this._.resampling;\n}\n\nvar ASS = function ASS(source, video, options) {\n if (typeof source !== 'string') {\n return this;\n }\n return init.call(this, source, video, options);\n};\n\nvar prototypeAccessors = { resampling: { configurable: true } };\n\nASS.prototype.resize = function resize$1 () {\n return resize.call(this);\n};\n\nASS.prototype.show = function show$1 () {\n return show.call(this);\n};\n\nASS.prototype.hide = function hide$1 () {\n return hide.call(this);\n};\n\nASS.prototype.destroy = function destroy$1 () {\n return destroy.call(this);\n};\n\nprototypeAccessors.resampling.get = function () {\n return getter.call(this);\n};\n\nprototypeAccessors.resampling.set = function (r) {\n return setter.call(this, r);\n};\n\nObject.defineProperties( ASS.prototype, prototypeAccessors );\n\nexport default ASS;\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import ASS from 'assjs';\nimport './style.scss';\n\nfunction artplayerPluginAss(url) {\n return (art) => {\n let ass = null;\n fetch(url)\n .then((res) => res.text())\n .then((text) => {\n const { $video, $subtitle } = art.template;\n $subtitle.classList.add('artplayer-plugin-ass');\n\n art.once('ready', () => {\n ass = new ASS(text, $video, {\n container: $subtitle,\n resampling: 'video_width',\n });\n\n ass.resize();\n art.emit('artplayerPluginAss', ass);\n art.on('resize', () => ass.resize());\n art.on('destroy', () => ass.destroy());\n });\n });\n return {\n name: 'artplayerPluginAss',\n ass,\n };\n };\n}\n\nexport default artplayerPluginAss;\n"],"names":["artplayerPluginAss","url","art","ass","fetch","then","res","text","template","$video","$subtitle","classList","add","once","ASS","container","resampling","resize","emit","on","destroy","name"],"mappings":"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"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-plugin-gif.js b/docs/uncompiled/artplayer-plugin-gif.js deleted file mode 100644 index 83a08e962..000000000 --- a/docs/uncompiled/artplayer-plugin-gif.js +++ /dev/null @@ -1,3037 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.artplayerPluginGif = factory()); -}(this, (function () { 'use strict'; - - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - - var defineProperty = _defineProperty; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var gifshot = createCommonjsModule(function (module, exports) { - (function(window, document, navigator, undefined$1) { - - /* - utils.js - ======== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - var utils = { - URL: window.URL || window.webkitURL || window.mozURL || window.msURL, - getUserMedia: function () { - var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; - - return getUserMedia ? getUserMedia.bind(navigator) : getUserMedia; - }(), - requestAnimFrame: window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame, - requestTimeout: function requestTimeout(callback, delay) { - callback = callback || utils.noop; - delay = delay || 0; - - if (!utils.requestAnimFrame) { - return setTimeout(callback, delay); - } - - var start = new Date().getTime(); - var handle = new Object(); - var requestAnimFrame = utils.requestAnimFrame; - - var loop = function loop() { - var current = new Date().getTime(); - var delta = current - start; - - delta >= delay ? callback.call() : handle.value = requestAnimFrame(loop); - }; - - handle.value = requestAnimFrame(loop); - - return handle; - }, - Blob: window.Blob || window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder, - btoa: function () { - var btoa = window.btoa || function (input) { - var output = ''; - var i = 0; - var l = input.length; - var key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - var chr1 = void 0; - var chr2 = void 0; - var chr3 = void 0; - var enc1 = void 0; - var enc2 = void 0; - var enc3 = void 0; - var enc4 = void 0; - - while (i < l) { - chr1 = input.charCodeAt(i++); - chr2 = input.charCodeAt(i++); - chr3 = input.charCodeAt(i++); - enc1 = chr1 >> 2; - enc2 = (chr1 & 3) << 4 | chr2 >> 4; - enc3 = (chr2 & 15) << 2 | chr3 >> 6; - enc4 = chr3 & 63; - - if (isNaN(chr2)) { - enc3 = enc4 = 64; - } else if (isNaN(chr3)) { - enc4 = 64; - } - - output = output + key.charAt(enc1) + key.charAt(enc2) + key.charAt(enc3) + key.charAt(enc4); - } - - return output; - }; - - return btoa ? btoa.bind(window) : utils.noop; - }(), - isObject: function isObject(obj) { - return obj && Object.prototype.toString.call(obj) === '[object Object]'; - }, - isEmptyObject: function isEmptyObject(obj) { - return utils.isObject(obj) && !Object.keys(obj).length; - }, - isArray: function isArray(arr) { - return arr && Array.isArray(arr); - }, - isFunction: function isFunction(func) { - return func && typeof func === 'function'; - }, - isElement: function isElement(elem) { - return elem && elem.nodeType === 1; - }, - isString: function isString(value) { - return typeof value === 'string' || Object.prototype.toString.call(value) === '[object String]'; - }, - isSupported: { - canvas: function canvas() { - var el = document.createElement('canvas'); - - return el && el.getContext && el.getContext('2d'); - }, - webworkers: function webworkers() { - return window.Worker; - }, - blob: function blob() { - return utils.Blob; - }, - Uint8Array: function Uint8Array() { - return window.Uint8Array; - }, - Uint32Array: function Uint32Array() { - return window.Uint32Array; - }, - videoCodecs: function () { - var testEl = document.createElement('video'); - var supportObj = { - 'mp4': false, - 'h264': false, - 'ogv': false, - 'ogg': false, - 'webm': false - }; - - try { - if (testEl && testEl.canPlayType) { - // Check for MPEG-4 support - supportObj.mp4 = testEl.canPlayType('video/mp4; codecs="mp4v.20.8"') !== ''; - - // Check for h264 support - supportObj.h264 = (testEl.canPlayType('video/mp4; codecs="avc1.42E01E"') || testEl.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')) !== ''; - - // Check for Ogv support - supportObj.ogv = testEl.canPlayType('video/ogg; codecs="theora"') !== ''; - - // Check for Ogg support - supportObj.ogg = testEl.canPlayType('video/ogg; codecs="theora"') !== ''; - - // Check for Webm support - supportObj.webm = testEl.canPlayType('video/webm; codecs="vp8, vorbis"') !== -1; - } - } catch (e) {} - - return supportObj; - }() - }, - noop: function noop() {}, - each: function each(collection, callback) { - var x = void 0; - var len = void 0; - - if (utils.isArray(collection)) { - x = -1; - len = collection.length; - - while (++x < len) { - if (callback(x, collection[x]) === false) { - break; - } - } - } else if (utils.isObject(collection)) { - for (x in collection) { - if (collection.hasOwnProperty(x)) { - if (callback(x, collection[x]) === false) { - break; - } - } - } - } - }, - mergeOptions: function mergeOptions(defaultOptions, userOptions) { - if (!utils.isObject(defaultOptions) || !utils.isObject(userOptions) || !Object.keys) { - return; - } - - var newObj = {}; - - utils.each(defaultOptions, function (key, val) { - newObj[key] = defaultOptions[key]; - }); - - utils.each(userOptions, function (key, val) { - var currentUserOption = userOptions[key]; - - if (!utils.isObject(currentUserOption)) { - newObj[key] = currentUserOption; - } else { - if (!defaultOptions[key]) { - newObj[key] = currentUserOption; - } else { - newObj[key] = utils.mergeOptions(defaultOptions[key], currentUserOption); - } - } - }); - - return newObj; - }, - setCSSAttr: function setCSSAttr(elem, attr, val) { - if (!utils.isElement(elem)) { - return; - } - - if (utils.isString(attr) && utils.isString(val)) { - elem.style[attr] = val; - } else if (utils.isObject(attr)) { - utils.each(attr, function (key, val) { - elem.style[key] = val; - }); - } - }, - removeElement: function removeElement(node) { - if (!utils.isElement(node)) { - return; - } - if (node.parentNode) { - node.parentNode.removeChild(node); - } - }, - createWebWorker: function createWebWorker(content) { - if (!utils.isString(content)) { - return {}; - } - - try { - var blob = new utils.Blob([content], { - 'type': 'text/javascript' - }); - var objectUrl = utils.URL.createObjectURL(blob); - var worker = new Worker(objectUrl); - - return { - 'objectUrl': objectUrl, - 'worker': worker - }; - } catch (e) { - return '' + e; - } - }, - getExtension: function getExtension(src) { - return src.substr(src.lastIndexOf('.') + 1, src.length); - }, - getFontSize: function getFontSize() { - var options = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - - if (!document.body || options.resizeFont === false) { - return options.fontSize; - } - - var text = options.text; - var containerWidth = options.gifWidth; - var fontSize = parseInt(options.fontSize, 10); - var minFontSize = parseInt(options.minFontSize, 10); - var div = document.createElement('div'); - var span = document.createElement('span'); - - div.setAttribute('width', containerWidth); - div.appendChild(span); - - span.innerHTML = text; - span.style.fontSize = fontSize + 'px'; - span.style.textIndent = '-9999px'; - span.style.visibility = 'hidden'; - - document.body.appendChild(span); - - while (span.offsetWidth > containerWidth && fontSize >= minFontSize) { - span.style.fontSize = --fontSize + 'px'; - } - - document.body.removeChild(span); - - return fontSize + 'px'; - }, - webWorkerError: false - }; - - - - var utils$2 = Object.freeze({ - default: utils - }); - - /* - error.js - ======== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - var error = { - validate: function validate(skipObj) { - skipObj = utils.isObject(skipObj) ? skipObj : {}; - - var errorObj = {}; - - utils.each(error.validators, function (indece, currentValidator) { - var errorCode = currentValidator.errorCode; - - if (!skipObj[errorCode] && !currentValidator.condition) { - errorObj = currentValidator; - errorObj.error = true; - - return false; - } - }); - - delete errorObj.condition; - - return errorObj; - }, - isValid: function isValid(skipObj) { - var errorObj = error.validate(skipObj); - var isValid = errorObj.error !== true ? true : false; - - return isValid; - }, - validators: [{ - condition: utils.isFunction(utils.getUserMedia), - errorCode: 'getUserMedia', - errorMsg: 'The getUserMedia API is not supported in your browser' - }, { - condition: utils.isSupported.canvas(), - errorCode: 'canvas', - errorMsg: 'Canvas elements are not supported in your browser' - }, { - condition: utils.isSupported.webworkers(), - errorCode: 'webworkers', - errorMsg: 'The Web Workers API is not supported in your browser' - }, { - condition: utils.isFunction(utils.URL), - errorCode: 'window.URL', - errorMsg: 'The window.URL API is not supported in your browser' - }, { - condition: utils.isSupported.blob(), - errorCode: 'window.Blob', - errorMsg: 'The window.Blob File API is not supported in your browser' - }, { - condition: utils.isSupported.Uint8Array(), - errorCode: 'window.Uint8Array', - errorMsg: 'The window.Uint8Array function constructor is not supported in your browser' - }, { - condition: utils.isSupported.Uint32Array(), - errorCode: 'window.Uint32Array', - errorMsg: 'The window.Uint32Array function constructor is not supported in your browser' - }], - messages: { - videoCodecs: { - errorCode: 'videocodec', - errorMsg: 'The video codec you are trying to use is not supported in your browser' - } - } - }; - - - - var error$2 = Object.freeze({ - default: error - }); - - /* - defaultOptions.js - ================= - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Helpers - var noop = function noop() {}; - - var defaultOptions = { - sampleInterval: 10, - numWorkers: 2, - filter: '', - gifWidth: 200, - gifHeight: 200, - interval: 0.1, - numFrames: 10, - frameDuration: 1, - keepCameraOn: false, - images: [], - video: null, - webcamVideoElement: null, - cameraStream: null, - text: '', - fontWeight: 'normal', - fontSize: '16px', - minFontSize: '10px', - resizeFont: false, - fontFamily: 'sans-serif', - fontColor: '#ffffff', - textAlign: 'center', - textBaseline: 'bottom', - textXCoordinate: null, - textYCoordinate: null, - progressCallback: noop, - completeCallback: noop, - saveRenderingContexts: false, - savedRenderingContexts: [], - crossOrigin: 'Anonymous' - }; - - - - var defaultOptions$2 = Object.freeze({ - default: defaultOptions - }); - - /* - isSupported.js - ============== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - function isSupported() { - return error.isValid(); - } - - /* - isWebCamGIFSupported.js - ======================= - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - function isWebCamGIFSupported() { - return error.isValid(); - } - - /* - isSupported.js - ============== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - function isSupported$1() { - var options = { - getUserMedia: true - }; - - return error.isValid(options); - } - - /* - isExistingVideoGIFSupported.js - ============================== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - function isExistingVideoGIFSupported(codecs) { - var hasValidCodec = false; - - if (utils.isArray(codecs) && codecs.length) { - utils.each(codecs, function (indece, currentCodec) { - if (utils.isSupported.videoCodecs[currentCodec]) { - hasValidCodec = true; - } - }); - - if (!hasValidCodec) { - return false; - } - } else if (utils.isString(codecs) && codecs.length) { - if (!utils.isSupported.videoCodecs[codecs]) { - return false; - } - } - - return error.isValid({ - 'getUserMedia': true - }); - } - - /* - NeuQuant.js - =========== - */ - - /* - * NeuQuant Neural-Net Quantization Algorithm - * ------------------------------------------ - * - * Copyright (c) 1994 Anthony Dekker - * - * NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994. See - * "Kohonen neural networks for optimal colour quantization" in "Network: - * Computation in Neural Systems" Vol. 5 (1994) pp 351-367. for a discussion of - * the algorithm. - * - * Any party obtaining a copy of these files from the author, directly or - * indirectly, is granted, free of charge, a full and unrestricted irrevocable, - * world-wide, paid up, royalty-free, nonexclusive right and license to deal in - * this software and documentation files (the "Software"), including without - * limitation the rights to use, copy, modify, merge, publish, distribute, - * sublicense, and/or sell copies of the Software, and to permit persons who - * receive copies from any such party to do so, with the only requirement being - * that this copyright notice remain intact. - */ - - /* - * This class handles Neural-Net quantization algorithm - * @author Kevin Weiner (original Java version - kweiner@fmsware.com) - * @author Thibault Imbert (AS3 version - bytearray.org) - * @version 0.1 AS3 implementation - * @version 0.2 JS->AS3 "translation" by antimatter15 - * @version 0.3 JS clean up + using modern JS idioms by sole - http://soledadpenades.com - * Also implement fix in color conversion described at http://stackoverflow.com/questions/16371712/neuquant-js-javascript-color-quantization-hidden-bug-in-js-conversion - */ - - function NeuQuant() { - var netsize = 256; // number of colours used - - // four primes near 500 - assume no image has a length so large - // that it is divisible by all four primes - var prime1 = 499; - var prime2 = 491; - var prime3 = 487; - var prime4 = 503; - - // minimum size for input image - var minpicturebytes = 3 * prime4; - - // Network Definitions - - var maxnetpos = netsize - 1; - var netbiasshift = 4; // bias for colour values - var ncycles = 100; // no. of learning cycles - - // defs for freq and bias - var intbiasshift = 16; // bias for fractions - var intbias = 1 << intbiasshift; - var gammashift = 10; // gamma = 1024 - var betashift = 10; - var beta = intbias >> betashift; // beta = 1/1024 - var betagamma = intbias << gammashift - betashift; - - // defs for decreasing radius factor - // For 256 colors, radius starts at 32.0 biased by 6 bits - // and decreases by a factor of 1/30 each cycle - var initrad = netsize >> 3; - var radiusbiasshift = 6; - var radiusbias = 1 << radiusbiasshift; - var initradius = initrad * radiusbias; - var radiusdec = 30; - - // defs for decreasing alpha factor - // Alpha starts at 1.0 biased by 10 bits - var alphabiasshift = 10; - var initalpha = 1 << alphabiasshift; - var alphadec; - - // radbias and alpharadbias used for radpower calculation - var radbiasshift = 8; - var radbias = 1 << radbiasshift; - var alpharadbshift = alphabiasshift + radbiasshift; - var alpharadbias = 1 << alpharadbshift; - - // Input image - var thepicture; - // Height * Width * 3 - var lengthcount; - // Sampling factor 1..30 - var samplefac; - - // The network itself - var network; - var netindex = []; - - // for network lookup - really 256 - var bias = []; - - // bias and freq arrays for learning - var freq = []; - var radpower = []; - - function NeuQuantConstructor(thepic, len, sample) { - - var i; - var p; - - thepicture = thepic; - lengthcount = len; - samplefac = sample; - - network = new Array(netsize); - - for (i = 0; i < netsize; i++) { - network[i] = new Array(4); - p = network[i]; - p[0] = p[1] = p[2] = (i << netbiasshift + 8) / netsize | 0; - freq[i] = intbias / netsize | 0; // 1 / netsize - bias[i] = 0; - } - } - - function colorMap() { - var map = []; - var index = new Array(netsize); - for (var i = 0; i < netsize; i++) { - index[network[i][3]] = i; - }var k = 0; - for (var l = 0; l < netsize; l++) { - var j = index[l]; - map[k++] = network[j][0]; - map[k++] = network[j][1]; - map[k++] = network[j][2]; - } - return map; - } - - // Insertion sort of network and building of netindex[0..255] - // (to do after unbias) - function inxbuild() { - var i; - var j; - var smallpos; - var smallval; - var p; - var q; - var previouscol; - var startpos; - - previouscol = 0; - startpos = 0; - - for (i = 0; i < netsize; i++) { - - p = network[i]; - smallpos = i; - smallval = p[1]; // index on g - // find smallest in i..netsize-1 - for (j = i + 1; j < netsize; j++) { - - q = network[j]; - - if (q[1] < smallval) { - // index on g - smallpos = j; - smallval = q[1]; // index on g - } - } - - q = network[smallpos]; - - // swap p (i) and q (smallpos) entries - if (i != smallpos) { - j = q[0]; - q[0] = p[0]; - p[0] = j; - j = q[1]; - q[1] = p[1]; - p[1] = j; - j = q[2]; - q[2] = p[2]; - p[2] = j; - j = q[3]; - q[3] = p[3]; - p[3] = j; - } - - // smallval entry is now in position i - if (smallval != previouscol) { - - netindex[previouscol] = startpos + i >> 1; - - for (j = previouscol + 1; j < smallval; j++) { - netindex[j] = i; - } - - previouscol = smallval; - startpos = i; - } - } - - netindex[previouscol] = startpos + maxnetpos >> 1; - for (j = previouscol + 1; j < 256; j++) { - netindex[j] = maxnetpos; // really 256 - } - } - - // Main Learning Loop - - function learn() { - var i; - var j; - var b; - var g; - var r; - var radius; - var rad; - var alpha; - var step; - var delta; - var samplepixels; - var p; - var pix; - var lim; - - if (lengthcount < minpicturebytes) { - samplefac = 1; - } - - alphadec = 30 + (samplefac - 1) / 3; - p = thepicture; - pix = 0; - lim = lengthcount; - samplepixels = lengthcount / (3 * samplefac); - delta = samplepixels / ncycles | 0; - alpha = initalpha; - radius = initradius; - - rad = radius >> radiusbiasshift; - if (rad <= 1) { - rad = 0; - } - - for (i = 0; i < rad; i++) { - radpower[i] = alpha * ((rad * rad - i * i) * radbias / (rad * rad)); - } - - if (lengthcount < minpicturebytes) { - step = 3; - } else if (lengthcount % prime1 !== 0) { - step = 3 * prime1; - } else { - - if (lengthcount % prime2 !== 0) { - step = 3 * prime2; - } else { - if (lengthcount % prime3 !== 0) { - step = 3 * prime3; - } else { - step = 3 * prime4; - } - } - } - - i = 0; - - while (i < samplepixels) { - - b = (p[pix + 0] & 0xff) << netbiasshift; - g = (p[pix + 1] & 0xff) << netbiasshift; - r = (p[pix + 2] & 0xff) << netbiasshift; - j = contest(b, g, r); - - altersingle(alpha, j, b, g, r); - - if (rad !== 0) { - // Alter neighbours - alterneigh(rad, j, b, g, r); - } - - pix += step; - - if (pix >= lim) { - pix -= lengthcount; - } - - i++; - - if (delta === 0) { - delta = 1; - } - - if (i % delta === 0) { - alpha -= alpha / alphadec; - radius -= radius / radiusdec; - rad = radius >> radiusbiasshift; - - if (rad <= 1) { - rad = 0; - } - - for (j = 0; j < rad; j++) { - radpower[j] = alpha * ((rad * rad - j * j) * radbias / (rad * rad)); - } - } - } - } - - // Search for BGR values 0..255 (after net is unbiased) and return colour index - function map(b, g, r) { - var i; - var j; - var dist; - var a; - var bestd; - var p; - var best; - - // Biggest possible distance is 256 * 3 - bestd = 1000; - best = -1; - i = netindex[g]; // index on g - j = i - 1; // start at netindex[g] and work outwards - - while (i < netsize || j >= 0) { - - if (i < netsize) { - - p = network[i]; - - dist = p[1] - g; // inx key - - if (dist >= bestd) { - i = netsize; // stop iter - } else { - - i++; - - if (dist < 0) { - dist = -dist; - } - - a = p[0] - b; - - if (a < 0) { - a = -a; - } - - dist += a; - - if (dist < bestd) { - a = p[2] - r; - - if (a < 0) { - a = -a; - } - - dist += a; - - if (dist < bestd) { - bestd = dist; - best = p[3]; - } - } - } - } - - if (j >= 0) { - - p = network[j]; - - dist = g - p[1]; // inx key - reverse dif - - if (dist >= bestd) { - j = -1; // stop iter - } else { - - j--; - if (dist < 0) { - dist = -dist; - } - a = p[0] - b; - if (a < 0) { - a = -a; - } - dist += a; - - if (dist < bestd) { - a = p[2] - r; - if (a < 0) { - a = -a; - } - dist += a; - if (dist < bestd) { - bestd = dist; - best = p[3]; - } - } - } - } - } - - return best; - } - - function process() { - learn(); - unbiasnet(); - inxbuild(); - return colorMap(); - } - - // Unbias network to give byte values 0..255 and record position i - // to prepare for sort - function unbiasnet() { - var i; - - for (i = 0; i < netsize; i++) { - network[i][0] >>= netbiasshift; - network[i][1] >>= netbiasshift; - network[i][2] >>= netbiasshift; - network[i][3] = i; // record colour no - } - } - - // Move adjacent neurons by precomputed alpha*(1-((i-j)^2/[r]^2)) - // in radpower[|i-j|] - function alterneigh(rad, i, b, g, r) { - - var j; - var k; - var lo; - var hi; - var a; - var m; - - var p; - - lo = i - rad; - if (lo < -1) { - lo = -1; - } - - hi = i + rad; - - if (hi > netsize) { - hi = netsize; - } - - j = i + 1; - k = i - 1; - m = 1; - - while (j < hi || k > lo) { - - a = radpower[m++]; - - if (j < hi) { - - p = network[j++]; - - try { - - p[0] -= a * (p[0] - b) / alpharadbias | 0; - p[1] -= a * (p[1] - g) / alpharadbias | 0; - p[2] -= a * (p[2] - r) / alpharadbias | 0; - } catch (e) {} - } - - if (k > lo) { - - p = network[k--]; - - try { - - p[0] -= a * (p[0] - b) / alpharadbias | 0; - p[1] -= a * (p[1] - g) / alpharadbias | 0; - p[2] -= a * (p[2] - r) / alpharadbias | 0; - } catch (e) {} - } - } - } - - // Move neuron i towards biased (b,g,r) by factor alpha - function altersingle(alpha, i, b, g, r) { - - // alter hit neuron - var n = network[i]; - var alphaMult = alpha / initalpha; - n[0] -= alphaMult * (n[0] - b) | 0; - n[1] -= alphaMult * (n[1] - g) | 0; - n[2] -= alphaMult * (n[2] - r) | 0; - } - - // Search for biased BGR values - function contest(b, g, r) { - - // finds closest neuron (min dist) and updates freq - // finds best neuron (min dist-bias) and returns position - // for frequently chosen neurons, freq[i] is high and bias[i] is negative - // bias[i] = gamma*((1/netsize)-freq[i]) - - var i; - var dist; - var a; - var biasdist; - var betafreq; - var bestpos; - var bestbiaspos; - var bestd; - var bestbiasd; - var n; - - bestd = ~(1 << 31); - bestbiasd = bestd; - bestpos = -1; - bestbiaspos = bestpos; - - for (i = 0; i < netsize; i++) { - - n = network[i]; - dist = n[0] - b; - - if (dist < 0) { - dist = -dist; - } - - a = n[1] - g; - - if (a < 0) { - a = -a; - } - - dist += a; - - a = n[2] - r; - - if (a < 0) { - a = -a; - } - - dist += a; - - if (dist < bestd) { - bestd = dist; - bestpos = i; - } - - biasdist = dist - (bias[i] >> intbiasshift - netbiasshift); - - if (biasdist < bestbiasd) { - bestbiasd = biasdist; - bestbiaspos = i; - } - - betafreq = freq[i] >> betashift; - freq[i] -= betafreq; - bias[i] += betafreq << gammashift; - } - - freq[bestpos] += beta; - bias[bestpos] -= betagamma; - return bestbiaspos; - } - - NeuQuantConstructor.apply(this, arguments); - - var exports = {}; - exports.map = map; - exports.process = process; - - return exports; - } - - /* - processFrameWorker.js - ===================== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - function workerCode() { - var self = this; - - try { - self.onmessage = function (ev) { - var data = ev.data || {}; - var response; - - if (data.gifshot) { - response = workerMethods.run(data); - postMessage(response); - } - }; - } catch (e) {} - - var workerMethods = { - dataToRGB: function dataToRGB(data, width, height) { - var length = width * height * 4; - var i = 0; - var rgb = []; - - while (i < length) { - rgb.push(data[i++]); - rgb.push(data[i++]); - rgb.push(data[i++]); - i++; // for the alpha channel which we don't care about - } - - return rgb; - }, - componentizedPaletteToArray: function componentizedPaletteToArray(paletteRGB) { - paletteRGB = paletteRGB || []; - - var paletteArray = []; - - for (var i = 0; i < paletteRGB.length; i += 3) { - var r = paletteRGB[i]; - var g = paletteRGB[i + 1]; - var b = paletteRGB[i + 2]; - - paletteArray.push(r << 16 | g << 8 | b); - } - - return paletteArray; - }, - // This is the "traditional" Animated_GIF style of going from RGBA to indexed color frames - 'processFrameWithQuantizer': function processFrameWithQuantizer(imageData, width, height, sampleInterval) { - var rgbComponents = this.dataToRGB(imageData, width, height); - var nq = new NeuQuant(rgbComponents, rgbComponents.length, sampleInterval); - var paletteRGB = nq.process(); - var paletteArray = new Uint32Array(this.componentizedPaletteToArray(paletteRGB)); - var numberPixels = width * height; - var indexedPixels = new Uint8Array(numberPixels); - var k = 0; - - for (var i = 0; i < numberPixels; i++) { - var r = rgbComponents[k++]; - var g = rgbComponents[k++]; - var b = rgbComponents[k++]; - - indexedPixels[i] = nq.map(r, g, b); - } - - return { - pixels: indexedPixels, - palette: paletteArray - }; - }, - 'run': function run(frame) { - frame = frame || {}; - - var _frame = frame, - height = _frame.height, - palette = _frame.palette, - sampleInterval = _frame.sampleInterval, - width = _frame.width; - - var imageData = frame.data; - - return this.processFrameWithQuantizer(imageData, width, height, sampleInterval); - } - }; - - return workerMethods; - } - - /* - gifWriter.js - ============ - */ - - // (c) Dean McNamee , 2013. - // - // https://github.com/deanm/omggif - // - // Permission is hereby granted, free of charge, to any person obtaining a copy - // of this software and associated documentation files (the "Software"), to - // deal in the Software without restriction, including without limitation the - // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - // sell copies of the Software, and to permit persons to whom the Software is - // furnished to do so, subject to the following conditions: - // - // The above copyright notice and this permission notice shall be included in - // all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - // IN THE SOFTWARE. - // - // omggif is a JavaScript implementation of a GIF 89a encoder and decoder, - // including animation and compression. It does not rely on any specific - // underlying system, so should run in the browser, Node, or Plask. - - function gifWriter(buf, width, height, gopts) { - var p = 0; - - gopts = gopts === undefined$1 ? {} : gopts; - var loop_count = gopts.loop === undefined$1 ? null : gopts.loop; - var global_palette = gopts.palette === undefined$1 ? null : gopts.palette; - - if (width <= 0 || height <= 0 || width > 65535 || height > 65535) throw "Width/Height invalid."; - - function check_palette_and_num_colors(palette) { - var num_colors = palette.length; - - if (num_colors < 2 || num_colors > 256 || num_colors & num_colors - 1) throw "Invalid code/color length, must be power of 2 and 2 .. 256."; - return num_colors; - } - - // - Header. - buf[p++] = 0x47; - buf[p++] = 0x49; - buf[p++] = 0x46; // GIF - buf[p++] = 0x38; - buf[p++] = 0x39; - buf[p++] = 0x61; // 89a - - // Handling of Global Color Table (palette) and background index. - var gp_num_colors_pow2 = 0; - var background = 0; - - // - Logical Screen Descriptor. - // NOTE(deanm): w/h apparently ignored by implementations, but set anyway. - buf[p++] = width & 0xff; - buf[p++] = width >> 8 & 0xff; - buf[p++] = height & 0xff; - buf[p++] = height >> 8 & 0xff; - // NOTE: Indicates 0-bpp original color resolution (unused?). - buf[p++] = (global_palette !== null ? 0x80 : 0) | // Global Color Table Flag. - gp_num_colors_pow2; // NOTE: No sort flag (unused?). - buf[p++] = background; // Background Color Index. - buf[p++] = 0; // Pixel aspect ratio (unused?). - - if (loop_count !== null) { - // Netscape block for looping. - if (loop_count < 0 || loop_count > 65535) throw "Loop count invalid."; - - // Extension code, label, and length. - buf[p++] = 0x21; - buf[p++] = 0xff; - buf[p++] = 0x0b; - // NETSCAPE2.0 - buf[p++] = 0x4e; - buf[p++] = 0x45; - buf[p++] = 0x54; - buf[p++] = 0x53; - buf[p++] = 0x43; - buf[p++] = 0x41; - buf[p++] = 0x50; - buf[p++] = 0x45; - buf[p++] = 0x32; - buf[p++] = 0x2e; - buf[p++] = 0x30; - // Sub-block - buf[p++] = 0x03; - buf[p++] = 0x01; - buf[p++] = loop_count & 0xff; - buf[p++] = loop_count >> 8 & 0xff; - buf[p++] = 0x00; // Terminator. - } - - var ended = false; - - this.addFrame = function (x, y, w, h, indexed_pixels, opts) { - if (ended === true) { - --p; - ended = false; - } // Un-end. - - opts = opts === undefined$1 ? {} : opts; - - // TODO(deanm): Bounds check x, y. Do they need to be within the virtual - // canvas width/height, I imagine? - if (x < 0 || y < 0 || x > 65535 || y > 65535) throw "x/y invalid."; - - if (w <= 0 || h <= 0 || w > 65535 || h > 65535) throw "Width/Height invalid."; - - if (indexed_pixels.length < w * h) throw "Not enough pixels for the frame size."; - - var using_local_palette = true; - var palette = opts.palette; - if (palette === undefined$1 || palette === null) { - using_local_palette = false; - palette = global_palette; - } - - if (palette === undefined$1 || palette === null) throw "Must supply either a local or global palette."; - - var num_colors = check_palette_and_num_colors(palette); - - // Compute the min_code_size (power of 2), destroying num_colors. - var min_code_size = 0; - while (num_colors >>= 1) { - ++min_code_size; - }num_colors = 1 << min_code_size; // Now we can easily get it back. - - var delay = opts.delay === undefined$1 ? 0 : opts.delay; - - // From the spec: - // 0 - No disposal specified. The decoder is - // not required to take any action. - // 1 - Do not dispose. The graphic is to be left - // in place. - // 2 - Restore to background color. The area used by the - // graphic must be restored to the background color. - // 3 - Restore to previous. The decoder is required to - // restore the area overwritten by the graphic with - // what was there prior to rendering the graphic. - // 4-7 - To be defined. - // NOTE(deanm): Dispose background doesn't really work, apparently most - // browsers ignore the background palette index and clear to transparency. - var disposal = opts.disposal === undefined$1 ? 0 : opts.disposal; - if (disposal < 0 || disposal > 3) // 4-7 is reserved. - throw "Disposal out of range."; - - var use_transparency = false; - var transparent_index = 0; - if (opts.transparent !== undefined$1 && opts.transparent !== null) { - use_transparency = true; - transparent_index = opts.transparent; - if (transparent_index < 0 || transparent_index >= num_colors) throw "Transparent color index."; - } - - if (disposal !== 0 || use_transparency || delay !== 0) { - // - Graphics Control Extension - buf[p++] = 0x21; - buf[p++] = 0xf9; // Extension / Label. - buf[p++] = 4; // Byte size. - - buf[p++] = disposal << 2 | (use_transparency === true ? 1 : 0); - buf[p++] = delay & 0xff; - buf[p++] = delay >> 8 & 0xff; - buf[p++] = transparent_index; // Transparent color index. - buf[p++] = 0; // Block Terminator. - } - - // - Image Descriptor - buf[p++] = 0x2c; // Image Seperator. - buf[p++] = x & 0xff; - buf[p++] = x >> 8 & 0xff; // Left. - buf[p++] = y & 0xff; - buf[p++] = y >> 8 & 0xff; // Top. - buf[p++] = w & 0xff; - buf[p++] = w >> 8 & 0xff; - buf[p++] = h & 0xff; - buf[p++] = h >> 8 & 0xff; - // NOTE: No sort flag (unused?). - // TODO(deanm): Support interlace. - buf[p++] = using_local_palette === true ? 0x80 | min_code_size - 1 : 0; - - // - Local Color Table - if (using_local_palette === true) { - for (var i = 0, il = palette.length; i < il; ++i) { - var rgb = palette[i]; - buf[p++] = rgb >> 16 & 0xff; - buf[p++] = rgb >> 8 & 0xff; - buf[p++] = rgb & 0xff; - } - } - - p = GifWriterOutputLZWCodeStream(buf, p, min_code_size < 2 ? 2 : min_code_size, indexed_pixels); - }; - - this.end = function () { - if (ended === false) { - buf[p++] = 0x3b; // Trailer. - ended = true; - } - return p; - }; - - // Main compression routine, palette indexes -> LZW code stream. - // |index_stream| must have at least one entry. - function GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) { - buf[p++] = min_code_size; - var cur_subblock = p++; // Pointing at the length field. - - var clear_code = 1 << min_code_size; - var code_mask = clear_code - 1; - var eoi_code = clear_code + 1; - var next_code = eoi_code + 1; - - var cur_code_size = min_code_size + 1; // Number of bits per code. - var cur_shift = 0; - // We have at most 12-bit codes, so we should have to hold a max of 19 - // bits here (and then we would write out). - var cur = 0; - - function emit_bytes_to_buffer(bit_block_size) { - while (cur_shift >= bit_block_size) { - buf[p++] = cur & 0xff; - cur >>= 8; - cur_shift -= 8; - if (p === cur_subblock + 256) { - // Finished a subblock. - buf[cur_subblock] = 255; - cur_subblock = p++; - } - } - } - - function emit_code(c) { - cur |= c << cur_shift; - cur_shift += cur_code_size; - emit_bytes_to_buffer(8); - } - - // I am not an expert on the topic, and I don't want to write a thesis. - // However, it is good to outline here the basic algorithm and the few data - // structures and optimizations here that make this implementation fast. - // The basic idea behind LZW is to build a table of previously seen runs - // addressed by a short id (herein called output code). All data is - // referenced by a code, which represents one or more values from the - // original input stream. All input bytes can be referenced as the same - // value as an output code. So if you didn't want any compression, you - // could more or less just output the original bytes as codes (there are - // some details to this, but it is the idea). In order to achieve - // compression, values greater then the input range (codes can be up to - // 12-bit while input only 8-bit) represent a sequence of previously seen - // inputs. The decompressor is able to build the same mapping while - // decoding, so there is always a shared common knowledge between the - // encoding and decoder, which is also important for "timing" aspects like - // how to handle variable bit width code encoding. - // - // One obvious but very important consequence of the table system is there - // is always a unique id (at most 12-bits) to map the runs. 'A' might be - // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship - // can be used for an effecient lookup strategy for the code mapping. We - // need to know if a run has been seen before, and be able to map that run - // to the output code. Since we start with known unique ids (input bytes), - // and then from those build more unique ids (table entries), we can - // continue this chain (almost like a linked list) to always have small - // integer values that represent the current byte chains in the encoder. - // This means instead of tracking the input bytes (AAAABCD) to know our - // current state, we can track the table entry for AAAABC (it is guaranteed - // to exist by the nature of the algorithm) and the next character D. - // Therefor the tuple of (table_entry, byte) is guaranteed to also be - // unique. This allows us to create a simple lookup key for mapping input - // sequences to codes (table indices) without having to store or search - // any of the code sequences. So if 'AAAA' has a table entry of 12, the - // tuple of ('AAAA', K) for any input byte K will be unique, and can be our - // key. This leads to a integer value at most 20-bits, which can always - // fit in an SMI value and be used as a fast sparse array / object key. - - // Output code for the current contents of the index buffer. - var ib_code = index_stream[0] & code_mask; // Load first input index. - var code_table = {}; // Key'd on our 20-bit "tuple". - - emit_code(clear_code); // Spec says first code should be a clear code. - - // First index already loaded, process the rest of the stream. - for (var i = 1, il = index_stream.length; i < il; ++i) { - var k = index_stream[i] & code_mask; - var cur_key = ib_code << 8 | k; // (prev, k) unique tuple. - var cur_code = code_table[cur_key]; // buffer + k. - - // Check if we have to create a new code table entry. - if (cur_code === undefined$1) { - // We don't have buffer + k. - // Emit index buffer (without k). - // This is an inline version of emit_code, because this is the core - // writing routine of the compressor (and V8 cannot inline emit_code - // because it is a closure here in a different context). Additionally - // we can call emit_byte_to_buffer less often, because we can have - // 30-bits (from our 31-bit signed SMI), and we know our codes will only - // be 12-bits, so can safely have 18-bits there without overflow. - // emit_code(ib_code); - cur |= ib_code << cur_shift; - cur_shift += cur_code_size; - while (cur_shift >= 8) { - buf[p++] = cur & 0xff; - cur >>= 8; - cur_shift -= 8; - if (p === cur_subblock + 256) { - // Finished a subblock. - buf[cur_subblock] = 255; - cur_subblock = p++; - } - } - - if (next_code === 4096) { - // Table full, need a clear. - emit_code(clear_code); - next_code = eoi_code + 1; - cur_code_size = min_code_size + 1; - code_table = {}; - } else { - // Table not full, insert a new entry. - // Increase our variable bit code sizes if necessary. This is a bit - // tricky as it is based on "timing" between the encoding and - // decoder. From the encoders perspective this should happen after - // we've already emitted the index buffer and are about to create the - // first table entry that would overflow our current code bit size. - if (next_code >= 1 << cur_code_size) ++cur_code_size; - code_table[cur_key] = next_code++; // Insert into code table. - } - - ib_code = k; // Index buffer to single input k. - } else { - ib_code = cur_code; // Index buffer to sequence in code table. - } - } - - emit_code(ib_code); // There will still be something in the index buffer. - emit_code(eoi_code); // End Of Information. - - // Flush / finalize the sub-blocks stream to the buffer. - emit_bytes_to_buffer(1); - - // Finish the sub-blocks, writing out any unfinished lengths and - // terminating with a sub-block of length 0. If we have already started - // but not yet used a sub-block it can just become the terminator. - if (cur_subblock + 1 === p) { - // Started but unused. - buf[cur_subblock] = 0; - } else { - // Started and used, write length and additional terminator block. - buf[cur_subblock] = p - cur_subblock - 1; - buf[p++] = 0; - } - return p; - } - } - - /* - animatedGIF.js - ============== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - // Helpers - var noop$2 = function noop() {}; - - var AnimatedGIF = function AnimatedGIF(options) { - this.canvas = null; - this.ctx = null; - this.repeat = 0; - this.frames = []; - this.numRenderedFrames = 0; - this.onRenderCompleteCallback = noop$2; - this.onRenderProgressCallback = noop$2; - this.workers = []; - this.availableWorkers = []; - this.generatingGIF = false; - this.options = options; - - // Constructs and initializes the the web workers appropriately - this.initializeWebWorkers(options); - }; - - AnimatedGIF.prototype = { - 'workerMethods': workerCode(), - 'initializeWebWorkers': function initializeWebWorkers(options) { - var self = this; - var processFrameWorkerCode = NeuQuant.toString() + '(' + workerCode.toString() + '());'; - var webWorkerObj = void 0; - var objectUrl = void 0; - var webWorker = void 0; - var numWorkers = void 0; - var x = -1; - var workerError = ''; - - numWorkers = options.numWorkers; - - while (++x < numWorkers) { - webWorkerObj = utils.createWebWorker(processFrameWorkerCode); - - if (utils.isObject(webWorkerObj)) { - objectUrl = webWorkerObj.objectUrl; - webWorker = webWorkerObj.worker; - - self.workers.push({ - worker: webWorker, - objectUrl: objectUrl - }); - - self.availableWorkers.push(webWorker); - } else { - workerError = webWorkerObj; - utils.webWorkerError = !!webWorkerObj; - } - } - - this.workerError = workerError; - this.canvas = document.createElement('canvas'); - this.canvas.width = options.gifWidth; - this.canvas.height = options.gifHeight; - this.ctx = this.canvas.getContext('2d'); - this.frames = []; - }, - // Return a worker for processing a frame - getWorker: function getWorker() { - return this.availableWorkers.pop(); - }, - // Restores a worker to the pool - freeWorker: function freeWorker(worker) { - this.availableWorkers.push(worker); - }, - byteMap: function () { - var byteMap = []; - - for (var i = 0; i < 256; i++) { - byteMap[i] = String.fromCharCode(i); - } - - return byteMap; - }(), - bufferToString: function bufferToString(buffer) { - var numberValues = buffer.length; - var str = ''; - var x = -1; - - while (++x < numberValues) { - str += this.byteMap[buffer[x]]; - } - - return str; - }, - onFrameFinished: function onFrameFinished(progressCallback) { - // The GIF is not written until we're done with all the frames - // because they might not be processed in the same order - var self = this; - var frames = self.frames; - var options = self.options; - var hasExistingImages = !!(options.images || []).length; - var allDone = frames.every(function (frame) { - return !frame.beingProcessed && frame.done; - }); - - self.numRenderedFrames++; - - if (hasExistingImages) { - progressCallback(self.numRenderedFrames / frames.length); - } - - self.onRenderProgressCallback(self.numRenderedFrames * 0.75 / frames.length); - - if (allDone) { - if (!self.generatingGIF) { - self.generateGIF(frames, self.onRenderCompleteCallback); - } - } else { - utils.requestTimeout(function () { - self.processNextFrame(); - }, 1); - } - }, - processFrame: function processFrame(position) { - var AnimatedGifContext = this; - var options = this.options; - var _options = this.options, - progressCallback = _options.progressCallback, - sampleInterval = _options.sampleInterval; - - var frames = this.frames; - var frame = void 0; - var worker = void 0; - var done = function done() { - var ev = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - - var data = ev.data; - - // Delete original data, and free memory - delete frame.data; - - frame.pixels = Array.prototype.slice.call(data.pixels); - frame.palette = Array.prototype.slice.call(data.palette); - frame.done = true; - frame.beingProcessed = false; - - AnimatedGifContext.freeWorker(worker); - - AnimatedGifContext.onFrameFinished(progressCallback); - }; - - frame = frames[position]; - - if (frame.beingProcessed || frame.done) { - this.onFrameFinished(); - - return; - } - - frame.sampleInterval = sampleInterval; - frame.beingProcessed = true; - frame.gifshot = true; - - worker = this.getWorker(); - - if (worker) { - // Process the frame in a web worker - worker.onmessage = done; - worker.postMessage(frame); - } else { - // Process the frame in the current thread - done({ - 'data': AnimatedGifContext.workerMethods.run(frame) - }); - } - }, - startRendering: function startRendering(completeCallback) { - this.onRenderCompleteCallback = completeCallback; - - for (var i = 0; i < this.options.numWorkers && i < this.frames.length; i++) { - this.processFrame(i); - } - }, - processNextFrame: function processNextFrame() { - var position = -1; - - for (var i = 0; i < this.frames.length; i++) { - var frame = this.frames[i]; - - if (!frame.done && !frame.beingProcessed) { - position = i; - break; - } - } - - if (position >= 0) { - this.processFrame(position); - } - }, - // Takes the already processed data in frames and feeds it to a new - // GifWriter instance in order to get the binary GIF file - generateGIF: function generateGIF(frames, callback) { - // TODO: Weird: using a simple JS array instead of a typed array, - // the files are WAY smaller o_o. Patches/explanations welcome! - var buffer = []; // new Uint8Array(width * height * frames.length * 5); - var gifOptions = { - loop: this.repeat - }; - var options = this.options; - var interval = options.interval; - - var frameDuration = options.frameDuration; - var existingImages = options.images; - var hasExistingImages = !!existingImages.length; - var height = options.gifHeight; - var width = options.gifWidth; - var gifWriter$$1 = new gifWriter(buffer, width, height, gifOptions); - var onRenderProgressCallback = this.onRenderProgressCallback; - var delay = hasExistingImages ? interval * 100 : 0; - var bufferToString = void 0; - var gif = void 0; - - this.generatingGIF = true; - - utils.each(frames, function (iterator, frame) { - var framePalette = frame.palette; - - onRenderProgressCallback(0.75 + 0.25 * frame.position * 1.0 / frames.length); - - for (var i = 0; i < frameDuration; i++) { - gifWriter$$1.addFrame(0, 0, width, height, frame.pixels, { - palette: framePalette, - delay: delay - }); - } - }); - - gifWriter$$1.end(); - - onRenderProgressCallback(1.0); - - this.frames = []; - - this.generatingGIF = false; - - if (utils.isFunction(callback)) { - bufferToString = this.bufferToString(buffer); - gif = 'data:image/gif;base64,' + utils.btoa(bufferToString); - - callback(gif); - } - }, - // From GIF: 0 = loop forever, null = not looping, n > 0 = loop n times and stop - setRepeat: function setRepeat(r) { - this.repeat = r; - }, - addFrame: function addFrame(element, gifshotOptions) { - gifshotOptions = utils.isObject(gifshotOptions) ? gifshotOptions : {}; - - var self = this; - var ctx = self.ctx; - var options = self.options; - var width = options.gifWidth; - var height = options.gifHeight; - var fontSize = utils.getFontSize(gifshotOptions); - var _gifshotOptions = gifshotOptions, - filter = _gifshotOptions.filter, - fontColor = _gifshotOptions.fontColor, - fontFamily = _gifshotOptions.fontFamily, - fontWeight = _gifshotOptions.fontWeight, - gifHeight = _gifshotOptions.gifHeight, - gifWidth = _gifshotOptions.gifWidth, - text = _gifshotOptions.text, - textAlign = _gifshotOptions.textAlign, - textBaseline = _gifshotOptions.textBaseline; - - var textXCoordinate = gifshotOptions.textXCoordinate ? gifshotOptions.textXCoordinate : textAlign === 'left' ? 1 : textAlign === 'right' ? width : width / 2; - var textYCoordinate = gifshotOptions.textYCoordinate ? gifshotOptions.textYCoordinate : textBaseline === 'top' ? 1 : textBaseline === 'center' ? height / 2 : height; - var font = fontWeight + ' ' + fontSize + ' ' + fontFamily; - var imageData = void 0; - - try { - ctx.filter = filter; - - ctx.drawImage(element, 0, 0, width, height); - - if (text) { - ctx.font = font; - ctx.fillStyle = fontColor; - ctx.textAlign = textAlign; - ctx.textBaseline = textBaseline; - ctx.fillText(text, textXCoordinate, textYCoordinate); - } - - imageData = ctx.getImageData(0, 0, width, height); - - self.addFrameImageData(imageData); - } catch (e) { - return '' + e; - } - }, - addFrameImageData: function addFrameImageData() { - var imageData = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - - var frames = this.frames; - var imageDataArray = imageData.data; - - this.frames.push({ - 'data': imageDataArray, - 'width': imageData.width, - 'height': imageData.height, - 'palette': null, - 'dithering': null, - 'done': false, - 'beingProcessed': false, - 'position': frames.length - }); - }, - onRenderProgress: function onRenderProgress(callback) { - this.onRenderProgressCallback = callback; - }, - isRendering: function isRendering() { - return this.generatingGIF; - }, - getBase64GIF: function getBase64GIF(completeCallback) { - var self = this; - var onRenderComplete = function onRenderComplete(gif) { - self.destroyWorkers(); - - utils.requestTimeout(function () { - completeCallback(gif); - }, 0); - }; - - self.startRendering(onRenderComplete); - }, - destroyWorkers: function destroyWorkers() { - if (this.workerError) { - return; - } - - var workers = this.workers; - - // Explicitly ask web workers to die so they are explicitly GC'ed - utils.each(workers, function (iterator, workerObj) { - var worker = workerObj.worker; - var objectUrl = workerObj.objectUrl; - - worker.terminate(); - utils.URL.revokeObjectURL(objectUrl); - }); - } - }; - - /* - getBase64GIF.js - =============== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - function getBase64GIF(animatedGifInstance, callback) { - // This is asynchronous, rendered with WebWorkers - animatedGifInstance.getBase64GIF(function (image) { - callback({ - error: false, - errorCode: '', - errorMsg: '', - image: image - }); - }); - } - - /* - existingImages.js - ================= - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - function existingImages() { - var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - var callback = obj.callback, - images = obj.images, - options = obj.options; - - var imagesLength = obj.imagesLength; - var skipObj = { - 'getUserMedia': true, - 'window.URL': true - }; - var errorObj = error.validate(skipObj); - var loadedImages = []; - var loadedImagesLength = 0; - var tempImage = void 0; - var ag = void 0; - - if (errorObj.error) { - return callback(errorObj); - } - - // change workerPath to point to where Animated_GIF.worker.js is - ag = new AnimatedGIF(options); - - utils.each(images, function (index, image) { - var currentImage = image; - - if (image.src) { - currentImage = currentImage.src; - } - if (utils.isElement(currentImage)) { - if (options.crossOrigin) { - currentImage.crossOrigin = options.crossOrigin; - } - - loadedImages[index] = currentImage; - loadedImagesLength += 1; - - if (loadedImagesLength === imagesLength) { - addLoadedImagesToGif(); - } - } else if (utils.isString(currentImage)) { - tempImage = new Image(); - - if (options.crossOrigin) { - tempImage.crossOrigin = options.crossOrigin; - } - - (function (tempImage) { - if (image.text) { - tempImage.text = image.text; - } - - tempImage.onerror = function (e) { - var obj = void 0; - - --imagesLength; // skips over images that error out - - if (imagesLength === 0) { - obj = {}; - obj.error = 'None of the requested images was capable of being retrieved'; - - return callback(obj); - } - }; - - tempImage.onload = function (e) { - if (image.text) { - loadedImages[index] = { - img: tempImage, - text: tempImage.text - }; - } else { - loadedImages[index] = tempImage; - } - - loadedImagesLength += 1; - - if (loadedImagesLength === imagesLength) { - addLoadedImagesToGif(); - } - - utils.removeElement(tempImage); - }; - - tempImage.src = currentImage; - })(tempImage); - - utils.setCSSAttr(tempImage, { - position: 'fixed', - opacity: '0' - }); - - document.body.appendChild(tempImage); - } - }); - - function addLoadedImagesToGif() { - utils.each(loadedImages, function (index, loadedImage) { - if (loadedImage) { - if (loadedImage.text) { - ag.addFrame(loadedImage.img, options, loadedImage.text); - } else { - ag.addFrame(loadedImage, options); - } - } - }); - - getBase64GIF(ag, callback); - } - } - - /* - screenShot.js - ============= - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - // Helpers - var noop$3 = function noop() {}; - - var screenShot = { - getGIF: function getGIF() { - var options = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - var callback = arguments[1]; - - callback = utils.isFunction(callback) ? callback : noop$3; - - var canvas = document.createElement('canvas'); - var context = void 0; - var existingImages = options.images; - var hasExistingImages = !!existingImages.length; - var cameraStream = options.cameraStream, - crop = options.crop, - filter = options.filter, - fontColor = options.fontColor, - fontFamily = options.fontFamily, - fontWeight = options.fontWeight, - keepCameraOn = options.keepCameraOn, - numWorkers = options.numWorkers, - progressCallback = options.progressCallback, - saveRenderingContexts = options.saveRenderingContexts, - savedRenderingContexts = options.savedRenderingContexts, - text = options.text, - textAlign = options.textAlign, - textBaseline = options.textBaseline, - videoElement = options.videoElement, - videoHeight = options.videoHeight, - videoWidth = options.videoWidth, - webcamVideoElement = options.webcamVideoElement; - - var gifWidth = Number(options.gifWidth); - var gifHeight = Number(options.gifHeight); - var interval = Number(options.interval); - var sampleInterval = Number(options.sampleInterval); - var waitBetweenFrames = hasExistingImages ? 0 : interval * 1000; - var renderingContextsToSave = []; - var numFrames = savedRenderingContexts.length ? savedRenderingContexts.length : options.numFrames; - var pendingFrames = numFrames; - var ag = new AnimatedGIF(options); - var fontSize = utils.getFontSize(options); - var textXCoordinate = options.textXCoordinate ? options.textXCoordinate : textAlign === 'left' ? 1 : textAlign === 'right' ? gifWidth : gifWidth / 2; - var textYCoordinate = options.textYCoordinate ? options.textYCoordinate : textBaseline === 'top' ? 1 : textBaseline === 'center' ? gifHeight / 2 : gifHeight; - var font = fontWeight + ' ' + fontSize + ' ' + fontFamily; - var sourceX = crop ? Math.floor(crop.scaledWidth / 2) : 0; - var sourceWidth = crop ? videoWidth - crop.scaledWidth : 0; - var sourceY = crop ? Math.floor(crop.scaledHeight / 2) : 0; - var sourceHeight = crop ? videoHeight - crop.scaledHeight : 0; - var captureFrames = function captureSingleFrame() { - var framesLeft = pendingFrames - 1; - - if (savedRenderingContexts.length) { - context.putImageData(savedRenderingContexts[numFrames - pendingFrames], 0, 0); - - finishCapture(); - } else { - drawVideo(); - } - - function drawVideo() { - try { - // Makes sure the canvas video heights/widths are in bounds - if (sourceWidth > videoWidth) { - sourceWidth = videoWidth; - } - - if (sourceHeight > videoHeight) { - sourceHeight = videoHeight; - } - - if (sourceX < 0) { - sourceX = 0; - } - - if (sourceY < 0) { - sourceY = 0; - } - - context.filter = filter; - - context.drawImage(videoElement, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, gifWidth, gifHeight); - - finishCapture(); - } catch (e) { - // There is a Firefox bug that sometimes throws NS_ERROR_NOT_AVAILABLE and - // and IndexSizeError errors when drawing a video element to the canvas - if (e.name === 'NS_ERROR_NOT_AVAILABLE') { - // Wait 100ms before trying again - utils.requestTimeout(drawVideo, 100); - } else { - throw e; - } - } - } - - function finishCapture() { - var imageData = void 0; - - if (saveRenderingContexts) { - renderingContextsToSave.push(context.getImageData(0, 0, gifWidth, gifHeight)); - } - - // If there is text to display, make sure to display it on the canvas after the image is drawn - if (text) { - context.font = font; - context.fillStyle = fontColor; - context.textAlign = textAlign; - context.textBaseline = textBaseline; - context.fillText(text, textXCoordinate, textYCoordinate); - } - - imageData = context.getImageData(0, 0, gifWidth, gifHeight); - - ag.addFrameImageData(imageData); - - pendingFrames = framesLeft; - - // Call back with an r value indicating how far along we are in capture - progressCallback((numFrames - pendingFrames) / numFrames); - - if (framesLeft > 0) { - // test - utils.requestTimeout(captureSingleFrame, waitBetweenFrames); - } - - if (!pendingFrames) { - ag.getBase64GIF(function (image) { - callback({ - 'error': false, - 'errorCode': '', - 'errorMsg': '', - 'image': image, - 'cameraStream': cameraStream, - 'videoElement': videoElement, - 'webcamVideoElement': webcamVideoElement, - 'savedRenderingContexts': renderingContextsToSave, - 'keepCameraOn': keepCameraOn - }); - }); - } - } - }; - - numFrames = numFrames !== undefined$1 ? numFrames : 10; - interval = interval !== undefined$1 ? interval : 0.1; // In seconds - - canvas.width = gifWidth; - canvas.height = gifHeight; - context = canvas.getContext('2d'); - - (function capture() { - if (!savedRenderingContexts.length && videoElement.currentTime === 0) { - utils.requestTimeout(capture, 100); - - return; - } - - captureFrames(); - })(); - }, - getCropDimensions: function getCropDimensions() { - var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - - var width = obj.videoWidth; - var height = obj.videoHeight; - var gifWidth = obj.gifWidth; - var gifHeight = obj.gifHeight; - var result = { - width: 0, - height: 0, - scaledWidth: 0, - scaledHeight: 0 - }; - - if (width > height) { - result.width = Math.round(width * (gifHeight / height)) - gifWidth; - result.scaledWidth = Math.round(result.width * (height / gifHeight)); - } else { - result.height = Math.round(height * (gifWidth / width)) - gifHeight; - result.scaledHeight = Math.round(result.height * (width / gifWidth)); - } - - return result; - } - }; - - /* - videoStream.js - ============== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - var videoStream = { - loadedData: false, - defaultVideoDimensions: { - width: 640, - height: 480 - }, - findVideoSize: function findVideoSizeMethod(obj) { - findVideoSizeMethod.attempts = findVideoSizeMethod.attempts || 0; - - var cameraStream = obj.cameraStream, - completedCallback = obj.completedCallback, - videoElement = obj.videoElement; - - - if (!videoElement) { - return; - } - - if (videoElement.videoWidth > 0 && videoElement.videoHeight > 0) { - videoElement.removeEventListener('loadeddata', videoStream.findVideoSize); - - completedCallback({ - videoElement: videoElement, - cameraStream: cameraStream, - videoWidth: videoElement.videoWidth, - videoHeight: videoElement.videoHeight - }); - } else { - if (findVideoSizeMethod.attempts < 10) { - findVideoSizeMethod.attempts += 1; - - utils.requestTimeout(function () { - videoStream.findVideoSize(obj); - }, 400); - } else { - completedCallback({ - videoElement: videoElement, - cameraStream: cameraStream, - videoWidth: videoStream.defaultVideoDimensions.width, - videoHeight: videoStream.defaultVideoDimensions.height - }); - } - } - }, - onStreamingTimeout: function onStreamingTimeout(callback) { - if (utils.isFunction(callback)) { - callback({ - error: true, - errorCode: 'getUserMedia', - errorMsg: 'There was an issue with the getUserMedia API - Timed out while trying to start streaming', - image: null, - cameraStream: {} - }); - } - }, - stream: function stream(obj) { - var existingVideo = utils.isArray(obj.existingVideo) ? obj.existingVideo[0] : obj.existingVideo; - var cameraStream = obj.cameraStream, - completedCallback = obj.completedCallback, - streamedCallback = obj.streamedCallback, - videoElement = obj.videoElement; - - - if (utils.isFunction(streamedCallback)) { - streamedCallback(); - } - - if (existingVideo) { - if (utils.isString(existingVideo)) { - videoElement.src = existingVideo; - videoElement.innerHTML = ''; - } else if (existingVideo instanceof Blob) { - try { - videoElement.src = utils.URL.createObjectURL(existingVideo); - } catch (e) {} - - videoElement.innerHTML = ''; - } - } else if (videoElement.mozSrcObject) { - videoElement.mozSrcObject = cameraStream; - } else if (utils.URL) { - try { - videoElement.srcObject = cameraStream; - videoElement.src = utils.URL.createObjectURL(cameraStream); - } catch (e) { - videoElement.srcObject = cameraStream; - } - } - - videoElement.play(); - - utils.requestTimeout(function checkLoadedData() { - checkLoadedData.count = checkLoadedData.count || 0; - - if (videoStream.loadedData === true) { - videoStream.findVideoSize({ - videoElement: videoElement, - cameraStream: cameraStream, - completedCallback: completedCallback - }); - - videoStream.loadedData = false; - } else { - checkLoadedData.count += 1; - - if (checkLoadedData.count > 10) { - videoStream.findVideoSize({ - videoElement: videoElement, - cameraStream: cameraStream, - completedCallback: completedCallback - }); - } else { - checkLoadedData(); - } - } - }, 0); - }, - startStreaming: function startStreaming(obj) { - var errorCallback = utils.isFunction(obj.error) ? obj.error : utils.noop; - var streamedCallback = utils.isFunction(obj.streamed) ? obj.streamed : utils.noop; - var completedCallback = utils.isFunction(obj.completed) ? obj.completed : utils.noop; - var crossOrigin = obj.crossOrigin, - existingVideo = obj.existingVideo, - lastCameraStream = obj.lastCameraStream, - options = obj.options, - webcamVideoElement = obj.webcamVideoElement; - - var videoElement = utils.isElement(existingVideo) ? existingVideo : webcamVideoElement ? webcamVideoElement : document.createElement('video'); - - if (crossOrigin) { - videoElement.crossOrigin = options.crossOrigin; - } - - videoElement.autoplay = true; - videoElement.loop = true; - videoElement.muted = true; - videoElement.addEventListener('loadeddata', function (event) { - videoStream.loadedData = true; - if (options.offset) { - videoElement.currentTime = options.offset; - } - }); - - if (existingVideo) { - videoStream.stream({ - videoElement: videoElement, - existingVideo: existingVideo, - completedCallback: completedCallback - }); - } else if (lastCameraStream) { - videoStream.stream({ - videoElement: videoElement, - cameraStream: lastCameraStream, - streamedCallback: streamedCallback, - completedCallback: completedCallback - }); - } else { - utils.getUserMedia({ - video: true - }, function (stream) { - videoStream.stream({ - videoElement: videoElement, - cameraStream: stream, - streamedCallback: streamedCallback, - completedCallback: completedCallback - }); - }, errorCallback); - } - }, - startVideoStreaming: function startVideoStreaming(callback) { - var options = arguments.length > 1 && arguments[1] !== undefined$1 ? arguments[1] : {}; - - var timeoutLength = options.timeout !== undefined$1 ? options.timeout : 0; - var originalCallback = options.callback; - var webcamVideoElement = options.webcamVideoElement; - var noGetUserMediaSupportTimeout = void 0; - - // Some browsers apparently have support for video streaming because of the - // presence of the getUserMedia function, but then do not answer our - // calls for streaming. - // So we'll set up this timeout and if nothing happens after a while, we'll - // conclude that there's no actual getUserMedia support. - if (timeoutLength > 0) { - noGetUserMediaSupportTimeout = utils.requestTimeout(function () { - videoStream.onStreamingTimeout(originalCallback); - }, 10000); - } - - videoStream.startStreaming({ - error: function error() { - originalCallback({ - error: true, - errorCode: 'getUserMedia', - errorMsg: 'There was an issue with the getUserMedia API - the user probably denied permission', - image: null, - cameraStream: {} - }); - }, - streamed: function streamed() { - // The streaming started somehow, so we can assume there is getUserMedia support - clearTimeout(noGetUserMediaSupportTimeout); - }, - completed: function completed() { - var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - var cameraStream = obj.cameraStream, - videoElement = obj.videoElement, - videoHeight = obj.videoHeight, - videoWidth = obj.videoWidth; - - - callback({ - cameraStream: cameraStream, - videoElement: videoElement, - videoHeight: videoHeight, - videoWidth: videoWidth - }); - }, - lastCameraStream: options.lastCameraStream, - webcamVideoElement: webcamVideoElement, - crossOrigin: options.crossOrigin, - options: options - }); - }, - stopVideoStreaming: function stopVideoStreaming(obj) { - obj = utils.isObject(obj) ? obj : {}; - - var _obj = obj, - keepCameraOn = _obj.keepCameraOn, - videoElement = _obj.videoElement, - webcamVideoElement = _obj.webcamVideoElement; - - var cameraStream = obj.cameraStream || {}; - var cameraStreamTracks = cameraStream.getTracks ? cameraStream.getTracks() || [] : []; - var hasCameraStreamTracks = !!cameraStreamTracks.length; - var firstCameraStreamTrack = cameraStreamTracks[0]; - - if (!keepCameraOn && hasCameraStreamTracks) { - if (utils.isFunction(firstCameraStreamTrack.stop)) { - // Stops the camera stream - firstCameraStreamTrack.stop(); - } - } - - if (utils.isElement(videoElement) && !webcamVideoElement) { - // Pauses the video, revokes the object URL (freeing up memory), and remove the video element - videoElement.pause(); - - // Destroys the object url - if (utils.isFunction(utils.URL.revokeObjectURL) && !utils.webWorkerError) { - if (videoElement.src) { - utils.URL.revokeObjectURL(videoElement.src); - } - } - - // Removes the video element from the DOM - utils.removeElement(videoElement); - } - } - }; - - /* - stopVideoStreaming.js - ===================== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - function stopVideoStreaming(options) { - options = utils.isObject(options) ? options : {}; - - videoStream.stopVideoStreaming(options); - } - - /* - createAndGetGIF.js - ================== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - function createAndGetGIF(obj, callback) { - var options = obj.options || {}; - - var images = options.images, - video = options.video; - - var gifWidth = Number(options.gifWidth); - var gifHeight = Number(options.gifHeight); - var numFrames = Number(options.numFrames); - var cameraStream = obj.cameraStream, - videoElement = obj.videoElement, - videoWidth = obj.videoWidth, - videoHeight = obj.videoHeight; - - var cropDimensions = screenShot.getCropDimensions({ - videoWidth: videoWidth, - videoHeight: videoHeight, - gifHeight: gifHeight, - gifWidth: gifWidth - }); - var completeCallback = callback; - - options.crop = cropDimensions; - options.videoElement = videoElement; - options.videoWidth = videoWidth; - options.videoHeight = videoHeight; - options.cameraStream = cameraStream; - - if (!utils.isElement(videoElement)) { - return; - } - - videoElement.width = gifWidth + cropDimensions.width; - videoElement.height = gifHeight + cropDimensions.height; - - if (!options.webcamVideoElement) { - utils.setCSSAttr(videoElement, { - position: 'fixed', - opacity: '0' - }); - - document.body.appendChild(videoElement); - } - - // Firefox doesn't seem to obey autoplay if the element is not in the DOM when the content - // is loaded, so we must manually trigger play after adding it, or the video will be frozen - videoElement.play(); - - screenShot.getGIF(options, function (obj) { - if ((!images || !images.length) && (!video || !video.length)) { - stopVideoStreaming(obj); - } - - completeCallback(obj); - }); - } - - /* - existingVideo.js - ================ - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - function existingVideo() { - var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - var callback = obj.callback, - existingVideo = obj.existingVideo, - options = obj.options; - - var skipObj = { - getUserMedia: true, - 'window.URL': true - }; - var errorObj = error.validate(skipObj); - var videoType = void 0; - var videoSrc = void 0; - - if (errorObj.error) { - return callback(errorObj); - } - - if (utils.isElement(existingVideo) && existingVideo.src) { - videoSrc = existingVideo.src; - videoType = utils.getExtension(videoSrc); - - if (!utils.isSupported.videoCodecs[videoType]) { - return callback(error.messages.videoCodecs); - } - } else if (utils.isArray(existingVideo)) { - utils.each(existingVideo, function (iterator, videoSrc) { - if (videoSrc instanceof Blob) { - videoType = videoSrc.type.substr(videoSrc.type.lastIndexOf('/') + 1, videoSrc.length); - } else { - videoType = videoSrc.substr(videoSrc.lastIndexOf('.') + 1, videoSrc.length); - } - - if (utils.isSupported.videoCodecs[videoType]) { - existingVideo = videoSrc; - - return false; - } - }); - } - - videoStream.startStreaming({ - completed: function completed(obj) { - obj.options = options || {}; - - createAndGetGIF(obj, callback); - }, - existingVideo: existingVideo, - crossOrigin: options.crossOrigin, - options: options - }); - } - - /* - existingWebcam.js - ================= - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - function existingWebcam() { - var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - var callback = obj.callback, - lastCameraStream = obj.lastCameraStream, - options = obj.options, - webcamVideoElement = obj.webcamVideoElement; - - - if (!isWebCamGIFSupported()) { - return callback(error.validate()); - } - - if (options.savedRenderingContexts.length) { - screenShot.getGIF(options, function (obj) { - callback(obj); - }); - - return; - } - - videoStream.startVideoStreaming(function () { - var obj = arguments.length > 0 && arguments[0] !== undefined$1 ? arguments[0] : {}; - - obj.options = options || {}; - - createAndGetGIF(obj, callback); - }, { - lastCameraStream: lastCameraStream, - callback: callback, - webcamVideoElement: webcamVideoElement, - crossOrigin: options.crossOrigin - }); - } - - /* - createGIF.js - ============ - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - function createGIF(userOptions, callback) { - callback = utils.isFunction(userOptions) ? userOptions : callback; - userOptions = utils.isObject(userOptions) ? userOptions : {}; - - if (!utils.isFunction(callback)) { - return; - } - - var options = utils.mergeOptions(defaultOptions, userOptions) || {}; - var lastCameraStream = userOptions.cameraStream; - var images = options.images; - var imagesLength = images ? images.length : 0; - var video = options.video; - var webcamVideoElement = options.webcamVideoElement; - - options = utils.mergeOptions(options, { - 'gifWidth': Math.floor(options.gifWidth), - 'gifHeight': Math.floor(options.gifHeight) - }); - - // If the user would like to create a GIF from an existing image(s) - if (imagesLength) { - existingImages({ - 'images': images, - 'imagesLength': imagesLength, - 'callback': callback, - 'options': options - }); - } else if (video) { - // If the user would like to create a GIF from an existing HTML5 video - existingVideo({ - 'existingVideo': video, - callback: callback, - options: options - }); - } else { - // If the user would like to create a GIF from a webcam stream - existingWebcam({ - lastCameraStream: lastCameraStream, - callback: callback, - webcamVideoElement: webcamVideoElement, - options: options - }); - } - } - - /* - takeSnapShot.js - =============== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - function takeSnapShot(userOptions, callback) { - callback = utils.isFunction(userOptions) ? userOptions : callback; - userOptions = utils.isObject(userOptions) ? userOptions : {}; - - if (!utils.isFunction(callback)) { - return; - } - - var mergedOptions = utils.mergeOptions(defaultOptions, userOptions); - var options = utils.mergeOptions(mergedOptions, { - 'interval': .1, - 'numFrames': 1, - 'gifWidth': Math.floor(mergedOptions.gifWidth), - 'gifHeight': Math.floor(mergedOptions.gifHeight) - }); - - createGIF(options, callback); - } - - /* - API.js - ====== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Dependencies - var API = { - 'utils': utils$2, - 'error': error$2, - 'defaultOptions': defaultOptions$2, - 'createGIF': createGIF, - 'takeSnapShot': takeSnapShot, - 'stopVideoStreaming': stopVideoStreaming, - 'isSupported': isSupported, - 'isWebCamGIFSupported': isWebCamGIFSupported, - 'isExistingVideoGIFSupported': isExistingVideoGIFSupported, - 'isExistingImagesGIFSupported': isSupported$1, - 'VERSION': '0.4.5' - }; - - /* - index.js - ======== - */ - - /* Copyright 2017 Yahoo Inc. - * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. - */ - - // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, and plain browser loading - if (typeof undefined$1 === 'function' && undefined$1.amd) { - undefined$1([], function () { - return API; - }); - } else { - module.exports = API; - } - }(typeof window !== "undefined" ? window : {}, typeof document !== "undefined" ? document : { createElement: function() {} }, typeof window !== "undefined" ? window.navigator : {})); - }); - - var b64toBlob = createCommonjsModule(function (module) { - (function(root, globalName, factory) { - if ( module.exports) { - // Node: - module.exports = factory(); - // Use module export as simulated ES6 default export: - module.exports.default = module.exports; - } else { - // Browser: - window[globalName] = factory(); - } - }(commonjsGlobal, 'b64toBlob', function() { - - return function b64toBlob(b64Data, contentType, sliceSize) { - contentType = contentType || ''; - sliceSize = sliceSize || 512; - - var byteCharacters = atob(b64Data); - var byteArrays = []; - - for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { - var slice = byteCharacters.slice(offset, offset + sliceSize); - - var byteNumbers = new Array(slice.length); - for (var i = 0; i < slice.length; i++) { - byteNumbers[i] = slice.charCodeAt(i); - } - - var byteArray = new Uint8Array(byteNumbers); - - byteArrays.push(byteArray); - } - - var blob = new Blob(byteArrays, {type: contentType}); - return blob; - }; - })); - }); - - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function artplayerPluginGif(art) { - var _art$constructor$util = art.constructor.utils, - errorHandle = _art$constructor$util.errorHandle, - clamp = _art$constructor$util.clamp, - downloadFile = _art$constructor$util.downloadFile; - var i18n = art.i18n, - notice = art.notice, - layers = art.layers, - player = art.player, - loading = art.loading, - _art$option = art.option, - theme = _art$option.theme, - title = _art$option.title, - proxy = art.events.proxy, - $video = art.template.$video; - i18n.update({ - 'zh-cn': { - 'Long press, gif length is between 1 second and 10 seconds': '长按,gif 长度为 1 ~ 10 秒', - 'Gif time is too short': 'Gif 时间太短', - 'Start creating gif...': '开始创建 gif...', - 'Create gif successfully': '创建 gif 成功', - 'There is another gif in the processing': '正有另一个 gif 在创建中', - 'Release the mouse to start': '放开鼠标即可开始' - }, - 'zh-tw': { - 'Long press, gif length is between 1 second and 10 seconds': '長按,gif 長度為 1 ~ 10 秒', - 'Gif time is too short': 'Gif 時間太短', - 'Start creating gif...': '開始創建 gif...', - 'Create gif successfully': '創建 gif 成功', - 'There is another gif in the processing': '正有另一個 gif 在創建中', - 'Release the mouse to start': '放開鼠標即可開始' - } - }); - var $progress = null; - layers.add({ - name: 'artplayer-plugin-gif-progress', - style: { - position: 'absolute', - top: '0', - left: '0', - height: '2px', - width: '0%', - 'background-color': theme - }, - mounted: function mounted($ref) { - $progress = $ref; - } - }); - var timeLimit = 10000; - var isProcessing = false; - var pressStartTime = 0; - var progressTimer = null; - var isPress = false; - var offset = 0; - art.on('destroy', function () { - if (progressTimer) { - clearTimeout(progressTimer); - } - }); - - function cleanTimer() { - $progress.style.width = '0%'; - clearTimeout(progressTimer); - progressTimer = null; - } - - function createGif() { - cleanTimer(); - var pressTime = new Date() - pressStartTime; - - if (isProcessing) { - notice.show = i18n.get('There is another gif in the processing'); - } else if (pressTime < 1000) { - notice.show = i18n.get('Gif time is too short'); - } else { - var numFrames = Math.floor(clamp(pressTime, 1000, timeLimit) / 100); - var videoWidth = $video.videoWidth, - videoHeight = $video.videoHeight; - art.plugins.artplayerPluginGif.create({ - numFrames: numFrames, - offset: Math.floor(offset), - gifHeight: 200, - gifWidth: videoWidth / videoHeight * 200 - }, function (image) { - downloadFile(image, "".concat(title || 'unnamed', ".gif")); - }); - } - } - - return { - name: 'artplayerPluginGif', - attach: function attach($gif) { - proxy($gif, 'mousedown', function () { - isPress = true; - cleanTimer(); - offset = player.currentTime; - pressStartTime = new Date(); - notice.show = i18n.get('Long press, gif length is between 1 second and 10 seconds'); - - (function loop() { - progressTimer = setTimeout(function () { - var width = parseInt($progress.style.width, 10); - - if (width <= 100) { - $progress.style.width = "".concat(width + 1, "%"); - loop(); - } else { - notice.show = i18n.get('Release the mouse to start'); - } - }, timeLimit / 100); - })(); - }); - proxy(document, 'mouseup', function () { - if (isPress) { - isPress = false; - createGif(); - offset = 0; - } - }); - }, - create: function create() { - var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var callback = arguments.length > 1 ? arguments[1] : undefined; - isProcessing = true; - loading.show = true; - art.emit('artplayerPluginGif:start'); - notice.show = i18n.get('Start creating gif...'); - gifshot.createGIF(_objectSpread(_objectSpread({}, config), {}, { - video: [$video.src], - crossOrigin: 'anonymous' - }), function (obj) { - if (obj.error) { - notice.show = obj.errorMsg; - errorHandle(false, obj.errorMsg); - } else if (typeof callback === 'function') { - var base64String = obj.image.split(',')[1]; - var blob = b64toBlob(base64String, 'image/gif'); - var blobUrl = URL.createObjectURL(blob); - notice.show = i18n.get('Create gif successfully'); - art.emit('artplayerPluginGif', blobUrl); - callback(blobUrl); - } - - isProcessing = false; - loading.show = false; - art.emit('artplayerPluginGif:end'); - }); - } - }; - } - - return artplayerPluginGif; - -}))); -//# sourceMappingURL=artplayer-plugin-gif.js.map diff --git a/docs/uncompiled/artplayer-plugin-gif.js.map b/docs/uncompiled/artplayer-plugin-gif.js.map deleted file mode 100644 index 04e174043..000000000 --- a/docs/uncompiled/artplayer-plugin-gif.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"artplayer-plugin-gif.js","sources":["../../node_modules/_@babel_runtime@7.12.5@@babel/runtime/helpers/defineProperty.js","../../packages/artplayer-plugin-gif/node_modules/gifshot/dist/gifshot.js","../../packages/artplayer-plugin-gif/node_modules/b64-to-blob/b64toBlob.js","../../packages/artplayer-plugin-gif/src/index.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","/*Copyrights for code authored by Yahoo Inc. is licensed under the following terms:\nMIT License\nCopyright 2017 Yahoo Inc.\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n;(function(window, document, navigator, undefined) {\n\"use strict\";\n\n/*\n utils.js\n ========\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\nvar utils = {\n URL: window.URL || window.webkitURL || window.mozURL || window.msURL,\n getUserMedia: function () {\n var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;\n\n return getUserMedia ? getUserMedia.bind(navigator) : getUserMedia;\n }(),\n requestAnimFrame: window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame,\n requestTimeout: function requestTimeout(callback, delay) {\n callback = callback || utils.noop;\n delay = delay || 0;\n\n if (!utils.requestAnimFrame) {\n return setTimeout(callback, delay);\n }\n\n var start = new Date().getTime();\n var handle = new Object();\n var requestAnimFrame = utils.requestAnimFrame;\n\n var loop = function loop() {\n var current = new Date().getTime();\n var delta = current - start;\n\n delta >= delay ? callback.call() : handle.value = requestAnimFrame(loop);\n };\n\n handle.value = requestAnimFrame(loop);\n\n return handle;\n },\n Blob: window.Blob || window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder,\n btoa: function () {\n var btoa = window.btoa || function (input) {\n var output = '';\n var i = 0;\n var l = input.length;\n var key = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var chr1 = void 0;\n var chr2 = void 0;\n var chr3 = void 0;\n var enc1 = void 0;\n var enc2 = void 0;\n var enc3 = void 0;\n var enc4 = void 0;\n\n while (i < l) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + key.charAt(enc1) + key.charAt(enc2) + key.charAt(enc3) + key.charAt(enc4);\n }\n\n return output;\n };\n\n return btoa ? btoa.bind(window) : utils.noop;\n }(),\n isObject: function isObject(obj) {\n return obj && Object.prototype.toString.call(obj) === '[object Object]';\n },\n isEmptyObject: function isEmptyObject(obj) {\n return utils.isObject(obj) && !Object.keys(obj).length;\n },\n isArray: function isArray(arr) {\n return arr && Array.isArray(arr);\n },\n isFunction: function isFunction(func) {\n return func && typeof func === 'function';\n },\n isElement: function isElement(elem) {\n return elem && elem.nodeType === 1;\n },\n isString: function isString(value) {\n return typeof value === 'string' || Object.prototype.toString.call(value) === '[object String]';\n },\n isSupported: {\n canvas: function canvas() {\n var el = document.createElement('canvas');\n\n return el && el.getContext && el.getContext('2d');\n },\n webworkers: function webworkers() {\n return window.Worker;\n },\n blob: function blob() {\n return utils.Blob;\n },\n Uint8Array: function Uint8Array() {\n return window.Uint8Array;\n },\n Uint32Array: function Uint32Array() {\n return window.Uint32Array;\n },\n videoCodecs: function () {\n var testEl = document.createElement('video');\n var supportObj = {\n 'mp4': false,\n 'h264': false,\n 'ogv': false,\n 'ogg': false,\n 'webm': false\n };\n\n try {\n if (testEl && testEl.canPlayType) {\n // Check for MPEG-4 support\n supportObj.mp4 = testEl.canPlayType('video/mp4; codecs=\"mp4v.20.8\"') !== '';\n\n // Check for h264 support\n supportObj.h264 = (testEl.canPlayType('video/mp4; codecs=\"avc1.42E01E\"') || testEl.canPlayType('video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"')) !== '';\n\n // Check for Ogv support\n supportObj.ogv = testEl.canPlayType('video/ogg; codecs=\"theora\"') !== '';\n\n // Check for Ogg support\n supportObj.ogg = testEl.canPlayType('video/ogg; codecs=\"theora\"') !== '';\n\n // Check for Webm support\n supportObj.webm = testEl.canPlayType('video/webm; codecs=\"vp8, vorbis\"') !== -1;\n }\n } catch (e) {}\n\n return supportObj;\n }()\n },\n noop: function noop() {},\n each: function each(collection, callback) {\n var x = void 0;\n var len = void 0;\n\n if (utils.isArray(collection)) {\n x = -1;\n len = collection.length;\n\n while (++x < len) {\n if (callback(x, collection[x]) === false) {\n break;\n }\n }\n } else if (utils.isObject(collection)) {\n for (x in collection) {\n if (collection.hasOwnProperty(x)) {\n if (callback(x, collection[x]) === false) {\n break;\n }\n }\n }\n }\n },\n mergeOptions: function mergeOptions(defaultOptions, userOptions) {\n if (!utils.isObject(defaultOptions) || !utils.isObject(userOptions) || !Object.keys) {\n return;\n }\n\n var newObj = {};\n\n utils.each(defaultOptions, function (key, val) {\n newObj[key] = defaultOptions[key];\n });\n\n utils.each(userOptions, function (key, val) {\n var currentUserOption = userOptions[key];\n\n if (!utils.isObject(currentUserOption)) {\n newObj[key] = currentUserOption;\n } else {\n if (!defaultOptions[key]) {\n newObj[key] = currentUserOption;\n } else {\n newObj[key] = utils.mergeOptions(defaultOptions[key], currentUserOption);\n }\n }\n });\n\n return newObj;\n },\n setCSSAttr: function setCSSAttr(elem, attr, val) {\n if (!utils.isElement(elem)) {\n return;\n }\n\n if (utils.isString(attr) && utils.isString(val)) {\n elem.style[attr] = val;\n } else if (utils.isObject(attr)) {\n utils.each(attr, function (key, val) {\n elem.style[key] = val;\n });\n }\n },\n removeElement: function removeElement(node) {\n if (!utils.isElement(node)) {\n return;\n }\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n },\n createWebWorker: function createWebWorker(content) {\n if (!utils.isString(content)) {\n return {};\n }\n\n try {\n var blob = new utils.Blob([content], {\n 'type': 'text/javascript'\n });\n var objectUrl = utils.URL.createObjectURL(blob);\n var worker = new Worker(objectUrl);\n\n return {\n 'objectUrl': objectUrl,\n 'worker': worker\n };\n } catch (e) {\n return '' + e;\n }\n },\n getExtension: function getExtension(src) {\n return src.substr(src.lastIndexOf('.') + 1, src.length);\n },\n getFontSize: function getFontSize() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!document.body || options.resizeFont === false) {\n return options.fontSize;\n }\n\n var text = options.text;\n var containerWidth = options.gifWidth;\n var fontSize = parseInt(options.fontSize, 10);\n var minFontSize = parseInt(options.minFontSize, 10);\n var div = document.createElement('div');\n var span = document.createElement('span');\n\n div.setAttribute('width', containerWidth);\n div.appendChild(span);\n\n span.innerHTML = text;\n span.style.fontSize = fontSize + 'px';\n span.style.textIndent = '-9999px';\n span.style.visibility = 'hidden';\n\n document.body.appendChild(span);\n\n while (span.offsetWidth > containerWidth && fontSize >= minFontSize) {\n span.style.fontSize = --fontSize + 'px';\n }\n\n document.body.removeChild(span);\n\n return fontSize + 'px';\n },\n webWorkerError: false\n};\n\n\n\nvar utils$2 = Object.freeze({\n\tdefault: utils\n});\n\n/*\n error.js\n ========\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nvar error = {\n validate: function validate(skipObj) {\n skipObj = utils.isObject(skipObj) ? skipObj : {};\n\n var errorObj = {};\n\n utils.each(error.validators, function (indece, currentValidator) {\n var errorCode = currentValidator.errorCode;\n\n if (!skipObj[errorCode] && !currentValidator.condition) {\n errorObj = currentValidator;\n errorObj.error = true;\n\n return false;\n }\n });\n\n delete errorObj.condition;\n\n return errorObj;\n },\n isValid: function isValid(skipObj) {\n var errorObj = error.validate(skipObj);\n var isValid = errorObj.error !== true ? true : false;\n\n return isValid;\n },\n validators: [{\n condition: utils.isFunction(utils.getUserMedia),\n errorCode: 'getUserMedia',\n errorMsg: 'The getUserMedia API is not supported in your browser'\n }, {\n condition: utils.isSupported.canvas(),\n errorCode: 'canvas',\n errorMsg: 'Canvas elements are not supported in your browser'\n }, {\n condition: utils.isSupported.webworkers(),\n errorCode: 'webworkers',\n errorMsg: 'The Web Workers API is not supported in your browser'\n }, {\n condition: utils.isFunction(utils.URL),\n errorCode: 'window.URL',\n errorMsg: 'The window.URL API is not supported in your browser'\n }, {\n condition: utils.isSupported.blob(),\n errorCode: 'window.Blob',\n errorMsg: 'The window.Blob File API is not supported in your browser'\n }, {\n condition: utils.isSupported.Uint8Array(),\n errorCode: 'window.Uint8Array',\n errorMsg: 'The window.Uint8Array function constructor is not supported in your browser'\n }, {\n condition: utils.isSupported.Uint32Array(),\n errorCode: 'window.Uint32Array',\n errorMsg: 'The window.Uint32Array function constructor is not supported in your browser'\n }],\n messages: {\n videoCodecs: {\n errorCode: 'videocodec',\n errorMsg: 'The video codec you are trying to use is not supported in your browser'\n }\n }\n};\n\n\n\nvar error$2 = Object.freeze({\n\tdefault: error\n});\n\n/*\n defaultOptions.js\n =================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Helpers\nvar noop = function noop() {};\n\nvar defaultOptions = {\n sampleInterval: 10,\n numWorkers: 2,\n filter: '',\n gifWidth: 200,\n gifHeight: 200,\n interval: 0.1,\n numFrames: 10,\n frameDuration: 1,\n keepCameraOn: false,\n images: [],\n video: null,\n webcamVideoElement: null,\n cameraStream: null,\n text: '',\n fontWeight: 'normal',\n fontSize: '16px',\n minFontSize: '10px',\n resizeFont: false,\n fontFamily: 'sans-serif',\n fontColor: '#ffffff',\n textAlign: 'center',\n textBaseline: 'bottom',\n textXCoordinate: null,\n textYCoordinate: null,\n progressCallback: noop,\n completeCallback: noop,\n saveRenderingContexts: false,\n savedRenderingContexts: [],\n crossOrigin: 'Anonymous'\n};\n\n\n\nvar defaultOptions$2 = Object.freeze({\n\tdefault: defaultOptions\n});\n\n/*\n isSupported.js\n ==============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nfunction isSupported() {\n return error.isValid();\n}\n\n/*\n isWebCamGIFSupported.js\n =======================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\nfunction isWebCamGIFSupported() {\n return error.isValid();\n}\n\n/*\n isSupported.js\n ==============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nfunction isSupported$1() {\n var options = {\n getUserMedia: true\n };\n\n return error.isValid(options);\n}\n\n/*\n isExistingVideoGIFSupported.js\n ==============================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nfunction isExistingVideoGIFSupported(codecs) {\n var hasValidCodec = false;\n\n if (utils.isArray(codecs) && codecs.length) {\n utils.each(codecs, function (indece, currentCodec) {\n if (utils.isSupported.videoCodecs[currentCodec]) {\n hasValidCodec = true;\n }\n });\n\n if (!hasValidCodec) {\n return false;\n }\n } else if (utils.isString(codecs) && codecs.length) {\n if (!utils.isSupported.videoCodecs[codecs]) {\n return false;\n }\n }\n\n return error.isValid({\n 'getUserMedia': true\n });\n}\n\n/*\n NeuQuant.js\n ===========\n*/\n\n/*\n * NeuQuant Neural-Net Quantization Algorithm\n * ------------------------------------------\n *\n * Copyright (c) 1994 Anthony Dekker\n *\n * NEUQUANT Neural-Net quantization algorithm by Anthony Dekker, 1994. See\n * \"Kohonen neural networks for optimal colour quantization\" in \"Network:\n * Computation in Neural Systems\" Vol. 5 (1994) pp 351-367. for a discussion of\n * the algorithm.\n *\n * Any party obtaining a copy of these files from the author, directly or\n * indirectly, is granted, free of charge, a full and unrestricted irrevocable,\n * world-wide, paid up, royalty-free, nonexclusive right and license to deal in\n * this software and documentation files (the \"Software\"), including without\n * limitation the rights to use, copy, modify, merge, publish, distribute,\n * sublicense, and/or sell copies of the Software, and to permit persons who\n * receive copies from any such party to do so, with the only requirement being\n * that this copyright notice remain intact.\n */\n\n/*\n * This class handles Neural-Net quantization algorithm\n * @author Kevin Weiner (original Java version - kweiner@fmsware.com)\n * @author Thibault Imbert (AS3 version - bytearray.org)\n * @version 0.1 AS3 implementation\n * @version 0.2 JS->AS3 \"translation\" by antimatter15\n * @version 0.3 JS clean up + using modern JS idioms by sole - http://soledadpenades.com\n * Also implement fix in color conversion described at http://stackoverflow.com/questions/16371712/neuquant-js-javascript-color-quantization-hidden-bug-in-js-conversion\n */\n\nfunction NeuQuant() {\n var netsize = 256; // number of colours used\n\n // four primes near 500 - assume no image has a length so large\n // that it is divisible by all four primes\n var prime1 = 499;\n var prime2 = 491;\n var prime3 = 487;\n var prime4 = 503;\n\n // minimum size for input image\n var minpicturebytes = 3 * prime4;\n\n // Network Definitions\n\n var maxnetpos = netsize - 1;\n var netbiasshift = 4; // bias for colour values\n var ncycles = 100; // no. of learning cycles\n\n // defs for freq and bias\n var intbiasshift = 16; // bias for fractions\n var intbias = 1 << intbiasshift;\n var gammashift = 10; // gamma = 1024\n var gamma = 1 << gammashift;\n var betashift = 10;\n var beta = intbias >> betashift; // beta = 1/1024\n var betagamma = intbias << gammashift - betashift;\n\n // defs for decreasing radius factor\n // For 256 colors, radius starts at 32.0 biased by 6 bits\n // and decreases by a factor of 1/30 each cycle\n var initrad = netsize >> 3;\n var radiusbiasshift = 6;\n var radiusbias = 1 << radiusbiasshift;\n var initradius = initrad * radiusbias;\n var radiusdec = 30;\n\n // defs for decreasing alpha factor\n // Alpha starts at 1.0 biased by 10 bits\n var alphabiasshift = 10;\n var initalpha = 1 << alphabiasshift;\n var alphadec;\n\n // radbias and alpharadbias used for radpower calculation\n var radbiasshift = 8;\n var radbias = 1 << radbiasshift;\n var alpharadbshift = alphabiasshift + radbiasshift;\n var alpharadbias = 1 << alpharadbshift;\n\n // Input image\n var thepicture;\n // Height * Width * 3\n var lengthcount;\n // Sampling factor 1..30\n var samplefac;\n\n // The network itself\n var network;\n var netindex = [];\n\n // for network lookup - really 256\n var bias = [];\n\n // bias and freq arrays for learning\n var freq = [];\n var radpower = [];\n\n function NeuQuantConstructor(thepic, len, sample) {\n\n var i;\n var p;\n\n thepicture = thepic;\n lengthcount = len;\n samplefac = sample;\n\n network = new Array(netsize);\n\n for (i = 0; i < netsize; i++) {\n network[i] = new Array(4);\n p = network[i];\n p[0] = p[1] = p[2] = (i << netbiasshift + 8) / netsize | 0;\n freq[i] = intbias / netsize | 0; // 1 / netsize\n bias[i] = 0;\n }\n }\n\n function colorMap() {\n var map = [];\n var index = new Array(netsize);\n for (var i = 0; i < netsize; i++) {\n index[network[i][3]] = i;\n }var k = 0;\n for (var l = 0; l < netsize; l++) {\n var j = index[l];\n map[k++] = network[j][0];\n map[k++] = network[j][1];\n map[k++] = network[j][2];\n }\n return map;\n }\n\n // Insertion sort of network and building of netindex[0..255]\n // (to do after unbias)\n function inxbuild() {\n var i;\n var j;\n var smallpos;\n var smallval;\n var p;\n var q;\n var previouscol;\n var startpos;\n\n previouscol = 0;\n startpos = 0;\n\n for (i = 0; i < netsize; i++) {\n\n p = network[i];\n smallpos = i;\n smallval = p[1]; // index on g\n // find smallest in i..netsize-1\n for (j = i + 1; j < netsize; j++) {\n\n q = network[j];\n\n if (q[1] < smallval) {\n // index on g\n smallpos = j;\n smallval = q[1]; // index on g\n }\n }\n\n q = network[smallpos];\n\n // swap p (i) and q (smallpos) entries\n if (i != smallpos) {\n j = q[0];\n q[0] = p[0];\n p[0] = j;\n j = q[1];\n q[1] = p[1];\n p[1] = j;\n j = q[2];\n q[2] = p[2];\n p[2] = j;\n j = q[3];\n q[3] = p[3];\n p[3] = j;\n }\n\n // smallval entry is now in position i\n if (smallval != previouscol) {\n\n netindex[previouscol] = startpos + i >> 1;\n\n for (j = previouscol + 1; j < smallval; j++) {\n netindex[j] = i;\n }\n\n previouscol = smallval;\n startpos = i;\n }\n }\n\n netindex[previouscol] = startpos + maxnetpos >> 1;\n for (j = previouscol + 1; j < 256; j++) {\n netindex[j] = maxnetpos; // really 256\n }\n }\n\n // Main Learning Loop\n\n function learn() {\n var i;\n var j;\n var b;\n var g;\n var r;\n var radius;\n var rad;\n var alpha;\n var step;\n var delta;\n var samplepixels;\n var p;\n var pix;\n var lim;\n\n if (lengthcount < minpicturebytes) {\n samplefac = 1;\n }\n\n alphadec = 30 + (samplefac - 1) / 3;\n p = thepicture;\n pix = 0;\n lim = lengthcount;\n samplepixels = lengthcount / (3 * samplefac);\n delta = samplepixels / ncycles | 0;\n alpha = initalpha;\n radius = initradius;\n\n rad = radius >> radiusbiasshift;\n if (rad <= 1) {\n rad = 0;\n }\n\n for (i = 0; i < rad; i++) {\n radpower[i] = alpha * ((rad * rad - i * i) * radbias / (rad * rad));\n }\n\n if (lengthcount < minpicturebytes) {\n step = 3;\n } else if (lengthcount % prime1 !== 0) {\n step = 3 * prime1;\n } else {\n\n if (lengthcount % prime2 !== 0) {\n step = 3 * prime2;\n } else {\n if (lengthcount % prime3 !== 0) {\n step = 3 * prime3;\n } else {\n step = 3 * prime4;\n }\n }\n }\n\n i = 0;\n\n while (i < samplepixels) {\n\n b = (p[pix + 0] & 0xff) << netbiasshift;\n g = (p[pix + 1] & 0xff) << netbiasshift;\n r = (p[pix + 2] & 0xff) << netbiasshift;\n j = contest(b, g, r);\n\n altersingle(alpha, j, b, g, r);\n\n if (rad !== 0) {\n // Alter neighbours\n alterneigh(rad, j, b, g, r);\n }\n\n pix += step;\n\n if (pix >= lim) {\n pix -= lengthcount;\n }\n\n i++;\n\n if (delta === 0) {\n delta = 1;\n }\n\n if (i % delta === 0) {\n alpha -= alpha / alphadec;\n radius -= radius / radiusdec;\n rad = radius >> radiusbiasshift;\n\n if (rad <= 1) {\n rad = 0;\n }\n\n for (j = 0; j < rad; j++) {\n radpower[j] = alpha * ((rad * rad - j * j) * radbias / (rad * rad));\n }\n }\n }\n }\n\n // Search for BGR values 0..255 (after net is unbiased) and return colour index\n function map(b, g, r) {\n var i;\n var j;\n var dist;\n var a;\n var bestd;\n var p;\n var best;\n\n // Biggest possible distance is 256 * 3\n bestd = 1000;\n best = -1;\n i = netindex[g]; // index on g\n j = i - 1; // start at netindex[g] and work outwards\n\n while (i < netsize || j >= 0) {\n\n if (i < netsize) {\n\n p = network[i];\n\n dist = p[1] - g; // inx key\n\n if (dist >= bestd) {\n i = netsize; // stop iter\n } else {\n\n i++;\n\n if (dist < 0) {\n dist = -dist;\n }\n\n a = p[0] - b;\n\n if (a < 0) {\n a = -a;\n }\n\n dist += a;\n\n if (dist < bestd) {\n a = p[2] - r;\n\n if (a < 0) {\n a = -a;\n }\n\n dist += a;\n\n if (dist < bestd) {\n bestd = dist;\n best = p[3];\n }\n }\n }\n }\n\n if (j >= 0) {\n\n p = network[j];\n\n dist = g - p[1]; // inx key - reverse dif\n\n if (dist >= bestd) {\n j = -1; // stop iter\n } else {\n\n j--;\n if (dist < 0) {\n dist = -dist;\n }\n a = p[0] - b;\n if (a < 0) {\n a = -a;\n }\n dist += a;\n\n if (dist < bestd) {\n a = p[2] - r;\n if (a < 0) {\n a = -a;\n }\n dist += a;\n if (dist < bestd) {\n bestd = dist;\n best = p[3];\n }\n }\n }\n }\n }\n\n return best;\n }\n\n function process() {\n learn();\n unbiasnet();\n inxbuild();\n return colorMap();\n }\n\n // Unbias network to give byte values 0..255 and record position i\n // to prepare for sort\n function unbiasnet() {\n var i;\n var j;\n\n for (i = 0; i < netsize; i++) {\n network[i][0] >>= netbiasshift;\n network[i][1] >>= netbiasshift;\n network[i][2] >>= netbiasshift;\n network[i][3] = i; // record colour no\n }\n }\n\n // Move adjacent neurons by precomputed alpha*(1-((i-j)^2/[r]^2))\n // in radpower[|i-j|]\n function alterneigh(rad, i, b, g, r) {\n\n var j;\n var k;\n var lo;\n var hi;\n var a;\n var m;\n\n var p;\n\n lo = i - rad;\n if (lo < -1) {\n lo = -1;\n }\n\n hi = i + rad;\n\n if (hi > netsize) {\n hi = netsize;\n }\n\n j = i + 1;\n k = i - 1;\n m = 1;\n\n while (j < hi || k > lo) {\n\n a = radpower[m++];\n\n if (j < hi) {\n\n p = network[j++];\n\n try {\n\n p[0] -= a * (p[0] - b) / alpharadbias | 0;\n p[1] -= a * (p[1] - g) / alpharadbias | 0;\n p[2] -= a * (p[2] - r) / alpharadbias | 0;\n } catch (e) {}\n }\n\n if (k > lo) {\n\n p = network[k--];\n\n try {\n\n p[0] -= a * (p[0] - b) / alpharadbias | 0;\n p[1] -= a * (p[1] - g) / alpharadbias | 0;\n p[2] -= a * (p[2] - r) / alpharadbias | 0;\n } catch (e) {}\n }\n }\n }\n\n // Move neuron i towards biased (b,g,r) by factor alpha\n function altersingle(alpha, i, b, g, r) {\n\n // alter hit neuron\n var n = network[i];\n var alphaMult = alpha / initalpha;\n n[0] -= alphaMult * (n[0] - b) | 0;\n n[1] -= alphaMult * (n[1] - g) | 0;\n n[2] -= alphaMult * (n[2] - r) | 0;\n }\n\n // Search for biased BGR values\n function contest(b, g, r) {\n\n // finds closest neuron (min dist) and updates freq\n // finds best neuron (min dist-bias) and returns position\n // for frequently chosen neurons, freq[i] is high and bias[i] is negative\n // bias[i] = gamma*((1/netsize)-freq[i])\n\n var i;\n var dist;\n var a;\n var biasdist;\n var betafreq;\n var bestpos;\n var bestbiaspos;\n var bestd;\n var bestbiasd;\n var n;\n\n bestd = ~(1 << 31);\n bestbiasd = bestd;\n bestpos = -1;\n bestbiaspos = bestpos;\n\n for (i = 0; i < netsize; i++) {\n\n n = network[i];\n dist = n[0] - b;\n\n if (dist < 0) {\n dist = -dist;\n }\n\n a = n[1] - g;\n\n if (a < 0) {\n a = -a;\n }\n\n dist += a;\n\n a = n[2] - r;\n\n if (a < 0) {\n a = -a;\n }\n\n dist += a;\n\n if (dist < bestd) {\n bestd = dist;\n bestpos = i;\n }\n\n biasdist = dist - (bias[i] >> intbiasshift - netbiasshift);\n\n if (biasdist < bestbiasd) {\n bestbiasd = biasdist;\n bestbiaspos = i;\n }\n\n betafreq = freq[i] >> betashift;\n freq[i] -= betafreq;\n bias[i] += betafreq << gammashift;\n }\n\n freq[bestpos] += beta;\n bias[bestpos] -= betagamma;\n return bestbiaspos;\n }\n\n NeuQuantConstructor.apply(this, arguments);\n\n var exports = {};\n exports.map = map;\n exports.process = process;\n\n return exports;\n}\n\n/*\n processFrameWorker.js\n =====================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\nfunction workerCode() {\n var self = this;\n\n try {\n self.onmessage = function (ev) {\n var data = ev.data || {};\n var response;\n\n if (data.gifshot) {\n response = workerMethods.run(data);\n postMessage(response);\n }\n };\n } catch (e) {}\n\n var workerMethods = {\n dataToRGB: function dataToRGB(data, width, height) {\n var length = width * height * 4;\n var i = 0;\n var rgb = [];\n\n while (i < length) {\n rgb.push(data[i++]);\n rgb.push(data[i++]);\n rgb.push(data[i++]);\n i++; // for the alpha channel which we don't care about\n }\n\n return rgb;\n },\n componentizedPaletteToArray: function componentizedPaletteToArray(paletteRGB) {\n paletteRGB = paletteRGB || [];\n\n var paletteArray = [];\n\n for (var i = 0; i < paletteRGB.length; i += 3) {\n var r = paletteRGB[i];\n var g = paletteRGB[i + 1];\n var b = paletteRGB[i + 2];\n\n paletteArray.push(r << 16 | g << 8 | b);\n }\n\n return paletteArray;\n },\n // This is the \"traditional\" Animated_GIF style of going from RGBA to indexed color frames\n 'processFrameWithQuantizer': function processFrameWithQuantizer(imageData, width, height, sampleInterval) {\n var rgbComponents = this.dataToRGB(imageData, width, height);\n var nq = new NeuQuant(rgbComponents, rgbComponents.length, sampleInterval);\n var paletteRGB = nq.process();\n var paletteArray = new Uint32Array(this.componentizedPaletteToArray(paletteRGB));\n var numberPixels = width * height;\n var indexedPixels = new Uint8Array(numberPixels);\n var k = 0;\n\n for (var i = 0; i < numberPixels; i++) {\n var r = rgbComponents[k++];\n var g = rgbComponents[k++];\n var b = rgbComponents[k++];\n\n indexedPixels[i] = nq.map(r, g, b);\n }\n\n return {\n pixels: indexedPixels,\n palette: paletteArray\n };\n },\n 'run': function run(frame) {\n frame = frame || {};\n\n var _frame = frame,\n height = _frame.height,\n palette = _frame.palette,\n sampleInterval = _frame.sampleInterval,\n width = _frame.width;\n\n var imageData = frame.data;\n\n return this.processFrameWithQuantizer(imageData, width, height, sampleInterval);\n }\n };\n\n return workerMethods;\n}\n\n/*\n gifWriter.js\n ============\n*/\n\n// (c) Dean McNamee , 2013.\n//\n// https://github.com/deanm/omggif\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n//\n// omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n// including animation and compression. It does not rely on any specific\n// underlying system, so should run in the browser, Node, or Plask.\n\nfunction gifWriter(buf, width, height, gopts) {\n var p = 0;\n\n gopts = gopts === undefined ? {} : gopts;\n var loop_count = gopts.loop === undefined ? null : gopts.loop;\n var global_palette = gopts.palette === undefined ? null : gopts.palette;\n\n if (width <= 0 || height <= 0 || width > 65535 || height > 65535) throw \"Width/Height invalid.\";\n\n function check_palette_and_num_colors(palette) {\n var num_colors = palette.length;\n\n if (num_colors < 2 || num_colors > 256 || num_colors & num_colors - 1) throw \"Invalid code/color length, must be power of 2 and 2 .. 256.\";\n return num_colors;\n }\n\n // - Header.\n buf[p++] = 0x47;\n buf[p++] = 0x49;\n buf[p++] = 0x46; // GIF\n buf[p++] = 0x38;\n buf[p++] = 0x39;\n buf[p++] = 0x61; // 89a\n\n // Handling of Global Color Table (palette) and background index.\n var gp_num_colors_pow2 = 0;\n var background = 0;\n\n // - Logical Screen Descriptor.\n // NOTE(deanm): w/h apparently ignored by implementations, but set anyway.\n buf[p++] = width & 0xff;\n buf[p++] = width >> 8 & 0xff;\n buf[p++] = height & 0xff;\n buf[p++] = height >> 8 & 0xff;\n // NOTE: Indicates 0-bpp original color resolution (unused?).\n buf[p++] = (global_palette !== null ? 0x80 : 0) | // Global Color Table Flag.\n gp_num_colors_pow2; // NOTE: No sort flag (unused?).\n buf[p++] = background; // Background Color Index.\n buf[p++] = 0; // Pixel aspect ratio (unused?).\n\n if (loop_count !== null) {\n // Netscape block for looping.\n if (loop_count < 0 || loop_count > 65535) throw \"Loop count invalid.\";\n\n // Extension code, label, and length.\n buf[p++] = 0x21;\n buf[p++] = 0xff;\n buf[p++] = 0x0b;\n // NETSCAPE2.0\n buf[p++] = 0x4e;\n buf[p++] = 0x45;\n buf[p++] = 0x54;\n buf[p++] = 0x53;\n buf[p++] = 0x43;\n buf[p++] = 0x41;\n buf[p++] = 0x50;\n buf[p++] = 0x45;\n buf[p++] = 0x32;\n buf[p++] = 0x2e;\n buf[p++] = 0x30;\n // Sub-block\n buf[p++] = 0x03;\n buf[p++] = 0x01;\n buf[p++] = loop_count & 0xff;\n buf[p++] = loop_count >> 8 & 0xff;\n buf[p++] = 0x00; // Terminator.\n }\n\n var ended = false;\n\n this.addFrame = function (x, y, w, h, indexed_pixels, opts) {\n if (ended === true) {\n --p;\n ended = false;\n } // Un-end.\n\n opts = opts === undefined ? {} : opts;\n\n // TODO(deanm): Bounds check x, y. Do they need to be within the virtual\n // canvas width/height, I imagine?\n if (x < 0 || y < 0 || x > 65535 || y > 65535) throw \"x/y invalid.\";\n\n if (w <= 0 || h <= 0 || w > 65535 || h > 65535) throw \"Width/Height invalid.\";\n\n if (indexed_pixels.length < w * h) throw \"Not enough pixels for the frame size.\";\n\n var using_local_palette = true;\n var palette = opts.palette;\n if (palette === undefined || palette === null) {\n using_local_palette = false;\n palette = global_palette;\n }\n\n if (palette === undefined || palette === null) throw \"Must supply either a local or global palette.\";\n\n var num_colors = check_palette_and_num_colors(palette);\n\n // Compute the min_code_size (power of 2), destroying num_colors.\n var min_code_size = 0;\n while (num_colors >>= 1) {\n ++min_code_size;\n }num_colors = 1 << min_code_size; // Now we can easily get it back.\n\n var delay = opts.delay === undefined ? 0 : opts.delay;\n\n // From the spec:\n // 0 - No disposal specified. The decoder is\n // not required to take any action.\n // 1 - Do not dispose. The graphic is to be left\n // in place.\n // 2 - Restore to background color. The area used by the\n // graphic must be restored to the background color.\n // 3 - Restore to previous. The decoder is required to\n // restore the area overwritten by the graphic with\n // what was there prior to rendering the graphic.\n // 4-7 - To be defined.\n // NOTE(deanm): Dispose background doesn't really work, apparently most\n // browsers ignore the background palette index and clear to transparency.\n var disposal = opts.disposal === undefined ? 0 : opts.disposal;\n if (disposal < 0 || disposal > 3) // 4-7 is reserved.\n throw \"Disposal out of range.\";\n\n var use_transparency = false;\n var transparent_index = 0;\n if (opts.transparent !== undefined && opts.transparent !== null) {\n use_transparency = true;\n transparent_index = opts.transparent;\n if (transparent_index < 0 || transparent_index >= num_colors) throw \"Transparent color index.\";\n }\n\n if (disposal !== 0 || use_transparency || delay !== 0) {\n // - Graphics Control Extension\n buf[p++] = 0x21;\n buf[p++] = 0xf9; // Extension / Label.\n buf[p++] = 4; // Byte size.\n\n buf[p++] = disposal << 2 | (use_transparency === true ? 1 : 0);\n buf[p++] = delay & 0xff;\n buf[p++] = delay >> 8 & 0xff;\n buf[p++] = transparent_index; // Transparent color index.\n buf[p++] = 0; // Block Terminator.\n }\n\n // - Image Descriptor\n buf[p++] = 0x2c; // Image Seperator.\n buf[p++] = x & 0xff;\n buf[p++] = x >> 8 & 0xff; // Left.\n buf[p++] = y & 0xff;\n buf[p++] = y >> 8 & 0xff; // Top.\n buf[p++] = w & 0xff;\n buf[p++] = w >> 8 & 0xff;\n buf[p++] = h & 0xff;\n buf[p++] = h >> 8 & 0xff;\n // NOTE: No sort flag (unused?).\n // TODO(deanm): Support interlace.\n buf[p++] = using_local_palette === true ? 0x80 | min_code_size - 1 : 0;\n\n // - Local Color Table\n if (using_local_palette === true) {\n for (var i = 0, il = palette.length; i < il; ++i) {\n var rgb = palette[i];\n buf[p++] = rgb >> 16 & 0xff;\n buf[p++] = rgb >> 8 & 0xff;\n buf[p++] = rgb & 0xff;\n }\n }\n\n p = GifWriterOutputLZWCodeStream(buf, p, min_code_size < 2 ? 2 : min_code_size, indexed_pixels);\n };\n\n this.end = function () {\n if (ended === false) {\n buf[p++] = 0x3b; // Trailer.\n ended = true;\n }\n return p;\n };\n\n // Main compression routine, palette indexes -> LZW code stream.\n // |index_stream| must have at least one entry.\n function GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) {\n buf[p++] = min_code_size;\n var cur_subblock = p++; // Pointing at the length field.\n\n var clear_code = 1 << min_code_size;\n var code_mask = clear_code - 1;\n var eoi_code = clear_code + 1;\n var next_code = eoi_code + 1;\n\n var cur_code_size = min_code_size + 1; // Number of bits per code.\n var cur_shift = 0;\n // We have at most 12-bit codes, so we should have to hold a max of 19\n // bits here (and then we would write out).\n var cur = 0;\n\n function emit_bytes_to_buffer(bit_block_size) {\n while (cur_shift >= bit_block_size) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n }\n\n function emit_code(c) {\n cur |= c << cur_shift;\n cur_shift += cur_code_size;\n emit_bytes_to_buffer(8);\n }\n\n // I am not an expert on the topic, and I don't want to write a thesis.\n // However, it is good to outline here the basic algorithm and the few data\n // structures and optimizations here that make this implementation fast.\n // The basic idea behind LZW is to build a table of previously seen runs\n // addressed by a short id (herein called output code). All data is\n // referenced by a code, which represents one or more values from the\n // original input stream. All input bytes can be referenced as the same\n // value as an output code. So if you didn't want any compression, you\n // could more or less just output the original bytes as codes (there are\n // some details to this, but it is the idea). In order to achieve\n // compression, values greater then the input range (codes can be up to\n // 12-bit while input only 8-bit) represent a sequence of previously seen\n // inputs. The decompressor is able to build the same mapping while\n // decoding, so there is always a shared common knowledge between the\n // encoding and decoder, which is also important for \"timing\" aspects like\n // how to handle variable bit width code encoding.\n //\n // One obvious but very important consequence of the table system is there\n // is always a unique id (at most 12-bits) to map the runs. 'A' might be\n // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship\n // can be used for an effecient lookup strategy for the code mapping. We\n // need to know if a run has been seen before, and be able to map that run\n // to the output code. Since we start with known unique ids (input bytes),\n // and then from those build more unique ids (table entries), we can\n // continue this chain (almost like a linked list) to always have small\n // integer values that represent the current byte chains in the encoder.\n // This means instead of tracking the input bytes (AAAABCD) to know our\n // current state, we can track the table entry for AAAABC (it is guaranteed\n // to exist by the nature of the algorithm) and the next character D.\n // Therefor the tuple of (table_entry, byte) is guaranteed to also be\n // unique. This allows us to create a simple lookup key for mapping input\n // sequences to codes (table indices) without having to store or search\n // any of the code sequences. So if 'AAAA' has a table entry of 12, the\n // tuple of ('AAAA', K) for any input byte K will be unique, and can be our\n // key. This leads to a integer value at most 20-bits, which can always\n // fit in an SMI value and be used as a fast sparse array / object key.\n\n // Output code for the current contents of the index buffer.\n var ib_code = index_stream[0] & code_mask; // Load first input index.\n var code_table = {}; // Key'd on our 20-bit \"tuple\".\n\n emit_code(clear_code); // Spec says first code should be a clear code.\n\n // First index already loaded, process the rest of the stream.\n for (var i = 1, il = index_stream.length; i < il; ++i) {\n var k = index_stream[i] & code_mask;\n var cur_key = ib_code << 8 | k; // (prev, k) unique tuple.\n var cur_code = code_table[cur_key]; // buffer + k.\n\n // Check if we have to create a new code table entry.\n if (cur_code === undefined) {\n // We don't have buffer + k.\n // Emit index buffer (without k).\n // This is an inline version of emit_code, because this is the core\n // writing routine of the compressor (and V8 cannot inline emit_code\n // because it is a closure here in a different context). Additionally\n // we can call emit_byte_to_buffer less often, because we can have\n // 30-bits (from our 31-bit signed SMI), and we know our codes will only\n // be 12-bits, so can safely have 18-bits there without overflow.\n // emit_code(ib_code);\n cur |= ib_code << cur_shift;\n cur_shift += cur_code_size;\n while (cur_shift >= 8) {\n buf[p++] = cur & 0xff;\n cur >>= 8;\n cur_shift -= 8;\n if (p === cur_subblock + 256) {\n // Finished a subblock.\n buf[cur_subblock] = 255;\n cur_subblock = p++;\n }\n }\n\n if (next_code === 4096) {\n // Table full, need a clear.\n emit_code(clear_code);\n next_code = eoi_code + 1;\n cur_code_size = min_code_size + 1;\n code_table = {};\n } else {\n // Table not full, insert a new entry.\n // Increase our variable bit code sizes if necessary. This is a bit\n // tricky as it is based on \"timing\" between the encoding and\n // decoder. From the encoders perspective this should happen after\n // we've already emitted the index buffer and are about to create the\n // first table entry that would overflow our current code bit size.\n if (next_code >= 1 << cur_code_size) ++cur_code_size;\n code_table[cur_key] = next_code++; // Insert into code table.\n }\n\n ib_code = k; // Index buffer to single input k.\n } else {\n ib_code = cur_code; // Index buffer to sequence in code table.\n }\n }\n\n emit_code(ib_code); // There will still be something in the index buffer.\n emit_code(eoi_code); // End Of Information.\n\n // Flush / finalize the sub-blocks stream to the buffer.\n emit_bytes_to_buffer(1);\n\n // Finish the sub-blocks, writing out any unfinished lengths and\n // terminating with a sub-block of length 0. If we have already started\n // but not yet used a sub-block it can just become the terminator.\n if (cur_subblock + 1 === p) {\n // Started but unused.\n buf[cur_subblock] = 0;\n } else {\n // Started and used, write length and additional terminator block.\n buf[cur_subblock] = p - cur_subblock - 1;\n buf[p++] = 0;\n }\n return p;\n }\n}\n\n/*\n animatedGIF.js\n ==============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\n// Helpers\nvar noop$2 = function noop() {};\n\nvar AnimatedGIF = function AnimatedGIF(options) {\n this.canvas = null;\n this.ctx = null;\n this.repeat = 0;\n this.frames = [];\n this.numRenderedFrames = 0;\n this.onRenderCompleteCallback = noop$2;\n this.onRenderProgressCallback = noop$2;\n this.workers = [];\n this.availableWorkers = [];\n this.generatingGIF = false;\n this.options = options;\n\n // Constructs and initializes the the web workers appropriately\n this.initializeWebWorkers(options);\n};\n\nAnimatedGIF.prototype = {\n 'workerMethods': workerCode(),\n 'initializeWebWorkers': function initializeWebWorkers(options) {\n var self = this;\n var processFrameWorkerCode = NeuQuant.toString() + '(' + workerCode.toString() + '());';\n var webWorkerObj = void 0;\n var objectUrl = void 0;\n var webWorker = void 0;\n var numWorkers = void 0;\n var x = -1;\n var workerError = '';\n\n numWorkers = options.numWorkers;\n\n while (++x < numWorkers) {\n webWorkerObj = utils.createWebWorker(processFrameWorkerCode);\n\n if (utils.isObject(webWorkerObj)) {\n objectUrl = webWorkerObj.objectUrl;\n webWorker = webWorkerObj.worker;\n\n self.workers.push({\n worker: webWorker,\n objectUrl: objectUrl\n });\n\n self.availableWorkers.push(webWorker);\n } else {\n workerError = webWorkerObj;\n utils.webWorkerError = !!webWorkerObj;\n }\n }\n\n this.workerError = workerError;\n this.canvas = document.createElement('canvas');\n this.canvas.width = options.gifWidth;\n this.canvas.height = options.gifHeight;\n this.ctx = this.canvas.getContext('2d');\n this.frames = [];\n },\n // Return a worker for processing a frame\n getWorker: function getWorker() {\n return this.availableWorkers.pop();\n },\n // Restores a worker to the pool\n freeWorker: function freeWorker(worker) {\n this.availableWorkers.push(worker);\n },\n byteMap: function () {\n var byteMap = [];\n\n for (var i = 0; i < 256; i++) {\n byteMap[i] = String.fromCharCode(i);\n }\n\n return byteMap;\n }(),\n bufferToString: function bufferToString(buffer) {\n var numberValues = buffer.length;\n var str = '';\n var x = -1;\n\n while (++x < numberValues) {\n str += this.byteMap[buffer[x]];\n }\n\n return str;\n },\n onFrameFinished: function onFrameFinished(progressCallback) {\n // The GIF is not written until we're done with all the frames\n // because they might not be processed in the same order\n var self = this;\n var frames = self.frames;\n var options = self.options;\n var hasExistingImages = !!(options.images || []).length;\n var allDone = frames.every(function (frame) {\n return !frame.beingProcessed && frame.done;\n });\n\n self.numRenderedFrames++;\n\n if (hasExistingImages) {\n progressCallback(self.numRenderedFrames / frames.length);\n }\n\n self.onRenderProgressCallback(self.numRenderedFrames * 0.75 / frames.length);\n\n if (allDone) {\n if (!self.generatingGIF) {\n self.generateGIF(frames, self.onRenderCompleteCallback);\n }\n } else {\n utils.requestTimeout(function () {\n self.processNextFrame();\n }, 1);\n }\n },\n processFrame: function processFrame(position) {\n var AnimatedGifContext = this;\n var options = this.options;\n var _options = this.options,\n progressCallback = _options.progressCallback,\n sampleInterval = _options.sampleInterval;\n\n var frames = this.frames;\n var frame = void 0;\n var worker = void 0;\n var done = function done() {\n var ev = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var data = ev.data;\n\n // Delete original data, and free memory\n delete frame.data;\n\n frame.pixels = Array.prototype.slice.call(data.pixels);\n frame.palette = Array.prototype.slice.call(data.palette);\n frame.done = true;\n frame.beingProcessed = false;\n\n AnimatedGifContext.freeWorker(worker);\n\n AnimatedGifContext.onFrameFinished(progressCallback);\n };\n\n frame = frames[position];\n\n if (frame.beingProcessed || frame.done) {\n this.onFrameFinished();\n\n return;\n }\n\n frame.sampleInterval = sampleInterval;\n frame.beingProcessed = true;\n frame.gifshot = true;\n\n worker = this.getWorker();\n\n if (worker) {\n // Process the frame in a web worker\n worker.onmessage = done;\n worker.postMessage(frame);\n } else {\n // Process the frame in the current thread\n done({\n 'data': AnimatedGifContext.workerMethods.run(frame)\n });\n }\n },\n startRendering: function startRendering(completeCallback) {\n this.onRenderCompleteCallback = completeCallback;\n\n for (var i = 0; i < this.options.numWorkers && i < this.frames.length; i++) {\n this.processFrame(i);\n }\n },\n processNextFrame: function processNextFrame() {\n var position = -1;\n\n for (var i = 0; i < this.frames.length; i++) {\n var frame = this.frames[i];\n\n if (!frame.done && !frame.beingProcessed) {\n position = i;\n break;\n }\n }\n\n if (position >= 0) {\n this.processFrame(position);\n }\n },\n // Takes the already processed data in frames and feeds it to a new\n // GifWriter instance in order to get the binary GIF file\n generateGIF: function generateGIF(frames, callback) {\n // TODO: Weird: using a simple JS array instead of a typed array,\n // the files are WAY smaller o_o. Patches/explanations welcome!\n var buffer = []; // new Uint8Array(width * height * frames.length * 5);\n var gifOptions = {\n loop: this.repeat\n };\n var options = this.options;\n var interval = options.interval;\n\n var frameDuration = options.frameDuration;\n var existingImages = options.images;\n var hasExistingImages = !!existingImages.length;\n var height = options.gifHeight;\n var width = options.gifWidth;\n var gifWriter$$1 = new gifWriter(buffer, width, height, gifOptions);\n var onRenderProgressCallback = this.onRenderProgressCallback;\n var delay = hasExistingImages ? interval * 100 : 0;\n var bufferToString = void 0;\n var gif = void 0;\n\n this.generatingGIF = true;\n\n utils.each(frames, function (iterator, frame) {\n var framePalette = frame.palette;\n\n onRenderProgressCallback(0.75 + 0.25 * frame.position * 1.0 / frames.length);\n\n for (var i = 0; i < frameDuration; i++) {\n gifWriter$$1.addFrame(0, 0, width, height, frame.pixels, {\n palette: framePalette,\n delay: delay\n });\n }\n });\n\n gifWriter$$1.end();\n\n onRenderProgressCallback(1.0);\n\n this.frames = [];\n\n this.generatingGIF = false;\n\n if (utils.isFunction(callback)) {\n bufferToString = this.bufferToString(buffer);\n gif = 'data:image/gif;base64,' + utils.btoa(bufferToString);\n\n callback(gif);\n }\n },\n // From GIF: 0 = loop forever, null = not looping, n > 0 = loop n times and stop\n setRepeat: function setRepeat(r) {\n this.repeat = r;\n },\n addFrame: function addFrame(element, gifshotOptions) {\n gifshotOptions = utils.isObject(gifshotOptions) ? gifshotOptions : {};\n\n var self = this;\n var ctx = self.ctx;\n var options = self.options;\n var width = options.gifWidth;\n var height = options.gifHeight;\n var fontSize = utils.getFontSize(gifshotOptions);\n var _gifshotOptions = gifshotOptions,\n filter = _gifshotOptions.filter,\n fontColor = _gifshotOptions.fontColor,\n fontFamily = _gifshotOptions.fontFamily,\n fontWeight = _gifshotOptions.fontWeight,\n gifHeight = _gifshotOptions.gifHeight,\n gifWidth = _gifshotOptions.gifWidth,\n text = _gifshotOptions.text,\n textAlign = _gifshotOptions.textAlign,\n textBaseline = _gifshotOptions.textBaseline;\n\n var textXCoordinate = gifshotOptions.textXCoordinate ? gifshotOptions.textXCoordinate : textAlign === 'left' ? 1 : textAlign === 'right' ? width : width / 2;\n var textYCoordinate = gifshotOptions.textYCoordinate ? gifshotOptions.textYCoordinate : textBaseline === 'top' ? 1 : textBaseline === 'center' ? height / 2 : height;\n var font = fontWeight + ' ' + fontSize + ' ' + fontFamily;\n var imageData = void 0;\n\n try {\n ctx.filter = filter;\n\n ctx.drawImage(element, 0, 0, width, height);\n\n if (text) {\n ctx.font = font;\n ctx.fillStyle = fontColor;\n ctx.textAlign = textAlign;\n ctx.textBaseline = textBaseline;\n ctx.fillText(text, textXCoordinate, textYCoordinate);\n }\n\n imageData = ctx.getImageData(0, 0, width, height);\n\n self.addFrameImageData(imageData);\n } catch (e) {\n return '' + e;\n }\n },\n addFrameImageData: function addFrameImageData() {\n var imageData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var frames = this.frames;\n var imageDataArray = imageData.data;\n\n this.frames.push({\n 'data': imageDataArray,\n 'width': imageData.width,\n 'height': imageData.height,\n 'palette': null,\n 'dithering': null,\n 'done': false,\n 'beingProcessed': false,\n 'position': frames.length\n });\n },\n onRenderProgress: function onRenderProgress(callback) {\n this.onRenderProgressCallback = callback;\n },\n isRendering: function isRendering() {\n return this.generatingGIF;\n },\n getBase64GIF: function getBase64GIF(completeCallback) {\n var self = this;\n var onRenderComplete = function onRenderComplete(gif) {\n self.destroyWorkers();\n\n utils.requestTimeout(function () {\n completeCallback(gif);\n }, 0);\n };\n\n self.startRendering(onRenderComplete);\n },\n destroyWorkers: function destroyWorkers() {\n if (this.workerError) {\n return;\n }\n\n var workers = this.workers;\n\n // Explicitly ask web workers to die so they are explicitly GC'ed\n utils.each(workers, function (iterator, workerObj) {\n var worker = workerObj.worker;\n var objectUrl = workerObj.objectUrl;\n\n worker.terminate();\n utils.URL.revokeObjectURL(objectUrl);\n });\n }\n};\n\n/*\n getBase64GIF.js\n ===============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\nfunction getBase64GIF(animatedGifInstance, callback) {\n // This is asynchronous, rendered with WebWorkers\n animatedGifInstance.getBase64GIF(function (image) {\n callback({\n error: false,\n errorCode: '',\n errorMsg: '',\n image: image\n });\n });\n}\n\n/*\n existingImages.js\n =================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\nfunction existingImages() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var self = this;\n var callback = obj.callback,\n images = obj.images,\n options = obj.options;\n\n var imagesLength = obj.imagesLength;\n var skipObj = {\n 'getUserMedia': true,\n 'window.URL': true\n };\n var errorObj = error.validate(skipObj);\n var loadedImages = [];\n var loadedImagesLength = 0;\n var tempImage = void 0;\n var ag = void 0;\n\n if (errorObj.error) {\n return callback(errorObj);\n }\n\n // change workerPath to point to where Animated_GIF.worker.js is\n ag = new AnimatedGIF(options);\n\n utils.each(images, function (index, image) {\n var currentImage = image;\n\n if (image.src) {\n currentImage = currentImage.src;\n }\n if (utils.isElement(currentImage)) {\n if (options.crossOrigin) {\n currentImage.crossOrigin = options.crossOrigin;\n }\n\n loadedImages[index] = currentImage;\n loadedImagesLength += 1;\n\n if (loadedImagesLength === imagesLength) {\n addLoadedImagesToGif();\n }\n } else if (utils.isString(currentImage)) {\n tempImage = new Image();\n\n if (options.crossOrigin) {\n tempImage.crossOrigin = options.crossOrigin;\n }\n\n (function (tempImage) {\n if (image.text) {\n tempImage.text = image.text;\n }\n\n tempImage.onerror = function (e) {\n var obj = void 0;\n\n --imagesLength; // skips over images that error out\n\n if (imagesLength === 0) {\n obj = {};\n obj.error = 'None of the requested images was capable of being retrieved';\n\n return callback(obj);\n }\n };\n\n tempImage.onload = function (e) {\n if (image.text) {\n loadedImages[index] = {\n img: tempImage,\n text: tempImage.text\n };\n } else {\n loadedImages[index] = tempImage;\n }\n\n loadedImagesLength += 1;\n\n if (loadedImagesLength === imagesLength) {\n addLoadedImagesToGif();\n }\n\n utils.removeElement(tempImage);\n };\n\n tempImage.src = currentImage;\n })(tempImage);\n\n utils.setCSSAttr(tempImage, {\n position: 'fixed',\n opacity: '0'\n });\n\n document.body.appendChild(tempImage);\n }\n });\n\n function addLoadedImagesToGif() {\n utils.each(loadedImages, function (index, loadedImage) {\n if (loadedImage) {\n if (loadedImage.text) {\n ag.addFrame(loadedImage.img, options, loadedImage.text);\n } else {\n ag.addFrame(loadedImage, options);\n }\n }\n });\n\n getBase64GIF(ag, callback);\n }\n}\n\n/*\n screenShot.js\n =============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\n// Helpers\nvar noop$3 = function noop() {};\n\nvar screenShot = {\n getGIF: function getGIF() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments[1];\n\n callback = utils.isFunction(callback) ? callback : noop$3;\n\n var canvas = document.createElement('canvas');\n var context = void 0;\n var existingImages = options.images;\n var hasExistingImages = !!existingImages.length;\n var cameraStream = options.cameraStream,\n crop = options.crop,\n filter = options.filter,\n fontColor = options.fontColor,\n fontFamily = options.fontFamily,\n fontWeight = options.fontWeight,\n keepCameraOn = options.keepCameraOn,\n numWorkers = options.numWorkers,\n progressCallback = options.progressCallback,\n saveRenderingContexts = options.saveRenderingContexts,\n savedRenderingContexts = options.savedRenderingContexts,\n text = options.text,\n textAlign = options.textAlign,\n textBaseline = options.textBaseline,\n videoElement = options.videoElement,\n videoHeight = options.videoHeight,\n videoWidth = options.videoWidth,\n webcamVideoElement = options.webcamVideoElement;\n\n var gifWidth = Number(options.gifWidth);\n var gifHeight = Number(options.gifHeight);\n var interval = Number(options.interval);\n var sampleInterval = Number(options.sampleInterval);\n var waitBetweenFrames = hasExistingImages ? 0 : interval * 1000;\n var renderingContextsToSave = [];\n var numFrames = savedRenderingContexts.length ? savedRenderingContexts.length : options.numFrames;\n var pendingFrames = numFrames;\n var ag = new AnimatedGIF(options);\n var fontSize = utils.getFontSize(options);\n var textXCoordinate = options.textXCoordinate ? options.textXCoordinate : textAlign === 'left' ? 1 : textAlign === 'right' ? gifWidth : gifWidth / 2;\n var textYCoordinate = options.textYCoordinate ? options.textYCoordinate : textBaseline === 'top' ? 1 : textBaseline === 'center' ? gifHeight / 2 : gifHeight;\n var font = fontWeight + ' ' + fontSize + ' ' + fontFamily;\n var sourceX = crop ? Math.floor(crop.scaledWidth / 2) : 0;\n var sourceWidth = crop ? videoWidth - crop.scaledWidth : 0;\n var sourceY = crop ? Math.floor(crop.scaledHeight / 2) : 0;\n var sourceHeight = crop ? videoHeight - crop.scaledHeight : 0;\n var captureFrames = function captureSingleFrame() {\n var framesLeft = pendingFrames - 1;\n\n if (savedRenderingContexts.length) {\n context.putImageData(savedRenderingContexts[numFrames - pendingFrames], 0, 0);\n\n finishCapture();\n } else {\n drawVideo();\n }\n\n function drawVideo() {\n try {\n // Makes sure the canvas video heights/widths are in bounds\n if (sourceWidth > videoWidth) {\n sourceWidth = videoWidth;\n }\n\n if (sourceHeight > videoHeight) {\n sourceHeight = videoHeight;\n }\n\n if (sourceX < 0) {\n sourceX = 0;\n }\n\n if (sourceY < 0) {\n sourceY = 0;\n }\n\n context.filter = filter;\n\n context.drawImage(videoElement, sourceX, sourceY, sourceWidth, sourceHeight, 0, 0, gifWidth, gifHeight);\n\n finishCapture();\n } catch (e) {\n // There is a Firefox bug that sometimes throws NS_ERROR_NOT_AVAILABLE and\n // and IndexSizeError errors when drawing a video element to the canvas\n if (e.name === 'NS_ERROR_NOT_AVAILABLE') {\n // Wait 100ms before trying again\n utils.requestTimeout(drawVideo, 100);\n } else {\n throw e;\n }\n }\n }\n\n function finishCapture() {\n var imageData = void 0;\n\n if (saveRenderingContexts) {\n renderingContextsToSave.push(context.getImageData(0, 0, gifWidth, gifHeight));\n }\n\n // If there is text to display, make sure to display it on the canvas after the image is drawn\n if (text) {\n context.font = font;\n context.fillStyle = fontColor;\n context.textAlign = textAlign;\n context.textBaseline = textBaseline;\n context.fillText(text, textXCoordinate, textYCoordinate);\n }\n\n imageData = context.getImageData(0, 0, gifWidth, gifHeight);\n\n ag.addFrameImageData(imageData);\n\n pendingFrames = framesLeft;\n\n // Call back with an r value indicating how far along we are in capture\n progressCallback((numFrames - pendingFrames) / numFrames);\n\n if (framesLeft > 0) {\n // test\n utils.requestTimeout(captureSingleFrame, waitBetweenFrames);\n }\n\n if (!pendingFrames) {\n ag.getBase64GIF(function (image) {\n callback({\n 'error': false,\n 'errorCode': '',\n 'errorMsg': '',\n 'image': image,\n 'cameraStream': cameraStream,\n 'videoElement': videoElement,\n 'webcamVideoElement': webcamVideoElement,\n 'savedRenderingContexts': renderingContextsToSave,\n 'keepCameraOn': keepCameraOn\n });\n });\n }\n }\n };\n\n numFrames = numFrames !== undefined ? numFrames : 10;\n interval = interval !== undefined ? interval : 0.1; // In seconds\n\n canvas.width = gifWidth;\n canvas.height = gifHeight;\n context = canvas.getContext('2d');\n\n (function capture() {\n if (!savedRenderingContexts.length && videoElement.currentTime === 0) {\n utils.requestTimeout(capture, 100);\n\n return;\n }\n\n captureFrames();\n })();\n },\n getCropDimensions: function getCropDimensions() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var width = obj.videoWidth;\n var height = obj.videoHeight;\n var gifWidth = obj.gifWidth;\n var gifHeight = obj.gifHeight;\n var result = {\n width: 0,\n height: 0,\n scaledWidth: 0,\n scaledHeight: 0\n };\n\n if (width > height) {\n result.width = Math.round(width * (gifHeight / height)) - gifWidth;\n result.scaledWidth = Math.round(result.width * (height / gifHeight));\n } else {\n result.height = Math.round(height * (gifWidth / width)) - gifHeight;\n result.scaledHeight = Math.round(result.height * (width / gifWidth));\n }\n\n return result;\n }\n};\n\n/*\n videoStream.js\n ==============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nvar videoStream = {\n loadedData: false,\n defaultVideoDimensions: {\n width: 640,\n height: 480\n },\n findVideoSize: function findVideoSizeMethod(obj) {\n findVideoSizeMethod.attempts = findVideoSizeMethod.attempts || 0;\n\n var cameraStream = obj.cameraStream,\n completedCallback = obj.completedCallback,\n videoElement = obj.videoElement;\n\n\n if (!videoElement) {\n return;\n }\n\n if (videoElement.videoWidth > 0 && videoElement.videoHeight > 0) {\n videoElement.removeEventListener('loadeddata', videoStream.findVideoSize);\n\n completedCallback({\n videoElement: videoElement,\n cameraStream: cameraStream,\n videoWidth: videoElement.videoWidth,\n videoHeight: videoElement.videoHeight\n });\n } else {\n if (findVideoSizeMethod.attempts < 10) {\n findVideoSizeMethod.attempts += 1;\n\n utils.requestTimeout(function () {\n videoStream.findVideoSize(obj);\n }, 400);\n } else {\n completedCallback({\n videoElement: videoElement,\n cameraStream: cameraStream,\n videoWidth: videoStream.defaultVideoDimensions.width,\n videoHeight: videoStream.defaultVideoDimensions.height\n });\n }\n }\n },\n onStreamingTimeout: function onStreamingTimeout(callback) {\n if (utils.isFunction(callback)) {\n callback({\n error: true,\n errorCode: 'getUserMedia',\n errorMsg: 'There was an issue with the getUserMedia API - Timed out while trying to start streaming',\n image: null,\n cameraStream: {}\n });\n }\n },\n stream: function stream(obj) {\n var existingVideo = utils.isArray(obj.existingVideo) ? obj.existingVideo[0] : obj.existingVideo;\n var cameraStream = obj.cameraStream,\n completedCallback = obj.completedCallback,\n streamedCallback = obj.streamedCallback,\n videoElement = obj.videoElement;\n\n\n if (utils.isFunction(streamedCallback)) {\n streamedCallback();\n }\n\n if (existingVideo) {\n if (utils.isString(existingVideo)) {\n videoElement.src = existingVideo;\n videoElement.innerHTML = '';\n } else if (existingVideo instanceof Blob) {\n try {\n videoElement.src = utils.URL.createObjectURL(existingVideo);\n } catch (e) {}\n\n videoElement.innerHTML = '';\n }\n } else if (videoElement.mozSrcObject) {\n videoElement.mozSrcObject = cameraStream;\n } else if (utils.URL) {\n try {\n videoElement.srcObject = cameraStream;\n videoElement.src = utils.URL.createObjectURL(cameraStream);\n } catch (e) {\n videoElement.srcObject = cameraStream;\n }\n }\n\n videoElement.play();\n\n utils.requestTimeout(function checkLoadedData() {\n checkLoadedData.count = checkLoadedData.count || 0;\n\n if (videoStream.loadedData === true) {\n videoStream.findVideoSize({\n videoElement: videoElement,\n cameraStream: cameraStream,\n completedCallback: completedCallback\n });\n\n videoStream.loadedData = false;\n } else {\n checkLoadedData.count += 1;\n\n if (checkLoadedData.count > 10) {\n videoStream.findVideoSize({\n videoElement: videoElement,\n cameraStream: cameraStream,\n completedCallback: completedCallback\n });\n } else {\n checkLoadedData();\n }\n }\n }, 0);\n },\n startStreaming: function startStreaming(obj) {\n var errorCallback = utils.isFunction(obj.error) ? obj.error : utils.noop;\n var streamedCallback = utils.isFunction(obj.streamed) ? obj.streamed : utils.noop;\n var completedCallback = utils.isFunction(obj.completed) ? obj.completed : utils.noop;\n var crossOrigin = obj.crossOrigin,\n existingVideo = obj.existingVideo,\n lastCameraStream = obj.lastCameraStream,\n options = obj.options,\n webcamVideoElement = obj.webcamVideoElement;\n\n var videoElement = utils.isElement(existingVideo) ? existingVideo : webcamVideoElement ? webcamVideoElement : document.createElement('video');\n var cameraStream = void 0;\n\n if (crossOrigin) {\n videoElement.crossOrigin = options.crossOrigin;\n }\n\n videoElement.autoplay = true;\n videoElement.loop = true;\n videoElement.muted = true;\n videoElement.addEventListener('loadeddata', function (event) {\n videoStream.loadedData = true;\n if (options.offset) {\n videoElement.currentTime = options.offset;\n }\n });\n\n if (existingVideo) {\n videoStream.stream({\n videoElement: videoElement,\n existingVideo: existingVideo,\n completedCallback: completedCallback\n });\n } else if (lastCameraStream) {\n videoStream.stream({\n videoElement: videoElement,\n cameraStream: lastCameraStream,\n streamedCallback: streamedCallback,\n completedCallback: completedCallback\n });\n } else {\n utils.getUserMedia({\n video: true\n }, function (stream) {\n videoStream.stream({\n videoElement: videoElement,\n cameraStream: stream,\n streamedCallback: streamedCallback,\n completedCallback: completedCallback\n });\n }, errorCallback);\n }\n },\n startVideoStreaming: function startVideoStreaming(callback) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var timeoutLength = options.timeout !== undefined ? options.timeout : 0;\n var originalCallback = options.callback;\n var webcamVideoElement = options.webcamVideoElement;\n var noGetUserMediaSupportTimeout = void 0;\n\n // Some browsers apparently have support for video streaming because of the\n // presence of the getUserMedia function, but then do not answer our\n // calls for streaming.\n // So we'll set up this timeout and if nothing happens after a while, we'll\n // conclude that there's no actual getUserMedia support.\n if (timeoutLength > 0) {\n noGetUserMediaSupportTimeout = utils.requestTimeout(function () {\n videoStream.onStreamingTimeout(originalCallback);\n }, 10000);\n }\n\n videoStream.startStreaming({\n error: function error() {\n originalCallback({\n error: true,\n errorCode: 'getUserMedia',\n errorMsg: 'There was an issue with the getUserMedia API - the user probably denied permission',\n image: null,\n cameraStream: {}\n });\n },\n streamed: function streamed() {\n // The streaming started somehow, so we can assume there is getUserMedia support\n clearTimeout(noGetUserMediaSupportTimeout);\n },\n completed: function completed() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var cameraStream = obj.cameraStream,\n videoElement = obj.videoElement,\n videoHeight = obj.videoHeight,\n videoWidth = obj.videoWidth;\n\n\n callback({\n cameraStream: cameraStream,\n videoElement: videoElement,\n videoHeight: videoHeight,\n videoWidth: videoWidth\n });\n },\n lastCameraStream: options.lastCameraStream,\n webcamVideoElement: webcamVideoElement,\n crossOrigin: options.crossOrigin,\n options: options\n });\n },\n stopVideoStreaming: function stopVideoStreaming(obj) {\n obj = utils.isObject(obj) ? obj : {};\n\n var _obj = obj,\n keepCameraOn = _obj.keepCameraOn,\n videoElement = _obj.videoElement,\n webcamVideoElement = _obj.webcamVideoElement;\n\n var cameraStream = obj.cameraStream || {};\n var cameraStreamTracks = cameraStream.getTracks ? cameraStream.getTracks() || [] : [];\n var hasCameraStreamTracks = !!cameraStreamTracks.length;\n var firstCameraStreamTrack = cameraStreamTracks[0];\n\n if (!keepCameraOn && hasCameraStreamTracks) {\n if (utils.isFunction(firstCameraStreamTrack.stop)) {\n // Stops the camera stream\n firstCameraStreamTrack.stop();\n }\n }\n\n if (utils.isElement(videoElement) && !webcamVideoElement) {\n // Pauses the video, revokes the object URL (freeing up memory), and remove the video element\n videoElement.pause();\n\n // Destroys the object url\n if (utils.isFunction(utils.URL.revokeObjectURL) && !utils.webWorkerError) {\n if (videoElement.src) {\n utils.URL.revokeObjectURL(videoElement.src);\n }\n }\n\n // Removes the video element from the DOM\n utils.removeElement(videoElement);\n }\n }\n};\n\n/*\n stopVideoStreaming.js\n =====================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\nfunction stopVideoStreaming(options) {\n options = utils.isObject(options) ? options : {};\n\n videoStream.stopVideoStreaming(options);\n}\n\n/*\n createAndGetGIF.js\n ==================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nfunction createAndGetGIF(obj, callback) {\n var options = obj.options || {};\n\n var images = options.images,\n video = options.video;\n\n var gifWidth = Number(options.gifWidth);\n var gifHeight = Number(options.gifHeight);\n var numFrames = Number(options.numFrames);\n var cameraStream = obj.cameraStream,\n videoElement = obj.videoElement,\n videoWidth = obj.videoWidth,\n videoHeight = obj.videoHeight;\n\n var cropDimensions = screenShot.getCropDimensions({\n videoWidth: videoWidth,\n videoHeight: videoHeight,\n gifHeight: gifHeight,\n gifWidth: gifWidth\n });\n var completeCallback = callback;\n\n options.crop = cropDimensions;\n options.videoElement = videoElement;\n options.videoWidth = videoWidth;\n options.videoHeight = videoHeight;\n options.cameraStream = cameraStream;\n\n if (!utils.isElement(videoElement)) {\n return;\n }\n\n videoElement.width = gifWidth + cropDimensions.width;\n videoElement.height = gifHeight + cropDimensions.height;\n\n if (!options.webcamVideoElement) {\n utils.setCSSAttr(videoElement, {\n position: 'fixed',\n opacity: '0'\n });\n\n document.body.appendChild(videoElement);\n }\n\n // Firefox doesn't seem to obey autoplay if the element is not in the DOM when the content\n // is loaded, so we must manually trigger play after adding it, or the video will be frozen\n videoElement.play();\n\n screenShot.getGIF(options, function (obj) {\n if ((!images || !images.length) && (!video || !video.length)) {\n stopVideoStreaming(obj);\n }\n\n completeCallback(obj);\n });\n}\n\n/*\n existingVideo.js\n ================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nfunction existingVideo() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = obj.callback,\n existingVideo = obj.existingVideo,\n options = obj.options;\n\n var skipObj = {\n getUserMedia: true,\n 'window.URL': true\n };\n var errorObj = error.validate(skipObj);\n var loadedImages = 0;\n var videoType = void 0;\n var videoSrc = void 0;\n var tempImage = void 0;\n var ag = void 0;\n\n if (errorObj.error) {\n return callback(errorObj);\n }\n\n if (utils.isElement(existingVideo) && existingVideo.src) {\n videoSrc = existingVideo.src;\n videoType = utils.getExtension(videoSrc);\n\n if (!utils.isSupported.videoCodecs[videoType]) {\n return callback(error.messages.videoCodecs);\n }\n } else if (utils.isArray(existingVideo)) {\n utils.each(existingVideo, function (iterator, videoSrc) {\n if (videoSrc instanceof Blob) {\n videoType = videoSrc.type.substr(videoSrc.type.lastIndexOf('/') + 1, videoSrc.length);\n } else {\n videoType = videoSrc.substr(videoSrc.lastIndexOf('.') + 1, videoSrc.length);\n }\n\n if (utils.isSupported.videoCodecs[videoType]) {\n existingVideo = videoSrc;\n\n return false;\n }\n });\n }\n\n videoStream.startStreaming({\n completed: function completed(obj) {\n obj.options = options || {};\n\n createAndGetGIF(obj, callback);\n },\n existingVideo: existingVideo,\n crossOrigin: options.crossOrigin,\n options: options\n });\n}\n\n/*\n existingWebcam.js\n =================\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nfunction existingWebcam() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = obj.callback,\n lastCameraStream = obj.lastCameraStream,\n options = obj.options,\n webcamVideoElement = obj.webcamVideoElement;\n\n\n if (!isWebCamGIFSupported()) {\n return callback(error.validate());\n }\n\n if (options.savedRenderingContexts.length) {\n screenShot.getGIF(options, function (obj) {\n callback(obj);\n });\n\n return;\n }\n\n videoStream.startVideoStreaming(function () {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n obj.options = options || {};\n\n createAndGetGIF(obj, callback);\n }, {\n lastCameraStream: lastCameraStream,\n callback: callback,\n webcamVideoElement: webcamVideoElement,\n crossOrigin: options.crossOrigin\n });\n}\n\n/*\n createGIF.js\n ============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nfunction createGIF(userOptions, callback) {\n callback = utils.isFunction(userOptions) ? userOptions : callback;\n userOptions = utils.isObject(userOptions) ? userOptions : {};\n\n if (!utils.isFunction(callback)) {\n return;\n }\n\n var options = utils.mergeOptions(defaultOptions, userOptions) || {};\n var lastCameraStream = userOptions.cameraStream;\n var images = options.images;\n var imagesLength = images ? images.length : 0;\n var video = options.video;\n var webcamVideoElement = options.webcamVideoElement;\n\n options = utils.mergeOptions(options, {\n 'gifWidth': Math.floor(options.gifWidth),\n 'gifHeight': Math.floor(options.gifHeight)\n });\n\n // If the user would like to create a GIF from an existing image(s)\n if (imagesLength) {\n existingImages({\n 'images': images,\n 'imagesLength': imagesLength,\n 'callback': callback,\n 'options': options\n });\n } else if (video) {\n // If the user would like to create a GIF from an existing HTML5 video\n existingVideo({\n 'existingVideo': video,\n callback: callback,\n options: options\n });\n } else {\n // If the user would like to create a GIF from a webcam stream\n existingWebcam({\n lastCameraStream: lastCameraStream,\n callback: callback,\n webcamVideoElement: webcamVideoElement,\n options: options\n });\n }\n}\n\n/*\n takeSnapShot.js\n ===============\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\nfunction takeSnapShot(userOptions, callback) {\n callback = utils.isFunction(userOptions) ? userOptions : callback;\n userOptions = utils.isObject(userOptions) ? userOptions : {};\n\n if (!utils.isFunction(callback)) {\n return;\n }\n\n var mergedOptions = utils.mergeOptions(defaultOptions, userOptions);\n var options = utils.mergeOptions(mergedOptions, {\n 'interval': .1,\n 'numFrames': 1,\n 'gifWidth': Math.floor(mergedOptions.gifWidth),\n 'gifHeight': Math.floor(mergedOptions.gifHeight)\n });\n\n createGIF(options, callback);\n}\n\n/*\n API.js\n ======\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n*/\n\n// Dependencies\nvar API = {\n 'utils': utils$2,\n 'error': error$2,\n 'defaultOptions': defaultOptions$2,\n 'createGIF': createGIF,\n 'takeSnapShot': takeSnapShot,\n 'stopVideoStreaming': stopVideoStreaming,\n 'isSupported': isSupported,\n 'isWebCamGIFSupported': isWebCamGIFSupported,\n 'isExistingVideoGIFSupported': isExistingVideoGIFSupported,\n 'isExistingImagesGIFSupported': isSupported$1,\n 'VERSION': '0.4.5'\n};\n\n/*\n index.js\n ========\n*/\n\n/* Copyright 2017 Yahoo Inc.\n * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.\n */\n\n// Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, and plain browser loading\nif (typeof define === 'function' && define.amd) {\n define([], function () {\n return API;\n });\n} else if (typeof exports !== 'undefined') {\n module.exports = API;\n} else {\n window.gifshot = API;\n}\n}(typeof window !== \"undefined\" ? window : {}, typeof document !== \"undefined\" ? document : { createElement: function() {} }, typeof window !== \"undefined\" ? window.navigator : {}));\n","(function(root, globalName, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD:\r\n define([], factory);\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node:\r\n module.exports = factory();\r\n // Use module export as simulated ES6 default export:\r\n module.exports.default = module.exports;\r\n } else {\r\n // Browser:\r\n window[globalName] = factory();\r\n }\r\n}(this, 'b64toBlob', function() {\r\n 'use strict';\r\n\r\n return function b64toBlob(b64Data, contentType, sliceSize) {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n var byteCharacters = atob(b64Data);\r\n var byteArrays = [];\r\n\r\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n var slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n var byteNumbers = new Array(slice.length);\r\n for (var i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n \r\n var byteArray = new Uint8Array(byteNumbers);\r\n \r\n byteArrays.push(byteArray);\r\n }\r\n \r\n var blob = new Blob(byteArrays, {type: contentType});\r\n return blob;\r\n };\r\n}));\r\n","import gifshot from 'gifshot';\nimport b64toBlob from 'b64-to-blob';\n\nfunction artplayerPluginGif(art) {\n const { errorHandle, clamp, downloadFile } = art.constructor.utils;\n const {\n i18n,\n notice,\n layers,\n player,\n loading,\n option: { theme, title },\n events: { proxy },\n template: { $video },\n } = art;\n\n i18n.update({\n 'zh-cn': {\n 'Long press, gif length is between 1 second and 10 seconds': '长按,gif 长度为 1 ~ 10 秒',\n 'Gif time is too short': 'Gif 时间太短',\n 'Start creating gif...': '开始创建 gif...',\n 'Create gif successfully': '创建 gif 成功',\n 'There is another gif in the processing': '正有另一个 gif 在创建中',\n 'Release the mouse to start': '放开鼠标即可开始',\n },\n 'zh-tw': {\n 'Long press, gif length is between 1 second and 10 seconds': '長按,gif 長度為 1 ~ 10 秒',\n 'Gif time is too short': 'Gif 時間太短',\n 'Start creating gif...': '開始創建 gif...',\n 'Create gif successfully': '創建 gif 成功',\n 'There is another gif in the processing': '正有另一個 gif 在創建中',\n 'Release the mouse to start': '放開鼠標即可開始',\n },\n });\n\n let $progress = null;\n layers.add(\n {\n name: 'artplayer-plugin-gif-progress',\n style: {\n position: 'absolute',\n top: '0',\n left: '0',\n height: '2px',\n width: '0%',\n 'background-color': theme,\n },\n mounted($ref) {\n $progress = $ref;\n }\n },\n );\n\n const timeLimit = 10000;\n let isProcessing = false;\n let pressStartTime = 0;\n let progressTimer = null;\n let isPress = false;\n let offset = 0;\n\n art.on('destroy', () => {\n if (progressTimer) {\n clearTimeout(progressTimer);\n }\n });\n\n function cleanTimer() {\n $progress.style.width = '0%';\n clearTimeout(progressTimer);\n progressTimer = null;\n }\n\n function createGif() {\n cleanTimer();\n const pressTime = new Date() - pressStartTime;\n if (isProcessing) {\n notice.show = i18n.get('There is another gif in the processing');\n } else if (pressTime < 1000) {\n notice.show = i18n.get('Gif time is too short');\n } else {\n const numFrames = Math.floor(clamp(pressTime, 1000, timeLimit) / 100);\n const { videoWidth, videoHeight } = $video;\n art.plugins.artplayerPluginGif.create(\n {\n numFrames,\n offset: Math.floor(offset),\n gifHeight: 200,\n gifWidth: (videoWidth / videoHeight) * 200,\n },\n image => {\n downloadFile(image, `${title || 'unnamed'}.gif`);\n },\n );\n }\n }\n\n return {\n name: 'artplayerPluginGif',\n attach($gif) {\n proxy($gif, 'mousedown', () => {\n isPress = true;\n cleanTimer();\n offset = player.currentTime;\n pressStartTime = new Date();\n notice.show = i18n.get('Long press, gif length is between 1 second and 10 seconds');\n (function loop() {\n progressTimer = setTimeout(() => {\n const width = parseInt($progress.style.width, 10);\n if (width <= 100) {\n $progress.style.width = `${width + 1}%`;\n loop();\n } else {\n notice.show = i18n.get('Release the mouse to start');\n }\n }, timeLimit / 100);\n })();\n });\n\n proxy(document, 'mouseup', () => {\n if (isPress) {\n isPress = false;\n createGif();\n offset = 0;\n }\n });\n },\n create(config = {}, callback) {\n isProcessing = true;\n loading.show = true;\n art.emit('artplayerPluginGif:start');\n notice.show = i18n.get('Start creating gif...');\n gifshot.createGIF(\n {\n ...config,\n video: [$video.src],\n crossOrigin: 'anonymous',\n },\n obj => {\n if (obj.error) {\n notice.show = obj.errorMsg;\n errorHandle(false, obj.errorMsg);\n } else if (typeof callback === 'function') {\n const base64String = obj.image.split(',')[1];\n const blob = b64toBlob(base64String, 'image/gif');\n const blobUrl = URL.createObjectURL(blob);\n notice.show = i18n.get('Create gif successfully');\n art.emit('artplayerPluginGif', blobUrl);\n callback(blobUrl);\n }\n isProcessing = false;\n loading.show = false;\n art.emit('artplayerPluginGif:end');\n },\n );\n },\n };\n}\n\nexport default artplayerPluginGif;\n"],"names":["undefined","define","this","artplayerPluginGif","art","constructor","utils","errorHandle","clamp","downloadFile","i18n","notice","layers","player","loading","option","theme","title","proxy","events","$video","template","update","$progress","add","name","style","position","top","left","height","width","mounted","$ref","timeLimit","isProcessing","pressStartTime","progressTimer","isPress","offset","on","clearTimeout","cleanTimer","createGif","pressTime","Date","show","get","numFrames","Math","floor","videoWidth","videoHeight","plugins","create","gifHeight","gifWidth","image","attach","$gif","currentTime","loop","setTimeout","parseInt","document","config","callback","emit","gifshot","createGIF","video","src","crossOrigin","obj","error","errorMsg","base64String","split","blob","b64toBlob","blobUrl","URL","createObjectURL"],"mappings":"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"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-react.js b/docs/uncompiled/artplayer-react.js deleted file mode 100644 index 5086ceac3..000000000 --- a/docs/uncompiled/artplayer-react.js +++ /dev/null @@ -1,6776 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.ArtplayerReact = factory()); -}(this, (function () { 'use strict'; - - function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; - } - - var objectWithoutPropertiesLoose = _objectWithoutPropertiesLoose; - - function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = objectWithoutPropertiesLoose(source, excluded); - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - - return target; - } - - var objectWithoutProperties = _objectWithoutProperties; - - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - - var defineProperty = _defineProperty; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var _typeof_1 = createCommonjsModule(function (module) { - function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } - - function _typeof(obj) { - if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { - module.exports = _typeof = function _typeof(obj) { - return _typeof2(obj); - }; - } else { - module.exports = _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); - }; - } - - return _typeof(obj); - } - - module.exports = _typeof; - }); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var classCallCheck = _classCallCheck; - - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - - var createClass = _createClass; - - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; - } - - var assertThisInitialized = _assertThisInitialized; - - function _possibleConstructorReturn(self, call) { - if (call && (_typeof_1(call) === "object" || typeof call === "function")) { - return call; - } - - return assertThisInitialized(self); - } - - var possibleConstructorReturn = _possibleConstructorReturn; - - var getPrototypeOf = createCommonjsModule(function (module) { - function _getPrototypeOf(o) { - module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); - } - - module.exports = _getPrototypeOf; - }); - - var setPrototypeOf = createCommonjsModule(function (module) { - function _setPrototypeOf(o, p) { - module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); - } - - module.exports = _setPrototypeOf; - }); - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) setPrototypeOf(subClass, superClass); - } - - var inherits = _inherits; - - /* - object-assign - (c) Sindre Sorhus - @license MIT - */ - /* eslint-disable no-unused-vars */ - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - var hasOwnProperty = Object.prototype.hasOwnProperty; - var propIsEnumerable = Object.prototype.propertyIsEnumerable; - - function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); - } - - function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } - } - - var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; - }; - - var n="function"===typeof Symbol&&Symbol.for,p=n?Symbol.for("react.element"):60103,q=n?Symbol.for("react.portal"):60106,r=n?Symbol.for("react.fragment"):60107,t=n?Symbol.for("react.strict_mode"):60108,u=n?Symbol.for("react.profiler"):60114,v=n?Symbol.for("react.provider"):60109,w=n?Symbol.for("react.context"):60110,x=n?Symbol.for("react.forward_ref"):60112,y=n?Symbol.for("react.suspense"):60113;var z=n?Symbol.for("react.memo"):60115,aa=n?Symbol.for("react.lazy"):60116;var A="function"===typeof Symbol&&Symbol.iterator; - function B(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;cP.length&&P.push(a);} - function S(a,b,c,e){var d=typeof a;if("undefined"===d||"boolean"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case "string":case "number":g=!0;break;case "object":switch(a.$$typeof){case p:case q:g=!0;}}if(g)return c(e,a,""===b?"."+T(a,0):b),1;g=0;b=""===b?".":b+":";if(Array.isArray(a))for(var l=0;l 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - - if (typeof console !== 'undefined') { - console.warn(message); - } - - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - lowPriorityWarningWithoutStack = function (condition, format) { - if (format === undefined) { - throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (!condition) { - for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(void 0, [format].concat(args)); - } - }; - } - - var lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack; - - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - var warningWithoutStack = function () {}; - - { - warningWithoutStack = function (condition, format) { - for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - - if (format === undefined) { - throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (args.length > 8) { - // Check before the condition to catch violations early. - throw new Error('warningWithoutStack() currently supports at most 8 arguments.'); - } - - if (condition) { - return; - } - - if (typeof console !== 'undefined') { - var argsWithFormat = args.map(function (item) { - return '' + item; - }); - argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it - // breaks IE9: https://github.com/facebook/react/issues/13610 - - Function.prototype.apply.call(console.error, console, argsWithFormat); - } - - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - throw new Error(message); - } catch (x) {} - }; - } - - var warningWithoutStack$1 = warningWithoutStack; - - var didWarnStateUpdateForUnmountedComponent = {}; - - function warnNoop(publicInstance, callerName) { - { - var _constructor = publicInstance.constructor; - var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass'; - var warningKey = componentName + "." + callerName; - - if (didWarnStateUpdateForUnmountedComponent[warningKey]) { - return; - } - - warningWithoutStack$1(false, "Can't call %s on a component that is not yet mounted. " + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName); - didWarnStateUpdateForUnmountedComponent[warningKey] = true; - } - } - /** - * This is the abstract API for an update queue. - */ - - - var ReactNoopUpdateQueue = { - /** - * Checks whether or not this composite component is mounted. - * @param {ReactClass} publicInstance The instance we want to test. - * @return {boolean} True if mounted, false otherwise. - * @protected - * @final - */ - isMounted: function (publicInstance) { - return false; - }, - - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {?function} callback Called after component is updated. - * @param {?string} callerName name of the calling function in the public API. - * @internal - */ - enqueueForceUpdate: function (publicInstance, callback, callerName) { - warnNoop(publicInstance, 'forceUpdate'); - }, - - /** - * Replaces all of the state. Always use this or `setState` to mutate state. - * You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} completeState Next state. - * @param {?function} callback Called after component is updated. - * @param {?string} callerName name of the calling function in the public API. - * @internal - */ - enqueueReplaceState: function (publicInstance, completeState, callback, callerName) { - warnNoop(publicInstance, 'replaceState'); - }, - - /** - * Sets a subset of the state. This only exists because _pendingState is - * internal. This provides a merging strategy that is not available to deep - * properties which is confusing. TODO: Expose pendingState or don't use it - * during the merge. - * - * @param {ReactClass} publicInstance The instance that should rerender. - * @param {object} partialState Next partial state to be merged with state. - * @param {?function} callback Called after component is updated. - * @param {?string} Name of the calling function in the public API. - * @internal - */ - enqueueSetState: function (publicInstance, partialState, callback, callerName) { - warnNoop(publicInstance, 'setState'); - } - }; - - var emptyObject = {}; - - { - Object.freeze(emptyObject); - } - /** - * Base class helpers for the updating state of a component. - */ - - - function Component(props, context, updater) { - this.props = props; - this.context = context; // If a component has string refs, we will assign a different object later. - - this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the - // renderer. - - this.updater = updater || ReactNoopUpdateQueue; - } - - Component.prototype.isReactComponent = {}; - /** - * Sets a subset of the state. Always use this to mutate - * state. You should treat `this.state` as immutable. - * - * There is no guarantee that `this.state` will be immediately updated, so - * accessing `this.state` after calling this method may return the old value. - * - * There is no guarantee that calls to `setState` will run synchronously, - * as they may eventually be batched together. You can provide an optional - * callback that will be executed when the call to setState is actually - * completed. - * - * When a function is provided to setState, it will be called at some point in - * the future (not synchronously). It will be called with the up to date - * component arguments (state, props, context). These values can be different - * from this.* because your function may be called after receiveProps but before - * shouldComponentUpdate, and this new state, props, and context will not yet be - * assigned to this. - * - * @param {object|function} partialState Next partial state or function to - * produce next partial state to be merged with current state. - * @param {?function} callback Called after state is updated. - * @final - * @protected - */ - - Component.prototype.setState = function (partialState, callback) { - if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) { - { - throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables."); - } - } - - this.updater.enqueueSetState(this, partialState, callback, 'setState'); - }; - /** - * Forces an update. This should only be invoked when it is known with - * certainty that we are **not** in a DOM transaction. - * - * You may want to call this when you know that some deeper aspect of the - * component's state has changed but `setState` was not called. - * - * This will not invoke `shouldComponentUpdate`, but it will invoke - * `componentWillUpdate` and `componentDidUpdate`. - * - * @param {?function} callback Called after update is complete. - * @final - * @protected - */ - - - Component.prototype.forceUpdate = function (callback) { - this.updater.enqueueForceUpdate(this, callback, 'forceUpdate'); - }; - /** - * Deprecated APIs. These APIs used to exist on classic React classes but since - * we would like to deprecate them, we're not going to move them over to this - * modern base class. Instead, we define a getter that warns if it's accessed. - */ - - - { - var deprecatedAPIs = { - isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'], - replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).'] - }; - - var defineDeprecationWarning = function (methodName, info) { - Object.defineProperty(Component.prototype, methodName, { - get: function () { - lowPriorityWarningWithoutStack$1(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]); - return undefined; - } - }); - }; - - for (var fnName in deprecatedAPIs) { - if (deprecatedAPIs.hasOwnProperty(fnName)) { - defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); - } - } - } - - function ComponentDummy() {} - - ComponentDummy.prototype = Component.prototype; - /** - * Convenience component with default shallow equality check for sCU. - */ - - function PureComponent(props, context, updater) { - this.props = props; - this.context = context; // If a component has string refs, we will assign a different object later. - - this.refs = emptyObject; - this.updater = updater || ReactNoopUpdateQueue; - } - - var pureComponentPrototype = PureComponent.prototype = new ComponentDummy(); - pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods. - - _assign(pureComponentPrototype, Component.prototype); - - pureComponentPrototype.isPureReactComponent = true; - - // an immutable object with a single mutable value - function createRef() { - var refObject = { - current: null - }; - - { - Object.seal(refObject); - } - - return refObject; - } - - /** - * Keeps track of the current dispatcher. - */ - var ReactCurrentDispatcher = { - /** - * @internal - * @type {ReactComponent} - */ - current: null - }; - - /** - * Keeps track of the current batch's configuration such as how long an update - * should suspend for if it needs to. - */ - var ReactCurrentBatchConfig = { - suspense: null - }; - - /** - * Keeps track of the current owner. - * - * The current owner is the component who should own any components that are - * currently being constructed. - */ - var ReactCurrentOwner = { - /** - * @internal - * @type {ReactComponent} - */ - current: null - }; - - var BEFORE_SLASH_RE = /^(.*)[\\\/]/; - var describeComponentFrame = function (name, source, ownerName) { - var sourceInfo = ''; - - if (source) { - var path = source.fileName; - var fileName = path.replace(BEFORE_SLASH_RE, ''); - - { - // In DEV, include code for a common special case: - // prefer "folder/index.js" instead of just "index.js". - if (/^index\./.test(fileName)) { - var match = path.match(BEFORE_SLASH_RE); - - if (match) { - var pathBeforeSlash = match[1]; - - if (pathBeforeSlash) { - var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, ''); - fileName = folderName + '/' + fileName; - } - } - } - } - - sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')'; - } else if (ownerName) { - sourceInfo = ' (created by ' + ownerName + ')'; - } - - return '\n in ' + (name || 'Unknown') + sourceInfo; - }; - - var Resolved = 1; - - function refineResolvedLazyComponent(lazyComponent) { - return lazyComponent._status === Resolved ? lazyComponent._result : null; - } - - function getWrappedName(outerType, innerType, wrapperName) { - var functionName = innerType.displayName || innerType.name || ''; - return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName); - } - - function getComponentName(type) { - if (type == null) { - // Host root, text node or just invalid type. - return null; - } - - { - if (typeof type.tag === 'number') { - warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.'); - } - } - - if (typeof type === 'function') { - return type.displayName || type.name || null; - } - - if (typeof type === 'string') { - return type; - } - - switch (type) { - case REACT_FRAGMENT_TYPE: - return 'Fragment'; - - case REACT_PORTAL_TYPE: - return 'Portal'; - - case REACT_PROFILER_TYPE: - return "Profiler"; - - case REACT_STRICT_MODE_TYPE: - return 'StrictMode'; - - case REACT_SUSPENSE_TYPE: - return 'Suspense'; - - case REACT_SUSPENSE_LIST_TYPE: - return 'SuspenseList'; - } - - if (typeof type === 'object') { - switch (type.$$typeof) { - case REACT_CONTEXT_TYPE: - return 'Context.Consumer'; - - case REACT_PROVIDER_TYPE: - return 'Context.Provider'; - - case REACT_FORWARD_REF_TYPE: - return getWrappedName(type, type.render, 'ForwardRef'); - - case REACT_MEMO_TYPE: - return getComponentName(type.type); - - case REACT_LAZY_TYPE: - { - var thenable = type; - var resolvedThenable = refineResolvedLazyComponent(thenable); - - if (resolvedThenable) { - return getComponentName(resolvedThenable); - } - - break; - } - } - } - - return null; - } - - var ReactDebugCurrentFrame = {}; - var currentlyValidatingElement = null; - function setCurrentlyValidatingElement(element) { - { - currentlyValidatingElement = element; - } - } - - { - // Stack implementation injected by the current renderer. - ReactDebugCurrentFrame.getCurrentStack = null; - - ReactDebugCurrentFrame.getStackAddendum = function () { - var stack = ''; // Add an extra top frame while an element is being validated - - if (currentlyValidatingElement) { - var name = getComponentName(currentlyValidatingElement.type); - var owner = currentlyValidatingElement._owner; - stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type)); - } // Delegate to the injected renderer-specific implementation - - - var impl = ReactDebugCurrentFrame.getCurrentStack; - - if (impl) { - stack += impl() || ''; - } - - return stack; - }; - } - - /** - * Used by act() to track whether you're inside an act() scope. - */ - var IsSomeRendererActing = { - current: false - }; - - var ReactSharedInternals = { - ReactCurrentDispatcher: ReactCurrentDispatcher, - ReactCurrentBatchConfig: ReactCurrentBatchConfig, - ReactCurrentOwner: ReactCurrentOwner, - IsSomeRendererActing: IsSomeRendererActing, - // Used by renderers to avoid bundling object-assign twice in UMD bundles: - assign: _assign - }; - - { - _assign(ReactSharedInternals, { - // These should not be included in production. - ReactDebugCurrentFrame: ReactDebugCurrentFrame, - // Shim for React DOM 16.0.0 which still destructured (but not used) this. - // TODO: remove in React 17.0. - ReactComponentTreeHook: {} - }); - } - - /** - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var warning = warningWithoutStack$1; - - { - warning = function (condition, format) { - if (condition) { - return; - } - - var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; - var stack = ReactDebugCurrentFrame.getStackAddendum(); // eslint-disable-next-line react-internal/warning-and-invariant-args - - for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { - args[_key - 2] = arguments[_key]; - } - - warningWithoutStack$1.apply(void 0, [false, format + '%s'].concat(args, [stack])); - }; - } - - var warning$1 = warning; - - var hasOwnProperty = Object.prototype.hasOwnProperty; - var RESERVED_PROPS = { - key: true, - ref: true, - __self: true, - __source: true - }; - var specialPropKeyWarningShown; - var specialPropRefWarningShown; - - function hasValidRef(config) { - { - if (hasOwnProperty.call(config, 'ref')) { - var getter = Object.getOwnPropertyDescriptor(config, 'ref').get; - - if (getter && getter.isReactWarning) { - return false; - } - } - } - - return config.ref !== undefined; - } - - function hasValidKey(config) { - { - if (hasOwnProperty.call(config, 'key')) { - var getter = Object.getOwnPropertyDescriptor(config, 'key').get; - - if (getter && getter.isReactWarning) { - return false; - } - } - } - - return config.key !== undefined; - } - - function defineKeyPropWarningGetter(props, displayName) { - var warnAboutAccessingKey = function () { - if (!specialPropKeyWarningShown) { - specialPropKeyWarningShown = true; - warningWithoutStack$1(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName); - } - }; - - warnAboutAccessingKey.isReactWarning = true; - Object.defineProperty(props, 'key', { - get: warnAboutAccessingKey, - configurable: true - }); - } - - function defineRefPropWarningGetter(props, displayName) { - var warnAboutAccessingRef = function () { - if (!specialPropRefWarningShown) { - specialPropRefWarningShown = true; - warningWithoutStack$1(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName); - } - }; - - warnAboutAccessingRef.isReactWarning = true; - Object.defineProperty(props, 'ref', { - get: warnAboutAccessingRef, - configurable: true - }); - } - /** - * Factory method to create a new React element. This no longer adheres to - * the class pattern, so do not use new to call it. Also, instanceof check - * will not work. Instead test $$typeof field against Symbol.for('react.element') to check - * if something is a React Element. - * - * @param {*} type - * @param {*} props - * @param {*} key - * @param {string|object} ref - * @param {*} owner - * @param {*} self A *temporary* helper to detect places where `this` is - * different from the `owner` when React.createElement is called, so that we - * can warn. We want to get rid of owner and replace string `ref`s with arrow - * functions, and as long as `this` and owner are the same, there will be no - * change in behavior. - * @param {*} source An annotation object (added by a transpiler or otherwise) - * indicating filename, line number, and/or other information. - * @internal - */ - - - var ReactElement = function (type, key, ref, self, source, owner, props) { - var element = { - // This tag allows us to uniquely identify this as a React Element - $$typeof: REACT_ELEMENT_TYPE, - // Built-in properties that belong on the element - type: type, - key: key, - ref: ref, - props: props, - // Record the component responsible for creating this element. - _owner: owner - }; - - { - // The validation flag is currently mutative. We put it on - // an external backing store so that we can freeze the whole object. - // This can be replaced with a WeakMap once they are implemented in - // commonly used development environments. - element._store = {}; // To make comparing ReactElements easier for testing purposes, we make - // the validation flag non-enumerable (where possible, which should - // include every environment we run tests in), so the test framework - // ignores it. - - Object.defineProperty(element._store, 'validated', { - configurable: false, - enumerable: false, - writable: true, - value: false - }); // self and source are DEV only properties. - - Object.defineProperty(element, '_self', { - configurable: false, - enumerable: false, - writable: false, - value: self - }); // Two elements created in two different places should be considered - // equal for testing purposes and therefore we hide it from enumeration. - - Object.defineProperty(element, '_source', { - configurable: false, - enumerable: false, - writable: false, - value: source - }); - - if (Object.freeze) { - Object.freeze(element.props); - Object.freeze(element); - } - } - - return element; - }; - /** - * Create and return a new ReactElement of the given type. - * See https://reactjs.org/docs/react-api.html#createelement - */ - - function createElement(type, config, children) { - var propName; // Reserved names are extracted - - var props = {}; - var key = null; - var ref = null; - var self = null; - var source = null; - - if (config != null) { - if (hasValidRef(config)) { - ref = config.ref; - } - - if (hasValidKey(config)) { - key = '' + config.key; - } - - self = config.__self === undefined ? null : config.__self; - source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object - - for (propName in config) { - if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - props[propName] = config[propName]; - } - } - } // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - - - var childrenLength = arguments.length - 2; - - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - - { - if (Object.freeze) { - Object.freeze(childArray); - } - } - - props.children = childArray; - } // Resolve default props - - - if (type && type.defaultProps) { - var defaultProps = type.defaultProps; - - for (propName in defaultProps) { - if (props[propName] === undefined) { - props[propName] = defaultProps[propName]; - } - } - } - - { - if (key || ref) { - var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type; - - if (key) { - defineKeyPropWarningGetter(props, displayName); - } - - if (ref) { - defineRefPropWarningGetter(props, displayName); - } - } - } - - return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props); - } - /** - * Return a function that produces ReactElements of a given type. - * See https://reactjs.org/docs/react-api.html#createfactory - */ - - - function cloneAndReplaceKey(oldElement, newKey) { - var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props); - return newElement; - } - /** - * Clone and return a new ReactElement using element as the starting point. - * See https://reactjs.org/docs/react-api.html#cloneelement - */ - - function cloneElement(element, config, children) { - if (!!(element === null || element === undefined)) { - { - throw Error("React.cloneElement(...): The argument must be a React element, but you passed " + element + "."); - } - } - - var propName; // Original props are copied - - var props = _assign({}, element.props); // Reserved names are extracted - - - var key = element.key; - var ref = element.ref; // Self is preserved since the owner is preserved. - - var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a - // transpiler, and the original source is probably a better indicator of the - // true owner. - - var source = element._source; // Owner will be preserved, unless ref is overridden - - var owner = element._owner; - - if (config != null) { - if (hasValidRef(config)) { - // Silently steal the ref from the parent. - ref = config.ref; - owner = ReactCurrentOwner.current; - } - - if (hasValidKey(config)) { - key = '' + config.key; - } // Remaining properties override existing props - - - var defaultProps; - - if (element.type && element.type.defaultProps) { - defaultProps = element.type.defaultProps; - } - - for (propName in config) { - if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { - if (config[propName] === undefined && defaultProps !== undefined) { - // Resolve default props - props[propName] = defaultProps[propName]; - } else { - props[propName] = config[propName]; - } - } - } - } // Children can be more than one argument, and those are transferred onto - // the newly allocated props object. - - - var childrenLength = arguments.length - 2; - - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = Array(childrenLength); - - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 2]; - } - - props.children = childArray; - } - - return ReactElement(element.type, key, ref, self, source, owner, props); - } - /** - * Verifies the object is a ReactElement. - * See https://reactjs.org/docs/react-api.html#isvalidelement - * @param {?object} object - * @return {boolean} True if `object` is a ReactElement. - * @final - */ - - function isValidElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - } - - var SEPARATOR = '.'; - var SUBSEPARATOR = ':'; - /** - * Escape and wrap key so it is safe to use as a reactid - * - * @param {string} key to be escaped. - * @return {string} the escaped key. - */ - - function escape(key) { - var escapeRegex = /[=:]/g; - var escaperLookup = { - '=': '=0', - ':': '=2' - }; - var escapedString = ('' + key).replace(escapeRegex, function (match) { - return escaperLookup[match]; - }); - return '$' + escapedString; - } - /** - * TODO: Test that a single child and an array with one item have the same key - * pattern. - */ - - - var didWarnAboutMaps = false; - var userProvidedKeyEscapeRegex = /\/+/g; - - function escapeUserProvidedKey(text) { - return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/'); - } - - var POOL_SIZE = 10; - var traverseContextPool = []; - - function getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) { - if (traverseContextPool.length) { - var traverseContext = traverseContextPool.pop(); - traverseContext.result = mapResult; - traverseContext.keyPrefix = keyPrefix; - traverseContext.func = mapFunction; - traverseContext.context = mapContext; - traverseContext.count = 0; - return traverseContext; - } else { - return { - result: mapResult, - keyPrefix: keyPrefix, - func: mapFunction, - context: mapContext, - count: 0 - }; - } - } - - function releaseTraverseContext(traverseContext) { - traverseContext.result = null; - traverseContext.keyPrefix = null; - traverseContext.func = null; - traverseContext.context = null; - traverseContext.count = 0; - - if (traverseContextPool.length < POOL_SIZE) { - traverseContextPool.push(traverseContext); - } - } - /** - * @param {?*} children Children tree container. - * @param {!string} nameSoFar Name of the key path so far. - * @param {!function} callback Callback to invoke with each child found. - * @param {?*} traverseContext Used to pass information throughout the traversal - * process. - * @return {!number} The number of children in this subtree. - */ - - - function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) { - var type = typeof children; - - if (type === 'undefined' || type === 'boolean') { - // All of the above are perceived as null. - children = null; - } - - var invokeCallback = false; - - if (children === null) { - invokeCallback = true; - } else { - switch (type) { - case 'string': - case 'number': - invokeCallback = true; - break; - - case 'object': - switch (children.$$typeof) { - case REACT_ELEMENT_TYPE: - case REACT_PORTAL_TYPE: - invokeCallback = true; - } - - } - } - - if (invokeCallback) { - callback(traverseContext, children, // If it's the only child, treat the name as if it was wrapped in an array - // so that it's consistent if the number of children grows. - nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar); - return 1; - } - - var child; - var nextName; - var subtreeCount = 0; // Count of children found in the current subtree. - - var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR; - - if (Array.isArray(children)) { - for (var i = 0; i < children.length; i++) { - child = children[i]; - nextName = nextNamePrefix + getComponentKey(child, i); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else { - var iteratorFn = getIteratorFn(children); - - if (typeof iteratorFn === 'function') { - { - // Warn about using Maps as children - if (iteratorFn === children.entries) { - !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0; - didWarnAboutMaps = true; - } - } - - var iterator = iteratorFn.call(children); - var step; - var ii = 0; - - while (!(step = iterator.next()).done) { - child = step.value; - nextName = nextNamePrefix + getComponentKey(child, ii++); - subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext); - } - } else if (type === 'object') { - var addendum = ''; - - { - addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum(); - } - - var childrenString = '' + children; - - { - { - throw Error("Objects are not valid as a React child (found: " + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + ")." + addendum); - } - } - } - } - - return subtreeCount; - } - /** - * Traverses children that are typically specified as `props.children`, but - * might also be specified through attributes: - * - * - `traverseAllChildren(this.props.children, ...)` - * - `traverseAllChildren(this.props.leftPanelChildren, ...)` - * - * The `traverseContext` is an optional argument that is passed through the - * entire traversal. It can be used to store accumulations or anything else that - * the callback might find relevant. - * - * @param {?*} children Children tree object. - * @param {!function} callback To invoke upon traversing each child. - * @param {?*} traverseContext Context for traversal. - * @return {!number} The number of children in this subtree. - */ - - - function traverseAllChildren(children, callback, traverseContext) { - if (children == null) { - return 0; - } - - return traverseAllChildrenImpl(children, '', callback, traverseContext); - } - /** - * Generate a key string that identifies a component within a set. - * - * @param {*} component A component that could contain a manual key. - * @param {number} index Index that is used if a manual key is not provided. - * @return {string} - */ - - - function getComponentKey(component, index) { - // Do some typechecking here since we call this blindly. We want to ensure - // that we don't block potential future ES APIs. - if (typeof component === 'object' && component !== null && component.key != null) { - // Explicit key - return escape(component.key); - } // Implicit key determined by the index in the set - - - return index.toString(36); - } - - function forEachSingleChild(bookKeeping, child, name) { - var func = bookKeeping.func, - context = bookKeeping.context; - func.call(context, child, bookKeeping.count++); - } - /** - * Iterates through children that are typically specified as `props.children`. - * - * See https://reactjs.org/docs/react-api.html#reactchildrenforeach - * - * The provided forEachFunc(child, index) will be called for each - * leaf child. - * - * @param {?*} children Children tree container. - * @param {function(*, int)} forEachFunc - * @param {*} forEachContext Context for forEachContext. - */ - - - function forEachChildren(children, forEachFunc, forEachContext) { - if (children == null) { - return children; - } - - var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext); - traverseAllChildren(children, forEachSingleChild, traverseContext); - releaseTraverseContext(traverseContext); - } - - function mapSingleChildIntoContext(bookKeeping, child, childKey) { - var result = bookKeeping.result, - keyPrefix = bookKeeping.keyPrefix, - func = bookKeeping.func, - context = bookKeeping.context; - var mappedChild = func.call(context, child, bookKeeping.count++); - - if (Array.isArray(mappedChild)) { - mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, function (c) { - return c; - }); - } else if (mappedChild != null) { - if (isValidElement(mappedChild)) { - mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as - // traverseAllChildren used to do for objects as children - keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey); - } - - result.push(mappedChild); - } - } - - function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) { - var escapedPrefix = ''; - - if (prefix != null) { - escapedPrefix = escapeUserProvidedKey(prefix) + '/'; - } - - var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context); - traverseAllChildren(children, mapSingleChildIntoContext, traverseContext); - releaseTraverseContext(traverseContext); - } - /** - * Maps children that are typically specified as `props.children`. - * - * See https://reactjs.org/docs/react-api.html#reactchildrenmap - * - * The provided mapFunction(child, key, index) will be called for each - * leaf child. - * - * @param {?*} children Children tree container. - * @param {function(*, int)} func The map function. - * @param {*} context Context for mapFunction. - * @return {object} Object containing the ordered map of results. - */ - - - function mapChildren(children, func, context) { - if (children == null) { - return children; - } - - var result = []; - mapIntoWithKeyPrefixInternal(children, result, null, func, context); - return result; - } - /** - * Count the number of children that are typically specified as - * `props.children`. - * - * See https://reactjs.org/docs/react-api.html#reactchildrencount - * - * @param {?*} children Children tree container. - * @return {number} The number of children. - */ - - - function countChildren(children) { - return traverseAllChildren(children, function () { - return null; - }, null); - } - /** - * Flatten a children object (typically specified as `props.children`) and - * return an array with appropriately re-keyed children. - * - * See https://reactjs.org/docs/react-api.html#reactchildrentoarray - */ - - - function toArray(children) { - var result = []; - mapIntoWithKeyPrefixInternal(children, result, null, function (child) { - return child; - }); - return result; - } - /** - * Returns the first child in a collection of children and verifies that there - * is only one child in the collection. - * - * See https://reactjs.org/docs/react-api.html#reactchildrenonly - * - * The current implementation of this function assumes that a single child gets - * passed without a wrapper, but the purpose of this helper function is to - * abstract away the particular structure of children. - * - * @param {?object} children Child collection structure. - * @return {ReactElement} The first and only `ReactElement` contained in the - * structure. - */ - - - function onlyChild(children) { - if (!isValidElement(children)) { - { - throw Error("React.Children.only expected to receive a single React element child."); - } - } - - return children; - } - - function createContext(defaultValue, calculateChangedBits) { - if (calculateChangedBits === undefined) { - calculateChangedBits = null; - } else { - { - !(calculateChangedBits === null || typeof calculateChangedBits === 'function') ? warningWithoutStack$1(false, 'createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits) : void 0; - } - } - - var context = { - $$typeof: REACT_CONTEXT_TYPE, - _calculateChangedBits: calculateChangedBits, - // As a workaround to support multiple concurrent renderers, we categorize - // some renderers as primary and others as secondary. We only expect - // there to be two concurrent renderers at most: React Native (primary) and - // Fabric (secondary); React DOM (primary) and React ART (secondary). - // Secondary renderers store their context values on separate fields. - _currentValue: defaultValue, - _currentValue2: defaultValue, - // Used to track how many concurrent renderers this context currently - // supports within in a single renderer. Such as parallel server rendering. - _threadCount: 0, - // These are circular - Provider: null, - Consumer: null - }; - context.Provider = { - $$typeof: REACT_PROVIDER_TYPE, - _context: context - }; - var hasWarnedAboutUsingNestedContextConsumers = false; - var hasWarnedAboutUsingConsumerProvider = false; - - { - // A separate object, but proxies back to the original context object for - // backwards compatibility. It has a different $$typeof, so we can properly - // warn for the incorrect usage of Context as a Consumer. - var Consumer = { - $$typeof: REACT_CONTEXT_TYPE, - _context: context, - _calculateChangedBits: context._calculateChangedBits - }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here - - Object.defineProperties(Consumer, { - Provider: { - get: function () { - if (!hasWarnedAboutUsingConsumerProvider) { - hasWarnedAboutUsingConsumerProvider = true; - warning$1(false, 'Rendering is not supported and will be removed in ' + 'a future major release. Did you mean to render instead?'); - } - - return context.Provider; - }, - set: function (_Provider) { - context.Provider = _Provider; - } - }, - _currentValue: { - get: function () { - return context._currentValue; - }, - set: function (_currentValue) { - context._currentValue = _currentValue; - } - }, - _currentValue2: { - get: function () { - return context._currentValue2; - }, - set: function (_currentValue2) { - context._currentValue2 = _currentValue2; - } - }, - _threadCount: { - get: function () { - return context._threadCount; - }, - set: function (_threadCount) { - context._threadCount = _threadCount; - } - }, - Consumer: { - get: function () { - if (!hasWarnedAboutUsingNestedContextConsumers) { - hasWarnedAboutUsingNestedContextConsumers = true; - warning$1(false, 'Rendering is not supported and will be removed in ' + 'a future major release. Did you mean to render instead?'); - } - - return context.Consumer; - } - } - }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty - - context.Consumer = Consumer; - } - - { - context._currentRenderer = null; - context._currentRenderer2 = null; - } - - return context; - } - - function lazy(ctor) { - var lazyType = { - $$typeof: REACT_LAZY_TYPE, - _ctor: ctor, - // React uses these fields to store the result. - _status: -1, - _result: null - }; - - { - // In production, this would just set it on the object. - var defaultProps; - var propTypes; - Object.defineProperties(lazyType, { - defaultProps: { - configurable: true, - get: function () { - return defaultProps; - }, - set: function (newDefaultProps) { - warning$1(false, 'React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.'); - defaultProps = newDefaultProps; // Match production behavior more closely: - - Object.defineProperty(lazyType, 'defaultProps', { - enumerable: true - }); - } - }, - propTypes: { - configurable: true, - get: function () { - return propTypes; - }, - set: function (newPropTypes) { - warning$1(false, 'React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.'); - propTypes = newPropTypes; // Match production behavior more closely: - - Object.defineProperty(lazyType, 'propTypes', { - enumerable: true - }); - } - } - }); - } - - return lazyType; - } - - function forwardRef(render) { - { - if (render != null && render.$$typeof === REACT_MEMO_TYPE) { - warningWithoutStack$1(false, 'forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).'); - } else if (typeof render !== 'function') { - warningWithoutStack$1(false, 'forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render); - } else { - !( // Do not warn for 0 arguments because it could be due to usage of the 'arguments' object - render.length === 0 || render.length === 2) ? warningWithoutStack$1(false, 'forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.') : void 0; - } - - if (render != null) { - !(render.defaultProps == null && render.propTypes == null) ? warningWithoutStack$1(false, 'forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?') : void 0; - } - } - - return { - $$typeof: REACT_FORWARD_REF_TYPE, - render: render - }; - } - - function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE); - } - - function memo(type, compare) { - { - if (!isValidElementType(type)) { - warningWithoutStack$1(false, 'memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type); - } - } - - return { - $$typeof: REACT_MEMO_TYPE, - type: type, - compare: compare === undefined ? null : compare - }; - } - - function resolveDispatcher() { - var dispatcher = ReactCurrentDispatcher.current; - - if (!(dispatcher !== null)) { - { - throw Error("Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem."); - } - } - - return dispatcher; - } - - function useContext(Context, unstable_observedBits) { - var dispatcher = resolveDispatcher(); - - { - !(unstable_observedBits === undefined) ? warning$1(false, 'useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\n\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://fb.me/rules-of-hooks' : '') : void 0; // TODO: add a more generic warning for invalid values. - - if (Context._context !== undefined) { - var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs - // and nobody should be using this in existing code. - - if (realContext.Consumer === Context) { - warning$1(false, 'Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?'); - } else if (realContext.Provider === Context) { - warning$1(false, 'Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?'); - } - } - } - - return dispatcher.useContext(Context, unstable_observedBits); - } - function useState(initialState) { - var dispatcher = resolveDispatcher(); - return dispatcher.useState(initialState); - } - function useReducer(reducer, initialArg, init) { - var dispatcher = resolveDispatcher(); - return dispatcher.useReducer(reducer, initialArg, init); - } - function useRef(initialValue) { - var dispatcher = resolveDispatcher(); - return dispatcher.useRef(initialValue); - } - function useEffect(create, inputs) { - var dispatcher = resolveDispatcher(); - return dispatcher.useEffect(create, inputs); - } - function useLayoutEffect(create, inputs) { - var dispatcher = resolveDispatcher(); - return dispatcher.useLayoutEffect(create, inputs); - } - function useCallback(callback, inputs) { - var dispatcher = resolveDispatcher(); - return dispatcher.useCallback(callback, inputs); - } - function useMemo(create, inputs) { - var dispatcher = resolveDispatcher(); - return dispatcher.useMemo(create, inputs); - } - function useImperativeHandle(ref, create, inputs) { - var dispatcher = resolveDispatcher(); - return dispatcher.useImperativeHandle(ref, create, inputs); - } - function useDebugValue(value, formatterFn) { - { - var dispatcher = resolveDispatcher(); - return dispatcher.useDebugValue(value, formatterFn); - } - } - - /** - * ReactElementValidator provides a wrapper around a element factory - * which validates the props passed to the element. This is intended to be - * used only in DEV and could be replaced by a static type checker for languages - * that support it. - */ - var propTypesMisspellWarningShown; - - { - propTypesMisspellWarningShown = false; - } - - function getDeclarationErrorAddendum() { - if (ReactCurrentOwner.current) { - var name = getComponentName(ReactCurrentOwner.current.type); - - if (name) { - return '\n\nCheck the render method of `' + name + '`.'; - } - } - - return ''; - } - - function getSourceInfoErrorAddendum(source) { - if (source !== undefined) { - var fileName = source.fileName.replace(/^.*[\\\/]/, ''); - var lineNumber = source.lineNumber; - return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.'; - } - - return ''; - } - - function getSourceInfoErrorAddendumForProps(elementProps) { - if (elementProps !== null && elementProps !== undefined) { - return getSourceInfoErrorAddendum(elementProps.__source); - } - - return ''; - } - /** - * Warn if there's no key explicitly set on dynamic arrays of children or - * object keys are not valid. This allows us to keep track of children between - * updates. - */ - - - var ownerHasKeyUseWarning = {}; - - function getCurrentComponentErrorInfo(parentType) { - var info = getDeclarationErrorAddendum(); - - if (!info) { - var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name; - - if (parentName) { - info = "\n\nCheck the top-level render call using <" + parentName + ">."; - } - } - - return info; - } - /** - * Warn if the element doesn't have an explicit key assigned to it. - * This element is in an array. The array could grow and shrink or be - * reordered. All children that haven't already been validated are required to - * have a "key" property assigned to it. Error statuses are cached so a warning - * will only be shown once. - * - * @internal - * @param {ReactElement} element Element that requires a key. - * @param {*} parentType element's parent's type. - */ - - - function validateExplicitKey(element, parentType) { - if (!element._store || element._store.validated || element.key != null) { - return; - } - - element._store.validated = true; - var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType); - - if (ownerHasKeyUseWarning[currentComponentErrorInfo]) { - return; - } - - ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a - // property, it may be the creator of the child that's responsible for - // assigning it a key. - - var childOwner = ''; - - if (element && element._owner && element._owner !== ReactCurrentOwner.current) { - // Give the component that originally created this child. - childOwner = " It was passed a child from " + getComponentName(element._owner.type) + "."; - } - - setCurrentlyValidatingElement(element); - - { - warning$1(false, 'Each child in a list should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.', currentComponentErrorInfo, childOwner); - } - - setCurrentlyValidatingElement(null); - } - /** - * Ensure that every element either is passed in a static location, in an - * array with an explicit keys property defined, or in an object literal - * with valid key property. - * - * @internal - * @param {ReactNode} node Statically passed child of any type. - * @param {*} parentType node's parent's type. - */ - - - function validateChildKeys(node, parentType) { - if (typeof node !== 'object') { - return; - } - - if (Array.isArray(node)) { - for (var i = 0; i < node.length; i++) { - var child = node[i]; - - if (isValidElement(child)) { - validateExplicitKey(child, parentType); - } - } - } else if (isValidElement(node)) { - // This element was passed in a valid location. - if (node._store) { - node._store.validated = true; - } - } else if (node) { - var iteratorFn = getIteratorFn(node); - - if (typeof iteratorFn === 'function') { - // Entry iterators used to provide implicit keys, - // but now we print a separate warning for them later. - if (iteratorFn !== node.entries) { - var iterator = iteratorFn.call(node); - var step; - - while (!(step = iterator.next()).done) { - if (isValidElement(step.value)) { - validateExplicitKey(step.value, parentType); - } - } - } - } - } - } - /** - * Given an element, validate that its props follow the propTypes definition, - * provided by the type. - * - * @param {ReactElement} element - */ - - - function validatePropTypes(element) { - var type = element.type; - - if (type === null || type === undefined || typeof type === 'string') { - return; - } - - var name = getComponentName(type); - var propTypes; - - if (typeof type === 'function') { - propTypes = type.propTypes; - } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here. - // Inner props are checked in the reconciler. - type.$$typeof === REACT_MEMO_TYPE)) { - propTypes = type.propTypes; - } else { - return; - } - - if (propTypes) { - setCurrentlyValidatingElement(element); - checkPropTypes(propTypes, element.props, 'prop', name, ReactDebugCurrentFrame.getStackAddendum); - setCurrentlyValidatingElement(null); - } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) { - propTypesMisspellWarningShown = true; - warningWithoutStack$1(false, 'Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown'); - } - - if (typeof type.getDefaultProps === 'function') { - !type.getDefaultProps.isReactClassApproved ? warningWithoutStack$1(false, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0; - } - } - /** - * Given a fragment, validate that it can only be provided with fragment props - * @param {ReactElement} fragment - */ - - - function validateFragmentProps(fragment) { - setCurrentlyValidatingElement(fragment); - var keys = Object.keys(fragment.props); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - - if (key !== 'children' && key !== 'key') { - warning$1(false, 'Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key); - break; - } - } - - if (fragment.ref !== null) { - warning$1(false, 'Invalid attribute `ref` supplied to `React.Fragment`.'); - } - - setCurrentlyValidatingElement(null); - } - function createElementWithValidation(type, props, children) { - var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to - // succeed and there will likely be errors in render. - - if (!validType) { - var info = ''; - - if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) { - info += ' You likely forgot to export your component from the file ' + "it's defined in, or you might have mixed up default and named imports."; - } - - var sourceInfo = getSourceInfoErrorAddendumForProps(props); - - if (sourceInfo) { - info += sourceInfo; - } else { - info += getDeclarationErrorAddendum(); - } - - var typeString; - - if (type === null) { - typeString = 'null'; - } else if (Array.isArray(type)) { - typeString = 'array'; - } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) { - typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />"; - info = ' Did you accidentally export a JSX literal instead of a component?'; - } else { - typeString = typeof type; - } - - warning$1(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info); - } - - var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used. - // TODO: Drop this when these are no longer allowed as the type argument. - - if (element == null) { - return element; - } // Skip key warning if the type isn't valid since our key validation logic - // doesn't expect a non-string/function type and can throw confusing errors. - // We don't want exception behavior to differ between dev and prod. - // (Rendering will throw with a helpful message and as soon as the type is - // fixed, the key warnings will appear.) - - - if (validType) { - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], type); - } - } - - if (type === REACT_FRAGMENT_TYPE) { - validateFragmentProps(element); - } else { - validatePropTypes(element); - } - - return element; - } - function createFactoryWithValidation(type) { - var validatedFactory = createElementWithValidation.bind(null, type); - validatedFactory.type = type; // Legacy hook: remove it - - { - Object.defineProperty(validatedFactory, 'type', { - enumerable: false, - get: function () { - lowPriorityWarningWithoutStack$1(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.'); - Object.defineProperty(this, 'type', { - value: type - }); - return type; - } - }); - } - - return validatedFactory; - } - function cloneElementWithValidation(element, props, children) { - var newElement = cloneElement.apply(this, arguments); - - for (var i = 2; i < arguments.length; i++) { - validateChildKeys(arguments[i], newElement.type); - } - - validatePropTypes(newElement); - return newElement; - } - - { - - try { - var frozenObject = Object.freeze({}); - var testMap = new Map([[frozenObject, null]]); - var testSet = new Set([frozenObject]); // This is necessary for Rollup to not consider these unused. - // https://github.com/rollup/rollup/issues/1771 - // TODO: we can remove these if Rollup fixes the bug. - - testMap.set(0, 0); - testSet.add(0); - } catch (e) { - } - } - // Till then, we warn about the missing mock, but still fallback to a legacy mode compatible version - - // For tests, we flush suspense fallbacks in an act scope; - // *except* in some of our own tests, where we test incremental loading states. - - // Add a callback property to suspense to notify which promises are currently - // in the update queue. This allows reporting and tracing of what is causing - // the user to see a loading state. - // Also allows hydration callbacks to fire when a dehydrated boundary gets - // hydrated or deleted. - - // Part of the simplification of React.createElement so we can eventually move - // from React.createElement to React.jsx - // https://github.com/reactjs/rfcs/blob/createlement-rfc/text/0000-create-element-changes.md - - - - - - // Flag to turn event.target and event.currentTarget in ReactNative from a reactTag to a component instance - - var React = { - Children: { - map: mapChildren, - forEach: forEachChildren, - count: countChildren, - toArray: toArray, - only: onlyChild - }, - createRef: createRef, - Component: Component, - PureComponent: PureComponent, - createContext: createContext, - forwardRef: forwardRef, - lazy: lazy, - memo: memo, - useCallback: useCallback, - useContext: useContext, - useEffect: useEffect, - useImperativeHandle: useImperativeHandle, - useDebugValue: useDebugValue, - useLayoutEffect: useLayoutEffect, - useMemo: useMemo, - useReducer: useReducer, - useRef: useRef, - useState: useState, - Fragment: REACT_FRAGMENT_TYPE, - Profiler: REACT_PROFILER_TYPE, - StrictMode: REACT_STRICT_MODE_TYPE, - Suspense: REACT_SUSPENSE_TYPE, - createElement: createElementWithValidation, - cloneElement: cloneElementWithValidation, - createFactory: createFactoryWithValidation, - isValidElement: isValidElement, - version: ReactVersion, - __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactSharedInternals - }; - - - - var React$2 = Object.freeze({ - default: React - }); - - var React$3 = ( React$2 && React ) || React$2; - - // TODO: decide on the top-level export form. - // This is hacky but makes it work with both Rollup and Jest. - - - var react = React$3.default || React$3; - - module.exports = react; - })(); - } - }); - - var react = createCommonjsModule(function (module) { - - if (process.env.NODE_ENV === 'production') { - module.exports = react_production_min; - } else { - module.exports = react_development; - } - }); - - function styleInject(css, ref) { - if ( ref === void 0 ) ref = {}; - var insertAt = ref.insertAt; - - if (!css || typeof document === 'undefined') { return; } - - var head = document.head || document.getElementsByTagName('head')[0]; - var style = document.createElement('style'); - style.type = 'text/css'; - - if (insertAt === 'top') { - if (head.firstChild) { - head.insertBefore(style, head.firstChild); - } else { - head.appendChild(style); - } - } else { - head.appendChild(style); - } - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - style.appendChild(document.createTextNode(css)); - } - } - - var css = ".art-video-player{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;margin:0 auto;z-index:10;width:100%;height:100%;outline:0;zoom:1;font-family:Roboto,Arial,Helvetica,sans-serif;color:#eee;text-align:left;direction:ltr;font-size:14px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none}.art-video-player *{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1.5}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}.art-video-player>object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,.7)!important}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFydHBsYXllci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtCQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFhLENBQ2IsaUJBQWtCLENBQ2xCLGFBQWMsQ0FDZCxVQUFXLENBQ1gsVUFBVyxDQUNYLFdBQVksQ0FDWixTQUFVLENBQ1YsTUFBTyxDQUNQLDZDQUFpRCxDQUNqRCxVQUFXLENBQ1gsZUFBZ0IsQ0FDaEIsYUFBYyxDQUNkLGNBQWUsQ0FDZixlQUFnQixDQUNoQix3QkFBaUIsQ0FBakIscUJBQWlCLENBQWpCLG9CQUFpQixDQUFqQixnQkFBaUIsQ0FDakIseUNBQTZDLENBQzdDLDZCQUEwQixDQUExQix5QkFBMEIsQ0FDMUIsNkJBQWdDLENBQ2hDLG9CQUNFLFFBQVMsQ0FDVCxTQUFVLENBQ1YsNkJBQXNCLENBQXRCLHFCQUF3QixDQUMxQixzQ0FDRSxTQUFZLENBQ2QsNENBQ0UscUJBQXdCLENBQzFCLGtEQUNFLHFCQUF3QixDQUMxQiw0QkFDRSwwQkFBb0IsQ0FBcEIsMEJBQW9CLENBQXBCLG1CQUFvQixDQUNwQix1QkFBdUIsQ0FBdkIsb0JBQXVCLENBQXZCLHNCQUF1QixDQUN2Qix3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQixlQUFrQixDQUNsQixnQ0FDRSxTQUFZLENBQ2hCLHNCQUNFLGNBQWUsQ0FDZixrQkFBcUIsQ0FDdkIseUJBQ0UsYUFBYyxDQUNkLGlCQUFrQixDQUNsQixLQUFNLENBQ04sTUFBTyxDQUNQLFdBQVksQ0FDWixVQUFXLENBQ1gsZUFBZ0IsQ0FDaEIsbUJBQW9CLENBQ3BCLFVBQWEsQ0FDZiwyRUFDRSx1Q0FDRSxpREFBa0QsQ0FDbEQseUNBQTBDLENBQzFDLHlDQUFpRCxDQUFFIiwiZmlsZSI6ImFydHBsYXllci5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3V0bGluZTogMDtcbiAgem9vbTogMTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICNlZWU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaWNvbiBzdmcge1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyID4gPiA+IG9iamVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IC0xOyB9XG4gIEBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIG9yIChiYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIHtcbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJhY2tkcm9wLWZpbHRlciB7XG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KSAhaW1wb3J0YW50OyB9IH1cbiJdfQ== */"; - styleInject(css); - - var css$1 = ".art-video-player .art-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;cursor:pointer}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpZGVvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQ0UsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxNQUFPLENBQ1AsS0FBTSxDQUNOLE9BQVEsQ0FDUixRQUFTLENBQ1QsVUFBVyxDQUNYLFdBQVksQ0FDWixxQkFBc0IsQ0FDdEIsY0FBaUIiLCJmaWxlIjoidmlkZW8uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuIl19 */"; - styleInject(css$1); - - var css$2 = ".art-video-player .art-subtitle{display:none;position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;font-size:20px;pointer-events:none;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.art-video-player .art-subtitle p{margin:5px 0}.art-video-player.art-subtitle-show .art-subtitle{display:block}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN1YnRpdGxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0NBQ0UsWUFBYSxDQUNiLGlCQUFrQixDQUNsQixVQUFXLENBQ1gsV0FBWSxDQUNaLFVBQVcsQ0FDWCxjQUFlLENBQ2YsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxjQUFlLENBQ2YsbUJBQW9CLENBQ3BCLHlDQUFtRCxDQUNuRCxrQ0FDRSxZQUFlLENBRW5CLGtEQUNFLGFBQWdCIiwiZmlsZSI6InN1YnRpdGxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXN1YnRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyMDtcbiAgYm90dG9tOiA0MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMC41cHggMC41cHggMC41cHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc3VidGl0bGUgcCB7XG4gICAgbWFyZ2luOiA1cHggMDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtc3VidGl0bGUtc2hvdyAuYXJ0LXN1YnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiJdfQ== */"; - styleInject(css$2); - - var css$3 = ".art-video-player .art-danmuku{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhbm11a3Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFDRSxpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFFBQVMsQ0FDVCxVQUFXLENBQ1gsV0FBWSxDQUNaLGVBQWdCLENBQ2hCLG1CQUFzQiIsImZpbGUiOiJkYW5tdWt1LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWRhbm11a3Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDMwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4iXX0= */"; - styleInject(css$3); - - var css$4 = ".art-video-player .art-layers{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxheWVycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhCQUNFLFlBQWEsQ0FDYixpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFFBQVMsQ0FDVCxVQUFXLENBQ1gsV0FBWSxDQUNaLGVBQWdCLENBQ2hCLG1CQUFzQixDQUN0Qix5Q0FDRSxtQkFBc0IsQ0FFMUIsNkNBQ0UsYUFBZ0IiLCJmaWxlIjoibGF5ZXJzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxheWVycyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNDA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1sYXllcnMgLmFydC1sYXllciB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWxheWVyLXNob3cgLmFydC1sYXllcnMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuIl19 */"; - styleInject(css$4); - - var css$5 = ".art-video-player .art-mask{display:none;z-index:50;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.art-video-player .art-mask,.art-video-player .art-mask .art-state{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.art-video-player .art-mask .art-state{right:30px;bottom:55px;width:60px;height:60px;opacity:.6}.art-video-player.art-mask-show .art-mask,.art-video-player .art-mask .art-state{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1hc2suc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFDRSxZQUFhLENBSWIsVUFBVyxDQUNYLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFFBQVMsQ0FDVCxVQUFXLENBQ1gsV0FBWSxDQUNaLGVBQWdCLENBQ2hCLG1CQUFzQixDQUN0QixtRUFaQSx3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQix1QkFBdUIsQ0FBdkIsb0JBQXVCLENBQXZCLHNCQUF1QixDQUN2QixpQkFtQmdCLENBVGhCLHVDQUtFLFVBQVcsQ0FDWCxXQUFZLENBQ1osVUFBVyxDQUNYLFdBQVksQ0FDWixVQUFjLENBRWxCLGlGQVZJLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQVdhIiwiZmlsZSI6Im1hc2suc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDUwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayAuYXJ0LXN0YXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAzMHB4O1xuICAgIGJvdHRvbTogNTVweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1tYXNrLXNob3cgLmFydC1tYXNrIHtcbiAgZGlzcGxheTogZmxleDsgfVxuIl19 */"; - styleInject(css$5); - - var css$6 = ".art-video-player .art-loading{display:none;position:absolute;z-index:70;left:0;top:0;right:0;bottom:0;width:100%;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:none}.art-video-player.art-loading-show .art-loading{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvYWRpbmcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFDRSxZQUFhLENBQ2IsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxNQUFPLENBQ1AsS0FBTSxDQUNOLE9BQVEsQ0FDUixRQUFTLENBQ1QsVUFBVyxDQUNYLFdBQVksQ0FDWix3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQix1QkFBdUIsQ0FBdkIsb0JBQXVCLENBQXZCLHNCQUF1QixDQUN2QixtQkFBc0IsQ0FFeEIsZ0RBQ0UsbUJBQWEsQ0FBYixtQkFBYSxDQUFiLFlBQWUiLCJmaWxlIjoibG9hZGluZy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIgLmFydC1sb2FkaW5nIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA3MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWxvYWRpbmctc2hvdyAuYXJ0LWxvYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4iXX0= */"; - styleInject(css$6); - - var css$7 = ".art-video-player .art-bottom{position:absolute;z-index:60;left:0;right:0;bottom:0;height:100px;padding:55px 10px 0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;pointer-events:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.art-video-player .art-bottom .art-progress{position:relative;pointer-events:auto}.art-video-player .art-bottom .art-progress .art-control-progress{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:4px;cursor:pointer}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{position:relative;height:50%;width:100%;background:hsla(0,0%,100%,.2)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:0;background:hsla(0,0%,100%,.4)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;height:100%;width:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;height:100%;pointer-events:none}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:100%;background:#fff;pointer-events:auto}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{display:none;position:absolute;z-index:40;top:-5px;left:-6.5px;width:13px;height:13px;border-radius:50%}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{display:none;position:absolute;z-index:50;top:-25px;left:0;height:20px;padding:0 5px;line-height:20px;color:#fff;font-size:12px;text-align:center;background:rgba(0,0,0,.7);border-radius:3px;font-weight:700;white-space:nowrap}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-indicator,.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-tip{display:block}.art-video-player .art-bottom .art-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.art-video-player .art-bottom .art-controls{position:relative;pointer-events:auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:40px;padding:5px 0}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-bottom .art-controls .art-control{opacity:.9;font-size:12px;height:36px;min-width:36px;line-height:36px;text-align:center;cursor:pointer}.art-video-player .art-bottom .art-controls .art-control .art-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;float:left;height:36px;width:36px}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{position:relative;float:left;width:0;height:100%;-webkit-transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{position:absolute;top:50%;left:0;width:12px;height:12px;border-radius:12px;margin-top:-6px;background:#fff}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{left:-54px;background:#fff}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{left:6px;background:hsla(0,0%,100%,.2)}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{content:\"\";position:absolute;display:block;top:50%;height:3px;margin-top:-2px;width:60px}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{position:relative;z-index:30}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{display:none;position:absolute;bottom:35px;width:100px;padding:5px 0;text-align:center;color:#fff;background:rgba(0,0,0,.8);border-radius:3px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5)}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-destroy .art-progress-tip,.art-video-player.art-error .art-progress-indicator,.art-video-player.art-error .art-progress-tip{display:none!important}\n/*# sourceMappingURL=data:application/json;base64,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TUFBTyxDQUNQLFVBQVcsQ0FDWCxXQUFZLENBQ1osa0JBQW1CLENBQ25CLGVBQWdCLENBQ2hCLGVBQWtCLENBQ2xCLG1IQUNFLFVBQVcsQ0FDWCxlQUFrQixDQUNwQixrSEFDRSxRQUFTLENBQ1QsNkJBQXNDLENBQ3hDLHFPQUNFLFVBQVcsQ0FDWCxpQkFBa0IsQ0FDbEIsYUFBYyxDQUNkLE9BQVEsQ0FDUixVQUFXLENBQ1gsZUFBZ0IsQ0FDaEIsVUFBYSxDQUNuQix3RkFDRSxVQUFhLENBQ2YsaUVBQ0UsaUJBQWtCLENBQ2xCLFVBQWEsQ0FDYiwrRUFDRSxZQUFhLENBQ2IsaUJBQWtCLENBQ2xCLFdBQVksQ0FDWixXQUFZLENBQ1osYUFBYyxDQUNkLGlCQUFrQixDQUNsQixVQUFXLENBQ1gseUJBQThCLENBQzlCLGlCQUFvQixDQUNwQixpR0FDRSxXQUFZLENBQ1osZ0JBQWlCLENBQ2pCLGVBQWdCLENBQ2hCLHNCQUF1QixDQUN2QixrQkFBbUIsQ0FDbkIsa0NBQXlDLENBQ3pDLHVHQUNFLG1DQUE0QyxDQUNsRCxxRkFDRSxhQUFnQixDQUV4Qix1RkFDRSxTQUFVLENBQ1Ysa0JBQXFCLENBRXZCLHdNQUdFLHNCQUEwQiIsImZpbGUiOiJib3R0b20uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA2MDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgcGFkZGluZzogNTVweCAxMHB4IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQURHQ0FZQUFBQVQrT3FGQUFBQWRrbEVRVlFvejQyUVFRN0FJQWdFRi9UL0Qra2JxL1JXQWxuUXl5YXpBNGFvQUI0RnNCU0EvYkZqdUYxRU9MN1ZicklyQnV1c21ydDRaWk9SZmI2ZWhiV2RuUkhFSWlJVGFFVUthNUVKcVVha1JTYUVZQkpTQ1kyZEVzdFFZN0F1eGFod1hGcnZabVdsMnJoNEpaMDd6OWRMdGVzZk5qNXEwRlUzQTVPYmJ3QUFBQUJKUlU1RXJrSmdnZz09KSByZXBlYXQteCBib3R0b207IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3Mge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtbG9hZGVkIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtcGxheWVkIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMjA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMDsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1oaWdobGlnaHQge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAzMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaGlnaGxpZ2h0IHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiA0MDtcbiAgICAgICAgICB0b3A6IC01cHg7XG4gICAgICAgICAgbGVmdDogLTYuNXB4O1xuICAgICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IuYXJ0LXNob3ctaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLXRpcCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgICAgdG9wOiAtMjVweDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3M6aG92ZXIgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzOmhvdmVyIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWluZGljYXRvcixcbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3M6aG92ZXIgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtdGlwIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXRodW1ibmFpbHMge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogOHB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA1cHggMDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1sZWZ0LFxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wge1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgbWluLXdpZHRoOiAzNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sIC5hcnQtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICB3aWR0aDogMzZweDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2w6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtb25seVRleHQge1xuICAgICAgcGFkZGluZzogMCAxMHB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2l0aW9uOiBtYXJnaW4gMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSwgd2lkdGggMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAtNTRweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjphZnRlciB7XG4gICAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YmVmb3JlLCAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICAgIHdpZHRoOiA2MHB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lOmhvdmVyIC5hcnQtdm9sdW1lLXBhbmVsIHtcbiAgICAgIHdpZHRoOiA2MHB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAzMDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSAuYXJ0LXF1YWxpdHlzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDM1cHg7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkgLmFydC1xdWFsaXR5cyAuYXJ0LXF1YWxpdHktaXRlbSB7XG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IC5hcnQtcXVhbGl0eXMgLmFydC1xdWFsaXR5LWl0ZW06aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5OmhvdmVyIC5hcnQtcXVhbGl0eXMge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtY29udHJvbC1zaG93IC5hcnQtYm90dG9tLCAuYXJ0LXZpZGVvLXBsYXllci5hcnQtaG92ZXIgLmFydC1ib3R0b20ge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1lcnJvciAuYXJ0LXByb2dyZXNzLWluZGljYXRvcixcbi5hcnQtdmlkZW8tcGxheWVyLmFydC1lcnJvciAuYXJ0LXByb2dyZXNzLXRpcCwgLmFydC12aWRlby1wbGF5ZXIuYXJ0LWRlc3Ryb3kgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IsXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtZGVzdHJveSAuYXJ0LXByb2dyZXNzLXRpcCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuIl19 */"; - styleInject(css$7); - - var css$8 = ".art-video-player .art-notice{display:none;font-size:14px;position:absolute;z-index:80;left:0;top:0;padding:10px;width:100%;pointer-events:none}.art-video-player .art-notice .art-notice-inner{display:inline-block;padding:5px 10px;color:#fff;background:rgba(0,0,0,.6);border-radius:3px}.art-video-player.art-notice-show .art-notice{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vdGljZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhCQUNFLFlBQWEsQ0FDYixjQUFlLENBQ2YsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxNQUFPLENBQ1AsS0FBTSxDQUNOLFlBQWEsQ0FDYixVQUFXLENBQ1gsbUJBQXNCLENBQ3RCLGdEQUNFLG9CQUFxQixDQUNyQixnQkFBaUIsQ0FDakIsVUFBVyxDQUNYLHlCQUE4QixDQUM5QixpQkFBb0IsQ0FFeEIsOENBQ0UsbUJBQWEsQ0FBYixtQkFBYSxDQUFiLFlBQWUiLCJmaWxlIjoibm90aWNlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW5vdGljZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA4MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ub3RpY2UgLmFydC1ub3RpY2UtaW5uZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1ub3RpY2Utc2hvdyAuYXJ0LW5vdGljZSB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiJdfQ== */"; - styleInject(css$8); - - var css$9 = ".art-video-player .art-contextmenus{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:120;left:0;top:0;min-width:200px;padding:5px 0;background:rgba(0,0,0,.9);border-radius:3px}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;font-size:13px;display:block;color:#fff;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.1)}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{display:inline-block;padding:0 7px}.art-video-player .art-contextmenus .art-contextmenu span.art-current,.art-video-player .art-contextmenus .art-contextmenu span:hover{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRleHRtZW51LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQ0UsWUFBYSxDQUNiLDJCQUFzQixDQUF0Qiw0QkFBc0IsQ0FBdEIseUJBQXNCLENBQXRCLHFCQUFzQixDQUN0QixpQkFBa0IsQ0FDbEIsV0FBWSxDQUNaLE1BQU8sQ0FDUCxLQUFNLENBQ04sZUFBZ0IsQ0FDaEIsYUFBYyxDQUNkLHlCQUE4QixDQUM5QixpQkFBb0IsQ0FDcEIscURBQ0UsY0FBZSxDQUNmLGNBQWUsQ0FDZixhQUFjLENBQ2QsVUFBVyxDQUNYLGdCQUFpQixDQUNqQixlQUFnQixDQUNoQixzQkFBdUIsQ0FDdkIsa0JBQW1CLENBQ25CLGtDQUF1QyxDQUN2QywwQ0FBbUQsQ0FDbkQsdURBQ0UsVUFBVyxDQUNYLG9CQUF1QixDQUN6QiwwREFDRSxvQkFBcUIsQ0FDckIsYUFBZ0IsQ0FDaEIsc0lBQ0UsYUFBZ0IsQ0FDcEIsMkRBQ0UsbUNBQTRDLENBQzlDLGdFQUNFLGtCQUFxQixDQUUzQix5REFDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBZSIsImZpbGUiOiJjb250ZXh0bWVudS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMge1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEyMDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA3cHggMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCA3cHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgc3Bhbjpob3ZlciwgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSBzcGFuLmFydC1jdXJyZW50IHtcbiAgICAgICAgY29sb3I6ICMwMGM5ZmY7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnU6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250ZXh0bWVudS1zaG93IC5hcnQtY29udGV4dG1lbnVzIHtcbiAgZGlzcGxheTogZmxleDsgfVxuIl19 */"; - styleInject(css$9); - - var css$a = ".art-video-player .art-settings{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute;z-index:90;left:0;top:0;height:100%;width:100%;opacity:0;visibility:hidden;pointer-events:none;overflow:hidden}.art-video-player .art-settings .art-setting-inner{position:absolute;top:0;right:-300px;bottom:0;width:300px;height:100%;font-size:12px;background:rgba(0,0,0,.9);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;overflow:auto}.art-video-player .art-settings .art-setting-inner .art-setting-body{overflow-y:auto;width:100%;height:100%}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:10px 15px}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting .art-setting-header{margin-bottom:5px}.art-video-player .art-settings .art-setting-radio{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-settings .art-setting-radio .art-radio-item{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 2px}.art-video-player .art-settings .art-setting-radio .art-radio-item button{height:22px;width:100%;border:none;outline:none;color:#fff;background:hsla(0,0%,100%,.2);border-radius:2px}.art-video-player .art-settings .art-setting-radio .art-radio-item.current button{background-color:#00a1d6}.art-video-player .art-settings .art-setting-range input{width:100%;height:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:hsla(0,0%,100%,.5)}.art-video-player .art-settings .art-setting-checkbox input{height:14px;width:14px;margin-right:5px}.art-video-player .art-settings .art-setting-upload{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-settings .art-setting-upload .art-upload-btn{width:80px;height:22px;line-height:22px;border:none;outline:none;color:#fff;background:hsla(0,0%,100%,.2);border-radius:2px;text-align:center}.art-video-player .art-settings .art-setting-upload .art-upload-value{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:22px;line-height:22px;padding-left:10px}.art-video-player.art-setting-show .art-settings{opacity:1;visibility:visible;pointer-events:auto}.art-video-player.art-setting-show .art-settings .art-setting-inner{right:0}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNldHRpbmcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQ0FDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBYSxDQUNiLHdCQUFtQixDQUFuQixxQkFBbUIsQ0FBbkIsa0JBQW1CLENBQ25CLHVCQUF1QixDQUF2QixvQkFBdUIsQ0FBdkIsc0JBQXVCLENBQ3ZCLGlCQUFrQixDQUNsQixVQUFXLENBQ1gsTUFBTyxDQUNQLEtBQU0sQ0FDTixXQUFZLENBQ1osVUFBVyxDQUNYLFNBQVUsQ0FDVixpQkFBa0IsQ0FDbEIsbUJBQW9CLENBQ3BCLGVBQWtCLENBQ2xCLG1EQUNFLGlCQUFrQixDQUNsQixLQUFNLENBQ04sWUFBYSxDQUNiLFFBQVMsQ0FDVCxXQUFZLENBQ1osV0FBWSxDQUNaLGNBQWUsQ0FDZix5QkFBOEIsQ0FDOUIsc0NBQWdDLENBQWhDLDhCQUFnQyxDQUNoQyxhQUFnQixDQUNoQixxRUFDRSxlQUFnQixDQUNoQixVQUFXLENBQ1gsV0FBYyxDQUNkLGtGQUNFLDBDQUFpRCxDQUNqRCxpQkFBb0IsQ0FDcEIsc0dBQ0UsaUJBQW9CLENBQzVCLG1EQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFlLENBQ2YsbUVBQ0Usa0JBQU8sQ0FBUCxVQUFPLENBQVAsTUFBTyxDQUNQLGFBQWdCLENBQ2hCLDBFQUNFLFdBQVksQ0FDWixVQUFXLENBQ1gsV0FBWSxDQUNaLFlBQWEsQ0FDYixVQUFXLENBQ1gsNkJBQW9DLENBQ3BDLGlCQUFvQixDQUN0QixrRkFDRSx3QkFBMkIsQ0FDakMseURBQ0UsVUFBVyxDQUNYLFVBQVcsQ0FDWCxZQUFhLENBQ2IsdUJBQWdCLENBQWhCLG9CQUFnQixDQUFoQixlQUFnQixDQUNoQixtQ0FBNEMsQ0FDOUMsNERBQ0UsV0FBWSxDQUNaLFVBQVcsQ0FDWCxnQkFBbUIsQ0FDckIsb0RBQ0UsbUJBQWEsQ0FBYixtQkFBYSxDQUFiLFlBQWUsQ0FDZixvRUFDRSxVQUFXLENBQ1gsV0FBWSxDQUNaLGdCQUFpQixDQUNqQixXQUFZLENBQ1osWUFBYSxDQUNiLFVBQVcsQ0FDWCw2QkFBb0MsQ0FDcEMsaUJBQWtCLENBQ2xCLGlCQUFvQixDQUN0QixzRUFDRSxrQkFBTyxDQUFQLFVBQU8sQ0FBUCxNQUFPLENBQ1AsZUFBZ0IsQ0FDaEIsc0JBQXVCLENBQ3ZCLGtCQUFtQixDQUNuQixXQUFZLENBQ1osZ0JBQWlCLENBQ2pCLGlCQUFvQixDQUUxQixpREFDRSxTQUFVLENBQ1Ysa0JBQW1CLENBQ25CLG1CQUFzQixDQUN0QixvRUFDRSxPQUFVIiwiZmlsZSI6InNldHRpbmcuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtMzAwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICBvdmVyZmxvdzogYXV0bzsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctaW5uZXIgLmFydC1zZXR0aW5nLWJvZHkgLmFydC1zZXR0aW5nIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IC5hcnQtc2V0dGluZyAuYXJ0LXNldHRpbmctaGVhZGVyIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0ge1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDAgMnB4OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0gYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIC5hcnQtcmFkaW8taXRlbS5jdXJyZW50IGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGExZDY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFuZ2UgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogM3B4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctY2hlY2tib3ggaW5wdXQge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy11cGxvYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy11cGxvYWQgLmFydC11cGxvYWQtYnRuIHtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy11cGxvYWQgLmFydC11cGxvYWQtdmFsdWUge1xuICAgICAgZmxleDogMTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtc2V0dGluZy1zaG93IC5hcnQtc2V0dGluZ3Mge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtc2V0dGluZy1zaG93IC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIHtcbiAgICByaWdodDogMDsgfVxuIl19 */"; - styleInject(css$a); - - var css$b = ".art-video-player .art-info{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;left:10px;top:10px;z-index:100;width:350px;min-height:150px;padding:10px;color:#fff;font-size:12px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.9)}.art-video-player .art-info .art-info-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:5px}.art-video-player .art-info .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-item .art-info-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:5px}.art-video-player .art-info .art-info-close{position:absolute;top:5px;right:5px;cursor:pointer}.art-video-player.art-info-show .art-info{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZm8uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFDRSxZQUFhLENBQ2IsMkJBQXNCLENBQXRCLDRCQUFzQixDQUF0Qix5QkFBc0IsQ0FBdEIscUJBQXNCLENBQ3RCLGlCQUFrQixDQUNsQixTQUFVLENBQ1YsUUFBUyxDQUNULFdBQVksQ0FDWixXQUFZLENBQ1osZ0JBQWlCLENBQ2pCLFlBQWEsQ0FDYixVQUFXLENBQ1gsY0FBZSxDQUNmLHdGQUErRixDQUMvRixrQ0FBbUMsQ0FDbkMseUJBQWdDLENBQ2hDLDJDQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFhLENBQ2IsaUJBQW9CLENBQ3BCLDJEQUNFLFdBQVksQ0FDWixnQkFBbUIsQ0FDckIsNkRBQ0Usa0JBQU8sQ0FBUCxVQUFPLENBQVAsTUFBTyxDQUNQLGVBQWdCLENBQ2hCLHNCQUF1QixDQUN2QixrQkFBbUIsQ0FDbkIsZ0JBQW1CLENBQ3ZCLDRDQUNFLGlCQUFrQixDQUNsQixPQUFRLENBQ1IsU0FBVSxDQUNWLGNBQWlCLENBRXJCLDBDQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFlIiwiZmlsZSI6ImluZm8uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiAxMHB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAzNTBweDtcbiAgbWluLWhlaWdodDogMTUwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBOb3RvIFNhbnMgQ0pLIFNDIERlbWlMaWdodCwgUm9ib3RvLCBTZWdvZSBVSSwgVGFob21hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWl0ZW0gLmFydC1pbmZvLXRpdGxlIHtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtIC5hcnQtaW5mby1jb250ZW50IHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNXB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1pbmZvLXNob3cgLmFydC1pbmZvIHtcbiAgZGlzcGxheTogZmxleDsgfVxuIl19 */"; - styleInject(css$b); - - var css$c = ".art-video-player.art-hide-cursor *{cursor:none!important}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhpZGVDdXJzb3Iuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FDRSxxQkFBeUIiLCJmaWxlIjoiaGlkZUN1cnNvci5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIuYXJ0LWhpZGUtY3Vyc29yICoge1xuICBjdXJzb3I6IG5vbmUgIWltcG9ydGFudDsgfVxuIl19 */"; - styleInject(css$c); - - var css$d = ".art-video-player[data-aspect-ratio] video{-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:fill;object-fit:fill}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzcGVjdFJhdGlvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQ0UsOEJBQXVCLENBQXZCLHNCQUF1QixDQUN2QixrQkFBZ0IsQ0FBaEIsZUFBa0IiLCJmaWxlIjoiYXNwZWN0UmF0aW8uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtYXNwZWN0LXJhdGlvXSB2aWRlbyB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBvYmplY3QtZml0OiBmaWxsOyB9XG4iXX0= */"; - styleInject(css$d); - - var css$e = ".art-video-player.art-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZ1bGxzY3JlZW5XZWIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FDRSxjQUFlLENBQ2YsWUFBYSxDQUNiLFVBQVcsQ0FDWCxXQUFZLENBQ1osTUFBTyxDQUNQLEtBQU0sQ0FDTixPQUFRLENBQ1IsUUFBVyIsImZpbGUiOiJmdWxsc2NyZWVuV2ViLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllci5hcnQtd2ViLWZ1bGxzY3JlZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDsgfVxuIl19 */"; - styleInject(css$e); - - var css$f = ".art-video-player .art-pip-header{display:none;position:absolute;z-index:110;left:0;top:0;right:0;height:35px;line-height:35px;color:#fff;background:rgba(0,0,0,.5);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;opacity:0;visibility:hidden;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.art-video-player .art-pip-header .art-pip-title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:move}.art-video-player .art-pip-header .art-pip-close{width:35px;text-align:center;font-size:22px;cursor:pointer}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-pip{position:fixed;z-index:9999;width:400px;height:225px;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2)}.art-video-player.art-pip .art-pip-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.art-video-player.art-pip.art-hover .art-pip-header{opacity:1;visibility:visible}.art-video-player.art-pip .art-mask .art-state{position:static}.art-video-player.art-pip .art-bottom,.art-video-player.art-pip .art-contextmenu,.art-video-player.art-pip .art-danmu,.art-video-player.art-pip .art-info,.art-video-player.art-pip .art-layers,.art-video-player.art-pip .art-notice,.art-video-player.art-pip .art-setting,.art-video-player.art-pip .art-subtitle{display:none!important}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpcC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUNFLFlBQWEsQ0FDYixpQkFBa0IsQ0FDbEIsV0FBWSxDQUNaLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFdBQVksQ0FDWixnQkFBaUIsQ0FDakIsVUFBVyxDQUNYLHlCQUE4QixDQUM5Qix3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQix3QkFBOEIsQ0FBOUIscUJBQThCLENBQTlCLDZCQUE4QixDQUM5QixTQUFVLENBQ1YsaUJBQWtCLENBQ2xCLHNDQUFnQyxDQUFoQyw4QkFBa0MsQ0FDbEMsaURBQ0Usa0JBQU8sQ0FBUCxVQUFPLENBQVAsTUFBTyxDQUNQLGNBQWUsQ0FDZixlQUFnQixDQUNoQixzQkFBdUIsQ0FDdkIsa0JBQW1CLENBQ25CLFdBQWMsQ0FDaEIsaURBQ0UsVUFBVyxDQUNYLGlCQUFrQixDQUNsQixjQUFlLENBQ2YsY0FBaUIsQ0FFckIsa0NBQ0UsVUFBYyxDQUVoQiwwQkFDRSxjQUFlLENBQ2YsWUFBYSxDQUNiLFdBQVksQ0FDWixZQUFhLENBQ2IseUVBQTJFLENBQTNFLGlFQUE2RSxDQUM3RSwwQ0FDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBYSxDQUNiLHdCQUFpQixDQUFqQixxQkFBaUIsQ0FBakIsb0JBQWlCLENBQWpCLGdCQUFtQixDQUNyQixvREFDRSxTQUFVLENBQ1Ysa0JBQXFCLENBQ3ZCLCtDQUNFLGVBQWtCLENBQ3BCLHFUQVFFLHNCQUEwQiIsImZpbGUiOiJwaXAuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtcGlwLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1waXAtaGVhZGVyIC5hcnQtcGlwLXRpdGxlIHtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBtb3ZlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtcGlwLWhlYWRlciAuYXJ0LXBpcC1jbG9zZSB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWlzLWRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC43OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHdpZHRoOiA0MDBweDtcbiAgaGVpZ2h0OiAyMjVweDtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAzcHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAgLmFydC1waXAtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAuYXJ0LWhvdmVyIC5hcnQtcGlwLWhlYWRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAgLmFydC1tYXNrIC5hcnQtc3RhdGUge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LXBpcCAuYXJ0LWNvbnRleHRtZW51LFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtYm90dG9tLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtZGFubXUsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAgLmFydC1pbmZvLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtbGF5ZXJzLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtbm90aWNlLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtc2V0dGluZyxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LXBpcCAuYXJ0LXN1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiJdfQ== */"; - styleInject(css$f); - - var css$g = ".art-auto-size{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dG9TaXplLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBYSxDQUNiLHdCQUFtQixDQUFuQixxQkFBbUIsQ0FBbkIsa0JBQW1CLENBQ25CLHVCQUF1QixDQUF2QixvQkFBdUIsQ0FBdkIsc0JBQXlCIiwiZmlsZSI6ImF1dG9TaXplLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LWF1dG8tc2l6ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4iXX0= */"; - styleInject(css$g); - - var css$h = ".art-video-player[data-flip=horizontal] .art-video{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{-webkit-transform:scaleY(-1);transform:scaleY(-1)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZsaXAuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtREFDRSw0QkFBcUIsQ0FBckIsb0JBQXVCLENBRXpCLGlEQUNFLDRCQUFxQixDQUFyQixvQkFBdUIiLCJmaWxlIjoiZmxpcC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXJbZGF0YS1mbGlwPVwiaG9yaXpvbnRhbFwiXSAuYXJ0LXZpZGVvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtZmxpcD1cInZlcnRpY2FsXCJdIC5hcnQtdmlkZW8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7IH1cbiJdfQ== */"; - styleInject(css$h); - - var css$i = ":root{--balloon-color:rgba(16,16,16,0.95);--balloon-font-size:12px;--balloon-move:4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:#fff;content:attr(aria-label);padding:.5em 1em;white-space:nowrap;line-height:1.2}[aria-label][data-balloon-pos]:after,[aria-label][data-balloon-pos]:before{opacity:0;pointer-events:none;-webkit-transition:all .18s ease-out .18s;transition:all .18s ease-out .18s;position:absolute;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top:5px solid var(--balloon-color);content:\"\"}[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos]:hover:before{opacity:1;pointer-events:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,var(--balloon-move));transform:translate(-50%,var(--balloon-move));-webkit-transform-origin:top;transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before{-webkit-transform:translate(-50%);transform:translate(-50%)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhbGxvb24uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUNFLG1DQUF1QyxDQUN2Qyx3QkFBeUIsQ0FDekIsa0JBQXFCLENBRXZCLHFDQUNFLGdCQUFtQixDQUVyQiwrQkFDRSxpQkFBa0IsQ0FDbEIsY0FBaUIsQ0FDakIscUNBSUUsYUFBYyxDQUNkLHdIQUF3SSxDQUN4SSxlQUFtQixDQUNuQixpQkFBa0IsQ0FDbEIsZ0JBQWlCLENBQ2pCLGtDQUFtQyxDQUNuQywrQkFBZ0MsQ0FDaEMsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCx3QkFBeUIsQ0FDekIsZ0JBQWtCLENBRWxCLGtCQUFtQixDQUNuQixlQUNhLENBQ2YsMkVBbEJFLFNBQVUsQ0FDVixtQkFBb0IsQ0FDcEIseUNBQW9DLENBQXBDLGlDQUFvQyxDQVlwQyxpQkFBa0IsQ0FHbEIsVUFXYSxDQVZmLHNDQUNFLE9BQVEsQ0FDUixRQUFTLENBRVQsNEJBQXNDLENBQXRDLHlDQUFzQyxDQUl0QyxVQUVhLENBQ2YsdUZBQ0UsU0FBVSxDQUNWLG1CQUFzQixDQUN4QiwwREFHRSxrQkFFdUIsQ0FDekIscUhBTEUsV0FBWSxDQUNaLFFBQVMsQ0FFVCxxREFBK0MsQ0FBL0MsNkNBQStDLENBQy9DLDRCQUFxQixDQUFyQixvQkFLdUIsQ0FHekIsaUlBQ0UsaUNBQTZCLENBQTdCLHlCQUErQiIsImZpbGUiOiJiYWxsb29uLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6cm9vdCB7XG4gIC0tYmFsbG9vbi1jb2xvcjogcmdiYSgxNiwgMTYsIDE2LCAwLjk1KTtcbiAgLS1iYWxsb29uLWZvbnQtc2l6ZTogMTJweDtcbiAgLS1iYWxsb29uLW1vdmU6IDRweDsgfVxuXG5idXR0b25bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIHRleHQtaW5kZW50OiAwO1xuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1iYWxsb29uLWZvbnQtc2l6ZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmFsbG9vbi1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGNvbnRlbnQ6IGF0dHIoYXJpYS1sYWJlbCk7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgei1pbmRleDogMTA7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdOmJlZm9yZSB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWJhbGxvb24tY29sb3IpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YmVmb3JlLCBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YWZ0ZXIge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCB2YXIoLS1iYWxsb29uLW1vdmUpKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YmVmb3JlIHtcbiAgICBib3R0b206IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIHZhcigtLWJhbGxvb24tbW92ZSkpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpob3ZlcjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106aG92ZXI6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuIl19 */"; - styleInject(css$i); - - var optionValidator = createCommonjsModule(function (module, exports) { - !function(r,t){module.exports=t();}(commonjsGlobal,function(){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 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - data[_key2 - 1] = arguments[_key2]; - } - - for (var i = 0; i < evtArr.length; i += 1) { - evtArr[i].fn.apply(evtArr[i].ctx, data); - } - - return this; - } - }, { - key: "off", - value: function off(name, callback) { - var e = this.e || (this.e = {}); - var evts = e[name]; - var liveEvents = []; - - if (evts && callback) { - for (var i = 0, len = evts.length; i < len; i += 1) { - if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]); - } - } - - if (liveEvents.length) { - e[name] = liveEvents; - } else { - delete e[name]; - } - - return this; - } - }]); - - return Emitter; - }(); - - function query(selector) { - var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; - return parent.querySelector(selector); - } - function queryAll(selector) { - var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; - return Array.from(parent.querySelectorAll(selector)); - } - function addClass(target, className) { - return target.classList.add(className); - } - function removeClass(target, className) { - return target.classList.remove(className); - } - function hasClass(target, className) { - return target.classList.contains(className); - } - function append(parent, child) { - if (child instanceof Element) { - parent.appendChild(child); - } else { - parent.insertAdjacentHTML('beforeend', String(child)); - } - - return parent.lastElementChild || parent.lastChild; - } - function remove(child) { - return child.parentNode.removeChild(child); - } - function setStyle(element, key, value) { - element.style[key] = value; - return element; - } - function setStyles(element, styles) { - Object.keys(styles).forEach(function (key) { - setStyle(element, key, styles[key]); - }); - return element; - } - function getStyle(element, key) { - var numberType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - var value = window.getComputedStyle(element, null).getPropertyValue(key); - return numberType ? parseFloat(value) : value; - } - function sublings(target) { - return Array.from(target.parentElement.children).filter(function (item) { - return item !== target; - }); - } - function inverseClass(target, className) { - sublings(target).forEach(function (item) { - return removeClass(item, className); - }); - addClass(target, className); - } - function tooltip(target, msg) { - var pos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'up'; - target.setAttribute('aria-label', msg); - target.setAttribute('data-balloon-pos', pos); - } - - function _isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; - } - - var isNativeFunction = _isNativeFunction; - - var construct = createCommonjsModule(function (module) { - function isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); - return true; - } catch (e) { - return false; - } - } - - function _construct(Parent, args, Class) { - if (isNativeReflectConstruct()) { - module.exports = _construct = Reflect.construct; - } else { - module.exports = _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) setPrototypeOf(instance, Class.prototype); - return instance; - }; - } - - return _construct.apply(null, arguments); - } - - module.exports = _construct; - }); - - var wrapNativeSuper = createCommonjsModule(function (module) { - function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - - module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !isNativeFunction(Class)) return Class; - - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - - _cache.set(Class, Wrapper); - } - - function Wrapper() { - return construct(Class, arguments, getPrototypeOf(this).constructor); - } - - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return setPrototypeOf(Wrapper, Class); - }; - - return _wrapNativeSuper(Class); - } - - module.exports = _wrapNativeSuper; - }); - - var ArtPlayerError = - /*#__PURE__*/ - function (_Error) { - inherits(ArtPlayerError, _Error); - - function ArtPlayerError(message, context) { - var _this; - - classCallCheck(this, ArtPlayerError); - - _this = possibleConstructorReturn(this, getPrototypeOf(ArtPlayerError).call(this, message)); - - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(assertThisInitialized(_this), context || _this.constructor); - } - - _this.name = 'ArtPlayerError'; - return _this; - } - - return ArtPlayerError; - }(wrapNativeSuper(Error)); - function errorHandle(condition, msg) { - if (!condition) { - throw new ArtPlayerError(msg); - } - - return condition; - } - - function srtToVtt(srtText) { - return 'WEBVTT \r\n\r\n'.concat(srtText.replace(/{[\s\S]*?}/g, '').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').concat('\r\n\r\n')); - } - function vttToBlob(vttText) { - return URL.createObjectURL(new Blob([vttText], { - type: 'text/vtt' - })); - } - function assToVtt(ass) { - var reAss = new RegExp('Dialogue:\\s\\d,' + '(\\d+:\\d\\d:\\d\\d.\\d\\d),' + '(\\d+:\\d\\d:\\d\\d.\\d\\d),' + '([^,]*),' + '([^,]*),' + '(?:[^,]*,){4}' + '([\\s\\S]*)$', 'i'); - - function fixTime() { - var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return time.split(/[:.]/).map(function (item, index, arr) { - if (index === arr.length - 1) { - if (item.length === 1) { - return ".".concat(item, "00"); - } - - if (item.length === 2) { - return ".".concat(item, "0"); - } - } else if (item.length === 1) { - return (index === 0 ? '0' : ':0') + item; - } // eslint-disable-next-line no-nested-ternary - - - return index === 0 ? item : index === arr.length - 1 ? ".".concat(item) : ":".concat(item); - }).join(''); - } - - return "WEBVTT\n\n".concat(ass.split(/\r?\n/).map(function (line) { - var m = line.match(reAss); - if (!m) return null; - return { - start: fixTime(m[1].trim()), - end: fixTime(m[2].trim()), - text: m[5].replace(/{[\s\S]*?}/g, '').replace(/(\\N)/g, '\n').trim().split(/\r?\n/).map(function (item) { - return item.trim(); - }).join('\n') - }; - }).filter(function (line) { - return line; - }).map(function (line, index) { - if (line) { - return "".concat(index + 1, "\n").concat(line.start, " --> ").concat(line.end, "\n").concat(line.text); - } - - return ''; - }).filter(function (line) { - return line.trim(); - }).join('\n\n')); - } - - function getExt(url) { - if (url.includes('?')) { - return getExt(url.split('?')[0]); - } - - if (url.includes('#')) { - return getExt(url.split('#')[0]); - } - - return url.trim().toLowerCase().split('.').pop(); - } - function downloadFile(url, name) { - var elink = document.createElement('a'); - elink.style.display = 'none'; - elink.href = url; - elink.download = name; - document.body.appendChild(elink); - elink.click(); - document.body.removeChild(elink); - } - - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } - } - - var arrayWithoutHoles = _arrayWithoutHoles; - - function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); - } - - var iterableToArray = _iterableToArray; - - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); - } - - var nonIterableSpread = _nonIterableSpread; - - function _toConsumableArray(arr) { - return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); - } - - var toConsumableArray = _toConsumableArray; - - var def = Object.defineProperty; - var hasOwnProperty$1 = Object.prototype.hasOwnProperty; - function has$1(obj, name) { - return hasOwnProperty$1.call(obj, name); - } - function proxyPropertys(target) { - for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - sources[_key - 1] = arguments[_key]; - } - - return sources.reduce(function (result, source) { - Object.getOwnPropertyNames(source).forEach(function (key) { - errorHandle(!has$1(result, key), "Target attribute name is duplicated: ".concat(key)); - def(result, key, Object.getOwnPropertyDescriptor(source, key)); - }); - return result; - }, target); - } - function mergeDeep() { - var isObject = function isObject(item) { - return item && _typeof_1(item) === 'object' && !Array.isArray(item); - }; - - for (var _len2 = arguments.length, objects = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - objects[_key2] = arguments[_key2]; - } - - return objects.reduce(function (prev, obj) { - Object.keys(obj).forEach(function (key) { - var pVal = prev[key]; - var oVal = obj[key]; - - if (Array.isArray(pVal) && Array.isArray(oVal)) { - prev[key] = pVal.concat.apply(pVal, toConsumableArray(oVal)); - } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) { - prev[key] = mergeDeep(pVal, oVal); - } else { - prev[key] = oVal; - } - }); - return prev; - }, {}); - } - - function sleep() { - var ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - return new Promise(function (resolve) { - return setTimeout(resolve, ms); - }); - } - function debounce(func, wait, context) { - var timeout; - - function fn() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var later = function later() { - timeout = null; - func.apply(context, args); - }; - - clearTimeout(timeout); - timeout = setTimeout(later, wait); - } - - fn.clearTimeout = function ct() { - clearTimeout(timeout); - }; - - return fn; - } - function throttle(callback, delay) { - var isThrottled = false; - var args; - var context; - - function fn() { - for (var _len2 = arguments.length, args2 = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args2[_key2] = arguments[_key2]; - } - - if (isThrottled) { - args = args2; - context = this; - return; - } - - isThrottled = true; - callback.apply(this, args2); - setTimeout(function () { - isThrottled = false; - - if (args) { - fn.apply(context, args); - args = null; - context = null; - } - }, delay); - } - - return fn; - } - - function clamp(num, a, b) { - return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b)); - } - function secondToTime(second) { - var add0 = function add0(num) { - return num < 10 ? "0".concat(num) : String(num); - }; - - var hour = Math.floor(second / 3600); - var min = Math.floor((second - hour * 3600) / 60); - var sec = Math.floor(second - hour * 3600 - min * 60); - return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':'); - } - - - - var utils = /*#__PURE__*/Object.freeze({ - __proto__: null, - query: query, - queryAll: queryAll, - addClass: addClass, - removeClass: removeClass, - hasClass: hasClass, - append: append, - remove: remove, - setStyle: setStyle, - setStyles: setStyles, - getStyle: getStyle, - sublings: sublings, - inverseClass: inverseClass, - tooltip: tooltip, - ArtPlayerError: ArtPlayerError, - errorHandle: errorHandle, - srtToVtt: srtToVtt, - vttToBlob: vttToBlob, - assToVtt: assToVtt, - getExt: getExt, - downloadFile: downloadFile, - def: def, - has: has$1, - proxyPropertys: proxyPropertys, - mergeDeep: mergeDeep, - sleep: sleep, - debounce: debounce, - throttle: throttle, - clamp: clamp, - secondToTime: secondToTime - }); - - function validElement(value, type, paths) { - return errorHandle(type === 'string' || value instanceof Element, "".concat(paths.join('.'), " require 'string' or 'Element' type")); - } - - var scheme = { - container: validElement, - url: 'string', - poster: 'string', - title: 'string', - theme: 'string', - lang: 'string', - volume: 'number', - isLive: 'boolean', - muted: 'boolean', - autoplay: 'boolean', - autoSize: 'boolean', - loop: 'boolean', - flip: 'boolean', - playbackRate: 'boolean', - aspectRatio: 'boolean', - screenshot: 'boolean', - setting: 'boolean', - hotkey: 'boolean', - pip: 'boolean', - mutex: 'boolean', - backdrop: 'boolean', - fullscreen: 'boolean', - fullscreenWeb: 'boolean', - subtitleOffset: 'boolean', - miniProgressBar: 'boolean', - localVideo: 'boolean', - localSubtitle: 'boolean', - networkMonitor: 'boolean', - plugins: ['function'], - whitelist: ['string|function|regexp'], - layers: [{ - disable: 'boolean|undefined', - name: 'string|undefined', - index: 'number|undefined', - html: validElement, - style: 'object|undefined', - click: 'function|undefined', - mounted: 'function|undefined', - tooltip: 'string|undefined' - }], - contextmenu: [{ - disable: 'boolean|undefined', - name: 'string|undefined', - index: 'number|undefined', - html: validElement, - style: 'object|undefined', - click: 'function|undefined', - mounted: 'function|undefined', - tooltip: 'string|undefined' - }], - quality: [{ - default: 'boolean|undefined', - name: 'string', - url: 'string' - }], - controls: [{ - disable: 'boolean|undefined', - name: 'string|undefined', - index: 'number|undefined', - html: validElement, - style: 'object|undefined', - click: 'function|undefined', - mounted: 'function|undefined', - tooltip: 'string|undefined', - position: function position(value, type, paths) { - var position = ['top', 'left', 'right']; - return errorHandle(position.includes(value), "".concat(paths.join('.'), " only accept ").concat(position.toString(), " as parameters")); - } - }], - highlight: [{ - time: 'number', - text: 'string' - }], - thumbnails: { - url: 'string', - number: 'number', - width: 'number', - height: 'number', - column: 'number' - }, - subtitle: { - url: 'string', - style: 'object' - }, - moreVideoAttr: 'object', - icons: 'object', - customType: 'object' - }; - - var config = { - propertys: ['audioTracks', 'autoplay', 'buffered', 'controller', 'controls', 'crossOrigin', 'currentSrc', 'currentTime', 'defaultMuted', 'defaultPlaybackRate', 'duration', 'ended', 'error', 'loop', 'mediaGroup', 'muted', 'networkState', 'paused', 'playbackRate', 'played', 'preload', 'readyState', 'seekable', 'seeking', 'src', 'startDate', 'textTracks', 'videoTracks', 'volume'], - 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'] - }; - - var Whitelist = function Whitelist(art) { - var _this = this; - - classCallCheck(this, Whitelist); - - var kindOf = art.constructor.kindOf, - whitelist = art.option.whitelist; - this.ua = navigator.userAgent; - this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.ua); - this.state = !this.isMobile || whitelist.some(function (item) { - switch (kindOf(item)) { - case 'string': - return _this.ua.indexOf(item) > -1; - - case 'function': - return item(_this.ua); - - case 'regexp': - return item.test(_this.ua); - - default: - return false; - } - }); - }; - - var Template = - /*#__PURE__*/ - function () { - function Template(art) { - var _this = this; - - classCallCheck(this, Template); - - this.art = art; - - if (art.option.container instanceof Element) { - this.$container = art.option.container; - } else { - this.$container = query(art.option.container); - errorHandle(this.$container, "No container element found by ".concat(art.option.container)); - } - - errorHandle(art.constructor.instances.every(function (art) { - return art.template.$container !== _this.$container; - }), 'Cannot mount multiple instances on the same dom element'); - errorHandle(this.$container.clientWidth && this.$container.clientHeight, 'The width and height of the container cannot be 0'); - - if (art.whitelist.state) { - this.desktop(); - } else { - this.mobile(); - } - } - - createClass(Template, [{ - key: "query", - value: function query$1(className) { - return query(className, this.$container); - } - }, { - key: "desktop", - value: function desktop() { - var _this$art$option = this.art.option, - theme = _this$art$option.theme, - backdrop = _this$art$option.backdrop; - this.$container.innerHTML = "\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
3.3.3
\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
\xD7
\n
\n
\n
\n "); - this.$player = this.query('.art-video-player'); - this.$video = this.query('.art-video'); - this.$track = this.query('.art-video track'); - 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.$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.$settingInner = this.query('.art-setting-inner'); - this.$settingBody = this.query('.art-setting-body'); - this.$info = this.query('.art-info'); - this.$infoPanel = this.query('.art-info-panel'); - this.$infoClose = this.query('.art-info-close'); - this.$pipHeader = this.query('.art-pip-header'); - this.$pipTitle = this.query('.art-pip-title'); - this.$pipClose = this.query('.art-pip-close'); - this.$contextmenu = this.query('.art-contextmenus'); - - if (backdrop) { - addClass(this.$settingInner, 'art-backdrop-filter'); - addClass(this.$info, 'art-backdrop-filter'); - addClass(this.$contextmenu, 'art-backdrop-filter'); - } - } - }, { - key: "mobile", - value: function mobile() { - this.$container.innerHTML = "\n
\n \n
\n "; - this.$player = this.query('.art-video-player'); - this.$video = this.query('.art-video'); - } - }, { - key: "destroy", - value: function destroy(remove) { - if (remove) { - this.$container.innerHTML = ''; - } else { - addClass(this.$player, 'art-destroy'); - } - } - }]); - - return Template; - }(); - - var Close = "关闭"; - var Volume = "音量"; - var Play = "播放"; - var Pause = "暂停"; - var Rate = "速度"; - var Mute = "静音"; - var Flip = "视频翻转"; - var Horizontal = "水平"; - var Vertical = "垂直"; - var Reconnect = "重新连接"; - var Screenshot = "截图"; - var Default = "默认"; - var Normal = "正常"; - var Open = "打开"; - var Fullscreen = "全屏"; - var zhCn = { - "Video info": "视频统计信息", - Close: Close, - "Video load failed": "视频加载失败", - Volume: Volume, - Play: Play, - Pause: Pause, - Rate: Rate, - Mute: Mute, - Flip: Flip, - Horizontal: Horizontal, - Vertical: Vertical, - Reconnect: Reconnect, - "Hide subtitle": "隐藏字幕", - "Show subtitle": "显示字幕", - "Hide danmu": "隐藏弹幕", - "Show danmu": "显示弹幕", - "Show setting": "显示设置", - "Hide setting": "隐藏设置", - Screenshot: Screenshot, - "Play speed": "播放速度", - "Aspect ratio": "画面比例", - Default: Default, - Normal: Normal, - Open: Open, - "Switch video": "切换", - "Switch subtitle": "切换字幕", - Fullscreen: Fullscreen, - "Exit fullscreen": "退出全屏", - "Web fullscreen": "网页全屏", - "Exit web fullscreen": "退出网页全屏", - "Mini player": "迷你播放器", - "Exit mini player": "退出迷你播放器", - "Local Subtitle": "本地字幕", - "Local Video": "本地视频", - "Subtitle offset time": "字幕偏移时间", - "No subtitles found": "未发现字幕" - }; - - var Close$1 = "關閉"; - var Volume$1 = "音量"; - var Play$1 = "播放"; - var Pause$1 = "暫停"; - var Rate$1 = "速度"; - var Mute$1 = "靜音"; - var Flip$1 = "影片翻轉"; - var Horizontal$1 = "水平"; - var Vertical$1 = "垂直"; - var Reconnect$1 = "重新連接"; - var Screenshot$1 = "截圖"; - var Default$1 = "默認"; - var Normal$1 = "正常"; - var Open$1 = "打開"; - var Fullscreen$1 = "全屏"; - var zhTw = { - "Video info": "影片統計訊息", - Close: Close$1, - "Video load failed": "影片載入失敗", - Volume: Volume$1, - Play: Play$1, - Pause: Pause$1, - Rate: Rate$1, - Mute: Mute$1, - Flip: Flip$1, - Horizontal: Horizontal$1, - Vertical: Vertical$1, - Reconnect: Reconnect$1, - "Hide subtitle": "隱藏字幕", - "Show subtitle": "顯示字幕", - "Hide danmu": "隱藏彈幕", - "Show danmu": "顯示彈幕", - "Show setting": "顯示设置", - "Hide setting": "隱藏设置", - Screenshot: Screenshot$1, - "Play speed": "播放速度", - "Aspect ratio": "畫面比例", - Default: Default$1, - Normal: Normal$1, - Open: Open$1, - "Switch video": "切換", - "Switch subtitle": "切換字幕", - Fullscreen: Fullscreen$1, - "Exit fullscreen": "退出全屏", - "Web fullscreen": "網頁全屏", - "Exit web fullscreen": "退出網頁全屏", - "Mini player": "迷你播放器", - "Exit mini player": "退出迷你播放器", - "Local Subtitle": "本地字幕", - "Local Video": "本地視頻", - "Subtitle offset time": "字幕偏移時間", - "No subtitles found": "未發現字幕" - }; - - var I18n = - /*#__PURE__*/ - function () { - function I18n(art) { - classCallCheck(this, I18n); - - this.art = art; - this.languages = { - 'zh-cn': zhCn, - 'zh-tw': zhTw - }; - this.init(); - } - - createClass(I18n, [{ - key: "init", - value: function init() { - var lang = this.art.option.lang.toLowerCase(); - this.language = this.languages[lang] || {}; - } - }, { - key: "get", - value: function get(key) { - return this.language[key] || key; - } - }, { - key: "update", - value: function update(value) { - this.languages = mergeDeep(this.languages, value); - this.init(); - } - }]); - - return I18n; - }(); - - function urlMix(art, player) { - var _art$option = art.option, - type = _art$option.type, - customType = _art$option.customType, - $video = art.template.$video; - def(player, 'url', { - get: function get() { - return $video.src; - }, - set: function set(url) { - var typeName = type || getExt(url); - var typeCallback = customType[typeName]; - - if (typeName && typeCallback) { - sleep().then(function () { - art.loading.show = true; - typeCallback.call(art, $video, url, art); - art.emit('customType', typeName); - }); - } else { - $video.src = url; - art.option.url = url; - art.emit('urlChange', url); - } - } - }); - } - - function attrInit(art, player) { - var option = art.option, - storage = art.storage, - $video = art.template.$video; - Object.keys(option.moreVideoAttr).forEach(function (key) { - $video[key] = option.moreVideoAttr[key]; - }); - - if (option.muted) { - $video.muted = option.muted; - } - - if (option.volume) { - $video.volume = clamp(option.volume, 0, 1); - } - - var volume = storage.get('volume'); - - if (volume) { - $video.volume = clamp(volume, 0, 1); - } - - if (option.poster) { - $video.poster = option.poster; - } - - if (option.autoplay) { - $video.autoplay = option.autoplay; - } - - $video.controls = false; - player.url = option.url; - } - - function eventInit(art, player) { - var option = art.option, - proxy = art.events.proxy, - _art$template = art.template, - $player = _art$template.$player, - $video = _art$template.$video, - i18n = art.i18n, - notice = art.notice; - var reconnectTime = 0; - var maxReconnectTime = 5; - proxy($video, 'click', function () { - player.toggle = true; - }); - config.events.forEach(function (eventName) { - proxy($video, eventName, function (event) { - art.emit("video:".concat(event.type), event); - }); - }); // art.on('video:abort', () => { - // }); - - art.on('video:canplay', function () { - reconnectTime = 0; - art.loading.show = false; - }); - art.once('video:canplay', function () { - art.controls.show = true; - art.mask.show = true; - art.emit('ready'); - }); // art.on('video:canplaythrough', () => { - // }); - // art.on('video:durationchange', () => { - // }); - // art.on('video:emptied', () => { - // }); - - art.on('video:ended', function () { - if (option.loop) { - player.seek = 0; - player.play = true; - art.controls.show = false; - art.mask.show = false; - } else { - art.controls.show = true; - art.mask.show = true; - } - }); - art.on('video:error', function () { - if (reconnectTime < maxReconnectTime) { - sleep(1000).then(function () { - reconnectTime += 1; - player.url = option.url; - notice.show = "".concat(i18n.get('Reconnect'), ": ").concat(reconnectTime); - }); - } else { - art.loading.show = false; - art.controls.show = false; - addClass($player, 'art-error'); - sleep(1000).then(function () { - notice.show = i18n.get('Video load failed'); - art.destroy(false); - }); - } - }); // art.on('video:loadeddata', () => { - // }); - - art.on('video:loadedmetadata', function () { - if (option.autoSize) { - player.autoSize = true; - } - }); - art.on('video:loadstart', function () { - art.loading.show = true; - }); - art.on('video:pause', function () { - art.controls.show = true; - art.mask.show = true; - }); - art.on('video:play', function () { - art.mask.show = false; - }); - art.on('video:playing', function () { - art.mask.show = false; - }); // art.on('video:progress', () => { - // }); - // art.on('video:ratechange', () => { - // }); - - art.on('video:seeked', function () { - art.loading.show = false; - }); - art.on('video:seeking', function () { - art.loading.show = true; - }); // art.on('video:stalled', () => { - // }); - // art.on('video:suspend', () => { - // }); - - art.on('video:timeupdate', function () { - art.mask.show = false; - }); // art.on('video:volumechange', () => { - // }); - - art.on('video:waiting', function () { - art.loading.show = true; - }); - } - - function playMix(art, player) { - var i18n = art.i18n, - notice = art.notice, - instances = art.constructor.instances, - mutex = art.option.mutex, - $video = art.template.$video; - def(player, 'play', { - set: function set(value) { - if (value) { - var promise = $video.play(); - - if (promise.then) { - promise.then().catch(function (err) { - notice.show = err; - throw err; - }); - } - - if (mutex) { - instances.filter(function (item) { - return item !== art; - }).forEach(function (item) { - item.player.pause = true; - }); - } - - notice.show = i18n.get('Play'); - art.emit('play'); - } else { - player.pause = true; - } - } - }); - } - - function pauseMin(art, player) { - var $video = art.template.$video, - i18n = art.i18n, - notice = art.notice; - def(player, 'pause', { - get: function get() { - return $video.paused; - }, - set: function set(value) { - if (value) { - $video.pause(); - notice.show = i18n.get('Pause'); - art.emit('pause'); - } else { - player.play = true; - } - } - }); - } - - function toggleMix(art, player) { - def(player, 'toggle', { - set: function set(value) { - if (value) { - if (player.playing) { - player.pause = true; - } else { - player.play = true; - } - } - } - }); - } - - function seekMix(art, player) { - var notice = art.notice; - def(player, 'seek', { - set: function set(time) { - player.currentTime = time; - notice.show = "".concat(secondToTime(time), " / ").concat(secondToTime(player.duration)); - art.emit('seek', time); - } - }); - } - - function volumeMix(art, player) { - var $video = art.template.$video, - i18n = art.i18n, - notice = art.notice, - storage = art.storage; - def(player, 'volume', { - get: function get() { - return $video.volume || 0; - }, - set: function set(percentage) { - $video.volume = clamp(percentage, 0, 1); - notice.show = "".concat(i18n.get('Volume'), ": ").concat(parseInt($video.volume * 100, 10)); - - if ($video.volume !== 0) { - storage.set('volume', $video.volume); - } - - art.emit('volume', $video.volume); - } - }); - def(player, 'muted', { - get: function get() { - return $video.muted; - }, - set: function set(muted) { - $video.muted = muted; - art.emit('volume', $video.volume); - } - }); - } - - function currentTimeMix(art, player) { - def(player, 'currentTime', { - get: function get() { - return art.template.$video.currentTime || 0; - }, - set: function set(currentTime) { - art.template.$video.currentTime = clamp(currentTime, 0, player.duration); - } - }); - } - - function durationMix(art, player) { - def(player, 'duration', { - get: function get() { - return art.template.$video.duration || 0; - } - }); - } - - function switchMix(art, player) { - var i18n = art.i18n, - notice = art.notice; - - function switchUrl(url, name, currentTime) { - if (url === player.url) return; - URL.revokeObjectURL(player.url); - var playing = player.playing; - player.url = url; - player.playbackRate = false; - player.aspectRatio = false; - art.once('video:canplay', function () { - player.currentTime = currentTime; - }); - - if (playing) { - player.play = true; - } - - if (name) { - notice.show = "".concat(i18n.get('Switch video'), ": ").concat(name); - } - - art.emit('switch', url); - } - - def(player, 'switchQuality', { - value: function value(url, name) { - return switchUrl(url, name, player.currentTime); - } - }); - def(player, 'switchUrl', { - value: function value(url, name) { - return switchUrl(url, name, 0); - } - }); - } - - function playbackRateMix(art, player) { - var _art$template = art.template, - $video = _art$template.$video, - $player = _art$template.$player, - i18n = art.i18n, - notice = art.notice; - def(player, 'playbackRate', { - get: function get() { - return $player.dataset.playbackRate; - }, - set: function set(rate) { - if (rate) { - if (rate === $player.dataset.playbackRate) return; - var rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0]; - errorHandle(rateList.includes(rate), "'playbackRate' only accept ".concat(rateList.toString(), " as parameters")); - $video.playbackRate = rate; - $player.dataset.playbackRate = rate; - notice.show = "".concat(i18n.get('Rate'), ": ").concat(rate === 1.0 ? i18n.get('Normal') : "".concat(rate, "x")); - art.emit('playbackRateChange', rate); - } else if (player.playbackRate) { - player.playbackRate = 1; - delete $player.dataset.playbackRate; - art.emit('playbackRateRemove'); - } - } - }); - def(player, 'playbackRateReset', { - set: function set(value) { - if (value) { - var playbackRate = $player.dataset.playbackRate; - - if (playbackRate) { - player.playbackRate = Number(playbackRate); - art.emit('playbackRateReset'); - } - } - } - }); - } - - function aspectRatioMix(art, player) { - var _art$template = art.template, - $video = _art$template.$video, - $player = _art$template.$player, - i18n = art.i18n, - notice = art.notice; - def(player, 'aspectRatio', { - get: function get() { - return $player.dataset.aspectRatio || ''; - }, - set: function set(ratio) { - if (ratio) { - var ratioList = ['default', '4:3', '16:9']; - errorHandle(ratioList.includes(ratio), "'aspectRatio' only accept ".concat(ratioList.toString(), " as parameters")); - - if (ratio === 'default') { - player.aspectRatio = false; - } else { - var ratioArray = ratio.split(':'); - var videoWidth = $video.videoWidth, - videoHeight = $video.videoHeight; - var clientWidth = $player.clientWidth, - clientHeight = $player.clientHeight; - var videoRatio = videoWidth / videoHeight; - var setupRatio = ratioArray[0] / ratioArray[1]; - - if (videoRatio > setupRatio) { - var percentage = setupRatio * videoHeight / videoWidth; - setStyle($video, 'width', "".concat(percentage * 100, "%")); - setStyle($video, 'height', '100%'); - setStyle($video, 'padding', "0 ".concat((clientWidth - clientWidth * percentage) / 2, "px")); - } else { - var _percentage = videoWidth / setupRatio / videoHeight; - - setStyle($video, 'width', '100%'); - setStyle($video, 'height', "".concat(_percentage * 100, "%")); - setStyle($video, 'padding', "".concat((clientHeight - clientHeight * _percentage) / 2, "px 0")); - } - } - - $player.dataset.aspectRatio = ratio; - notice.show = "".concat(i18n.get('Aspect ratio'), ": ").concat(ratio === 'default' ? i18n.get('Default') : ratio); - art.emit('aspectRatioChange', ratio); - } else if (player.aspectRatio) { - setStyle($video, 'width', null); - setStyle($video, 'height', null); - setStyle($video, 'padding', null); - delete $player.dataset.aspectRatio; - art.emit('aspectRatioRemove'); - } - } - }); - def(player, 'aspectRatioReset', { - set: function set(value) { - if (value && player.aspectRatio) { - var aspectRatio = player.aspectRatio; - player.aspectRatio = aspectRatio; - art.emit('aspectRatioReset'); - } - } - }); - } - - function screenshotMix(art, player) { - var option = art.option, - notice = art.notice, - $video = art.template.$video; - def(player, 'getScreenshotDataURL', { - value: function value() { - try { - var canvas = document.createElement('canvas'); - canvas.width = $video.videoWidth; - canvas.height = $video.videoHeight; - canvas.getContext('2d').drawImage($video, 0, 0); - return canvas.toDataURL('image/png'); - } catch (err) { - notice.show = err; - throw err; - } - } - }); - def(player, 'getScreenshotBlobUrl', { - value: function value() { - return new Promise(function (resolve, reject) { - try { - var canvas = document.createElement('canvas'); - canvas.width = $video.videoWidth; - canvas.height = $video.videoHeight; - canvas.getContext('2d').drawImage($video, 0, 0); - canvas.toBlob(function (blob) { - resolve(URL.createObjectURL(blob)); - }); - } catch (err) { - notice.show = err; - reject(err); - } - }); - } - }); - def(player, 'screenshot', { - value: function value() { - var dataUri = player.getScreenshotDataURL(); - - if (dataUri) { - downloadFile(dataUri, "".concat(option.title || 'artplayer', "_").concat(secondToTime($video.currentTime), ".png")); - art.emit('screenshot', dataUri); - } - } - }); - } - - var screenfull = createCommonjsModule(function (module) { - /*! - * screenfull - * v5.0.0 - 2019-09-09 - * (c) Sindre Sorhus; MIT License - */ - (function () { - - var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {}; - var isCommonjs = module.exports; - - var fn = (function () { - var val; - - var fnMap = [ - [ - 'requestFullscreen', - 'exitFullscreen', - 'fullscreenElement', - 'fullscreenEnabled', - 'fullscreenchange', - 'fullscreenerror' - ], - // New WebKit - [ - 'webkitRequestFullscreen', - 'webkitExitFullscreen', - 'webkitFullscreenElement', - 'webkitFullscreenEnabled', - 'webkitfullscreenchange', - 'webkitfullscreenerror' - - ], - // Old WebKit - [ - 'webkitRequestFullScreen', - 'webkitCancelFullScreen', - 'webkitCurrentFullScreenElement', - 'webkitCancelFullScreen', - 'webkitfullscreenchange', - 'webkitfullscreenerror' - - ], - [ - 'mozRequestFullScreen', - 'mozCancelFullScreen', - 'mozFullScreenElement', - 'mozFullScreenEnabled', - 'mozfullscreenchange', - 'mozfullscreenerror' - ], - [ - 'msRequestFullscreen', - 'msExitFullscreen', - 'msFullscreenElement', - 'msFullscreenEnabled', - 'MSFullscreenChange', - 'MSFullscreenError' - ] - ]; - - var i = 0; - var l = fnMap.length; - var ret = {}; - - for (; i < l; i++) { - val = fnMap[i]; - if (val && val[1] in document) { - for (i = 0; i < val.length; i++) { - ret[fnMap[0][i]] = val[i]; - } - return ret; - } - } - - return false; - })(); - - var eventNameMap = { - change: fn.fullscreenchange, - error: fn.fullscreenerror - }; - - var screenfull = { - request: function (element) { - return new Promise(function (resolve, reject) { - var onFullScreenEntered = function () { - this.off('change', onFullScreenEntered); - resolve(); - }.bind(this); - - this.on('change', onFullScreenEntered); - - element = element || document.documentElement; - - Promise.resolve(element[fn.requestFullscreen]()).catch(reject); - }.bind(this)); - }, - exit: function () { - return new Promise(function (resolve, reject) { - if (!this.isFullscreen) { - resolve(); - return; - } - - var onFullScreenExit = function () { - this.off('change', onFullScreenExit); - resolve(); - }.bind(this); - - this.on('change', onFullScreenExit); - - Promise.resolve(document[fn.exitFullscreen]()).catch(reject); - }.bind(this)); - }, - toggle: function (element) { - return this.isFullscreen ? this.exit() : this.request(element); - }, - onchange: function (callback) { - this.on('change', callback); - }, - onerror: function (callback) { - this.on('error', callback); - }, - on: function (event, callback) { - var eventName = eventNameMap[event]; - if (eventName) { - document.addEventListener(eventName, callback, false); - } - }, - off: function (event, callback) { - var eventName = eventNameMap[event]; - if (eventName) { - document.removeEventListener(eventName, callback, false); - } - }, - raw: fn - }; - - if (!fn) { - if (isCommonjs) { - module.exports = {isEnabled: false}; - } else { - window.screenfull = {isEnabled: false}; - } - - return; - } - - Object.defineProperties(screenfull, { - isFullscreen: { - get: function () { - return Boolean(document[fn.fullscreenElement]); - } - }, - element: { - enumerable: true, - get: function () { - return document[fn.fullscreenElement]; - } - }, - isEnabled: { - enumerable: true, - get: function () { - // Coerce to boolean in case of old WebKit - return Boolean(document[fn.fullscreenEnabled]); - } - } - }); - - if (isCommonjs) { - module.exports = screenfull; - } else { - window.screenfull = screenfull; - } - })(); - }); - var screenfull_1 = screenfull.isEnabled; - - function fullscreenMix(art, player) { - var $player = art.template.$player; - def(player, 'fullscreen', { - get: function get() { - return screenfull.isFullscreen; - }, - set: function set(value) { - if (player.fullscreenWeb) { - player.fullscreenWeb = false; - } - - if (value) { - screenfull.request($player).then(function () { - addClass($player, 'art-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenChange', true); - }); - } else { - screenfull.exit().then(function () { - removeClass($player, 'art-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenChange', false); - }); - } - } - }); - def(player, 'fullscreenToggle', { - set: function set(value) { - if (value) { - player.fullscreen = !player.fullscreen; - } - } - }); - } - - function fullscreenWebMix(art, player) { - var $player = art.template.$player; - def(player, 'fullscreenWeb', { - get: function get() { - return hasClass($player, 'art-web-fullscreen'); - }, - set: function set(value) { - if (player.fullscreen) { - player.fullscreen = false; - } - - if (value) { - addClass($player, 'art-web-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenWebChange', true); - } else { - removeClass($player, 'art-web-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenWebChange', false); - } - } - }); - def(player, 'fullscreenWebToggle', { - set: function set(value) { - if (value) { - player.fullscreenWeb = !player.fullscreenWeb; - } - } - }); - } - - function nativePip(art, player) { - var $video = art.template.$video, - proxy = art.events.proxy, - notice = art.notice; - $video.disablePictureInPicture = false; - def(player, 'pip', { - get: function get() { - return document.pictureInPictureElement; - }, - set: function set(value) { - if (value) { - $video.requestPictureInPicture().catch(function (err) { - notice.show = err; - throw err; - }); - } else { - document.exitPictureInPicture().catch(function (err) { - notice.show = err; - throw err; - }); - } - } - }); - proxy($video, 'enterpictureinpicture', function () { - art.emit('pipChange', true); - }); - proxy($video, 'leavepictureinpicture', function () { - art.emit('pipChange', false); - }); - } - - function webkitPip(art, player) { - var $video = art.template.$video; - $video.webkitSetPresentationMode('inline'); - def(player, 'pip', { - get: function get() { - return $video.webkitPresentationMode === 'picture-in-picture'; - }, - set: function set(value) { - if (value) { - $video.webkitSetPresentationMode('picture-in-picture'); - art.emit('pipChange', true); - } else { - $video.webkitSetPresentationMode('inline'); - art.emit('pipChange', false); - } - } - }); - } - - function customPip(art, player) { - var option = art.option, - i18n = art.i18n, - _art$template = art.template, - $player = _art$template.$player, - $pipClose = _art$template.$pipClose, - $pipTitle = _art$template.$pipTitle, - $pipHeader = _art$template.$pipHeader, - proxy = art.events.proxy; - var cacheStyle = ''; - var isDroging = false; - var lastPageX = 0; - var lastPageY = 0; - var lastPlayerLeft = 0; - var lastPlayerTop = 0; - proxy($pipHeader, 'mousedown', function (event) { - isDroging = true; - lastPageX = event.pageX; - lastPageY = event.pageY; - lastPlayerLeft = player.left; - lastPlayerTop = player.top; - }); - proxy($pipHeader, 'mousemove', function (event) { - if (isDroging) { - addClass($player, 'art-is-dragging'); - setStyle($player, 'left', "".concat(lastPlayerLeft + event.pageX - lastPageX, "px")); - setStyle($player, 'top', "".concat(lastPlayerTop + event.pageY - lastPageY, "px")); - } - }); - proxy(document, 'mouseup', function () { - isDroging = false; - removeClass($player, 'art-is-dragging'); - }); - proxy($pipClose, 'click', function () { - player.pip = false; - isDroging = false; - removeClass($player, 'art-is-dragging'); - }); - append($pipTitle, option.title || i18n.get('Mini player')); - def(player, 'pip', { - get: function get() { - return hasClass($player, 'art-pip'); - }, - set: function set(value) { - if (value) { - player.autoSize = false; - cacheStyle = $player.style.cssText; - addClass($player, 'art-pip'); - var $body = document.body; - setStyle($player, 'top', "".concat($body.clientHeight - player.height - 50, "px")); - setStyle($player, 'left', "".concat($body.clientWidth - player.width - 50, "px")); - player.fullscreen = false; - player.fullscreenWeb = false; - player.aspectRatio = false; - player.playbackRate = false; - art.emit('pipChange', true); - } else if (player.pip) { - $player.style.cssText = cacheStyle; - removeClass($player, 'art-pip'); - setStyle($player, 'top', null); - setStyle($player, 'left', null); - player.fullscreen = false; - player.fullscreenWeb = false; - player.aspectRatio = false; - player.playbackRate = false; - player.autoSize = true; - art.emit('pipChange', false); - } - } - }); - } - - function pipMix(art, player) { - var $video = art.template.$video; - - if (document.pictureInPictureEnabled) { - nativePip(art, player); - } else if ($video.webkitSupportsPresentationMode) { - webkitPip(art, player); - } else { - customPip(art, player); - } - - def(player, 'pipToggle', { - set: function set(value) { - if (value) { - player.pip = !player.pip; - } - } - }); - } - - function seekMix$1(art, player) { - var $video = art.template.$video; - def(player, 'loaded', { - get: function get() { - return player.loadedTime / $video.duration; - } - }); - def(player, 'loadedTime', { - get: function get() { - return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0; - } - }); - } - - function playedMix(art, player) { - def(player, 'played', { - get: function get() { - return player.currentTime / player.duration; - } - }); - } - - function playingMix(art, player) { - var $video = art.template.$video; - def(player, 'playing', { - get: function get() { - return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2); - } - }); - } - - function resizeMix(art, player) { - var _art$template = art.template, - $container = _art$template.$container, - $player = _art$template.$player, - $video = _art$template.$video; - def(player, 'autoSize', { - get: function get() { - return hasClass($container, 'art-auto-size'); - }, - set: function set(value) { - if (value) { - var videoWidth = $video.videoWidth, - videoHeight = $video.videoHeight; - - var _$container$getBoundi = $container.getBoundingClientRect(), - width = _$container$getBoundi.width, - height = _$container$getBoundi.height; - - var videoRatio = videoWidth / videoHeight; - var containerRatio = width / height; - addClass($container, 'art-auto-size'); - - if (containerRatio > videoRatio) { - var percentage = height * videoRatio / width * 100; - setStyle($player, 'width', "".concat(percentage, "%")); - setStyle($player, 'height', '100%'); - } else { - var _percentage = width / videoRatio / height * 100; - - setStyle($player, 'width', '100%'); - setStyle($player, 'height', "".concat(_percentage, "%")); - } - - art.emit('autoSizeChange', { - width: player.width, - height: player.height - }); - } else { - removeClass($container, 'art-auto-size'); - setStyle($player, 'width', null); - setStyle($player, 'height', null); - art.emit('autoSizeRemove'); - } - } - }); - } - - function rectMix(art, player) { - def(player, 'rect', { - get: function get() { - return art.template.$player.getBoundingClientRect(); - } - }); - ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (key) { - def(player, key, { - get: function get() { - return player.rect[key]; - } - }); - }); - def(player, 'x', { - get: function get() { - return player.left + window.pageXOffset; - } - }); - def(player, 'y', { - get: function get() { - return player.top + window.pageYOffset; - } - }); - } - - function flipMix(art, player) { - var $player = art.template.$player; - def(player, 'flip', { - get: function get() { - return $player.dataset.flip; - }, - set: function set(flip) { - if (flip) { - var flipList = ['normal', 'horizontal', 'vertical']; - errorHandle(flipList.includes(flip), "'flip' only accept ".concat(flipList.toString(), " as parameters")); - $player.dataset.flip = flip; - art.emit('flipChange', flip); - } else { - delete $player.dataset.flip; - art.emit('flipRemove'); - } - } - }); - } - - var Player = function Player(art) { - classCallCheck(this, Player); - - urlMix(art, this); - eventInit(art, this); - attrInit(art, this); - playMix(art, this); - pauseMin(art, this); - toggleMix(art, this); - seekMix(art, this); - volumeMix(art, this); - currentTimeMix(art, this); - durationMix(art, this); - switchMix(art, this); - playbackRateMix(art, this); - aspectRatioMix(art, this); - screenshotMix(art, this); - fullscreenMix(art, this); - fullscreenWebMix(art, this); - pipMix(art, this); - seekMix$1(art, this); - playedMix(art, this); - playingMix(art, this); - resizeMix(art, this); - rectMix(art, this); - flipMix(art, this); - proxyPropertys(art, this); - }; - - function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = getPrototypeOf(object); - if (object === null) break; - } - - return object; - } - - var superPropBase = _superPropBase; - - var get = createCommonjsModule(function (module) { - function _get(target, property, receiver) { - if (typeof Reflect !== "undefined" && Reflect.get) { - module.exports = _get = Reflect.get; - } else { - module.exports = _get = function _get(target, property, receiver) { - var base = superPropBase(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.get) { - return desc.get.call(receiver); - } - - return desc.value; - }; - } - - return _get(target, property, receiver || target); - } - - module.exports = _get; - }); - - var Component = - /*#__PURE__*/ - function () { - function Component(art) { - classCallCheck(this, Component); - - this.id = 0; - this.art = art; - this.add = this.add.bind(this); - } - - createClass(Component, [{ - key: "add", - value: function add(getOption, callback) { - var _this = this; - - var option = typeof getOption === 'function' ? getOption(this.art) : getOption; - if (!this.$parent || !this.name || option.disable) return; - this.id += 1; - var name = option.name || "".concat(this.name).concat(this.id); - errorHandle(!has$1(this, name), "Cannot add an existing name [".concat(name, "] to the [").concat(this.name, "]")); - var $ref = document.createElement('div'); - $ref.classList.value = "art-".concat(this.name, " art-").concat(this.name, "-").concat(name); - - if (option.html) { - append($ref, option.html); - } - - if (option.style) { - setStyles($ref, option.style); - } - - if (option.tooltip) { - tooltip($ref, option.tooltip); - } - - var childs = Array.from(this.$parent.children); - $ref.dataset.index = option.index || this.id; - var nextChild = childs.find(function (item) { - return Number(item.dataset.index) >= Number($ref.dataset.index); - }); - - if (nextChild) { - nextChild.insertAdjacentElement('beforebegin', $ref); - } else { - append(this.$parent, $ref); - } - - if (option.click) { - this.art.events.proxy($ref, 'click', function (event) { - event.preventDefault(); - option.click.call(_this.art, _this, event); - }); - } - - if (option.mounted) { - option.mounted($ref, this, this.art); - } - - if (callback) { - callback($ref, this, this.art); - } - - this.art.emit("".concat(this.name, ":add"), option); - def(this, name, { - get: function get() { - return option; - } - }); - } - }, { - key: "show", - get: function get() { - return hasClass(this.art.template.$player, "art-".concat(this.name, "-show")); - }, - set: function set(value) { - var $player = this.art.template.$player; - var className = "art-".concat(this.name, "-show"); - - if (value) { - addClass($player, className); - } else { - removeClass($player, className); - } - - this.art.emit("".concat(this.name, ":toggle"), value); - } - }, { - key: "toggle", - set: function set(value) { - if (value) { - this.show = !this.show; - } - } - }]); - - return Component; - }(); - - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function fullscreen(option) { - return function (art) { - return _objectSpread({}, option, { - tooltip: art.i18n.get('Fullscreen'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - append($control, icons.fullscreen); - proxy($control, 'click', function () { - player.fullscreenToggle = true; - }); - art.on('fullscreenChange', function (value) { - tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen')); - }); - } - }); - }; - } - - function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function fullscreenWeb(option) { - return function (art) { - return _objectSpread$1({}, option, { - tooltip: art.i18n.get('Web fullscreen'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - append($control, icons.fullscreenWeb); - proxy($control, 'click', function () { - player.fullscreenWebToggle = true; - }); - art.on('fullscreenWebChange', function (value) { - tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen')); - }); - } - }); - }; - } - - function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function pip(option) { - return function (art) { - return _objectSpread$2({}, option, { - tooltip: art.i18n.get('Mini player'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - append($control, icons.pip); - proxy($control, 'click', function () { - player.pipToggle = true; - }); - art.on('pipChange', function (value) { - tooltip($control, i18n.get(value ? 'Exit mini player' : 'Mini player')); - }); - } - }); - }; - } - - function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playAndPause(option) { - return function (art) { - return _objectSpread$3({}, option, { - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - var $play = append($control, icons.play); - var $pause = append($control, icons.pause); - tooltip($play, i18n.get('Play')); - tooltip($pause, i18n.get('Pause')); - proxy($play, 'click', function () { - player.play = true; - }); - proxy($pause, 'click', function () { - player.pause = true; - }); - - function showPlay() { - setStyle($play, 'display', 'flex'); - setStyle($pause, 'display', 'none'); - } - - function showPause() { - setStyle($play, 'display', 'none'); - setStyle($pause, 'display', 'flex'); - } - - if (player.playing) { - showPause(); - } else { - showPlay(); - } - - art.on('video:playing', function () { - showPause(); - }); - art.on('video:pause', function () { - showPlay(); - }); - } - }); - }; - } - - function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function getPosFromEvent(art, event) { - var $progress = art.template.$progress, - player = art.player; - - var _$progress$getBoundin = $progress.getBoundingClientRect(), - left = _$progress$getBoundin.left; - - var width = clamp(event.pageX - left, 0, $progress.clientWidth); - var second = width / $progress.clientWidth * player.duration; - var time = secondToTime(second); - var percentage = clamp(width / $progress.clientWidth, 0, 1); - return { - second: second, - time: time, - width: width, - percentage: percentage - }; - } - function progress(option) { - return function (art) { - var _art$option = art.option, - highlight = _art$option.highlight, - theme = _art$option.theme, - proxy = art.events.proxy, - player = art.player; - return _objectSpread$4({}, option, { - html: "\n
\n
\n
\n
\n
\n
\n
\n "), - mounted: function mounted($control) { - var isDroging = false; - var $loaded = query('.art-progress-loaded', $control); - var $played = query('.art-progress-played', $control); - var $highlight = query('.art-progress-highlight', $control); - var $indicator = query('.art-progress-indicator', $control); - var $tip = query('.art-progress-tip', $control); - - function showHighlight(event) { - var _getPosFromEvent = getPosFromEvent(art, event), - width = _getPosFromEvent.width; - - var text = event.target.dataset.text; - $tip.innerHTML = text; - var tipWidth = $tip.clientWidth; - - if (width <= tipWidth / 2) { - setStyle($tip, 'left', 0); - } else if (width > $control.clientWidth - tipWidth / 2) { - setStyle($tip, 'left', "".concat($control.clientWidth - tipWidth, "px")); - } else { - setStyle($tip, 'left', "".concat(width - tipWidth / 2, "px")); - } - } - - function showTime(event) { - var _getPosFromEvent2 = getPosFromEvent(art, event), - width = _getPosFromEvent2.width, - time = _getPosFromEvent2.time; - - $tip.innerHTML = time; - var tipWidth = $tip.clientWidth; - - if (width <= tipWidth / 2) { - setStyle($tip, 'left', 0); - } else if (width > $control.clientWidth - tipWidth / 2) { - setStyle($tip, 'left', "".concat($control.clientWidth - tipWidth, "px")); - } else { - setStyle($tip, 'left', "".concat(width - tipWidth / 2, "px")); - } - } - - function setBar(type, percentage) { - if (type === 'loaded') { - setStyle($loaded, 'width', "".concat(percentage * 100, "%")); - } - - if (type === 'played') { - setStyle($played, 'width', "".concat(percentage * 100, "%")); - setStyle($indicator, 'left', "calc(".concat(percentage * 100, "% - ").concat(getStyle($indicator, 'width') / 2, "px)")); - } - } - - highlight.forEach(function (item) { - var left = clamp(item.time, 0, player.duration) / player.duration * 100; - append($highlight, "")); - }); - setBar('loaded', player.loaded); - art.on('video:progress', function () { - setBar('loaded', player.loaded); - }); - art.on('video:timeupdate', function () { - setBar('played', player.played); - }); - art.on('video:ended', function () { - setBar('played', 1); - }); - proxy($control, 'mousemove', function (event) { - setStyle($tip, 'display', 'block'); - - if (event.composedPath().indexOf($highlight) > -1) { - showHighlight(event); - } else { - showTime(event); - } - }); - proxy($control, 'mouseout', function () { - setStyle($tip, 'display', 'none'); - }); - proxy($control, 'click', function (event) { - if (event.target !== $indicator) { - var _getPosFromEvent3 = getPosFromEvent(art, event), - second = _getPosFromEvent3.second, - percentage = _getPosFromEvent3.percentage; - - setBar('played', percentage); - player.seek = second; - } - }); - proxy($indicator, 'mousedown', function () { - isDroging = true; - }); - proxy(document, 'mousemove', function (event) { - if (isDroging) { - var _getPosFromEvent4 = getPosFromEvent(art, event), - second = _getPosFromEvent4.second, - percentage = _getPosFromEvent4.percentage; - - addClass($indicator, 'art-show-indicator'); - setBar('played', percentage); - player.seek = second; - } - }); - proxy(document, 'mouseup', function () { - if (isDroging) { - isDroging = false; - removeClass($indicator, 'art-show-indicator'); - } - }); - } - }); - }; - } - - function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function subtitle(option) { - return function (art) { - return _objectSpread$5({}, option, { - tooltip: art.i18n.get('Hide subtitle'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - subtitle = art.subtitle; - append($control, icons.subtitle); - proxy($control, 'click', function () { - subtitle.toggle = true; - }); - art.on('subtitle:toggle', function (value) { - tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle')); - }); - } - }); - }; - } - - function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function time(option) { - return function (art) { - return _objectSpread$6({}, option, { - mounted: function mounted($control) { - function getTime() { - var newTime = "".concat(secondToTime(art.player.currentTime), " / ").concat(secondToTime(art.player.duration)); - - if (newTime !== $control.innerText) { - $control.innerText = newTime; - } - } - - getTime(); - ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(function (event) { - art.on(event, getTime); - }); - } - }); - }; - } - - function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function volume(option) { - return function (art) { - return _objectSpread$7({}, option, { - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - player = art.player, - i18n = art.i18n; - var isDroging = false; - var $volume = append($control, icons.volume); - var $volumeClose = append($control, icons.volumeClose); - var $volumePanel = append($control, '
'); - var $volumeHandle = append($volumePanel, '
'); - tooltip($volume, i18n.get('Mute')); - setStyle($volumeClose, 'display', 'none'); - - function volumeChangeFromEvent(event) { - var _$volumePanel$getBoun = $volumePanel.getBoundingClientRect(), - panelLeft = _$volumePanel$getBoun.left, - panelWidth = _$volumePanel$getBoun.width; - - var _$volumeHandle$getBou = $volumeHandle.getBoundingClientRect(), - handleWidth = _$volumeHandle$getBou.width; - - var percentage = clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth); - return percentage; - } - - function setVolumeHandle() { - var percentage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.7; - - if (player.muted || percentage === 0) { - setStyle($volume, 'display', 'none'); - setStyle($volumeClose, 'display', 'flex'); - setStyle($volumeHandle, 'left', '0'); - } else { - // TODO... - var panelWidth = getStyle($volumePanel, 'width') || 60; - var handleWidth = getStyle($volumeHandle, 'width'); - var width = (panelWidth - handleWidth) * percentage; - setStyle($volume, 'display', 'flex'); - setStyle($volumeClose, 'display', 'none'); - setStyle($volumeHandle, 'left', "".concat(width, "px")); - } - } - - setVolumeHandle(player.volume); - art.on('video:volumechange', function () { - setVolumeHandle(player.volume); - }); - proxy($volume, 'click', function () { - player.muted = true; - }); - proxy($volumeClose, 'click', function () { - player.muted = false; - }); - proxy($volumePanel, 'click', function (event) { - player.muted = false; - player.volume = volumeChangeFromEvent(event); - }); - proxy($volumeHandle, 'mousedown', function () { - isDroging = true; - }); - proxy(document, 'mousemove', function (event) { - if (isDroging) { - player.muted = false; - player.volume = volumeChangeFromEvent(event); - } - }); - proxy(document, 'mouseup', function () { - if (isDroging) { - isDroging = false; - } - }); - } - }); - }; - } - - function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function setting(option) { - return function (art) { - return _objectSpread$8({}, option, { - tooltip: art.i18n.get('Show setting'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - setting = art.setting; - append($control, icons.setting); - proxy($control, 'click', function () { - setting.toggle = true; - }); - art.on('setting:toggle', function (value) { - tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting')); - }); - } - }); - }; - } - - function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function thumbnails(option) { - return function (art) { - return _objectSpread$9({}, option, { - mounted: function mounted($control) { - var thumbnails = art.option.thumbnails, - $progress = art.template.$progress, - _art$events = art.events, - proxy = _art$events.proxy, - loadImg = _art$events.loadImg; - var loading = false; - var isLoad = false; - - function showThumbnails(event) { - var _getPosFromEvent = getPosFromEvent(art, event), - posWidth = _getPosFromEvent.width; - - var url = thumbnails.url, - height = thumbnails.height, - width = thumbnails.width, - number = thumbnails.number, - column = thumbnails.column; - var perWidth = $progress.clientWidth / number; - var perIndex = Math.floor(posWidth / perWidth); - var yIndex = Math.ceil(perIndex / column) - 1; - var xIndex = perIndex % column || column - 1; - setStyle($control, 'backgroundImage', "url(".concat(url, ")")); - setStyle($control, 'height', "".concat(height, "px")); - setStyle($control, 'width', "".concat(width, "px")); - setStyle($control, 'backgroundPosition', "-".concat(xIndex * width, "px -").concat(yIndex * height, "px")); - - if (posWidth <= width / 2) { - setStyle($control, 'left', 0); - } else if (posWidth > $progress.clientWidth - width / 2) { - setStyle($control, 'left', "".concat($progress.clientWidth - width, "px")); - } else { - setStyle($control, 'left', "".concat(posWidth - width / 2, "px")); - } - } - - proxy($progress, 'mousemove', function (event) { - if (!loading) { - loading = true; - loadImg(thumbnails.url).then(function () { - isLoad = true; - }); - } - - if (isLoad) { - setStyle($control, 'display', 'block'); - showThumbnails(event); - } - }); - proxy($progress, 'mouseout', function () { - setStyle($control, 'display', 'none'); - }); - } - }); - }; - } - - function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function screenshot(option) { - return function (art) { - return _objectSpread$a({}, option, { - tooltip: art.i18n.get('Screenshot'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - player = art.player; - append($control, icons.screenshot); - proxy($control, 'click', function () { - player.screenshot(); - }); - } - }); - }; - } - - function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function quality(option) { - return function (art) { - return _objectSpread$b({}, option, { - mounted: function mounted($control) { - var quality = art.option.quality, - _art$events = art.events, - proxy = _art$events.proxy, - hover = _art$events.hover, - player = art.player; - var playIndex = -1; - var defaultQuality = quality.find(function (item) { - return item.default; - }) || quality[0]; - playIndex = quality.indexOf(defaultQuality); - var $qualityName = append($control, "
".concat(defaultQuality.name, "
")); - var qualityList = quality.map(function (item, index) { - return "
").concat(item.name, "
"); - }).join(''); - var $qualitys = append($control, "
".concat(qualityList, "
")); - hover($control, function () { - $qualitys.style.left = "-".concat(getStyle($qualitys, 'width') / 2 - $control.clientWidth / 2, "px"); - }); - proxy($qualitys, 'click', function (event) { - var index = Number(event.target.dataset.index); - var _quality$index = quality[index], - url = _quality$index.url, - name = _quality$index.name; - - if (url && name && playIndex !== index) { - player.switchQuality(url, name); - $qualityName.innerText = name; - playIndex = index; - } - }); - } - }); - }; - } - - var Control = - /*#__PURE__*/ - function (_Component) { - inherits(Control, _Component); - - function Control(art) { - var _this; - - classCallCheck(this, Control); - - _this = possibleConstructorReturn(this, getPrototypeOf(Control).call(this, art)); - _this.name = 'control'; - var option = art.option; - art.on('ready', function () { - _this.add(progress({ - name: 'progress', - disable: option.isLive, - position: 'top', - index: 10 - })); - - _this.add(thumbnails({ - name: 'thumbnails', - disable: !option.thumbnails.url || option.isLive, - position: 'top', - index: 20 - })); - - _this.add(playAndPause({ - name: 'playAndPause', - disable: false, - position: 'left', - index: 10 - })); - - _this.add(volume({ - name: 'volume', - disable: false, - position: 'left', - index: 20 - })); - - _this.add(time({ - name: 'time', - disable: option.isLive, - position: 'left', - index: 30 - })); - - _this.add(quality({ - name: 'quality', - disable: option.quality.length === 0, - position: 'right', - index: 10 - })); - - _this.add(screenshot({ - name: 'screenshot', - disable: !option.screenshot, - position: 'right', - index: 20 - })); - - _this.add(subtitle({ - name: 'subtitle', - disable: !option.subtitle.url, - position: 'right', - index: 30 - })); - - _this.add(setting({ - name: 'setting', - disable: !option.setting, - position: 'right', - index: 40 - })); - - _this.add(pip({ - name: 'pip', - disable: !option.pip, - position: 'right', - index: 50 - })); - - _this.add(fullscreenWeb({ - name: 'fullscreenWeb', - disable: !option.fullscreenWeb, - position: 'right', - index: 60 - })); - - _this.add(fullscreen({ - name: 'fullscreen', - disable: !option.fullscreen, - position: 'right', - index: 70 - })); - - option.controls.forEach(function (item) { - _this.add(item); - }); - }); - return _this; - } - - createClass(Control, [{ - key: "add", - value: function add(getOption, callback) { - var _this2 = this; - - var option = typeof getOption === 'function' ? getOption(this.art) : getOption; - errorHandle(['top', 'left', 'right'].includes(option.position), "Control option.position must one of 'top', 'left', 'right'"); - var _this$art$template = this.art.template, - $progress = _this$art$template.$progress, - $controlsLeft = _this$art$template.$controlsLeft, - $controlsRight = _this$art$template.$controlsRight; - - switch (option.position) { - case 'top': - this.$parent = $progress; - break; - - case 'left': - this.$parent = $controlsLeft; - break; - - case 'right': - this.$parent = $controlsRight; - break; - } - - get(getPrototypeOf(Control.prototype), "add", this).call(this, option, function ($ref) { - if (!option.disable && option.position !== 'top' && !($ref.firstElementChild && $ref.firstElementChild.tagName === 'I')) { - addClass($ref, 'art-control-onlyText'); - } - - if (callback) { - callback($ref, _this2, _this2.art); - } - }); - } - }]); - - return Control; - }(Component); - - function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playbackRate(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$c({}, option, { - html: "".concat(i18n.get('Play speed'), ":\n 0.5\n 0.75\n ").concat(i18n.get('Normal'), "\n 1.25\n 1.5\n 2.0\n "), - click: function click(contextmenu, event) { - var rate = event.target.dataset.rate; - - if (rate) { - player.playbackRate = Number(rate); - contextmenu.show = false; - } - }, - mounted: function mounted($menu) { - art.on('playbackRateChange', function (rate) { - var $current = queryAll('span', $menu).find(function (item) { - return Number(item.dataset.rate) === rate; - }); - - if ($current) { - inverseClass($current, 'art-current'); - } - }); - } - }); - }; - } - - function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function aspectRatio(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$d({}, option, { - html: "".concat(i18n.get('Aspect ratio'), ":\n ").concat(i18n.get('Default'), "\n 4:3\n 16:9\n "), - click: function click(contextmenu, event) { - var ratio = event.target.dataset.ratio; - - if (ratio) { - player.aspectRatio = ratio; - contextmenu.show = false; - } - }, - mounted: function mounted($menu) { - art.on('aspectRatioChange', function (ratio) { - var $current = queryAll('span', $menu).find(function (item) { - return item.dataset.ratio === ratio; - }); - - if ($current) { - inverseClass($current, 'art-current'); - } - }); - } - }); - }; - } - - function ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function info(option) { - return function (art) { - return _objectSpread$e({}, option, { - html: art.i18n.get('Video info'), - click: function click(contextmenu) { - art.info.show = true; - contextmenu.show = false; - } - }); - }; - } - - function ownKeys$f(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function version(option) { - return _objectSpread$f({}, option, { - html: 'ArtPlayer 3.3.3' - }); - } - - function ownKeys$g(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$g(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function close(option) { - return function (art) { - return _objectSpread$g({}, option, { - html: art.i18n.get('Close'), - click: function click(contextmenu) { - contextmenu.show = false; - } - }); - }; - } - - var Contextmenu = - /*#__PURE__*/ - function (_Component) { - inherits(Contextmenu, _Component); - - function Contextmenu(art) { - var _this; - - classCallCheck(this, Contextmenu); - - _this = possibleConstructorReturn(this, getPrototypeOf(Contextmenu).call(this, art)); - _this.name = 'contextmenu'; - var option = art.option, - _art$template = art.template, - $player = _art$template.$player, - $contextmenu = _art$template.$contextmenu, - proxy = art.events.proxy; - _this.$parent = $contextmenu; - art.on('ready', function () { - _this.add(playbackRate({ - disable: !option.playbackRate, - name: 'playbackRate', - index: 10 - })); - - _this.add(aspectRatio({ - disable: !option.aspectRatio, - name: 'aspectRatio', - index: 20 - })); - - _this.add(info({ - disable: false, - name: 'info', - index: 30 - })); - - _this.add(version({ - disable: false, - name: 'version', - index: 40 - })); - - _this.add(close({ - disable: false, - name: 'close', - index: 50 - })); - - option.contextmenu.forEach(function (item) { - _this.add(item); - }); - proxy($player, 'contextmenu', function (event) { - event.preventDefault(); - _this.show = true; - var mouseX = event.clientX; - var mouseY = event.clientY; - - var _$player$getBoundingC = $player.getBoundingClientRect(), - cHeight = _$player$getBoundingC.height, - cWidth = _$player$getBoundingC.width, - cLeft = _$player$getBoundingC.left, - cTop = _$player$getBoundingC.top; - - var _$contextmenu$getBoun = $contextmenu.getBoundingClientRect(), - mHeight = _$contextmenu$getBoun.height, - mWidth = _$contextmenu$getBoun.width; - - var menuLeft = mouseX - cLeft; - var menuTop = mouseY - cTop; - - if (mouseX + mWidth > cLeft + cWidth) { - menuLeft = cWidth - mWidth; - } - - if (mouseY + mHeight > cTop + cHeight) { - menuTop = cHeight - mHeight; - } - - setStyles($contextmenu, { - top: "".concat(menuTop, "px"), - left: "".concat(menuLeft, "px") - }); - }); - proxy($player, 'click', function (event) { - if (!event.composedPath().includes($contextmenu)) { - _this.show = false; - } - }); - art.on('blur', function () { - _this.show = false; - }); - }); - return _this; - } - - return Contextmenu; - }(Component); - - var Info = - /*#__PURE__*/ - function (_Component) { - inherits(Info, _Component); - - function Info(art) { - var _this; - - classCallCheck(this, Info); - - _this = possibleConstructorReturn(this, getPrototypeOf(Info).call(this, art)); - _this.name = 'info'; - var _art$template = art.template, - $infoPanel = _art$template.$infoPanel, - $infoClose = _art$template.$infoClose, - $video = _art$template.$video, - proxy = art.events.proxy; - proxy($infoClose, 'click', function () { - _this.show = false; - }); - var timer = null; - var types = queryAll('[data-video]', $infoPanel); - art.on('destroy', function () { - clearTimeout(timer); - }); - - function loop() { - types.forEach(function (item) { - var value = $video[item.dataset.video]; - item.innerText = typeof value === 'number' ? value.toFixed(2) : value; - }); - timer = setTimeout(function () { - loop(); - }, 1000); - } - - art.on('info:toggle', function (value) { - clearTimeout(timer); - - if (value) { - loop(); - } - }); - return _this; - } - - return Info; - }(Component); - - var Subtitle = - /*#__PURE__*/ - function (_Component) { - inherits(Subtitle, _Component); - - function Subtitle(art) { - var _this; - - classCallCheck(this, Subtitle); - - _this = possibleConstructorReturn(this, getPrototypeOf(Subtitle).call(this, art)); - _this.name = 'subtitle'; - var proxy = art.events.proxy, - subtitle = art.option.subtitle, - $subtitle = art.template.$subtitle; - setStyles($subtitle, subtitle.style); - proxy(_this.textTrack, 'cuechange', _this.update.bind(assertThisInitialized(_this))); - - if (subtitle.url) { - _this.init(subtitle.url); - } - - return _this; - } - - createClass(Subtitle, [{ - key: "update", - value: function update() { - var $subtitle = this.art.template.$subtitle; - $subtitle.innerHTML = ''; - - if (this.activeCue) { - $subtitle.innerHTML = this.activeCue.text.split(/\r?\n/).map(function (item) { - return "

".concat(item, "

"); - }).join(''); - this.art.emit('subtitle:update', this.activeCue.text); - } - } - }, { - key: "switch", - value: function _switch(url, name, ext) { - var _this2 = this; - - var _this$art = this.art, - i18n = _this$art.i18n, - notice = _this$art.notice; - return this.init(url, ext).then(function (subUrl) { - if (name) { - notice.show = "".concat(i18n.get('Switch subtitle'), ": ").concat(name); - } - - _this2.art.emit('subtitle:switch', subUrl); - - return subUrl; - }); - } - }, { - key: "init", - value: function init(url, ext) { - var _this3 = this; - - var _this$art2 = this.art, - notice = _this$art2.notice, - _this$art2$template = _this$art2.template, - $subtitle = _this$art2$template.$subtitle, - $track = _this$art2$template.$track; - return fetch(url).then(function (response) { - return response.text(); - }).then(function (text) { - _this3.art.emit('subtitle:load', url); - - switch (ext || getExt(url)) { - case 'srt': - return vttToBlob(srtToVtt(text)); - - case 'ass': - return vttToBlob(assToVtt(text)); - - case 'vtt': - return vttToBlob(text); - - default: - return url; - } - }).then(function (subUrl) { - $subtitle.innerHTML = ''; - if (_this3.url === subUrl) return subUrl; - URL.revokeObjectURL(_this3.url); - $track.src = subUrl; - return subUrl; - }).catch(function (err) { - notice.show = err; - - _this3.art.emit('subtitle:err', err); - - throw err; - }); - } - }, { - key: "url", - get: function get() { - return this.art.template.$track.src; - } - }, { - key: "textTrack", - get: function get() { - return this.art.template.$video.textTracks[0]; - } - }, { - key: "activeCue", - get: function get() { - return this.textTrack.activeCues[0]; - } - }]); - - return Subtitle; - }(Component); - - function clickInit(art, events) { - var $player = art.template.$player; - events.proxy(document, ['click', 'contextmenu'], function (event) { - if (event.composedPath().indexOf($player) > -1) { - art.isFocus = true; - art.emit('focus'); - } else { - art.isFocus = false; - art.emit('blur'); - } - }); - } - - function hoverInit(art, events) { - var $player = art.template.$player; - events.hover($player, function () { - addClass($player, 'art-hover'); - art.emit('hoverenter'); - }, function () { - removeClass($player, 'art-hover'); - art.emit('hoverleave'); - }); - } - - function mousemoveInitInit(art, events) { - var _art$template = art.template, - $player = _art$template.$player, - $video = _art$template.$video, - player = art.player, - controls = art.controls; - var autoHide = debounce(function () { - addClass($player, 'art-hide-cursor'); - removeClass($player, 'art-hover'); - controls.show = false; - }, 3000); - art.on('hoverleave', function () { - if (player.playing) { - autoHide(); - } - }); - events.proxy($player, 'mousemove', function (event) { - autoHide.clearTimeout(); - removeClass($player, 'art-hide-cursor'); - controls.show = true; - - if (!player.pip && player.playing && event.target === $video) { - autoHide(); - } - - art.emit('mousemove'); - }); - } - - function resizeInit(art, events) { - var option = art.option, - player = art.player, - $player = art.template.$player; - var object = document.createElement('object'); - object.setAttribute('aria-hidden', 'true'); - object.setAttribute('tabindex', -1); - object.type = 'text/html'; - object.data = 'about:blank'; - var playerWidth = player.width; - var playerHeight = player.height; - var resizeFn = throttle(function () { - if (player.width !== playerWidth || player.height !== playerHeight) { - playerWidth = player.width; - playerHeight = player.height; - - if (option.autoSize) { - if (!player.fullscreen && !player.fullscreenWeb && !player.pip) { - player.autoSize = true; - } else { - player.autoSize = false; - } - } - - player.aspectRatioReset = true; - art.emit('resize', { - width: player.width, - height: player.height - }); - } - }, 500); - events.proxy(object, 'load', function () { - events.proxy(object.contentDocument.defaultView, 'resize', resizeFn); - }); - $player.appendChild(object); - } - - var Events = - /*#__PURE__*/ - function () { - function Events(art) { - var _this = this; - - classCallCheck(this, Events); - - this.destroyEvents = []; - this.proxy = this.proxy.bind(this); - this.hover = this.hover.bind(this); - this.loadImg = this.loadImg.bind(this); - - if (art.whitelist.state) { - art.on('ready', function () { - clickInit(art, _this); - hoverInit(art, _this); - mousemoveInitInit(art, _this); - resizeInit(art, _this); - }); - } - } - - createClass(Events, [{ - key: "proxy", - value: function proxy(target, name, callback) { - var _this2 = this; - - var option = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - - if (Array.isArray(name)) { - return name.map(function (item) { - return _this2.proxy(target, item, callback, option); - }); - } - - target.addEventListener(name, callback, option); - - var destroy = function destroy() { - return target.removeEventListener(name, callback, option); - }; - - this.destroyEvents.push(destroy); - return destroy; - } - }, { - key: "hover", - value: function hover(target, mouseenter, mouseleave) { - if (mouseenter) { - this.proxy(target, 'mouseenter', mouseenter); - } - - if (mouseleave) { - this.proxy(target, 'mouseleave', mouseleave); - } - } - }, { - key: "loadImg", - value: function loadImg(img) { - var _this3 = this; - - return new Promise(function (resolve, reject) { - var image; - - if (img instanceof HTMLImageElement) { - image = img; - } else if (typeof img === 'string') { - image = new Image(); - image.src = img; - } else { - return reject(img); - } - - if (image.complete) { - return resolve(image); - } - - _this3.proxy(image, 'load', function () { - return resolve(image); - }); - - _this3.proxy(image, 'error', function () { - return reject(image); - }); - - return img; - }); - } - }, { - key: "destroy", - value: function destroy() { - this.destroyEvents.forEach(function (event) { - return event(); - }); - } - }]); - - return Events; - }(); - - var Hotkey = - /*#__PURE__*/ - function () { - function Hotkey(art) { - var _this = this; - - classCallCheck(this, Hotkey); - - this.keys = {}; - var option = art.option, - player = art.player, - proxy = art.events.proxy; - - if (option.hotkey) { - art.on('ready', function () { - _this.add(27, function () { - if (player.fullscreenWeb) { - player.fullscreenWeb = false; - } - }); - - _this.add(32, function () { - player.toggle = true; - }); - - _this.add(37, function () { - player.seek = player.currentTime - 5; - }); - - _this.add(38, function () { - player.volume += 0.1; - }); - - _this.add(39, function () { - player.seek = player.currentTime + 5; - }); - - _this.add(40, function () { - player.volume -= 0.1; - }); - - proxy(window, 'keydown', function (event) { - if (art.isFocus) { - var tag = document.activeElement.tagName.toUpperCase(); - var editable = document.activeElement.getAttribute('contenteditable'); - - if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') { - var events = _this.keys[event.keyCode]; - - if (events) { - event.preventDefault(); - events.forEach(function (fn) { - return fn(); - }); - art.emit('hotkey', event); - } - } - } - }); - }); - } - } - - createClass(Hotkey, [{ - key: "add", - value: function add(key, event) { - if (this.keys[key]) { - this.keys[key].push(event); - } else { - this.keys[key] = [event]; - } - } - }]); - - return Hotkey; - }(); - - var Layer = - /*#__PURE__*/ - function (_Component) { - inherits(Layer, _Component); - - function Layer(art) { - var _this; - - classCallCheck(this, Layer); - - _this = possibleConstructorReturn(this, getPrototypeOf(Layer).call(this, art)); - _this.name = 'layer'; - _this.$parent = art.template.$layer; - art.on('ready', function () { - art.option.layers.forEach(function (item) { - _this.add(item); - }); - }); - return _this; - } - - return Layer; - }(Component); - - var Loading = - /*#__PURE__*/ - function (_Component) { - inherits(Loading, _Component); - - function Loading(art) { - var _this; - - classCallCheck(this, Loading); - - _this = possibleConstructorReturn(this, getPrototypeOf(Loading).call(this, art)); - _this.name = 'loading'; - append(art.template.$loading, art.icons.loading); - return _this; - } - - return Loading; - }(Component); - - var Notice = - /*#__PURE__*/ - function () { - function Notice(art) { - classCallCheck(this, Notice); - - this.art = art; - this.time = 2000; - this.timer = null; - } - - createClass(Notice, [{ - key: "show", - set: function set(msg) { - var _this$art$template = this.art.template, - $player = _this$art$template.$player, - $noticeInner = _this$art$template.$noticeInner; - $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg; - addClass($player, 'art-notice-show'); - clearTimeout(this.timer); - this.timer = setTimeout(function () { - $noticeInner.innerText = ''; - removeClass($player, 'art-notice-show'); - }, this.time); - } - }]); - - return Notice; - }(); - - var Mask = - /*#__PURE__*/ - function (_Component) { - inherits(Mask, _Component); - - function Mask(art) { - var _this; - - classCallCheck(this, Mask); - - _this = possibleConstructorReturn(this, getPrototypeOf(Mask).call(this, art)); - _this.name = 'mask'; - append(art.template.$state, art.icons.state); - return _this; - } - - return Mask; - }(Component); - - var loading = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"; - - var state = "\n \n"; - - var play = "\n \n"; - - var pause = "\n \n"; - - var volume$1 = "\n \n \n"; - - var volumeClose = "\n \n \n"; - - var subtitle$1 = "\n \n \n"; - - var screenshot$1 = "\n\t\n\n"; - - var setting$1 = "\n \n \n"; - - var fullscreen$1 = "\n\t\n\t\n\t\n\t\n"; - - var fullscreenWeb$1 = "\n\t\n"; - - var pip$1 = "\n \n"; - - function ownKeys$h(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$h(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - var Icons = function Icons(art) { - var _this = this; - - classCallCheck(this, Icons); - - var icons = _objectSpread$h({ - loading: loading, - state: state, - play: play, - pause: pause, - volume: volume$1, - volumeClose: volumeClose, - subtitle: subtitle$1, - screenshot: screenshot$1, - setting: setting$1, - fullscreen: fullscreen$1, - fullscreenWeb: fullscreenWeb$1, - pip: pip$1 - }, art.option.icons); - - Object.keys(icons).forEach(function (key) { - var icon = document.createElement('i'); - icon.classList.add('art-icon'); - icon.classList.add("art-icon-".concat(key)); - append(icon, icons[key]); - _this[key] = icon; - }); - }; - - function ownKeys$i(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$i(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function flip(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$i({}, option, { - html: "\n
".concat(i18n.get('Flip'), "
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "), - click: function click(setting, event) { - var value = event.target.dataset.value; - - if (value) { - player.flip = value; - } - }, - mounted: function mounted($setting) { - art.on('flipChange', function (flip) { - var $current = queryAll('button', $setting).find(function (item) { - return item.dataset.value === flip; - }); - - if ($current) { - inverseClass($current.parentElement, 'current'); - } - }); - } - }); - }; - } - - function ownKeys$j(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$j(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$j(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$j(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function aspectRatio$1(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$j({}, option, { - html: "\n
".concat(i18n.get('Aspect ratio'), "
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "), - click: function click(setting, event) { - var value = event.target.dataset.value; - - if (value) { - player.aspectRatio = value; - } - }, - mounted: function mounted($setting) { - art.on('aspectRatioChange', function (ratio) { - var $current = queryAll('button', $setting).find(function (item) { - return item.dataset.value === ratio; - }); - - if ($current) { - inverseClass($current.parentElement, 'current'); - } - }); - } - }); - }; - } - - function ownKeys$k(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$k(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$k(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$k(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playbackRate$1(option) { - return function (art) { - var i18n = art.i18n, - player = art.player, - proxy = art.events.proxy; - return _objectSpread$k({}, option, { - html: "\n
\n ".concat(i18n.get('Play speed'), ": 1.0x\n
\n
\n \n
\n "), - mounted: function mounted($setting) { - var $range = query('.art-setting-range input', $setting); - var $value = query('.art-subtitle-value', $setting); - proxy($range, 'change', function () { - var value = $range.value; - $value.innerText = value; - player.playbackRate = Number(value); - }); - art.on('playbackRateChange', function (rate) { - if ($range.value !== rate) { - $range.value = rate; - $value.innerText = rate; - } - }); - } - }); - }; - } - - var Setting = - /*#__PURE__*/ - function (_Component) { - inherits(Setting, _Component); - - function Setting(art) { - var _this; - - classCallCheck(this, Setting); - - _this = possibleConstructorReturn(this, getPrototypeOf(Setting).call(this, art)); - _this.name = 'setting'; - var option = art.option, - _art$template = art.template, - $setting = _art$template.$setting, - $settingBody = _art$template.$settingBody, - proxy = art.events.proxy; - _this.$parent = $settingBody; - - if (option.setting) { - art.on('ready', function () { - proxy($setting, 'click', function (e) { - if (e.target === $setting) { - _this.show = false; - } - }); - - _this.add(flip({ - disable: !option.flip, - name: 'flip' - })); - - _this.add(aspectRatio$1({ - disable: !option.aspectRatio, - name: 'aspectRatio' - })); - - _this.add(playbackRate$1({ - disable: !option.playbackRate, - name: 'playbackRate' - })); - }); - art.on('blur', function () { - _this.show = false; - }); - } - - return _this; - } - - return Setting; - }(Component); - - var Storage = - /*#__PURE__*/ - function () { - function Storage() { - classCallCheck(this, Storage); - - this.name = 'artplayer_settings'; - } - - createClass(Storage, [{ - key: "get", - value: function get(key) { - var storage = JSON.parse(localStorage.getItem(this.name)) || {}; - return key ? storage[key] : {}; - } - }, { - key: "set", - value: function set(key, value) { - var storage = Object.assign({}, this.get(), defineProperty({}, key, value)); - localStorage.setItem(this.name, JSON.stringify(storage)); - } - }, { - key: "del", - value: function del(key) { - var storage = this.get(); - delete storage[key]; - localStorage.setItem(this.name, JSON.stringify(storage)); - } - }, { - key: "clean", - value: function clean() { - localStorage.removeItem(this.name); - } - }]); - - return Storage; - }(); - - function settingMix(art) { - var i18n = art.i18n, - subtitle = art.subtitle, - proxy = art.events.proxy; - return { - title: 'Subtitle', - name: 'subtitleOffset', - index: 20, - html: "\n
\n ".concat(i18n.get('Subtitle offset time'), ": 0s\n
\n
\n \n
\n "), - mounted: function mounted($setting) { - var $range = query('.art-setting-range input', $setting); - var $value = query('.art-subtitle-value', $setting); - proxy($range, 'change', function () { - var value = $range.value; - $value.innerText = value; - art.plugins.subtitleOffset.offset(Number(value)); - }); - art.on('subtitle:switch', function () { - $range.value = 0; - $value.innerText = 0; - }); - art.on('subtitleOffset', function (value) { - subtitle.update(); - - if ($range.value !== value) { - $range.value = value; - $value.innerText = value; - } - }); - } - }; - } - - function subtitleOffset(art) { - var clamp = art.constructor.utils.clamp; - var setting = art.setting, - notice = art.notice, - template = art.template, - i18n = art.i18n, - player = art.player; - setting.add(settingMix); - var cuesCache = []; - art.on('subtitle:switch', function () { - cuesCache = []; - }); - return { - name: 'subtitleOffset', - offset: function offset(value) { - if (template.$track && template.$track.track) { - var cues = Array.from(template.$track.track.cues); - var time = clamp(value, -5, 5); - cues.forEach(function (cue, index) { - if (!cuesCache[index]) { - cuesCache[index] = { - startTime: cue.startTime, - endTime: cue.endTime - }; - } - - cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration); - cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration); - }); - notice.show = "".concat(i18n.get('Subtitle offset time'), ": ").concat(value, "s"); - art.emit('subtitleOffset', value); - } else { - notice.show = "".concat(i18n.get('No subtitles found')); - art.emit('subtitleOffset', 0); - } - } - }; - } - - function localVideo(art) { - var proxy = art.events.proxy, - template = art.template, - player = art.player, - option = art.option, - setting = art.setting, - i18n = art.i18n; - - function loadVideo(file) { - if (file) { - var canPlayType = template.$video.canPlayType(file.type); - - if (canPlayType === 'maybe' || canPlayType === 'probably') { - var url = URL.createObjectURL(file); - option.title = file.name; - player.switchUrl(url, file.name); - art.emit('localVideo', file); - } else { - errorHandle(false, 'Playback of this file format is not supported'); - } - } - } - - proxy(template.$player, 'dragover', function (e) { - e.preventDefault(); - }); - proxy(template.$player, 'drop', function (e) { - e.preventDefault(); - var file = e.dataTransfer.files[0]; - loadVideo(file); - }); - - function attach(target) { - var $input = append(target, ''); - setStyle(target, 'position', 'relative'); - setStyles($input, { - position: 'absolute', - width: '100%', - height: '100%', - left: '0', - top: '0', - opacity: '0' - }); - proxy($input, 'change', function () { - var file = $input.files[0]; - loadVideo(file); - }); - } - - art.on('ready', function () { - setting.add({ - title: 'Local Video', - name: 'localVideo', - index: 30, - html: "\n
\n ".concat(i18n.get('Local Video'), "\n
\n
\n
").concat(i18n.get('Open'), "
\n
\n
\n "), - mounted: function mounted($setting) { - var $btn = query('.art-upload-btn', $setting); - var $value = query('.art-upload-value', $setting); - art.on('localVideo', function (file) { - $value.textContent = file.name; - $value.title = file.name; - }); - attach($btn); - } - }); - }); - return { - name: 'localVideo', - attach: attach - }; - } - - function localSubtitle(art) { - var proxy = art.events.proxy, - subtitle = art.subtitle, - setting = art.setting, - i18n = art.i18n; - - function loadSubtitle(file) { - if (file) { - var type = getExt(file.name); - - if (['ass', 'vtt', 'srt'].includes(type)) { - var url = URL.createObjectURL(file); - subtitle.switch(url, file.name, type); - art.emit('localSubtitle', file); - } else { - errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format'); - } - } - } - - function attach(target) { - var $input = append(target, ''); - setStyle(target, 'position', 'relative'); - setStyles($input, { - position: 'absolute', - width: '100%', - height: '100%', - left: '0', - top: '0', - opacity: '0' - }); - proxy($input, 'change', function () { - var file = $input.files[0]; - loadSubtitle(file); - }); - } - - art.on('ready', function () { - setting.add({ - title: 'Local Subtitle', - name: 'localSubtitle', - index: 40, - html: "\n
\n ".concat(i18n.get('Local Subtitle'), "\n
\n
\n
").concat(i18n.get('Open'), "
\n
\n
\n "), - mounted: function mounted($setting) { - var $btn = query('.art-upload-btn', $setting); - var $value = query('.art-upload-value', $setting); - art.on('localSubtitle', function (file) { - $value.textContent = file.name; - $value.title = file.name; - }); - attach($btn); - } - }); - }); - return { - name: 'localSubtitle', - attach: attach - }; - } - - function miniProgressBar(art) { - var layers = art.layers, - player = art.player, - theme = art.option.theme; - layers.add({ - name: 'miniProgressBar', - style: { - display: 'none', - position: 'absolute', - left: 0, - right: 0, - bottom: 0, - height: '2px', - background: theme - }, - mounted: function mounted($progressBar) { - art.on('control:toggle', function (value) { - $progressBar.style.display = value ? 'none' : 'block'; - }); - art.on('destroy', function () { - $progressBar.style.display = 'none'; - }); - art.on('video:timeupdate', function () { - $progressBar.style.width = "".concat(player.played * 100, "%"); - }); - } - }); - return { - name: 'miniProgressBar' - }; - } - - function networkMonitor(art) { - var sampleTime = 10000; - var waitTime = 0; - var playTime = 0; - var lastTime = 0; - var timer = null; - - function resetTime() { - waitTime = 0; - playTime = 0; - lastTime = 0; - cancelAnimationFrame(timer); - timer = null; - } - - function startTime() { - if (timer) return; - - (function loop() { - if (art.isDestroy) return; - timer = requestAnimationFrame(function () { - var nowTime = Date.now(); - - if (lastTime) { - var diffTime = nowTime - lastTime; - playTime += diffTime; - - if (!art.player.playing) { - waitTime += diffTime; - } - } - - lastTime = nowTime; - art.emit('networkMonitor', waitTime / playTime); - - if (playTime >= sampleTime) { - waitTime = 0; - playTime = 0; - } - - loop(); - }); - })(); - } - - art.on('play', startTime); - art.on('pause', resetTime); - return { - name: 'networkMonitor', - reset: resetTime, - start: startTime, - sample: function sample(time) { - sampleTime = time; - } - }; - } - - var Plugins = - /*#__PURE__*/ - function () { - function Plugins(art) { - var _this = this; - - classCallCheck(this, Plugins); - - this.art = art; - this.id = 0; - var option = art.option; - - if (option.subtitle.url && option.subtitleOffset) { - this.add(subtitleOffset); - } - - if (!option.isLive && option.miniProgressBar) { - this.add(miniProgressBar); - } - - if (option.localVideo) { - this.add(localVideo); - } - - if (option.localSubtitle) { - this.add(localSubtitle); - } - - if (option.networkMonitor) { - this.add(networkMonitor); - } - - art.option.plugins.forEach(function (plugin) { - _this.add(plugin); - }); - } - - createClass(Plugins, [{ - key: "add", - value: function add(plugin) { - this.id += 1; - var result = plugin.call(this, this.art); - var pluginName = ''; - - if (result && result.name) { - pluginName = result.name; - } else if (plugin.name) { - pluginName = plugin.name; - } else { - pluginName = "plugin".concat(this.id); - } - - errorHandle(!has$1(this, pluginName), "Cannot add a plugin that already has the same name: ".concat(pluginName)); - Object.defineProperty(this, pluginName, { - value: result - }); - this.art.emit('plugin:add', plugin); - return this; - } - }]); - - return Plugins; - }(); - - var Mobile = function Mobile(art) { - classCallCheck(this, Mobile); - - var option = art.option, - proxy = art.events.proxy, - $video = art.template.$video; - config.events.forEach(function (eventName) { - proxy($video, eventName, function (event) { - art.emit("video:".concat(event.type), event); - }); - }); - Object.keys(option.moreVideoAttr).forEach(function (key) { - $video[key] = option.moreVideoAttr[key]; - }); - - if (option.muted) { - $video.muted = option.muted; - } - - if (option.volume) { - $video.volume = clamp(option.volume, 0, 1); - } - - if (option.poster) { - $video.poster = option.poster; - } - - if (option.autoplay) { - $video.autoplay = option.autoplay; - } - - $video.controls = true; - var typeName = option.type || getExt(option.url); - var typeCallback = option.customType[typeName]; - - if (typeName && typeCallback) { - typeCallback($video, option.url, art); - art.emit('customType', typeName); - } else { - $video.src = option.url; - art.emit('urlChange', $video.src); - } - }; - - var id = 0; - - var Artplayer = - /*#__PURE__*/ - function (_Emitter) { - inherits(Artplayer, _Emitter); - - function Artplayer(option) { - var _this; - - classCallCheck(this, Artplayer); - - _this = possibleConstructorReturn(this, getPrototypeOf(Artplayer).call(this)); - _this.option = optionValidator(mergeDeep(Artplayer.option, option), scheme); - _this.isFocus = false; - _this.isDestroy = false; - _this.whitelist = new Whitelist(assertThisInitialized(_this)); - _this.template = new Template(assertThisInitialized(_this)); - _this.events = new Events(assertThisInitialized(_this)); - - if (_this.whitelist.state) { - _this.storage = new Storage(assertThisInitialized(_this)); - _this.icons = new Icons(assertThisInitialized(_this)); - _this.i18n = new I18n(assertThisInitialized(_this)); - _this.notice = new Notice(assertThisInitialized(_this)); - _this.player = new Player(assertThisInitialized(_this)); - _this.layers = new Layer(assertThisInitialized(_this)); - _this.controls = new Control(assertThisInitialized(_this)); - _this.contextmenu = new Contextmenu(assertThisInitialized(_this)); - _this.subtitle = new Subtitle(assertThisInitialized(_this)); - _this.info = new Info(assertThisInitialized(_this)); - _this.loading = new Loading(assertThisInitialized(_this)); - _this.hotkey = new Hotkey(assertThisInitialized(_this)); - _this.mask = new Mask(assertThisInitialized(_this)); - _this.setting = new Setting(assertThisInitialized(_this)); - _this.plugins = new Plugins(assertThisInitialized(_this)); - } else { - _this.mobile = new Mobile(assertThisInitialized(_this)); - } - - id += 1; - _this.id = id; - Artplayer.instances.push(assertThisInitialized(_this)); - return _this; - } - - createClass(Artplayer, [{ - key: "destroy", - value: function destroy() { - var removeHtml = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - this.events.destroy(); - this.template.destroy(removeHtml); - Artplayer.instances.splice(Artplayer.instances.indexOf(this), 1); - this.isDestroy = true; - this.emit('destroy'); - } - }], [{ - key: "version", - get: function get() { - return '3.3.3'; - } - }, { - key: "env", - get: function get() { - return '"development"'; - } - }, { - key: "config", - get: function get() { - return config; - } - }, { - key: "utils", - get: function get() { - return utils; - } - }, { - key: "scheme", - get: function get() { - return scheme; - } - }, { - key: "Emitter", - get: function get() { - return Emitter; - } - }, { - key: "validator", - get: function get() { - return optionValidator; - } - }, { - key: "kindOf", - get: function get() { - return optionValidator.kindOf; - } - }, { - key: "option", - get: function get() { - return { - container: '#artplayer', - url: '', - poster: '', - title: '', - theme: '#f00', - volume: 0.7, - isLive: false, - muted: false, - autoplay: false, - autoSize: false, - loop: false, - flip: false, - playbackRate: false, - aspectRatio: false, - screenshot: false, - setting: false, - hotkey: true, - pip: false, - mutex: true, - backdrop: true, - fullscreen: false, - fullscreenWeb: false, - subtitleOffset: false, - miniProgressBar: false, - localVideo: false, - localSubtitle: false, - autoPip: false, - networkMonitor: false, - layers: [], - contextmenu: [], - quality: [], - controls: [], - highlight: [], - plugins: [], - whitelist: [], - thumbnails: { - url: '', - number: 60, - width: 160, - height: 90, - column: 10 - }, - subtitle: { - url: '', - style: {} - }, - moreVideoAttr: { - controls: false, - preload: 'metadata' - }, - icons: {}, - customType: {}, - lang: navigator.language.toLowerCase() - }; - } - }]); - - return Artplayer; - }(Emitter); - - Object.defineProperty(Artplayer, 'instances', { - value: [] - }); // eslint-disable-next-line no-console - - console.log('%c ArtPlayer %c 3.3.3 %c https://artplayer.org', 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', ''); - - function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$l(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - var ArtplayerReact = - /*#__PURE__*/ - function (_React$Component) { - inherits(ArtplayerReact, _React$Component); - - function ArtplayerReact(props) { - var _this; - - classCallCheck(this, ArtplayerReact); - - _this = possibleConstructorReturn(this, getPrototypeOf(ArtplayerReact).call(this, props)); - Artplayer.utils.errorHandle(props.option && _typeof_1(props.option) === 'object', "The prop 'option' object cannot be missing"); - _this.instance = null; - _this.artRef = react.createRef(); - return _this; - } - - createClass(ArtplayerReact, [{ - key: "componentDidMount", - value: function componentDidMount() { - var _this$props = this.props, - option = _this$props.option, - getInstance = _this$props.getInstance; - this.instance = new Artplayer(_objectSpread$l({}, option, { - container: this.artRef.current - })); - - if (getInstance && typeof getInstance === 'function') { - getInstance(this.instance); - } - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - if (this.instance && this.instance.destroy) { - this.instance.destroy(); - } - } - }, { - key: "render", - value: function render() { - var _this$props2 = this.props, - option = _this$props2.option, - getInstance = _this$props2.getInstance, - rest = objectWithoutProperties(_this$props2, ["option", "getInstance"]); - - return react.createElement('div', _objectSpread$l({ - ref: this.artRef - }, rest)); - } - }]); - - return ArtplayerReact; - }(react.Component); - - return ArtplayerReact; - -}))); -//# sourceMappingURL=artplayer-react.js.map diff --git a/docs/uncompiled/artplayer-react.js.map b/docs/uncompiled/artplayer-react.js.map deleted file mode 100644 index 03171cb50..000000000 --- a/docs/uncompiled/artplayer-react.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"artplayer-react.js","sources":["../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../packages/artplayer-react/node_modules/object-assign/index.js","../../packages/artplayer-react/node_modules/react/cjs/react.production.min.js","../../packages/artplayer-react/node_modules/prop-types/lib/ReactPropTypesSecret.js","../../packages/artplayer-react/node_modules/prop-types/checkPropTypes.js","../../packages/artplayer-react/node_modules/react/cjs/react.development.js","../../packages/artplayer-react/node_modules/react/index.js","../../node_modules/style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/@babel/runtime/helpers/superPropBase.js","../../node_modules/@babel/runtime/helpers/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js","../../packages/artplayer-react/src/index.js"],"sourcesContent":["function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.12.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var h=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113;n&&Symbol.for(\"react.suspense_list\");\nvar z=n?Symbol.for(\"react.memo\"):60115,aa=n?Symbol.for(\"react.lazy\"):60116;n&&Symbol.for(\"react.fundamental\");n&&Symbol.for(\"react.responder\");n&&Symbol.for(\"react.scope\");var A=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction B(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cP.length&&P.push(a)}\nfunction S(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+T(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var l=0;l 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarningWithoutStack = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack;\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\nvar warningWithoutStack = function () {};\n\n{\n warningWithoutStack = function (condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n if (format === undefined) {\n throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (args.length > 8) {\n // Check before the condition to catch violations early.\n throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n }\n\n if (condition) {\n return;\n }\n\n if (typeof console !== 'undefined') {\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n });\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n\n Function.prototype.apply.call(console.error, console, argsWithFormat);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nvar warningWithoutStack$1 = warningWithoutStack;\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n warningWithoutStack$1(false, \"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");\n }\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n lowPriorityWarningWithoutStack$1(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n suspense: null\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\nvar describeComponentFrame = function (name, source, ownerName) {\n var sourceInfo = '';\n\n if (source) {\n var path = source.fileName;\n var fileName = path.replace(BEFORE_SLASH_RE, '');\n\n {\n // In DEV, include code for a common special case:\n // prefer \"folder/index.js\" instead of just \"index.js\".\n if (/^index\\./.test(fileName)) {\n var match = path.match(BEFORE_SLASH_RE);\n\n if (match) {\n var pathBeforeSlash = match[1];\n\n if (pathBeforeSlash) {\n var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n fileName = folderName + '/' + fileName;\n }\n }\n }\n }\n\n sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n } else if (ownerName) {\n sourceInfo = ' (created by ' + ownerName + ')';\n }\n\n return '\\n in ' + (name || 'Unknown') + sourceInfo;\n};\n\nvar Resolved = 1;\n\nfunction refineResolvedLazyComponent(lazyComponent) {\n return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return 'Context.Consumer';\n\n case REACT_PROVIDER_TYPE:\n return 'Context.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_LAZY_TYPE:\n {\n var thenable = type;\n var resolvedThenable = refineResolvedLazyComponent(thenable);\n\n if (resolvedThenable) {\n return getComponentName(resolvedThenable);\n }\n\n break;\n }\n }\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame = {};\nvar currentlyValidatingElement = null;\nfunction setCurrentlyValidatingElement(element) {\n {\n currentlyValidatingElement = element;\n }\n}\n\n{\n // Stack implementation injected by the current renderer.\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentlyValidatingElement) {\n var name = getComponentName(currentlyValidatingElement.type);\n var owner = currentlyValidatingElement._owner;\n stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n current: false\n};\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n};\n\n{\n _assign(ReactSharedInternals, {\n // These should not be included in production.\n ReactDebugCurrentFrame: ReactDebugCurrentFrame,\n // Shim for React DOM 16.0.0 which still destructured (but not used) this.\n // TODO: remove in React 17.0.\n ReactComponentTreeHook: {}\n });\n}\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = warningWithoutStack$1;\n\n{\n warning = function (condition, format) {\n if (condition) {\n return;\n }\n\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum(); // eslint-disable-next-line react-internal/warning-and-invariant-args\n\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n warningWithoutStack$1.apply(void 0, [false, format + '%s'].concat(args, [stack]));\n };\n}\n\nvar warning$1 = warning;\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n warningWithoutStack$1(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n warningWithoutStack$1(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\n\n\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie.
\n // or
). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n //
, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\n/**\n * Return a function that produces ReactElements of a given type.\n * See https://reactjs.org/docs/react-api.html#createfactory\n */\n\n\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n }\n }\n\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\nvar POOL_SIZE = 10;\nvar traverseContextPool = [];\n\nfunction getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) {\n if (traverseContextPool.length) {\n var traverseContext = traverseContextPool.pop();\n traverseContext.result = mapResult;\n traverseContext.keyPrefix = keyPrefix;\n traverseContext.func = mapFunction;\n traverseContext.context = mapContext;\n traverseContext.count = 0;\n return traverseContext;\n } else {\n return {\n result: mapResult,\n keyPrefix: keyPrefix,\n func: mapFunction,\n context: mapContext,\n count: 0\n };\n }\n}\n\nfunction releaseTraverseContext(traverseContext) {\n traverseContext.result = null;\n traverseContext.keyPrefix = null;\n traverseContext.func = null;\n traverseContext.context = null;\n traverseContext.count = 0;\n\n if (traverseContextPool.length < POOL_SIZE) {\n traverseContextPool.push(traverseContext);\n }\n}\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\n\n\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n callback(traverseContext, children, // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n {\n // Warn about using Maps as children\n if (iteratorFn === children.entries) {\n !didWarnAboutMaps ? warning$1(false, 'Using Maps as children is unsupported and will likely yield ' + 'unexpected results. Convert it to a sequence/iterable of keyed ' + 'ReactElements instead.') : void 0;\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(children);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else if (type === 'object') {\n var addendum = '';\n\n {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum();\n }\n\n var childrenString = '' + children;\n\n {\n {\n throw Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \").\" + addendum);\n }\n }\n }\n }\n\n return subtreeCount;\n}\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\n\n\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof component === 'object' && component !== null && component.key != null) {\n // Explicit key\n return escape(component.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n func.call(context, child, bookKeeping.count++);\n}\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\n\n\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n\n var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n releaseTraverseContext(traverseContext);\n}\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n var mappedChild = func.call(context, child, bookKeeping.count++);\n\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n\n var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n releaseTraverseContext(traverseContext);\n}\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\n\n\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n return traverseAllChildren(children, function () {\n return null;\n }, null);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, function (child) {\n return child;\n });\n return result;\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error(\"React.Children.only expected to receive a single React element child.\");\n }\n }\n\n return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n !(calculateChangedBits === null || typeof calculateChangedBits === 'function') ? warningWithoutStack$1(false, 'createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits) : void 0;\n }\n }\n\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n warning$1(false, 'Rendering is not supported and will be removed in ' + 'a future major release. Did you mean to render instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n warning$1(false, 'Rendering is not supported and will be removed in ' + 'a future major release. Did you mean to render instead?');\n }\n\n return context.Consumer;\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nfunction lazy(ctor) {\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _ctor: ctor,\n // React uses these fields to store the result.\n _status: -1,\n _result: null\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes;\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n warning$1(false, 'React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n defaultProps = newDefaultProps; // Match production behavior more closely:\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n warning$1(false, 'React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n propTypes = newPropTypes; // Match production behavior more closely:\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n warningWithoutStack$1(false, 'forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n warningWithoutStack$1(false, 'forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n !( // Do not warn for 0 arguments because it could be due to usage of the 'arguments' object\n render.length === 0 || render.length === 2) ? warningWithoutStack$1(false, 'forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.') : void 0;\n }\n\n if (render != null) {\n !(render.defaultProps == null && render.propTypes == null) ? warningWithoutStack$1(false, 'forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?') : void 0;\n }\n }\n\n return {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n}\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE);\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n warningWithoutStack$1(false, 'memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n if (!(dispatcher !== null)) {\n {\n throw Error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.\");\n }\n }\n\n return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n\n {\n !(unstable_observedBits === undefined) ? warning$1(false, 'useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://fb.me/rules-of-hooks' : '') : void 0; // TODO: add a more generic warning for invalid values.\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n warning$1(false, 'Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n warning$1(false, 'Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, inputs) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, inputs);\n}\nfunction useLayoutEffect(create, inputs) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, inputs);\n}\nfunction useCallback(callback, inputs) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, inputs);\n}\nfunction useMemo(create, inputs) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, inputs);\n}\nfunction useImperativeHandle(ref, create, inputs) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, inputs);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\nvar emptyObject$1 = {};\nfunction useResponder(responder, listenerProps) {\n var dispatcher = resolveDispatcher();\n\n {\n if (responder == null || responder.$$typeof !== REACT_RESPONDER_TYPE) {\n warning$1(false, 'useResponder: invalid first argument. Expected an event responder, but instead got %s', responder);\n return;\n }\n }\n\n return dispatcher.useResponder(responder, listenerProps || emptyObject$1);\n}\nfunction useTransition(config) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useTransition(config);\n}\nfunction useDeferredValue(value, config) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDeferredValue(value, config);\n}\n\nfunction withSuspenseConfig(scope, config) {\n var previousConfig = ReactCurrentBatchConfig.suspense;\n ReactCurrentBatchConfig.suspense = config === undefined ? null : config;\n\n try {\n scope();\n } finally {\n ReactCurrentBatchConfig.suspense = previousConfig;\n }\n}\n\n/**\n * ReactElementValidator provides a wrapper around a element factory\n * which validates the props passed to the element. This is intended to be\n * used only in DEV and could be replaced by a static type checker for languages\n * that support it.\n */\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement(element);\n\n {\n warning$1(false, 'Each child in a list should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.', currentComponentErrorInfo, childOwner);\n }\n\n setCurrentlyValidatingElement(null);\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var name = getComponentName(type);\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n setCurrentlyValidatingElement(element);\n checkPropTypes(propTypes, element.props, 'prop', name, ReactDebugCurrentFrame.getStackAddendum);\n setCurrentlyValidatingElement(null);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true;\n warningWithoutStack$1(false, 'Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function') {\n !type.getDefaultProps.isReactClassApproved ? warningWithoutStack$1(false, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n setCurrentlyValidatingElement(fragment);\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n warning$1(false, 'Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n warning$1(false, 'Invalid attribute `ref` supplied to `React.Fragment`.');\n }\n\n setCurrentlyValidatingElement(null);\n}\n\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n warning$1(false, 'React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n warning$1(false, 'React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n if (hasOwnProperty$1.call(props, 'key')) {\n warning$1(false, 'React.jsx: Spreading a key to JSX is a deprecated pattern. ' + 'Explicitly pass a key after spreading props in your JSX call. ' + 'E.g. ');\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n return jsxWithValidation(type, props, key, true);\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n return jsxWithValidation(type, props, key, false);\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n warning$1(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type; // Legacy hook: remove it\n\n {\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n lowPriorityWarningWithoutStack$1(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\nvar hasBadMapPolyfill;\n\n{\n hasBadMapPolyfill = false;\n\n try {\n var frozenObject = Object.freeze({});\n var testMap = new Map([[frozenObject, null]]);\n var testSet = new Set([frozenObject]); // This is necessary for Rollup to not consider these unused.\n // https://github.com/rollup/rollup/issues/1771\n // TODO: we can remove these if Rollup fixes the bug.\n\n testMap.set(0, 0);\n testSet.add(0);\n } catch (e) {\n // TODO: Consider warning about bad polyfills\n hasBadMapPolyfill = true;\n }\n}\n\nfunction createFundamentalComponent(impl) {\n // We use responder as a Map key later on. When we have a bad\n // polyfill, then we can't use it as a key as the polyfill tries\n // to add a property to the object.\n if (true && !hasBadMapPolyfill) {\n Object.freeze(impl);\n }\n\n var fundamantalComponent = {\n $$typeof: REACT_FUNDAMENTAL_TYPE,\n impl: impl\n };\n\n {\n Object.freeze(fundamantalComponent);\n }\n\n return fundamantalComponent;\n}\n\nfunction createEventResponder(displayName, responderConfig) {\n var getInitialState = responderConfig.getInitialState,\n onEvent = responderConfig.onEvent,\n onMount = responderConfig.onMount,\n onUnmount = responderConfig.onUnmount,\n onRootEvent = responderConfig.onRootEvent,\n rootEventTypes = responderConfig.rootEventTypes,\n targetEventTypes = responderConfig.targetEventTypes,\n targetPortalPropagation = responderConfig.targetPortalPropagation;\n var eventResponder = {\n $$typeof: REACT_RESPONDER_TYPE,\n displayName: displayName,\n getInitialState: getInitialState || null,\n onEvent: onEvent || null,\n onMount: onMount || null,\n onRootEvent: onRootEvent || null,\n onUnmount: onUnmount || null,\n rootEventTypes: rootEventTypes || null,\n targetEventTypes: targetEventTypes || null,\n targetPortalPropagation: targetPortalPropagation || false\n }; // We use responder as a Map key later on. When we have a bad\n // polyfill, then we can't use it as a key as the polyfill tries\n // to add a property to the object.\n\n if (true && !hasBadMapPolyfill) {\n Object.freeze(eventResponder);\n }\n\n return eventResponder;\n}\n\nfunction createScope() {\n var scopeComponent = {\n $$typeof: REACT_SCOPE_TYPE\n };\n\n {\n Object.freeze(scopeComponent);\n }\n\n return scopeComponent;\n}\n\n// Helps identify side effects in render-phase lifecycle hooks and setState\n// reducers by double invoking them in Strict Mode.\n\n // To preserve the \"Pause on caught exceptions\" behavior of the debugger, we\n// replay the begin phase of a failed component inside invokeGuardedCallback.\n\n // Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\n\n // Gather advanced timing metrics for Profiler subtrees.\n\n // Trace which interactions trigger each commit.\n\n // SSR experiments\n\n\n // Only used in www builds.\n\n // Only used in www builds.\n\n // Disable javascript: URL strings in href for XSS protection.\n\n // React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\n\n // These APIs will no longer be \"unstable\" in the upcoming 16.7 release,\n// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.\n\nvar exposeConcurrentModeAPIs = false;\n // Experimental React Flare event system and event components support.\n\nvar enableFlareAPI = false; // Experimental Host Component support.\n\nvar enableFundamentalAPI = false; // Experimental Scope support.\n\nvar enableScopeAPI = false; // New API for JSX transforms to target - https://github.com/reactjs/rfcs/pull/107\n\nvar enableJSXTransformAPI = false; // We will enforce mocking scheduler with scheduler/unstable_mock at some point. (v17?)\n// Till then, we warn about the missing mock, but still fallback to a legacy mode compatible version\n\n // For tests, we flush suspense fallbacks in an act scope;\n// *except* in some of our own tests, where we test incremental loading states.\n\n // Add a callback property to suspense to notify which promises are currently\n// in the update queue. This allows reporting and tracing of what is causing\n// the user to see a loading state.\n// Also allows hydration callbacks to fire when a dehydrated boundary gets\n// hydrated or deleted.\n\n // Part of the simplification of React.createElement so we can eventually move\n// from React.createElement to React.jsx\n// https://github.com/reactjs/rfcs/blob/createlement-rfc/text/0000-create-element-changes.md\n\n\n\n\n\n // Flag to turn event.target and event.currentTarget in ReactNative from a reactTag to a component instance\n\nvar React = {\n Children: {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n },\n createRef: createRef,\n Component: Component,\n PureComponent: PureComponent,\n createContext: createContext,\n forwardRef: forwardRef,\n lazy: lazy,\n memo: memo,\n useCallback: useCallback,\n useContext: useContext,\n useEffect: useEffect,\n useImperativeHandle: useImperativeHandle,\n useDebugValue: useDebugValue,\n useLayoutEffect: useLayoutEffect,\n useMemo: useMemo,\n useReducer: useReducer,\n useRef: useRef,\n useState: useState,\n Fragment: REACT_FRAGMENT_TYPE,\n Profiler: REACT_PROFILER_TYPE,\n StrictMode: REACT_STRICT_MODE_TYPE,\n Suspense: REACT_SUSPENSE_TYPE,\n createElement: createElementWithValidation,\n cloneElement: cloneElementWithValidation,\n createFactory: createFactoryWithValidation,\n isValidElement: isValidElement,\n version: ReactVersion,\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: ReactSharedInternals\n};\n\nif (exposeConcurrentModeAPIs) {\n React.useTransition = useTransition;\n React.useDeferredValue = useDeferredValue;\n React.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n React.unstable_withSuspenseConfig = withSuspenseConfig;\n}\n\nif (enableFlareAPI) {\n React.unstable_useResponder = useResponder;\n React.unstable_createResponder = createEventResponder;\n}\n\nif (enableFundamentalAPI) {\n React.unstable_createFundamental = createFundamentalComponent;\n}\n\nif (enableScopeAPI) {\n React.unstable_createScope = createScope;\n} // Note: some APIs are added with feature flags.\n// Make sure that stable builds for open source\n// don't modify the React object to avoid deopts.\n// Also let's not expose their names in stable builds.\n\n\nif (enableJSXTransformAPI) {\n {\n React.jsxDEV = jsxWithValidation;\n React.jsx = jsxWithValidationDynamic;\n React.jsxs = jsxWithValidationStatic;\n }\n}\n\n\n\nvar React$2 = Object.freeze({\n\tdefault: React\n});\n\nvar React$3 = ( React$2 && React ) || React$2;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest.\n\n\nvar react = React$3.default || React$3;\n\nmodule.exports = react;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach(item => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', pos);\n}\n","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\nexport function downloadFile(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","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n","import { errorHandle } from '../utils';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === 'string' || value instanceof Element,\n `${paths.join('.')} require 'string' or 'Element' type`,\n );\n}\n\nexport default {\n container: validElement,\n url: 'string',\n poster: 'string',\n title: 'string',\n theme: 'string',\n lang: 'string',\n volume: 'number',\n isLive: 'boolean',\n muted: 'boolean',\n autoplay: 'boolean',\n autoSize: 'boolean',\n loop: 'boolean',\n flip: 'boolean',\n playbackRate: 'boolean',\n aspectRatio: 'boolean',\n screenshot: 'boolean',\n setting: 'boolean',\n hotkey: 'boolean',\n pip: 'boolean',\n mutex: 'boolean',\n backdrop: 'boolean',\n fullscreen: 'boolean',\n fullscreenWeb: 'boolean',\n subtitleOffset: 'boolean',\n miniProgressBar: 'boolean',\n localVideo: 'boolean',\n localSubtitle: 'boolean',\n networkMonitor: 'boolean',\n plugins: ['function'],\n whitelist: ['string|function|regexp'],\n layers: [\n {\n disable: 'boolean|undefined',\n name: 'string|undefined',\n index: 'number|undefined',\n html: validElement,\n style: 'object|undefined',\n click: 'function|undefined',\n mounted: 'function|undefined',\n tooltip: 'string|undefined',\n },\n ],\n contextmenu: [\n {\n disable: 'boolean|undefined',\n name: 'string|undefined',\n index: 'number|undefined',\n html: validElement,\n style: 'object|undefined',\n click: 'function|undefined',\n mounted: 'function|undefined',\n tooltip: 'string|undefined',\n },\n ],\n quality: [\n {\n default: 'boolean|undefined',\n name: 'string',\n url: 'string',\n },\n ],\n controls: [\n {\n disable: 'boolean|undefined',\n name: 'string|undefined',\n index: 'number|undefined',\n html: validElement,\n style: 'object|undefined',\n click: 'function|undefined',\n mounted: 'function|undefined',\n tooltip: 'string|undefined',\n position: (value, type, 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 highlight: [\n {\n time: 'number',\n text: 'string',\n },\n ],\n thumbnails: {\n url: 'string',\n number: 'number',\n width: 'number',\n height: 'number',\n column: 'number',\n },\n subtitle: {\n url: 'string',\n style: 'object',\n },\n moreVideoAttr: 'object',\n icons: 'object',\n customType: 'object',\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.ua = navigator.userAgent;\n this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.ua);\n this.state =\n !this.isMobile ||\n whitelist.some(item => {\n switch (kindOf(item)) {\n case 'string':\n return this.ua.indexOf(item) > -1;\n case 'function':\n return item(this.ua);\n case 'regexp':\n return item.test(this.ua);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every(art => art.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n errorHandle(\n this.$container.clientWidth && this.$container.clientHeight,\n 'The width and height of the container cannot be 0',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { theme, backdrop } = this.art.option;\n this.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
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
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$track = this.query('.art-video track');\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.$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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\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.$pipHeader = this.query('.art-pip-header');\n this.$pipTitle = this.query('.art-pip-title');\n this.$pipClose = this.query('.art-pip-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$info, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(remove) {\n if (remove) {\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.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option: { type, customType },\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = type || getExt(url);\n const typeCallback = customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n typeCallback.call(art, $video, url, art);\n art.emit('customType', typeName);\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('urlChange', url);\n }\n },\n });\n}\n","import { clamp } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle = true;\n });\n\n config.events.forEach(eventName => {\n proxy($video, eventName, 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.controls.show = true;\n art.mask.show = 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 player.seek = 0;\n player.play = true;\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n if (option.autoSize) {\n player.autoSize = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.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 });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n set(value) {\n if (value) {\n const promise = $video.play();\n if (promise.then) {\n promise.then().catch(err => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter(item => item !== art)\n .forEach(item => {\n item.player.pause = true;\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n } else {\n player.pause = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMin(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n get() {\n return $video.paused;\n },\n set(value) {\n if (value) {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n } else {\n player.play = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n set(value) {\n if (value) {\n if (player.playing) {\n player.pause = true;\n } else {\n player.play = true;\n }\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n notice.show = `${secondToTime(time)} / ${secondToTime(player.duration)}`;\n art.emit('seek', time);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n def(player, 'currentTime', {\n get: () => art.template.$video.currentTime || 0,\n set: currentTime => {\n art.template.$video.currentTime = clamp(currentTime, 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, 'duration', {\n get: () => art.template.$video.duration || 0,\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n player.playbackRate = false;\n player.aspectRatio = false;\n art.once('video:canplay', () => {\n player.currentTime = currentTime;\n });\n if (playing) {\n player.play = true;\n }\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRateChange', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRateRemove');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n art.emit('playbackRateReset');\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (ratio) {\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(\n ratioList.includes(ratio),\n `'aspectRatio' only accept ${ratioList.toString()} as parameters`,\n );\n\n if (ratio === 'default') {\n player.aspectRatio = false;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n }\n\n $player.dataset.aspectRatio = ratio;\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatioChange', ratio);\n } else if (player.aspectRatio) {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n art.emit('aspectRatioRemove');\n }\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n art.emit('aspectRatioReset');\n }\n },\n });\n}\n","import { secondToTime, downloadFile, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n def(player, 'getScreenshotDataURL', {\n value: () => {\n try {\n const canvas = document.createElement('canvas');\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n canvas.getContext('2d').drawImage($video, 0, 0);\n return canvas.toDataURL('image/png');\n } catch (err) {\n notice.show = err;\n throw err;\n }\n },\n });\n\n def(player, 'getScreenshotBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n const canvas = document.createElement('canvas');\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(player, 'screenshot', {\n value: () => {\n const dataUri = player.getScreenshotDataURL();\n if (dataUri) {\n downloadFile(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n }\n },\n });\n}\n","/*!\n* screenfull\n* v5.0.0 - 2019-09-09\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tPromise.resolve(element[fn.requestFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tPromise.resolve(document[fn.exitFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nexport default function fullscreenMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenChange', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenChange', false);\n });\n }\n },\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-web-fullscreen');\n },\n set(value) {\n if (player.fullscreen) {\n player.fullscreen = false;\n }\n\n if (value) {\n addClass($player, 'art-web-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenWebChange', true);\n } else {\n removeClass($player, 'art-web-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenWebChange', false);\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\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('pipChange', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pipChange', false);\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pipChange', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pipChange', false);\n }\n },\n });\n}\n\nfunction customPip(art, player) {\n const {\n option,\n i18n,\n template: { $player, $pipClose, $pipTitle, $pipHeader },\n events: { proxy },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($pipHeader, 'mousedown', event => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy($pipHeader, 'mousemove', event => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n setStyle($player, 'left', `${lastPlayerLeft + event.pageX - lastPageX}px`);\n setStyle($player, 'top', `${lastPlayerTop + event.pageY - lastPageY}px`);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($pipClose, 'click', () => {\n player.pip = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($pipTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'pip', {\n get() {\n return hasClass($player, 'art-pip');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-pip');\n const $body = document.body;\n setStyle($player, 'top', `${$body.clientHeight - player.height - 50}px`);\n setStyle($player, 'left', `${$body.clientWidth - player.width - 50}px`);\n player.fullscreen = false;\n player.fullscreenWeb = false;\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('pipChange', true);\n } else if (player.pip) {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-pip');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.fullscreen = false;\n player.fullscreenWeb = false;\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = true;\n art.emit('pipChange', false);\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const { $video } = art.template;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n customPip(art, player);\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSizeChange', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSizeRemove');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const { $player } = art.template;\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (flip) {\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n $player.dataset.flip = flip;\n art.emit('flipChange', flip);\n } else {\n delete $player.dataset.flip;\n art.emit('flipRemove');\n }\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\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 { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","import { hasClass, addClass, removeClass, append, setStyles, tooltip } from './dom';\nimport { has, def } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(`${this.name}:toggle`, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption, callback) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n this.id += 1;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n const $ref = document.createElement('div');\n $ref.classList.value = `art-${this.name} art-${this.name}-${name}`;\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 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.click) {\n this.art.events.proxy($ref, 'click', event => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.mounted) {\n option.mounted($ref, this, this.art);\n }\n\n if (callback) {\n callback($ref, this, this.art);\n }\n\n this.art.emit(`${this.name}:add`, option);\n\n def(this, name, {\n get: () => option,\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreenChange', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWebChange', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\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('Mini player'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pipChange', value => {\n tooltip($control, i18n.get(value ? 'Exit mini player' : 'Mini player'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play = true;\n });\n\n proxy($pause, 'click', () => {\n player.pause = true;\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 (player.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 { append, clamp, secondToTime, setStyle, getStyle, query, addClass, removeClass } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return art => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: $control => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach(item => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', event => {\n setStyle($tip, 'display', 'block');\n if (event.composedPath().indexOf($highlight) > -1) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', event => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle = true;\n });\n\n art.on('subtitle:toggle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle, getStyle } from '../utils';\n\nexport default function volume(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft, width: panelWidth } = $volumePanel.getBoundingClientRect();\n const { width: handleWidth } = $volumeHandle.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n // TODO...\n const panelWidth = getStyle($volumePanel, 'width') || 60;\n const handleWidth = getStyle($volumeHandle, 'width');\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', event => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle = true;\n });\n\n art.on('setting:toggle', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","import { append, getStyle } from '../utils';\n\nexport default function quality(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { quality },\n events: { proxy, hover },\n player,\n } = art;\n\n let playIndex = -1;\n const defaultQuality = quality.find(item => item.default) || quality[0];\n playIndex = quality.indexOf(defaultQuality);\n const $qualityName = append($control, `
${defaultQuality.name}
`);\n const qualityList = quality\n .map((item, index) => `
${item.name}
`)\n .join('');\n const $qualitys = append($control, `
${qualityList}
`);\n\n hover($control, () => {\n $qualitys.style.left = `-${getStyle($qualitys, 'width') / 2 - $control.clientWidth / 2}px`;\n });\n\n proxy($qualitys, 'click', event => {\n const index = Number(event.target.dataset.index);\n const { url, name } = quality[index];\n if (url && name && playIndex !== index) {\n player.switchQuality(url, name);\n $qualityName.innerText = name;\n playIndex = index;\n }\n });\n },\n });\n}\n","import { errorHandle, addClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const { option } = art;\n\n art.on('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach(item => {\n this.add(item);\n });\n });\n }\n\n add(getOption, callback) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n errorHandle(\n ['top', 'left', 'right'].includes(option.position),\n `Control option.position must one of 'top', 'left', 'right'`,\n );\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 break;\n }\n\n super.add(option, $ref => {\n if (\n !option.disable &&\n option.position !== 'top' &&\n !($ref.firstElementChild && $ref.firstElementChild.tagName === 'I')\n ) {\n addClass($ref, 'art-control-onlyText');\n }\n\n if (callback) {\n callback($ref, this, this.art);\n }\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: $menu => {\n art.on('playbackRateChange', rate => {\n const $current = queryAll('span', $menu).find(item => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: $menu => {\n art.on('aspectRatioChange', ratio => {\n const $current = queryAll('span', $menu).find(item => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __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 { setStyles } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\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\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.on('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 50,\n }),\n );\n\n option.contextmenu.forEach(item => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', event => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', event => {\n if (!event.composedPath().includes($contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'info';\n\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach(item => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n art.on('info:toggle', value => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import { setStyles, srtToVtt, vttToBlob, getExt, assToVtt } from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n events: { proxy },\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n this.art.emit('subtitle:update', this.activeCue.text);\n }\n }\n\n switch(url, name, ext) {\n const { i18n, notice } = this.art;\n return this.init(url, ext).then(subUrl => {\n if (name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${name}`;\n }\n this.art.emit('subtitle:switch', subUrl);\n return subUrl;\n });\n }\n\n init(url, ext) {\n const {\n notice,\n template: { $subtitle, $track },\n } = this.art;\n\n return fetch(url)\n .then(response => {\n return response.text();\n })\n .then(text => {\n this.art.emit('subtitle:load', url);\n switch (ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then(subUrl => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n $track.src = subUrl;\n return subUrl;\n })\n .catch(err => {\n notice.show = err;\n this.art.emit('subtitle:err', err);\n throw err;\n });\n }\n}\n","export default function clickInit(art, events) {\n const { $player } = art.template;\n events.proxy(document, ['click', 'contextmenu'], event => {\n if (event.composedPath().indexOf($player) > -1) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\n }\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n events.hover(\n $player,\n () => {\n addClass($player, 'art-hover');\n art.emit('hoverenter');\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hoverleave');\n },\n );\n}\n","import { debounce, addClass, removeClass } from '../utils';\n\nexport default function mousemoveInitInit(art, events) {\n const {\n template: { $player, $video },\n player,\n controls,\n } = art;\n\n const autoHide = debounce(() => {\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n controls.show = false;\n }, 3000);\n\n art.on('hoverleave', () => {\n if (player.playing) {\n autoHide();\n }\n });\n\n events.proxy($player, 'mousemove', event => {\n autoHide.clearTimeout();\n removeClass($player, 'art-hide-cursor');\n controls.show = true;\n if (!player.pip && player.playing && event.target === $video) {\n autoHide();\n }\n art.emit('mousemove');\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n const object = document.createElement('object');\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.type = 'text/html';\n object.data = 'about:blank';\n let playerWidth = player.width;\n let playerHeight = player.height;\n const resizeFn = throttle(() => {\n if (player.width !== playerWidth || player.height !== playerHeight) {\n playerWidth = player.width;\n playerHeight = player.height;\n if (option.autoSize) {\n if (!player.fullscreen && !player.fullscreenWeb && !player.pip) {\n player.autoSize = true;\n } else {\n player.autoSize = false;\n }\n }\n player.aspectRatioReset = true;\n art.emit('resize', {\n width: player.width,\n height: player.height,\n });\n }\n }, 500);\n\n events.proxy(object, 'load', () => {\n events.proxy(object.contentDocument.defaultView, 'resize', resizeFn);\n });\n\n $player.appendChild(object);\n}\n","import clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.on('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map(item => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(img);\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(image));\n\n return img;\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.on('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle = true;\n });\n\n this.add(37, () => {\n player.seek = player.currentTime - 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.seek = player.currentTime + 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', event => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach(fn => fn());\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.on('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach(key => {\n const icon = document.createElement('i');\n icon.classList.add('art-icon');\n icon.classList.add(`art-icon-${key}`);\n append(icon, icons[key]);\n this[key] = icon;\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flipChange', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatioChange', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRateChange', rate => {\n if ($range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.on('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n }\n\n get(key) {\n const storage = JSON.parse(localStorage.getItem(this.name)) || {};\n return key ? storage[key] : {};\n }\n\n set(key, value) {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n localStorage.setItem(this.name, JSON.stringify(storage));\n }\n\n del(key) {\n const storage = this.get();\n delete storage[key];\n localStorage.setItem(this.name, JSON.stringify(storage));\n }\n\n clean() {\n localStorage.removeItem(this.name);\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', value => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.on('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n const url = URL.createObjectURL(file);\n subtitle.switch(url, file.name, type);\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.on('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control:toggle', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { errorHandle, has } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n art.option.plugins.forEach(plugin => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n let pluginName = '';\n if (result && result.name) {\n pluginName = result.name;\n } else if (plugin.name) {\n pluginName = plugin.name;\n } else {\n pluginName = `plugin${this.id}`;\n }\n errorHandle(\n !has(this, pluginName),\n `Cannot add a plugin that already has the same name: ${pluginName}`,\n );\n Object.defineProperty(this, pluginName, {\n value: result,\n });\n this.art.emit('plugin:add', plugin);\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('urlChange', $video.src);\n }\n }\n}\n","import './style';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\n Artplayer.instances.push(this);\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get env() {\n return '__ENV__';\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 option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: 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 localVideo: false,\n localSubtitle: false,\n autoPip: false,\n networkMonitor: false,\n layers: [],\n contextmenu: [],\n quality: [],\n controls: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n },\n moreVideoAttr: {\n controls: false,\n preload: 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n Artplayer.instances.splice(Artplayer.instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nObject.defineProperty(Artplayer, 'instances', {\n value: [],\n});\n\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n\nexport default Artplayer;\n","import React from 'react';\nimport Artplayer from '../../artplayer/src';\nimport '../../artplayer/src/style';\n\nexport default class ArtplayerReact extends React.Component {\n constructor(props) {\n super(props);\n Artplayer.utils.errorHandle(\n props.option && typeof props.option === 'object',\n \"The prop 'option' object cannot be missing\",\n );\n this.instance = null;\n this.artRef = React.createRef();\n }\n\n componentDidMount() {\n const { option, getInstance } = this.props;\n this.instance = new Artplayer({\n ...option,\n container: this.artRef.current,\n });\n\n if (getInstance && typeof getInstance === 'function') {\n getInstance(this.instance);\n }\n }\n\n componentWillUnmount() {\n if (this.instance && this.instance.destroy) {\n this.instance.destroy();\n }\n }\n\n render() {\n const { option, getInstance, ...rest } = this.props;\n return React.createElement('div', {\n ref: this.artRef,\n ...rest,\n });\n }\n}\n"],"names":["_typeof","h","ReactPropTypesSecret","require$$0","require$$1","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","window","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","downloadFile","elink","createElement","display","href","download","body","click","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","validElement","paths","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","loop","flip","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","plugins","whitelist","layers","disable","html","mounted","contextmenu","quality","default","controls","position","toString","highlight","thumbnails","number","width","height","column","subtitle","moreVideoAttr","icons","customType","propertys","methods","events","Whitelist","art","kindOf","option","ua","navigator","userAgent","isMobile","test","state","some","indexOf","Template","$container","instances","every","template","clientWidth","clientHeight","desktop","mobile","innerHTML","$player","$video","$track","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$pipHeader","$pipTitle","$pipClose","$contextmenu","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","event","once","mask","seek","play","destroy","playMix","promise","catch","err","pause","pauseMin","paused","toggleMix","playing","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","durationMix","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","canvas","getContext","drawImage","toDataURL","reject","toBlob","blob","dataUri","getScreenshotDataURL","fullscreenMix","screenfull","isFullscreen","request","aspectRatioReset","exit","fullscreenWebMix","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","customPip","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","left","top","cssText","$body","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","ended","readyState","resizeMix","getBoundingClientRect","containerRatio","rectMix","rect","pageXOffset","pageYOffset","flipMix","flipList","Player","pauseMix","loadedMix","autoSizeMix","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","composedPath","getTime","newTime","innerText","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","hover","playIndex","defaultQuality","$qualityName","qualityList","$qualitys","switchQuality","Control","firstElementChild","tagName","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","toFixed","Subtitle","textTrack","update","activeCue","ext","subUrl","fetch","response","textTracks","activeCues","clickInit","isFocus","hoverInit","mousemoveInitInit","autoHide","resizeInit","object","playerWidth","playerHeight","resizeFn","contentDocument","defaultView","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","tag","activeElement","toUpperCase","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","$value","Setting","Storage","JSON","parse","localStorage","getItem","assign","setItem","stringify","removeItem","settingMix","offset","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","Date","now","diffTime","reset","sample","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","removeHtml","splice","autoPip","preload","console","log","ArtplayerReact","props","instance","artRef","React","createRef","getInstance","current","rest","ref"],"mappings":"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"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-vue.js b/docs/uncompiled/artplayer-vue.js deleted file mode 100644 index 64609bf51..000000000 --- a/docs/uncompiled/artplayer-vue.js +++ /dev/null @@ -1,4518 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.ArtplayerVue = factory()); -}(this, (function () { 'use strict'; - - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - - var defineProperty = _defineProperty; - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var classCallCheck = _classCallCheck; - - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - - var createClass = _createClass; - - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var _typeof_1 = createCommonjsModule(function (module) { - function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } - - function _typeof(obj) { - if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { - module.exports = _typeof = function _typeof(obj) { - return _typeof2(obj); - }; - } else { - module.exports = _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); - }; - } - - return _typeof(obj); - } - - module.exports = _typeof; - }); - - function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; - } - - var assertThisInitialized = _assertThisInitialized; - - function _possibleConstructorReturn(self, call) { - if (call && (_typeof_1(call) === "object" || typeof call === "function")) { - return call; - } - - return assertThisInitialized(self); - } - - var possibleConstructorReturn = _possibleConstructorReturn; - - var getPrototypeOf = createCommonjsModule(function (module) { - function _getPrototypeOf(o) { - module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); - } - - module.exports = _getPrototypeOf; - }); - - var setPrototypeOf = createCommonjsModule(function (module) { - function _setPrototypeOf(o, p) { - module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); - } - - module.exports = _setPrototypeOf; - }); - - function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) setPrototypeOf(subClass, superClass); - } - - var inherits = _inherits; - - function styleInject(css, ref) { - if ( ref === void 0 ) ref = {}; - var insertAt = ref.insertAt; - - if (!css || typeof document === 'undefined') { return; } - - var head = document.head || document.getElementsByTagName('head')[0]; - var style = document.createElement('style'); - style.type = 'text/css'; - - if (insertAt === 'top') { - if (head.firstChild) { - head.insertBefore(style, head.firstChild); - } else { - head.appendChild(style); - } - } else { - head.appendChild(style); - } - - if (style.styleSheet) { - style.styleSheet.cssText = css; - } else { - style.appendChild(document.createTextNode(css)); - } - } - - var css = ".art-video-player{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;margin:0 auto;z-index:10;width:100%;height:100%;outline:0;zoom:1;font-family:Roboto,Arial,Helvetica,sans-serif;color:#eee;text-align:left;direction:ltr;font-size:14px;line-height:1.3;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-touch-action:manipulation;touch-action:manipulation;-ms-high-contrast-adjust:none}.art-video-player *{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.art-video-player ::-webkit-scrollbar{width:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;line-height:1.5}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}.art-video-player>object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,.7)!important}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFydHBsYXllci5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtCQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFhLENBQ2IsaUJBQWtCLENBQ2xCLGFBQWMsQ0FDZCxVQUFXLENBQ1gsVUFBVyxDQUNYLFdBQVksQ0FDWixTQUFVLENBQ1YsTUFBTyxDQUNQLDZDQUFpRCxDQUNqRCxVQUFXLENBQ1gsZUFBZ0IsQ0FDaEIsYUFBYyxDQUNkLGNBQWUsQ0FDZixlQUFnQixDQUNoQix3QkFBaUIsQ0FBakIscUJBQWlCLENBQWpCLG9CQUFpQixDQUFqQixnQkFBaUIsQ0FDakIseUNBQTZDLENBQzdDLDZCQUEwQixDQUExQix5QkFBMEIsQ0FDMUIsNkJBQWdDLENBQ2hDLG9CQUNFLFFBQVMsQ0FDVCxTQUFVLENBQ1YsNkJBQXNCLENBQXRCLHFCQUF3QixDQUMxQixzQ0FDRSxTQUFZLENBQ2QsNENBQ0UscUJBQXdCLENBQzFCLGtEQUNFLHFCQUF3QixDQUMxQiw0QkFDRSwwQkFBb0IsQ0FBcEIsMEJBQW9CLENBQXBCLG1CQUFvQixDQUNwQix1QkFBdUIsQ0FBdkIsb0JBQXVCLENBQXZCLHNCQUF1QixDQUN2Qix3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQixlQUFrQixDQUNsQixnQ0FDRSxTQUFZLENBQ2hCLHNCQUNFLGNBQWUsQ0FDZixrQkFBcUIsQ0FDdkIseUJBQ0UsYUFBYyxDQUNkLGlCQUFrQixDQUNsQixLQUFNLENBQ04sTUFBTyxDQUNQLFdBQVksQ0FDWixVQUFXLENBQ1gsZUFBZ0IsQ0FDaEIsbUJBQW9CLENBQ3BCLFVBQWEsQ0FDZiwyRUFDRSx1Q0FDRSxpREFBa0QsQ0FDbEQseUNBQTBDLENBQzFDLHlDQUFpRCxDQUFFIiwiZmlsZSI6ImFydHBsYXllci5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB6LWluZGV4OiAxMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3V0bGluZTogMDtcbiAgem9vbTogMTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICNlZWU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaWNvbiBzdmcge1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyID4gPiA+IG9iamVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IC0xOyB9XG4gIEBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIG9yIChiYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIHtcbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJhY2tkcm9wLWZpbHRlciB7XG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KSAhaW1wb3J0YW50OyB9IH1cbiJdfQ== */"; - styleInject(css); - - var css$1 = ".art-video-player .art-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;cursor:pointer}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZpZGVvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQ0UsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxNQUFPLENBQ1AsS0FBTSxDQUNOLE9BQVEsQ0FDUixRQUFTLENBQ1QsVUFBVyxDQUNYLFdBQVksQ0FDWixxQkFBc0IsQ0FDdEIsY0FBaUIiLCJmaWxlIjoidmlkZW8uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuIl19 */"; - styleInject(css$1); - - var css$2 = ".art-video-player .art-subtitle{display:none;position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;font-size:20px;pointer-events:none;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.art-video-player .art-subtitle p{margin:5px 0}.art-video-player.art-subtitle-show .art-subtitle{display:block}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN1YnRpdGxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0NBQ0UsWUFBYSxDQUNiLGlCQUFrQixDQUNsQixVQUFXLENBQ1gsV0FBWSxDQUNaLFVBQVcsQ0FDWCxjQUFlLENBQ2YsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxjQUFlLENBQ2YsbUJBQW9CLENBQ3BCLHlDQUFtRCxDQUNuRCxrQ0FDRSxZQUFlLENBRW5CLGtEQUNFLGFBQWdCIiwiZmlsZSI6InN1YnRpdGxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXN1YnRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAyMDtcbiAgYm90dG9tOiA0MHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMCAyMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0ZXh0LXNoYWRvdzogMC41cHggMC41cHggMC41cHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc3VidGl0bGUgcCB7XG4gICAgbWFyZ2luOiA1cHggMDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtc3VidGl0bGUtc2hvdyAuYXJ0LXN1YnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cbiJdfQ== */"; - styleInject(css$2); - - var css$3 = ".art-video-player .art-danmuku{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRhbm11a3Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFDRSxpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFFBQVMsQ0FDVCxVQUFXLENBQ1gsV0FBWSxDQUNaLGVBQWdCLENBQ2hCLG1CQUFzQiIsImZpbGUiOiJkYW5tdWt1LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWRhbm11a3Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDMwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4iXX0= */"; - styleInject(css$3); - - var css$4 = ".art-video-player .art-layers{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxheWVycy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhCQUNFLFlBQWEsQ0FDYixpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFFBQVMsQ0FDVCxVQUFXLENBQ1gsV0FBWSxDQUNaLGVBQWdCLENBQ2hCLG1CQUFzQixDQUN0Qix5Q0FDRSxtQkFBc0IsQ0FFMUIsNkNBQ0UsYUFBZ0IiLCJmaWxlIjoibGF5ZXJzLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxheWVycyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNDA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1sYXllcnMgLmFydC1sYXllciB7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWxheWVyLXNob3cgLmFydC1sYXllcnMge1xuICBkaXNwbGF5OiBibG9jazsgfVxuIl19 */"; - styleInject(css$4); - - var css$5 = ".art-video-player .art-mask{display:none;z-index:50;left:0;top:0;right:0;bottom:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.art-video-player .art-mask,.art-video-player .art-mask .art-state{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute}.art-video-player .art-mask .art-state{right:30px;bottom:55px;width:60px;height:60px;opacity:.6}.art-video-player.art-mask-show .art-mask,.art-video-player .art-mask .art-state{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1hc2suc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFDRSxZQUFhLENBSWIsVUFBVyxDQUNYLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFFBQVMsQ0FDVCxVQUFXLENBQ1gsV0FBWSxDQUNaLGVBQWdCLENBQ2hCLG1CQUFzQixDQUN0QixtRUFaQSx3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQix1QkFBdUIsQ0FBdkIsb0JBQXVCLENBQXZCLHNCQUF1QixDQUN2QixpQkFtQmdCLENBVGhCLHVDQUtFLFVBQVcsQ0FDWCxXQUFZLENBQ1osVUFBVyxDQUNYLFdBQVksQ0FDWixVQUFjLENBRWxCLGlGQVZJLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQVdhIiwiZmlsZSI6Im1hc2suc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDUwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayAuYXJ0LXN0YXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAzMHB4O1xuICAgIGJvdHRvbTogNTVweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1tYXNrLXNob3cgLmFydC1tYXNrIHtcbiAgZGlzcGxheTogZmxleDsgfVxuIl19 */"; - styleInject(css$5); - - var css$6 = ".art-video-player .art-loading{display:none;position:absolute;z-index:70;left:0;top:0;right:0;bottom:0;width:100%;height:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;pointer-events:none}.art-video-player.art-loading-show .art-loading{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxvYWRpbmcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFDRSxZQUFhLENBQ2IsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxNQUFPLENBQ1AsS0FBTSxDQUNOLE9BQVEsQ0FDUixRQUFTLENBQ1QsVUFBVyxDQUNYLFdBQVksQ0FDWix3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQix1QkFBdUIsQ0FBdkIsb0JBQXVCLENBQXZCLHNCQUF1QixDQUN2QixtQkFBc0IsQ0FFeEIsZ0RBQ0UsbUJBQWEsQ0FBYixtQkFBYSxDQUFiLFlBQWUiLCJmaWxlIjoibG9hZGluZy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIgLmFydC1sb2FkaW5nIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA3MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWxvYWRpbmctc2hvdyAuYXJ0LWxvYWRpbmcge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4iXX0= */"; - styleInject(css$6); - - var css$7 = ".art-video-player .art-bottom{position:absolute;z-index:60;left:0;right:0;bottom:0;height:100px;padding:55px 10px 0;opacity:0;visibility:hidden;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;pointer-events:none;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom}.art-video-player .art-bottom .art-progress{position:relative;pointer-events:auto}.art-video-player .art-bottom .art-progress .art-control-progress{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:4px;cursor:pointer}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{position:relative;height:50%;width:100%;background:hsla(0,0%,100%,.2)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:0;background:hsla(0,0%,100%,.4)}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;height:100%;width:0}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;height:100%;pointer-events:none}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:100%;background:#fff;pointer-events:auto}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{display:none;position:absolute;z-index:40;top:-5px;left:-6.5px;width:13px;height:13px;border-radius:50%}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{display:none;position:absolute;z-index:50;top:-25px;left:0;height:20px;padding:0 5px;line-height:20px;color:#fff;font-size:12px;text-align:center;background:rgba(0,0,0,.7);border-radius:3px;font-weight:700;white-space:nowrap}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-indicator,.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-tip{display:block}.art-video-player .art-bottom .art-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.art-video-player .art-bottom .art-controls{position:relative;pointer-events:auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:40px;padding:5px 0}.art-video-player .art-bottom .art-controls,.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-bottom .art-controls .art-control{opacity:.9;font-size:12px;height:36px;min-width:36px;line-height:36px;text-align:center;cursor:pointer}.art-video-player .art-bottom .art-controls .art-control .art-icon{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;float:left;height:36px;width:36px}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{position:relative;float:left;width:0;height:100%;-webkit-transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);overflow:hidden}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{position:absolute;top:50%;left:0;width:12px;height:12px;border-radius:12px;margin-top:-6px;background:#fff}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{left:-54px;background:#fff}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{left:6px;background:hsla(0,0%,100%,.2)}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{content:\"\";position:absolute;display:block;top:50%;height:3px;margin-top:-2px;width:60px}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{position:relative;z-index:30}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{display:none;position:absolute;bottom:35px;width:100px;padding:5px 0;text-align:center;color:#fff;background:rgba(0,0,0,.8);border-radius:3px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5)}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-destroy .art-progress-tip,.art-video-player.art-error .art-progress-indicator,.art-video-player.art-error .art-progress-tip{display:none!important}\n/*# sourceMappingURL=data:application/json;base64,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TUFBTyxDQUNQLFVBQVcsQ0FDWCxXQUFZLENBQ1osa0JBQW1CLENBQ25CLGVBQWdCLENBQ2hCLGVBQWtCLENBQ2xCLG1IQUNFLFVBQVcsQ0FDWCxlQUFrQixDQUNwQixrSEFDRSxRQUFTLENBQ1QsNkJBQXNDLENBQ3hDLHFPQUNFLFVBQVcsQ0FDWCxpQkFBa0IsQ0FDbEIsYUFBYyxDQUNkLE9BQVEsQ0FDUixVQUFXLENBQ1gsZUFBZ0IsQ0FDaEIsVUFBYSxDQUNuQix3RkFDRSxVQUFhLENBQ2YsaUVBQ0UsaUJBQWtCLENBQ2xCLFVBQWEsQ0FDYiwrRUFDRSxZQUFhLENBQ2IsaUJBQWtCLENBQ2xCLFdBQVksQ0FDWixXQUFZLENBQ1osYUFBYyxDQUNkLGlCQUFrQixDQUNsQixVQUFXLENBQ1gseUJBQThCLENBQzlCLGlCQUFvQixDQUNwQixpR0FDRSxXQUFZLENBQ1osZ0JBQWlCLENBQ2pCLGVBQWdCLENBQ2hCLHNCQUF1QixDQUN2QixrQkFBbUIsQ0FDbkIsa0NBQXlDLENBQ3pDLHVHQUNFLG1DQUE0QyxDQUNsRCxxRkFDRSxhQUFnQixDQUV4Qix1RkFDRSxTQUFVLENBQ1Ysa0JBQXFCLENBRXZCLHdNQUdFLHNCQUEwQiIsImZpbGUiOiJib3R0b20uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA2MDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgcGFkZGluZzogNTVweCAxMHB4IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBiYWNrZ3JvdW5kOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQURHQ0FZQUFBQVQrT3FGQUFBQWRrbEVRVlFvejQyUVFRN0FJQWdFRi9UL0Qra2JxL1JXQWxuUXl5YXpBNGFvQUI0RnNCU0EvYkZqdUYxRU9MN1ZicklyQnV1c21ydDRaWk9SZmI2ZWhiV2RuUkhFSWlJVGFFVUthNUVKcVVha1JTYUVZQkpTQ1kyZEVzdFFZN0F1eGFod1hGcnZabVdsMnJoNEpaMDd6OWRMdGVzZk5qNXEwRlUzQTVPYmJ3QUFBQUJKUlU1RXJrSmdnZz09KSByZXBlYXQteCBib3R0b207IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3Mge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiA1MCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtbG9hZGVkIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtcGxheWVkIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMjA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICB3aWR0aDogMDsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1oaWdobGlnaHQge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAzMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaGlnaGxpZ2h0IHNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiA3cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiA0MDtcbiAgICAgICAgICB0b3A6IC01cHg7XG4gICAgICAgICAgbGVmdDogLTYuNXB4O1xuICAgICAgICAgIHdpZHRoOiAxM3B4O1xuICAgICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IuYXJ0LXNob3ctaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLXRpcCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogNTA7XG4gICAgICAgICAgdG9wOiAtMjVweDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGhlaWdodDogMjBweDtcbiAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3M6aG92ZXIgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzOmhvdmVyIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWluZGljYXRvcixcbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3M6aG92ZXIgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtdGlwIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXRodW1ibmFpbHMge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTogOHB4O1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA1cHggMDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1sZWZ0LFxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wge1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgbWluLXdpZHRoOiAzNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sIC5hcnQtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgICB3aWR0aDogMzZweDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2w6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtb25seVRleHQge1xuICAgICAgcGFkZGluZzogMCAxMHB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0cmFuc2l0aW9uOiBtYXJnaW4gMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKSwgd2lkdGggMC4ycyBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEycHg7XG4gICAgICAgIGhlaWdodDogMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTZweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YmVmb3JlIHtcbiAgICAgICAgICBsZWZ0OiAtNTRweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjphZnRlciB7XG4gICAgICAgICAgbGVmdDogNnB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YmVmb3JlLCAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICBoZWlnaHQ6IDNweDtcbiAgICAgICAgICBtYXJnaW4tdG9wOiAtMnB4O1xuICAgICAgICAgIHdpZHRoOiA2MHB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lOmhvdmVyIC5hcnQtdm9sdW1lLXBhbmVsIHtcbiAgICAgIHdpZHRoOiA2MHB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAzMDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSAuYXJ0LXF1YWxpdHlzIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDM1cHg7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgcGFkZGluZzogNXB4IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkgLmFydC1xdWFsaXR5cyAuYXJ0LXF1YWxpdHktaXRlbSB7XG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IC5hcnQtcXVhbGl0eXMgLmFydC1xdWFsaXR5LWl0ZW06aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5OmhvdmVyIC5hcnQtcXVhbGl0eXMge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtY29udHJvbC1zaG93IC5hcnQtYm90dG9tLCAuYXJ0LXZpZGVvLXBsYXllci5hcnQtaG92ZXIgLmFydC1ib3R0b20ge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1lcnJvciAuYXJ0LXByb2dyZXNzLWluZGljYXRvcixcbi5hcnQtdmlkZW8tcGxheWVyLmFydC1lcnJvciAuYXJ0LXByb2dyZXNzLXRpcCwgLmFydC12aWRlby1wbGF5ZXIuYXJ0LWRlc3Ryb3kgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IsXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtZGVzdHJveSAuYXJ0LXByb2dyZXNzLXRpcCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuIl19 */"; - styleInject(css$7); - - var css$8 = ".art-video-player .art-notice{display:none;font-size:14px;position:absolute;z-index:80;left:0;top:0;padding:10px;width:100%;pointer-events:none}.art-video-player .art-notice .art-notice-inner{display:inline-block;padding:5px 10px;color:#fff;background:rgba(0,0,0,.6);border-radius:3px}.art-video-player.art-notice-show .art-notice{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vdGljZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhCQUNFLFlBQWEsQ0FDYixjQUFlLENBQ2YsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCxNQUFPLENBQ1AsS0FBTSxDQUNOLFlBQWEsQ0FDYixVQUFXLENBQ1gsbUJBQXNCLENBQ3RCLGdEQUNFLG9CQUFxQixDQUNyQixnQkFBaUIsQ0FDakIsVUFBVyxDQUNYLHlCQUE4QixDQUM5QixpQkFBb0IsQ0FFeEIsOENBQ0UsbUJBQWEsQ0FBYixtQkFBYSxDQUFiLFlBQWUiLCJmaWxlIjoibm90aWNlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW5vdGljZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA4MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBwYWRkaW5nOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ub3RpY2UgLmFydC1ub3RpY2UtaW5uZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1ub3RpY2Utc2hvdyAuYXJ0LW5vdGljZSB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiJdfQ== */"; - styleInject(css$8); - - var css$9 = ".art-video-player .art-contextmenus{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;z-index:120;left:0;top:0;min-width:200px;padding:5px 0;background:rgba(0,0,0,.9);border-radius:3px}.art-video-player .art-contextmenus .art-contextmenu{cursor:pointer;font-size:13px;display:block;color:#fff;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.1)}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{display:inline-block;padding:0 7px}.art-video-player .art-contextmenus .art-contextmenu span.art-current,.art-video-player .art-contextmenus .art-contextmenu span:hover{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-contextmenus .art-contextmenu:last-child{border-bottom:none}.art-video-player.art-contextmenu-show .art-contextmenus{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbnRleHRtZW51LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQ0UsWUFBYSxDQUNiLDJCQUFzQixDQUF0Qiw0QkFBc0IsQ0FBdEIseUJBQXNCLENBQXRCLHFCQUFzQixDQUN0QixpQkFBa0IsQ0FDbEIsV0FBWSxDQUNaLE1BQU8sQ0FDUCxLQUFNLENBQ04sZUFBZ0IsQ0FDaEIsYUFBYyxDQUNkLHlCQUE4QixDQUM5QixpQkFBb0IsQ0FDcEIscURBQ0UsY0FBZSxDQUNmLGNBQWUsQ0FDZixhQUFjLENBQ2QsVUFBVyxDQUNYLGdCQUFpQixDQUNqQixlQUFnQixDQUNoQixzQkFBdUIsQ0FDdkIsa0JBQW1CLENBQ25CLGtDQUF1QyxDQUN2QywwQ0FBbUQsQ0FDbkQsdURBQ0UsVUFBVyxDQUNYLG9CQUF1QixDQUN6QiwwREFDRSxvQkFBcUIsQ0FDckIsYUFBZ0IsQ0FDaEIsc0lBQ0UsYUFBZ0IsQ0FDcEIsMkRBQ0UsbUNBQTRDLENBQzlDLGdFQUNFLGtCQUFxQixDQUUzQix5REFDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBZSIsImZpbGUiOiJjb250ZXh0bWVudS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMge1xuICBkaXNwbGF5OiBub25lO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEyMDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBwYWRkaW5nOiA1cHggMDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiA3cHggMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCA3cHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgc3Bhbjpob3ZlciwgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSBzcGFuLmFydC1jdXJyZW50IHtcbiAgICAgICAgY29sb3I6ICMwMGM5ZmY7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnU6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250ZXh0bWVudS1zaG93IC5hcnQtY29udGV4dG1lbnVzIHtcbiAgZGlzcGxheTogZmxleDsgfVxuIl19 */"; - styleInject(css$9); - - var css$a = ".art-video-player .art-settings{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;position:absolute;z-index:90;left:0;top:0;height:100%;width:100%;opacity:0;visibility:hidden;pointer-events:none;overflow:hidden}.art-video-player .art-settings .art-setting-inner{position:absolute;top:0;right:-300px;bottom:0;width:300px;height:100%;font-size:12px;background:rgba(0,0,0,.9);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;overflow:auto}.art-video-player .art-settings .art-setting-inner .art-setting-body{overflow-y:auto;width:100%;height:100%}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:10px 15px}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting .art-setting-header{margin-bottom:5px}.art-video-player .art-settings .art-setting-radio{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-settings .art-setting-radio .art-radio-item{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 2px}.art-video-player .art-settings .art-setting-radio .art-radio-item button{height:22px;width:100%;border:none;outline:none;color:#fff;background:hsla(0,0%,100%,.2);border-radius:2px}.art-video-player .art-settings .art-setting-radio .art-radio-item.current button{background-color:#00a1d6}.art-video-player .art-settings .art-setting-range input{width:100%;height:3px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:hsla(0,0%,100%,.5)}.art-video-player .art-settings .art-setting-checkbox input{height:14px;width:14px;margin-right:5px}.art-video-player .art-settings .art-setting-upload{display:-webkit-box;display:-ms-flexbox;display:flex}.art-video-player .art-settings .art-setting-upload .art-upload-btn{width:80px;height:22px;line-height:22px;border:none;outline:none;color:#fff;background:hsla(0,0%,100%,.2);border-radius:2px;text-align:center}.art-video-player .art-settings .art-setting-upload .art-upload-value{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:22px;line-height:22px;padding-left:10px}.art-video-player.art-setting-show .art-settings{opacity:1;visibility:visible;pointer-events:auto}.art-video-player.art-setting-show .art-settings .art-setting-inner{right:0}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNldHRpbmcuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQ0FDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBYSxDQUNiLHdCQUFtQixDQUFuQixxQkFBbUIsQ0FBbkIsa0JBQW1CLENBQ25CLHVCQUF1QixDQUF2QixvQkFBdUIsQ0FBdkIsc0JBQXVCLENBQ3ZCLGlCQUFrQixDQUNsQixVQUFXLENBQ1gsTUFBTyxDQUNQLEtBQU0sQ0FDTixXQUFZLENBQ1osVUFBVyxDQUNYLFNBQVUsQ0FDVixpQkFBa0IsQ0FDbEIsbUJBQW9CLENBQ3BCLGVBQWtCLENBQ2xCLG1EQUNFLGlCQUFrQixDQUNsQixLQUFNLENBQ04sWUFBYSxDQUNiLFFBQVMsQ0FDVCxXQUFZLENBQ1osV0FBWSxDQUNaLGNBQWUsQ0FDZix5QkFBOEIsQ0FDOUIsc0NBQWdDLENBQWhDLDhCQUFnQyxDQUNoQyxhQUFnQixDQUNoQixxRUFDRSxlQUFnQixDQUNoQixVQUFXLENBQ1gsV0FBYyxDQUNkLGtGQUNFLDBDQUFpRCxDQUNqRCxpQkFBb0IsQ0FDcEIsc0dBQ0UsaUJBQW9CLENBQzVCLG1EQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFlLENBQ2YsbUVBQ0Usa0JBQU8sQ0FBUCxVQUFPLENBQVAsTUFBTyxDQUNQLGFBQWdCLENBQ2hCLDBFQUNFLFdBQVksQ0FDWixVQUFXLENBQ1gsV0FBWSxDQUNaLFlBQWEsQ0FDYixVQUFXLENBQ1gsNkJBQW9DLENBQ3BDLGlCQUFvQixDQUN0QixrRkFDRSx3QkFBMkIsQ0FDakMseURBQ0UsVUFBVyxDQUNYLFVBQVcsQ0FDWCxZQUFhLENBQ2IsdUJBQWdCLENBQWhCLG9CQUFnQixDQUFoQixlQUFnQixDQUNoQixtQ0FBNEMsQ0FDOUMsNERBQ0UsV0FBWSxDQUNaLFVBQVcsQ0FDWCxnQkFBbUIsQ0FDckIsb0RBQ0UsbUJBQWEsQ0FBYixtQkFBYSxDQUFiLFlBQWUsQ0FDZixvRUFDRSxVQUFXLENBQ1gsV0FBWSxDQUNaLGdCQUFpQixDQUNqQixXQUFZLENBQ1osWUFBYSxDQUNiLFVBQVcsQ0FDWCw2QkFBb0MsQ0FDcEMsaUJBQWtCLENBQ2xCLGlCQUFvQixDQUN0QixzRUFDRSxrQkFBTyxDQUFQLFVBQU8sQ0FBUCxNQUFPLENBQ1AsZUFBZ0IsQ0FDaEIsc0JBQXVCLENBQ3ZCLGtCQUFtQixDQUNuQixXQUFZLENBQ1osZ0JBQWlCLENBQ2pCLGlCQUFvQixDQUUxQixpREFDRSxTQUFVLENBQ1Ysa0JBQW1CLENBQ25CLG1CQUFzQixDQUN0QixvRUFDRSxPQUFVIiwiZmlsZSI6InNldHRpbmcuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtMzAwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICBvdmVyZmxvdzogYXV0bzsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctaW5uZXIgLmFydC1zZXR0aW5nLWJvZHkgLmFydC1zZXR0aW5nIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IC5hcnQtc2V0dGluZyAuYXJ0LXNldHRpbmctaGVhZGVyIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0ge1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDAgMnB4OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0gYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIC5hcnQtcmFkaW8taXRlbS5jdXJyZW50IGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGExZDY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFuZ2UgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogM3B4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctY2hlY2tib3ggaW5wdXQge1xuICAgIGhlaWdodDogMTRweDtcbiAgICB3aWR0aDogMTRweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy11cGxvYWQge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy11cGxvYWQgLmFydC11cGxvYWQtYnRuIHtcbiAgICAgIHdpZHRoOiA4MHB4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy11cGxvYWQgLmFydC11cGxvYWQtdmFsdWUge1xuICAgICAgZmxleDogMTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtc2V0dGluZy1zaG93IC5hcnQtc2V0dGluZ3Mge1xuICBvcGFjaXR5OiAxO1xuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtc2V0dGluZy1zaG93IC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIHtcbiAgICByaWdodDogMDsgfVxuIl19 */"; - styleInject(css$a); - - var css$b = ".art-video-player .art-info{display:none;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;position:absolute;left:10px;top:10px;z-index:100;width:350px;min-height:150px;padding:10px;color:#fff;font-size:12px;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.9)}.art-video-player .art-info .art-info-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:5px}.art-video-player .art-info .art-info-item .art-info-title{width:100px;text-align:right}.art-video-player .art-info .art-info-item .art-info-content{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:5px}.art-video-player .art-info .art-info-close{position:absolute;top:5px;right:5px;cursor:pointer}.art-video-player.art-info-show .art-info{display:-webkit-box;display:-ms-flexbox;display:flex}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZm8uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFDRSxZQUFhLENBQ2IsMkJBQXNCLENBQXRCLDRCQUFzQixDQUF0Qix5QkFBc0IsQ0FBdEIscUJBQXNCLENBQ3RCLGlCQUFrQixDQUNsQixTQUFVLENBQ1YsUUFBUyxDQUNULFdBQVksQ0FDWixXQUFZLENBQ1osZ0JBQWlCLENBQ2pCLFlBQWEsQ0FDYixVQUFXLENBQ1gsY0FBZSxDQUNmLHdGQUErRixDQUMvRixrQ0FBbUMsQ0FDbkMseUJBQWdDLENBQ2hDLDJDQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFhLENBQ2IsaUJBQW9CLENBQ3BCLDJEQUNFLFdBQVksQ0FDWixnQkFBbUIsQ0FDckIsNkRBQ0Usa0JBQU8sQ0FBUCxVQUFPLENBQVAsTUFBTyxDQUNQLGVBQWdCLENBQ2hCLHNCQUF1QixDQUN2QixrQkFBbUIsQ0FDbkIsZ0JBQW1CLENBQ3ZCLDRDQUNFLGlCQUFrQixDQUNsQixPQUFRLENBQ1IsU0FBVSxDQUNWLGNBQWlCLENBRXJCLDBDQUNFLG1CQUFhLENBQWIsbUJBQWEsQ0FBYixZQUFlIiwiZmlsZSI6ImluZm8uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiAxMHB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAzNTBweDtcbiAgbWluLWhlaWdodDogMTUwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtZmFtaWx5OiBOb3RvIFNhbnMgQ0pLIFNDIERlbWlMaWdodCwgUm9ib3RvLCBTZWdvZSBVSSwgVGFob21hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjkpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWl0ZW0gLmFydC1pbmZvLXRpdGxlIHtcbiAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtIC5hcnQtaW5mby1jb250ZW50IHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZy1sZWZ0OiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNXB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1pbmZvLXNob3cgLmFydC1pbmZvIHtcbiAgZGlzcGxheTogZmxleDsgfVxuIl19 */"; - styleInject(css$b); - - var css$c = ".art-video-player.art-hide-cursor *{cursor:none!important}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhpZGVDdXJzb3Iuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FDRSxxQkFBeUIiLCJmaWxlIjoiaGlkZUN1cnNvci5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXIuYXJ0LWhpZGUtY3Vyc29yICoge1xuICBjdXJzb3I6IG5vbmUgIWltcG9ydGFudDsgfVxuIl19 */"; - styleInject(css$c); - - var css$d = ".art-video-player[data-aspect-ratio] video{-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:fill;object-fit:fill}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzcGVjdFJhdGlvLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQ0UsOEJBQXVCLENBQXZCLHNCQUF1QixDQUN2QixrQkFBZ0IsQ0FBaEIsZUFBa0IiLCJmaWxlIjoiYXNwZWN0UmF0aW8uc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtYXNwZWN0LXJhdGlvXSB2aWRlbyB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBvYmplY3QtZml0OiBmaWxsOyB9XG4iXX0= */"; - styleInject(css$d); - - var css$e = ".art-video-player.art-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZ1bGxzY3JlZW5XZWIuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FDRSxjQUFlLENBQ2YsWUFBYSxDQUNiLFVBQVcsQ0FDWCxXQUFZLENBQ1osTUFBTyxDQUNQLEtBQU0sQ0FDTixPQUFRLENBQ1IsUUFBVyIsImZpbGUiOiJmdWxsc2NyZWVuV2ViLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LXZpZGVvLXBsYXllci5hcnQtd2ViLWZ1bGxzY3JlZW4ge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDsgfVxuIl19 */"; - styleInject(css$e); - - var css$f = ".art-video-player .art-pip-header{display:none;position:absolute;z-index:110;left:0;top:0;right:0;height:35px;line-height:35px;color:#fff;background:rgba(0,0,0,.5);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;opacity:0;visibility:hidden;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.art-video-player .art-pip-header .art-pip-title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:move}.art-video-player .art-pip-header .art-pip-close{width:35px;text-align:center;font-size:22px;cursor:pointer}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-pip{position:fixed;z-index:9999;width:400px;height:225px;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2)}.art-video-player.art-pip .art-pip-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.art-video-player.art-pip.art-hover .art-pip-header{opacity:1;visibility:visible}.art-video-player.art-pip .art-mask .art-state{position:static}.art-video-player.art-pip .art-bottom,.art-video-player.art-pip .art-contextmenu,.art-video-player.art-pip .art-danmu,.art-video-player.art-pip .art-info,.art-video-player.art-pip .art-layers,.art-video-player.art-pip .art-notice,.art-video-player.art-pip .art-setting,.art-video-player.art-pip .art-subtitle{display:none!important}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBpcC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUNFLFlBQWEsQ0FDYixpQkFBa0IsQ0FDbEIsV0FBWSxDQUNaLE1BQU8sQ0FDUCxLQUFNLENBQ04sT0FBUSxDQUNSLFdBQVksQ0FDWixnQkFBaUIsQ0FDakIsVUFBVyxDQUNYLHlCQUE4QixDQUM5Qix3QkFBbUIsQ0FBbkIscUJBQW1CLENBQW5CLGtCQUFtQixDQUNuQix3QkFBOEIsQ0FBOUIscUJBQThCLENBQTlCLDZCQUE4QixDQUM5QixTQUFVLENBQ1YsaUJBQWtCLENBQ2xCLHNDQUFnQyxDQUFoQyw4QkFBa0MsQ0FDbEMsaURBQ0Usa0JBQU8sQ0FBUCxVQUFPLENBQVAsTUFBTyxDQUNQLGNBQWUsQ0FDZixlQUFnQixDQUNoQixzQkFBdUIsQ0FDdkIsa0JBQW1CLENBQ25CLFdBQWMsQ0FDaEIsaURBQ0UsVUFBVyxDQUNYLGlCQUFrQixDQUNsQixjQUFlLENBQ2YsY0FBaUIsQ0FFckIsa0NBQ0UsVUFBYyxDQUVoQiwwQkFDRSxjQUFlLENBQ2YsWUFBYSxDQUNiLFdBQVksQ0FDWixZQUFhLENBQ2IseUVBQTJFLENBQTNFLGlFQUE2RSxDQUM3RSwwQ0FDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBYSxDQUNiLHdCQUFpQixDQUFqQixxQkFBaUIsQ0FBakIsb0JBQWlCLENBQWpCLGdCQUFtQixDQUNyQixvREFDRSxTQUFVLENBQ1Ysa0JBQXFCLENBQ3ZCLCtDQUNFLGVBQWtCLENBQ3BCLHFUQVFFLHNCQUEwQiIsImZpbGUiOiJwaXAuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtcGlwLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1waXAtaGVhZGVyIC5hcnQtcGlwLXRpdGxlIHtcbiAgICBmbGV4OiAxO1xuICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgY3Vyc29yOiBtb3ZlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtcGlwLWhlYWRlciAuYXJ0LXBpcC1jbG9zZSB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWlzLWRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC43OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHdpZHRoOiA0MDBweDtcbiAgaGVpZ2h0OiAyMjVweDtcbiAgYm94LXNoYWRvdzogMCAycHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjE2KSwgMCAzcHggNnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAgLmFydC1waXAtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAuYXJ0LWhvdmVyIC5hcnQtcGlwLWhlYWRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAgLmFydC1tYXNrIC5hcnQtc3RhdGUge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LXBpcCAuYXJ0LWNvbnRleHRtZW51LFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtYm90dG9tLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtZGFubXUsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1waXAgLmFydC1pbmZvLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtbGF5ZXJzLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtbm90aWNlLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtcGlwIC5hcnQtc2V0dGluZyxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LXBpcCAuYXJ0LXN1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiJdfQ== */"; - styleInject(css$f); - - var css$g = ".art-auto-size{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImF1dG9TaXplLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZUFDRSxtQkFBYSxDQUFiLG1CQUFhLENBQWIsWUFBYSxDQUNiLHdCQUFtQixDQUFuQixxQkFBbUIsQ0FBbkIsa0JBQW1CLENBQ25CLHVCQUF1QixDQUF2QixvQkFBdUIsQ0FBdkIsc0JBQXlCIiwiZmlsZSI6ImF1dG9TaXplLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXJ0LWF1dG8tc2l6ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4iXX0= */"; - styleInject(css$g); - - var css$h = ".art-video-player[data-flip=horizontal] .art-video{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.art-video-player[data-flip=vertical] .art-video{-webkit-transform:scaleY(-1);transform:scaleY(-1)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZsaXAuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtREFDRSw0QkFBcUIsQ0FBckIsb0JBQXVCLENBRXpCLGlEQUNFLDRCQUFxQixDQUFyQixvQkFBdUIiLCJmaWxlIjoiZmxpcC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC12aWRlby1wbGF5ZXJbZGF0YS1mbGlwPVwiaG9yaXpvbnRhbFwiXSAuYXJ0LXZpZGVvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtZmxpcD1cInZlcnRpY2FsXCJdIC5hcnQtdmlkZW8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWSgtMSk7IH1cbiJdfQ== */"; - styleInject(css$h); - - var css$i = ":root{--balloon-color:rgba(16,16,16,0.95);--balloon-font-size:12px;--balloon-move:4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:#fff;content:attr(aria-label);padding:.5em 1em;white-space:nowrap;line-height:1.2}[aria-label][data-balloon-pos]:after,[aria-label][data-balloon-pos]:before{opacity:0;pointer-events:none;-webkit-transition:all .18s ease-out .18s;transition:all .18s ease-out .18s;position:absolute;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top:5px solid var(--balloon-color);content:\"\"}[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos]:hover:before{opacity:1;pointer-events:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,var(--balloon-move));transform:translate(-50%,var(--balloon-move));-webkit-transform-origin:top;transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before{-webkit-transform:translate(-50%);transform:translate(-50%)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJhbGxvb24uc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUNFLG1DQUF1QyxDQUN2Qyx3QkFBeUIsQ0FDekIsa0JBQXFCLENBRXZCLHFDQUNFLGdCQUFtQixDQUVyQiwrQkFDRSxpQkFBa0IsQ0FDbEIsY0FBaUIsQ0FDakIscUNBSUUsYUFBYyxDQUNkLHdIQUF3SSxDQUN4SSxlQUFtQixDQUNuQixpQkFBa0IsQ0FDbEIsZ0JBQWlCLENBQ2pCLGtDQUFtQyxDQUNuQywrQkFBZ0MsQ0FDaEMsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCx3QkFBeUIsQ0FDekIsZ0JBQWtCLENBRWxCLGtCQUFtQixDQUNuQixlQUNhLENBQ2YsMkVBbEJFLFNBQVUsQ0FDVixtQkFBb0IsQ0FDcEIseUNBQW9DLENBQXBDLGlDQUFvQyxDQVlwQyxpQkFBa0IsQ0FHbEIsVUFXYSxDQVZmLHNDQUNFLE9BQVEsQ0FDUixRQUFTLENBRVQsNEJBQXNDLENBQXRDLHlDQUFzQyxDQUl0QyxVQUVhLENBQ2YsdUZBQ0UsU0FBVSxDQUNWLG1CQUFzQixDQUN4QiwwREFHRSxrQkFFdUIsQ0FDekIscUhBTEUsV0FBWSxDQUNaLFFBQVMsQ0FFVCxxREFBK0MsQ0FBL0MsNkNBQStDLENBQy9DLDRCQUFxQixDQUFyQixvQkFLdUIsQ0FHekIsaUlBQ0UsaUNBQTZCLENBQTdCLHlCQUErQiIsImZpbGUiOiJiYWxsb29uLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6cm9vdCB7XG4gIC0tYmFsbG9vbi1jb2xvcjogcmdiYSgxNiwgMTYsIDE2LCAwLjk1KTtcbiAgLS1iYWxsb29uLWZvbnQtc2l6ZTogMTJweDtcbiAgLS1iYWxsb29uLW1vdmU6IDRweDsgfVxuXG5idXR0b25bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIHRleHQtaW5kZW50OiAwO1xuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1iYWxsb29uLWZvbnQtc2l6ZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmFsbG9vbi1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGNvbnRlbnQ6IGF0dHIoYXJpYS1sYWJlbCk7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgei1pbmRleDogMTA7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdOmJlZm9yZSB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWJhbGxvb24tY29sb3IpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YmVmb3JlLCBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YWZ0ZXIge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCB2YXIoLS1iYWxsb29uLW1vdmUpKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YmVmb3JlIHtcbiAgICBib3R0b206IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIHZhcigtLWJhbGxvb24tbW92ZSkpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpob3ZlcjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106aG92ZXI6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuIl19 */"; - styleInject(css$i); - - var optionValidator = createCommonjsModule(function (module, exports) { - !function(r,t){module.exports=t();}(commonjsGlobal,function(){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 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - data[_key2 - 1] = arguments[_key2]; - } - - for (var i = 0; i < evtArr.length; i += 1) { - evtArr[i].fn.apply(evtArr[i].ctx, data); - } - - return this; - } - }, { - key: "off", - value: function off(name, callback) { - var e = this.e || (this.e = {}); - var evts = e[name]; - var liveEvents = []; - - if (evts && callback) { - for (var i = 0, len = evts.length; i < len; i += 1) { - if (evts[i].fn !== callback && evts[i].fn._ !== callback) liveEvents.push(evts[i]); - } - } - - if (liveEvents.length) { - e[name] = liveEvents; - } else { - delete e[name]; - } - - return this; - } - }]); - - return Emitter; - }(); - - function query(selector) { - var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; - return parent.querySelector(selector); - } - function queryAll(selector) { - var parent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; - return Array.from(parent.querySelectorAll(selector)); - } - function addClass(target, className) { - return target.classList.add(className); - } - function removeClass(target, className) { - return target.classList.remove(className); - } - function hasClass(target, className) { - return target.classList.contains(className); - } - function append(parent, child) { - if (child instanceof Element) { - parent.appendChild(child); - } else { - parent.insertAdjacentHTML('beforeend', String(child)); - } - - return parent.lastElementChild || parent.lastChild; - } - function remove(child) { - return child.parentNode.removeChild(child); - } - function setStyle(element, key, value) { - element.style[key] = value; - return element; - } - function setStyles(element, styles) { - Object.keys(styles).forEach(function (key) { - setStyle(element, key, styles[key]); - }); - return element; - } - function getStyle(element, key) { - var numberType = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; - var value = window.getComputedStyle(element, null).getPropertyValue(key); - return numberType ? parseFloat(value) : value; - } - function sublings(target) { - return Array.from(target.parentElement.children).filter(function (item) { - return item !== target; - }); - } - function inverseClass(target, className) { - sublings(target).forEach(function (item) { - return removeClass(item, className); - }); - addClass(target, className); - } - function tooltip(target, msg) { - var pos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'up'; - target.setAttribute('aria-label', msg); - target.setAttribute('data-balloon-pos', pos); - } - - function _isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; - } - - var isNativeFunction = _isNativeFunction; - - var construct = createCommonjsModule(function (module) { - function isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - - try { - Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); - return true; - } catch (e) { - return false; - } - } - - function _construct(Parent, args, Class) { - if (isNativeReflectConstruct()) { - module.exports = _construct = Reflect.construct; - } else { - module.exports = _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) setPrototypeOf(instance, Class.prototype); - return instance; - }; - } - - return _construct.apply(null, arguments); - } - - module.exports = _construct; - }); - - var wrapNativeSuper = createCommonjsModule(function (module) { - function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - - module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !isNativeFunction(Class)) return Class; - - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - - _cache.set(Class, Wrapper); - } - - function Wrapper() { - return construct(Class, arguments, getPrototypeOf(this).constructor); - } - - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return setPrototypeOf(Wrapper, Class); - }; - - return _wrapNativeSuper(Class); - } - - module.exports = _wrapNativeSuper; - }); - - var ArtPlayerError = - /*#__PURE__*/ - function (_Error) { - inherits(ArtPlayerError, _Error); - - function ArtPlayerError(message, context) { - var _this; - - classCallCheck(this, ArtPlayerError); - - _this = possibleConstructorReturn(this, getPrototypeOf(ArtPlayerError).call(this, message)); - - if (typeof Error.captureStackTrace === 'function') { - Error.captureStackTrace(assertThisInitialized(_this), context || _this.constructor); - } - - _this.name = 'ArtPlayerError'; - return _this; - } - - return ArtPlayerError; - }(wrapNativeSuper(Error)); - function errorHandle(condition, msg) { - if (!condition) { - throw new ArtPlayerError(msg); - } - - return condition; - } - - function srtToVtt(srtText) { - return 'WEBVTT \r\n\r\n'.concat(srtText.replace(/{[\s\S]*?}/g, '').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').concat('\r\n\r\n')); - } - function vttToBlob(vttText) { - return URL.createObjectURL(new Blob([vttText], { - type: 'text/vtt' - })); - } - function assToVtt(ass) { - var reAss = new RegExp('Dialogue:\\s\\d,' + '(\\d+:\\d\\d:\\d\\d.\\d\\d),' + '(\\d+:\\d\\d:\\d\\d.\\d\\d),' + '([^,]*),' + '([^,]*),' + '(?:[^,]*,){4}' + '([\\s\\S]*)$', 'i'); - - function fixTime() { - var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; - return time.split(/[:.]/).map(function (item, index, arr) { - if (index === arr.length - 1) { - if (item.length === 1) { - return ".".concat(item, "00"); - } - - if (item.length === 2) { - return ".".concat(item, "0"); - } - } else if (item.length === 1) { - return (index === 0 ? '0' : ':0') + item; - } // eslint-disable-next-line no-nested-ternary - - - return index === 0 ? item : index === arr.length - 1 ? ".".concat(item) : ":".concat(item); - }).join(''); - } - - return "WEBVTT\n\n".concat(ass.split(/\r?\n/).map(function (line) { - var m = line.match(reAss); - if (!m) return null; - return { - start: fixTime(m[1].trim()), - end: fixTime(m[2].trim()), - text: m[5].replace(/{[\s\S]*?}/g, '').replace(/(\\N)/g, '\n').trim().split(/\r?\n/).map(function (item) { - return item.trim(); - }).join('\n') - }; - }).filter(function (line) { - return line; - }).map(function (line, index) { - if (line) { - return "".concat(index + 1, "\n").concat(line.start, " --> ").concat(line.end, "\n").concat(line.text); - } - - return ''; - }).filter(function (line) { - return line.trim(); - }).join('\n\n')); - } - - function getExt(url) { - if (url.includes('?')) { - return getExt(url.split('?')[0]); - } - - if (url.includes('#')) { - return getExt(url.split('#')[0]); - } - - return url.trim().toLowerCase().split('.').pop(); - } - function downloadFile(url, name) { - var elink = document.createElement('a'); - elink.style.display = 'none'; - elink.href = url; - elink.download = name; - document.body.appendChild(elink); - elink.click(); - document.body.removeChild(elink); - } - - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } - } - - var arrayWithoutHoles = _arrayWithoutHoles; - - function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); - } - - var iterableToArray = _iterableToArray; - - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); - } - - var nonIterableSpread = _nonIterableSpread; - - function _toConsumableArray(arr) { - return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); - } - - var toConsumableArray = _toConsumableArray; - - var def = Object.defineProperty; - var hasOwnProperty = Object.prototype.hasOwnProperty; - function has(obj, name) { - return hasOwnProperty.call(obj, name); - } - function proxyPropertys(target) { - for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - sources[_key - 1] = arguments[_key]; - } - - return sources.reduce(function (result, source) { - Object.getOwnPropertyNames(source).forEach(function (key) { - errorHandle(!has(result, key), "Target attribute name is duplicated: ".concat(key)); - def(result, key, Object.getOwnPropertyDescriptor(source, key)); - }); - return result; - }, target); - } - function mergeDeep() { - var isObject = function isObject(item) { - return item && _typeof_1(item) === 'object' && !Array.isArray(item); - }; - - for (var _len2 = arguments.length, objects = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - objects[_key2] = arguments[_key2]; - } - - return objects.reduce(function (prev, obj) { - Object.keys(obj).forEach(function (key) { - var pVal = prev[key]; - var oVal = obj[key]; - - if (Array.isArray(pVal) && Array.isArray(oVal)) { - prev[key] = pVal.concat.apply(pVal, toConsumableArray(oVal)); - } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) { - prev[key] = mergeDeep(pVal, oVal); - } else { - prev[key] = oVal; - } - }); - return prev; - }, {}); - } - - function sleep() { - var ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - return new Promise(function (resolve) { - return setTimeout(resolve, ms); - }); - } - function debounce(func, wait, context) { - var timeout; - - function fn() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var later = function later() { - timeout = null; - func.apply(context, args); - }; - - clearTimeout(timeout); - timeout = setTimeout(later, wait); - } - - fn.clearTimeout = function ct() { - clearTimeout(timeout); - }; - - return fn; - } - function throttle(callback, delay) { - var isThrottled = false; - var args; - var context; - - function fn() { - for (var _len2 = arguments.length, args2 = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - args2[_key2] = arguments[_key2]; - } - - if (isThrottled) { - args = args2; - context = this; - return; - } - - isThrottled = true; - callback.apply(this, args2); - setTimeout(function () { - isThrottled = false; - - if (args) { - fn.apply(context, args); - args = null; - context = null; - } - }, delay); - } - - return fn; - } - - function clamp(num, a, b) { - return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b)); - } - function secondToTime(second) { - var add0 = function add0(num) { - return num < 10 ? "0".concat(num) : String(num); - }; - - var hour = Math.floor(second / 3600); - var min = Math.floor((second - hour * 3600) / 60); - var sec = Math.floor(second - hour * 3600 - min * 60); - return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':'); - } - - - - var utils = /*#__PURE__*/Object.freeze({ - __proto__: null, - query: query, - queryAll: queryAll, - addClass: addClass, - removeClass: removeClass, - hasClass: hasClass, - append: append, - remove: remove, - setStyle: setStyle, - setStyles: setStyles, - getStyle: getStyle, - sublings: sublings, - inverseClass: inverseClass, - tooltip: tooltip, - ArtPlayerError: ArtPlayerError, - errorHandle: errorHandle, - srtToVtt: srtToVtt, - vttToBlob: vttToBlob, - assToVtt: assToVtt, - getExt: getExt, - downloadFile: downloadFile, - def: def, - has: has, - proxyPropertys: proxyPropertys, - mergeDeep: mergeDeep, - sleep: sleep, - debounce: debounce, - throttle: throttle, - clamp: clamp, - secondToTime: secondToTime - }); - - function validElement(value, type, paths) { - return errorHandle(type === 'string' || value instanceof Element, "".concat(paths.join('.'), " require 'string' or 'Element' type")); - } - - var scheme = { - container: validElement, - url: 'string', - poster: 'string', - title: 'string', - theme: 'string', - lang: 'string', - volume: 'number', - isLive: 'boolean', - muted: 'boolean', - autoplay: 'boolean', - autoSize: 'boolean', - loop: 'boolean', - flip: 'boolean', - playbackRate: 'boolean', - aspectRatio: 'boolean', - screenshot: 'boolean', - setting: 'boolean', - hotkey: 'boolean', - pip: 'boolean', - mutex: 'boolean', - backdrop: 'boolean', - fullscreen: 'boolean', - fullscreenWeb: 'boolean', - subtitleOffset: 'boolean', - miniProgressBar: 'boolean', - localVideo: 'boolean', - localSubtitle: 'boolean', - networkMonitor: 'boolean', - plugins: ['function'], - whitelist: ['string|function|regexp'], - layers: [{ - disable: 'boolean|undefined', - name: 'string|undefined', - index: 'number|undefined', - html: validElement, - style: 'object|undefined', - click: 'function|undefined', - mounted: 'function|undefined', - tooltip: 'string|undefined' - }], - contextmenu: [{ - disable: 'boolean|undefined', - name: 'string|undefined', - index: 'number|undefined', - html: validElement, - style: 'object|undefined', - click: 'function|undefined', - mounted: 'function|undefined', - tooltip: 'string|undefined' - }], - quality: [{ - default: 'boolean|undefined', - name: 'string', - url: 'string' - }], - controls: [{ - disable: 'boolean|undefined', - name: 'string|undefined', - index: 'number|undefined', - html: validElement, - style: 'object|undefined', - click: 'function|undefined', - mounted: 'function|undefined', - tooltip: 'string|undefined', - position: function position(value, type, paths) { - var position = ['top', 'left', 'right']; - return errorHandle(position.includes(value), "".concat(paths.join('.'), " only accept ").concat(position.toString(), " as parameters")); - } - }], - highlight: [{ - time: 'number', - text: 'string' - }], - thumbnails: { - url: 'string', - number: 'number', - width: 'number', - height: 'number', - column: 'number' - }, - subtitle: { - url: 'string', - style: 'object' - }, - moreVideoAttr: 'object', - icons: 'object', - customType: 'object' - }; - - var config = { - propertys: ['audioTracks', 'autoplay', 'buffered', 'controller', 'controls', 'crossOrigin', 'currentSrc', 'currentTime', 'defaultMuted', 'defaultPlaybackRate', 'duration', 'ended', 'error', 'loop', 'mediaGroup', 'muted', 'networkState', 'paused', 'playbackRate', 'played', 'preload', 'readyState', 'seekable', 'seeking', 'src', 'startDate', 'textTracks', 'videoTracks', 'volume'], - 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'] - }; - - var Whitelist = function Whitelist(art) { - var _this = this; - - classCallCheck(this, Whitelist); - - var kindOf = art.constructor.kindOf, - whitelist = art.option.whitelist; - this.ua = navigator.userAgent; - this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.ua); - this.state = !this.isMobile || whitelist.some(function (item) { - switch (kindOf(item)) { - case 'string': - return _this.ua.indexOf(item) > -1; - - case 'function': - return item(_this.ua); - - case 'regexp': - return item.test(_this.ua); - - default: - return false; - } - }); - }; - - var Template = - /*#__PURE__*/ - function () { - function Template(art) { - var _this = this; - - classCallCheck(this, Template); - - this.art = art; - - if (art.option.container instanceof Element) { - this.$container = art.option.container; - } else { - this.$container = query(art.option.container); - errorHandle(this.$container, "No container element found by ".concat(art.option.container)); - } - - errorHandle(art.constructor.instances.every(function (art) { - return art.template.$container !== _this.$container; - }), 'Cannot mount multiple instances on the same dom element'); - errorHandle(this.$container.clientWidth && this.$container.clientHeight, 'The width and height of the container cannot be 0'); - - if (art.whitelist.state) { - this.desktop(); - } else { - this.mobile(); - } - } - - createClass(Template, [{ - key: "query", - value: function query$1(className) { - return query(className, this.$container); - } - }, { - key: "desktop", - value: function desktop() { - var _this$art$option = this.art.option, - theme = _this$art$option.theme, - backdrop = _this$art$option.backdrop; - this.$container.innerHTML = "\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Player version:
\n
3.3.3
\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
\xD7
\n
\n
\n
\n "); - this.$player = this.query('.art-video-player'); - this.$video = this.query('.art-video'); - this.$track = this.query('.art-video track'); - 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.$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.$settingInner = this.query('.art-setting-inner'); - this.$settingBody = this.query('.art-setting-body'); - this.$info = this.query('.art-info'); - this.$infoPanel = this.query('.art-info-panel'); - this.$infoClose = this.query('.art-info-close'); - this.$pipHeader = this.query('.art-pip-header'); - this.$pipTitle = this.query('.art-pip-title'); - this.$pipClose = this.query('.art-pip-close'); - this.$contextmenu = this.query('.art-contextmenus'); - - if (backdrop) { - addClass(this.$settingInner, 'art-backdrop-filter'); - addClass(this.$info, 'art-backdrop-filter'); - addClass(this.$contextmenu, 'art-backdrop-filter'); - } - } - }, { - key: "mobile", - value: function mobile() { - this.$container.innerHTML = "\n
\n \n
\n "; - this.$player = this.query('.art-video-player'); - this.$video = this.query('.art-video'); - } - }, { - key: "destroy", - value: function destroy(remove) { - if (remove) { - this.$container.innerHTML = ''; - } else { - addClass(this.$player, 'art-destroy'); - } - } - }]); - - return Template; - }(); - - var Close = "关闭"; - var Volume = "音量"; - var Play = "播放"; - var Pause = "暂停"; - var Rate = "速度"; - var Mute = "静音"; - var Flip = "视频翻转"; - var Horizontal = "水平"; - var Vertical = "垂直"; - var Reconnect = "重新连接"; - var Screenshot = "截图"; - var Default = "默认"; - var Normal = "正常"; - var Open = "打开"; - var Fullscreen = "全屏"; - var zhCn = { - "Video info": "视频统计信息", - Close: Close, - "Video load failed": "视频加载失败", - Volume: Volume, - Play: Play, - Pause: Pause, - Rate: Rate, - Mute: Mute, - Flip: Flip, - Horizontal: Horizontal, - Vertical: Vertical, - Reconnect: Reconnect, - "Hide subtitle": "隐藏字幕", - "Show subtitle": "显示字幕", - "Hide danmu": "隐藏弹幕", - "Show danmu": "显示弹幕", - "Show setting": "显示设置", - "Hide setting": "隐藏设置", - Screenshot: Screenshot, - "Play speed": "播放速度", - "Aspect ratio": "画面比例", - Default: Default, - Normal: Normal, - Open: Open, - "Switch video": "切换", - "Switch subtitle": "切换字幕", - Fullscreen: Fullscreen, - "Exit fullscreen": "退出全屏", - "Web fullscreen": "网页全屏", - "Exit web fullscreen": "退出网页全屏", - "Mini player": "迷你播放器", - "Exit mini player": "退出迷你播放器", - "Local Subtitle": "本地字幕", - "Local Video": "本地视频", - "Subtitle offset time": "字幕偏移时间", - "No subtitles found": "未发现字幕" - }; - - var Close$1 = "關閉"; - var Volume$1 = "音量"; - var Play$1 = "播放"; - var Pause$1 = "暫停"; - var Rate$1 = "速度"; - var Mute$1 = "靜音"; - var Flip$1 = "影片翻轉"; - var Horizontal$1 = "水平"; - var Vertical$1 = "垂直"; - var Reconnect$1 = "重新連接"; - var Screenshot$1 = "截圖"; - var Default$1 = "默認"; - var Normal$1 = "正常"; - var Open$1 = "打開"; - var Fullscreen$1 = "全屏"; - var zhTw = { - "Video info": "影片統計訊息", - Close: Close$1, - "Video load failed": "影片載入失敗", - Volume: Volume$1, - Play: Play$1, - Pause: Pause$1, - Rate: Rate$1, - Mute: Mute$1, - Flip: Flip$1, - Horizontal: Horizontal$1, - Vertical: Vertical$1, - Reconnect: Reconnect$1, - "Hide subtitle": "隱藏字幕", - "Show subtitle": "顯示字幕", - "Hide danmu": "隱藏彈幕", - "Show danmu": "顯示彈幕", - "Show setting": "顯示设置", - "Hide setting": "隱藏设置", - Screenshot: Screenshot$1, - "Play speed": "播放速度", - "Aspect ratio": "畫面比例", - Default: Default$1, - Normal: Normal$1, - Open: Open$1, - "Switch video": "切換", - "Switch subtitle": "切換字幕", - Fullscreen: Fullscreen$1, - "Exit fullscreen": "退出全屏", - "Web fullscreen": "網頁全屏", - "Exit web fullscreen": "退出網頁全屏", - "Mini player": "迷你播放器", - "Exit mini player": "退出迷你播放器", - "Local Subtitle": "本地字幕", - "Local Video": "本地視頻", - "Subtitle offset time": "字幕偏移時間", - "No subtitles found": "未發現字幕" - }; - - var I18n = - /*#__PURE__*/ - function () { - function I18n(art) { - classCallCheck(this, I18n); - - this.art = art; - this.languages = { - 'zh-cn': zhCn, - 'zh-tw': zhTw - }; - this.init(); - } - - createClass(I18n, [{ - key: "init", - value: function init() { - var lang = this.art.option.lang.toLowerCase(); - this.language = this.languages[lang] || {}; - } - }, { - key: "get", - value: function get(key) { - return this.language[key] || key; - } - }, { - key: "update", - value: function update(value) { - this.languages = mergeDeep(this.languages, value); - this.init(); - } - }]); - - return I18n; - }(); - - function urlMix(art, player) { - var _art$option = art.option, - type = _art$option.type, - customType = _art$option.customType, - $video = art.template.$video; - def(player, 'url', { - get: function get() { - return $video.src; - }, - set: function set(url) { - var typeName = type || getExt(url); - var typeCallback = customType[typeName]; - - if (typeName && typeCallback) { - sleep().then(function () { - art.loading.show = true; - typeCallback.call(art, $video, url, art); - art.emit('customType', typeName); - }); - } else { - $video.src = url; - art.option.url = url; - art.emit('urlChange', url); - } - } - }); - } - - function attrInit(art, player) { - var option = art.option, - storage = art.storage, - $video = art.template.$video; - Object.keys(option.moreVideoAttr).forEach(function (key) { - $video[key] = option.moreVideoAttr[key]; - }); - - if (option.muted) { - $video.muted = option.muted; - } - - if (option.volume) { - $video.volume = clamp(option.volume, 0, 1); - } - - var volume = storage.get('volume'); - - if (volume) { - $video.volume = clamp(volume, 0, 1); - } - - if (option.poster) { - $video.poster = option.poster; - } - - if (option.autoplay) { - $video.autoplay = option.autoplay; - } - - $video.controls = false; - player.url = option.url; - } - - function eventInit(art, player) { - var option = art.option, - proxy = art.events.proxy, - _art$template = art.template, - $player = _art$template.$player, - $video = _art$template.$video, - i18n = art.i18n, - notice = art.notice; - var reconnectTime = 0; - var maxReconnectTime = 5; - proxy($video, 'click', function () { - player.toggle = true; - }); - config.events.forEach(function (eventName) { - proxy($video, eventName, function (event) { - art.emit("video:".concat(event.type), event); - }); - }); // art.on('video:abort', () => { - // }); - - art.on('video:canplay', function () { - reconnectTime = 0; - art.loading.show = false; - }); - art.once('video:canplay', function () { - art.controls.show = true; - art.mask.show = true; - art.emit('ready'); - }); // art.on('video:canplaythrough', () => { - // }); - // art.on('video:durationchange', () => { - // }); - // art.on('video:emptied', () => { - // }); - - art.on('video:ended', function () { - if (option.loop) { - player.seek = 0; - player.play = true; - art.controls.show = false; - art.mask.show = false; - } else { - art.controls.show = true; - art.mask.show = true; - } - }); - art.on('video:error', function () { - if (reconnectTime < maxReconnectTime) { - sleep(1000).then(function () { - reconnectTime += 1; - player.url = option.url; - notice.show = "".concat(i18n.get('Reconnect'), ": ").concat(reconnectTime); - }); - } else { - art.loading.show = false; - art.controls.show = false; - addClass($player, 'art-error'); - sleep(1000).then(function () { - notice.show = i18n.get('Video load failed'); - art.destroy(false); - }); - } - }); // art.on('video:loadeddata', () => { - // }); - - art.on('video:loadedmetadata', function () { - if (option.autoSize) { - player.autoSize = true; - } - }); - art.on('video:loadstart', function () { - art.loading.show = true; - }); - art.on('video:pause', function () { - art.controls.show = true; - art.mask.show = true; - }); - art.on('video:play', function () { - art.mask.show = false; - }); - art.on('video:playing', function () { - art.mask.show = false; - }); // art.on('video:progress', () => { - // }); - // art.on('video:ratechange', () => { - // }); - - art.on('video:seeked', function () { - art.loading.show = false; - }); - art.on('video:seeking', function () { - art.loading.show = true; - }); // art.on('video:stalled', () => { - // }); - // art.on('video:suspend', () => { - // }); - - art.on('video:timeupdate', function () { - art.mask.show = false; - }); // art.on('video:volumechange', () => { - // }); - - art.on('video:waiting', function () { - art.loading.show = true; - }); - } - - function playMix(art, player) { - var i18n = art.i18n, - notice = art.notice, - instances = art.constructor.instances, - mutex = art.option.mutex, - $video = art.template.$video; - def(player, 'play', { - set: function set(value) { - if (value) { - var promise = $video.play(); - - if (promise.then) { - promise.then().catch(function (err) { - notice.show = err; - throw err; - }); - } - - if (mutex) { - instances.filter(function (item) { - return item !== art; - }).forEach(function (item) { - item.player.pause = true; - }); - } - - notice.show = i18n.get('Play'); - art.emit('play'); - } else { - player.pause = true; - } - } - }); - } - - function pauseMin(art, player) { - var $video = art.template.$video, - i18n = art.i18n, - notice = art.notice; - def(player, 'pause', { - get: function get() { - return $video.paused; - }, - set: function set(value) { - if (value) { - $video.pause(); - notice.show = i18n.get('Pause'); - art.emit('pause'); - } else { - player.play = true; - } - } - }); - } - - function toggleMix(art, player) { - def(player, 'toggle', { - set: function set(value) { - if (value) { - if (player.playing) { - player.pause = true; - } else { - player.play = true; - } - } - } - }); - } - - function seekMix(art, player) { - var notice = art.notice; - def(player, 'seek', { - set: function set(time) { - player.currentTime = time; - notice.show = "".concat(secondToTime(time), " / ").concat(secondToTime(player.duration)); - art.emit('seek', time); - } - }); - } - - function volumeMix(art, player) { - var $video = art.template.$video, - i18n = art.i18n, - notice = art.notice, - storage = art.storage; - def(player, 'volume', { - get: function get() { - return $video.volume || 0; - }, - set: function set(percentage) { - $video.volume = clamp(percentage, 0, 1); - notice.show = "".concat(i18n.get('Volume'), ": ").concat(parseInt($video.volume * 100, 10)); - - if ($video.volume !== 0) { - storage.set('volume', $video.volume); - } - - art.emit('volume', $video.volume); - } - }); - def(player, 'muted', { - get: function get() { - return $video.muted; - }, - set: function set(muted) { - $video.muted = muted; - art.emit('volume', $video.volume); - } - }); - } - - function currentTimeMix(art, player) { - def(player, 'currentTime', { - get: function get() { - return art.template.$video.currentTime || 0; - }, - set: function set(currentTime) { - art.template.$video.currentTime = clamp(currentTime, 0, player.duration); - } - }); - } - - function durationMix(art, player) { - def(player, 'duration', { - get: function get() { - return art.template.$video.duration || 0; - } - }); - } - - function switchMix(art, player) { - var i18n = art.i18n, - notice = art.notice; - - function switchUrl(url, name, currentTime) { - if (url === player.url) return; - URL.revokeObjectURL(player.url); - var playing = player.playing; - player.url = url; - player.playbackRate = false; - player.aspectRatio = false; - art.once('video:canplay', function () { - player.currentTime = currentTime; - }); - - if (playing) { - player.play = true; - } - - if (name) { - notice.show = "".concat(i18n.get('Switch video'), ": ").concat(name); - } - - art.emit('switch', url); - } - - def(player, 'switchQuality', { - value: function value(url, name) { - return switchUrl(url, name, player.currentTime); - } - }); - def(player, 'switchUrl', { - value: function value(url, name) { - return switchUrl(url, name, 0); - } - }); - } - - function playbackRateMix(art, player) { - var _art$template = art.template, - $video = _art$template.$video, - $player = _art$template.$player, - i18n = art.i18n, - notice = art.notice; - def(player, 'playbackRate', { - get: function get() { - return $player.dataset.playbackRate; - }, - set: function set(rate) { - if (rate) { - if (rate === $player.dataset.playbackRate) return; - var rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0]; - errorHandle(rateList.includes(rate), "'playbackRate' only accept ".concat(rateList.toString(), " as parameters")); - $video.playbackRate = rate; - $player.dataset.playbackRate = rate; - notice.show = "".concat(i18n.get('Rate'), ": ").concat(rate === 1.0 ? i18n.get('Normal') : "".concat(rate, "x")); - art.emit('playbackRateChange', rate); - } else if (player.playbackRate) { - player.playbackRate = 1; - delete $player.dataset.playbackRate; - art.emit('playbackRateRemove'); - } - } - }); - def(player, 'playbackRateReset', { - set: function set(value) { - if (value) { - var playbackRate = $player.dataset.playbackRate; - - if (playbackRate) { - player.playbackRate = Number(playbackRate); - art.emit('playbackRateReset'); - } - } - } - }); - } - - function aspectRatioMix(art, player) { - var _art$template = art.template, - $video = _art$template.$video, - $player = _art$template.$player, - i18n = art.i18n, - notice = art.notice; - def(player, 'aspectRatio', { - get: function get() { - return $player.dataset.aspectRatio || ''; - }, - set: function set(ratio) { - if (ratio) { - var ratioList = ['default', '4:3', '16:9']; - errorHandle(ratioList.includes(ratio), "'aspectRatio' only accept ".concat(ratioList.toString(), " as parameters")); - - if (ratio === 'default') { - player.aspectRatio = false; - } else { - var ratioArray = ratio.split(':'); - var videoWidth = $video.videoWidth, - videoHeight = $video.videoHeight; - var clientWidth = $player.clientWidth, - clientHeight = $player.clientHeight; - var videoRatio = videoWidth / videoHeight; - var setupRatio = ratioArray[0] / ratioArray[1]; - - if (videoRatio > setupRatio) { - var percentage = setupRatio * videoHeight / videoWidth; - setStyle($video, 'width', "".concat(percentage * 100, "%")); - setStyle($video, 'height', '100%'); - setStyle($video, 'padding', "0 ".concat((clientWidth - clientWidth * percentage) / 2, "px")); - } else { - var _percentage = videoWidth / setupRatio / videoHeight; - - setStyle($video, 'width', '100%'); - setStyle($video, 'height', "".concat(_percentage * 100, "%")); - setStyle($video, 'padding', "".concat((clientHeight - clientHeight * _percentage) / 2, "px 0")); - } - } - - $player.dataset.aspectRatio = ratio; - notice.show = "".concat(i18n.get('Aspect ratio'), ": ").concat(ratio === 'default' ? i18n.get('Default') : ratio); - art.emit('aspectRatioChange', ratio); - } else if (player.aspectRatio) { - setStyle($video, 'width', null); - setStyle($video, 'height', null); - setStyle($video, 'padding', null); - delete $player.dataset.aspectRatio; - art.emit('aspectRatioRemove'); - } - } - }); - def(player, 'aspectRatioReset', { - set: function set(value) { - if (value && player.aspectRatio) { - var aspectRatio = player.aspectRatio; - player.aspectRatio = aspectRatio; - art.emit('aspectRatioReset'); - } - } - }); - } - - function screenshotMix(art, player) { - var option = art.option, - notice = art.notice, - $video = art.template.$video; - def(player, 'getScreenshotDataURL', { - value: function value() { - try { - var canvas = document.createElement('canvas'); - canvas.width = $video.videoWidth; - canvas.height = $video.videoHeight; - canvas.getContext('2d').drawImage($video, 0, 0); - return canvas.toDataURL('image/png'); - } catch (err) { - notice.show = err; - throw err; - } - } - }); - def(player, 'getScreenshotBlobUrl', { - value: function value() { - return new Promise(function (resolve, reject) { - try { - var canvas = document.createElement('canvas'); - canvas.width = $video.videoWidth; - canvas.height = $video.videoHeight; - canvas.getContext('2d').drawImage($video, 0, 0); - canvas.toBlob(function (blob) { - resolve(URL.createObjectURL(blob)); - }); - } catch (err) { - notice.show = err; - reject(err); - } - }); - } - }); - def(player, 'screenshot', { - value: function value() { - var dataUri = player.getScreenshotDataURL(); - - if (dataUri) { - downloadFile(dataUri, "".concat(option.title || 'artplayer', "_").concat(secondToTime($video.currentTime), ".png")); - art.emit('screenshot', dataUri); - } - } - }); - } - - var screenfull = createCommonjsModule(function (module) { - /*! - * screenfull - * v5.0.0 - 2019-09-09 - * (c) Sindre Sorhus; MIT License - */ - (function () { - - var document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {}; - var isCommonjs = module.exports; - - var fn = (function () { - var val; - - var fnMap = [ - [ - 'requestFullscreen', - 'exitFullscreen', - 'fullscreenElement', - 'fullscreenEnabled', - 'fullscreenchange', - 'fullscreenerror' - ], - // New WebKit - [ - 'webkitRequestFullscreen', - 'webkitExitFullscreen', - 'webkitFullscreenElement', - 'webkitFullscreenEnabled', - 'webkitfullscreenchange', - 'webkitfullscreenerror' - - ], - // Old WebKit - [ - 'webkitRequestFullScreen', - 'webkitCancelFullScreen', - 'webkitCurrentFullScreenElement', - 'webkitCancelFullScreen', - 'webkitfullscreenchange', - 'webkitfullscreenerror' - - ], - [ - 'mozRequestFullScreen', - 'mozCancelFullScreen', - 'mozFullScreenElement', - 'mozFullScreenEnabled', - 'mozfullscreenchange', - 'mozfullscreenerror' - ], - [ - 'msRequestFullscreen', - 'msExitFullscreen', - 'msFullscreenElement', - 'msFullscreenEnabled', - 'MSFullscreenChange', - 'MSFullscreenError' - ] - ]; - - var i = 0; - var l = fnMap.length; - var ret = {}; - - for (; i < l; i++) { - val = fnMap[i]; - if (val && val[1] in document) { - for (i = 0; i < val.length; i++) { - ret[fnMap[0][i]] = val[i]; - } - return ret; - } - } - - return false; - })(); - - var eventNameMap = { - change: fn.fullscreenchange, - error: fn.fullscreenerror - }; - - var screenfull = { - request: function (element) { - return new Promise(function (resolve, reject) { - var onFullScreenEntered = function () { - this.off('change', onFullScreenEntered); - resolve(); - }.bind(this); - - this.on('change', onFullScreenEntered); - - element = element || document.documentElement; - - Promise.resolve(element[fn.requestFullscreen]()).catch(reject); - }.bind(this)); - }, - exit: function () { - return new Promise(function (resolve, reject) { - if (!this.isFullscreen) { - resolve(); - return; - } - - var onFullScreenExit = function () { - this.off('change', onFullScreenExit); - resolve(); - }.bind(this); - - this.on('change', onFullScreenExit); - - Promise.resolve(document[fn.exitFullscreen]()).catch(reject); - }.bind(this)); - }, - toggle: function (element) { - return this.isFullscreen ? this.exit() : this.request(element); - }, - onchange: function (callback) { - this.on('change', callback); - }, - onerror: function (callback) { - this.on('error', callback); - }, - on: function (event, callback) { - var eventName = eventNameMap[event]; - if (eventName) { - document.addEventListener(eventName, callback, false); - } - }, - off: function (event, callback) { - var eventName = eventNameMap[event]; - if (eventName) { - document.removeEventListener(eventName, callback, false); - } - }, - raw: fn - }; - - if (!fn) { - if (isCommonjs) { - module.exports = {isEnabled: false}; - } else { - window.screenfull = {isEnabled: false}; - } - - return; - } - - Object.defineProperties(screenfull, { - isFullscreen: { - get: function () { - return Boolean(document[fn.fullscreenElement]); - } - }, - element: { - enumerable: true, - get: function () { - return document[fn.fullscreenElement]; - } - }, - isEnabled: { - enumerable: true, - get: function () { - // Coerce to boolean in case of old WebKit - return Boolean(document[fn.fullscreenEnabled]); - } - } - }); - - if (isCommonjs) { - module.exports = screenfull; - } else { - window.screenfull = screenfull; - } - })(); - }); - var screenfull_1 = screenfull.isEnabled; - - function fullscreenMix(art, player) { - var $player = art.template.$player; - def(player, 'fullscreen', { - get: function get() { - return screenfull.isFullscreen; - }, - set: function set(value) { - if (player.fullscreenWeb) { - player.fullscreenWeb = false; - } - - if (value) { - screenfull.request($player).then(function () { - addClass($player, 'art-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenChange', true); - }); - } else { - screenfull.exit().then(function () { - removeClass($player, 'art-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenChange', false); - }); - } - } - }); - def(player, 'fullscreenToggle', { - set: function set(value) { - if (value) { - player.fullscreen = !player.fullscreen; - } - } - }); - } - - function fullscreenWebMix(art, player) { - var $player = art.template.$player; - def(player, 'fullscreenWeb', { - get: function get() { - return hasClass($player, 'art-web-fullscreen'); - }, - set: function set(value) { - if (player.fullscreen) { - player.fullscreen = false; - } - - if (value) { - addClass($player, 'art-web-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenWebChange', true); - } else { - removeClass($player, 'art-web-fullscreen'); - player.aspectRatioReset = true; - art.emit('fullscreenWebChange', false); - } - } - }); - def(player, 'fullscreenWebToggle', { - set: function set(value) { - if (value) { - player.fullscreenWeb = !player.fullscreenWeb; - } - } - }); - } - - function nativePip(art, player) { - var $video = art.template.$video, - proxy = art.events.proxy, - notice = art.notice; - $video.disablePictureInPicture = false; - def(player, 'pip', { - get: function get() { - return document.pictureInPictureElement; - }, - set: function set(value) { - if (value) { - $video.requestPictureInPicture().catch(function (err) { - notice.show = err; - throw err; - }); - } else { - document.exitPictureInPicture().catch(function (err) { - notice.show = err; - throw err; - }); - } - } - }); - proxy($video, 'enterpictureinpicture', function () { - art.emit('pipChange', true); - }); - proxy($video, 'leavepictureinpicture', function () { - art.emit('pipChange', false); - }); - } - - function webkitPip(art, player) { - var $video = art.template.$video; - $video.webkitSetPresentationMode('inline'); - def(player, 'pip', { - get: function get() { - return $video.webkitPresentationMode === 'picture-in-picture'; - }, - set: function set(value) { - if (value) { - $video.webkitSetPresentationMode('picture-in-picture'); - art.emit('pipChange', true); - } else { - $video.webkitSetPresentationMode('inline'); - art.emit('pipChange', false); - } - } - }); - } - - function customPip(art, player) { - var option = art.option, - i18n = art.i18n, - _art$template = art.template, - $player = _art$template.$player, - $pipClose = _art$template.$pipClose, - $pipTitle = _art$template.$pipTitle, - $pipHeader = _art$template.$pipHeader, - proxy = art.events.proxy; - var cacheStyle = ''; - var isDroging = false; - var lastPageX = 0; - var lastPageY = 0; - var lastPlayerLeft = 0; - var lastPlayerTop = 0; - proxy($pipHeader, 'mousedown', function (event) { - isDroging = true; - lastPageX = event.pageX; - lastPageY = event.pageY; - lastPlayerLeft = player.left; - lastPlayerTop = player.top; - }); - proxy($pipHeader, 'mousemove', function (event) { - if (isDroging) { - addClass($player, 'art-is-dragging'); - setStyle($player, 'left', "".concat(lastPlayerLeft + event.pageX - lastPageX, "px")); - setStyle($player, 'top', "".concat(lastPlayerTop + event.pageY - lastPageY, "px")); - } - }); - proxy(document, 'mouseup', function () { - isDroging = false; - removeClass($player, 'art-is-dragging'); - }); - proxy($pipClose, 'click', function () { - player.pip = false; - isDroging = false; - removeClass($player, 'art-is-dragging'); - }); - append($pipTitle, option.title || i18n.get('Mini player')); - def(player, 'pip', { - get: function get() { - return hasClass($player, 'art-pip'); - }, - set: function set(value) { - if (value) { - player.autoSize = false; - cacheStyle = $player.style.cssText; - addClass($player, 'art-pip'); - var $body = document.body; - setStyle($player, 'top', "".concat($body.clientHeight - player.height - 50, "px")); - setStyle($player, 'left', "".concat($body.clientWidth - player.width - 50, "px")); - player.fullscreen = false; - player.fullscreenWeb = false; - player.aspectRatio = false; - player.playbackRate = false; - art.emit('pipChange', true); - } else if (player.pip) { - $player.style.cssText = cacheStyle; - removeClass($player, 'art-pip'); - setStyle($player, 'top', null); - setStyle($player, 'left', null); - player.fullscreen = false; - player.fullscreenWeb = false; - player.aspectRatio = false; - player.playbackRate = false; - player.autoSize = true; - art.emit('pipChange', false); - } - } - }); - } - - function pipMix(art, player) { - var $video = art.template.$video; - - if (document.pictureInPictureEnabled) { - nativePip(art, player); - } else if ($video.webkitSupportsPresentationMode) { - webkitPip(art, player); - } else { - customPip(art, player); - } - - def(player, 'pipToggle', { - set: function set(value) { - if (value) { - player.pip = !player.pip; - } - } - }); - } - - function seekMix$1(art, player) { - var $video = art.template.$video; - def(player, 'loaded', { - get: function get() { - return player.loadedTime / $video.duration; - } - }); - def(player, 'loadedTime', { - get: function get() { - return $video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0; - } - }); - } - - function playedMix(art, player) { - def(player, 'played', { - get: function get() { - return player.currentTime / player.duration; - } - }); - } - - function playingMix(art, player) { - var $video = art.template.$video; - def(player, 'playing', { - get: function get() { - return !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2); - } - }); - } - - function resizeMix(art, player) { - var _art$template = art.template, - $container = _art$template.$container, - $player = _art$template.$player, - $video = _art$template.$video; - def(player, 'autoSize', { - get: function get() { - return hasClass($container, 'art-auto-size'); - }, - set: function set(value) { - if (value) { - var videoWidth = $video.videoWidth, - videoHeight = $video.videoHeight; - - var _$container$getBoundi = $container.getBoundingClientRect(), - width = _$container$getBoundi.width, - height = _$container$getBoundi.height; - - var videoRatio = videoWidth / videoHeight; - var containerRatio = width / height; - addClass($container, 'art-auto-size'); - - if (containerRatio > videoRatio) { - var percentage = height * videoRatio / width * 100; - setStyle($player, 'width', "".concat(percentage, "%")); - setStyle($player, 'height', '100%'); - } else { - var _percentage = width / videoRatio / height * 100; - - setStyle($player, 'width', '100%'); - setStyle($player, 'height', "".concat(_percentage, "%")); - } - - art.emit('autoSizeChange', { - width: player.width, - height: player.height - }); - } else { - removeClass($container, 'art-auto-size'); - setStyle($player, 'width', null); - setStyle($player, 'height', null); - art.emit('autoSizeRemove'); - } - } - }); - } - - function rectMix(art, player) { - def(player, 'rect', { - get: function get() { - return art.template.$player.getBoundingClientRect(); - } - }); - ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (key) { - def(player, key, { - get: function get() { - return player.rect[key]; - } - }); - }); - def(player, 'x', { - get: function get() { - return player.left + window.pageXOffset; - } - }); - def(player, 'y', { - get: function get() { - return player.top + window.pageYOffset; - } - }); - } - - function flipMix(art, player) { - var $player = art.template.$player; - def(player, 'flip', { - get: function get() { - return $player.dataset.flip; - }, - set: function set(flip) { - if (flip) { - var flipList = ['normal', 'horizontal', 'vertical']; - errorHandle(flipList.includes(flip), "'flip' only accept ".concat(flipList.toString(), " as parameters")); - $player.dataset.flip = flip; - art.emit('flipChange', flip); - } else { - delete $player.dataset.flip; - art.emit('flipRemove'); - } - } - }); - } - - var Player = function Player(art) { - classCallCheck(this, Player); - - urlMix(art, this); - eventInit(art, this); - attrInit(art, this); - playMix(art, this); - pauseMin(art, this); - toggleMix(art, this); - seekMix(art, this); - volumeMix(art, this); - currentTimeMix(art, this); - durationMix(art, this); - switchMix(art, this); - playbackRateMix(art, this); - aspectRatioMix(art, this); - screenshotMix(art, this); - fullscreenMix(art, this); - fullscreenWebMix(art, this); - pipMix(art, this); - seekMix$1(art, this); - playedMix(art, this); - playingMix(art, this); - resizeMix(art, this); - rectMix(art, this); - flipMix(art, this); - proxyPropertys(art, this); - }; - - function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = getPrototypeOf(object); - if (object === null) break; - } - - return object; - } - - var superPropBase = _superPropBase; - - var get = createCommonjsModule(function (module) { - function _get(target, property, receiver) { - if (typeof Reflect !== "undefined" && Reflect.get) { - module.exports = _get = Reflect.get; - } else { - module.exports = _get = function _get(target, property, receiver) { - var base = superPropBase(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.get) { - return desc.get.call(receiver); - } - - return desc.value; - }; - } - - return _get(target, property, receiver || target); - } - - module.exports = _get; - }); - - var Component = - /*#__PURE__*/ - function () { - function Component(art) { - classCallCheck(this, Component); - - this.id = 0; - this.art = art; - this.add = this.add.bind(this); - } - - createClass(Component, [{ - key: "add", - value: function add(getOption, callback) { - var _this = this; - - var option = typeof getOption === 'function' ? getOption(this.art) : getOption; - if (!this.$parent || !this.name || option.disable) return; - this.id += 1; - var name = option.name || "".concat(this.name).concat(this.id); - errorHandle(!has(this, name), "Cannot add an existing name [".concat(name, "] to the [").concat(this.name, "]")); - var $ref = document.createElement('div'); - $ref.classList.value = "art-".concat(this.name, " art-").concat(this.name, "-").concat(name); - - if (option.html) { - append($ref, option.html); - } - - if (option.style) { - setStyles($ref, option.style); - } - - if (option.tooltip) { - tooltip($ref, option.tooltip); - } - - var childs = Array.from(this.$parent.children); - $ref.dataset.index = option.index || this.id; - var nextChild = childs.find(function (item) { - return Number(item.dataset.index) >= Number($ref.dataset.index); - }); - - if (nextChild) { - nextChild.insertAdjacentElement('beforebegin', $ref); - } else { - append(this.$parent, $ref); - } - - if (option.click) { - this.art.events.proxy($ref, 'click', function (event) { - event.preventDefault(); - option.click.call(_this.art, _this, event); - }); - } - - if (option.mounted) { - option.mounted($ref, this, this.art); - } - - if (callback) { - callback($ref, this, this.art); - } - - this.art.emit("".concat(this.name, ":add"), option); - def(this, name, { - get: function get() { - return option; - } - }); - } - }, { - key: "show", - get: function get() { - return hasClass(this.art.template.$player, "art-".concat(this.name, "-show")); - }, - set: function set(value) { - var $player = this.art.template.$player; - var className = "art-".concat(this.name, "-show"); - - if (value) { - addClass($player, className); - } else { - removeClass($player, className); - } - - this.art.emit("".concat(this.name, ":toggle"), value); - } - }, { - key: "toggle", - set: function set(value) { - if (value) { - this.show = !this.show; - } - } - }]); - - return Component; - }(); - - function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function fullscreen(option) { - return function (art) { - return _objectSpread({}, option, { - tooltip: art.i18n.get('Fullscreen'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - append($control, icons.fullscreen); - proxy($control, 'click', function () { - player.fullscreenToggle = true; - }); - art.on('fullscreenChange', function (value) { - tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen')); - }); - } - }); - }; - } - - function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function fullscreenWeb(option) { - return function (art) { - return _objectSpread$1({}, option, { - tooltip: art.i18n.get('Web fullscreen'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - append($control, icons.fullscreenWeb); - proxy($control, 'click', function () { - player.fullscreenWebToggle = true; - }); - art.on('fullscreenWebChange', function (value) { - tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen')); - }); - } - }); - }; - } - - function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function pip(option) { - return function (art) { - return _objectSpread$2({}, option, { - tooltip: art.i18n.get('Mini player'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - append($control, icons.pip); - proxy($control, 'click', function () { - player.pipToggle = true; - }); - art.on('pipChange', function (value) { - tooltip($control, i18n.get(value ? 'Exit mini player' : 'Mini player')); - }); - } - }); - }; - } - - function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playAndPause(option) { - return function (art) { - return _objectSpread$3({}, option, { - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - player = art.player; - var $play = append($control, icons.play); - var $pause = append($control, icons.pause); - tooltip($play, i18n.get('Play')); - tooltip($pause, i18n.get('Pause')); - proxy($play, 'click', function () { - player.play = true; - }); - proxy($pause, 'click', function () { - player.pause = true; - }); - - function showPlay() { - setStyle($play, 'display', 'flex'); - setStyle($pause, 'display', 'none'); - } - - function showPause() { - setStyle($play, 'display', 'none'); - setStyle($pause, 'display', 'flex'); - } - - if (player.playing) { - showPause(); - } else { - showPlay(); - } - - art.on('video:playing', function () { - showPause(); - }); - art.on('video:pause', function () { - showPlay(); - }); - } - }); - }; - } - - function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function getPosFromEvent(art, event) { - var $progress = art.template.$progress, - player = art.player; - - var _$progress$getBoundin = $progress.getBoundingClientRect(), - left = _$progress$getBoundin.left; - - var width = clamp(event.pageX - left, 0, $progress.clientWidth); - var second = width / $progress.clientWidth * player.duration; - var time = secondToTime(second); - var percentage = clamp(width / $progress.clientWidth, 0, 1); - return { - second: second, - time: time, - width: width, - percentage: percentage - }; - } - function progress(option) { - return function (art) { - var _art$option = art.option, - highlight = _art$option.highlight, - theme = _art$option.theme, - proxy = art.events.proxy, - player = art.player; - return _objectSpread$4({}, option, { - html: "\n
\n
\n
\n
\n
\n
\n
\n "), - mounted: function mounted($control) { - var isDroging = false; - var $loaded = query('.art-progress-loaded', $control); - var $played = query('.art-progress-played', $control); - var $highlight = query('.art-progress-highlight', $control); - var $indicator = query('.art-progress-indicator', $control); - var $tip = query('.art-progress-tip', $control); - - function showHighlight(event) { - var _getPosFromEvent = getPosFromEvent(art, event), - width = _getPosFromEvent.width; - - var text = event.target.dataset.text; - $tip.innerHTML = text; - var tipWidth = $tip.clientWidth; - - if (width <= tipWidth / 2) { - setStyle($tip, 'left', 0); - } else if (width > $control.clientWidth - tipWidth / 2) { - setStyle($tip, 'left', "".concat($control.clientWidth - tipWidth, "px")); - } else { - setStyle($tip, 'left', "".concat(width - tipWidth / 2, "px")); - } - } - - function showTime(event) { - var _getPosFromEvent2 = getPosFromEvent(art, event), - width = _getPosFromEvent2.width, - time = _getPosFromEvent2.time; - - $tip.innerHTML = time; - var tipWidth = $tip.clientWidth; - - if (width <= tipWidth / 2) { - setStyle($tip, 'left', 0); - } else if (width > $control.clientWidth - tipWidth / 2) { - setStyle($tip, 'left', "".concat($control.clientWidth - tipWidth, "px")); - } else { - setStyle($tip, 'left', "".concat(width - tipWidth / 2, "px")); - } - } - - function setBar(type, percentage) { - if (type === 'loaded') { - setStyle($loaded, 'width', "".concat(percentage * 100, "%")); - } - - if (type === 'played') { - setStyle($played, 'width', "".concat(percentage * 100, "%")); - setStyle($indicator, 'left', "calc(".concat(percentage * 100, "% - ").concat(getStyle($indicator, 'width') / 2, "px)")); - } - } - - highlight.forEach(function (item) { - var left = clamp(item.time, 0, player.duration) / player.duration * 100; - append($highlight, "")); - }); - setBar('loaded', player.loaded); - art.on('video:progress', function () { - setBar('loaded', player.loaded); - }); - art.on('video:timeupdate', function () { - setBar('played', player.played); - }); - art.on('video:ended', function () { - setBar('played', 1); - }); - proxy($control, 'mousemove', function (event) { - setStyle($tip, 'display', 'block'); - - if (event.composedPath().indexOf($highlight) > -1) { - showHighlight(event); - } else { - showTime(event); - } - }); - proxy($control, 'mouseout', function () { - setStyle($tip, 'display', 'none'); - }); - proxy($control, 'click', function (event) { - if (event.target !== $indicator) { - var _getPosFromEvent3 = getPosFromEvent(art, event), - second = _getPosFromEvent3.second, - percentage = _getPosFromEvent3.percentage; - - setBar('played', percentage); - player.seek = second; - } - }); - proxy($indicator, 'mousedown', function () { - isDroging = true; - }); - proxy(document, 'mousemove', function (event) { - if (isDroging) { - var _getPosFromEvent4 = getPosFromEvent(art, event), - second = _getPosFromEvent4.second, - percentage = _getPosFromEvent4.percentage; - - addClass($indicator, 'art-show-indicator'); - setBar('played', percentage); - player.seek = second; - } - }); - proxy(document, 'mouseup', function () { - if (isDroging) { - isDroging = false; - removeClass($indicator, 'art-show-indicator'); - } - }); - } - }); - }; - } - - function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function subtitle(option) { - return function (art) { - return _objectSpread$5({}, option, { - tooltip: art.i18n.get('Hide subtitle'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - subtitle = art.subtitle; - append($control, icons.subtitle); - proxy($control, 'click', function () { - subtitle.toggle = true; - }); - art.on('subtitle:toggle', function (value) { - tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle')); - }); - } - }); - }; - } - - function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function time(option) { - return function (art) { - return _objectSpread$6({}, option, { - mounted: function mounted($control) { - function getTime() { - var newTime = "".concat(secondToTime(art.player.currentTime), " / ").concat(secondToTime(art.player.duration)); - - if (newTime !== $control.innerText) { - $control.innerText = newTime; - } - } - - getTime(); - ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(function (event) { - art.on(event, getTime); - }); - } - }); - }; - } - - function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function volume(option) { - return function (art) { - return _objectSpread$7({}, option, { - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - player = art.player, - i18n = art.i18n; - var isDroging = false; - var $volume = append($control, icons.volume); - var $volumeClose = append($control, icons.volumeClose); - var $volumePanel = append($control, '
'); - var $volumeHandle = append($volumePanel, '
'); - tooltip($volume, i18n.get('Mute')); - setStyle($volumeClose, 'display', 'none'); - - function volumeChangeFromEvent(event) { - var _$volumePanel$getBoun = $volumePanel.getBoundingClientRect(), - panelLeft = _$volumePanel$getBoun.left, - panelWidth = _$volumePanel$getBoun.width; - - var _$volumeHandle$getBou = $volumeHandle.getBoundingClientRect(), - handleWidth = _$volumeHandle$getBou.width; - - var percentage = clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) / (panelWidth - handleWidth); - return percentage; - } - - function setVolumeHandle() { - var percentage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.7; - - if (player.muted || percentage === 0) { - setStyle($volume, 'display', 'none'); - setStyle($volumeClose, 'display', 'flex'); - setStyle($volumeHandle, 'left', '0'); - } else { - // TODO... - var panelWidth = getStyle($volumePanel, 'width') || 60; - var handleWidth = getStyle($volumeHandle, 'width'); - var width = (panelWidth - handleWidth) * percentage; - setStyle($volume, 'display', 'flex'); - setStyle($volumeClose, 'display', 'none'); - setStyle($volumeHandle, 'left', "".concat(width, "px")); - } - } - - setVolumeHandle(player.volume); - art.on('video:volumechange', function () { - setVolumeHandle(player.volume); - }); - proxy($volume, 'click', function () { - player.muted = true; - }); - proxy($volumeClose, 'click', function () { - player.muted = false; - }); - proxy($volumePanel, 'click', function (event) { - player.muted = false; - player.volume = volumeChangeFromEvent(event); - }); - proxy($volumeHandle, 'mousedown', function () { - isDroging = true; - }); - proxy(document, 'mousemove', function (event) { - if (isDroging) { - player.muted = false; - player.volume = volumeChangeFromEvent(event); - } - }); - proxy(document, 'mouseup', function () { - if (isDroging) { - isDroging = false; - } - }); - } - }); - }; - } - - function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function setting(option) { - return function (art) { - return _objectSpread$8({}, option, { - tooltip: art.i18n.get('Show setting'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - i18n = art.i18n, - setting = art.setting; - append($control, icons.setting); - proxy($control, 'click', function () { - setting.toggle = true; - }); - art.on('setting:toggle', function (value) { - tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting')); - }); - } - }); - }; - } - - function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function thumbnails(option) { - return function (art) { - return _objectSpread$9({}, option, { - mounted: function mounted($control) { - var thumbnails = art.option.thumbnails, - $progress = art.template.$progress, - _art$events = art.events, - proxy = _art$events.proxy, - loadImg = _art$events.loadImg; - var loading = false; - var isLoad = false; - - function showThumbnails(event) { - var _getPosFromEvent = getPosFromEvent(art, event), - posWidth = _getPosFromEvent.width; - - var url = thumbnails.url, - height = thumbnails.height, - width = thumbnails.width, - number = thumbnails.number, - column = thumbnails.column; - var perWidth = $progress.clientWidth / number; - var perIndex = Math.floor(posWidth / perWidth); - var yIndex = Math.ceil(perIndex / column) - 1; - var xIndex = perIndex % column || column - 1; - setStyle($control, 'backgroundImage', "url(".concat(url, ")")); - setStyle($control, 'height', "".concat(height, "px")); - setStyle($control, 'width', "".concat(width, "px")); - setStyle($control, 'backgroundPosition', "-".concat(xIndex * width, "px -").concat(yIndex * height, "px")); - - if (posWidth <= width / 2) { - setStyle($control, 'left', 0); - } else if (posWidth > $progress.clientWidth - width / 2) { - setStyle($control, 'left', "".concat($progress.clientWidth - width, "px")); - } else { - setStyle($control, 'left', "".concat(posWidth - width / 2, "px")); - } - } - - proxy($progress, 'mousemove', function (event) { - if (!loading) { - loading = true; - loadImg(thumbnails.url).then(function () { - isLoad = true; - }); - } - - if (isLoad) { - setStyle($control, 'display', 'block'); - showThumbnails(event); - } - }); - proxy($progress, 'mouseout', function () { - setStyle($control, 'display', 'none'); - }); - } - }); - }; - } - - function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function screenshot(option) { - return function (art) { - return _objectSpread$a({}, option, { - tooltip: art.i18n.get('Screenshot'), - mounted: function mounted($control) { - var proxy = art.events.proxy, - icons = art.icons, - player = art.player; - append($control, icons.screenshot); - proxy($control, 'click', function () { - player.screenshot(); - }); - } - }); - }; - } - - function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function quality(option) { - return function (art) { - return _objectSpread$b({}, option, { - mounted: function mounted($control) { - var quality = art.option.quality, - _art$events = art.events, - proxy = _art$events.proxy, - hover = _art$events.hover, - player = art.player; - var playIndex = -1; - var defaultQuality = quality.find(function (item) { - return item.default; - }) || quality[0]; - playIndex = quality.indexOf(defaultQuality); - var $qualityName = append($control, "
".concat(defaultQuality.name, "
")); - var qualityList = quality.map(function (item, index) { - return "
").concat(item.name, "
"); - }).join(''); - var $qualitys = append($control, "
".concat(qualityList, "
")); - hover($control, function () { - $qualitys.style.left = "-".concat(getStyle($qualitys, 'width') / 2 - $control.clientWidth / 2, "px"); - }); - proxy($qualitys, 'click', function (event) { - var index = Number(event.target.dataset.index); - var _quality$index = quality[index], - url = _quality$index.url, - name = _quality$index.name; - - if (url && name && playIndex !== index) { - player.switchQuality(url, name); - $qualityName.innerText = name; - playIndex = index; - } - }); - } - }); - }; - } - - var Control = - /*#__PURE__*/ - function (_Component) { - inherits(Control, _Component); - - function Control(art) { - var _this; - - classCallCheck(this, Control); - - _this = possibleConstructorReturn(this, getPrototypeOf(Control).call(this, art)); - _this.name = 'control'; - var option = art.option; - art.on('ready', function () { - _this.add(progress({ - name: 'progress', - disable: option.isLive, - position: 'top', - index: 10 - })); - - _this.add(thumbnails({ - name: 'thumbnails', - disable: !option.thumbnails.url || option.isLive, - position: 'top', - index: 20 - })); - - _this.add(playAndPause({ - name: 'playAndPause', - disable: false, - position: 'left', - index: 10 - })); - - _this.add(volume({ - name: 'volume', - disable: false, - position: 'left', - index: 20 - })); - - _this.add(time({ - name: 'time', - disable: option.isLive, - position: 'left', - index: 30 - })); - - _this.add(quality({ - name: 'quality', - disable: option.quality.length === 0, - position: 'right', - index: 10 - })); - - _this.add(screenshot({ - name: 'screenshot', - disable: !option.screenshot, - position: 'right', - index: 20 - })); - - _this.add(subtitle({ - name: 'subtitle', - disable: !option.subtitle.url, - position: 'right', - index: 30 - })); - - _this.add(setting({ - name: 'setting', - disable: !option.setting, - position: 'right', - index: 40 - })); - - _this.add(pip({ - name: 'pip', - disable: !option.pip, - position: 'right', - index: 50 - })); - - _this.add(fullscreenWeb({ - name: 'fullscreenWeb', - disable: !option.fullscreenWeb, - position: 'right', - index: 60 - })); - - _this.add(fullscreen({ - name: 'fullscreen', - disable: !option.fullscreen, - position: 'right', - index: 70 - })); - - option.controls.forEach(function (item) { - _this.add(item); - }); - }); - return _this; - } - - createClass(Control, [{ - key: "add", - value: function add(getOption, callback) { - var _this2 = this; - - var option = typeof getOption === 'function' ? getOption(this.art) : getOption; - errorHandle(['top', 'left', 'right'].includes(option.position), "Control option.position must one of 'top', 'left', 'right'"); - var _this$art$template = this.art.template, - $progress = _this$art$template.$progress, - $controlsLeft = _this$art$template.$controlsLeft, - $controlsRight = _this$art$template.$controlsRight; - - switch (option.position) { - case 'top': - this.$parent = $progress; - break; - - case 'left': - this.$parent = $controlsLeft; - break; - - case 'right': - this.$parent = $controlsRight; - break; - } - - get(getPrototypeOf(Control.prototype), "add", this).call(this, option, function ($ref) { - if (!option.disable && option.position !== 'top' && !($ref.firstElementChild && $ref.firstElementChild.tagName === 'I')) { - addClass($ref, 'art-control-onlyText'); - } - - if (callback) { - callback($ref, _this2, _this2.art); - } - }); - } - }]); - - return Control; - }(Component); - - function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playbackRate(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$c({}, option, { - html: "".concat(i18n.get('Play speed'), ":\n 0.5\n 0.75\n ").concat(i18n.get('Normal'), "\n 1.25\n 1.5\n 2.0\n "), - click: function click(contextmenu, event) { - var rate = event.target.dataset.rate; - - if (rate) { - player.playbackRate = Number(rate); - contextmenu.show = false; - } - }, - mounted: function mounted($menu) { - art.on('playbackRateChange', function (rate) { - var $current = queryAll('span', $menu).find(function (item) { - return Number(item.dataset.rate) === rate; - }); - - if ($current) { - inverseClass($current, 'art-current'); - } - }); - } - }); - }; - } - - function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function aspectRatio(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$d({}, option, { - html: "".concat(i18n.get('Aspect ratio'), ":\n ").concat(i18n.get('Default'), "\n 4:3\n 16:9\n "), - click: function click(contextmenu, event) { - var ratio = event.target.dataset.ratio; - - if (ratio) { - player.aspectRatio = ratio; - contextmenu.show = false; - } - }, - mounted: function mounted($menu) { - art.on('aspectRatioChange', function (ratio) { - var $current = queryAll('span', $menu).find(function (item) { - return item.dataset.ratio === ratio; - }); - - if ($current) { - inverseClass($current, 'art-current'); - } - }); - } - }); - }; - } - - function ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function info(option) { - return function (art) { - return _objectSpread$e({}, option, { - html: art.i18n.get('Video info'), - click: function click(contextmenu) { - art.info.show = true; - contextmenu.show = false; - } - }); - }; - } - - function ownKeys$f(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function version(option) { - return _objectSpread$f({}, option, { - html: 'ArtPlayer 3.3.3' - }); - } - - function ownKeys$g(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$g(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function close(option) { - return function (art) { - return _objectSpread$g({}, option, { - html: art.i18n.get('Close'), - click: function click(contextmenu) { - contextmenu.show = false; - } - }); - }; - } - - var Contextmenu = - /*#__PURE__*/ - function (_Component) { - inherits(Contextmenu, _Component); - - function Contextmenu(art) { - var _this; - - classCallCheck(this, Contextmenu); - - _this = possibleConstructorReturn(this, getPrototypeOf(Contextmenu).call(this, art)); - _this.name = 'contextmenu'; - var option = art.option, - _art$template = art.template, - $player = _art$template.$player, - $contextmenu = _art$template.$contextmenu, - proxy = art.events.proxy; - _this.$parent = $contextmenu; - art.on('ready', function () { - _this.add(playbackRate({ - disable: !option.playbackRate, - name: 'playbackRate', - index: 10 - })); - - _this.add(aspectRatio({ - disable: !option.aspectRatio, - name: 'aspectRatio', - index: 20 - })); - - _this.add(info({ - disable: false, - name: 'info', - index: 30 - })); - - _this.add(version({ - disable: false, - name: 'version', - index: 40 - })); - - _this.add(close({ - disable: false, - name: 'close', - index: 50 - })); - - option.contextmenu.forEach(function (item) { - _this.add(item); - }); - proxy($player, 'contextmenu', function (event) { - event.preventDefault(); - _this.show = true; - var mouseX = event.clientX; - var mouseY = event.clientY; - - var _$player$getBoundingC = $player.getBoundingClientRect(), - cHeight = _$player$getBoundingC.height, - cWidth = _$player$getBoundingC.width, - cLeft = _$player$getBoundingC.left, - cTop = _$player$getBoundingC.top; - - var _$contextmenu$getBoun = $contextmenu.getBoundingClientRect(), - mHeight = _$contextmenu$getBoun.height, - mWidth = _$contextmenu$getBoun.width; - - var menuLeft = mouseX - cLeft; - var menuTop = mouseY - cTop; - - if (mouseX + mWidth > cLeft + cWidth) { - menuLeft = cWidth - mWidth; - } - - if (mouseY + mHeight > cTop + cHeight) { - menuTop = cHeight - mHeight; - } - - setStyles($contextmenu, { - top: "".concat(menuTop, "px"), - left: "".concat(menuLeft, "px") - }); - }); - proxy($player, 'click', function (event) { - if (!event.composedPath().includes($contextmenu)) { - _this.show = false; - } - }); - art.on('blur', function () { - _this.show = false; - }); - }); - return _this; - } - - return Contextmenu; - }(Component); - - var Info = - /*#__PURE__*/ - function (_Component) { - inherits(Info, _Component); - - function Info(art) { - var _this; - - classCallCheck(this, Info); - - _this = possibleConstructorReturn(this, getPrototypeOf(Info).call(this, art)); - _this.name = 'info'; - var _art$template = art.template, - $infoPanel = _art$template.$infoPanel, - $infoClose = _art$template.$infoClose, - $video = _art$template.$video, - proxy = art.events.proxy; - proxy($infoClose, 'click', function () { - _this.show = false; - }); - var timer = null; - var types = queryAll('[data-video]', $infoPanel); - art.on('destroy', function () { - clearTimeout(timer); - }); - - function loop() { - types.forEach(function (item) { - var value = $video[item.dataset.video]; - item.innerText = typeof value === 'number' ? value.toFixed(2) : value; - }); - timer = setTimeout(function () { - loop(); - }, 1000); - } - - art.on('info:toggle', function (value) { - clearTimeout(timer); - - if (value) { - loop(); - } - }); - return _this; - } - - return Info; - }(Component); - - var Subtitle = - /*#__PURE__*/ - function (_Component) { - inherits(Subtitle, _Component); - - function Subtitle(art) { - var _this; - - classCallCheck(this, Subtitle); - - _this = possibleConstructorReturn(this, getPrototypeOf(Subtitle).call(this, art)); - _this.name = 'subtitle'; - var proxy = art.events.proxy, - subtitle = art.option.subtitle, - $subtitle = art.template.$subtitle; - setStyles($subtitle, subtitle.style); - proxy(_this.textTrack, 'cuechange', _this.update.bind(assertThisInitialized(_this))); - - if (subtitle.url) { - _this.init(subtitle.url); - } - - return _this; - } - - createClass(Subtitle, [{ - key: "update", - value: function update() { - var $subtitle = this.art.template.$subtitle; - $subtitle.innerHTML = ''; - - if (this.activeCue) { - $subtitle.innerHTML = this.activeCue.text.split(/\r?\n/).map(function (item) { - return "

".concat(item, "

"); - }).join(''); - this.art.emit('subtitle:update', this.activeCue.text); - } - } - }, { - key: "switch", - value: function _switch(url, name, ext) { - var _this2 = this; - - var _this$art = this.art, - i18n = _this$art.i18n, - notice = _this$art.notice; - return this.init(url, ext).then(function (subUrl) { - if (name) { - notice.show = "".concat(i18n.get('Switch subtitle'), ": ").concat(name); - } - - _this2.art.emit('subtitle:switch', subUrl); - - return subUrl; - }); - } - }, { - key: "init", - value: function init(url, ext) { - var _this3 = this; - - var _this$art2 = this.art, - notice = _this$art2.notice, - _this$art2$template = _this$art2.template, - $subtitle = _this$art2$template.$subtitle, - $track = _this$art2$template.$track; - return fetch(url).then(function (response) { - return response.text(); - }).then(function (text) { - _this3.art.emit('subtitle:load', url); - - switch (ext || getExt(url)) { - case 'srt': - return vttToBlob(srtToVtt(text)); - - case 'ass': - return vttToBlob(assToVtt(text)); - - case 'vtt': - return vttToBlob(text); - - default: - return url; - } - }).then(function (subUrl) { - $subtitle.innerHTML = ''; - if (_this3.url === subUrl) return subUrl; - URL.revokeObjectURL(_this3.url); - $track.src = subUrl; - return subUrl; - }).catch(function (err) { - notice.show = err; - - _this3.art.emit('subtitle:err', err); - - throw err; - }); - } - }, { - key: "url", - get: function get() { - return this.art.template.$track.src; - } - }, { - key: "textTrack", - get: function get() { - return this.art.template.$video.textTracks[0]; - } - }, { - key: "activeCue", - get: function get() { - return this.textTrack.activeCues[0]; - } - }]); - - return Subtitle; - }(Component); - - function clickInit(art, events) { - var $player = art.template.$player; - events.proxy(document, ['click', 'contextmenu'], function (event) { - if (event.composedPath().indexOf($player) > -1) { - art.isFocus = true; - art.emit('focus'); - } else { - art.isFocus = false; - art.emit('blur'); - } - }); - } - - function hoverInit(art, events) { - var $player = art.template.$player; - events.hover($player, function () { - addClass($player, 'art-hover'); - art.emit('hoverenter'); - }, function () { - removeClass($player, 'art-hover'); - art.emit('hoverleave'); - }); - } - - function mousemoveInitInit(art, events) { - var _art$template = art.template, - $player = _art$template.$player, - $video = _art$template.$video, - player = art.player, - controls = art.controls; - var autoHide = debounce(function () { - addClass($player, 'art-hide-cursor'); - removeClass($player, 'art-hover'); - controls.show = false; - }, 3000); - art.on('hoverleave', function () { - if (player.playing) { - autoHide(); - } - }); - events.proxy($player, 'mousemove', function (event) { - autoHide.clearTimeout(); - removeClass($player, 'art-hide-cursor'); - controls.show = true; - - if (!player.pip && player.playing && event.target === $video) { - autoHide(); - } - - art.emit('mousemove'); - }); - } - - function resizeInit(art, events) { - var option = art.option, - player = art.player, - $player = art.template.$player; - var object = document.createElement('object'); - object.setAttribute('aria-hidden', 'true'); - object.setAttribute('tabindex', -1); - object.type = 'text/html'; - object.data = 'about:blank'; - var playerWidth = player.width; - var playerHeight = player.height; - var resizeFn = throttle(function () { - if (player.width !== playerWidth || player.height !== playerHeight) { - playerWidth = player.width; - playerHeight = player.height; - - if (option.autoSize) { - if (!player.fullscreen && !player.fullscreenWeb && !player.pip) { - player.autoSize = true; - } else { - player.autoSize = false; - } - } - - player.aspectRatioReset = true; - art.emit('resize', { - width: player.width, - height: player.height - }); - } - }, 500); - events.proxy(object, 'load', function () { - events.proxy(object.contentDocument.defaultView, 'resize', resizeFn); - }); - $player.appendChild(object); - } - - var Events = - /*#__PURE__*/ - function () { - function Events(art) { - var _this = this; - - classCallCheck(this, Events); - - this.destroyEvents = []; - this.proxy = this.proxy.bind(this); - this.hover = this.hover.bind(this); - this.loadImg = this.loadImg.bind(this); - - if (art.whitelist.state) { - art.on('ready', function () { - clickInit(art, _this); - hoverInit(art, _this); - mousemoveInitInit(art, _this); - resizeInit(art, _this); - }); - } - } - - createClass(Events, [{ - key: "proxy", - value: function proxy(target, name, callback) { - var _this2 = this; - - var option = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; - - if (Array.isArray(name)) { - return name.map(function (item) { - return _this2.proxy(target, item, callback, option); - }); - } - - target.addEventListener(name, callback, option); - - var destroy = function destroy() { - return target.removeEventListener(name, callback, option); - }; - - this.destroyEvents.push(destroy); - return destroy; - } - }, { - key: "hover", - value: function hover(target, mouseenter, mouseleave) { - if (mouseenter) { - this.proxy(target, 'mouseenter', mouseenter); - } - - if (mouseleave) { - this.proxy(target, 'mouseleave', mouseleave); - } - } - }, { - key: "loadImg", - value: function loadImg(img) { - var _this3 = this; - - return new Promise(function (resolve, reject) { - var image; - - if (img instanceof HTMLImageElement) { - image = img; - } else if (typeof img === 'string') { - image = new Image(); - image.src = img; - } else { - return reject(img); - } - - if (image.complete) { - return resolve(image); - } - - _this3.proxy(image, 'load', function () { - return resolve(image); - }); - - _this3.proxy(image, 'error', function () { - return reject(image); - }); - - return img; - }); - } - }, { - key: "destroy", - value: function destroy() { - this.destroyEvents.forEach(function (event) { - return event(); - }); - } - }]); - - return Events; - }(); - - var Hotkey = - /*#__PURE__*/ - function () { - function Hotkey(art) { - var _this = this; - - classCallCheck(this, Hotkey); - - this.keys = {}; - var option = art.option, - player = art.player, - proxy = art.events.proxy; - - if (option.hotkey) { - art.on('ready', function () { - _this.add(27, function () { - if (player.fullscreenWeb) { - player.fullscreenWeb = false; - } - }); - - _this.add(32, function () { - player.toggle = true; - }); - - _this.add(37, function () { - player.seek = player.currentTime - 5; - }); - - _this.add(38, function () { - player.volume += 0.1; - }); - - _this.add(39, function () { - player.seek = player.currentTime + 5; - }); - - _this.add(40, function () { - player.volume -= 0.1; - }); - - proxy(window, 'keydown', function (event) { - if (art.isFocus) { - var tag = document.activeElement.tagName.toUpperCase(); - var editable = document.activeElement.getAttribute('contenteditable'); - - if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') { - var events = _this.keys[event.keyCode]; - - if (events) { - event.preventDefault(); - events.forEach(function (fn) { - return fn(); - }); - art.emit('hotkey', event); - } - } - } - }); - }); - } - } - - createClass(Hotkey, [{ - key: "add", - value: function add(key, event) { - if (this.keys[key]) { - this.keys[key].push(event); - } else { - this.keys[key] = [event]; - } - } - }]); - - return Hotkey; - }(); - - var Layer = - /*#__PURE__*/ - function (_Component) { - inherits(Layer, _Component); - - function Layer(art) { - var _this; - - classCallCheck(this, Layer); - - _this = possibleConstructorReturn(this, getPrototypeOf(Layer).call(this, art)); - _this.name = 'layer'; - _this.$parent = art.template.$layer; - art.on('ready', function () { - art.option.layers.forEach(function (item) { - _this.add(item); - }); - }); - return _this; - } - - return Layer; - }(Component); - - var Loading = - /*#__PURE__*/ - function (_Component) { - inherits(Loading, _Component); - - function Loading(art) { - var _this; - - classCallCheck(this, Loading); - - _this = possibleConstructorReturn(this, getPrototypeOf(Loading).call(this, art)); - _this.name = 'loading'; - append(art.template.$loading, art.icons.loading); - return _this; - } - - return Loading; - }(Component); - - var Notice = - /*#__PURE__*/ - function () { - function Notice(art) { - classCallCheck(this, Notice); - - this.art = art; - this.time = 2000; - this.timer = null; - } - - createClass(Notice, [{ - key: "show", - set: function set(msg) { - var _this$art$template = this.art.template, - $player = _this$art$template.$player, - $noticeInner = _this$art$template.$noticeInner; - $noticeInner.innerText = msg instanceof Error ? msg.message.trim() : msg; - addClass($player, 'art-notice-show'); - clearTimeout(this.timer); - this.timer = setTimeout(function () { - $noticeInner.innerText = ''; - removeClass($player, 'art-notice-show'); - }, this.time); - } - }]); - - return Notice; - }(); - - var Mask = - /*#__PURE__*/ - function (_Component) { - inherits(Mask, _Component); - - function Mask(art) { - var _this; - - classCallCheck(this, Mask); - - _this = possibleConstructorReturn(this, getPrototypeOf(Mask).call(this, art)); - _this.name = 'mask'; - append(art.template.$state, art.icons.state); - return _this; - } - - return Mask; - }(Component); - - var loading = "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n"; - - var state = "\n \n"; - - var play = "\n \n"; - - var pause = "\n \n"; - - var volume$1 = "\n \n \n"; - - var volumeClose = "\n \n \n"; - - var subtitle$1 = "\n \n \n"; - - var screenshot$1 = "\n\t\n\n"; - - var setting$1 = "\n \n \n"; - - var fullscreen$1 = "\n\t\n\t\n\t\n\t\n"; - - var fullscreenWeb$1 = "\n\t\n"; - - var pip$1 = "\n \n"; - - function ownKeys$h(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$h(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - var Icons = function Icons(art) { - var _this = this; - - classCallCheck(this, Icons); - - var icons = _objectSpread$h({ - loading: loading, - state: state, - play: play, - pause: pause, - volume: volume$1, - volumeClose: volumeClose, - subtitle: subtitle$1, - screenshot: screenshot$1, - setting: setting$1, - fullscreen: fullscreen$1, - fullscreenWeb: fullscreenWeb$1, - pip: pip$1 - }, art.option.icons); - - Object.keys(icons).forEach(function (key) { - var icon = document.createElement('i'); - icon.classList.add('art-icon'); - icon.classList.add("art-icon-".concat(key)); - append(icon, icons[key]); - _this[key] = icon; - }); - }; - - function ownKeys$i(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$i(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function flip(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$i({}, option, { - html: "\n
".concat(i18n.get('Flip'), "
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "), - click: function click(setting, event) { - var value = event.target.dataset.value; - - if (value) { - player.flip = value; - } - }, - mounted: function mounted($setting) { - art.on('flipChange', function (flip) { - var $current = queryAll('button', $setting).find(function (item) { - return item.dataset.value === flip; - }); - - if ($current) { - inverseClass($current.parentElement, 'current'); - } - }); - } - }); - }; - } - - function ownKeys$j(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$j(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$j(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$j(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function aspectRatio$1(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$j({}, option, { - html: "\n
".concat(i18n.get('Aspect ratio'), "
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "), - click: function click(setting, event) { - var value = event.target.dataset.value; - - if (value) { - player.aspectRatio = value; - } - }, - mounted: function mounted($setting) { - art.on('aspectRatioChange', function (ratio) { - var $current = queryAll('button', $setting).find(function (item) { - return item.dataset.value === ratio; - }); - - if ($current) { - inverseClass($current.parentElement, 'current'); - } - }); - } - }); - }; - } - - function ownKeys$k(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$k(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$k(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$k(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function playbackRate$1(option) { - return function (art) { - var i18n = art.i18n, - player = art.player, - proxy = art.events.proxy; - return _objectSpread$k({}, option, { - html: "\n
\n ".concat(i18n.get('Play speed'), ": 1.0x\n
\n
\n \n
\n "), - mounted: function mounted($setting) { - var $range = query('.art-setting-range input', $setting); - var $value = query('.art-subtitle-value', $setting); - proxy($range, 'change', function () { - var value = $range.value; - $value.innerText = value; - player.playbackRate = Number(value); - }); - art.on('playbackRateChange', function (rate) { - if ($range.value !== rate) { - $range.value = rate; - $value.innerText = rate; - } - }); - } - }); - }; - } - - var Setting = - /*#__PURE__*/ - function (_Component) { - inherits(Setting, _Component); - - function Setting(art) { - var _this; - - classCallCheck(this, Setting); - - _this = possibleConstructorReturn(this, getPrototypeOf(Setting).call(this, art)); - _this.name = 'setting'; - var option = art.option, - _art$template = art.template, - $setting = _art$template.$setting, - $settingBody = _art$template.$settingBody, - proxy = art.events.proxy; - _this.$parent = $settingBody; - - if (option.setting) { - art.on('ready', function () { - proxy($setting, 'click', function (e) { - if (e.target === $setting) { - _this.show = false; - } - }); - - _this.add(flip({ - disable: !option.flip, - name: 'flip' - })); - - _this.add(aspectRatio$1({ - disable: !option.aspectRatio, - name: 'aspectRatio' - })); - - _this.add(playbackRate$1({ - disable: !option.playbackRate, - name: 'playbackRate' - })); - }); - art.on('blur', function () { - _this.show = false; - }); - } - - return _this; - } - - return Setting; - }(Component); - - var Storage = - /*#__PURE__*/ - function () { - function Storage() { - classCallCheck(this, Storage); - - this.name = 'artplayer_settings'; - } - - createClass(Storage, [{ - key: "get", - value: function get(key) { - var storage = JSON.parse(localStorage.getItem(this.name)) || {}; - return key ? storage[key] : {}; - } - }, { - key: "set", - value: function set(key, value) { - var storage = Object.assign({}, this.get(), defineProperty({}, key, value)); - localStorage.setItem(this.name, JSON.stringify(storage)); - } - }, { - key: "del", - value: function del(key) { - var storage = this.get(); - delete storage[key]; - localStorage.setItem(this.name, JSON.stringify(storage)); - } - }, { - key: "clean", - value: function clean() { - localStorage.removeItem(this.name); - } - }]); - - return Storage; - }(); - - function settingMix(art) { - var i18n = art.i18n, - subtitle = art.subtitle, - proxy = art.events.proxy; - return { - title: 'Subtitle', - name: 'subtitleOffset', - index: 20, - html: "\n
\n ".concat(i18n.get('Subtitle offset time'), ": 0s\n
\n
\n \n
\n "), - mounted: function mounted($setting) { - var $range = query('.art-setting-range input', $setting); - var $value = query('.art-subtitle-value', $setting); - proxy($range, 'change', function () { - var value = $range.value; - $value.innerText = value; - art.plugins.subtitleOffset.offset(Number(value)); - }); - art.on('subtitle:switch', function () { - $range.value = 0; - $value.innerText = 0; - }); - art.on('subtitleOffset', function (value) { - subtitle.update(); - - if ($range.value !== value) { - $range.value = value; - $value.innerText = value; - } - }); - } - }; - } - - function subtitleOffset(art) { - var clamp = art.constructor.utils.clamp; - var setting = art.setting, - notice = art.notice, - template = art.template, - i18n = art.i18n, - player = art.player; - setting.add(settingMix); - var cuesCache = []; - art.on('subtitle:switch', function () { - cuesCache = []; - }); - return { - name: 'subtitleOffset', - offset: function offset(value) { - if (template.$track && template.$track.track) { - var cues = Array.from(template.$track.track.cues); - var time = clamp(value, -5, 5); - cues.forEach(function (cue, index) { - if (!cuesCache[index]) { - cuesCache[index] = { - startTime: cue.startTime, - endTime: cue.endTime - }; - } - - cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration); - cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration); - }); - notice.show = "".concat(i18n.get('Subtitle offset time'), ": ").concat(value, "s"); - art.emit('subtitleOffset', value); - } else { - notice.show = "".concat(i18n.get('No subtitles found')); - art.emit('subtitleOffset', 0); - } - } - }; - } - - function localVideo(art) { - var proxy = art.events.proxy, - template = art.template, - player = art.player, - option = art.option, - setting = art.setting, - i18n = art.i18n; - - function loadVideo(file) { - if (file) { - var canPlayType = template.$video.canPlayType(file.type); - - if (canPlayType === 'maybe' || canPlayType === 'probably') { - var url = URL.createObjectURL(file); - option.title = file.name; - player.switchUrl(url, file.name); - art.emit('localVideo', file); - } else { - errorHandle(false, 'Playback of this file format is not supported'); - } - } - } - - proxy(template.$player, 'dragover', function (e) { - e.preventDefault(); - }); - proxy(template.$player, 'drop', function (e) { - e.preventDefault(); - var file = e.dataTransfer.files[0]; - loadVideo(file); - }); - - function attach(target) { - var $input = append(target, ''); - setStyle(target, 'position', 'relative'); - setStyles($input, { - position: 'absolute', - width: '100%', - height: '100%', - left: '0', - top: '0', - opacity: '0' - }); - proxy($input, 'change', function () { - var file = $input.files[0]; - loadVideo(file); - }); - } - - art.on('ready', function () { - setting.add({ - title: 'Local Video', - name: 'localVideo', - index: 30, - html: "\n
\n ".concat(i18n.get('Local Video'), "\n
\n
\n
").concat(i18n.get('Open'), "
\n
\n
\n "), - mounted: function mounted($setting) { - var $btn = query('.art-upload-btn', $setting); - var $value = query('.art-upload-value', $setting); - art.on('localVideo', function (file) { - $value.textContent = file.name; - $value.title = file.name; - }); - attach($btn); - } - }); - }); - return { - name: 'localVideo', - attach: attach - }; - } - - function localSubtitle(art) { - var proxy = art.events.proxy, - subtitle = art.subtitle, - setting = art.setting, - i18n = art.i18n; - - function loadSubtitle(file) { - if (file) { - var type = getExt(file.name); - - if (['ass', 'vtt', 'srt'].includes(type)) { - var url = URL.createObjectURL(file); - subtitle.switch(url, file.name, type); - art.emit('localSubtitle', file); - } else { - errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format'); - } - } - } - - function attach(target) { - var $input = append(target, ''); - setStyle(target, 'position', 'relative'); - setStyles($input, { - position: 'absolute', - width: '100%', - height: '100%', - left: '0', - top: '0', - opacity: '0' - }); - proxy($input, 'change', function () { - var file = $input.files[0]; - loadSubtitle(file); - }); - } - - art.on('ready', function () { - setting.add({ - title: 'Local Subtitle', - name: 'localSubtitle', - index: 40, - html: "\n
\n ".concat(i18n.get('Local Subtitle'), "\n
\n
\n
").concat(i18n.get('Open'), "
\n
\n
\n "), - mounted: function mounted($setting) { - var $btn = query('.art-upload-btn', $setting); - var $value = query('.art-upload-value', $setting); - art.on('localSubtitle', function (file) { - $value.textContent = file.name; - $value.title = file.name; - }); - attach($btn); - } - }); - }); - return { - name: 'localSubtitle', - attach: attach - }; - } - - function miniProgressBar(art) { - var layers = art.layers, - player = art.player, - theme = art.option.theme; - layers.add({ - name: 'miniProgressBar', - style: { - display: 'none', - position: 'absolute', - left: 0, - right: 0, - bottom: 0, - height: '2px', - background: theme - }, - mounted: function mounted($progressBar) { - art.on('control:toggle', function (value) { - $progressBar.style.display = value ? 'none' : 'block'; - }); - art.on('destroy', function () { - $progressBar.style.display = 'none'; - }); - art.on('video:timeupdate', function () { - $progressBar.style.width = "".concat(player.played * 100, "%"); - }); - } - }); - return { - name: 'miniProgressBar' - }; - } - - function networkMonitor(art) { - var sampleTime = 10000; - var waitTime = 0; - var playTime = 0; - var lastTime = 0; - var timer = null; - - function resetTime() { - waitTime = 0; - playTime = 0; - lastTime = 0; - cancelAnimationFrame(timer); - timer = null; - } - - function startTime() { - if (timer) return; - - (function loop() { - if (art.isDestroy) return; - timer = requestAnimationFrame(function () { - var nowTime = Date.now(); - - if (lastTime) { - var diffTime = nowTime - lastTime; - playTime += diffTime; - - if (!art.player.playing) { - waitTime += diffTime; - } - } - - lastTime = nowTime; - art.emit('networkMonitor', waitTime / playTime); - - if (playTime >= sampleTime) { - waitTime = 0; - playTime = 0; - } - - loop(); - }); - })(); - } - - art.on('play', startTime); - art.on('pause', resetTime); - return { - name: 'networkMonitor', - reset: resetTime, - start: startTime, - sample: function sample(time) { - sampleTime = time; - } - }; - } - - var Plugins = - /*#__PURE__*/ - function () { - function Plugins(art) { - var _this = this; - - classCallCheck(this, Plugins); - - this.art = art; - this.id = 0; - var option = art.option; - - if (option.subtitle.url && option.subtitleOffset) { - this.add(subtitleOffset); - } - - if (!option.isLive && option.miniProgressBar) { - this.add(miniProgressBar); - } - - if (option.localVideo) { - this.add(localVideo); - } - - if (option.localSubtitle) { - this.add(localSubtitle); - } - - if (option.networkMonitor) { - this.add(networkMonitor); - } - - art.option.plugins.forEach(function (plugin) { - _this.add(plugin); - }); - } - - createClass(Plugins, [{ - key: "add", - value: function add(plugin) { - this.id += 1; - var result = plugin.call(this, this.art); - var pluginName = ''; - - if (result && result.name) { - pluginName = result.name; - } else if (plugin.name) { - pluginName = plugin.name; - } else { - pluginName = "plugin".concat(this.id); - } - - errorHandle(!has(this, pluginName), "Cannot add a plugin that already has the same name: ".concat(pluginName)); - Object.defineProperty(this, pluginName, { - value: result - }); - this.art.emit('plugin:add', plugin); - return this; - } - }]); - - return Plugins; - }(); - - var Mobile = function Mobile(art) { - classCallCheck(this, Mobile); - - var option = art.option, - proxy = art.events.proxy, - $video = art.template.$video; - config.events.forEach(function (eventName) { - proxy($video, eventName, function (event) { - art.emit("video:".concat(event.type), event); - }); - }); - Object.keys(option.moreVideoAttr).forEach(function (key) { - $video[key] = option.moreVideoAttr[key]; - }); - - if (option.muted) { - $video.muted = option.muted; - } - - if (option.volume) { - $video.volume = clamp(option.volume, 0, 1); - } - - if (option.poster) { - $video.poster = option.poster; - } - - if (option.autoplay) { - $video.autoplay = option.autoplay; - } - - $video.controls = true; - var typeName = option.type || getExt(option.url); - var typeCallback = option.customType[typeName]; - - if (typeName && typeCallback) { - typeCallback($video, option.url, art); - art.emit('customType', typeName); - } else { - $video.src = option.url; - art.emit('urlChange', $video.src); - } - }; - - var id = 0; - - var Artplayer = - /*#__PURE__*/ - function (_Emitter) { - inherits(Artplayer, _Emitter); - - function Artplayer(option) { - var _this; - - classCallCheck(this, Artplayer); - - _this = possibleConstructorReturn(this, getPrototypeOf(Artplayer).call(this)); - _this.option = optionValidator(mergeDeep(Artplayer.option, option), scheme); - _this.isFocus = false; - _this.isDestroy = false; - _this.whitelist = new Whitelist(assertThisInitialized(_this)); - _this.template = new Template(assertThisInitialized(_this)); - _this.events = new Events(assertThisInitialized(_this)); - - if (_this.whitelist.state) { - _this.storage = new Storage(assertThisInitialized(_this)); - _this.icons = new Icons(assertThisInitialized(_this)); - _this.i18n = new I18n(assertThisInitialized(_this)); - _this.notice = new Notice(assertThisInitialized(_this)); - _this.player = new Player(assertThisInitialized(_this)); - _this.layers = new Layer(assertThisInitialized(_this)); - _this.controls = new Control(assertThisInitialized(_this)); - _this.contextmenu = new Contextmenu(assertThisInitialized(_this)); - _this.subtitle = new Subtitle(assertThisInitialized(_this)); - _this.info = new Info(assertThisInitialized(_this)); - _this.loading = new Loading(assertThisInitialized(_this)); - _this.hotkey = new Hotkey(assertThisInitialized(_this)); - _this.mask = new Mask(assertThisInitialized(_this)); - _this.setting = new Setting(assertThisInitialized(_this)); - _this.plugins = new Plugins(assertThisInitialized(_this)); - } else { - _this.mobile = new Mobile(assertThisInitialized(_this)); - } - - id += 1; - _this.id = id; - Artplayer.instances.push(assertThisInitialized(_this)); - return _this; - } - - createClass(Artplayer, [{ - key: "destroy", - value: function destroy() { - var removeHtml = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - this.events.destroy(); - this.template.destroy(removeHtml); - Artplayer.instances.splice(Artplayer.instances.indexOf(this), 1); - this.isDestroy = true; - this.emit('destroy'); - } - }], [{ - key: "version", - get: function get() { - return '3.3.3'; - } - }, { - key: "env", - get: function get() { - return '"development"'; - } - }, { - key: "config", - get: function get() { - return config; - } - }, { - key: "utils", - get: function get() { - return utils; - } - }, { - key: "scheme", - get: function get() { - return scheme; - } - }, { - key: "Emitter", - get: function get() { - return Emitter; - } - }, { - key: "validator", - get: function get() { - return optionValidator; - } - }, { - key: "kindOf", - get: function get() { - return optionValidator.kindOf; - } - }, { - key: "option", - get: function get() { - return { - container: '#artplayer', - url: '', - poster: '', - title: '', - theme: '#f00', - volume: 0.7, - isLive: false, - muted: false, - autoplay: false, - autoSize: false, - loop: false, - flip: false, - playbackRate: false, - aspectRatio: false, - screenshot: false, - setting: false, - hotkey: true, - pip: false, - mutex: true, - backdrop: true, - fullscreen: false, - fullscreenWeb: false, - subtitleOffset: false, - miniProgressBar: false, - localVideo: false, - localSubtitle: false, - autoPip: false, - networkMonitor: false, - layers: [], - contextmenu: [], - quality: [], - controls: [], - highlight: [], - plugins: [], - whitelist: [], - thumbnails: { - url: '', - number: 60, - width: 160, - height: 90, - column: 10 - }, - subtitle: { - url: '', - style: {} - }, - moreVideoAttr: { - controls: false, - preload: 'metadata' - }, - icons: {}, - customType: {}, - lang: navigator.language.toLowerCase() - }; - } - }]); - - return Artplayer; - }(Emitter); - - Object.defineProperty(Artplayer, 'instances', { - value: [] - }); // eslint-disable-next-line no-console - - console.log('%c ArtPlayer %c 3.3.3 %c https://artplayer.org', 'color: #fff; background: #5f5f5f', 'color: #fff; background: #4bc729', ''); - - function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$l(Object(source), true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - var index = { - data: function data() { - return { - instance: null - }; - }, - props: { - option: { - type: Object, - required: true - }, - getInstance: Function - }, - mounted: function mounted() { - this.instance = new Artplayer(_objectSpread$l({}, this.option, { - container: this.$refs.artRef - })); - this.$emit('getInstance', this.instance); - }, - beforeDestroy: function beforeDestroy() { - if (this.instance && this.instance.destroy) { - this.instance.destroy(); - } - }, - render: function render(h) { - return h('div', { - ref: 'artRef' - }); - } - }; - - return index; - -}))); -//# sourceMappingURL=artplayer-vue.js.map diff --git a/docs/uncompiled/artplayer-vue.js.map b/docs/uncompiled/artplayer-vue.js.map deleted file mode 100644 index ecfbf0410..000000000 --- a/docs/uncompiled/artplayer-vue.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"artplayer-vue.js","sources":["../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/typeof.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../node_modules/@babel/runtime/helpers/inherits.js","../../node_modules/style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/@babel/runtime/helpers/isNativeFunction.js","../../node_modules/@babel/runtime/helpers/construct.js","../../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArray.js","../../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../node_modules/@babel/runtime/helpers/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/@babel/runtime/helpers/superPropBase.js","../../node_modules/@babel/runtime/helpers/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js","../../packages/artplayer-vue/src/index.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return _typeof2(obj);\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var _typeof = require(\"../helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter(item => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach(item => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', pos);\n}\n","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url\n .trim()\n .toLowerCase()\n .split('.')\n .pop();\n}\n\nexport function downloadFile(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","function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n","import { errorHandle } from '../utils';\n\nfunction validElement(value, type, paths) {\n return errorHandle(\n type === 'string' || value instanceof Element,\n `${paths.join('.')} require 'string' or 'Element' type`,\n );\n}\n\nexport default {\n container: validElement,\n url: 'string',\n poster: 'string',\n title: 'string',\n theme: 'string',\n lang: 'string',\n volume: 'number',\n isLive: 'boolean',\n muted: 'boolean',\n autoplay: 'boolean',\n autoSize: 'boolean',\n loop: 'boolean',\n flip: 'boolean',\n playbackRate: 'boolean',\n aspectRatio: 'boolean',\n screenshot: 'boolean',\n setting: 'boolean',\n hotkey: 'boolean',\n pip: 'boolean',\n mutex: 'boolean',\n backdrop: 'boolean',\n fullscreen: 'boolean',\n fullscreenWeb: 'boolean',\n subtitleOffset: 'boolean',\n miniProgressBar: 'boolean',\n localVideo: 'boolean',\n localSubtitle: 'boolean',\n networkMonitor: 'boolean',\n plugins: ['function'],\n whitelist: ['string|function|regexp'],\n layers: [\n {\n disable: 'boolean|undefined',\n name: 'string|undefined',\n index: 'number|undefined',\n html: validElement,\n style: 'object|undefined',\n click: 'function|undefined',\n mounted: 'function|undefined',\n tooltip: 'string|undefined',\n },\n ],\n contextmenu: [\n {\n disable: 'boolean|undefined',\n name: 'string|undefined',\n index: 'number|undefined',\n html: validElement,\n style: 'object|undefined',\n click: 'function|undefined',\n mounted: 'function|undefined',\n tooltip: 'string|undefined',\n },\n ],\n quality: [\n {\n default: 'boolean|undefined',\n name: 'string',\n url: 'string',\n },\n ],\n controls: [\n {\n disable: 'boolean|undefined',\n name: 'string|undefined',\n index: 'number|undefined',\n html: validElement,\n style: 'object|undefined',\n click: 'function|undefined',\n mounted: 'function|undefined',\n tooltip: 'string|undefined',\n position: (value, type, 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 highlight: [\n {\n time: 'number',\n text: 'string',\n },\n ],\n thumbnails: {\n url: 'string',\n number: 'number',\n width: 'number',\n height: 'number',\n column: 'number',\n },\n subtitle: {\n url: 'string',\n style: 'object',\n },\n moreVideoAttr: 'object',\n icons: 'object',\n customType: 'object',\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.ua = navigator.userAgent;\n this.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.ua);\n this.state =\n !this.isMobile ||\n whitelist.some(item => {\n switch (kindOf(item)) {\n case 'string':\n return this.ua.indexOf(item) > -1;\n case 'function':\n return item(this.ua);\n case 'regexp':\n return item.test(this.ua);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every(art => art.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n errorHandle(\n this.$container.clientWidth && this.$container.clientHeight,\n 'The width and height of the container cannot be 0',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { theme, backdrop } = this.art.option;\n this.$container.innerHTML = `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
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
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$track = this.query('.art-video track');\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.$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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\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.$pipHeader = this.query('.art-pip-header');\n this.$pipTitle = this.query('.art-pip-title');\n this.$pipClose = this.query('.art-pip-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$info, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(remove) {\n if (remove) {\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.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option: { type, customType },\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = type || getExt(url);\n const typeCallback = customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n typeCallback.call(art, $video, url, art);\n art.emit('customType', typeName);\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('urlChange', url);\n }\n },\n });\n}\n","import { clamp } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle = true;\n });\n\n config.events.forEach(eventName => {\n proxy($video, eventName, 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.controls.show = true;\n art.mask.show = 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 player.seek = 0;\n player.play = true;\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.on('video:loadedmetadata', () => {\n if (option.autoSize) {\n player.autoSize = true;\n }\n });\n\n art.on('video:loadstart', () => {\n art.loading.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 });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n set(value) {\n if (value) {\n const promise = $video.play();\n if (promise.then) {\n promise.then().catch(err => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter(item => item !== art)\n .forEach(item => {\n item.player.pause = true;\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n } else {\n player.pause = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMin(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n get() {\n return $video.paused;\n },\n set(value) {\n if (value) {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n } else {\n player.play = true;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n set(value) {\n if (value) {\n if (player.playing) {\n player.pause = true;\n } else {\n player.play = true;\n }\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n notice.show = `${secondToTime(time)} / ${secondToTime(player.duration)}`;\n art.emit('seek', time);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n def(player, 'currentTime', {\n get: () => art.template.$video.currentTime || 0,\n set: currentTime => {\n art.template.$video.currentTime = clamp(currentTime, 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, 'duration', {\n get: () => art.template.$video.duration || 0,\n });\n}\n","import { def } from '../utils';\n\nexport default function switchMix(art, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n player.playbackRate = false;\n player.aspectRatio = false;\n art.once('video:canplay', () => {\n player.currentTime = currentTime;\n });\n if (playing) {\n player.play = true;\n }\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRateChange', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRateRemove');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n art.emit('playbackRateReset');\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (ratio) {\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(\n ratioList.includes(ratio),\n `'aspectRatio' only accept ${ratioList.toString()} as parameters`,\n );\n\n if (ratio === 'default') {\n player.aspectRatio = false;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n }\n\n $player.dataset.aspectRatio = ratio;\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatioChange', ratio);\n } else if (player.aspectRatio) {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n art.emit('aspectRatioRemove');\n }\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n art.emit('aspectRatioReset');\n }\n },\n });\n}\n","import { secondToTime, downloadFile, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n def(player, 'getScreenshotDataURL', {\n value: () => {\n try {\n const canvas = document.createElement('canvas');\n canvas.width = $video.videoWidth;\n canvas.height = $video.videoHeight;\n canvas.getContext('2d').drawImage($video, 0, 0);\n return canvas.toDataURL('image/png');\n } catch (err) {\n notice.show = err;\n throw err;\n }\n },\n });\n\n def(player, 'getScreenshotBlobUrl', {\n value: () =>\n new Promise((resolve, reject) => {\n try {\n const canvas = document.createElement('canvas');\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(player, 'screenshot', {\n value: () => {\n const dataUri = player.getScreenshotDataURL();\n if (dataUri) {\n downloadFile(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n }\n },\n });\n}\n","/*!\n* screenfull\n* v5.0.0 - 2019-09-09\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tPromise.resolve(element[fn.requestFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tPromise.resolve(document[fn.exitFullscreen]()).catch(reject);\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nexport default function fullscreenMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenChange', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenChange', false);\n });\n }\n },\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-web-fullscreen');\n },\n set(value) {\n if (player.fullscreen) {\n player.fullscreen = false;\n }\n\n if (value) {\n addClass($player, 'art-web-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenWebChange', true);\n } else {\n removeClass($player, 'art-web-fullscreen');\n player.aspectRatioReset = true;\n art.emit('fullscreenWebChange', false);\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\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('pipChange', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pipChange', false);\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pipChange', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pipChange', false);\n }\n },\n });\n}\n\nfunction customPip(art, player) {\n const {\n option,\n i18n,\n template: { $player, $pipClose, $pipTitle, $pipHeader },\n events: { proxy },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($pipHeader, 'mousedown', event => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy($pipHeader, 'mousemove', event => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n setStyle($player, 'left', `${lastPlayerLeft + event.pageX - lastPageX}px`);\n setStyle($player, 'top', `${lastPlayerTop + event.pageY - lastPageY}px`);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($pipClose, 'click', () => {\n player.pip = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($pipTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'pip', {\n get() {\n return hasClass($player, 'art-pip');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-pip');\n const $body = document.body;\n setStyle($player, 'top', `${$body.clientHeight - player.height - 50}px`);\n setStyle($player, 'left', `${$body.clientWidth - player.width - 50}px`);\n player.fullscreen = false;\n player.fullscreenWeb = false;\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('pipChange', true);\n } else if (player.pip) {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-pip');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.fullscreen = false;\n player.fullscreenWeb = false;\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = true;\n art.emit('pipChange', false);\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const { $video } = art.template;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n customPip(art, player);\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSizeChange', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSizeRemove');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const { $player } = art.template;\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (flip) {\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n $player.dataset.flip = flip;\n art.emit('flipChange', flip);\n } else {\n delete $player.dataset.flip;\n art.emit('flipRemove');\n }\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\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 { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","import { hasClass, addClass, removeClass, append, setStyles, tooltip } from './dom';\nimport { has, def } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(`${this.name}:toggle`, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption, callback) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n this.id += 1;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n const $ref = document.createElement('div');\n $ref.classList.value = `art-${this.name} art-${this.name}-${name}`;\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 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.click) {\n this.art.events.proxy($ref, 'click', event => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.mounted) {\n option.mounted($ref, this, this.art);\n }\n\n if (callback) {\n callback($ref, this, this.art);\n }\n\n this.art.emit(`${this.name}:add`, option);\n\n def(this, name, {\n get: () => option,\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreenChange', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWebChange', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\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('Mini player'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pipChange', value => {\n tooltip($control, i18n.get(value ? 'Exit mini player' : 'Mini player'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play = true;\n });\n\n proxy($pause, 'click', () => {\n player.pause = true;\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 (player.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 { append, clamp, secondToTime, setStyle, getStyle, query, addClass, removeClass } from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return art => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: $control => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach(item => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', event => {\n setStyle($tip, 'display', 'block');\n if (event.composedPath().indexOf($highlight) > -1) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', event => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle = true;\n });\n\n art.on('subtitle:toggle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle, getStyle } from '../utils';\n\nexport default function volume(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft, width: panelWidth } = $volumePanel.getBoundingClientRect();\n const { width: handleWidth } = $volumeHandle.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n // TODO...\n const panelWidth = getStyle($volumePanel, 'width') || 60;\n const handleWidth = getStyle($volumeHandle, 'width');\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', event => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', event => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle = true;\n });\n\n art.on('setting:toggle', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","import { append, getStyle } from '../utils';\n\nexport default function quality(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { quality },\n events: { proxy, hover },\n player,\n } = art;\n\n let playIndex = -1;\n const defaultQuality = quality.find(item => item.default) || quality[0];\n playIndex = quality.indexOf(defaultQuality);\n const $qualityName = append($control, `
${defaultQuality.name}
`);\n const qualityList = quality\n .map((item, index) => `
${item.name}
`)\n .join('');\n const $qualitys = append($control, `
${qualityList}
`);\n\n hover($control, () => {\n $qualitys.style.left = `-${getStyle($qualitys, 'width') / 2 - $control.clientWidth / 2}px`;\n });\n\n proxy($qualitys, 'click', event => {\n const index = Number(event.target.dataset.index);\n const { url, name } = quality[index];\n if (url && name && playIndex !== index) {\n player.switchQuality(url, name);\n $qualityName.innerText = name;\n playIndex = index;\n }\n });\n },\n });\n}\n","import { errorHandle, addClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const { option } = art;\n\n art.on('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach(item => {\n this.add(item);\n });\n });\n }\n\n add(getOption, callback) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n errorHandle(\n ['top', 'left', 'right'].includes(option.position),\n `Control option.position must one of 'top', 'left', 'right'`,\n );\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 break;\n }\n\n super.add(option, $ref => {\n if (\n !option.disable &&\n option.position !== 'top' &&\n !($ref.firstElementChild && $ref.firstElementChild.tagName === 'I')\n ) {\n addClass($ref, 'art-control-onlyText');\n }\n\n if (callback) {\n callback($ref, this, this.art);\n }\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: $menu => {\n art.on('playbackRateChange', rate => {\n const $current = queryAll('span', $menu).find(item => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: $menu => {\n art.on('aspectRatioChange', ratio => {\n const $current = queryAll('span', $menu).find(item => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __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 { setStyles } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\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\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.on('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 50,\n }),\n );\n\n option.contextmenu.forEach(item => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', event => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', event => {\n if (!event.composedPath().includes($contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'info';\n\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach(item => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n art.on('info:toggle', value => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import { setStyles, srtToVtt, vttToBlob, getExt, assToVtt } from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n events: { proxy },\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map(item => `

${item}

`)\n .join('');\n this.art.emit('subtitle:update', this.activeCue.text);\n }\n }\n\n switch(url, name, ext) {\n const { i18n, notice } = this.art;\n return this.init(url, ext).then(subUrl => {\n if (name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${name}`;\n }\n this.art.emit('subtitle:switch', subUrl);\n return subUrl;\n });\n }\n\n init(url, ext) {\n const {\n notice,\n template: { $subtitle, $track },\n } = this.art;\n\n return fetch(url)\n .then(response => {\n return response.text();\n })\n .then(text => {\n this.art.emit('subtitle:load', url);\n switch (ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then(subUrl => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n $track.src = subUrl;\n return subUrl;\n })\n .catch(err => {\n notice.show = err;\n this.art.emit('subtitle:err', err);\n throw err;\n });\n }\n}\n","export default function clickInit(art, events) {\n const { $player } = art.template;\n events.proxy(document, ['click', 'contextmenu'], event => {\n if (event.composedPath().indexOf($player) > -1) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\n }\n });\n}\n","import { addClass, removeClass } from '../utils';\n\nexport default function hoverInit(art, events) {\n const { $player } = art.template;\n events.hover(\n $player,\n () => {\n addClass($player, 'art-hover');\n art.emit('hoverenter');\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hoverleave');\n },\n );\n}\n","import { debounce, addClass, removeClass } from '../utils';\n\nexport default function mousemoveInitInit(art, events) {\n const {\n template: { $player, $video },\n player,\n controls,\n } = art;\n\n const autoHide = debounce(() => {\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n controls.show = false;\n }, 3000);\n\n art.on('hoverleave', () => {\n if (player.playing) {\n autoHide();\n }\n });\n\n events.proxy($player, 'mousemove', event => {\n autoHide.clearTimeout();\n removeClass($player, 'art-hide-cursor');\n controls.show = true;\n if (!player.pip && player.playing && event.target === $video) {\n autoHide();\n }\n art.emit('mousemove');\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n const object = document.createElement('object');\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.type = 'text/html';\n object.data = 'about:blank';\n let playerWidth = player.width;\n let playerHeight = player.height;\n const resizeFn = throttle(() => {\n if (player.width !== playerWidth || player.height !== playerHeight) {\n playerWidth = player.width;\n playerHeight = player.height;\n if (option.autoSize) {\n if (!player.fullscreen && !player.fullscreenWeb && !player.pip) {\n player.autoSize = true;\n } else {\n player.autoSize = false;\n }\n }\n player.aspectRatioReset = true;\n art.emit('resize', {\n width: player.width,\n height: player.height,\n });\n }\n }, 500);\n\n events.proxy(object, 'load', () => {\n events.proxy(object.contentDocument.defaultView, 'resize', resizeFn);\n });\n\n $player.appendChild(object);\n}\n","import clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.on('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map(item => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(img);\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(image));\n\n return img;\n });\n }\n\n destroy() {\n this.destroyEvents.forEach(event => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.on('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle = true;\n });\n\n this.add(37, () => {\n player.seek = player.currentTime - 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.seek = player.currentTime + 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', event => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach(fn => fn());\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.on('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach(key => {\n const icon = document.createElement('i');\n icon.classList.add('art-icon');\n icon.classList.add(`art-icon-${key}`);\n append(icon, icons[key]);\n this[key] = icon;\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flipChange', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatioChange', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRateChange', rate => {\n if ($range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.on('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n }\n\n get(key) {\n const storage = JSON.parse(localStorage.getItem(this.name)) || {};\n return key ? storage[key] : {};\n }\n\n set(key, value) {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n localStorage.setItem(this.name, JSON.stringify(storage));\n }\n\n del(key) {\n const storage = this.get();\n delete storage[key];\n localStorage.setItem(this.name, JSON.stringify(storage));\n }\n\n clean() {\n localStorage.removeItem(this.name);\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', value => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.on('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n const url = URL.createObjectURL(file);\n subtitle.switch(url, file.name, type);\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.on('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control:toggle', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { errorHandle, has } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n art.option.plugins.forEach(plugin => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n let pluginName = '';\n if (result && result.name) {\n pluginName = result.name;\n } else if (plugin.name) {\n pluginName = plugin.name;\n } else {\n pluginName = `plugin${this.id}`;\n }\n errorHandle(\n !has(this, pluginName),\n `Cannot add a plugin that already has the same name: ${pluginName}`,\n );\n Object.defineProperty(this, pluginName, {\n value: result,\n });\n this.art.emit('plugin:add', plugin);\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('urlChange', $video.src);\n }\n }\n}\n","import './style';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nclass Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\n Artplayer.instances.push(this);\n }\n\n static get version() {\n return '__VERSION__';\n }\n\n static get env() {\n return '__ENV__';\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 option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n theme: '#f00',\n volume: 0.7,\n isLive: false,\n muted: false,\n autoplay: false,\n autoSize: 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 localVideo: false,\n localSubtitle: false,\n autoPip: false,\n networkMonitor: false,\n layers: [],\n contextmenu: [],\n quality: [],\n controls: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n },\n moreVideoAttr: {\n controls: false,\n preload: 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n destroy(removeHtml = true) {\n this.events.destroy();\n this.template.destroy(removeHtml);\n Artplayer.instances.splice(Artplayer.instances.indexOf(this), 1);\n this.isDestroy = true;\n this.emit('destroy');\n }\n}\n\nObject.defineProperty(Artplayer, 'instances', {\n value: [],\n});\n\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n\nexport default Artplayer;\n","import Artplayer from '../../artplayer/src';\nimport '../../artplayer/src/style';\n\nexport default {\n data() {\n return {\n instance: null,\n };\n },\n props: {\n option: {\n type: Object,\n required: true,\n },\n getInstance: Function,\n },\n mounted() {\n this.instance = new Artplayer({\n ...this.option,\n container: this.$refs.artRef,\n });\n\n this.$emit('getInstance', this.instance);\n },\n beforeDestroy() {\n if (this.instance && this.instance.destroy) {\n this.instance.destroy();\n }\n },\n render(h) {\n return h('div', {\n ref: 'artRef',\n });\n },\n};\n"],"names":["_typeof","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","window","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","downloadFile","elink","createElement","display","href","download","body","click","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","validElement","paths","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","loop","flip","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","plugins","whitelist","layers","disable","html","mounted","contextmenu","quality","default","controls","position","toString","highlight","thumbnails","number","width","height","column","subtitle","moreVideoAttr","icons","customType","propertys","methods","events","Whitelist","art","kindOf","option","ua","navigator","userAgent","isMobile","test","state","some","indexOf","Template","$container","instances","every","template","clientWidth","clientHeight","desktop","mobile","innerHTML","$player","$video","$track","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$pipHeader","$pipTitle","$pipClose","$contextmenu","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","event","once","mask","seek","play","destroy","playMix","promise","catch","err","pause","pauseMin","paused","toggleMix","playing","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","durationMix","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","canvas","getContext","drawImage","toDataURL","reject","toBlob","blob","dataUri","getScreenshotDataURL","fullscreenMix","screenfull","isFullscreen","request","aspectRatioReset","exit","fullscreenWebMix","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","customPip","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","left","top","cssText","$body","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","ended","readyState","resizeMix","getBoundingClientRect","containerRatio","rectMix","rect","pageXOffset","pageYOffset","flipMix","flipList","Player","pauseMix","loadedMix","autoSizeMix","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","composedPath","getTime","newTime","innerText","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","panelWidth","handleWidth","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","hover","playIndex","defaultQuality","$qualityName","qualityList","$qualitys","switchQuality","Control","firstElementChild","tagName","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","toFixed","Subtitle","textTrack","update","activeCue","ext","subUrl","fetch","response","textTracks","activeCues","clickInit","isFocus","hoverInit","mousemoveInitInit","autoHide","resizeInit","object","playerWidth","playerHeight","resizeFn","contentDocument","defaultView","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","tag","activeElement","toUpperCase","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","$value","Setting","Storage","JSON","parse","localStorage","getItem","assign","setItem","stringify","removeItem","settingMix","offset","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","Date","now","diffTime","reset","sample","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","removeHtml","splice","autoPip","preload","console","log","instance","props","required","getInstance","Function","$refs","artRef","$emit","beforeDestroy","render","h","ref"],"mappings":"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"} \ No newline at end of file diff --git a/docs/uncompiled/artplayer.js b/docs/uncompiled/artplayer.js index 7f33bb66c..32e035a97 100644 --- a/docs/uncompiled/artplayer.js +++ b/docs/uncompiled/artplayer.js @@ -118,7 +118,7 @@ } } - var css_248z = ".art-undercover{background:#000;display:none;height:100%;left:0;opacity:.9;position:fixed;top:0;width:100%;z-index:10}.art-video-player{zoom:1;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-high-contrast-adjust:none;background-color:#000;color:#eee;direction:ltr;display:flex;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;height:100%;line-height:1.3;margin:0 auto;outline:0;position:relative;text-align:left;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:20}.art-video-player *{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{align-items:center;display:inline-flex;justify-content:center;line-height:1.5}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,.7)!important}}.art-video-player .art-video{background-color:#000;cursor:pointer;z-index:10}.art-video-player .art-poster,.art-video-player .art-video{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.art-video-player .art-poster{background-position:50%;background-repeat:no-repeat;background-size:cover;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:11}.art-video-player .art-subtitle{bottom:10px;color:#fff;display:none;font-size:20px;padding:0 20px;pointer-events:none;position:absolute;text-align:center;text-shadow:.5px .5px .5px rgba(0,0,0,.5);width:100%;z-index:20}.art-video-player .art-subtitle p{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;line-height:1.2;margin:5px 0 0;word-break:break-all}.art-video-player .art-bilingual p:nth-child(n+2){transform:scale(.6);transform-origin:center top}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30}.art-video-player .art-danmuku,.art-video-player .art-layers{bottom:0;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%}.art-video-player .art-layers{display:none;z-index:40}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{align-items:center;bottom:0;display:none;height:100%;justify-content:center;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:50}.art-video-player .art-mask .art-state{align-items:center;bottom:55px;display:flex;height:60px;justify-content:center;opacity:.6;position:absolute;right:30px;width:60px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player .art-loading{align-items:center;bottom:0;display:none;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:70}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;bottom:0;height:100px;left:0;opacity:0;padding:55px 10px 0;pointer-events:none;position:absolute;right:0;transition:all .2s ease-in-out;visibility:hidden;z-index:60}.art-video-player .art-bottom .art-progress{pointer-events:auto;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress{align-items:center;cursor:pointer;display:flex;flex-direction:row;height:4px;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{background:hsla(0,0%,100%,.2);height:50%;position:relative;width:100%}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{background:hsla(0,0%,100%,.4);bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:0;z-index:10}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:0;z-index:20}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{bottom:0;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:30}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{background:#fff;display:inline-block;height:100%;left:0;pointer-events:auto;position:absolute;top:0;width:7px}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{border-radius:50%;display:none;height:13px;left:-6.5px;position:absolute;top:-5px;width:13px;z-index:40}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{background:rgba(0,0,0,.7);border-radius:3px;color:#fff;display:none;font-size:12px;font-weight:700;height:20px;left:0;line-height:20px;padding:0 5px;position:absolute;text-align:center;top:-25px;white-space:nowrap;z-index:50}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-indicator,.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-tip{display:block}.art-video-player .art-bottom .art-progress .art-control-thumbnails{background-color:rgba(0,0,0,.7);bottom:8px;display:none;left:0;pointer-events:none;position:absolute}.art-video-player .art-bottom .art-progress .art-control-loop{bottom:0;display:none;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{background:hsla(0,0%,100%,.75);height:8px;left:0;position:absolute;top:-2px;width:2px}.art-video-player .art-bottom .art-controls{align-items:center;display:flex;height:40px;justify-content:space-between;padding:5px 0;pointer-events:auto;position:relative}.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:flex}.art-video-player .art-bottom .art-controls .art-control{cursor:pointer;font-size:12px;height:36px;line-height:36px;min-width:36px;opacity:.9;text-align:center;white-space:nowrap}.art-video-player .art-bottom .art-controls .art-control .art-icon{align-items:center;display:flex;float:left;height:36px;justify-content:center;width:36px}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{float:left;height:100%;overflow:hidden;position:relative;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);width:0}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{background:#fff;border-radius:12px;height:12px;left:0;margin-top:-6px;position:absolute;top:50%;width:12px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{background:#fff;left:-54px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{background:hsla(0,0%,100%,.2);left:6px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{content:\"\";display:block;height:3px;margin-top:-2px;position:absolute;top:50%;width:60px}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{position:relative;z-index:30}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{background:rgba(0,0,0,.8);border-radius:3px;bottom:35px;color:#fff;display:none;padding:5px 0;position:absolute;text-align:center;width:100px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-destroy .art-progress-tip,.art-video-player.art-error .art-progress-indicator,.art-video-player.art-error .art-progress-tip{display:none!important}.art-video-player .art-notice{display:none;font-size:14px;left:0;padding:10px;pointer-events:none;position:absolute;top:0;width:100%;z-index:80}.art-video-player .art-notice .art-notice-inner{background:rgba(0,0,0,.6);border-radius:3px;color:#fff;display:inline-block;padding:5px 10px}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{background:rgba(0,0,0,.9);border-radius:3px;display:none;flex-direction:column;left:0;min-width:200px;padding:5px 0;position:absolute;top:0;z-index:120}.art-video-player .art-contextmenus .art-contextmenu{border-bottom:1px solid hsla(0,0%,100%,.1);color:#fff;cursor:pointer;display:block;font-size:12px;overflow:hidden;padding:10px 15px;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{display:inline-block;padding:0 7px}.art-video-player .art-contextmenus .art-contextmenu span.art-current,.art-video-player .art-contextmenus .art-contextmenu span:hover{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:hsla(0,0%,100%,.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{align-items:center;display:flex;height:100%;justify-content:center;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%;z-index:90}.art-video-player .art-settings .art-setting-inner{background:rgba(0,0,0,.9);bottom:0;font-size:12px;height:100%;overflow:auto;position:absolute;right:-300px;top:0;transition:all .2s ease-in-out;width:300px}.art-video-player .art-settings .art-setting-inner .art-setting-body{height:100%;overflow-y:auto;width:100%}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:10px 15px}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting .art-setting-header{margin-bottom:5px}.art-video-player .art-settings .art-setting-radio{display:flex}.art-video-player .art-settings .art-setting-radio .art-radio-item{flex:1;padding:0 2px}.art-video-player .art-settings .art-setting-radio .art-radio-item button{background:hsla(0,0%,100%,.2);border:none;border-radius:2px;color:#fff;height:22px;outline:none;width:100%}.art-video-player .art-settings .art-setting-radio .art-radio-item.current button,.art-video-player .art-settings .art-setting-radio .art-radio-item button:active{background-color:#00a1d6}.art-video-player .art-settings .art-setting-range input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:hsla(0,0%,100%,.5);height:3px;outline:none;width:100%}.art-video-player .art-settings .art-setting-checkbox{align-items:center;display:flex}.art-video-player .art-settings .art-setting-checkbox input{height:14px;margin-right:5px;width:14px}.art-video-player .art-settings .art-setting-upload{display:flex}.art-video-player .art-settings .art-setting-upload .art-upload-btn{background:hsla(0,0%,100%,.2);border:none;border-radius:2px;color:#fff;height:22px;line-height:22px;outline:none;text-align:center;width:80px}.art-video-player .art-settings .art-setting-upload .art-upload-value{flex:1;height:22px;line-height:22px;overflow:hidden;padding-left:10px;text-overflow:ellipsis;white-space:nowrap}.art-video-player.art-setting-show .art-settings{opacity:1;pointer-events:auto;visibility:visible}.art-video-player.art-setting-show .art-settings .art-setting-inner{right:0}.art-video-player .art-info{-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.9);color:#fff;display:none;flex-direction:column;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;font-size:12px;left:10px;padding:10px;position:absolute;top:10px;width:350px;z-index:100}.art-video-player .art-info .art-info-item{display:flex;margin-bottom:5px}.art-video-player .art-info .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-item .art-info-content{flex:1;overflow:hidden;padding-left:5px;text-overflow:ellipsis;white-space:nowrap}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;right:5px;top:5px}.art-video-player.art-info-show .art-info{display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;-o-object-fit:fill;object-fit:fill}.art-video-player.art-fullscreen-web{bottom:0;height:100%!important;left:0;position:fixed;right:0;top:0;width:100%!important;z-index:9999}.art-fullscreen-rotate{background:#000;bottom:0;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:9999}.art-video-player .art-mini-header{align-items:center;background:rgba(0,0,0,.5);color:#fff;display:none;height:35px;justify-content:space-between;left:0;line-height:35px;opacity:0;position:absolute;right:0;top:0;transition:all .2s ease-in-out;visibility:hidden;z-index:110}.art-video-player .art-mini-header .art-mini-title{cursor:move;flex:1;overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.art-video-player .art-mini-header .art-mini-close{cursor:pointer;font-size:22px;text-align:center;width:35px}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2);height:225px;position:fixed;width:400px;z-index:9999}.art-video-player.art-mini .art-mini-header{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-setting,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{align-items:center;display:flex;justify-content:center}.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-layers .art-layer-log{background-color:rgba(0,0,0,.5);border-radius:3px;bottom:10px;color:#fff;display:none;font-size:13px;left:10px;padding:5px;pointer-events:none;position:absolute;text-shadow:0 0 2px rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:120px}.art-video-player .art-layers .art-layer-log p{margin-bottom:0;word-break:break-all}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{background:rgba(0,0,0,.8);border-radius:3px;bottom:35px;color:#fff;display:none;padding:5px 0;position:absolute;text-align:center;width:100px}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-control-selector:hover .art-selector-list{display:block}:root{--balloon-color:hsla(0,0%,6%,.95);--balloon-font-size:12px;--balloon-move:4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{cursor:pointer;position:relative}[aria-label][data-balloon-pos]:after{background:var(--balloon-color);border-radius:2px;color:#fff;content:attr(aria-label);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:var(--balloon-font-size);font-style:normal;font-weight:400;line-height:1.2;padding:.5em 1em;text-indent:0;text-shadow:none;white-space:nowrap}[aria-label][data-balloon-pos]:after,[aria-label][data-balloon-pos]:before{opacity:0;pointer-events:none;position:absolute;transition:all .18s ease-out .18s;z-index:10}[aria-label][data-balloon-pos]:before{border:5px solid transparent;border-top:5px solid var(--balloon-color);content:\"\";height:0;width:0}[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos]:hover:before{opacity:1;pointer-events:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:before{bottom:100%;left:50%;transform:translate(-50%,var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before{transform:translate(-50%)}\n/*# sourceMappingURL=data:application/json;base64,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QUNFLG1DQUE0QyxDQUNsRCxpRUFDRSxhQUFnQixDQUVwQixNQUNFLGlDQUF1QyxDQUN2Qyx3QkFBeUIsQ0FDekIsa0JBQXFCLENBRXZCLHFDQUNFLGdCQUFtQixDQUVyQiwrQkFFRSxjQUFlLENBRGYsaUJBQ2lCLENBQ2pCLHFDQVVFLCtCQUFnQyxDQUNoQyxpQkFBa0IsQ0FDbEIsVUFBVyxDQUNYLHdCQUF5QixDQVJ6Qix3SEFBd0ksQ0FJeEksa0NBQW1DLENBRm5DLGlCQUFrQixDQURsQixlQUFtQixDQVduQixlQUFnQixDQUhoQixnQkFBa0IsQ0FWbEIsYUFBYyxDQUlkLGdCQUFpQixDQVFqQixrQkFFYSxDQUNmLDJFQWxCRSxTQUFVLENBQ1YsbUJBQW9CLENBYXBCLGlCQUFrQixDQVpsQixpQ0FBb0MsQ0FlcEMsVUFXYSxDQVZmLHNDQUlFLDRCQUFzQyxDQUF0Qyx5Q0FBc0MsQ0FJdEMsVUFBVyxDQU5YLFFBQVMsQ0FEVCxPQVNhLENBQ2YsdUZBQ0UsU0FBVSxDQUNWLG1CQUFzQixDQUN4QiwwREFHRSxrQkFFdUIsQ0FDekIscUhBTEUsV0FBWSxDQUNaLFFBQVMsQ0FFVCw2Q0FBK0MsQ0FDL0Msb0JBS3VCLENBR3pCLGlJQUNFLHlCQUErQiIsImZpbGUiOiJpbmRleC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmFydC11bmRlcmNvdmVyIHtcbiAgYmFja2dyb3VuZDogIzAwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMTAwJTtcbiAgd2lkdGg6IDEwMCU7XG4gIG9wYWNpdHk6IDAuOTtcbiAgei1pbmRleDogMTA7IH1cblxuLmFydC12aWRlby1wbGF5ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICB6LWluZGV4OiAyMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3V0bGluZTogMDtcbiAgem9vbTogMTtcbiAgZm9udC1mYW1pbHk6IFJvYm90bywgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICNlZWU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAtbXMtaGlnaC1jb250cmFzdC1hZGp1c3Q6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciA6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2NjYzsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWljb24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaWNvbiBzdmcge1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB9XG4gIEBzdXBwb3J0cyAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIG9yIChiYWNrZHJvcC1maWx0ZXI6IGluaXRpYWwpIHtcbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJhY2tkcm9wLWZpbHRlciB7XG4gICAgICAtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogc2F0dXJhdGUoMTgwJSkgYmx1cigyMHB4KTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KSAhaW1wb3J0YW50OyB9IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC12aWRlbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtcG9zdGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMTtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1zdWJ0aXRsZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMjA7XG4gIGJvdHRvbTogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDAgMjBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAyMHB4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAuNXB4IDAuNXB4IDAuNXB4IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXN1YnRpdGxlIHAge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgIG1hcmdpbjogNXB4IDAgMDtcbiAgICBsaW5lLWhlaWdodDogMS4yOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYmlsaW5ndWFsIHA6bnRoLWNoaWxkKG4gKyAyKSB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMC42KTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtc3VidGl0bGUtc2hvdyAuYXJ0LXN1YnRpdGxlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWNvbnRyb2wtc2hvdyAuYXJ0LXN1YnRpdGxlIHtcbiAgYm90dG9tOiA1MHB4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtZGFubXVrdSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMzA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1sYXllcnMge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDQwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIC5hcnQtbGF5ZXIge1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1sYXllci1zaG93IC5hcnQtbGF5ZXJzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1tYXNrIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1tYXNrIC5hcnQtc3RhdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDMwcHg7XG4gICAgYm90dG9tOiA1NXB4O1xuICAgIHdpZHRoOiA2MHB4O1xuICAgIGhlaWdodDogNjBweDtcbiAgICBvcGFjaXR5OiAwLjY7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1hc2stc2hvdyAuYXJ0LW1hc2sge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbG9hZGluZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNzA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1sb2FkaW5nLXNob3cgLmFydC1sb2FkaW5nIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogNjA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGhlaWdodDogMTAwcHg7XG4gIHBhZGRpbmc6IDU1cHggMTBweCAwO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFER0NBWUFBQUFUK09xRkFBQUFka2xFUVZRb3o0MlFRUTdBSUFnRUYvVC9EK2ticS9SV0FsblF5eWF6QTRhb0FCNEZzQlNBL2JGanVGMUVPTDdWYnJJckJ1dXNtcnQ0WlpPUmZiNmVoYldkblJIRUlpSVRhRVVLYTVFSnFVYWtSU2FFWUJKU0NZMmRFc3RRWTdBdXhhaHdYRnJ2Wm1XbDJyaDRKWjA3ejlkTHRlc2ZOajVxMEZVM0E1T2Jid0FBQUFCSlJVNUVya0pnZ2c9PSkgcmVwZWF0LXggYm90dG9tOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3Mge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGhlaWdodDogNHB4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogNTAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWxvYWRlZCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLXBsYXllZCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDIwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgd2lkdGg6IDA7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaGlnaGxpZ2h0IHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogMzA7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAgICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWhpZ2hsaWdodCBzcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB3aWR0aDogN3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWluZGljYXRvciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgei1pbmRleDogNDA7XG4gICAgICAgICAgdG9wOiAtNXB4O1xuICAgICAgICAgIGxlZnQ6IC02LjVweDtcbiAgICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgICBoZWlnaHQ6IDEzcHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLmFydC1zaG93LWluZGljYXRvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy10aXAge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDUwO1xuICAgICAgICAgIHRvcDogLTI1cHg7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzOmhvdmVyIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzczpob3ZlciAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IsXG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzOmhvdmVyIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLXRpcCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC10aHVtYm5haWxzIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IDhweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLWxvb3Age1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLWxvb3AgLmFydC1sb29wLXBvaW50IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IC0ycHg7XG4gICAgICAgIHdpZHRoOiAycHg7XG4gICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGhlaWdodDogNDBweDtcbiAgICBwYWRkaW5nOiA1cHggMDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1sZWZ0LFxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9scy1yaWdodCB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wge1xuICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgaGVpZ2h0OiAzNnB4O1xuICAgICAgbWluLXdpZHRoOiAzNnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbCAuYXJ0LWljb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIGhlaWdodDogMzZweDtcbiAgICAgICAgd2lkdGg6IDM2cHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLW9ubHlUZXh0IHtcbiAgICAgIHBhZGRpbmc6IDAgMTBweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgdHJhbnNpdGlvbjogbWFyZ2luIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSksIHdpZHRoIDAuMnMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIG1hcmdpbi10b3A6IC02cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogLTU0cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwgLmFydC12b2x1bWUtc2xpZGVyLWhhbmRsZTo6YWZ0ZXIge1xuICAgICAgICAgIGxlZnQ6IDZweDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmJlZm9yZSwgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgaGVpZ2h0OiAzcHg7XG4gICAgICAgICAgbWFyZ2luLXRvcDogLTJweDtcbiAgICAgICAgICB3aWR0aDogNjBweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZTpob3ZlciAuYXJ0LXZvbHVtZS1wYW5lbCB7XG4gICAgICB3aWR0aDogNjBweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMzA7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkgLmFydC1xdWFsaXR5cyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAzNXB4O1xuICAgICAgICB3aWR0aDogMTAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDVweCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IC5hcnQtcXVhbGl0eXMgLmFydC1xdWFsaXR5LWl0ZW0ge1xuICAgICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gICAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSAuYXJ0LXF1YWxpdHlzIC5hcnQtcXVhbGl0eS1pdGVtOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eTpob3ZlciAuYXJ0LXF1YWxpdHlzIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWNvbnRyb2wtc2hvdyAuYXJ0LWJvdHRvbSwgLmFydC12aWRlby1wbGF5ZXIuYXJ0LWhvdmVyIC5hcnQtYm90dG9tIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtZXJyb3IgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3IsXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtZXJyb3IgLmFydC1wcm9ncmVzcy10aXAsIC5hcnQtdmlkZW8tcGxheWVyLmFydC1kZXN0cm95IC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLFxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWRlc3Ryb3kgLmFydC1wcm9ncmVzcy10aXAge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1ub3RpY2Uge1xuICBkaXNwbGF5OiBub25lO1xuICBmb250LXNpemU6IDE0cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogODA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbm90aWNlIC5hcnQtbm90aWNlLWlubmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbm90aWNlLXNob3cgLmFydC1ub3RpY2Uge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMjA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgbWluLXdpZHRoOiAyMDBweDtcbiAgcGFkZGluZzogNXB4IDA7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgYSB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgc3BhbiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBwYWRkaW5nOiAwIDdweDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSBzcGFuOmhvdmVyLCAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHNwYW4uYXJ0LWN1cnJlbnQge1xuICAgICAgICBjb2xvcjogIzAwYzlmZjsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnU6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWNvbnRleHRtZW51LXNob3cgLmFydC1jb250ZXh0bWVudXMge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3Mge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA5MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICBvcGFjaXR5OiAwO1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAtMzAwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAzMDBweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICBvdmVyZmxvdzogYXV0bzsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctaW5uZXIgLmFydC1zZXR0aW5nLWJvZHkgLmFydC1zZXR0aW5nIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IC5hcnQtc2V0dGluZyAuYXJ0LXNldHRpbmctaGVhZGVyIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0ge1xuICAgICAgZmxleDogMTtcbiAgICAgIHBhZGRpbmc6IDAgMnB4OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0gYnV0dG9uIHtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8gLmFydC1yYWRpby1pdGVtIGJ1dHRvbjphY3RpdmUge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGExZDY7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIC5hcnQtcmFkaW8taXRlbS5jdXJyZW50IGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGExZDY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFuZ2UgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogM3B4O1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWNoZWNrYm94IGlucHV0IHtcbiAgICAgIGhlaWdodDogMTRweDtcbiAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctdXBsb2FkIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctdXBsb2FkIC5hcnQtdXBsb2FkLWJ0biB7XG4gICAgICB3aWR0aDogODBweDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctdXBsb2FkIC5hcnQtdXBsb2FkLXZhbHVlIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDIycHg7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LXNldHRpbmctc2hvdyAuYXJ0LXNldHRpbmdzIHtcbiAgb3BhY2l0eTogMTtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LXNldHRpbmctc2hvdyAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciB7XG4gICAgcmlnaHQ6IDA7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICB0b3A6IDEwcHg7XG4gIHotaW5kZXg6IDEwMDtcbiAgd2lkdGg6IDM1MHB4O1xuICBwYWRkaW5nOiAxMHB4O1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LWZhbWlseTogTm90byBTYW5zIENKSyBTQyBEZW1pTGlnaHQsIFJvYm90bywgU2Vnb2UgVUksIFRhaG9tYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtIC5hcnQtaW5mby10aXRsZSB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbSAuYXJ0LWluZm8tY29udGVudCB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIHBhZGRpbmctbGVmdDogNXB4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWNsb3NlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1cHg7XG4gICAgcmlnaHQ6IDVweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWluZm8tc2hvdyAuYXJ0LWluZm8ge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1oaWRlLWN1cnNvciAqIHtcbiAgY3Vyc29yOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFydC12aWRlby1wbGF5ZXJbZGF0YS1hc3BlY3QtcmF0aW9dIHZpZGVvIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG9iamVjdC1maXQ6IGZpbGw7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWZ1bGxzY3JlZW4td2ViIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwOyB9XG5cbi5hcnQtZnVsbHNjcmVlbi1yb3RhdGUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgYmFja2dyb3VuZDogIzAwMDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW1pbmktaGVhZGVyIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGhlaWdodDogMzVweDtcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW1pbmktaGVhZGVyIC5hcnQtbWluaS10aXRsZSB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiAwIDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogbW92ZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW1pbmktaGVhZGVyIC5hcnQtbWluaS1jbG9zZSB7XG4gICAgd2lkdGg6IDM1cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWlzLWRyYWdnaW5nIHtcbiAgb3BhY2l0eTogMC43OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogNDAwcHg7XG4gIGhlaWdodDogMjI1cHg7XG4gIGJveC1zaGFkb3c6IDAgMnB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xNiksIDAgM3B4IDZweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LW1pbmktaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pLmFydC1ob3ZlciAuYXJ0LW1pbmktaGVhZGVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1tYXNrIC5hcnQtc3RhdGUge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1jb250ZXh0bWVudSxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1ib3R0b20sXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtZGFubXUsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtaW5mbyxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1sYXllcnMsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtbm90aWNlLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LXNldHRpbmcsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtc3VidGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4uYXJ0LWF1dG8tc2l6ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtZmxpcD1cImhvcml6b250YWxcIl0gLmFydC12aWRlbyB7XG4gIHRyYW5zZm9ybTogc2NhbGVYKC0xKTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllcltkYXRhLWZsaXA9XCJ2ZXJ0aWNhbFwiXSAuYXJ0LXZpZGVvIHtcbiAgdHJhbnNmb3JtOiBzY2FsZVkoLTEpOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIC5hcnQtbGF5ZXItbG9nIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAxMHB4O1xuICBib3R0b206IDEwcHg7XG4gIHdpZHRoOiAxMjBweDtcbiAgY29sb3I6ICNmZmY7XG4gIHRleHQtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIHBhZGRpbmc6IDVweDtcbiAgZm9udC1zaXplOiAxM3B4O1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1sYXllcnMgLmFydC1sYXllci1sb2cgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250cm9sLXNlbGVjdG9yIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3RvciAuYXJ0LXNlbGVjdG9yLWxpc3Qge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMzVweDtcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgcGFkZGluZzogNXB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3IgLmFydC1zZWxlY3Rvci1saXN0IC5hcnQtc2VsZWN0b3ItaXRlbSB7XG4gICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3RvciAuYXJ0LXNlbGVjdG9yLWxpc3QgLmFydC1zZWxlY3Rvci1pdGVtOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3Rvcjpob3ZlciAuYXJ0LXNlbGVjdG9yLWxpc3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbjpyb290IHtcbiAgLS1iYWxsb29uLWNvbG9yOiByZ2JhKDE2LCAxNiwgMTYsIDAuOTUpO1xuICAtLWJhbGxvb24tZm9udC1zaXplOiAxMnB4O1xuICAtLWJhbGxvb24tbW92ZTogNHB4OyB9XG5cbmJ1dHRvblthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXSB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cblthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXTphZnRlciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xOHMgZWFzZS1vdXQgMC4xOHM7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG4gICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCAnT3BlbiBTYW5zJywgJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLWJhbGxvb24tZm9udC1zaXplKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWxsb29uLWNvbG9yKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgY29udGVudDogYXR0cihhcmlhLWxhYmVsKTtcbiAgICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICB6LWluZGV4OiAxMDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106YmVmb3JlIHtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgYm9yZGVyOiA1cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tYmFsbG9vbi1jb2xvcik7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xOHMgZWFzZS1vdXQgMC4xOHM7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwOyB9XG4gIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXTpob3ZlcjpiZWZvcmUsIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXTpob3ZlcjphZnRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTphZnRlciB7XG4gICAgYm90dG9tOiAxMDAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIHZhcigtLWJhbGxvb24tbW92ZSkpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpiZWZvcmUge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgdmFyKC0tYmFsbG9vbi1tb3ZlKSk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogdG9wOyB9XG4gIFthcmlhLWxhYmVsXVtkYXRhLWJhbGxvb24tcG9zXVtkYXRhLWJhbGxvb24tcG9zPSd1cCddOmhvdmVyOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpob3ZlcjpiZWZvcmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApOyB9XG4iXX0= */"; + var css_248z = ".art-video-player{zoom:1;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-high-contrast-adjust:none;background-color:#000;color:#eee;direction:ltr;display:flex;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;height:100%;line-height:1.3;margin:0 auto;outline:0;position:relative;text-align:left;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:20}.art-video-player *{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{width:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{align-items:center;display:inline-flex;justify-content:center;line-height:1.5}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,.7)!important}}.art-video-player .art-video{background-color:#000;cursor:pointer;z-index:10}.art-video-player .art-poster,.art-video-player .art-video{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.art-video-player .art-poster{background-position:50%;background-repeat:no-repeat;background-size:cover;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:11}.art-video-player .art-subtitle{bottom:10px;color:#fff;display:none;font-size:20px;padding:0 20px;pointer-events:none;position:absolute;text-align:center;text-shadow:.5px .5px .5px rgba(0,0,0,.5);width:100%;z-index:20}.art-video-player .art-subtitle p{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;line-height:1.2;margin:5px 0 0;word-break:break-all}.art-video-player .art-bilingual p:nth-child(n+2){transform:scale(.6);transform-origin:center top}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30}.art-video-player .art-danmuku,.art-video-player .art-layers{bottom:0;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%}.art-video-player .art-layers{display:none;z-index:40}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{align-items:center;bottom:0;display:none;height:100%;justify-content:center;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:50}.art-video-player .art-mask .art-state{align-items:center;bottom:55px;display:flex;height:60px;justify-content:center;opacity:.6;position:absolute;right:30px;width:60px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player .art-loading{align-items:center;bottom:0;display:none;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:70}.art-video-player.art-loading-show .art-loading{display:flex}.art-video-player .art-bottom{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;bottom:0;height:100px;left:0;opacity:0;padding:55px 10px 0;pointer-events:none;position:absolute;right:0;transition:all .2s ease-in-out;visibility:hidden;z-index:60}.art-video-player .art-bottom .art-progress{pointer-events:auto;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress{align-items:center;cursor:pointer;display:flex;flex-direction:row;height:4px;position:relative}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner{background:hsla(0,0%,100%,.2);height:50%;position:relative;width:100%}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded{background:hsla(0,0%,100%,.4);bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:0;z-index:10}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:0;z-index:20}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight{bottom:0;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:30}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{background:#fff;display:inline-block;height:100%;left:0;pointer-events:auto;position:absolute;top:0;width:7px}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator{border-radius:50%;display:none;height:13px;left:-6.5px;position:absolute;top:-5px;width:13px;z-index:40}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip{background:rgba(0,0,0,.7);border-radius:3px;color:#fff;display:none;font-size:12px;font-weight:700;height:20px;left:0;line-height:20px;padding:0 5px;position:absolute;text-align:center;top:-25px;white-space:nowrap;z-index:50}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner{height:100%}.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-indicator,.art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-tip{display:block}.art-video-player .art-bottom .art-progress .art-control-thumbnails{background-color:rgba(0,0,0,.7);bottom:8px;display:none;left:0;pointer-events:none;position:absolute}.art-video-player .art-bottom .art-progress .art-control-loop{bottom:0;display:none;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.art-video-player .art-bottom .art-progress .art-control-loop .art-loop-point{background:hsla(0,0%,100%,.75);height:8px;left:0;position:absolute;top:-2px;width:2px}.art-video-player .art-bottom .art-controls{align-items:center;display:flex;height:40px;justify-content:space-between;padding:5px 0;pointer-events:auto;position:relative}.art-video-player .art-bottom .art-controls .art-controls-left,.art-video-player .art-bottom .art-controls .art-controls-right{display:flex}.art-video-player .art-bottom .art-controls .art-control{cursor:pointer;font-size:12px;height:36px;line-height:36px;min-width:36px;opacity:.9;text-align:center;white-space:nowrap}.art-video-player .art-bottom .art-controls .art-control .art-icon{align-items:center;display:flex;float:left;height:36px;justify-content:center;width:36px}.art-video-player .art-bottom .art-controls .art-control:hover{opacity:1}.art-video-player .art-bottom .art-controls .art-control-onlyText{padding:0 10px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel{float:left;height:100%;overflow:hidden;position:relative;transition:margin .2s cubic-bezier(.4,0,1,1),width .2s cubic-bezier(.4,0,1,1);width:0}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle{background:#fff;border-radius:12px;height:12px;left:0;margin-top:-6px;position:absolute;top:50%;width:12px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{background:#fff;left:-54px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{background:hsla(0,0%,100%,.2);left:6px}.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{content:\"\";display:block;height:3px;margin-top:-2px;position:absolute;top:50%;width:60px}.art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel{width:60px}.art-video-player .art-bottom .art-controls .art-control-quality{position:relative;z-index:30}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys{background:rgba(0,0,0,.8);border-radius:3px;bottom:35px;color:#fff;display:none;padding:5px 0;position:absolute;text-align:center;width:100px}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys{display:block}.art-video-player.art-control-show .art-bottom,.art-video-player.art-hover .art-bottom{opacity:1;visibility:visible}.art-video-player.art-destroy .art-progress-indicator,.art-video-player.art-destroy .art-progress-tip,.art-video-player.art-error .art-progress-indicator,.art-video-player.art-error .art-progress-tip{display:none!important}.art-video-player .art-notice{display:none;font-size:14px;left:0;padding:10px;pointer-events:none;position:absolute;top:0;width:100%;z-index:80}.art-video-player .art-notice .art-notice-inner{background:rgba(0,0,0,.6);border-radius:3px;color:#fff;display:inline-block;padding:5px 10px}.art-video-player.art-notice-show .art-notice{display:flex}.art-video-player .art-contextmenus{background:rgba(0,0,0,.9);border-radius:3px;display:none;flex-direction:column;left:0;min-width:200px;padding:5px 0;position:absolute;top:0;z-index:120}.art-video-player .art-contextmenus .art-contextmenu{border-bottom:1px solid hsla(0,0%,100%,.1);color:#fff;cursor:pointer;display:block;font-size:12px;overflow:hidden;padding:10px 15px;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-contextmenus .art-contextmenu a{color:#fff;text-decoration:none}.art-video-player .art-contextmenus .art-contextmenu span{display:inline-block;padding:0 7px}.art-video-player .art-contextmenus .art-contextmenu span.art-current,.art-video-player .art-contextmenus .art-contextmenu span:hover{color:#00c9ff}.art-video-player .art-contextmenus .art-contextmenu:hover{background-color:hsla(0,0%,100%,.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{align-items:center;display:flex;height:100%;justify-content:center;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:0;visibility:hidden;width:100%;z-index:90}.art-video-player .art-settings .art-setting-inner{background:rgba(0,0,0,.9);bottom:0;font-size:12px;height:100%;overflow:auto;position:absolute;right:-300px;top:0;transition:all .2s ease-in-out;width:300px}.art-video-player .art-settings .art-setting-inner .art-setting-body{height:100%;overflow-y:auto;width:100%}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:10px 15px}.art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting .art-setting-header{margin-bottom:5px}.art-video-player .art-settings .art-setting-radio{display:flex}.art-video-player .art-settings .art-setting-radio .art-radio-item{flex:1;padding:0 2px}.art-video-player .art-settings .art-setting-radio .art-radio-item button{background:hsla(0,0%,100%,.2);border:none;border-radius:2px;color:#fff;height:22px;outline:none;width:100%}.art-video-player .art-settings .art-setting-radio .art-radio-item.current button,.art-video-player .art-settings .art-setting-radio .art-radio-item button:active{background-color:#00a1d6}.art-video-player .art-settings .art-setting-range input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:hsla(0,0%,100%,.5);height:3px;outline:none;width:100%}.art-video-player .art-settings .art-setting-checkbox{align-items:center;display:flex}.art-video-player .art-settings .art-setting-checkbox input{height:14px;margin-right:5px;width:14px}.art-video-player .art-settings .art-setting-upload{display:flex}.art-video-player .art-settings .art-setting-upload .art-upload-btn{background:hsla(0,0%,100%,.2);border:none;border-radius:2px;color:#fff;height:22px;line-height:22px;outline:none;text-align:center;width:80px}.art-video-player .art-settings .art-setting-upload .art-upload-value{flex:1;height:22px;line-height:22px;overflow:hidden;padding-left:10px;text-overflow:ellipsis;white-space:nowrap}.art-video-player.art-setting-show .art-settings{opacity:1;pointer-events:auto;visibility:visible}.art-video-player.art-setting-show .art-settings .art-setting-inner{right:0}.art-video-player .art-info{-webkit-font-smoothing:antialiased;background:rgba(0,0,0,.9);color:#fff;display:none;flex-direction:column;font-family:Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;font-size:12px;left:10px;padding:10px;position:absolute;top:10px;width:350px;z-index:100}.art-video-player .art-info .art-info-item{display:flex;margin-bottom:5px}.art-video-player .art-info .art-info-item .art-info-title{text-align:right;width:100px}.art-video-player .art-info .art-info-item .art-info-content{flex:1;overflow:hidden;padding-left:5px;text-overflow:ellipsis;white-space:nowrap}.art-video-player .art-info .art-info-item:last-child{margin-bottom:0}.art-video-player .art-info .art-info-close{cursor:pointer;position:absolute;right:5px;top:5px}.art-video-player.art-info-show .art-info{display:flex}.art-video-player.art-hide-cursor *{cursor:none!important}.art-video-player[data-aspect-ratio] video{box-sizing:content-box;-o-object-fit:fill;object-fit:fill}.art-video-player.art-fullscreen-web{bottom:0;height:100%!important;left:0;position:fixed;right:0;top:0;width:100%!important;z-index:9999}.art-fullscreen-rotate{background:#000;bottom:0;height:100%;left:0;position:fixed;right:0;top:0;width:100%;z-index:9999}.art-video-player .art-mini-header{align-items:center;background:rgba(0,0,0,.5);color:#fff;display:none;height:35px;justify-content:space-between;left:0;line-height:35px;opacity:0;position:absolute;right:0;top:0;transition:all .2s ease-in-out;visibility:hidden;z-index:110}.art-video-player .art-mini-header .art-mini-title{cursor:move;flex:1;overflow:hidden;padding:0 10px;text-overflow:ellipsis;white-space:nowrap}.art-video-player .art-mini-header .art-mini-close{cursor:pointer;font-size:22px;text-align:center;width:35px}.art-video-player.art-is-dragging{opacity:.7}.art-video-player.art-mini{box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 3px 6px 0 rgba(0,0,0,.2);height:225px;position:fixed;width:400px;z-index:9999}.art-video-player.art-mini .art-mini-header{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.art-video-player.art-mini.art-hover .art-mini-header{opacity:1;visibility:visible}.art-video-player.art-mini .art-mask .art-state{position:static}.art-video-player.art-mini .art-bottom,.art-video-player.art-mini .art-contextmenu,.art-video-player.art-mini .art-danmu,.art-video-player.art-mini .art-info,.art-video-player.art-mini .art-layers,.art-video-player.art-mini .art-notice,.art-video-player.art-mini .art-setting,.art-video-player.art-mini .art-subtitle{display:none!important}.art-auto-size{align-items:center;display:flex;justify-content:center}.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-layers .art-layer-log{background-color:rgba(0,0,0,.5);border-radius:3px;bottom:10px;color:#fff;display:none;font-size:13px;left:10px;padding:5px;pointer-events:none;position:absolute;text-shadow:0 0 2px rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:120px}.art-video-player .art-layers .art-layer-log p{margin-bottom:0;word-break:break-all}.art-video-player .art-control-selector{position:relative}.art-video-player .art-control-selector .art-selector-list{background:rgba(0,0,0,.8);border-radius:3px;bottom:35px;color:#fff;display:none;padding:5px 0;position:absolute;text-align:center;width:100px}.art-video-player .art-control-selector .art-selector-list .art-selector-item{height:30px;line-height:30px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 2px rgba(0,0,0,.5);white-space:nowrap}.art-video-player .art-control-selector .art-selector-list .art-selector-item:hover{background-color:hsla(0,0%,100%,.1)}.art-video-player .art-control-selector:hover .art-selector-list{display:block}:root{--balloon-color:hsla(0,0%,6%,.95);--balloon-font-size:12px;--balloon-move:4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{cursor:pointer;position:relative}[aria-label][data-balloon-pos]:after{background:var(--balloon-color);border-radius:2px;color:#fff;content:attr(aria-label);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:var(--balloon-font-size);font-style:normal;font-weight:400;line-height:1.2;padding:.5em 1em;text-indent:0;text-shadow:none;white-space:nowrap}[aria-label][data-balloon-pos]:after,[aria-label][data-balloon-pos]:before{opacity:0;pointer-events:none;position:absolute;transition:all .18s ease-out .18s;z-index:10}[aria-label][data-balloon-pos]:before{border:5px solid transparent;border-top:5px solid var(--balloon-color);content:\"\";height:0;width:0}[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos]:hover:before{opacity:1;pointer-events:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:before{bottom:100%;left:50%;transform:translate(-50%,var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before{transform:translate(-50%)}\n/*# sourceMappingURL=data:application/json;base64,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K0JBRUUsY0FBZSxDQURmLGlCQUNpQixDQUNqQixxQ0FVRSwrQkFBZ0MsQ0FDaEMsaUJBQWtCLENBQ2xCLFVBQVcsQ0FDWCx3QkFBeUIsQ0FSekIsd0hBQXdJLENBSXhJLGtDQUFtQyxDQUZuQyxpQkFBa0IsQ0FEbEIsZUFBbUIsQ0FXbkIsZUFBZ0IsQ0FIaEIsZ0JBQWtCLENBVmxCLGFBQWMsQ0FJZCxnQkFBaUIsQ0FRakIsa0JBRWEsQ0FDZiwyRUFsQkUsU0FBVSxDQUNWLG1CQUFvQixDQWFwQixpQkFBa0IsQ0FabEIsaUNBQW9DLENBZXBDLFVBV2EsQ0FWZixzQ0FJRSw0QkFBc0MsQ0FBdEMseUNBQXNDLENBSXRDLFVBQVcsQ0FOWCxRQUFTLENBRFQsT0FTYSxDQUNmLHVGQUNFLFNBQVUsQ0FDVixtQkFBc0IsQ0FDeEIsMERBR0Usa0JBRXVCLENBQ3pCLHFIQUxFLFdBQVksQ0FDWixRQUFTLENBRVQsNkNBQStDLENBQy9DLG9CQUt1QixDQUd6QixpSUFDRSx5QkFBK0IiLCJmaWxlIjoiaW5kZXguc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5hcnQtdmlkZW8tcGxheWVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgei1pbmRleDogMjA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG91dGxpbmU6IDA7XG4gIHpvb206IDE7XG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGNvbG9yOiAjZWVlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBkaXJlY3Rpb246IGx0cjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMS4zO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgLW1zLWhpZ2gtY29udHJhc3QtYWRqdXN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyICoge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDVweDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY2OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pY29uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWljb24gc3ZnIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDsgfVxuICBAc3VwcG9ydHMgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBpbml0aWFsKSBvciAoYmFja2Ryb3AtZmlsdGVyOiBpbml0aWFsKSB7XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1iYWNrZHJvcC1maWx0ZXIge1xuICAgICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCk7XG4gICAgICBiYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDE4MCUpIGJsdXIoMjBweCk7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNykgIWltcG9ydGFudDsgfSB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtdmlkZW8ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXBvc3RlciB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTE7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc3VidGl0bGUge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDIwO1xuICBib3R0b206IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwLjVweCAwLjVweCAwLjVweCByZ2JhKDAsIDAsIDAsIDAuNSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zdWJ0aXRsZSBwIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICBtYXJnaW46IDVweCAwIDA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJpbGluZ3VhbCBwOm50aC1jaGlsZChuICsgMikge1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuNik7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciB0b3A7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LXN1YnRpdGxlLXNob3cgLmFydC1zdWJ0aXRsZSB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250cm9sLXNob3cgLmFydC1zdWJ0aXRsZSB7XG4gIGJvdHRvbTogNTBweDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWRhbm11a3Uge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDMwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiA0MDtcbiAgbGVmdDogMDtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxheWVycyAuYXJ0LWxheWVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbGF5ZXItc2hvdyAuYXJ0LWxheWVycyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDUwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbWFzayAuYXJ0LXN0YXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAzMHB4O1xuICAgIGJvdHRvbTogNTVweDtcbiAgICB3aWR0aDogNjBweDtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1tYXNrLXNob3cgLmFydC1tYXNrIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxvYWRpbmcge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDcwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbG9hZGluZy1zaG93IC5hcnQtbG9hZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDYwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBoZWlnaHQ6IDEwMHB4O1xuICBwYWRkaW5nOiA1NXB4IDEwcHggMDtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIGJhY2tncm91bmQ6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBREdDQVlBQUFBVCtPcUZBQUFBZGtsRVFWUW96NDJRUVE3QUlBZ0VGL1QvRCtrYnEvUldBbG5ReXlhekE0YW9BQjRGc0JTQS9iRmp1RjFFT0w3VmJySXJCdXVzbXJ0NFpaT1JmYjZlaGJXZG5SSEVJaUlUYUVVS2E1RUpxVWFrUlNhRVlCSlNDWTJkRXN0UVk3QXV4YWh3WEZydlptV2wycmg0SlowN3o5ZEx0ZXNmTmo1cTBGVTNBNU9iYndBQUFBQkpSVTVFcmtKZ2dnPT0pIHJlcGVhdC14IGJvdHRvbTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBoZWlnaHQ6IDRweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBoZWlnaHQ6IDUwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1sb2FkZWQge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1wbGF5ZWQge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiAyMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHdpZHRoOiAwOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWhpZ2hsaWdodCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDMwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1oaWdobGlnaHQgc3BhbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgd2lkdGg6IDdweDtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy1pbmRpY2F0b3Ige1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHotaW5kZXg6IDQwO1xuICAgICAgICAgIHRvcDogLTVweDtcbiAgICAgICAgICBsZWZ0OiAtNi41cHg7XG4gICAgICAgICAgd2lkdGg6IDEzcHg7XG4gICAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzcy1pbm5lciAuYXJ0LXByb2dyZXNzLWluZGljYXRvci5hcnQtc2hvdy1pbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtdGlwIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgICB0b3A6IC0yNXB4O1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMHB4O1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzczpob3ZlciAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3M6aG92ZXIgLmFydC1jb250cm9sLXByb2dyZXNzLWlubmVyIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLFxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1wcm9ncmVzczpob3ZlciAuYXJ0LWNvbnRyb2wtcHJvZ3Jlc3MtaW5uZXIgLmFydC1wcm9ncmVzcy10aXAge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1wcm9ncmVzcyAuYXJ0LWNvbnRyb2wtdGh1bWJuYWlscyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiA4cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1sb29wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB0b3A6IDA7XG4gICAgICByaWdodDogMDtcbiAgICAgIGJvdHRvbTogMDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LXByb2dyZXNzIC5hcnQtY29udHJvbC1sb29wIC5hcnQtbG9vcC1wb2ludCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAtMnB4O1xuICAgICAgICB3aWR0aDogMnB4O1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgcGFkZGluZzogNXB4IDA7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbHMtbGVmdCxcbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbHMtcmlnaHQge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sIHtcbiAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGhlaWdodDogMzZweDtcbiAgICAgIG1pbi13aWR0aDogMzZweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wgLmFydC1pY29uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBoZWlnaHQ6IDM2cHg7XG4gICAgICAgIHdpZHRoOiAzNnB4OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbDpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1vbmx5VGV4dCB7XG4gICAgICBwYWRkaW5nOiAwIDEwcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWUgLmFydC12b2x1bWUtcGFuZWwge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB3aWR0aDogMDtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRyYW5zaXRpb246IG1hcmdpbiAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpLCB3aWR0aCAwLjJzIGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjpiZWZvcmUge1xuICAgICAgICAgIGxlZnQ6IC01NHB4O1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtdm9sdW1lIC5hcnQtdm9sdW1lLXBhbmVsIC5hcnQtdm9sdW1lLXNsaWRlci1oYW5kbGU6OmFmdGVyIHtcbiAgICAgICAgICBsZWZ0OiA2cHg7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjpiZWZvcmUsIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXZvbHVtZSAuYXJ0LXZvbHVtZS1wYW5lbCAuYXJ0LXZvbHVtZS1zbGlkZXItaGFuZGxlOjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIGhlaWdodDogM3B4O1xuICAgICAgICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgICAgICAgd2lkdGg6IDYwcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC12b2x1bWU6aG92ZXIgLmFydC12b2x1bWUtcGFuZWwge1xuICAgICAgd2lkdGg6IDYwcHg7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHotaW5kZXg6IDMwOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWJvdHRvbSAuYXJ0LWNvbnRyb2xzIC5hcnQtY29udHJvbC1xdWFsaXR5IC5hcnQtcXVhbGl0eXMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMzVweDtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBwYWRkaW5nOiA1cHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cbiAgICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1ib3R0b20gLmFydC1jb250cm9scyAuYXJ0LWNvbnRyb2wtcXVhbGl0eSAuYXJ0LXF1YWxpdHlzIC5hcnQtcXVhbGl0eS1pdGVtIHtcbiAgICAgICAgICBoZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIHRleHQtc2hhZG93OiAwIDAgMnB4IHJnYmEoMCwgMCwgMCwgMC41KTsgfVxuICAgICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHkgLmFydC1xdWFsaXR5cyAuYXJ0LXF1YWxpdHktaXRlbTpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtYm90dG9tIC5hcnQtY29udHJvbHMgLmFydC1jb250cm9sLXF1YWxpdHk6aG92ZXIgLmFydC1xdWFsaXR5cyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250cm9sLXNob3cgLmFydC1ib3R0b20sIC5hcnQtdmlkZW8tcGxheWVyLmFydC1ob3ZlciAuYXJ0LWJvdHRvbSB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWVycm9yIC5hcnQtcHJvZ3Jlc3MtaW5kaWNhdG9yLFxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LWVycm9yIC5hcnQtcHJvZ3Jlc3MtdGlwLCAuYXJ0LXZpZGVvLXBsYXllci5hcnQtZGVzdHJveSAuYXJ0LXByb2dyZXNzLWluZGljYXRvcixcbi5hcnQtdmlkZW8tcGxheWVyLmFydC1kZXN0cm95IC5hcnQtcHJvZ3Jlc3MtdGlwIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbm90aWNlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDgwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LW5vdGljZSAuYXJ0LW5vdGljZS1pbm5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuLmFydC12aWRlby1wbGF5ZXIuYXJ0LW5vdGljZS1zaG93IC5hcnQtbm90aWNlIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTIwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMTVweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51IHNwYW4ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMCA3cHg7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnUgc3Bhbjpob3ZlciwgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250ZXh0bWVudXMgLmFydC1jb250ZXh0bWVudSBzcGFuLmFydC1jdXJyZW50IHtcbiAgICAgICAgY29sb3I6ICMwMGM5ZmY7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRleHRtZW51cyAuYXJ0LWNvbnRleHRtZW51OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udGV4dG1lbnVzIC5hcnQtY29udGV4dG1lbnU6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1jb250ZXh0bWVudS1zaG93IC5hcnQtY29udGV4dG1lbnVzIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogOTA7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb3BhY2l0eTogMDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogLTMwMHB4O1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMzAwcHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgb3ZlcmZsb3c6IGF1dG87IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciAuYXJ0LXNldHRpbmctYm9keSB7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWlubmVyIC5hcnQtc2V0dGluZy1ib2R5IC5hcnQtc2V0dGluZyB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XG4gICAgICAgIHBhZGRpbmc6IDEwcHggMTVweDsgfVxuICAgICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1pbm5lciAuYXJ0LXNldHRpbmctYm9keSAuYXJ0LXNldHRpbmcgLmFydC1zZXR0aW5nLWhlYWRlciB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8gLmFydC1yYWRpby1pdGVtIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBwYWRkaW5nOiAwIDJweDsgfVxuICAgICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctcmFkaW8gLmFydC1yYWRpby1pdGVtIGJ1dHRvbiB7XG4gICAgICAgIGhlaWdodDogMjJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4OyB9XG4gICAgICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhZGlvIC5hcnQtcmFkaW8taXRlbSBidXR0b246YWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhMWQ2OyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1yYWRpbyAuYXJ0LXJhZGlvLWl0ZW0uY3VycmVudCBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBhMWQ2OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXJhbmdlIGlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDNweDtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLWNoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LXNldHRpbmdzIC5hcnQtc2V0dGluZy1jaGVja2JveCBpbnB1dCB7XG4gICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICB3aWR0aDogMTRweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXVwbG9hZCB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXVwbG9hZCAuYXJ0LXVwbG9hZC1idG4ge1xuICAgICAgd2lkdGg6IDgwcHg7XG4gICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtc2V0dGluZ3MgLmFydC1zZXR0aW5nLXVwbG9hZCAuYXJ0LXVwbG9hZC12YWx1ZSB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGhlaWdodDogMjJweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1zZXR0aW5nLXNob3cgLmFydC1zZXR0aW5ncyB7XG4gIG9wYWNpdHk6IDE7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1zZXR0aW5nLXNob3cgLmFydC1zZXR0aW5ncyAuYXJ0LXNldHRpbmctaW5uZXIge1xuICAgIHJpZ2h0OiAwOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgdG9wOiAxMHB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiAzNTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC1mYW1pbHk6IE5vdG8gU2FucyBDSksgU0MgRGVtaUxpZ2h0LCBSb2JvdG8sIFNlZ29lIFVJLCBUYWhvbWEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDVweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbSAuYXJ0LWluZm8tdGl0bGUge1xuICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWluZm8gLmFydC1pbmZvLWl0ZW0gLmFydC1pbmZvLWNvbnRlbnQge1xuICAgICAgZmxleDogMTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVweDsgfVxuICAgIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtaW5mbyAuYXJ0LWluZm8taXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1pbmZvIC5hcnQtaW5mby1jbG9zZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNXB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1pbmZvLXNob3cgLmFydC1pbmZvIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtaGlkZS1jdXJzb3IgKiB7XG4gIGN1cnNvcjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyW2RhdGEtYXNwZWN0LXJhdGlvXSB2aWRlbyB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBvYmplY3QtZml0OiBmaWxsOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1mdWxsc2NyZWVuLXdlYiB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5OTtcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDsgfVxuXG4uYXJ0LWZ1bGxzY3JlZW4tcm90YXRlIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB6LWluZGV4OiA5OTk5O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6ICMwMDA7IH1cblxuLmFydC12aWRlby1wbGF5ZXIgLmFydC1taW5pLWhlYWRlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTEwO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBoZWlnaHQ6IDM1cHg7XG4gIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1taW5pLWhlYWRlciAuYXJ0LW1pbmktdGl0bGUge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogMCAxMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IG1vdmU7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1taW5pLWhlYWRlciAuYXJ0LW1pbmktY2xvc2Uge1xuICAgIHdpZHRoOiAzNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyLmFydC1pcy1kcmFnZ2luZyB7XG4gIG9wYWNpdHk6IDAuNzsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogOTk5OTtcbiAgd2lkdGg6IDQwMHB4O1xuICBoZWlnaHQ6IDIyNXB4O1xuICBib3gtc2hhZG93OiAwIDJweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTYpLCAwIDNweCA2cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7IH1cbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1taW5pLWhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaS5hcnQtaG92ZXIgLmFydC1taW5pLWhlYWRlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtbWFzayAuYXJ0LXN0YXRlIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtY29udGV4dG1lbnUsXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtYm90dG9tLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LWRhbm11LFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LWluZm8sXG4gIC5hcnQtdmlkZW8tcGxheWVyLmFydC1taW5pIC5hcnQtbGF5ZXJzLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LW5vdGljZSxcbiAgLmFydC12aWRlby1wbGF5ZXIuYXJ0LW1pbmkgLmFydC1zZXR0aW5nLFxuICAuYXJ0LXZpZGVvLXBsYXllci5hcnQtbWluaSAuYXJ0LXN1YnRpdGxlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFydC1hdXRvLXNpemUge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllcltkYXRhLWZsaXA9XCJob3Jpem9udGFsXCJdIC5hcnQtdmlkZW8ge1xuICB0cmFuc2Zvcm06IHNjYWxlWCgtMSk7IH1cblxuLmFydC12aWRlby1wbGF5ZXJbZGF0YS1mbGlwPVwidmVydGljYWxcIl0gLmFydC12aWRlbyB7XG4gIHRyYW5zZm9ybTogc2NhbGVZKC0xKTsgfVxuXG4uYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWxheWVycyAuYXJ0LWxheWVyLWxvZyB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMTBweDtcbiAgYm90dG9tOiAxMHB4O1xuICB3aWR0aDogMTIwcHg7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LXNoYWRvdzogMCAwIDJweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBwYWRkaW5nOiA1cHg7XG4gIGZvbnQtc2l6ZTogMTNweDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lOyB9XG4gIC5hcnQtdmlkZW8tcGxheWVyIC5hcnQtbGF5ZXJzIC5hcnQtbGF5ZXItbG9nIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsOyB9XG5cbi5hcnQtdmlkZW8tcGxheWVyIC5hcnQtY29udHJvbC1zZWxlY3RvciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3IgLmFydC1zZWxlY3Rvci1saXN0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDM1cHg7XG4gICAgd2lkdGg6IDEwMHB4O1xuICAgIHBhZGRpbmc6IDVweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4OyB9XG4gICAgLmFydC12aWRlby1wbGF5ZXIgLmFydC1jb250cm9sLXNlbGVjdG9yIC5hcnQtc2VsZWN0b3ItbGlzdCAuYXJ0LXNlbGVjdG9yLWl0ZW0ge1xuICAgICAgaGVpZ2h0OiAzMHB4O1xuICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAycHggcmdiYSgwLCAwLCAwLCAwLjUpOyB9XG4gICAgICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3IgLmFydC1zZWxlY3Rvci1saXN0IC5hcnQtc2VsZWN0b3ItaXRlbTpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTsgfVxuICAuYXJ0LXZpZGVvLXBsYXllciAuYXJ0LWNvbnRyb2wtc2VsZWN0b3I6aG92ZXIgLmFydC1zZWxlY3Rvci1saXN0IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG46cm9vdCB7XG4gIC0tYmFsbG9vbi1jb2xvcjogcmdiYSgxNiwgMTYsIDE2LCAwLjk1KTtcbiAgLS1iYWxsb29uLWZvbnQtc2l6ZTogMTJweDtcbiAgLS1iYWxsb29uLW1vdmU6IDRweDsgfVxuXG5idXR0b25bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuXG5bYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc10ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIHRleHQtaW5kZW50OiAwO1xuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgJ09wZW4gU2FucycsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LXN0eWxlOiBub3JtYWw7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1iYWxsb29uLWZvbnQtc2l6ZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tYmFsbG9vbi1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGNvbnRlbnQ6IGF0dHIoYXJpYS1sYWJlbCk7XG4gICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgei1pbmRleDogMTA7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdOmJlZm9yZSB7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuICAgIGJvcmRlcjogNXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci10b3AtY29sb3I6IHZhcigtLWJhbGxvb24tY29sb3IpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMThzIGVhc2Utb3V0IDAuMThzO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YmVmb3JlLCBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc106aG92ZXI6YWZ0ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YWZ0ZXIge1xuICAgIGJvdHRvbTogMTAwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCB2YXIoLS1iYWxsb29uLW1vdmUpKTtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3A7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106YmVmb3JlIHtcbiAgICBib3R0b206IDEwMCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIHZhcigtLWJhbGxvb24tbW92ZSkpO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcDsgfVxuICBbYXJpYS1sYWJlbF1bZGF0YS1iYWxsb29uLXBvc11bZGF0YS1iYWxsb29uLXBvcz0ndXAnXTpob3ZlcjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7IH1cbiAgW2FyaWEtbGFiZWxdW2RhdGEtYmFsbG9vbi1wb3NdW2RhdGEtYmFsbG9vbi1wb3M9J3VwJ106aG92ZXI6YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsgfVxuIl19 */"; styleInject(css_248z); var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -681,9 +681,9 @@ return obj; } - function ownKeys$o(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$n(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$o(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$o(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$o(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$n(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$n(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$n(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var b = 'boolean'; var s = 'string'; var n = 'number'; @@ -731,7 +731,6 @@ hotkey: b, pip: b, mutex: b, - light: b, backdrop: b, fullscreen: b, fullscreenWeb: b, @@ -745,9 +744,9 @@ whitelist: ["".concat(s, "|").concat(f, "|").concat(r)], layers: [component], contextmenu: [component], - controls: [_objectSpread$o(_objectSpread$o({}, component), {}, { + controls: [_objectSpread$n(_objectSpread$n({}, component), {}, { position: function position(value, type, paths) { - var position = ['top', 'left', 'right']; + var position = ['top', 'left', 'right', 'middle']; return errorHandle(position.includes(value), "".concat(paths.join('.'), " only accept ").concat(position.toString(), " as parameters")); } })], @@ -850,7 +849,6 @@ this.$container.innerHTML = Template.html; } - this.$undercover = this.query('.art-undercover'); this.$player = this.query('.art-video-player'); this.$video = this.query('.art-video'); this.$poster = this.query('.art-poster'); @@ -860,6 +858,7 @@ this.$progress = this.query('.art-progress'); this.$controls = this.query('.art-controls'); this.$controlsLeft = this.query('.art-controls-left'); + this.$controlsMiddle = this.query('.art-controls-middle'); this.$controlsRight = this.query('.art-controls-right'); this.$layer = this.query('.art-layers'); this.$loading = this.query('.art-loading'); @@ -882,10 +881,7 @@ if (backdrop) { addClass(this.$settingInner, 'art-backdrop-filter'); addClass(this.$contextmenu, 'art-backdrop-filter'); - - if (this.$info) { - addClass(this.$info, 'art-backdrop-filter'); - } + addClass(this.$info, 'art-backdrop-filter'); } if (this.art.isMobile) { @@ -901,8 +897,8 @@ } }, { key: "destroy", - value: function destroy(remove) { - if (remove) { + value: function destroy(removeHtml) { + if (removeHtml) { this.$container.innerHTML = ''; } else { addClass(this.$player, 'art-destroy'); @@ -911,7 +907,7 @@ }], [{ key: "html", get: function get() { - 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
\n
\n
\n
\n
Player version:
\n
3.5.31
\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
\xD7
\n
\n
\n
\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
\n
\n
\n
\n
Player version:
\n
3.5.31
\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
\xD7
\n
\n
\n
\n "; } }]); @@ -937,8 +933,6 @@ var zhCn = { "Video info": "统计信息", Close: Close$1, - "Light Off": "关灯", - "Light On": "开灯", "Video load failed": "加载失败", Volume: Volume$1, Play: Play$1, @@ -998,8 +992,6 @@ var zhTw = { "Video info": "統計訊息", Close: Close, - "Light Off": "關燈", - "Light On": "開燈", "Video load failed": "載入失敗", Volume: Volume, Play: Play, @@ -2168,19 +2160,6 @@ }); } - function lightMix(art, player) { - var $undercover = art.template.$undercover; - def(player, 'light', { - get: function get() { - return getStyle($undercover, 'display', false) !== 'none'; - }, - set: function set(value) { - setStyle($undercover, 'display', value ? 'block' : 'none'); - art.emit('light', value); - } - }); - } - function miniMix(art, player) { var i18n = art.i18n, option = art.option, @@ -2436,7 +2415,6 @@ resizeMix(art, this); rectMix(art, this); flipMix(art, this); - lightMix(art, this); miniMix(art, this); loopMin(art, this); rotateMix(art, this); @@ -2614,12 +2592,12 @@ return Component; }(); - function ownKeys$n(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$m(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$n(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$n(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$n(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$m(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$m(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$m(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function fullscreen$1(option) { return function (art) { - return _objectSpread$n(_objectSpread$n({}, option), {}, { + return _objectSpread$m(_objectSpread$m({}, option), {}, { tooltip: art.i18n.get('Fullscreen'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2638,12 +2616,12 @@ }; } - function ownKeys$m(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$m(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$m(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$m(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$l(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function fullscreenWeb$1(option) { return function (art) { - return _objectSpread$m(_objectSpread$m({}, option), {}, { + return _objectSpread$l(_objectSpread$l({}, option), {}, { tooltip: art.i18n.get('Web fullscreen'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2662,12 +2640,12 @@ }; } - function ownKeys$l(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$k(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$l(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$l(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$l(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$k(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$k(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$k(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function pip$1(option) { return function (art) { - return _objectSpread$l(_objectSpread$l({}, option), {}, { + return _objectSpread$k(_objectSpread$k({}, option), {}, { tooltip: art.i18n.get('PIP mode'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2686,12 +2664,12 @@ }; } - function ownKeys$k(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$j(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$k(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$k(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$k(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$j(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$j(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$j(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function playAndPause(option) { return function (art) { - return _objectSpread$k(_objectSpread$k({}, option), {}, { + return _objectSpread$j(_objectSpread$j({}, option), {}, { mounted: function mounted($control) { var proxy = art.events.proxy, icons = art.icons, @@ -2735,9 +2713,9 @@ }; } - function ownKeys$j(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$i(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$j(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$j(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$j(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$i(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function getPosFromEvent(art, event) { var $progress = art.template.$progress, player = art.player; @@ -2763,7 +2741,7 @@ theme = _art$option.theme, proxy = art.events.proxy, player = art.player; - return _objectSpread$j(_objectSpread$j({}, option), {}, { + return _objectSpread$i(_objectSpread$i({}, option), {}, { html: "\n
\n
\n
\n
\n
\n
\n
\n "), mounted: function mounted($control) { var isDroging = false; @@ -2879,12 +2857,12 @@ }; } - function ownKeys$i(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$h(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$i(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$i(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$i(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$h(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function subtitle$1(option) { return function (art) { - return _objectSpread$i(_objectSpread$i({}, option), {}, { + return _objectSpread$h(_objectSpread$h({}, option), {}, { tooltip: art.i18n.get('Hide subtitle'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -2903,12 +2881,12 @@ }; } - function ownKeys$h(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$g(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$h(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$h(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$h(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$g(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function time(option) { return function (art) { - return _objectSpread$h(_objectSpread$h({}, option), {}, { + return _objectSpread$g(_objectSpread$g({}, option), {}, { mounted: function mounted($control) { function getTime() { var newTime = "".concat(secondToTime(art.player.currentTime), " / ").concat(secondToTime(art.player.duration)); @@ -2927,12 +2905,12 @@ }; } - function ownKeys$g(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$f(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$g(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$g(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$g(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function volume$1(option) { return function (art) { - return _objectSpread$g(_objectSpread$g({}, option), {}, { + return _objectSpread$f(_objectSpread$f({}, option), {}, { mounted: function mounted($control) { var proxy = art.events.proxy, icons = art.icons, @@ -3010,12 +2988,12 @@ }; } - function ownKeys$f(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$f(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$f(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$f(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function setting$1(option) { return function (art) { - return _objectSpread$f(_objectSpread$f({}, option), {}, { + return _objectSpread$e(_objectSpread$e({}, option), {}, { tooltip: art.i18n.get('Show setting'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -3034,12 +3012,12 @@ }; } - function ownKeys$e(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$e(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$e(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$e(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function thumbnails(option) { return function (art) { - return _objectSpread$e(_objectSpread$e({}, option), {}, { + return _objectSpread$d(_objectSpread$d({}, option), {}, { mounted: function mounted($control) { var thumbnails = art.option.thumbnails, $progress = art.template.$progress, @@ -3097,12 +3075,12 @@ }; } - function ownKeys$d(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$d(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$d(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$d(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function screenshot$1(option) { return function (art) { - return _objectSpread$d(_objectSpread$d({}, option), {}, { + return _objectSpread$c(_objectSpread$c({}, option), {}, { tooltip: art.i18n.get('Screenshot'), mounted: function mounted($control) { var proxy = art.events.proxy, @@ -3117,9 +3095,9 @@ }; } - function ownKeys$c(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$c(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$c(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$c(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function quality(option) { return function (art) { @@ -3127,7 +3105,7 @@ var qualityDefault = qualityOption.find(function (item) { return item.default; }) || qualityOption[0]; - return _objectSpread$c(_objectSpread$c({}, option), {}, { + return _objectSpread$b(_objectSpread$b({}, option), {}, { html: qualityDefault ? qualityDefault.name : '', selector: qualityOption, onSelect: function onSelect(item) { @@ -3137,12 +3115,12 @@ }; } - function ownKeys$b(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$b(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$b(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$b(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function loop(option) { return function (art) { - return _objectSpread$b(_objectSpread$b({}, option), {}, { + return _objectSpread$a(_objectSpread$a({}, option), {}, { mounted: function mounted($control) { var player = art.player; var $left = append($control, ""); @@ -3327,14 +3305,14 @@ return Control; }(Component); - function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$a(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function playbackRate$1(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$a(_objectSpread$a({}, option), {}, { + return _objectSpread$9(_objectSpread$9({}, option), {}, { html: "".concat(i18n.get('Play speed'), ":\n 0.5\n 0.75\n ").concat(i18n.get('Normal'), "\n 1.25\n 1.5\n 2.0\n "), click: function click(contextmenu, event) { var rate = event.target.dataset.rate; @@ -3359,14 +3337,14 @@ }; } - function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$9(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function aspectRatio$1(option) { return function (art) { var i18n = art.i18n, player = art.player; - return _objectSpread$9(_objectSpread$9({}, option), {}, { + return _objectSpread$8(_objectSpread$8({}, option), {}, { html: "".concat(i18n.get('Aspect ratio'), ":\n ").concat(i18n.get('Default'), "\n 4:3\n 16:9\n "), click: function click(contextmenu, event) { var ratio = event.target.dataset.ratio; @@ -3391,13 +3369,13 @@ }; } - function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$8(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function info(option) { return function (art) { - return _objectSpread$8(_objectSpread$8({}, option), {}, { + return _objectSpread$7(_objectSpread$7({}, option), {}, { html: art.i18n.get('Video info'), click: function click(contextmenu) { art.info.show = true; @@ -3407,37 +3385,14 @@ }; } - function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } - - function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$7(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - - function version(option) { - return _objectSpread$7(_objectSpread$7({}, option), {}, { - html: 'ArtPlayer 3.5.31' - }); - } - function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - function light(option) { - return function (art) { - var i18n = art.i18n, - player = art.player; - return _objectSpread$6(_objectSpread$6({}, option), {}, { - html: i18n.get('Light Off'), - click: function click(contextmenu) { - player.light = !player.light; - contextmenu.show = false; - }, - mounted: function mounted($menu) { - art.on('light', function (value) { - $menu.innerText = i18n.get(value ? 'Light On' : 'Light Off'); - }); - } - }); - }; + function version(option) { + return _objectSpread$6(_objectSpread$6({}, option), {}, { + html: 'ArtPlayer 3.5.31' + }); } function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } @@ -3502,12 +3457,6 @@ index: 40 })); - _this.add(light({ - disable: !option.light, - name: 'light', - index: 50 - })); - _this.add(close({ disable: false, name: 'close', @@ -5057,7 +5006,6 @@ hotkey: true, pip: false, mutex: true, - light: false, backdrop: true, fullscreen: false, fullscreenWeb: false, diff --git a/docs/uncompiled/artplayer.js.map b/docs/uncompiled/artplayer.js.map index 91bc70eea..167c6c325 100644 --- a/docs/uncompiled/artplayer.js.map +++ b/docs/uncompiled/artplayer.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/inherits.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/typeof.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/construct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/lightMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/light.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: b,\n playbackRate: b,\n aspectRatio: b,\n screenshot: b,\n setting: b,\n hotkey: b,\n pip: b,\n mutex: b,\n light: b,\n backdrop: b,\n fullscreen: b,\n fullscreenWeb: b,\n subtitleOffset: b,\n miniProgressBar: b,\n localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, 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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$undercover = this.query('.art-undercover');\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n if (this.$info) {\n addClass(this.$info, 'art-backdrop-filter');\n }\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(remove) {\n if (remove) {\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.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle();\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n if (player.playing) {\n player.play();\n } else {\n player.pause();\n }\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n value() {\n const promise = $video.play();\n\n if (promise.then) {\n promise.then().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter((item) => item !== art)\n .forEach((item) => {\n item.player.pause();\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n value() {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n value() {\n if (player.playing) {\n player.pause();\n } else {\n player.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play();\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { def, getStyle, setStyle } from '../utils';\n\nexport default function lightMix(art, player) {\n const { $undercover } = art.template;\n\n def(player, 'light', {\n get() {\n return getStyle($undercover, 'display', false) !== 'none';\n },\n set(value) {\n setStyle($undercover, 'display', value ? 'block' : 'none');\n art.emit('light', value);\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 lightMix from './lightMix';\nimport miniMix from './miniMix';\nimport loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n lightMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
${item.name}
`).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play();\n });\n\n proxy($pause, 'click', () => {\n player.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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle();\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle();\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __VERSION__',\n };\n}\n","export default function light(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: i18n.get('Light Off'),\n click: contextmenu => {\n player.light = !player.light;\n contextmenu.show = false;\n },\n mounted: $menu => {\n art.on('light', value => {\n $menu.innerText = i18n.get(value ? 'Light On' : 'Light Off');\n });\n },\n };\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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\nimport info from './info';\nimport version from './version';\nimport light from './light';\nimport close from './close';\n\nexport default class Contextmenu extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'contextmenu';\n\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n light({\n disable: !option.light,\n name: 'light',\n index: 50,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle();\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Rotate')}: 0°\n
\n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

${escape(msg)}

`);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: false,\n playbackRate: false,\n aspectRatio: false,\n screenshot: false,\n setting: false,\n hotkey: true,\n pip: false,\n mutex: true,\n light: false,\n backdrop: true,\n fullscreen: false,\n fullscreenWeb: false,\n subtitleOffset: false,\n miniProgressBar: false,\n localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["setPrototypeOf","assertThisInitialized","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","light","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","prototypes","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$undercover","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","playing","play","pause","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pauseMix","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","paused","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","lightMix","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","superPropBase","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","$track","textTracks","textTrack","activeCues","val","activeCue","opt","subUrl","kind","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","removeHtml","splice","switcher","preload","console"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/inherits.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/typeof.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/construct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: 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 localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, paths) => {\n const position = ['top', 'left', 'right', 'middle'];\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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\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
\n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsMiddle = this.query('.art-controls-middle');\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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n addClass(this.$info, 'art-backdrop-filter');\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
\n \n
\n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n this.$container.innerHTML = '';\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle();\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n if (player.playing) {\n player.play();\n } else {\n player.pause();\n }\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n value() {\n const promise = $video.play();\n\n if (promise.then) {\n promise.then().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter((item) => item !== art)\n .forEach((item) => {\n item.player.pause();\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n value() {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n value() {\n if (player.playing) {\n player.pause();\n } else {\n player.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play();\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
${item.name}
`).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play();\n });\n\n proxy($pause, 'click', () => {\n player.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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
\n
\n
\n
\n
\n
\n
\n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle();\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
');\n const $volumeHandle = append($volumePanel, '
');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle();\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\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\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

${escape(item)}

`)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle();\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Flip')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Rotate')}: 0°\n
\n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
${i18n.get('Aspect ratio')}
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
\n ${i18n.get('Play speed')}: 1.0x\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
\n ${i18n.get('Subtitle offset time')}: 0s\n
\n
\n \n
\n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
\n ${i18n.get('Local Video')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
\n ${i18n.get('Local Subtitle')}\n
\n
\n
${i18n.get('Open')}
\n
\n
\n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

${escape(msg)}

`);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: 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 localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["setPrototypeOf","assertThisInitialized","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","prototypes","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsMiddle","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","removeHtml","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","playing","play","pause","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pauseMix","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","paused","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","superPropBase","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","$track","textTracks","textTrack","activeCues","val","activeCue","opt","subUrl","kind","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","splice","switcher","preload","console"],"mappings":"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"} \ No newline at end of file diff --git a/images/alipay.jpg b/images/alipay.jpg deleted file mode 100644 index 1d67b3184b9324aa6436e56732a45d166658ba63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70061 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 diff --git a/images/wechatpay.jpg b/images/wechatpay.jpg deleted file mode 100644 index 724d83673590f5c7a0349e5360c29ef3a5995cd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107347 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

Ut=h@N= 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 { - const { i18n, player } = art; - return { - ...option, - html: i18n.get('Light Off'), - click: contextmenu => { - player.light = !player.light; - contextmenu.show = false; - }, - mounted: $menu => { - art.on('light', value => { - $menu.innerText = i18n.get(value ? 'Light On' : 'Light Off'); - }); - }, - }; - }; -} diff --git a/packages/artplayer/src/i18n/zh-cn.json b/packages/artplayer/src/i18n/zh-cn.json index 0fda3344c..f26dee8da 100644 --- a/packages/artplayer/src/i18n/zh-cn.json +++ b/packages/artplayer/src/i18n/zh-cn.json @@ -1,8 +1,6 @@ { "Video info": "统计信息", "Close": "关闭", - "Light Off": "关灯", - "Light On": "开灯", "Video load failed": "加载失败", "Volume": "音量", "Play": "播放", diff --git a/packages/artplayer/src/i18n/zh-tw.json b/packages/artplayer/src/i18n/zh-tw.json index 99179f0c6..ced79de59 100644 --- a/packages/artplayer/src/i18n/zh-tw.json +++ b/packages/artplayer/src/i18n/zh-tw.json @@ -1,8 +1,6 @@ { "Video info": "統計訊息", "Close": "關閉", - "Light Off": "關燈", - "Light On": "開燈", "Video load failed": "載入失敗", "Volume": "音量", "Play": "播放", diff --git a/packages/artplayer/src/index.js b/packages/artplayer/src/index.js index 3e72b3a85..d576ec8e8 100644 --- a/packages/artplayer/src/index.js +++ b/packages/artplayer/src/index.js @@ -126,7 +126,6 @@ export default class Artplayer extends Emitter { hotkey: true, pip: false, mutex: true, - light: false, backdrop: true, fullscreen: false, fullscreenWeb: false, diff --git a/packages/artplayer/src/player/index.js b/packages/artplayer/src/player/index.js index a81821267..df76c762b 100644 --- a/packages/artplayer/src/player/index.js +++ b/packages/artplayer/src/player/index.js @@ -23,7 +23,6 @@ import playingMix from './playingMix'; import autoSizeMix from './autoSizeMix'; import rectMix from './rectMix'; import flipMix from './flipMix'; -import lightMix from './lightMix'; import miniMix from './miniMix'; import loopMin from './loopMin'; import rotateMix from './rotateMix'; @@ -57,7 +56,6 @@ export default class Player { autoSizeMix(art, this); rectMix(art, this); flipMix(art, this); - lightMix(art, this); miniMix(art, this); loopMin(art, this); rotateMix(art, this); diff --git a/packages/artplayer/src/player/lightMix.js b/packages/artplayer/src/player/lightMix.js deleted file mode 100644 index f4cc8f0f3..000000000 --- a/packages/artplayer/src/player/lightMix.js +++ /dev/null @@ -1,15 +0,0 @@ -import { def, getStyle, setStyle } from '../utils'; - -export default function lightMix(art, player) { - const { $undercover } = art.template; - - def(player, 'light', { - get() { - return getStyle($undercover, 'display', false) !== 'none'; - }, - set(value) { - setStyle($undercover, 'display', value ? 'block' : 'none'); - art.emit('light', value); - }, - }); -} diff --git a/packages/artplayer/src/scheme/index.js b/packages/artplayer/src/scheme/index.js index b0b601b8e..9d65aa01f 100644 --- a/packages/artplayer/src/scheme/index.js +++ b/packages/artplayer/src/scheme/index.js @@ -48,7 +48,6 @@ export default { hotkey: b, pip: b, mutex: b, - light: b, backdrop: b, fullscreen: b, fullscreenWeb: b, @@ -66,7 +65,7 @@ export default { { ...component, position: (value, type, paths) => { - const position = ['top', 'left', 'right']; + const position = ['top', 'left', 'right', 'middle']; return errorHandle( position.includes(value), `${paths.join('.')} only accept ${position.toString()} as parameters`, diff --git a/packages/artplayer/src/style/artplayer.scss b/packages/artplayer/src/style/artplayer.scss index 7807d1f75..42809e158 100644 --- a/packages/artplayer/src/style/artplayer.scss +++ b/packages/artplayer/src/style/artplayer.scss @@ -1,15 +1,3 @@ -.art-undercover { - background: #000; - position: fixed; - top: 0; - left: 0; - display: none; - height: 100%; - width: 100%; - opacity: 0.9; - z-index: 10; -} - .art-video-player { display: flex; position: relative; diff --git a/packages/artplayer/src/template.js b/packages/artplayer/src/template.js index 1a6610094..c80906e8e 100644 --- a/packages/artplayer/src/template.js +++ b/packages/artplayer/src/template.js @@ -25,7 +25,6 @@ export default class Template { static get html() { return ` -

@@ -39,6 +38,7 @@ export default class Template {
+
@@ -102,7 +102,6 @@ export default class Template { this.$container.innerHTML = Template.html; } - this.$undercover = this.query('.art-undercover'); this.$player = this.query('.art-video-player'); this.$video = this.query('.art-video'); this.$poster = this.query('.art-poster'); @@ -112,6 +111,7 @@ export default class Template { this.$progress = this.query('.art-progress'); this.$controls = this.query('.art-controls'); this.$controlsLeft = this.query('.art-controls-left'); + this.$controlsMiddle = this.query('.art-controls-middle'); this.$controlsRight = this.query('.art-controls-right'); this.$layer = this.query('.art-layers'); this.$loading = this.query('.art-loading'); @@ -135,9 +135,7 @@ export default class Template { if (backdrop) { addClass(this.$settingInner, 'art-backdrop-filter'); addClass(this.$contextmenu, 'art-backdrop-filter'); - if (this.$info) { - addClass(this.$info, 'art-backdrop-filter'); - } + addClass(this.$info, 'art-backdrop-filter'); } if (this.art.isMobile) { @@ -155,8 +153,8 @@ export default class Template { this.$video = this.query('.art-video'); } - destroy(remove) { - if (remove) { + destroy(removeHtml) { + if (removeHtml) { this.$container.innerHTML = ''; } else { addClass(this.$player, 'art-destroy'); diff --git a/packages/artplayer/types/artplayer.d.ts b/packages/artplayer/types/artplayer.d.ts index d6c614845..4d457eb9b 100644 --- a/packages/artplayer/types/artplayer.d.ts +++ b/packages/artplayer/types/artplayer.d.ts @@ -7,7 +7,7 @@ type Component = { click?: Function; mounted?: Function; tooltip?: string; - position?: 'top' | 'left' | 'right'; + position?: 'top' | 'left' | 'right' | 'middle'; selector?: { name: string; }[]; @@ -38,7 +38,6 @@ export default class Artplayer { hotkey?: boolean; pip?: boolean; mutex?: boolean; - light?: boolean; backdrop?: boolean; fullscreen?: boolean; fullscreenWeb?: boolean; From 3e593c4b09c0ce2d385c31ef3745950d927a1da6 Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 14:27:29 +0800 Subject: [PATCH 04/61] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/assets/example/ass.js | 6 ---- docs/assets/example/blur.js | 25 -------------- docs/assets/example/gif.js | 39 ---------------------- docs/assets/example/index.js | 1 - docs/index.html | 24 ------------- docs/uncompiled/artplayer.js | 4 +-- docs/uncompiled/artplayer.js.map | 2 +- packages/artplayer/src/control/setting.js | 2 +- packages/artplayer/src/control/subtitle.js | 2 +- 9 files changed, 5 insertions(+), 100 deletions(-) delete mode 100644 docs/assets/example/ass.js delete mode 100644 docs/assets/example/blur.js delete mode 100644 docs/assets/example/gif.js diff --git a/docs/assets/example/ass.js b/docs/assets/example/ass.js deleted file mode 100644 index a4141e16b..000000000 --- a/docs/assets/example/ass.js +++ /dev/null @@ -1,6 +0,0 @@ -var art = new Artplayer({ - container: '.artplayer-app', - url: 'https://artplayer.org/assets/sample/video.mp4', - autoSize: true, - plugins: [artplayerPluginAss('/assets/sample/subtitle.ass')], -}); diff --git a/docs/assets/example/blur.js b/docs/assets/example/blur.js deleted file mode 100644 index ba815af0f..000000000 --- a/docs/assets/example/blur.js +++ /dev/null @@ -1,25 +0,0 @@ -var art = new Artplayer({ - container: '.artplayer-app', - url: '/assets/sample/video.mp4', - autoSize: true, - moreVideoAttr: { - crossOrigin: 'anonymous', - }, - layers: [ - { - style: { - position: 'absolute', - top: '50%', - left: '50%', - width: '200px', - height: '200px', - margin: '-100px 0 0 -100px', - border: '1px solid rgba(255, 255, 255, 0.1)', - }, - mounted($layer) { - art.plugins.artplayerPluginBlur.attach($layer); - }, - }, - ], - plugins: [artplayerPluginBlur], -}); diff --git a/docs/assets/example/gif.js b/docs/assets/example/gif.js deleted file mode 100644 index 7f25f4c35..000000000 --- a/docs/assets/example/gif.js +++ /dev/null @@ -1,39 +0,0 @@ -var art = new Artplayer({ - container: '.artplayer-app', - url: '/assets/sample/video.mp4', - title: '【新海诚动画】『秒速5センチメートル』', - autoSize: true, - localVideo: true, - moreVideoAttr: { - crossOrigin: 'anonymous', - }, - controls: [ - { - name: 'gif', - position: 'right', - html: 'Create GIF', - mounted: $gif => { - art.plugins.artplayerPluginGif.attach($gif); - }, - }, - { - name: 'open', - position: 'right', - html: 'Local Video', - mounted: $open => { - art.plugins.localVideo.attach($open); - }, - }, - ], - plugins: [artplayerPluginGif], -}); - -var $popups = document.querySelector('.popups'); -var $popinner = document.querySelector('.popinner'); -art.on('artplayerPluginGif', image => { - $popups.style.display = 'flex'; - var animatedImage = document.createElement('img'); - animatedImage.src = image; - $popinner.innerHTML = ''; - $popinner.appendChild(animatedImage); -}); diff --git a/docs/assets/example/index.js b/docs/assets/example/index.js index ba6e236b1..1796d8b18 100644 --- a/docs/assets/example/index.js +++ b/docs/assets/example/index.js @@ -25,7 +25,6 @@ var art = new Artplayer({ localSubtitle: true, networkMonitor: false, mutex: true, - light: true, backdrop: true, log: true, theme: '#ffad00', diff --git a/docs/index.html b/docs/index.html index 219939dba..edcc02af4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -33,9 +33,6 @@
  • artplayer-plugin-backlight
  • -
  • - artplayer-plugin-gif -
  • -
    Document Github -
    - Donate - -
    Run Code
    diff --git a/docs/uncompiled/artplayer.js b/docs/uncompiled/artplayer.js index 32e035a97..8ede60698 100644 --- a/docs/uncompiled/artplayer.js +++ b/docs/uncompiled/artplayer.js @@ -2871,7 +2871,7 @@ subtitle = art.subtitle; append($control, icons.subtitle); proxy($control, 'click', function () { - subtitle.toggle(); + subtitle.toggle = true; }); art.on('subtitle', function (value) { tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle')); @@ -3002,7 +3002,7 @@ setting = art.setting; append($control, icons.setting); proxy($control, 'click', function () { - setting.toggle(); + setting.toggle = true; }); art.on('setting', function (value) { tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting')); diff --git a/docs/uncompiled/artplayer.js.map b/docs/uncompiled/artplayer.js.map index 167c6c325..876fe734a 100644 --- a/docs/uncompiled/artplayer.js.map +++ b/docs/uncompiled/artplayer.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/inherits.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/typeof.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/construct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: 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 localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, paths) => {\n const position = ['top', 'left', 'right', 'middle'];\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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \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
    \n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsMiddle = this.query('.art-controls-middle');\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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n addClass(this.$info, 'art-backdrop-filter');\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
    \n \n
    \n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n this.$container.innerHTML = '';\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle();\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n if (player.playing) {\n player.play();\n } else {\n player.pause();\n }\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n value() {\n const promise = $video.play();\n\n if (promise.then) {\n promise.then().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter((item) => item !== art)\n .forEach((item) => {\n item.player.pause();\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n value() {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n value() {\n if (player.playing) {\n player.pause();\n } else {\n player.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play();\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
    ${item.name}
    `).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play();\n });\n\n proxy($pause, 'click', () => {\n player.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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle();\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
    ');\n const $volumeHandle = append($volumePanel, '
    ');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle();\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\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\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

    ${escape(item)}

    `)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle();\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
    ${i18n.get('Flip')}
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
    \n ${i18n.get('Rotate')}: 0°\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
    ${i18n.get('Aspect ratio')}
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
    \n ${i18n.get('Play speed')}: 1.0x\n
    \n
    \n \n
    \n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
    \n ${i18n.get('Subtitle offset time')}: 0s\n
    \n
    \n \n
    \n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
    \n ${i18n.get('Local Video')}\n
    \n
    \n
    ${i18n.get('Open')}
    \n
    \n
    \n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
    \n ${i18n.get('Local Subtitle')}\n
    \n
    \n
    ${i18n.get('Open')}
    \n
    \n
    \n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

    ${escape(msg)}

    `);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: 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 localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["setPrototypeOf","assertThisInitialized","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","prototypes","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsMiddle","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","removeHtml","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","playing","play","pause","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pauseMix","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","paused","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","superPropBase","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","$track","textTracks","textTrack","activeCues","val","activeCue","opt","subUrl","kind","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","splice","switcher","preload","console"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer.js","sources":["../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/classCallCheck.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/createClass.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/inherits.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/typeof.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/getPrototypeOf.js","../../node_modules/_style-inject@0.3.0@style-inject/dist/style-inject.es.js","../../packages/artplayer/node_modules/_option-validator@2.0.6@option-validator/dist/option-validator.js","../../packages/artplayer/src/utils/emitter.js","../../packages/artplayer/src/utils/compatibility.js","../../packages/artplayer/src/utils/dom.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeFunction.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/construct.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/wrapNativeSuper.js","../../packages/artplayer/src/utils/error.js","../../packages/artplayer/src/utils/subtitle.js","../../packages/artplayer/src/utils/file.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayLikeToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/iterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/nonIterableSpread.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/toConsumableArray.js","../../packages/artplayer/src/utils/property.js","../../packages/artplayer/src/utils/time.js","../../packages/artplayer/src/utils/format.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/defineProperty.js","../../packages/artplayer/src/scheme/index.js","../../packages/artplayer/src/config/index.js","../../packages/artplayer/src/whitelist.js","../../packages/artplayer/src/template.js","../../packages/artplayer/src/i18n/index.js","../../packages/artplayer/src/player/urlMix.js","../../packages/artplayer/src/player/attrInit.js","../../packages/artplayer/src/player/eventInit.js","../../packages/artplayer/src/player/exclusiveInit.js","../../packages/artplayer/src/player/playMix.js","../../packages/artplayer/src/player/pauseMix.js","../../packages/artplayer/src/player/toggleMix.js","../../packages/artplayer/src/player/seekMix.js","../../packages/artplayer/src/player/volumeMix.js","../../packages/artplayer/src/player/currentTimeMix.js","../../packages/artplayer/src/player/durationMix.js","../../packages/artplayer/src/player/switchMix.js","../../packages/artplayer/src/player/playbackRateMix.js","../../packages/artplayer/src/player/aspectRatioMix.js","../../packages/artplayer/src/player/screenshotMix.js","../../packages/artplayer/node_modules/screenfull/dist/screenfull.js","../../packages/artplayer/src/player/fullscreenMix.js","../../packages/artplayer/src/player/fullscreenWebMix.js","../../packages/artplayer/src/player/fullscreenRotateMix.js","../../packages/artplayer/src/player/pipMix.js","../../packages/artplayer/src/player/loadedMix.js","../../packages/artplayer/src/player/playedMix.js","../../packages/artplayer/src/player/playingMix.js","../../packages/artplayer/src/player/autoSizeMix.js","../../packages/artplayer/src/player/rectMix.js","../../packages/artplayer/src/player/flipMix.js","../../packages/artplayer/src/player/miniMix.js","../../packages/artplayer/src/player/loopMin.js","../../packages/artplayer/src/player/rotateMix.js","../../packages/artplayer/src/player/posterMix.js","../../packages/artplayer/src/player/index.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/superPropBase.js","../../node_modules/_@babel_runtime@7.16.3@@babel/runtime/helpers/esm/get.js","../../packages/artplayer/src/utils/component.js","../../packages/artplayer/src/control/fullscreen.js","../../packages/artplayer/src/control/fullscreenWeb.js","../../packages/artplayer/src/control/pip.js","../../packages/artplayer/src/control/playAndPause.js","../../packages/artplayer/src/control/progress.js","../../packages/artplayer/src/control/subtitle.js","../../packages/artplayer/src/control/time.js","../../packages/artplayer/src/control/volume.js","../../packages/artplayer/src/control/setting.js","../../packages/artplayer/src/control/thumbnails.js","../../packages/artplayer/src/control/screenshot.js","../../packages/artplayer/src/control/quality.js","../../packages/artplayer/src/control/loop.js","../../packages/artplayer/src/control/index.js","../../packages/artplayer/src/contextmenu/playbackRate.js","../../packages/artplayer/src/contextmenu/aspectRatio.js","../../packages/artplayer/src/contextmenu/info.js","../../packages/artplayer/src/contextmenu/version.js","../../packages/artplayer/src/contextmenu/close.js","../../packages/artplayer/src/contextmenu/index.js","../../packages/artplayer/src/info.js","../../packages/artplayer/src/subtitle.js","../../packages/artplayer/src/events/clickInit.js","../../packages/artplayer/src/events/hoverInit.js","../../packages/artplayer/src/events/mousemoveInit.js","../../packages/artplayer/src/events/resizeInit.js","../../packages/artplayer/src/events/gestureInit.js","../../packages/artplayer/src/events/viewInit.js","../../packages/artplayer/src/events/index.js","../../packages/artplayer/src/hotkey.js","../../packages/artplayer/src/layer.js","../../packages/artplayer/src/loading.js","../../packages/artplayer/src/notice.js","../../packages/artplayer/src/mask.js","../../packages/artplayer/src/icons/index.js","../../packages/artplayer/src/setting/flip.js","../../packages/artplayer/src/setting/rotate.js","../../packages/artplayer/src/setting/aspectRatio.js","../../packages/artplayer/src/setting/playbackRate.js","../../packages/artplayer/src/setting/index.js","../../packages/artplayer/src/storage.js","../../packages/artplayer/src/plugins/subtitleOffset.js","../../packages/artplayer/src/plugins/localVideo.js","../../packages/artplayer/src/plugins/localSubtitle.js","../../packages/artplayer/src/plugins/miniProgressBar.js","../../packages/artplayer/src/plugins/networkMonitor.js","../../packages/artplayer/src/plugins/log.js","../../packages/artplayer/src/plugins/index.js","../../packages/artplayer/src/mobile.js","../../packages/artplayer/src/index.js"],"sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","!function(r,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):r.optionValidator=t()}(this,function(){\"use strict\";function e(r){return(e=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&\"function\"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?\"symbol\":typeof r})(r)}var n=Object.prototype.toString,c=function(r){if(void 0===r)return\"undefined\";if(null===r)return\"null\";var t=e(r);if(\"boolean\"===t)return\"boolean\";if(\"string\"===t)return\"string\";if(\"number\"===t)return\"number\";if(\"symbol\"===t)return\"symbol\";if(\"function\"===t)return function(r){return\"GeneratorFunction\"===o(r)}(r)?\"generatorfunction\":\"function\";if(function(r){return Array.isArray?Array.isArray(r):r instanceof Array}(r))return\"array\";if(function(r){if(r.constructor&&\"function\"==typeof r.constructor.isBuffer)return r.constructor.isBuffer(r);return!1}(r))return\"buffer\";if(function(r){try{if(\"number\"==typeof r.length&&\"function\"==typeof r.callee)return!0}catch(r){if(-1!==r.message.indexOf(\"callee\"))return!0}return!1}(r))return\"arguments\";if(function(r){return r instanceof Date||\"function\"==typeof r.toDateString&&\"function\"==typeof r.getDate&&\"function\"==typeof r.setDate}(r))return\"date\";if(function(r){return r instanceof Error||\"string\"==typeof r.message&&r.constructor&&\"number\"==typeof r.constructor.stackTraceLimit}(r))return\"error\";if(function(r){return r instanceof RegExp||\"string\"==typeof r.flags&&\"boolean\"==typeof r.ignoreCase&&\"boolean\"==typeof r.multiline&&\"boolean\"==typeof r.global}(r))return\"regexp\";switch(o(r)){case\"Symbol\":return\"symbol\";case\"Promise\":return\"promise\";case\"WeakMap\":return\"weakmap\";case\"WeakSet\":return\"weakset\";case\"Map\":return\"map\";case\"Set\":return\"set\";case\"Int8Array\":return\"int8array\";case\"Uint8Array\":return\"uint8array\";case\"Uint8ClampedArray\":return\"uint8clampedarray\";case\"Int16Array\":return\"int16array\";case\"Uint16Array\":return\"uint16array\";case\"Int32Array\":return\"int32array\";case\"Uint32Array\":return\"uint32array\";case\"Float32Array\":return\"float32array\";case\"Float64Array\":return\"float64array\"}if(function(r){return\"function\"==typeof r.throw&&\"function\"==typeof r.return&&\"function\"==typeof r.next}(r))return\"generator\";switch(t=n.call(r)){case\"[object Object]\":return\"object\";case\"[object Map Iterator]\":return\"mapiterator\";case\"[object Set Iterator]\":return\"setiterator\";case\"[object String Iterator]\":return\"stringiterator\";case\"[object Array Iterator]\":return\"arrayiterator\"}return t.slice(8,-1).toLowerCase().replace(/\\s/g,\"\")};function o(r){return r.constructor?r.constructor.name:null}function f(r,t){var e=2 {\n setStyle(element, key, styles[key]);\n });\n return element;\n}\n\nexport function getStyle(element, key, numberType = true) {\n const value = window.getComputedStyle(element, null).getPropertyValue(key);\n return numberType ? parseFloat(value) : value;\n}\n\nexport function sublings(target) {\n return Array.from(target.parentElement.children).filter((item) => item !== target);\n}\n\nexport function inverseClass(target, className) {\n sublings(target).forEach((item) => removeClass(item, className));\n addClass(target, className);\n}\n\nexport function tooltip(target, msg, pos = 'up') {\n if (isMobile) return;\n target.setAttribute('aria-label', msg);\n target.setAttribute('data-balloon-pos', 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","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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","export function srtToVtt(srtText) {\n return 'WEBVTT \\r\\n\\r\\n'.concat(\n srtText\n .replace(/{[\\s\\S]*?}/g, '')\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 .concat('\\r\\n\\r\\n'),\n );\n}\n\nexport function vttToBlob(vttText) {\n return URL.createObjectURL(\n new Blob([vttText], {\n type: 'text/vtt',\n }),\n );\n}\n\nexport function assToVtt(ass) {\n const reAss = new RegExp(\n 'Dialogue:\\\\s\\\\d,' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '(\\\\d+:\\\\d\\\\d:\\\\d\\\\d.\\\\d\\\\d),' +\n '([^,]*),' +\n '([^,]*),' +\n '(?:[^,]*,){4}' +\n '([\\\\s\\\\S]*)$',\n 'i',\n );\n\n function fixTime(time = '') {\n return time\n .split(/[:.]/)\n .map((item, index, arr) => {\n if (index === arr.length - 1) {\n if (item.length === 1) {\n return `.${item}00`;\n }\n\n if (item.length === 2) {\n return `.${item}0`;\n }\n } else if (item.length === 1) {\n return (index === 0 ? '0' : ':0') + item;\n }\n\n // eslint-disable-next-line no-nested-ternary\n return index === 0 ? item : index === arr.length - 1 ? `.${item}` : `:${item}`;\n })\n .join('');\n }\n\n return `WEBVTT\\n\\n${ass\n .split(/\\r?\\n/)\n .map(line => {\n const m = line.match(reAss);\n if (!m) return null;\n return {\n start: fixTime(m[1].trim()),\n end: fixTime(m[2].trim()),\n text: m[5]\n .replace(/{[\\s\\S]*?}/g, '')\n .replace(/(\\\\N)/g, '\\n')\n .trim()\n .split(/\\r?\\n/)\n .map(item => item.trim())\n .join('\\n'),\n };\n })\n .filter(line => line)\n .map((line, index) => {\n if (line) {\n return `${index + 1}\\n${line.start} --> ${line.end}\\n${line.text}`;\n }\n return '';\n })\n .filter(line => line.trim())\n .join('\\n\\n')}`;\n}\n","export function getExt(url) {\n if (url.includes('?')) {\n return getExt(url.split('?')[0]);\n }\n\n if (url.includes('#')) {\n return getExt(url.split('#')[0]);\n }\n\n return url.trim().toLowerCase().split('.').pop();\n}\n\nexport function download(url, name) {\n const elink = document.createElement('a');\n elink.style.display = 'none';\n elink.href = url;\n elink.download = name;\n document.body.appendChild(elink);\n elink.click();\n document.body.removeChild(elink);\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import { errorHandle } from './error';\n\nexport const def = Object.defineProperty;\n\nconst { hasOwnProperty } = Object.prototype;\nexport function has(obj, name) {\n return hasOwnProperty.call(obj, name);\n}\n\nexport function proxyPropertys(target, ...sources) {\n return sources.reduce((result, source) => {\n Object.getOwnPropertyNames(source).forEach(key => {\n errorHandle(!has(result, key), `Target attribute name is duplicated: ${key}`);\n def(result, key, Object.getOwnPropertyDescriptor(source, key));\n });\n return result;\n }, target);\n}\n\nexport function mergeDeep(...objects) {\n const isObject = item => item && typeof item === 'object' && !Array.isArray(item);\n return objects.reduce((prev, obj) => {\n Object.keys(obj).forEach(key => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal) && !(oVal instanceof Element)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n","export function sleep(ms = 0) {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function debounce(func, wait, context) {\n let timeout;\n function fn(...args) {\n const later = function later() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n\n fn.clearTimeout = function ct() {\n clearTimeout(timeout);\n };\n\n return fn;\n}\n\nexport function throttle(callback, delay) {\n let isThrottled = false;\n let args;\n let context;\n function fn(...args2) {\n if (isThrottled) {\n args = args2;\n context = this;\n return;\n }\n\n isThrottled = true;\n callback.apply(this, args2);\n setTimeout(() => {\n isThrottled = false;\n if (args) {\n fn.apply(context, args);\n args = null;\n context = null;\n }\n }, delay);\n }\n return fn;\n}\n","export function clamp(num, a, b) {\n return Math.max(Math.min(num, Math.max(a, b)), Math.min(a, b));\n}\n\nexport function secondToTime(second) {\n const add0 = num => (num < 10 ? `0${num}` : String(num));\n const hour = Math.floor(second / 3600);\n const min = Math.floor((second - hour * 3600) / 60);\n const sec = Math.floor(second - hour * 3600 - min * 60);\n return (hour > 0 ? [hour, min, sec] : [min, sec]).map(add0).join(':');\n}\n\nexport function escape(str) {\n return str.replace(\n /[&<>'\"]/g,\n tag =>\n ({\n '&': '&',\n '<': '<',\n '>': '>',\n \"'\": ''',\n '\"': '"',\n }[tag] || tag),\n );\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import { errorHandle } from '../utils';\n\nconst b = 'boolean';\nconst s = 'string';\nconst n = 'number';\nconst o = 'object';\nconst a = 'array';\nconst f = 'function';\nconst r = 'regexp';\n\nfunction validElement(value, type, paths) {\n return errorHandle(type === s || value instanceof Element, `${paths.join('.')} require '${s}' or 'Element' type`);\n}\n\nconst component = {\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 selector: `?${a}`,\n onSelect: `?${f}`,\n};\n\nexport default {\n container: validElement,\n url: s,\n poster: s,\n title: 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 rotate: 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 localVideo: b,\n localSubtitle: b,\n networkMonitor: b,\n useSSR: b,\n plugins: [f],\n whitelist: [`${s}|${f}|${r}`],\n layers: [component],\n contextmenu: [component],\n controls: [\n {\n ...component,\n position: (value, type, paths) => {\n const position = ['top', 'left', 'right', 'middle'];\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 name: 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 width: n,\n height: n,\n column: n,\n },\n subtitle: {\n url: s,\n style: o,\n encoding: s,\n bilingual: b,\n },\n moreVideoAttr: o,\n icons: o,\n customType: o,\n};\n","export default {\n propertys: [\n 'audioTracks',\n 'autoplay',\n 'buffered',\n 'controller',\n 'controls',\n 'crossOrigin',\n 'currentSrc',\n 'currentTime',\n 'defaultMuted',\n 'defaultPlaybackRate',\n 'duration',\n 'ended',\n 'error',\n 'loop',\n 'mediaGroup',\n 'muted',\n 'networkState',\n 'paused',\n 'playbackRate',\n 'played',\n 'preload',\n 'readyState',\n 'seekable',\n 'seeking',\n 'src',\n 'startDate',\n 'textTracks',\n 'videoTracks',\n 'volume',\n ],\n methods: [\n 'addTextTrack',\n 'canPlayType',\n 'load',\n 'play',\n 'pause'\n ],\n events: [\n 'abort',\n 'canplay',\n 'canplaythrough',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'loadeddata',\n 'loadedmetadata',\n 'loadstart',\n 'pause',\n 'play',\n 'playing',\n 'progress',\n 'ratechange',\n 'seeked',\n 'seeking',\n 'stalled',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n ],\n prototypes: [\n \"width\",\n \"height\",\n \"videoWidth\",\n \"videoHeight\",\n \"poster\",\n \"webkitDecodedFrameCount\",\n \"webkitDroppedFrameCount\",\n \"playsInline\",\n \"webkitSupportsFullscreen\",\n \"webkitDisplayingFullscreen\",\n \"onenterpictureinpicture\",\n \"onleavepictureinpicture\",\n \"disablePictureInPicture\",\n \"cancelVideoFrameCallback\",\n \"requestVideoFrameCallback\",\n \"getVideoPlaybackQuality\",\n \"requestPictureInPicture\",\n \"webkitEnterFullScreen\",\n \"webkitEnterFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitExitFullscreen\",\n ],\n};\n","export default class Whitelist {\n constructor(art) {\n const {\n constructor: { kindOf },\n option: { whitelist },\n } = art;\n this.state =\n !art.isMobile ||\n whitelist.some((item) => {\n switch (kindOf(item)) {\n case 'string':\n return item === '*' || art.userAgent.indexOf(item) > -1;\n case 'function':\n return item(art.userAgent);\n case 'regexp':\n return item.test(art.userAgent);\n default:\n return false;\n }\n });\n }\n}\n","import { errorHandle, query, addClass } from './utils';\n\nexport default class Template {\n constructor(art) {\n this.art = art;\n\n if (art.option.container instanceof Element) {\n this.$container = art.option.container;\n } else {\n this.$container = query(art.option.container);\n errorHandle(this.$container, `No container element found by ${art.option.container}`);\n }\n\n errorHandle(\n art.constructor.instances.every((ins) => ins.template.$container !== this.$container),\n 'Cannot mount multiple instances on the same dom element',\n );\n\n if (art.whitelist.state) {\n this.desktop();\n } else {\n this.mobile();\n }\n }\n\n static get html() {\n return `\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \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
    \n `;\n }\n\n query(className) {\n return query(className, this.$container);\n }\n\n desktop() {\n const { backdrop, theme, useSSR } = this.art.option;\n\n if (!useSSR) {\n this.$container.innerHTML = Template.html;\n }\n\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n this.$poster = this.query('.art-poster');\n this.$subtitle = this.query('.art-subtitle');\n this.$danmuku = this.query('.art-danmuku');\n this.$bottom = this.query('.art-bottom');\n this.$progress = this.query('.art-progress');\n this.$controls = this.query('.art-controls');\n this.$controlsLeft = this.query('.art-controls-left');\n this.$controlsMiddle = this.query('.art-controls-middle');\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.$settingInner = this.query('.art-setting-inner');\n this.$settingBody = this.query('.art-setting-body');\n this.$info = this.query('.art-info');\n this.$infoPanel = this.query('.art-info-panel');\n this.$infoClose = this.query('.art-info-close');\n this.$miniHeader = this.query('.art-mini-header');\n this.$miniTitle = this.query('.art-mini-title');\n this.$miniClose = this.query('.art-mini-close');\n this.$contextmenu = this.query('.art-contextmenus');\n\n this.$player.style.setProperty('--theme', theme);\n\n if (backdrop) {\n addClass(this.$settingInner, 'art-backdrop-filter');\n addClass(this.$contextmenu, 'art-backdrop-filter');\n addClass(this.$info, 'art-backdrop-filter');\n }\n\n if (this.art.isMobile) {\n addClass(this.$container, 'art-mobile');\n }\n }\n\n mobile() {\n this.$container.innerHTML = `\n
    \n \n
    \n `;\n this.$player = this.query('.art-video-player');\n this.$video = this.query('.art-video');\n }\n\n destroy(removeHtml) {\n if (removeHtml) {\n this.$container.innerHTML = '';\n } else {\n addClass(this.$player, 'art-destroy');\n }\n }\n}\n","import { mergeDeep } from '../utils';\nimport zhCn from './zh-cn.json';\nimport zhTw from './zh-tw.json';\n\nexport default class I18n {\n constructor(art) {\n this.art = art;\n this.languages = {\n 'zh-cn': zhCn,\n 'zh-tw': zhTw,\n };\n this.init();\n }\n\n init() {\n const lang = this.art.option.lang.toLowerCase();\n this.language = this.languages[lang] || {};\n }\n\n get(key) {\n return this.language[key] || key;\n }\n\n update(value) {\n this.languages = mergeDeep(this.languages, value);\n this.init();\n }\n}\n","import { getExt, def, sleep } from '../utils';\n\nexport default function urlMix(art, player) {\n const {\n option,\n template: { $video },\n } = art;\n\n def(player, 'url', {\n get() {\n return $video.src;\n },\n set(url) {\n const typeName = option.type || getExt(url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n sleep().then(() => {\n art.loading.show = true;\n const result = typeCallback.call(art, $video, url, art);\n def(art, typeName, {\n value: result,\n });\n });\n } else {\n $video.src = url;\n art.option.url = url;\n art.emit('url', url);\n }\n },\n });\n}\n","import { clamp, setStyle } from '../utils';\n\nexport default function attrInit(art, player) {\n const {\n option,\n storage,\n template: { $video, $poster },\n } = art;\n\n Object.keys(option.moreVideoAttr).forEach((key) => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n const volume = storage.get('volume');\n if (volume) {\n $video.volume = clamp(volume, 0, 1);\n }\n\n if (option.poster) {\n // $video.poster = option.poster;\n setStyle($poster, 'backgroundImage', `url(${option.poster})`);\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = false;\n player.url = option.url;\n}\n","import config from '../config';\nimport { sleep, addClass, setStyle } from '../utils';\n\nexport default function eventInit(art, player) {\n const {\n option,\n events: { proxy },\n template: { $player, $video, $poster },\n i18n,\n notice,\n } = art;\n\n let reconnectTime = 0;\n const maxReconnectTime = 5;\n\n proxy($video, 'click', () => {\n player.toggle();\n });\n\n config.events.forEach((eventName) => {\n proxy($video, eventName, (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.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 player.seek = 0;\n if (player.playing) {\n player.play();\n } else {\n player.pause();\n }\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', () => {\n if (reconnectTime < maxReconnectTime) {\n sleep(1000).then(() => {\n reconnectTime += 1;\n player.url = option.url;\n notice.show = `${i18n.get('Reconnect')}: ${reconnectTime}`;\n art.emit('error', reconnectTime);\n });\n } else {\n art.loading.show = false;\n art.controls.show = false;\n addClass($player, 'art-error');\n sleep(1000).then(() => {\n notice.show = i18n.get('Video load failed');\n art.destroy(false);\n });\n }\n });\n\n // art.on('video:loadeddata', () => {\n\n // });\n\n art.once('video:loadedmetadata', () => {\n player.autoSize = option.autoSize;\n if (art.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 });\n\n art.on('video:pause', () => {\n art.controls.show = true;\n art.mask.show = true;\n });\n\n art.on('video:play', () => {\n art.mask.show = false;\n setStyle($poster, 'display', 'none');\n });\n\n art.on('video:playing', () => {\n art.mask.show = false;\n });\n\n // art.on('video:progress', () => {\n\n // });\n\n // art.on('video:ratechange', () => {\n\n // });\n\n art.on('video:seeked', () => {\n art.loading.show = false;\n });\n\n art.on('video:seeking', () => {\n art.loading.show = true;\n });\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 });\n}\n","import { def } from '../utils';\n\nexport default function exclusiveInit(art, player) {\n const sizeProps = ['mini', 'pip', 'fullscreen', 'fullscreenWeb', 'fullscreenRotate'];\n\n function exclusive(props) {\n props.forEach((name) => {\n art.on(name, () => {\n if (player[name]) {\n props\n .filter((item) => item !== name)\n .forEach((item) => {\n if (player[item]) {\n player[item] = false;\n }\n });\n }\n });\n });\n }\n\n exclusive(sizeProps);\n\n def(player, 'normalSize', {\n get() {\n return sizeProps.every((name) => !player[name]);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function playMix(art, player) {\n const {\n i18n,\n notice,\n constructor: { instances },\n option: { mutex },\n template: { $video },\n } = art;\n\n def(player, 'play', {\n value() {\n const promise = $video.play();\n\n if (promise.then) {\n promise.then().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n\n if (mutex) {\n instances\n .filter((item) => item !== art)\n .forEach((item) => {\n item.player.pause();\n });\n }\n\n notice.show = i18n.get('Play');\n art.emit('play');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function pauseMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n } = art;\n\n def(player, 'pause', {\n value() {\n $video.pause();\n notice.show = i18n.get('Pause');\n art.emit('pause');\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function toggleMix(art, player) {\n def(player, 'toggle', {\n value() {\n if (player.playing) {\n player.pause();\n } else {\n player.play();\n }\n },\n });\n}\n","import { secondToTime, def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { notice } = art;\n\n def(player, 'seek', {\n set(time) {\n player.currentTime = time;\n art.emit('seek', player.currentTime);\n if (player.duration) {\n notice.show = `${secondToTime(player.currentTime)} / ${secondToTime(player.duration)}`;\n }\n },\n });\n\n def(player, 'forward', {\n set(time) {\n player.seek = player.currentTime + time;\n },\n });\n\n def(player, 'backward', {\n set(time) {\n player.seek = player.currentTime - time;\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function volumeMix(art, player) {\n const {\n template: { $video },\n i18n,\n notice,\n storage,\n } = art;\n\n def(player, 'volume', {\n get: () => $video.volume || 0,\n set: percentage => {\n $video.volume = clamp(percentage, 0, 1);\n notice.show = `${i18n.get('Volume')}: ${parseInt($video.volume * 100, 10)}`;\n if ($video.volume !== 0) {\n storage.set('volume', $video.volume);\n }\n art.emit('volume', $video.volume);\n },\n });\n\n def(player, 'muted', {\n get: () => $video.muted,\n set: muted => {\n $video.muted = muted;\n art.emit('volume', $video.volume);\n },\n });\n}\n","import { clamp, def } from '../utils';\n\nexport default function currentTimeMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'currentTime', {\n get: () => $video.currentTime || 0,\n set: (time) => {\n // Fixed: The provided double value is non-finite\n $video.currentTime = clamp(parseFloat(time.toFixed(3)), 0, player.duration);\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function durationMix(art, player) {\n def(player, '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, player) {\n const { i18n, notice } = art;\n\n function switchUrl(url, name, currentTime) {\n if (url === player.url) return;\n URL.revokeObjectURL(player.url);\n const { playing } = player;\n player.url = url;\n art.once('video:canplay', () => {\n player.playbackRate = false;\n player.aspectRatio = false;\n player.flip = 'normal';\n player.autoSize = true;\n player.currentTime = currentTime;\n if (playing) {\n player.play();\n }\n });\n if (name) {\n notice.show = `${i18n.get('Switch video')}: ${name}`;\n }\n art.emit('switch', url);\n }\n\n def(player, 'switchQuality', {\n value: (url, name) => {\n return switchUrl(url, name, player.currentTime);\n },\n });\n\n def(player, 'switchUrl', {\n value: (url, name) => {\n return switchUrl(url, name, 0);\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function playbackRateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'playbackRate', {\n get() {\n return $player.dataset.playbackRate;\n },\n set(rate) {\n if (rate) {\n if (rate === $player.dataset.playbackRate) return;\n const rateList = [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0];\n errorHandle(rateList.includes(rate), `'playbackRate' only accept ${rateList.toString()} as parameters`);\n $video.playbackRate = rate;\n $player.dataset.playbackRate = rate;\n notice.show = `${i18n.get('Rate')}: ${rate === 1.0 ? i18n.get('Normal') : `${rate}x`}`;\n art.emit('playbackRate', rate);\n } else if (player.playbackRate) {\n player.playbackRate = 1;\n delete $player.dataset.playbackRate;\n art.emit('playbackRate');\n }\n },\n });\n\n def(player, 'playbackRateReset', {\n set(value) {\n if (value) {\n const { playbackRate } = $player.dataset;\n if (playbackRate) {\n player.playbackRate = Number(playbackRate);\n }\n }\n },\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function aspectRatioMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'aspectRatio', {\n get() {\n return $player.dataset.aspectRatio || '';\n },\n set(ratio) {\n if (!ratio) ratio = 'default';\n\n const ratioList = ['default', '4:3', '16:9'];\n errorHandle(ratioList.includes(ratio), `'aspectRatio' only accept ${ratioList.toString()} as parameters`);\n\n if (ratio === 'default') {\n setStyle($video, 'width', null);\n setStyle($video, 'height', null);\n setStyle($video, 'padding', null);\n delete $player.dataset.aspectRatio;\n } else {\n const ratioArray = ratio.split(':');\n const { videoWidth, videoHeight } = $video;\n const { clientWidth, clientHeight } = $player;\n const videoRatio = videoWidth / videoHeight;\n const setupRatio = ratioArray[0] / ratioArray[1];\n if (videoRatio > setupRatio) {\n const percentage = (setupRatio * videoHeight) / videoWidth;\n setStyle($video, 'width', `${percentage * 100}%`);\n setStyle($video, 'height', '100%');\n setStyle($video, 'padding', `0 ${(clientWidth - clientWidth * percentage) / 2}px`);\n } else {\n const percentage = videoWidth / setupRatio / videoHeight;\n setStyle($video, 'width', '100%');\n setStyle($video, 'height', `${percentage * 100}%`);\n setStyle($video, 'padding', `${(clientHeight - clientHeight * percentage) / 2}px 0`);\n }\n $player.dataset.aspectRatio = ratio;\n }\n\n notice.show = `${i18n.get('Aspect ratio')}: ${ratio === 'default' ? i18n.get('Default') : ratio}`;\n art.emit('aspectRatio', ratio);\n },\n });\n\n def(player, 'aspectRatioReset', {\n set(value) {\n if (value && player.aspectRatio) {\n const { aspectRatio } = player;\n player.aspectRatio = aspectRatio;\n }\n },\n });\n}\n","import { secondToTime, download, def } from '../utils';\n\nexport default function screenshotMix(art, player) {\n const {\n option,\n notice,\n template: { $video },\n } = art;\n\n const $canvas = document.createElement('canvas');\n\n def(player, '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(player, '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(player, 'screenshot', {\n value: () => {\n player.getDataURL().then((dataUri) => {\n download(dataUri, `${option.title || 'artplayer'}_${secondToTime($video.currentTime)}.png`);\n art.emit('screenshot', dataUri);\n });\n },\n });\n}\n","/*!\n* screenfull\n* v5.2.0 - 2021-11-03\n* (c) Sindre Sorhus; MIT License\n*/\n(function () {\n\t'use strict';\n\n\tvar document = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? window.document : {};\n\tvar isCommonjs = typeof module !== 'undefined' && module.exports;\n\n\tvar fn = (function () {\n\t\tvar val;\n\n\t\tvar fnMap = [\n\t\t\t[\n\t\t\t\t'requestFullscreen',\n\t\t\t\t'exitFullscreen',\n\t\t\t\t'fullscreenElement',\n\t\t\t\t'fullscreenEnabled',\n\t\t\t\t'fullscreenchange',\n\t\t\t\t'fullscreenerror'\n\t\t\t],\n\t\t\t// New WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullscreen',\n\t\t\t\t'webkitExitFullscreen',\n\t\t\t\t'webkitFullscreenElement',\n\t\t\t\t'webkitFullscreenEnabled',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t// Old WebKit\n\t\t\t[\n\t\t\t\t'webkitRequestFullScreen',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitCurrentFullScreenElement',\n\t\t\t\t'webkitCancelFullScreen',\n\t\t\t\t'webkitfullscreenchange',\n\t\t\t\t'webkitfullscreenerror'\n\n\t\t\t],\n\t\t\t[\n\t\t\t\t'mozRequestFullScreen',\n\t\t\t\t'mozCancelFullScreen',\n\t\t\t\t'mozFullScreenElement',\n\t\t\t\t'mozFullScreenEnabled',\n\t\t\t\t'mozfullscreenchange',\n\t\t\t\t'mozfullscreenerror'\n\t\t\t],\n\t\t\t[\n\t\t\t\t'msRequestFullscreen',\n\t\t\t\t'msExitFullscreen',\n\t\t\t\t'msFullscreenElement',\n\t\t\t\t'msFullscreenEnabled',\n\t\t\t\t'MSFullscreenChange',\n\t\t\t\t'MSFullscreenError'\n\t\t\t]\n\t\t];\n\n\t\tvar i = 0;\n\t\tvar l = fnMap.length;\n\t\tvar ret = {};\n\n\t\tfor (; i < l; i++) {\n\t\t\tval = fnMap[i];\n\t\t\tif (val && val[1] in document) {\n\t\t\t\tfor (i = 0; i < val.length; i++) {\n\t\t\t\t\tret[fnMap[0][i]] = val[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t})();\n\n\tvar eventNameMap = {\n\t\tchange: fn.fullscreenchange,\n\t\terror: fn.fullscreenerror\n\t};\n\n\tvar screenfull = {\n\t\trequest: function (element, options) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tvar onFullScreenEntered = function () {\n\t\t\t\t\tthis.off('change', onFullScreenEntered);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenEntered);\n\n\t\t\t\telement = element || document.documentElement;\n\n\t\t\t\tvar returnPromise = element[fn.requestFullscreen](options);\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenEntered).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\texit: function () {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (!this.isFullscreen) {\n\t\t\t\t\tresolve();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar onFullScreenExit = function () {\n\t\t\t\t\tthis.off('change', onFullScreenExit);\n\t\t\t\t\tresolve();\n\t\t\t\t}.bind(this);\n\n\t\t\t\tthis.on('change', onFullScreenExit);\n\n\t\t\t\tvar returnPromise = document[fn.exitFullscreen]();\n\n\t\t\t\tif (returnPromise instanceof Promise) {\n\t\t\t\t\treturnPromise.then(onFullScreenExit).catch(reject);\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t},\n\t\ttoggle: function (element, options) {\n\t\t\treturn this.isFullscreen ? this.exit() : this.request(element, options);\n\t\t},\n\t\tonchange: function (callback) {\n\t\t\tthis.on('change', callback);\n\t\t},\n\t\tonerror: function (callback) {\n\t\t\tthis.on('error', callback);\n\t\t},\n\t\ton: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.addEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\toff: function (event, callback) {\n\t\t\tvar eventName = eventNameMap[event];\n\t\t\tif (eventName) {\n\t\t\t\tdocument.removeEventListener(eventName, callback, false);\n\t\t\t}\n\t\t},\n\t\traw: fn\n\t};\n\n\tif (!fn) {\n\t\tif (isCommonjs) {\n\t\t\tmodule.exports = {isEnabled: false};\n\t\t} else {\n\t\t\twindow.screenfull = {isEnabled: false};\n\t\t}\n\n\t\treturn;\n\t}\n\n\tObject.defineProperties(screenfull, {\n\t\tisFullscreen: {\n\t\t\tget: function () {\n\t\t\t\treturn Boolean(document[fn.fullscreenElement]);\n\t\t\t}\n\t\t},\n\t\telement: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn document[fn.fullscreenElement];\n\t\t\t}\n\t\t},\n\t\tisEnabled: {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\t// Coerce to boolean in case of old WebKit\n\t\t\t\treturn Boolean(document[fn.fullscreenEnabled]);\n\t\t\t}\n\t\t}\n\t});\n\n\tif (isCommonjs) {\n\t\tmodule.exports = screenfull;\n\t} else {\n\t\twindow.screenfull = screenfull;\n\t}\n})();\n","import screenfull from 'screenfull';\nimport { addClass, removeClass, def } from '../utils';\n\nconst nativeScreenfull = (art, player) => {\n const { $player } = art.template;\n\n screenfull.on('change', () => art.emit('fullscreen', screenfull.isFullscreen));\n\n def(player, 'fullscreen', {\n get() {\n return screenfull.isFullscreen;\n },\n set(value) {\n if (value) {\n screenfull.request($player).then(() => {\n addClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreen', true);\n });\n } else {\n screenfull.exit().then(() => {\n removeClass($player, 'art-fullscreen');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreen');\n });\n }\n },\n });\n};\n\nconst webkitScreenfull = (art, player) => {\n const { $video } = art.template;\n\n def(player, 'fullscreen', {\n get() {\n return $video.webkitDisplayingFullscreen;\n },\n set(value) {\n if (value) {\n $video.webkitEnterFullscreen();\n art.emit('fullscreen', true);\n } else {\n $video.webkitExitFullscreen();\n art.emit('fullscreen');\n }\n },\n });\n};\n\nexport default function fullscreenMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n\n art.once('ready', () => {\n if (screenfull.isEnabled) {\n nativeScreenfull(art, player);\n } else if (document.fullscreenEnabled || $video.webkitSupportsFullscreen) {\n webkitScreenfull(art, player);\n } else {\n def(player, 'fullscreen', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('Fullscreen not supported');\n },\n });\n }\n });\n\n def(player, 'fullscreenToggle', {\n set(value) {\n if (value) {\n player.fullscreen = !player.fullscreen;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function fullscreenWebMix(art, player) {\n const { $player } = art.template;\n\n def(player, 'fullscreenWeb', {\n get() {\n return hasClass($player, 'art-fullscreen-web');\n },\n set(value) {\n if (value) {\n addClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n art.emit('resize');\n art.emit('fullscreenWeb', true);\n } else {\n removeClass($player, 'art-fullscreen-web');\n player.aspectRatioReset = true;\n player.autoSize = art.option.autoSize;\n art.emit('resize');\n art.emit('fullscreenWeb');\n }\n },\n });\n\n def(player, 'fullscreenWebToggle', {\n set(value) {\n if (value) {\n player.fullscreenWeb = !player.fullscreenWeb;\n }\n },\n });\n}\n","import { addClass, removeClass, hasClass, def, setStyle } from '../utils';\n\nexport default function fullscreenRotateMix(art, player) {\n const { $container, $player } = art.template;\n\n def(player, 'fullscreenRotate', {\n get() {\n return hasClass($container, 'art-fullscreen-rotate');\n },\n set: (value) => {\n if (value) {\n addClass($container, 'art-fullscreen-rotate');\n player.autoSize = true;\n const { clientHeight: bodyHeight, clientWidth: bodyWidth } = document.body;\n const { clientHeight: playerHeight, clientWidth: playerWidth } = $player;\n const bodyRatio = bodyWidth / bodyHeight;\n const videoRatio = playerWidth / playerHeight;\n const needSpin = bodyRatio < videoRatio;\n if (needSpin) {\n const scale = Math.min(bodyHeight / playerWidth, bodyWidth / playerHeight).toFixed(2);\n setStyle($player, 'transform', `rotate(90deg) scale(${scale},${scale})`);\n art.emit('resize');\n art.emit('fullscreenRotate', true);\n }\n } else {\n removeClass($container, 'art-fullscreen-rotate');\n player.autoSize = art.option.autoSize;\n setStyle($player, 'transform', null);\n art.emit('resize');\n art.emit('fullscreenRotate');\n }\n },\n });\n\n def(player, 'fullscreenRotateToggle', {\n set(value) {\n if (value) {\n player.fullscreenRotate = !player.fullscreenRotate;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nfunction nativePip(art, player) {\n const {\n template: { $video },\n events: { proxy },\n notice,\n } = art;\n\n $video.disablePictureInPicture = false;\n\n def(player, 'pip', {\n get() {\n return document.pictureInPictureElement;\n },\n set(value) {\n if (value) {\n $video.requestPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n } else {\n document.exitPictureInPicture().catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n },\n });\n\n proxy($video, 'enterpictureinpicture', () => {\n art.emit('pip', true);\n });\n\n proxy($video, 'leavepictureinpicture', () => {\n art.emit('pip');\n });\n}\n\nfunction webkitPip(art, player) {\n const { $video } = art.template;\n\n $video.webkitSetPresentationMode('inline');\n\n def(player, 'pip', {\n get() {\n return $video.webkitPresentationMode === 'picture-in-picture';\n },\n set(value) {\n if (value) {\n $video.webkitSetPresentationMode('picture-in-picture');\n art.emit('pip', true);\n } else {\n $video.webkitSetPresentationMode('inline');\n art.emit('pip');\n }\n },\n });\n}\n\nexport default function pipMix(art, player) {\n const {\n i18n,\n notice,\n template: { $video },\n } = art;\n if (document.pictureInPictureEnabled) {\n nativePip(art, player);\n } else if ($video.webkitSupportsPresentationMode) {\n webkitPip(art, player);\n } else {\n def(player, 'pip', {\n get() {\n return false;\n },\n set() {\n notice.show = i18n.get('PIP not supported');\n },\n });\n }\n\n def(player, 'pipToggle', {\n set(value) {\n if (value) {\n player.pip = !player.pip;\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function seekMix(art, player) {\n const { $video } = art.template;\n\n def(player, 'loaded', {\n get: () => player.loadedTime / $video.duration,\n });\n\n def(player, 'loadedTime', {\n get: () => ($video.buffered.length ? $video.buffered.end($video.buffered.length - 1) : 0),\n });\n}\n","import { def } from '../utils';\n\nexport default function playedMix(art, player) {\n def(player, 'played', {\n get: () => player.currentTime / player.duration,\n });\n}\n","import { def } from '../utils';\n\nexport default function playingMix(art, player) {\n const { $video } = art.template;\n def(player, 'playing', {\n get: () => !!($video.currentTime > 0 && !$video.paused && !$video.ended && $video.readyState > 2),\n });\n}\n","import { setStyle, addClass, removeClass, hasClass, def } from '../utils';\n\nexport default function resizeMix(art, player) {\n const { $container, $player, $video } = art.template;\n\n def(player, 'autoSize', {\n get() {\n return hasClass($container, 'art-auto-size');\n },\n set(value) {\n if (value) {\n const { videoWidth, videoHeight } = $video;\n const { width, height } = $container.getBoundingClientRect();\n const videoRatio = videoWidth / videoHeight;\n const containerRatio = width / height;\n addClass($container, 'art-auto-size');\n if (containerRatio > videoRatio) {\n const percentage = ((height * videoRatio) / width) * 100;\n setStyle($player, 'width', `${percentage}%`);\n setStyle($player, 'height', '100%');\n } else {\n const percentage = (width / videoRatio / height) * 100;\n setStyle($player, 'width', '100%');\n setStyle($player, 'height', `${percentage}%`);\n }\n art.emit('autoSize', {\n width: player.width,\n height: player.height,\n });\n } else {\n removeClass($container, 'art-auto-size');\n setStyle($player, 'width', null);\n setStyle($player, 'height', null);\n art.emit('autoSize');\n }\n },\n });\n}\n","import { def } from '../utils';\n\nexport default function rectMix(art, player) {\n def(player, 'rect', {\n get: () => {\n return art.template.$player.getBoundingClientRect();\n },\n });\n\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(key => {\n def(player, key, {\n get: () => {\n return player.rect[key];\n },\n });\n });\n\n def(player, 'x', {\n get: () => {\n return player.left + window.pageXOffset;\n },\n });\n\n def(player, 'y', {\n get: () => {\n return player.top + window.pageYOffset;\n },\n });\n}\n","import { errorHandle, def } from '../utils';\n\nexport default function flipMix(art, player) {\n const {\n template: { $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'flip', {\n get() {\n return $player.dataset.flip;\n },\n set(flip) {\n if (!flip) flip = 'normal';\n\n const flipList = ['normal', 'horizontal', 'vertical'];\n errorHandle(flipList.includes(flip), `'flip' only accept ${flipList.toString()} as parameters`);\n\n if (flip === 'normal') {\n delete $player.dataset.flip;\n } else {\n player.rotate = false;\n $player.dataset.flip = flip;\n }\n\n const word = flip.replace(flip[0], flip[0].toUpperCase());\n notice.show = `${i18n.get('Flip')}: ${i18n.get(word)}`;\n art.emit('flip', flip);\n },\n });\n\n def(player, 'flipReset', {\n set(value) {\n if (value && player.flip) {\n const { flip } = player;\n player.flip = flip;\n }\n },\n });\n}\n","import { append, setStyle, addClass, removeClass, hasClass, def, isInViewport } from '../utils';\n\nexport default function miniMix(art, player) {\n const {\n i18n,\n option,\n storage,\n events: { proxy },\n template: { $player, $miniClose, $miniTitle, $miniHeader },\n } = art;\n\n let cacheStyle = '';\n let isDroging = false;\n let lastPageX = 0;\n let lastPageY = 0;\n let lastPlayerLeft = 0;\n let lastPlayerTop = 0;\n\n proxy($miniHeader, 'mousedown', (event) => {\n isDroging = true;\n lastPageX = event.pageX;\n lastPageY = event.pageY;\n lastPlayerLeft = player.left;\n lastPlayerTop = player.top;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n addClass($player, 'art-is-dragging');\n const top = lastPlayerTop + event.pageY - lastPageY;\n const left = lastPlayerLeft + event.pageX - lastPageX;\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n storage.set('top', top);\n storage.set('left', left);\n }\n });\n\n proxy(document, 'mouseup', () => {\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n proxy($miniClose, 'click', () => {\n player.mini = false;\n isDroging = false;\n removeClass($player, 'art-is-dragging');\n });\n\n append($miniTitle, option.title || i18n.get('Mini player'));\n\n def(player, 'mini', {\n get() {\n return hasClass($player, 'art-mini');\n },\n set(value) {\n if (value) {\n player.autoSize = false;\n cacheStyle = $player.style.cssText;\n addClass($player, 'art-mini');\n const top = storage.get('top');\n const left = storage.get('left');\n if (top && left) {\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n if (!isInViewport($miniHeader)) {\n storage.del('top');\n storage.del('left');\n player.mini = true;\n }\n } else {\n const $body = document.body;\n const top = $body.clientHeight - player.height - 50;\n const left = $body.clientWidth - player.width - 50;\n storage.set('top', top);\n storage.set('left', left);\n setStyle($player, 'top', `${top}px`);\n setStyle($player, 'left', `${left}px`);\n }\n player.aspectRatio = false;\n player.playbackRate = false;\n art.emit('mini', true);\n } else {\n $player.style.cssText = cacheStyle;\n removeClass($player, 'art-mini');\n setStyle($player, 'top', null);\n setStyle($player, 'left', null);\n player.aspectRatio = false;\n player.playbackRate = false;\n player.autoSize = option.autoSize;\n art.emit('mini');\n }\n },\n });\n\n def(player, 'miniToggle', {\n set(value) {\n if (value) {\n player.mini = !player.mini;\n }\n },\n });\n}\n","import { def, clamp } from '../utils';\n\nexport default function loopMin(art, player) {\n let interval = [];\n def(player, 'loop', {\n get: () => interval,\n set: (value) => {\n if (Array.isArray(value) && typeof value[0] === 'number' && typeof value[1] === 'number') {\n const start = clamp(value[0], 0, Math.min(value[1], player.duration));\n const end = clamp(value[1], start, player.duration);\n if (end - start >= 1) {\n interval = [start, end];\n art.emit('loop', interval);\n } else {\n interval = [];\n art.emit('loop');\n }\n } else {\n interval = [];\n art.emit('loop');\n }\n },\n });\n\n art.on('video:timeupdate', () => {\n if (interval.length) {\n if (player.currentTime < interval[0] || player.currentTime > interval[1]) {\n player.seek = interval[0];\n }\n }\n });\n}\n","import { setStyle, errorHandle, def } from '../utils';\n\nexport default function rotateMix(art, player) {\n const {\n template: { $video, $player },\n i18n,\n notice,\n } = art;\n\n def(player, 'rotate', {\n get: () => Number($player.dataset.rotate) || 0,\n set: (deg) => {\n if (!deg) deg = 0;\n\n const degList = [-270, -180, -90, 0, 90, 180, 270];\n errorHandle(degList.includes(deg), `'rotate' only accept ${degList.toString()} as parameters`);\n\n if (deg === 0) {\n delete $player.dataset.rotate;\n setStyle($video, 'transform', null);\n } else {\n player.flip = false;\n $player.dataset.rotate = deg;\n\n const getScaleValue = () => {\n const { videoWidth, videoHeight } = $video;\n return videoWidth > videoHeight ? videoHeight / videoWidth : videoWidth / videoHeight;\n };\n\n let degValue = 0;\n let scaleValue = 1;\n switch (deg) {\n case -270:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case -180:\n degValue = 180;\n break;\n case -90:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n case 90:\n degValue = 90;\n scaleValue = getScaleValue();\n break;\n case 180:\n degValue = 180;\n break;\n case 270:\n degValue = 270;\n scaleValue = getScaleValue();\n break;\n default:\n break;\n }\n\n setStyle($video, 'transform', `rotate(${degValue}deg) scale(${scaleValue})`);\n }\n\n notice.show = `${i18n.get('Rotate')}: ${deg}°`;\n art.emit('rotate', deg);\n },\n });\n\n def(player, 'rotateReset', {\n set(value) {\n if (value && player.rotate) {\n const { rotate } = player;\n player.rotate = rotate;\n }\n },\n });\n}\n","import { def, setStyle } from '../utils';\n\nexport default function posterMix(art, player) {\n const {\n option,\n template: { $poster },\n } = art;\n\n def(player, 'poster', {\n get: () => option.poster,\n set(url) {\n option.poster = url;\n setStyle($poster, 'backgroundImage', `url(${url})`);\n },\n });\n}\n","import urlMix from './urlMix';\nimport attrInit from './attrInit';\nimport eventInit from './eventInit';\nimport exclusiveInit from './exclusiveInit';\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 fullscreenRotateMix from './fullscreenRotateMix';\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 loopMin from './loopMin';\nimport rotateMix from './rotateMix';\nimport posterMix from './posterMix';\nimport { proxyPropertys } from '../utils';\n\nexport default class Player {\n constructor(art) {\n urlMix(art, this);\n eventInit(art, this);\n attrInit(art, this);\n exclusiveInit(art, this);\n playMix(art, this);\n pauseMix(art, this);\n toggleMix(art, this);\n seekMix(art, this);\n volumeMix(art, this);\n currentTimeMix(art, this);\n durationMix(art, this);\n switchMix(art, this);\n playbackRateMix(art, this);\n aspectRatioMix(art, this);\n screenshotMix(art, this);\n fullscreenMix(art, this);\n fullscreenWebMix(art, this);\n fullscreenRotateMix(art, this);\n pipMix(art, this);\n loadedMix(art, this);\n playedMix(art, this);\n playingMix(art, this);\n autoSizeMix(art, this);\n rectMix(art, this);\n flipMix(art, this);\n miniMix(art, this);\n loopMin(art, this);\n rotateMix(art, this);\n posterMix(art, this);\n proxyPropertys(art, this);\n }\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get.apply(this, arguments);\n}","import { hasClass, addClass, removeClass, append, setStyles, tooltip, getStyle } from './dom';\nimport { has } from './property';\nimport { errorHandle } from './error';\n\nexport default class Component {\n constructor(art) {\n this.id = 0;\n this.art = art;\n this.add = this.add.bind(this);\n }\n\n get show() {\n return hasClass(this.art.template.$player, `art-${this.name}-show`);\n }\n\n set show(value) {\n const { $player } = this.art.template;\n const className = `art-${this.name}-show`;\n if (value) {\n addClass($player, className);\n } else {\n removeClass($player, className);\n }\n this.art.emit(this.name, value);\n }\n\n set toggle(value) {\n if (value) {\n this.show = !this.show;\n }\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n if (!this.$parent || !this.name || option.disable) return;\n const name = option.name || `${this.name}${this.id}`;\n errorHandle(!has(this, name), `Cannot add an existing name [${name}] to the [${this.name}]`);\n\n this.id += 1;\n const $ref = document.createElement('div');\n addClass($ref, `art-${this.name}`);\n addClass($ref, `art-${this.name}-${name}`);\n\n const childs = Array.from(this.$parent.children);\n $ref.dataset.index = option.index || this.id;\n const nextChild = childs.find((item) => Number(item.dataset.index) >= Number($ref.dataset.index));\n if (nextChild) {\n nextChild.insertAdjacentElement('beforebegin', $ref);\n } else {\n append(this.$parent, $ref);\n }\n\n if (option.html) {\n append($ref, option.html);\n }\n\n if (option.style) {\n setStyles($ref, option.style);\n }\n\n if (option.tooltip) {\n tooltip($ref, option.tooltip);\n }\n\n if (option.click) {\n this.art.events.proxy($ref, 'click', (event) => {\n event.preventDefault();\n option.click.call(this.art, this, event);\n });\n }\n\n if (option.selector && ['left', 'right'].includes(option.position)) {\n this.selector(option, $ref);\n }\n\n if (option.mounted) {\n option.mounted.call(this.art, $ref);\n }\n\n if ($ref.childNodes.length === 1 && $ref.childNodes[0].nodeType === 3) {\n addClass($ref, 'art-control-onlyText');\n }\n }\n\n selector(option, $ref) {\n const { hover, proxy } = this.art.events;\n\n addClass($ref, 'art-control-selector');\n const $value = document.createElement('div');\n addClass($value, 'art-selector-value');\n append($value, option.html);\n $ref.innerText = '';\n append($ref, $value);\n\n const list = option.selector.map((item) => `
    ${item.name}
    `).join('');\n const $list = document.createElement('div');\n addClass($list, 'art-selector-list');\n append($list, list);\n append($ref, $list);\n\n const setLeft = () => {\n $list.style.left = `-${getStyle($list, 'width') / 2 - getStyle($ref, 'width') / 2}px`;\n };\n\n hover($ref, setLeft);\n\n proxy($ref, 'click', (event) => {\n if (hasClass(event.target, 'art-selector-item')) {\n const name = event.target.innerText;\n if ($value.innerText === name) return;\n const find = option.selector.find((item) => item.name === name);\n $value.innerText = name;\n setLeft();\n if (find) {\n if (option.onSelect) {\n option.onSelect.call(this.art, find);\n }\n this.art.emit('selector', find);\n }\n }\n });\n }\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreen(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreen);\n\n proxy($control, 'click', () => {\n player.fullscreenToggle = true;\n });\n\n art.on('fullscreen', value => {\n tooltip($control, i18n.get(value ? 'Exit fullscreen' : 'Fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function fullscreenWeb(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Web fullscreen'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.fullscreenWeb);\n\n proxy($control, 'click', () => {\n player.fullscreenWebToggle = true;\n });\n\n art.on('fullscreenWeb', value => {\n tooltip($control, i18n.get(value ? 'Exit web fullscreen' : 'Web fullscreen'));\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function pip(option) {\n return (art) => ({\n ...option,\n tooltip: art.i18n.get('PIP mode'),\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n append($control, icons.pip);\n\n proxy($control, 'click', () => {\n player.pipToggle = true;\n });\n\n art.on('pip', (value) => {\n tooltip($control, i18n.get(value ? 'Exit PIP mode' : 'PIP mode'));\n });\n },\n });\n}\n","import { append, tooltip, setStyle } from '../utils';\n\nexport default function playAndPause(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n player,\n } = art;\n\n const $play = append($control, icons.play);\n const $pause = append($control, icons.pause);\n tooltip($play, i18n.get('Play'));\n tooltip($pause, i18n.get('Pause'));\n\n proxy($play, 'click', () => {\n player.play();\n });\n\n proxy($pause, 'click', () => {\n player.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 (player.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 {\n append,\n clamp,\n secondToTime,\n setStyle,\n getStyle,\n query,\n addClass,\n removeClass,\n includeFromEvent,\n} from '../utils';\n\nexport function getPosFromEvent(art, event) {\n const {\n template: { $progress },\n player,\n } = art;\n\n const { left } = $progress.getBoundingClientRect();\n const width = clamp(event.pageX - left, 0, $progress.clientWidth);\n const second = (width / $progress.clientWidth) * player.duration;\n const time = secondToTime(second);\n const percentage = clamp(width / $progress.clientWidth, 0, 1);\n return { second, time, width, percentage };\n}\n\nexport default function progress(option) {\n return (art) => {\n const {\n option: { highlight, theme },\n events: { proxy },\n player,\n } = art;\n return {\n ...option,\n html: `\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n `,\n mounted: ($control) => {\n let isDroging = false;\n const $loaded = query('.art-progress-loaded', $control);\n const $played = query('.art-progress-played', $control);\n const $highlight = query('.art-progress-highlight', $control);\n const $indicator = query('.art-progress-indicator', $control);\n const $tip = query('.art-progress-tip', $control);\n\n function showHighlight(event) {\n const { width } = getPosFromEvent(art, event);\n const { text } = event.target.dataset;\n $tip.innerHTML = text;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function showTime(event) {\n const { width, time } = getPosFromEvent(art, event);\n $tip.innerHTML = time;\n const tipWidth = $tip.clientWidth;\n if (width <= tipWidth / 2) {\n setStyle($tip, 'left', 0);\n } else if (width > $control.clientWidth - tipWidth / 2) {\n setStyle($tip, 'left', `${$control.clientWidth - tipWidth}px`);\n } else {\n setStyle($tip, 'left', `${width - tipWidth / 2}px`);\n }\n }\n\n function setBar(type, percentage) {\n if (type === 'loaded') {\n setStyle($loaded, 'width', `${percentage * 100}%`);\n }\n\n if (type === 'played') {\n setStyle($played, 'width', `${percentage * 100}%`);\n setStyle(\n $indicator,\n 'left',\n `calc(${percentage * 100}% - ${getStyle($indicator, 'width') / 2}px)`,\n );\n }\n }\n\n highlight.forEach((item) => {\n const left = (clamp(item.time, 0, player.duration) / player.duration) * 100;\n append(\n $highlight,\n ``,\n );\n });\n\n setBar('loaded', player.loaded);\n\n art.on('video:progress', () => {\n setBar('loaded', player.loaded);\n });\n\n art.on('video:timeupdate', () => {\n setBar('played', player.played);\n });\n\n art.on('video:ended', () => {\n setBar('played', 1);\n });\n\n proxy($control, 'mousemove', (event) => {\n setStyle($tip, 'display', 'block');\n if (includeFromEvent(event, $highlight)) {\n showHighlight(event);\n } else {\n showTime(event);\n }\n });\n\n proxy($control, 'mouseout', () => {\n setStyle($tip, 'display', 'none');\n });\n\n proxy($control, 'click', (event) => {\n if (event.target !== $indicator) {\n const { second, percentage } = getPosFromEvent(art, event);\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy($indicator, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy(document, 'mousemove', (event) => {\n if (isDroging) {\n const { second, percentage } = getPosFromEvent(art, event);\n addClass($indicator, 'art-show-indicator');\n setBar('played', percentage);\n player.seek = second;\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n removeClass($indicator, 'art-show-indicator');\n }\n });\n },\n };\n };\n}\n","import { append, tooltip } from '../utils';\n\nexport default function subtitle(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Hide subtitle'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n subtitle,\n } = art;\n\n append($control, icons.subtitle);\n\n proxy($control, 'click', () => {\n subtitle.toggle = true;\n });\n\n art.on('subtitle', value => {\n tooltip($control, i18n.get(value ? 'Hide subtitle' : 'Show subtitle'));\n });\n },\n });\n}\n","import { secondToTime } from '../utils';\n\nexport default function time(option) {\n return art => ({\n ...option,\n mounted: $control => {\n function getTime() {\n const newTime = `${secondToTime(art.player.currentTime)} / ${secondToTime(art.player.duration)}`;\n if (newTime !== $control.innerText) {\n $control.innerText = newTime;\n }\n }\n\n getTime();\n ['video:loadedmetadata', 'video:timeupdate', 'video:progress'].forEach(event => {\n art.on(event, getTime);\n });\n },\n });\n}\n","import { append, clamp, tooltip, setStyle } from '../utils';\n\nexport default function volume(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const {\n events: { proxy },\n icons,\n player,\n i18n,\n } = art;\n\n let isDroging = false;\n const panelWidth = 60; // 音量条宽度\n const handleWidth = 12; // 音量把手宽度\n const $volume = append($control, icons.volume);\n const $volumeClose = append($control, icons.volumeClose);\n const $volumePanel = append($control, '
    ');\n const $volumeHandle = append($volumePanel, '
    ');\n tooltip($volume, i18n.get('Mute'));\n setStyle($volumeClose, 'display', 'none');\n\n if (art.isMobile) {\n setStyle($volumePanel, 'display', 'none');\n }\n\n function volumeChangeFromEvent(event) {\n const { left: panelLeft } = $volumePanel.getBoundingClientRect();\n const percentage =\n clamp(event.pageX - panelLeft - handleWidth / 2, 0, panelWidth - handleWidth / 2) /\n (panelWidth - handleWidth);\n return percentage;\n }\n\n function setVolumeHandle(percentage = 0.7) {\n if (player.muted || percentage === 0) {\n setStyle($volume, 'display', 'none');\n setStyle($volumeClose, 'display', 'flex');\n setStyle($volumeHandle, 'left', '0');\n } else {\n const width = (panelWidth - handleWidth) * percentage;\n setStyle($volume, 'display', 'flex');\n setStyle($volumeClose, 'display', 'none');\n setStyle($volumeHandle, 'left', `${width}px`);\n }\n }\n\n setVolumeHandle(player.volume);\n art.on('video:volumechange', () => {\n setVolumeHandle(player.volume);\n });\n\n proxy($volume, 'click', () => {\n player.muted = true;\n });\n\n proxy($volumeClose, 'click', () => {\n player.muted = false;\n });\n\n proxy($volumePanel, 'click', (event) => {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n });\n\n proxy($volumeHandle, 'mousedown', () => {\n isDroging = true;\n });\n\n proxy($control, 'mousemove', (event) => {\n if (isDroging) {\n player.muted = false;\n player.volume = volumeChangeFromEvent(event);\n }\n });\n\n proxy(document, 'mouseup', () => {\n if (isDroging) {\n isDroging = false;\n }\n });\n },\n });\n}\n","import { append, tooltip } from '../utils';\n\nexport default function setting(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Show setting'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n i18n,\n setting,\n } = art;\n\n append($control, icons.setting);\n\n proxy($control, 'click', () => {\n setting.toggle = true;\n });\n\n art.on('setting', value => {\n tooltip($control, i18n.get(value ? 'Hide setting' : 'Show setting'));\n });\n },\n });\n}\n","import { setStyle } from '../utils';\nimport { getPosFromEvent } from './progress';\n\nexport default function thumbnails(option) {\n return art => ({\n ...option,\n mounted: $control => {\n const {\n option: { thumbnails },\n template: { $progress },\n events: { proxy, loadImg },\n } = art;\n\n let loading = false;\n let isLoad = false;\n\n function showThumbnails(event) {\n const { width: posWidth } = getPosFromEvent(art, event);\n const { url, height, width, number, column } = thumbnails;\n const perWidth = $progress.clientWidth / number;\n const perIndex = Math.floor(posWidth / perWidth);\n const yIndex = Math.ceil(perIndex / column) - 1;\n const xIndex = perIndex % column || column - 1;\n setStyle($control, 'backgroundImage', `url(${url})`);\n setStyle($control, 'height', `${height}px`);\n setStyle($control, 'width', `${width}px`);\n setStyle($control, 'backgroundPosition', `-${xIndex * width}px -${yIndex * height}px`);\n if (posWidth <= width / 2) {\n setStyle($control, 'left', 0);\n } else if (posWidth > $progress.clientWidth - width / 2) {\n setStyle($control, 'left', `${$progress.clientWidth - width}px`);\n } else {\n setStyle($control, 'left', `${posWidth - width / 2}px`);\n }\n }\n\n proxy($progress, 'mousemove', event => {\n if (!loading) {\n loading = true;\n loadImg(thumbnails.url).then(() => {\n isLoad = true;\n });\n }\n\n if (isLoad) {\n setStyle($control, 'display', 'block');\n showThumbnails(event);\n }\n });\n\n proxy($progress, 'mouseout', () => {\n setStyle($control, 'display', 'none');\n });\n },\n });\n}\n","import { append } from '../utils';\n\nexport default function screenshot(option) {\n return art => ({\n ...option,\n tooltip: art.i18n.get('Screenshot'),\n mounted: $control => {\n const {\n events: { proxy },\n icons,\n player,\n } = art;\n\n append($control, icons.screenshot);\n proxy($control, 'click', () => {\n player.screenshot();\n });\n },\n });\n}\n","export default function quality(option) {\n return (art) => {\n const qualityOption = art.option.quality;\n const qualityDefault = qualityOption.find((item) => item.default) || qualityOption[0];\n return {\n ...option,\n html: qualityDefault ? qualityDefault.name : '',\n selector: qualityOption,\n onSelect(item) {\n art.player.switchQuality(item.url, item.name);\n },\n };\n };\n}\n","import { append, setStyle } from '../utils';\n\nexport default function loop(option) {\n return (art) => ({\n ...option,\n mounted: ($control) => {\n const { player } = art;\n\n const $left = append($control, ``);\n const $right = append($control, ``);\n\n art.on('loop', (value) => {\n if (value) {\n setStyle($control, 'display', 'block');\n setStyle($left, 'left', `calc(${(value[0] / player.duration) * 100}% - ${$left.clientWidth}px)`);\n setStyle($right, 'left', `${(value[1] / player.duration) * 100}%`);\n } else {\n setStyle($control, 'display', 'none');\n }\n });\n },\n });\n}\n","import { errorHandle, addClass, removeClass } from '../utils';\nimport Component from '../utils/component';\nimport fullscreen from './fullscreen';\nimport fullscreenWeb from './fullscreenWeb';\nimport pip from './pip';\nimport playAndPause from './playAndPause';\nimport progress from './progress';\nimport subtitle from './subtitle';\nimport time from './time';\nimport volume from './volume';\nimport setting from './setting';\nimport thumbnails from './thumbnails';\nimport screenshot from './screenshot';\nimport quality from './quality';\nimport loop from './loop';\n\nexport default class Control extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'control';\n\n const {\n option,\n player,\n template: { $player },\n } = art;\n\n this.mouseMoveTime = Date.now();\n\n art.on('mousemove', () => {\n this.show = true;\n removeClass($player, 'art-hide-cursor');\n addClass($player, 'art-hover');\n this.mouseMoveTime = Date.now();\n });\n\n art.on('video:timeupdate', () => {\n if (player.playing && this.show && Date.now() - this.mouseMoveTime >= 3000) {\n this.show = false;\n addClass($player, 'art-hide-cursor');\n removeClass($player, 'art-hover');\n }\n });\n\n art.once('ready', () => {\n this.add(\n progress({\n name: 'progress',\n disable: option.isLive,\n position: 'top',\n index: 10,\n }),\n );\n\n this.add(\n thumbnails({\n name: 'thumbnails',\n disable: !option.thumbnails.url || option.isLive,\n position: 'top',\n index: 20,\n }),\n );\n\n this.add(\n loop({\n name: 'loop',\n disable: false,\n position: 'top',\n index: 30,\n }),\n );\n\n this.add(\n playAndPause({\n name: 'playAndPause',\n disable: false,\n position: 'left',\n index: 10,\n }),\n );\n\n this.add(\n volume({\n name: 'volume',\n disable: false,\n position: 'left',\n index: 20,\n }),\n );\n\n this.add(\n time({\n name: 'time',\n disable: option.isLive,\n position: 'left',\n index: 30,\n }),\n );\n\n this.add(\n quality({\n name: 'quality',\n disable: option.quality.length === 0,\n position: 'right',\n index: 10,\n }),\n );\n\n this.add(\n screenshot({\n name: 'screenshot',\n disable: !option.screenshot,\n position: 'right',\n index: 20,\n }),\n );\n\n this.add(\n subtitle({\n name: 'subtitle',\n disable: !option.subtitle.url,\n position: 'right',\n index: 30,\n }),\n );\n\n this.add(\n setting({\n name: 'setting',\n disable: !option.setting,\n position: 'right',\n index: 40,\n }),\n );\n\n this.add(\n pip({\n name: 'pip',\n disable: !option.pip,\n position: 'right',\n index: 50,\n }),\n );\n\n this.add(\n fullscreenWeb({\n name: 'fullscreenWeb',\n disable: !option.fullscreenWeb,\n position: 'right',\n index: 60,\n }),\n );\n\n this.add(\n fullscreen({\n name: 'fullscreen',\n disable: !option.fullscreen,\n position: 'right',\n index: 70,\n }),\n );\n\n option.controls.forEach((item) => {\n this.add(item);\n });\n });\n }\n\n add(getOption) {\n const option = typeof getOption === 'function' ? getOption(this.art) : getOption;\n const { $progress, $controlsLeft, $controlsRight } = this.art.template;\n\n switch (option.position) {\n case 'top':\n this.$parent = $progress;\n break;\n case 'left':\n this.$parent = $controlsLeft;\n break;\n case 'right':\n this.$parent = $controlsRight;\n break;\n default:\n errorHandle(false, `Control option.position must one of 'top', 'left', 'right'`);\n break;\n }\n\n super.add(option);\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function playbackRate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Play speed')}:\n 0.5\n 0.75\n ${i18n.get('Normal')}\n 1.25\n 1.5\n 2.0\n `,\n click: (contextmenu, event) => {\n const { rate } = event.target.dataset;\n if (rate) {\n player.playbackRate = Number(rate);\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('playbackRate', (rate) => {\n const $current = queryAll('span', $menu).find((item) => Number(item.dataset.rate) === rate);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `${i18n.get('Aspect ratio')}:\n ${i18n.get('Default')}\n 4:3\n 16:9\n `,\n click: (contextmenu, event) => {\n const { ratio } = event.target.dataset;\n if (ratio) {\n player.aspectRatio = ratio;\n contextmenu.show = false;\n }\n },\n mounted: ($menu) => {\n art.on('aspectRatio', (ratio) => {\n const $current = queryAll('span', $menu).find((item) => item.dataset.ratio === ratio);\n if ($current) {\n inverseClass($current, 'art-current');\n }\n });\n },\n };\n };\n}\n","export default function info(option) {\n return art => ({\n ...option,\n html: art.i18n.get('Video info'),\n click: contextmenu => {\n art.info.show = true;\n contextmenu.show = false;\n },\n });\n}\n","export default function version(option) {\n return {\n ...option,\n html: 'ArtPlayer __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 { setStyles, includeFromEvent } from '../utils';\nimport Component from '../utils/component';\nimport playbackRate from './playbackRate';\nimport aspectRatio from './aspectRatio';\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\n const {\n option,\n template: { $player, $contextmenu },\n events: { proxy },\n } = art;\n\n this.$parent = $contextmenu;\n\n art.once('ready', () => {\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n index: 10,\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n index: 20,\n }),\n );\n\n this.add(\n info({\n disable: false,\n name: 'info',\n index: 30,\n }),\n );\n\n this.add(\n version({\n disable: false,\n name: 'version',\n index: 40,\n }),\n );\n\n this.add(\n close({\n disable: false,\n name: 'close',\n index: 60,\n }),\n );\n\n option.contextmenu.forEach((item) => {\n this.add(item);\n });\n\n proxy($player, 'contextmenu', (event) => {\n event.preventDefault();\n this.show = true;\n\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { height: cHeight, width: cWidth, left: cLeft, top: cTop } = $player.getBoundingClientRect();\n const { height: mHeight, width: mWidth } = $contextmenu.getBoundingClientRect();\n let menuLeft = mouseX - cLeft;\n let menuTop = mouseY - cTop;\n\n if (mouseX + mWidth > cLeft + cWidth) {\n menuLeft = cWidth - mWidth;\n }\n\n if (mouseY + mHeight > cTop + cHeight) {\n menuTop = cHeight - mHeight;\n }\n\n setStyles($contextmenu, {\n top: `${menuTop}px`,\n left: `${menuLeft}px`,\n });\n });\n\n proxy($player, 'click', (event) => {\n if (!includeFromEvent(event, $contextmenu)) {\n this.show = false;\n }\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n });\n }\n}\n","import { queryAll } from './utils';\nimport Component from './utils/component';\n\nexport default class Info extends Component {\n constructor(art) {\n super(art);\n this.art = art;\n this.name = 'info';\n if (this.art.template.$info) {\n this.init();\n }\n }\n\n init() {\n const {\n template: { $infoPanel, $infoClose, $video },\n events: { proxy },\n } = this.art;\n\n proxy($infoClose, 'click', () => {\n this.show = false;\n });\n\n let timer = null;\n const types = queryAll('[data-video]', $infoPanel);\n\n this.art.on('destroy', () => {\n clearTimeout(timer);\n });\n\n function loop() {\n types.forEach((item) => {\n const value = $video[item.dataset.video];\n item.innerText = typeof value === 'number' ? value.toFixed(2) : value;\n });\n timer = setTimeout(() => {\n loop();\n }, 1000);\n }\n\n this.art.on('info', (value) => {\n clearTimeout(timer);\n if (value) {\n loop();\n }\n });\n }\n}\n","import {\n setStyle,\n setStyles,\n srtToVtt,\n vttToBlob,\n getExt,\n assToVtt,\n addClass,\n escape,\n removeClass,\n hasClass,\n} from './utils';\nimport Component from './utils/component';\n\nexport default class Subtitle extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'subtitle';\n\n const {\n option: { subtitle },\n template: { $subtitle },\n } = art;\n\n setStyles($subtitle, subtitle.style);\n\n if (subtitle.url) {\n this.init(subtitle.url);\n }\n\n if (subtitle.bilingual) {\n addClass($subtitle, 'art-bilingual');\n }\n }\n\n get url() {\n return this.art.template.$track.src;\n }\n\n get textTrack() {\n return this.art.template.$video.textTracks[0];\n }\n\n get activeCue() {\n return this.textTrack.activeCues[0];\n }\n\n get bilingual() {\n const { $subtitle } = this.art.template;\n return hasClass($subtitle, 'art-bilingual');\n }\n\n set bilingual(val) {\n const { $subtitle } = this.art.template;\n if (val) {\n addClass($subtitle, 'art-bilingual');\n } else {\n removeClass($subtitle, 'art-bilingual');\n }\n }\n\n style(key, value) {\n const { $subtitle } = this.art.template;\n if (typeof key === 'object') {\n return setStyles($subtitle, key);\n }\n return setStyle($subtitle, key, value);\n }\n\n update() {\n const { $subtitle } = this.art.template;\n $subtitle.innerHTML = '';\n if (this.activeCue) {\n $subtitle.innerHTML = this.activeCue.text\n .split(/\\r?\\n/)\n .map((item) => `

    ${escape(item)}

    `)\n .join('');\n this.art.emit('subtitleUpdate', this.activeCue.text);\n }\n }\n\n switch(url, opt = {}) {\n const { i18n, notice } = this.art;\n return this.init(url, opt).then((subUrl) => {\n if (opt.name) {\n notice.show = `${i18n.get('Switch subtitle')}: ${opt.name}`;\n }\n this.art.emit('subtitleSwitch', subUrl);\n return subUrl;\n });\n }\n\n init(url, opt = {}) {\n const {\n notice,\n events: { proxy },\n option: { subtitle },\n template: { $subtitle, $video, $track },\n } = this.art;\n\n if (!$track) {\n const $track = document.createElement('track');\n $track.default = true;\n $track.kind = 'metadata';\n $video.appendChild($track);\n this.art.template.$track = $track;\n proxy(this.textTrack, 'cuechange', this.update.bind(this));\n }\n\n return fetch(url)\n .then((response) => response.arrayBuffer())\n .then((buffer) => {\n const decoder = new TextDecoder(opt.encoding || subtitle.encoding);\n const text = decoder.decode(buffer);\n\n this.art.emit('subtitleLoad', url);\n switch (opt.ext || getExt(url)) {\n case 'srt':\n return vttToBlob(srtToVtt(text));\n case 'ass':\n return vttToBlob(assToVtt(text));\n case 'vtt':\n return vttToBlob(text);\n default:\n return url;\n }\n })\n .then((subUrl) => {\n $subtitle.innerHTML = '';\n if (this.url === subUrl) return subUrl;\n URL.revokeObjectURL(this.url);\n this.art.template.$track.src = subUrl;\n return subUrl;\n })\n .catch((err) => {\n notice.show = err;\n throw err;\n });\n }\n}\n","import { includeFromEvent } from '../utils';\n\nexport default function clickInit(art, events) {\n const {\n template: { $player },\n } = art;\n\n events.proxy(document, ['click', 'contextmenu'], (event) => {\n if (includeFromEvent(event, $player)) {\n art.isFocus = true;\n art.emit('focus');\n } else {\n art.isFocus = false;\n art.emit('blur');\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 () => {\n addClass($player, 'art-hover');\n art.emit('hover', true);\n },\n () => {\n removeClass($player, 'art-hover');\n art.emit('hover');\n },\n );\n}\n","export default function mousemoveInitInit(art, events) {\n const { $player } = art.template;\n\n events.proxy($player, 'mousemove', (event) => {\n art.emit('mousemove', event);\n });\n}\n","import { throttle } from '../utils';\n\nexport default function resizeInit(art, events) {\n const { option, player } = art;\n\n const resizeFn = throttle(() => {\n if (player.normalSize) {\n player.autoSize = option.autoSize;\n }\n player.aspectRatioReset = true;\n art.emit('resize');\n }, 500);\n\n events.proxy(window, ['orientationchange', 'resize'], () => {\n resizeFn();\n });\n}\n","import { clamp, secondToTime } from '../utils';\n\nexport default function gestureInit(art, events) {\n if (art.isMobile && !art.option.isLive) {\n const {\n player,\n notice,\n template: { $video },\n } = art;\n\n let isDroging = false;\n let startX = 0;\n let currentTime = 0;\n\n events.proxy($video, 'touchstart', (event) => {\n if (event.touches.length === 1) {\n isDroging = true;\n startX = event.touches[0].clientX;\n }\n });\n\n events.proxy(document, 'touchmove', (event) => {\n if (event.touches.length === 1 && isDroging) {\n const widthDiff = event.touches[0].clientX - startX;\n const proportion = clamp(widthDiff / $video.clientWidth, -1, 1);\n currentTime = clamp(player.currentTime + 60 * proportion, 0, player.duration);\n notice.show = `${secondToTime(currentTime)} / ${secondToTime(player.duration)}`;\n }\n });\n\n events.proxy(document, 'touchend', () => {\n if (isDroging && currentTime) {\n player.seek = currentTime;\n }\n isDroging = false;\n startX = 0;\n currentTime = 0;\n });\n }\n}\n","import { throttle, isInViewport } from '../utils';\n\nexport default function viewInit(art, events) {\n const {\n player,\n option,\n template: { $container },\n } = art;\n\n const scrollFn = throttle(() => {\n art.emit('view', isInViewport($container, 50));\n }, 200);\n\n events.proxy(window, 'scroll', () => {\n scrollFn();\n });\n\n art.on('view', (state) => {\n if (option.autoMini) {\n player.mini = !state;\n }\n });\n}\n","import { ArtPlayerError } from '../utils/error';\nimport clickInit from './clickInit';\nimport hoverInit from './hoverInit';\nimport mousemoveInit from './mousemoveInit';\nimport resizeInit from './resizeInit';\nimport gestureInit from './gestureInit';\nimport viewInit from './viewInit';\n\nexport default class Events {\n constructor(art) {\n this.destroyEvents = [];\n this.proxy = this.proxy.bind(this);\n this.hover = this.hover.bind(this);\n this.loadImg = this.loadImg.bind(this);\n\n if (art.whitelist.state) {\n art.once('ready', () => {\n clickInit(art, this);\n hoverInit(art, this);\n mousemoveInit(art, this);\n resizeInit(art, this);\n gestureInit(art, this);\n viewInit(art, this);\n });\n }\n }\n\n proxy(target, name, callback, option = {}) {\n if (Array.isArray(name)) {\n return name.map((item) => this.proxy(target, item, callback, option));\n }\n\n target.addEventListener(name, callback, option);\n const destroy = () => target.removeEventListener(name, callback, option);\n this.destroyEvents.push(destroy);\n return destroy;\n }\n\n hover(target, mouseenter, mouseleave) {\n if (mouseenter) {\n this.proxy(target, 'mouseenter', mouseenter);\n }\n if (mouseleave) {\n this.proxy(target, 'mouseleave', mouseleave);\n }\n }\n\n loadImg(img) {\n return new Promise((resolve, reject) => {\n let image;\n\n if (img instanceof HTMLImageElement) {\n image = img;\n } else if (typeof img === 'string') {\n image = new Image();\n image.src = img;\n } else {\n return reject(new ArtPlayerError('Unable to get Image'));\n }\n\n if (image.complete) {\n return resolve(image);\n }\n\n this.proxy(image, 'load', () => resolve(image));\n this.proxy(image, 'error', () => reject(new ArtPlayerError(`Failed to load Image: ${image.src}`)));\n\n return resolve(image);\n });\n }\n\n destroy() {\n this.destroyEvents.forEach((event) => event());\n }\n}\n","export default class Hotkey {\n constructor(art) {\n this.keys = {};\n\n const {\n option,\n player,\n events: { proxy },\n } = art;\n\n if (option.hotkey) {\n art.once('ready', () => {\n this.add(27, () => {\n if (player.fullscreenWeb) {\n player.fullscreenWeb = false;\n }\n });\n\n this.add(32, () => {\n player.toggle();\n });\n\n this.add(37, () => {\n player.backward = 5;\n });\n\n this.add(38, () => {\n player.volume += 0.1;\n });\n\n this.add(39, () => {\n player.forward = 5;\n });\n\n this.add(40, () => {\n player.volume -= 0.1;\n });\n\n proxy(window, 'keydown', (event) => {\n if (art.isFocus) {\n const tag = document.activeElement.tagName.toUpperCase();\n const editable = document.activeElement.getAttribute('contenteditable');\n if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n const events = this.keys[event.keyCode];\n if (events) {\n event.preventDefault();\n events.forEach((fn) => fn.call(art));\n art.emit('hotkey', event);\n }\n }\n }\n });\n });\n }\n }\n\n add(key, event) {\n if (this.keys[key]) {\n this.keys[key].push(event);\n } else {\n this.keys[key] = [event];\n }\n }\n}\n","import Component from './utils/component';\n\nexport default class Layer extends Component {\n constructor(art) {\n super(art);\n this.name = 'layer';\n this.$parent = art.template.$layer;\n art.once('ready', () => {\n art.option.layers.forEach(item => {\n this.add(item);\n });\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.time = 2000;\n this.timer = null;\n }\n\n set show(msg) {\n const { $player, $noticeInner } = this.art.template;\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 }, this.time);\n }\n}\n","import { append } from './utils';\nimport Component from './utils/component';\n\nexport default class Mask extends Component {\n constructor(art) {\n super(art);\n this.name = 'mask';\n append(art.template.$state, art.icons.state);\n }\n}\n","import { append, def, addClass } from '../utils';\nimport loading from './loading.svg';\nimport state from './state.svg';\nimport play from './play.svg';\nimport pause from './pause.svg';\nimport volume from './volume.svg';\nimport volumeClose from './volume-close.svg';\nimport subtitle from './subtitle.svg';\nimport screenshot from './screenshot.svg';\nimport setting from './setting.svg';\nimport fullscreen from './fullscreen.svg';\nimport fullscreenWeb from './fullscreen-web.svg';\nimport pip from './pip.svg';\n\nexport default class Icons {\n constructor(art) {\n const icons = {\n loading,\n state,\n play,\n pause,\n volume,\n volumeClose,\n subtitle,\n screenshot,\n setting,\n fullscreen,\n fullscreenWeb,\n pip,\n ...art.option.icons,\n };\n\n Object.keys(icons).forEach((key) => {\n def(this, key, {\n get: () => {\n const icon = document.createElement('i');\n addClass(icon, 'art-icon');\n addClass(icon, `art-icon-${key}`);\n append(icon, icons[key]);\n return icon;\n },\n });\n });\n }\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function flip(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
    ${i18n.get('Flip')}
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.flip = value;\n }\n },\n mounted: $setting => {\n art.on('flip', flip => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === flip);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function rotate(option) {\n return (art) => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
    \n ${i18n.get('Rotate')}: 0°\n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n const deg = player.rotate + Number(value);\n if (deg === 360 || deg === -360) {\n player.rotate = 0;\n } else {\n player.rotate = deg;\n }\n } else {\n player.rotate = 0;\n }\n },\n mounted: ($setting) => {\n const $value = query('.art-rotate-value', $setting);\n art.on('rotate', (rotate) => {\n $value.innerText = `${rotate || 0}°`;\n });\n },\n };\n };\n}\n","import { inverseClass, queryAll } from '../utils';\n\nexport default function aspectRatio(option) {\n return art => {\n const { i18n, player } = art;\n return {\n ...option,\n html: `\n
    ${i18n.get('Aspect ratio')}
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n `,\n click: (setting, event) => {\n const { value } = event.target.dataset;\n if (value) {\n player.aspectRatio = value;\n }\n },\n mounted: $setting => {\n art.on('aspectRatio', ratio => {\n const $current = queryAll('button', $setting).find(item => item.dataset.value === ratio);\n if ($current) {\n inverseClass($current.parentElement, 'current');\n }\n });\n },\n };\n };\n}\n","import { query } from '../utils';\n\nexport default function playbackRate(option) {\n return art => {\n const {\n i18n,\n player,\n events: { proxy },\n } = art;\n return {\n ...option,\n html: `\n
    \n ${i18n.get('Play speed')}: 1.0x\n
    \n
    \n \n
    \n `,\n mounted: $setting => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n player.playbackRate = Number(value);\n });\n\n art.on('playbackRate', rate => {\n if (rate && $range.value !== rate) {\n $range.value = rate;\n $value.innerText = rate;\n }\n });\n },\n };\n };\n}\n","import Component from '../utils/component';\nimport flip from './flip';\nimport rotate from './rotate';\nimport aspectRatio from './aspectRatio';\nimport playbackRate from './playbackRate';\n\nexport default class Setting extends Component {\n constructor(art) {\n super(art);\n\n this.name = 'setting';\n\n const {\n option,\n template: { $setting, $settingBody },\n events: { proxy },\n } = art;\n\n this.$parent = $settingBody;\n\n if (option.setting) {\n art.once('ready', () => {\n proxy($setting, 'click', e => {\n if (e.target === $setting) {\n this.show = false;\n }\n });\n\n this.add(\n flip({\n disable: !option.flip,\n name: 'flip',\n }),\n );\n\n this.add(\n rotate({\n disable: !option.rotate,\n name: 'rotate',\n }),\n );\n\n this.add(\n aspectRatio({\n disable: !option.aspectRatio,\n name: 'aspectRatio',\n }),\n );\n\n this.add(\n playbackRate({\n disable: !option.playbackRate,\n name: 'playbackRate',\n }),\n );\n });\n\n art.on('blur', () => {\n this.show = false;\n });\n }\n }\n}\n","export default class Storage {\n constructor() {\n this.name = 'artplayer_settings';\n this.settings = {};\n }\n\n get(key) {\n try {\n const storage = JSON.parse(window.localStorage.getItem(this.name)) || {};\n return key ? storage[key] : storage;\n } catch (error) {\n return key ? this.settings[key] : this.settings;\n }\n }\n\n set(key, value) {\n try {\n const storage = Object.assign({}, this.get(), {\n [key]: value,\n });\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n this.settings[key] = value;\n }\n }\n\n del(key) {\n try {\n const storage = this.get();\n delete storage[key];\n window.localStorage.setItem(this.name, JSON.stringify(storage));\n } catch (error) {\n delete this.settings[key];\n }\n }\n\n clean() {\n try {\n window.localStorage.removeItem(this.name);\n } catch (error) {\n this.settings = {};\n }\n }\n}\n","import { query } from '../utils';\n\nfunction settingMix(art) {\n const {\n i18n,\n subtitle,\n events: { proxy },\n } = art;\n\n return {\n title: 'Subtitle',\n name: 'subtitleOffset',\n index: 20,\n html: `\n
    \n ${i18n.get('Subtitle offset time')}: 0s\n
    \n
    \n \n
    \n `,\n mounted: ($setting) => {\n const $range = query('.art-setting-range input', $setting);\n const $value = query('.art-subtitle-value', $setting);\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n art.plugins.subtitleOffset.offset(Number(value));\n });\n\n art.on('subtitle:switch', () => {\n $range.value = 0;\n $value.innerText = 0;\n });\n\n art.on('subtitleOffset', (value) => {\n subtitle.update();\n if ($range.value !== value) {\n $range.value = value;\n $value.innerText = value;\n }\n });\n },\n };\n}\n\nexport default function subtitleOffset(art) {\n const { clamp } = art.constructor.utils;\n const { setting, notice, template, i18n, player } = art;\n\n setting.add(settingMix);\n let cuesCache = [];\n art.on('subtitle:switch', () => {\n cuesCache = [];\n });\n\n return {\n name: 'subtitleOffset',\n offset(value) {\n if (template.$track && template.$track.track) {\n const cues = Array.from(template.$track.track.cues);\n const time = clamp(value, -5, 5);\n cues.forEach((cue, index) => {\n if (!cuesCache[index]) {\n cuesCache[index] = {\n startTime: cue.startTime,\n endTime: cue.endTime,\n };\n }\n cue.startTime = clamp(cuesCache[index].startTime + time, 0, player.duration);\n cue.endTime = clamp(cuesCache[index].endTime + time, 0, player.duration);\n });\n notice.show = `${i18n.get('Subtitle offset time')}: ${value}s`;\n art.emit('subtitleOffset', value);\n } else {\n notice.show = `${i18n.get('No subtitles found')}`;\n art.emit('subtitleOffset', 0);\n }\n },\n };\n}\n","import { append, query, setStyle, setStyles, errorHandle } from '../utils';\n\nexport default function localVideo(art) {\n const {\n events: { proxy },\n template,\n player,\n option,\n setting,\n i18n,\n } = art;\n\n function loadVideo(file) {\n if (file) {\n const canPlayType = template.$video.canPlayType(file.type);\n if (canPlayType === 'maybe' || canPlayType === 'probably') {\n const url = URL.createObjectURL(file);\n option.title = file.name;\n player.switchUrl(url, file.name);\n art.emit('localVideo', file);\n } else {\n errorHandle(false, 'Playback of this file format is not supported');\n }\n }\n }\n\n proxy(template.$player, 'dragover', e => {\n e.preventDefault();\n });\n\n proxy(template.$player, 'drop', e => {\n e.preventDefault();\n const file = e.dataTransfer.files[0];\n loadVideo(file);\n });\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadVideo(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Video',\n name: 'localVideo',\n index: 30,\n html: `\n
    \n ${i18n.get('Local Video')}\n
    \n
    \n
    ${i18n.get('Open')}
    \n
    \n
    \n `,\n mounted: $setting => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localVideo', file => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localVideo',\n attach,\n };\n}\n","import { query, append, setStyle, setStyles, errorHandle, getExt } from '../utils';\n\nexport default function localSubtitle(art) {\n const {\n events: { proxy },\n subtitle,\n setting,\n i18n,\n } = art;\n\n function loadSubtitle(file) {\n if (file) {\n const type = getExt(file.name);\n if (['ass', 'vtt', 'srt'].includes(type)) {\n subtitle.switch(URL.createObjectURL(file), {\n name: file.name,\n ext: type,\n });\n art.emit('localSubtitle', file);\n } else {\n errorHandle(false, 'Only supports subtitle files in .ass, .vtt and .srt format');\n }\n }\n }\n\n function attach(target) {\n const $input = append(target, '');\n setStyle(target, 'position', 'relative');\n setStyles($input, {\n position: 'absolute',\n width: '100%',\n height: '100%',\n left: '0',\n top: '0',\n opacity: '0',\n });\n proxy($input, 'change', () => {\n const file = $input.files[0];\n loadSubtitle(file);\n });\n }\n\n art.once('ready', () => {\n setting.add({\n title: 'Local Subtitle',\n name: 'localSubtitle',\n index: 40,\n html: `\n
    \n ${i18n.get('Local Subtitle')}\n
    \n
    \n
    ${i18n.get('Open')}
    \n
    \n
    \n `,\n mounted: ($setting) => {\n const $btn = query('.art-upload-btn', $setting);\n const $value = query('.art-upload-value', $setting);\n art.on('localSubtitle', (file) => {\n $value.textContent = file.name;\n $value.title = file.name;\n });\n attach($btn);\n },\n });\n });\n\n return {\n name: 'localSubtitle',\n attach,\n };\n}\n","export default function miniProgressBar(art) {\n const {\n layers,\n player,\n option: { theme },\n } = art;\n\n layers.add({\n name: 'miniProgressBar',\n style: {\n display: 'none',\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n height: '2px',\n background: theme,\n },\n mounted($progressBar) {\n art.on('control', value => {\n $progressBar.style.display = value ? 'none' : 'block';\n });\n\n art.on('destroy', () => {\n $progressBar.style.display = 'none';\n });\n\n art.on('video:timeupdate', () => {\n $progressBar.style.width = `${player.played * 100}%`;\n });\n },\n });\n\n return {\n name: 'miniProgressBar',\n };\n}\n","export default function networkMonitor(art) {\n let sampleTime = 10000;\n let waitTime = 0;\n let playTime = 0;\n let lastTime = 0;\n let timer = null;\n\n function resetTime() {\n waitTime = 0;\n playTime = 0;\n lastTime = 0;\n cancelAnimationFrame(timer);\n timer = null;\n }\n\n function startTime() {\n if (timer) return;\n (function loop() {\n if (art.isDestroy) return;\n timer = requestAnimationFrame(() => {\n const nowTime = Date.now();\n if (lastTime) {\n const diffTime = nowTime - lastTime;\n playTime += diffTime;\n if (!art.player.playing) {\n waitTime += diffTime;\n }\n }\n lastTime = nowTime;\n art.emit('networkMonitor', waitTime / playTime);\n if (playTime >= sampleTime) {\n waitTime = 0;\n playTime = 0;\n }\n loop();\n });\n })();\n }\n\n art.on('play', startTime);\n art.on('pause', resetTime);\n\n return {\n name: 'networkMonitor',\n reset: resetTime,\n start: startTime,\n sample: time => {\n sampleTime = time;\n },\n };\n}\n","import { append, setStyle, remove, escape } from '../utils';\n\nexport default function log(art) {\n const { layers } = art;\n\n let $log = null;\n layers.add({\n name: 'log',\n style: {\n bottom: '50px',\n },\n mounted($el) {\n $log = $el;\n },\n });\n\n let timer = null;\n const max = 5;\n const timeout = 3000;\n\n function check() {\n const count = $log.childElementCount;\n setStyle($log, 'bottom', art.controls.show ? '50px' : '10px');\n if (count) {\n if (count > max) {\n remove($log.firstElementChild);\n timer = setTimeout(check, timeout);\n } else {\n timer = setTimeout(() => {\n remove($log.firstElementChild);\n check();\n }, timeout);\n }\n } else {\n setStyle($log, 'display', 'none');\n }\n }\n\n art.on('destroy', () => clearTimeout(timer));\n\n return {\n name: 'log',\n emit(msg) {\n if (typeof msg !== 'string') return;\n append($log, `

    ${escape(msg)}

    `);\n setStyle($log, 'display', 'block');\n clearTimeout(timer);\n check();\n },\n };\n}\n","import { errorHandle, has, def } from '../utils';\nimport subtitleOffset from './subtitleOffset';\nimport localVideo from './localVideo';\nimport localSubtitle from './localSubtitle';\nimport miniProgressBar from './miniProgressBar';\nimport networkMonitor from './networkMonitor';\nimport log from './log';\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.subtitle.url && option.subtitleOffset) {\n this.add(subtitleOffset);\n }\n\n if (!option.isLive && option.miniProgressBar) {\n this.add(miniProgressBar);\n }\n\n if (option.localVideo) {\n this.add(localVideo);\n }\n\n if (option.localSubtitle) {\n this.add(localSubtitle);\n }\n\n if (option.networkMonitor) {\n this.add(networkMonitor);\n }\n\n if (option.log) {\n this.add(log);\n }\n\n art.option.plugins.forEach((plugin) => {\n this.add(plugin);\n });\n }\n\n add(plugin) {\n this.id += 1;\n const result = plugin.call(this, this.art);\n const pluginName = (result && result.name) || plugin.name || `plugin${this.id}`;\n errorHandle(!has(this, pluginName), `Cannot add a plugin that already has the same name: ${pluginName}`);\n def(this, pluginName, {\n value: result,\n });\n return this;\n }\n}\n","import config from './config';\nimport { clamp, getExt } from './utils';\n\nexport default class Mobile {\n constructor(art) {\n const {\n option,\n events: { proxy },\n template: { $video },\n } = art;\n\n config.events.forEach(eventName => {\n proxy($video, eventName, event => {\n art.emit(`video:${event.type}`, event);\n });\n });\n\n Object.keys(option.moreVideoAttr).forEach(key => {\n $video[key] = option.moreVideoAttr[key];\n });\n\n if (option.muted) {\n $video.muted = option.muted;\n }\n\n if (option.volume) {\n $video.volume = clamp(option.volume, 0, 1);\n }\n\n if (option.poster) {\n $video.poster = option.poster;\n }\n\n if (option.autoplay) {\n $video.autoplay = option.autoplay;\n }\n\n $video.controls = true;\n\n const typeName = option.type || getExt(option.url);\n const typeCallback = option.customType[typeName];\n if (typeName && typeCallback) {\n typeCallback($video, option.url, art);\n art.emit('customType', typeName);\n } else {\n $video.src = option.url;\n art.emit('url', $video.src);\n }\n }\n}\n","import './style/index.scss';\nimport validator from 'option-validator';\nimport Emitter from './utils/emitter';\nimport * as utils from './utils';\nimport scheme from './scheme';\nimport config from './config';\nimport Whitelist from './whitelist';\nimport Template from './template';\nimport I18n from './i18n';\nimport Player from './player';\nimport Control from './control';\nimport Contextmenu from './contextmenu';\nimport Info from './info';\nimport Subtitle from './subtitle';\nimport Events from './events';\nimport Hotkey from './hotkey';\nimport Layer from './layer';\nimport Loading from './loading';\nimport Notice from './notice';\nimport Mask from './mask';\nimport Icons from './icons';\nimport Setting from './setting';\nimport Storage from './storage';\nimport Plugins from './plugins';\nimport Mobile from './mobile';\n\nlet id = 0;\nconst instances = [];\nexport default class Artplayer extends Emitter {\n constructor(option) {\n super();\n this.option = validator(utils.mergeDeep(Artplayer.option, option), scheme);\n this.isFocus = false;\n this.isDestroy = false;\n this.userAgent = utils.userAgent;\n this.isMobile = utils.isMobile;\n this.isWechat = utils.isWechat;\n this.whitelist = new Whitelist(this);\n this.template = new Template(this);\n this.events = new Events(this);\n if (this.whitelist.state) {\n this.storage = new Storage(this);\n this.icons = new Icons(this);\n this.i18n = new I18n(this);\n this.notice = new Notice(this);\n this.player = new Player(this);\n this.layers = new Layer(this);\n this.controls = new Control(this);\n this.contextmenu = new Contextmenu(this);\n this.subtitle = new Subtitle(this);\n this.info = new Info(this);\n this.loading = new Loading(this);\n this.hotkey = new Hotkey(this);\n this.mask = new Mask(this);\n this.setting = new Setting(this);\n this.plugins = new Plugins(this);\n } else {\n this.mobile = new Mobile(this);\n }\n\n id += 1;\n this.id = id;\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 env() {\n return '__ENV__';\n }\n\n static get config() {\n return config;\n }\n\n static get utils() {\n return utils;\n }\n\n static get scheme() {\n return scheme;\n }\n\n static get Emitter() {\n return Emitter;\n }\n\n static get validator() {\n return validator;\n }\n\n static get kindOf() {\n return validator.kindOf;\n }\n\n static get html() {\n return Template.html;\n }\n\n static get option() {\n return {\n container: '#artplayer',\n url: '',\n poster: '',\n title: '',\n 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 rotate: 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 localVideo: false,\n localSubtitle: false,\n networkMonitor: false,\n useSSR: false,\n layers: [],\n contextmenu: [],\n controls: [],\n quality: [],\n highlight: [],\n plugins: [],\n whitelist: [],\n switcher: [],\n thumbnails: {\n url: '',\n number: 60,\n width: 160,\n height: 90,\n column: 10,\n },\n subtitle: {\n url: '',\n style: {},\n encoding: 'utf-8',\n bilingual: false,\n },\n moreVideoAttr: {\n controls: false,\n preload: utils.isSafari ? 'auto' : 'metadata',\n },\n icons: {},\n customType: {},\n lang: navigator.language.toLowerCase(),\n };\n }\n\n 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\n// eslint-disable-next-line no-console\nconsole.log(\n '%c ArtPlayer %c __VERSION__ %c https://artplayer.org',\n 'color: #fff; background: #5f5f5f',\n 'color: #fff; background: #4bc729',\n '',\n);\n"],"names":["setPrototypeOf","assertThisInitialized","this","Emitter","name","fn","ctx","e","push","self","listener","off","args","apply","_","on","evtArr","slice","data","i","length","callback","evts","liveEvents","len","userAgent","window","navigator","isMobile","test","isSafari","isWechat","query","selector","parent","document","querySelector","queryAll","Array","from","querySelectorAll","addClass","target","className","classList","add","removeClass","remove","hasClass","contains","append","child","Element","appendChild","insertAdjacentHTML","String","lastElementChild","lastChild","parentNode","removeChild","setStyle","element","key","value","style","setStyles","styles","Object","keys","forEach","getStyle","numberType","getComputedStyle","getPropertyValue","parseFloat","sublings","parentElement","children","filter","item","inverseClass","tooltip","msg","pos","setAttribute","isInViewport","el","offset","rect","getBoundingClientRect","windowHeight","innerHeight","documentElement","clientHeight","windowWidth","innerWidth","clientWidth","vertInView","top","height","horInView","left","width","includeFromEvent","event","composedPath","indexOf","_isNativeReflectConstruct","isNativeReflectConstruct","isNativeFunction","construct","getPrototypeOf","ArtPlayerError","message","context","Error","captureStackTrace","constructor","errorHandle","condition","srtToVtt","srtText","concat","replace","vttToBlob","vttText","URL","createObjectURL","Blob","type","assToVtt","ass","reAss","RegExp","fixTime","time","split","map","index","arr","join","line","m","match","start","trim","end","text","getExt","url","includes","toLowerCase","pop","download","elink","createElement","display","href","body","click","arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","def","defineProperty","hasOwnProperty","prototype","has","obj","call","proxyPropertys","sources","reduce","result","source","getOwnPropertyNames","getOwnPropertyDescriptor","mergeDeep","isObject","isArray","objects","prev","pVal","oVal","sleep","ms","Promise","resolve","setTimeout","debounce","func","wait","timeout","later","clearTimeout","ct","throttle","delay","isThrottled","args2","clamp","num","a","b","Math","max","min","secondToTime","second","add0","hour","floor","sec","escape","str","tag","s","n","o","f","r","validElement","paths","component","html","disable","mounted","onSelect","container","poster","title","theme","lang","volume","isLive","muted","autoplay","autoSize","autoMini","loop","flip","rotate","playbackRate","aspectRatio","screenshot","setting","hotkey","pip","mutex","backdrop","fullscreen","fullscreenWeb","subtitleOffset","miniProgressBar","localVideo","localSubtitle","networkMonitor","useSSR","plugins","whitelist","layers","contextmenu","controls","position","toString","quality","default","highlight","thumbnails","number","column","subtitle","encoding","bilingual","moreVideoAttr","icons","customType","propertys","methods","events","prototypes","Whitelist","art","kindOf","option","state","some","Template","$container","instances","every","ins","template","desktop","mobile","innerHTML","$player","$video","$poster","$subtitle","$danmuku","$bottom","$progress","$controls","$controlsLeft","$controlsMiddle","$controlsRight","$layer","$loading","$notice","$noticeInner","$mask","$state","$setting","$settingInner","$settingBody","$info","$infoPanel","$infoClose","$miniHeader","$miniTitle","$miniClose","$contextmenu","setProperty","removeHtml","I18n","languages","zhCn","zhTw","init","language","urlMix","player","get","src","set","typeName","typeCallback","then","loading","show","emit","attrInit","storage","eventInit","proxy","i18n","notice","reconnectTime","maxReconnectTime","toggle","config","eventName","once","mask","seek","playing","play","pause","destroy","exclusiveInit","sizeProps","exclusive","props","playMix","promise","catch","err","pauseMix","toggleMix","seekMix","currentTime","duration","volumeMix","percentage","parseInt","currentTimeMix","toFixed","durationMix","Infinity","switchMix","switchUrl","revokeObjectURL","playbackRateMix","dataset","rate","rateList","Number","aspectRatioMix","ratio","ratioList","ratioArray","videoWidth","videoHeight","videoRatio","setupRatio","screenshotMix","$canvas","reject","getContext","drawImage","toDataURL","toBlob","blob","getDataURL","dataUri","nativeScreenfull","screenfull","isFullscreen","request","aspectRatioReset","exit","webkitScreenfull","webkitDisplayingFullscreen","webkitEnterFullscreen","webkitExitFullscreen","fullscreenMix","isEnabled","fullscreenEnabled","webkitSupportsFullscreen","fullscreenWebMix","fullscreenRotateMix","bodyHeight","bodyWidth","playerHeight","playerWidth","bodyRatio","needSpin","scale","fullscreenRotate","nativePip","disablePictureInPicture","pictureInPictureElement","requestPictureInPicture","exitPictureInPicture","webkitPip","webkitSetPresentationMode","webkitPresentationMode","pipMix","pictureInPictureEnabled","webkitSupportsPresentationMode","loadedTime","buffered","playedMix","playingMix","paused","ended","readyState","resizeMix","containerRatio","rectMix","pageXOffset","pageYOffset","flipMix","flipList","word","toUpperCase","miniMix","cacheStyle","isDroging","lastPageX","lastPageY","lastPlayerLeft","lastPlayerTop","pageX","pageY","mini","cssText","del","$body","loopMin","interval","rotateMix","deg","degList","getScaleValue","degValue","scaleValue","posterMix","Player","loadedMix","autoSizeMix","superPropBase","Component","id","bind","getOption","$parent","$ref","childs","nextChild","find","insertAdjacentElement","preventDefault","childNodes","nodeType","hover","$value","innerText","list","$list","setLeft","$control","fullscreenToggle","fullscreenWebToggle","pipToggle","playAndPause","$play","$pause","showPlay","showPause","getPosFromEvent","progress","$loaded","$played","$highlight","$indicator","$tip","showHighlight","tipWidth","showTime","setBar","loaded","played","getTime","newTime","panelWidth","handleWidth","$volume","$volumeClose","volumeClose","$volumePanel","$volumeHandle","volumeChangeFromEvent","panelLeft","setVolumeHandle","loadImg","isLoad","showThumbnails","posWidth","perWidth","perIndex","yIndex","ceil","xIndex","qualityOption","qualityDefault","switchQuality","$left","$right","Control","mouseMoveTime","Date","now","$menu","$current","info","version","close","Contextmenu","mouseX","clientX","mouseY","clientY","cHeight","cWidth","cLeft","cTop","mHeight","mWidth","menuLeft","menuTop","Info","timer","types","video","Subtitle","$track","textTracks","textTrack","activeCues","val","activeCue","opt","subUrl","kind","update","fetch","response","arrayBuffer","buffer","decoder","TextDecoder","decode","ext","clickInit","isFocus","hoverInit","mousemoveInitInit","resizeInit","resizeFn","normalSize","gestureInit","startX","touches","widthDiff","proportion","viewInit","scrollFn","Events","destroyEvents","mousemoveInit","addEventListener","removeEventListener","mouseenter","mouseleave","img","image","HTMLImageElement","Image","complete","Hotkey","backward","forward","activeElement","tagName","editable","getAttribute","keyCode","Layer","Loading","Notice","Mask","Icons","icon","$range","Setting","Storage","settings","JSON","parse","localStorage","getItem","error","assign","setItem","stringify","removeItem","settingMix","utils","cuesCache","track","cues","cue","startTime","endTime","loadVideo","file","canPlayType","dataTransfer","files","attach","$input","opacity","$btn","textContent","loadSubtitle","switch","right","bottom","background","$progressBar","sampleTime","waitTime","playTime","lastTime","resetTime","cancelAnimationFrame","isDestroy","requestAnimationFrame","nowTime","diffTime","reset","sample","log","$log","$el","check","count","childElementCount","firstElementChild","Plugins","plugin","pluginName","Mobile","Artplayer","validator","scheme","splice","switcher","preload","console"],"mappings":"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"} \ No newline at end of file diff --git a/packages/artplayer/src/control/setting.js b/packages/artplayer/src/control/setting.js index 31e600de4..6f068d10a 100644 --- a/packages/artplayer/src/control/setting.js +++ b/packages/artplayer/src/control/setting.js @@ -15,7 +15,7 @@ export default function setting(option) { append($control, icons.setting); proxy($control, 'click', () => { - setting.toggle(); + setting.toggle = true; }); art.on('setting', value => { diff --git a/packages/artplayer/src/control/subtitle.js b/packages/artplayer/src/control/subtitle.js index f51069c18..b92ab90c0 100644 --- a/packages/artplayer/src/control/subtitle.js +++ b/packages/artplayer/src/control/subtitle.js @@ -15,7 +15,7 @@ export default function subtitle(option) { append($control, icons.subtitle); proxy($control, 'click', () => { - subtitle.toggle(); + subtitle.toggle = true; }); art.on('subtitle', value => { From 133a29ce6eb5f2c1ec4af7e8a2c3a6c74bfd82d1 Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 14:45:55 +0800 Subject: [PATCH 05/61] add docusaurus --- docs/index.html | 2 +- packages/artplayer-document/.gitignore | 20 +++ packages/artplayer-document/README.md | 33 ++++ packages/artplayer-document/babel.config.js | 3 + packages/artplayer-document/docs/intro.md | 35 ++++ .../docs/tutorial-basics/_category_.json | 4 + .../docs/tutorial-basics/congratulations.md | 21 +++ .../tutorial-basics/create-a-blog-post.md | 34 ++++ .../docs/tutorial-basics/create-a-document.md | 55 ++++++ .../docs/tutorial-basics/create-a-page.md | 43 +++++ .../docs/tutorial-basics/deploy-your-site.md | 31 ++++ .../tutorial-basics/markdown-features.mdx | 144 +++++++++++++++ .../docs/tutorial-extras/_category_.json | 4 + .../tutorial-extras/manage-docs-versions.md | 55 ++++++ .../tutorial-extras/translate-your-site.md | 88 +++++++++ .../artplayer-document/docusaurus.config.js | 106 +++++++++++ packages/artplayer-document/package.json | 39 ++++ packages/artplayer-document/sidebars.js | 31 ++++ .../src/components/HomepageFeatures.js | 64 +++++++ .../components/HomepageFeatures.module.css | 11 ++ .../artplayer-document/src/css/custom.css | 28 +++ .../artplayer-document/src/pages/index.js | 40 +++++ .../src/pages/index.module.css | 23 +++ .../src/pages/markdown-page.md | 7 + packages/artplayer-document/static/.nojekyll | 0 .../static/img/docusaurus.png | Bin 0 -> 5142 bytes .../artplayer-document/static/img/favicon.ico | Bin 0 -> 3626 bytes .../artplayer-document/static/img/logo.svg | 1 + .../img/tutorial/docsVersionDropdown.png | Bin 0 -> 25102 bytes .../static/img/tutorial/localeDropdown.png | Bin 0 -> 30020 bytes .../static/img/undraw_docusaurus_mountain.svg | 170 ++++++++++++++++++ .../static/img/undraw_docusaurus_react.svg | 169 +++++++++++++++++ .../static/img/undraw_docusaurus_tree.svg | 1 + 33 files changed, 1261 insertions(+), 1 deletion(-) create mode 100644 packages/artplayer-document/.gitignore create mode 100644 packages/artplayer-document/README.md create mode 100644 packages/artplayer-document/babel.config.js create mode 100644 packages/artplayer-document/docs/intro.md create mode 100644 packages/artplayer-document/docs/tutorial-basics/_category_.json create mode 100644 packages/artplayer-document/docs/tutorial-basics/congratulations.md create mode 100644 packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md create mode 100644 packages/artplayer-document/docs/tutorial-basics/create-a-document.md create mode 100644 packages/artplayer-document/docs/tutorial-basics/create-a-page.md create mode 100644 packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md create mode 100644 packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx create mode 100644 packages/artplayer-document/docs/tutorial-extras/_category_.json create mode 100644 packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md create mode 100644 packages/artplayer-document/docs/tutorial-extras/translate-your-site.md create mode 100644 packages/artplayer-document/docusaurus.config.js create mode 100644 packages/artplayer-document/package.json create mode 100644 packages/artplayer-document/sidebars.js create mode 100644 packages/artplayer-document/src/components/HomepageFeatures.js create mode 100644 packages/artplayer-document/src/components/HomepageFeatures.module.css create mode 100644 packages/artplayer-document/src/css/custom.css create mode 100644 packages/artplayer-document/src/pages/index.js create mode 100644 packages/artplayer-document/src/pages/index.module.css create mode 100644 packages/artplayer-document/src/pages/markdown-page.md create mode 100644 packages/artplayer-document/static/.nojekyll create mode 100644 packages/artplayer-document/static/img/docusaurus.png create mode 100644 packages/artplayer-document/static/img/favicon.ico create mode 100644 packages/artplayer-document/static/img/logo.svg create mode 100644 packages/artplayer-document/static/img/tutorial/docsVersionDropdown.png create mode 100644 packages/artplayer-document/static/img/tutorial/localeDropdown.png create mode 100644 packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg create mode 100644 packages/artplayer-document/static/img/undraw_docusaurus_react.svg create mode 100644 packages/artplayer-document/static/img/undraw_docusaurus_tree.svg diff --git a/docs/index.html b/docs/index.html index edcc02af4..c99531661 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,7 +7,7 @@ - + diff --git a/packages/artplayer-document/.gitignore b/packages/artplayer-document/.gitignore new file mode 100644 index 000000000..b2d6de306 --- /dev/null +++ b/packages/artplayer-document/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/packages/artplayer-document/README.md b/packages/artplayer-document/README.md new file mode 100644 index 000000000..55d0c3ef4 --- /dev/null +++ b/packages/artplayer-document/README.md @@ -0,0 +1,33 @@ +# Website + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +``` +$ GIT_USER= USE_SSH=true yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/packages/artplayer-document/babel.config.js b/packages/artplayer-document/babel.config.js new file mode 100644 index 000000000..e00595dae --- /dev/null +++ b/packages/artplayer-document/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve('@docusaurus/core/lib/babel/preset')], +}; diff --git a/packages/artplayer-document/docs/intro.md b/packages/artplayer-document/docs/intro.md new file mode 100644 index 000000000..8417aebee --- /dev/null +++ b/packages/artplayer-document/docs/intro.md @@ -0,0 +1,35 @@ +--- +sidebar_position: 1 +--- + +# Tutorial Intro + +Let's discover **Docusaurus in less than 5 minutes**. + +## Getting Started + +Get started by **creating a new site**. + +Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. + +## Generate a new site + +Generate a new Docusaurus site using the **classic template**: + +```shell +npm init docusaurus@latest my-website classic +``` + +## Start your site + +Run the development server: + +```shell +cd my-website + +npx docusaurus start +``` + +Your site starts at `http://localhost:3000`. + +Open `docs/intro.md` and edit some lines: the site **reloads automatically** and displays your changes. diff --git a/packages/artplayer-document/docs/tutorial-basics/_category_.json b/packages/artplayer-document/docs/tutorial-basics/_category_.json new file mode 100644 index 000000000..135e4a685 --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-basics/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Tutorial - Basics", + "position": 2 +} diff --git a/packages/artplayer-document/docs/tutorial-basics/congratulations.md b/packages/artplayer-document/docs/tutorial-basics/congratulations.md new file mode 100644 index 000000000..9ef99bbad --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-basics/congratulations.md @@ -0,0 +1,21 @@ +--- +sidebar_position: 6 +--- + +# Congratulations! + +You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. + +Docusaurus has **much more to offer**! + +Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. + +Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) + +## What's next? + +- Read the [official documentation](https://docusaurus.io/). +- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) +- Add a [search bar](https://docusaurus.io/docs/search) +- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) +- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md b/packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md new file mode 100644 index 000000000..0d50aaf31 --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md @@ -0,0 +1,34 @@ +--- +sidebar_position: 3 +--- + +# Create a Blog Post + +Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... + +## Create your first Post + +Create a file at `blog/2021-02-28-greetings.md`: + +```md title="blog/2021-02-28-greetings.md" +--- +slug: greetings +title: Greetings! +authors: + - name: Joel Marcey + title: Co-creator of Docusaurus 1 + url: https://github.com/JoelMarcey + image_url: https://github.com/JoelMarcey.png + - name: Sébastien Lorber + title: Docusaurus maintainer + url: https://sebastienlorber.com + image_url: https://github.com/slorber.png +tags: [greetings] +--- + +Congratulations, you have made your first post! + +Feel free to play around and edit this post as much you like. +``` + +A new blog post is now available at `http://localhost:3000/blog/greetings`. diff --git a/packages/artplayer-document/docs/tutorial-basics/create-a-document.md b/packages/artplayer-document/docs/tutorial-basics/create-a-document.md new file mode 100644 index 000000000..b4a072ecd --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-basics/create-a-document.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 2 +--- + +# Create a Document + +Documents are **groups of pages** connected through: + +- a **sidebar** +- **previous/next navigation** +- **versioning** + +## Create your first Doc + +Create a markdown file at `docs/hello.md`: + +```md title="docs/hello.md" +# Hello + +This is my **first Docusaurus document**! +``` + +A new document is now available at `http://localhost:3000/docs/hello`. + +## Configure the Sidebar + +Docusaurus automatically **creates a sidebar** from the `docs` folder. + +Add metadatas to customize the sidebar label and position: + +```md title="docs/hello.md" {1-4} +--- +sidebar_label: 'Hi!' +sidebar_position: 3 +--- + +# Hello + +This is my **first Docusaurus document**! +``` + +It is also possible to create your sidebar explicitly in `sidebars.js`: + +```diff title="sidebars.js" +module.exports = { + tutorialSidebar: [ + { + type: 'category', + label: 'Tutorial', +- items: [...], ++ items: ['hello'], + }, + ], +}; +``` diff --git a/packages/artplayer-document/docs/tutorial-basics/create-a-page.md b/packages/artplayer-document/docs/tutorial-basics/create-a-page.md new file mode 100644 index 000000000..e112b0059 --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-basics/create-a-page.md @@ -0,0 +1,43 @@ +--- +sidebar_position: 1 +--- + +# Create a Page + +Add **Markdown or React** files to `src/pages` to create a **standalone page**: + +- `src/pages/index.js` -> `localhost:3000/` +- `src/pages/foo.md` -> `localhost:3000/foo` +- `src/pages/foo/bar.js` -> `localhost:3000/foo/bar` + +## Create your first React Page + +Create a file at `src/pages/my-react-page.js`: + +```jsx title="src/pages/my-react-page.js" +import React from 'react'; +import Layout from '@theme/Layout'; + +export default function MyReactPage() { + return ( + +

    My React page

    +

    This is a React page

    +
    + ); +} +``` + +A new page is now available at `http://localhost:3000/my-react-page`. + +## Create your first Markdown Page + +Create a file at `src/pages/my-markdown-page.md`: + +```mdx title="src/pages/my-markdown-page.md" +# My Markdown page + +This is a Markdown page +``` + +A new page is now available at `http://localhost:3000/my-markdown-page`. diff --git a/packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md b/packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md new file mode 100644 index 000000000..492eae027 --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md @@ -0,0 +1,31 @@ +--- +sidebar_position: 5 +--- + +# Deploy your site + +Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). + +It builds your site as simple **static HTML, JavaScript and CSS files**. + +## Build your site + +Build your site **for production**: + +```bash +npm run build +``` + +The static files are generated in the `build` folder. + +## Deploy your site + +Test your production build locally: + +```bash +npm run serve +``` + +The `build` folder is now served at `http://localhost:3000/`. + +You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx b/packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx new file mode 100644 index 000000000..885562605 --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx @@ -0,0 +1,144 @@ +--- +sidebar_position: 4 +--- + +# Markdown Features + +Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. + +## Front Matter + +Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): + +```text title="my-doc.md" +// highlight-start +--- +id: my-doc-id +title: My document title +description: My document description +slug: /my-custom-url +--- +// highlight-end + +## Markdown heading + +Markdown text with [links](./hello.md) +``` + +## Links + +Regular Markdown links are supported, using url paths or relative file paths. + +```md +Let's see how to [Create a page](/create-a-page). +``` + +```md +Let's see how to [Create a page](./create-a-page.md). +``` + +**Result:** Let's see how to [Create a page](./create-a-page.md). + +## Images + +Regular Markdown images are supported. + +Add an image at `static/img/docusaurus.png` and display it in Markdown: + +```md +![Docusaurus logo](/img/docusaurus.png) +``` + +![Docusaurus logo](/img/docusaurus.png) + +## Code Blocks + +Markdown code blocks are supported with Syntax highlighting. + + ```jsx title="src/components/HelloDocusaurus.js" + function HelloDocusaurus() { + return ( +

    Hello, Docusaurus!

    + ) + } + ``` + +```jsx title="src/components/HelloDocusaurus.js" +function HelloDocusaurus() { + return

    Hello, Docusaurus!

    ; +} +``` + +## Admonitions + +Docusaurus has a special syntax to create admonitions and callouts: + + :::tip My tip + + Use this awesome feature option + + ::: + + :::danger Take care + + This action is dangerous + + ::: + +:::tip My tip + +Use this awesome feature option + +::: + +:::danger Take care + +This action is dangerous + +::: + +## MDX and React Components + +[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: + +```jsx +export const Highlight = ({children, color}) => ( + { + alert(`You clicked the color ${color} with label ${children}`) + }}> + {children} + +); + +This is Docusaurus green ! + +This is Facebook blue ! +``` + +export const Highlight = ({children, color}) => ( + { + alert(`You clicked the color ${color} with label ${children}`); + }}> + {children} + +); + +This is Docusaurus green ! + +This is Facebook blue ! diff --git a/packages/artplayer-document/docs/tutorial-extras/_category_.json b/packages/artplayer-document/docs/tutorial-extras/_category_.json new file mode 100644 index 000000000..ca3f8e064 --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-extras/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Tutorial - Extras", + "position": 3 +} diff --git a/packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md b/packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md new file mode 100644 index 000000000..6335b0ac9 --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md @@ -0,0 +1,55 @@ +--- +sidebar_position: 1 +--- + +# Manage Docs Versions + +Docusaurus can manage multiple versions of your docs. + +## Create a docs version + +Release a version 1.0 of your project: + +```bash +npm run docusaurus docs:version 1.0 +``` + +The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. + +Your docs now have 2 versions: + +- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs +- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** + +## Add a Version Dropdown + +To navigate seamlessly across versions, add a version dropdown. + +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +module.exports = { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'docsVersionDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The docs version dropdown appears in your navbar: + +![Docs Version Dropdown](/img/tutorial/docsVersionDropdown.png) + +## Update an existing version + +It is possible to edit versioned docs in their respective folder: + +- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` +- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/packages/artplayer-document/docs/tutorial-extras/translate-your-site.md b/packages/artplayer-document/docs/tutorial-extras/translate-your-site.md new file mode 100644 index 000000000..a25c089ed --- /dev/null +++ b/packages/artplayer-document/docs/tutorial-extras/translate-your-site.md @@ -0,0 +1,88 @@ +--- +sidebar_position: 2 +--- + +# Translate your site + +Let's translate `docs/intro.md` to French. + +## Configure i18n + +Modify `docusaurus.config.js` to add support for the `fr` locale: + +```js title="docusaurus.config.js" +module.exports = { + i18n: { + defaultLocale: 'en', + locales: ['en', 'fr'], + }, +}; +``` + +## Translate a doc + +Copy the `docs/intro.md` file to the `i18n/fr` folder: + +```bash +mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ + +cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md +``` + +Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. + +## Start your localized site + +Start your site on the French locale: + +```bash +npm run start -- --locale fr +``` + +Your localized site is accessible at `http://localhost:3000/fr/` and the `Getting Started` page is translated. + +:::caution + +In development, you can only use one locale at a same time. + +::: + +## Add a Locale Dropdown + +To navigate seamlessly across languages, add a locale dropdown. + +Modify the `docusaurus.config.js` file: + +```js title="docusaurus.config.js" +module.exports = { + themeConfig: { + navbar: { + items: [ + // highlight-start + { + type: 'localeDropdown', + }, + // highlight-end + ], + }, + }, +}; +``` + +The locale dropdown now appears in your navbar: + +![Locale Dropdown](/img/tutorial/localeDropdown.png) + +## Build your localized site + +Build your site for a specific locale: + +```bash +npm run build -- --locale fr +``` + +Or build your site to include all the locales at once: + +```bash +npm run build +``` diff --git a/packages/artplayer-document/docusaurus.config.js b/packages/artplayer-document/docusaurus.config.js new file mode 100644 index 000000000..abef4eec9 --- /dev/null +++ b/packages/artplayer-document/docusaurus.config.js @@ -0,0 +1,106 @@ +const lightCodeTheme = require('prism-react-renderer/themes/github'); +const darkCodeTheme = require('prism-react-renderer/themes/dracula'); + +const config = { + title: 'Artplayer.js Document', + tagline: 'ArtPlayer.js is an modern and full featured HTML5 video player', + url: 'https://artplayer.org', + baseUrl: '/document/', + onBrokenLinks: 'ignore', + onBrokenMarkdownLinks: 'ignore', + favicon: 'img/favicon.ico', + organizationName: 'zhw2590582', + projectName: 'artplayer', + presets: [ + [ + '@docusaurus/preset-classic', + { + docs: { + sidebarPath: require.resolve('./sidebars.js'), + editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/', + }, + blog: { + showReadingTime: true, + editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/blog/', + }, + theme: { + customCss: require.resolve('./src/css/custom.css'), + }, + }, + ], + ], + themeConfig: { + navbar: { + title: 'My Site', + logo: { + alt: 'My Site Logo', + src: 'img/logo.svg', + }, + items: [ + { + type: 'doc', + docId: 'intro', + position: 'left', + label: 'Tutorial', + }, + { to: '/blog', label: 'Blog', position: 'left' }, + { + href: 'https://github.com/facebook/docusaurus', + label: 'GitHub', + position: 'right', + }, + ], + }, + footer: { + style: 'dark', + links: [ + { + title: 'Docs', + items: [ + { + label: 'Tutorial', + to: '/docs/intro', + }, + ], + }, + { + title: 'Community', + items: [ + { + label: 'Stack Overflow', + href: 'https://stackoverflow.com/questions/tagged/docusaurus', + }, + { + label: 'Discord', + href: 'https://discordapp.com/invite/docusaurus', + }, + { + label: 'Twitter', + href: 'https://twitter.com/docusaurus', + }, + ], + }, + { + title: 'More', + items: [ + { + label: 'Blog', + to: '/blog', + }, + { + label: 'GitHub', + href: 'https://github.com/facebook/docusaurus', + }, + ], + }, + ], + copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`, + }, + prism: { + theme: lightCodeTheme, + darkTheme: darkCodeTheme, + }, + }, +}; + +module.exports = config; diff --git a/packages/artplayer-document/package.json b/packages/artplayer-document/package.json new file mode 100644 index 000000000..4a3c461e7 --- /dev/null +++ b/packages/artplayer-document/package.json @@ -0,0 +1,39 @@ +{ + "name": "artplayer-document", + "version": "4.0.0", + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids" + }, + "dependencies": { + "@docusaurus/core": "2.0.0-beta.9", + "@docusaurus/preset-classic": "2.0.0-beta.9", + "@mdx-js/react": "^1.6.21", + "@svgr/webpack": "^5.5.0", + "clsx": "^1.1.1", + "file-loader": "^6.2.0", + "prism-react-renderer": "^1.2.1", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "url-loader": "^4.1.1" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} \ No newline at end of file diff --git a/packages/artplayer-document/sidebars.js b/packages/artplayer-document/sidebars.js new file mode 100644 index 000000000..fd342f2cd --- /dev/null +++ b/packages/artplayer-document/sidebars.js @@ -0,0 +1,31 @@ +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ + +// @ts-check + +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +const sidebars = { + // By default, Docusaurus generates a sidebar from the docs folder structure + tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], + + // But you can create a sidebar manually + /* + tutorialSidebar: [ + { + type: 'category', + label: 'Tutorial', + items: ['hello'], + }, + ], + */ +}; + +module.exports = sidebars; diff --git a/packages/artplayer-document/src/components/HomepageFeatures.js b/packages/artplayer-document/src/components/HomepageFeatures.js new file mode 100644 index 000000000..16f820b10 --- /dev/null +++ b/packages/artplayer-document/src/components/HomepageFeatures.js @@ -0,0 +1,64 @@ +import React from 'react'; +import clsx from 'clsx'; +import styles from './HomepageFeatures.module.css'; + +const FeatureList = [ + { + title: 'Easy to Use', + Svg: require('../../static/img/undraw_docusaurus_mountain.svg').default, + description: ( + <> + Docusaurus was designed from the ground up to be easily installed and + used to get your website up and running quickly. + + ), + }, + { + title: 'Focus on What Matters', + Svg: require('../../static/img/undraw_docusaurus_tree.svg').default, + description: ( + <> + Docusaurus lets you focus on your docs, and we'll do the chores. Go + ahead and move your docs into the docs directory. + + ), + }, + { + title: 'Powered by React', + Svg: require('../../static/img/undraw_docusaurus_react.svg').default, + description: ( + <> + Extend or customize your website layout by reusing React. Docusaurus can + be extended while reusing the same header and footer. + + ), + }, +]; + +function Feature({Svg, title, description}) { + return ( +
    +
    + +
    +
    +

    {title}

    +

    {description}

    +
    +
    + ); +} + +export default function HomepageFeatures() { + return ( +
    +
    +
    + {FeatureList.map((props, idx) => ( + + ))} +
    +
    +
    + ); +} diff --git a/packages/artplayer-document/src/components/HomepageFeatures.module.css b/packages/artplayer-document/src/components/HomepageFeatures.module.css new file mode 100644 index 000000000..b248eb2e5 --- /dev/null +++ b/packages/artplayer-document/src/components/HomepageFeatures.module.css @@ -0,0 +1,11 @@ +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} diff --git a/packages/artplayer-document/src/css/custom.css b/packages/artplayer-document/src/css/custom.css new file mode 100644 index 000000000..6abe14854 --- /dev/null +++ b/packages/artplayer-document/src/css/custom.css @@ -0,0 +1,28 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #25c2a0; + --ifm-color-primary-dark: rgb(33, 175, 144); + --ifm-color-primary-darker: rgb(31, 165, 136); + --ifm-color-primary-darkest: rgb(26, 136, 112); + --ifm-color-primary-light: rgb(70, 203, 174); + --ifm-color-primary-lighter: rgb(102, 212, 189); + --ifm-color-primary-lightest: rgb(146, 224, 208); + --ifm-code-font-size: 95%; +} + +.docusaurus-highlight-code-line { + background-color: rgba(0, 0, 0, 0.1); + display: block; + margin: 0 calc(-1 * var(--ifm-pre-padding)); + padding: 0 var(--ifm-pre-padding); +} + +html[data-theme='dark'] .docusaurus-highlight-code-line { + background-color: rgba(0, 0, 0, 0.3); +} diff --git a/packages/artplayer-document/src/pages/index.js b/packages/artplayer-document/src/pages/index.js new file mode 100644 index 000000000..27c21e8f9 --- /dev/null +++ b/packages/artplayer-document/src/pages/index.js @@ -0,0 +1,40 @@ +import React from 'react'; +import clsx from 'clsx'; +import Layout from '@theme/Layout'; +import Link from '@docusaurus/Link'; +import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; +import styles from './index.module.css'; +import HomepageFeatures from '../components/HomepageFeatures'; + +function HomepageHeader() { + const {siteConfig} = useDocusaurusContext(); + return ( +
    +
    +

    {siteConfig.title}

    +

    {siteConfig.tagline}

    +
    + + Docusaurus Tutorial - 5min ⏱️ + +
    +
    +
    + ); +} + +export default function Home() { + const {siteConfig} = useDocusaurusContext(); + return ( + + +
    + +
    +
    + ); +} diff --git a/packages/artplayer-document/src/pages/index.module.css b/packages/artplayer-document/src/pages/index.module.css new file mode 100644 index 000000000..666feb6a1 --- /dev/null +++ b/packages/artplayer-document/src/pages/index.module.css @@ -0,0 +1,23 @@ +/** + * CSS files with the .module.css suffix will be treated as CSS modules + * and scoped locally. + */ + +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 966px) { + .heroBanner { + padding: 2rem; + } +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} diff --git a/packages/artplayer-document/src/pages/markdown-page.md b/packages/artplayer-document/src/pages/markdown-page.md new file mode 100644 index 000000000..9756c5b66 --- /dev/null +++ b/packages/artplayer-document/src/pages/markdown-page.md @@ -0,0 +1,7 @@ +--- +title: Markdown page example +--- + +# Markdown page example + +You don't need React to write simple standalone pages. diff --git a/packages/artplayer-document/static/.nojekyll b/packages/artplayer-document/static/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/packages/artplayer-document/static/img/docusaurus.png b/packages/artplayer-document/static/img/docusaurus.png new file mode 100644 index 0000000000000000000000000000000000000000..f458149e3c8f53335f28fbc162ae67f55575c881 GIT binary patch literal 5142 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 F{0H{b<4^zq literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/favicon.ico b/packages/artplayer-document/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c01d54bcd39a5f853428f3cd5aa0f383d963c484 GIT binary patch literal 3626 zcmb`Je@s(X6vrR`EK3%b%orErlDW({vnABqA zcfaS{d+xbU5JKp0*;0YOg+;Fl!eT)XRuapIwFLL`=imZCSon$`se`_<%@MB=M~KG+ z=EW^FL`w|Bo>*ktlaS^(fut!95`iG5u=SZ8nfDHO#GaTlH1-XG^;vsjUb^gWTVz0+ z^=WR1wv9-2oeR=_;fL0H7rNWqAzGtO(D;`~cX(RcN0w2v24Y8)6t`cS^_ghs`_ho? z{0ka~1Dgo8TfAP$r*ua?>$_V+kZ!-(TvEJ7O2f;Y#tezt$&R4 zLI}=-y@Z!grf*h3>}DUL{km4R>ya_I5Ag#{h_&?+HpKS!;$x3LC#CqUQ8&nM?X))Q zXAy2?`YL4FbC5CgJu(M&Q|>1st8XXLZ|5MgwgjP$m_2Vt0(J z&Gu7bOlkbGzGm2sh?X`){7w69Y$1#@P@7DF{ZE=4%T0NDS)iH`tiPSKpDNW)zmtn( zw;4$f>k)4$LBc>eBAaTZeCM2(iD+sHlj!qd z2GjRJ>f_Qes(+mnzdA^NH?^NB(^o-%Gmg$c8MNMq&`vm@9Ut;*&$xSD)PKH{wBCEC z4P9%NQ;n2s59ffMn8*5)5AAg4-93gBXBDX`A7S& zH-|%S3Wd%T79fk-e&l`{!?lve8_epXhE{d3Hn$Cg!t=-4D(t$cK~7f&4s?t7wr3ZP z*!SRQ-+tr|e1|hbc__J`k3S!rMy<0PHy&R`v#aJv?`Y?2{avK5sQz%=Us()jcNuZV z*$>auD4cEw>;t`+m>h?f?%VFJZj8D|Y1e_SjxG%J4{-AkFtT2+ZZS5UScS~%;dp!V>)7zi`w(xwSd*FS;Lml=f6hn#jq)2is4nkp+aTrV?)F6N z>DY#SU0IZ;*?Hu%tSj4edd~kYNHMFvS&5}#3-M;mBCOCZL3&;2obdG?qZ>rD|zC|Lu|sny76pn2xl|6sk~Hs{X9{8iBW zwiwgQt+@hi`FYMEhX2 \ No newline at end of file diff --git a/packages/artplayer-document/static/img/tutorial/docsVersionDropdown.png b/packages/artplayer-document/static/img/tutorial/docsVersionDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1cbe68893d205dc0a6821bfa74d8e7d25c09cf GIT binary patch literal 25102 zcmaI71z1$=^EVD6T`C;{Qc8E1ih@Xqv~>5fuyl8ah=jDDAl45Gd6yt!1=7##KhRRcZh=x&)NNbL`2Mc zWB>m4L5AM;zMM|uv{ZflWy%N37#c9NJhhH`JAxR7iz@EklEUi2Qa{cp_HBFP#SP(N z0bF${yydqFTq;;U{R2d~8ghPw1P1b9_G)qSu%T5-1lT7q=Hvxzi!r!~hqRz~sRUKT z2TX?C7sHqp39t`bjd_(r6~hx?pUKR8;KD3CVfbMAz)2fth>h*7#yS%9IiFu%&-qp^~JJb#qEn=vA_HY*s?#S6~1DAUseCmdUHDz;q>rZ55 zY&>mleCB<9d%HA$dwbgy6Bu|-j?o$Dh{nZXI9$r~vm6j?l!cChrLr;_J8+GIb|0M@ z4HLLR2M%d;n*UtOp+7^z_+{bU<5L(KHt_2aaCqe0 z`=8e6yEz#Dxh4gkp}kO-RZsxV>SoRs79fbVqf0>%V;^t>7yL#Sf`&%Ua(AFByl37A z#-Fm$&~edGRuVUJbl^5IcQm!&_HY2-je{oXAr4$RSh$!lcsSUDAmScUjDK5*1J`%A zc^Db~HgU0&V$@N7#~|zIY{4MR&CAWpD2>O!z#!>tZYlo$mE6DGfnQRL)-En!aULFb zcXw`g0d7ZUD;_>EF)0%GQD19q`-1Tox= zYhvo?>LSI+csJ31KL5~Z;bHT?Gl3xgvIQ{6bN7UYkDHh0KVt)3CGYNvzq9eMu-AQM z;{eDEm_wRhL|F1~`~TmQ|DEx_dg}adPeC!k|L*x;PyW9>H6a$xvW^bGlrGZ$yIlWv z{_ltXc9i6~0=9Q`ja0Zm@?^QF!%2!vlTW0K1v=^&z*j=!;iD_p%t|-aYT4<<0()VI_)TjMe#t zOv(LJdt_XoK>d^MAS3&)FYN)iWDj3=ps@$N{Y>!aT6O6C(Z%uB?(f|%3z@!pJMlZa zMdd}sZB!fHO%hFdsM8#D5z7E7W2{tk;Pea^%eDfX(&fZHzc`Oe zH^dSN=;Sui!~i|*N$BJdZTR*9C*nju>G3DbrfniI$5g5}nds#E6Kt5|yMM&E&SN-d zSp0E3F$SNnQyQbI?tQEP7xY;4S($clpUd{r7-R8|py7KQ%67prGde#Fx0@RL43Cet z!g`yAPVUs!*#q0@(aX=%i4pMifQkY#*f$P%-5MlFzKh5G7Swgmz&Shy-x4b|@H5pj z`4?75m2>8PcX9G9AA!O1FX)yz8dT3H9$F!}69hhEHoYPuP3a@x#dvL%(}*vM?>?ql zd3H~y1|?>CU!Wbh&xkRp+pG)iX3Ff~i*~~z#!Kk}?y__|cO`Qq-zCWQ&?yV2!^rn0emY6yvyuL50#KD zV8nOZHRdIz5@&1pY}@(V^-&o!_IL69c39>r!5g-^jL@Qt)2yGrJ8e?Y9kGgnBhEps zpHGKjJKhsgEB(sf`W@Qn3hsyVVtld6`HVRnj(9)AgI_?k*(ST?q^nU{XRjq7Kd>=F@ym@0Ocp`AOH-s4UA{SdlNmH= z!_ybXE-!#F7{Gy{OCmXa@!BW(1P0@x`$7u;>@9-y1JHPMsHE2c5F_6Ivrkgrl|^ z+(aja(K-=QKCvnEZiM?zL)EaV7{luRSbQ}k2hHb^1#^%+T1ug)STV0!GA78u|y+6#BN@CS7$`DULs)ut3722E7-T0PzTnYBh z)fV(!ssT=V3stm-8G%)hV3}9S|}S=X~jqWd|xzKLwv%A zF_{o(8u5`QUbndR<8cL;W;m@RT1jhbz}6s4cIb}S2$P(TFjDomEbdxcxr|3@^!Or` zO|2u1zsw6;IVTw(%VqHc{036?hVz~$XMO*m;r*sqntbYWj}?Yrxdc41(k zULp*eNcB&TExux@Un^{xA&F*&8X3rnTTM&t#F67CNu6}#>oG^)d!GNq_wY(u4*M4?bdHQndeQ&LP!(ky81h(McZc$<0 z_X)fgPVYwfXWKKCgIMdV1n6RJ zc4&kH4NL1uo*1IyDTaf-%J|?dab;rT`|CaQ3pGE&qG>--77m2W@7zxpvEEKf2?j9d z`A9%<#V>(w@52_Y)}x-icd_6?js)$nuO)VVmJlMA)<&&&#dWSP#i6UwBFina zOE$80SR>7@YJZxvuLY$IM}1FZSwgG|_)9}B>0ZpI;jtrX zzR-o!-aAG3QcM(U$1AC2t0ITzLIsVENjdg@3KcIGIWC6Q`(;r-R;6Zsxa-Mf4e~hGnHxvhRVUMxS ze|(=2>)}bm^e4`GIHFgn(HBw-j=pR-?HMuY6+z`T?@)_`+ex^DJBV20J=-+f7zx?R zj|s(Wlc_UlcLY;%2$6jW=%>w&% zIKAKfp6pQ?ty2H<8k1nG{bTLK;^vJ^VkG(NoVO;J!ru%O$qyH9QOuNocA&p3jv8xi zJ2Cb4(BntWX#GB_ z^q})$gVj=?Ra1UCtfEYc!^8syP^U>1K@wT?@Fuxty5CFMKY!5Qo=geqgpp$4hbeh6 zgBmlG_SiExL(z*wuZx1ob~TH&I%4RpU@_U2&leh9O{#^{Uu;d4=E~sMccD)kP_&Bg z3tWksVby?Y+3Z`-*9&jm${e_KRP_}(w5dH+(s=P&uZ~kHR=KD}g45ka(dL9_9^CMQ zLFWoq^)n|plAd%O{+nEs>$H|xO>aeD5Oq>YXU*0kv0CjV44V&%v5U(R&hUtt2? zln3i4xm-g;&0#?j_LibRO0&^)Ls@bV-f4wAeeggzl)uOqb{3ywF_1h)i(LnkS}QI$ zUT*K$KjbKHk0Rq>U$d@r5)i%kmA70XFcPpnl&*Q$m)PAQKeF3k#UOcdMl!ar9nqnE z-|KXjFog(upZY#3vvKEM+f5?_fz0K0^~(S%hLo@Rw$KXBJQb8cI*A@kz2OG>E;(qXG>X6pL2U#7yaS2nsgSu%Iq;Q z05j3lq2_mRuIKmkaT8A#IaoGu1wMX6UkDX9nVaZ5QnR8K8}EH#{{2g|^TnScaln2= z5FP?or@Kv^bMrMe81#PohDp9NIH!rKQiR%u=k7XGlJml~uv}HP6^VQabFxq5&JLtkbHf?h14a)0Kb+Y8TC8$X^f29E za(P!LfH4_|KKZ)!LAsLn!ngBJa1twHNRqLw-P zNVh+!ZKT~_J0?f-qCh2cd8@n)i`2~?o6dv5hqPI~&7*Gx4B|lKLPGuN7%=&r?5Z2$2+}< zXZ-y=&c0%Q-eXA(@$Lx1tZ+ZQM)S6>wVezKJVg+OpNKMhsd}Fuu7QuZ>N`fg_XzpU zDh7rZjJv8k^Tdd-2Z%)6Y7JJ-TU1sMjBDEBp@{( zc1&>3ZrAR%fSl2qe+8Lbz6~0QZvrE|q2je*{bPi* zgQR4_p@1W~gWd_%1`N$$(7^PQ@wh&Z0(Z7fHYJ(1&6?U;Ts3m85bqS!wEMwExw*-G zil=&c!^kgC$j(`W@=1={&K&sEz@5$ic^5N6uV#te>-Itwo1TCeVRYaux}FqjcBx{J zOVjVRWsy`7;p@+JHk)z4EweDM=Y89JO_KV?%m32Rp5cGw@5AZ zC0c1GX}%R!dlX=FgV(DgMja07i;>B6jYmc~iu-FE`6s^y`@ks-C&YWsr1sO+X6g}B zDfu4N)^;|Q^5|5(18$}4J88B1$R7HRZVKW6 zDgmpIp9Pk7iDkO zCG63wTY9wU1ra1dBE#te+is6;VSLif*KnFqzX7h?2HVlEW(Djb1$|qEEB5x%p896` z2c`?HmEy>{q0>zS{c?788(osK=KlG9=ZDnz@mO`4Agh86!=#S(1n=V@<<09S{YY^z zxg)Yz+lGsD2Y>!(0M#YWcG}&jLlIP6bDGSYZCAoUcm5|*?QwX`;Sc9xd#K@ykaTjR zMi(|(kI^Ry9*!-?Q~T?wQTPHYF0ktb_a#j)&&%X=#~_k8nYj1b4;@@Ge1|=GZ6|&_ z7;pB3oc&2ecxT(-oUWx9P?zpVRFLuVwb{jRWKA8$=6P(#6G*2CL2P#ObTfl_l%0Iz zY5Z}wGgO^>h>wo(TZ5aI=!+M_1Eg&!eEF~z@%>gq=4P%{g1v<7#wLo}m^ud5Ip+*N zLp}xtzQn(u^by|JDyEOpKY+?-Q?7(v2s*#xPH)YD#bO#bt;sAWm~_JCY%ygH&bz;j zup@vmhVoX;#DBeOfS3)4RA z9Wa?}=FUF(rf@COUhI9s-%;u-y)u;Rpv;4D)c#z$n^^&rt&>7Y!8x`|B3n68kPz(L zeT+!~x;p%>h|WPAwsaPWEBOH}%R&@kp+(CZ?D zgQCtvIU-HNSuHTK^<-(fbNPvEuDGEG=)TKVow}e1?&*^b3aHWr!sPwgqOh0jb*GZW?*VXu7siQxM{f;`Fl2SxFx@#z7X&BcuC7BuJ418t<%tle7 zlV+E}iIA0`XUwmrHhPS(K5+(j>dpk6y2)XUp zFJ8tz!VS*wP$lKm41Zd)1KYFF{vOH|M?m`a{%X~yvMrjuM^@3b-I26sT@eSODoo)S z>KPOo&;x-nYdZ}qIkOtJuR&-mXh}{n83C*yD z+V9B?W=aV+`;hCU=)54uSMyKOPy)9%80?D$@N)T6=p?Y zN4dA_dj#Lj`AWm+9%>`+lUL1eG;POfE5U-={n--*lzc~hv~za7BPHVM3`W-@i<)!g zFd0ux?Mi1Z)WcVC8j7LHe6+o^$^RJIlx=u0jWoSB z3~obz%iK^-jvnoIn(XIz=ZX<2!K54)C4aT<-Bj>GJ8AWH=4y?5b6#}NV_?6=wp{B^ z0&h9gcecL>mL-sOnJ?s!q?fEtnHQSA!ryJV4Sc&U7fao7@>m=uqTUvIegw&Wu?UHm zGXD9EhkZeFml096Vim1QBmZh`|LC$u2}wK<$w-VoK6EhZEWl6M!sM~x+e z&t7-L8XFeBe)ZrBu+Z*jN@)ak!7`6PIDT3#t1&!%_X`|m35OBQih`=%IgcF4cWQLk zeQfxb*$wk+eVrQsg&K#CwK^O2LM?(#^e1$~Tis>xxu ztpro9?C}v~Jo`O@$lOT1Y+jyq$rhfE9B6kRpy;$gWrve(`42qKJR>VwNVCV|m?{l) z-?+gUpT6~Zb}?r^N=irQr~mB*tf{Y1Zm`hSePv;N9Kw^H{opDAjPAdx_*#8-{?HR$ zH5$PzbkQ{jC&iaVE!U>A;J6~|e#;%<%W3`w zdcPG7H0)MJycZ?RdAFORZv<-22p%61(wtcD^VNR&3TB+;3W|?E{yk1JEWM@FUjAyK za%*@P_ShXsVOQ6kA6Y&0+O=^-4f^{Os%9PjY!M}mL{Tg^Ew6!XQ|#-t_kCCAe+q6s z<<7#`Q1zhF!WtQzUhtI zreyHD3)YuL?hE@ahSJC!PFhwE8K*nc1;#zD3oh#zm^w@;iwK>=5m}MR6y>{;+8xX5 zdF7s_p2gbXy)KXCPn+RAJge!qm(E*6mtA;!bu?1Z$C@6}*1=^e?)sa0;j7=S*oMZ% zv$TlL%HsA}VAeXj`Sq%ya8X;+U4+0cqS_`Cj3TtS{lZU9UVcSbH~Z}DYszx?oBc0U zso~D528|DPulyu^Xnpvi5w@6oQXd>K{O6lF1WWad+>SD+p4nmjd_+7g$?ZW?LWo6N zLpY4ZlqFbpR%6;NDX7AX`1~zZs+B;-_adIx3{LPvuZ_-rs*$k9p{e0;wplSV7rb0w zhm;@abz5jF4^33r&Qp@7{I1SFXX*g9F{yZ!u3tk&!P)%|_-C|fzU``x;AST0VMC16 zVz026hmFt0;cH|{aSdT>TQdYjKG!tFM^$Q}G^k?9z(m0O5O((1@YW-(>4F5=6p2WwVpo<~lAipY z=V=rhe~O&FwF>p7Egb7~X!NO51)U?BXI4oL1W$lCWK&TKIt~rEIi5iwgPl+j(G@*3 zV{^53_yZ|i;kwn9+FrM`OA_=qgX0~S$9mdPPK7K)G#fpk|X z-&W}n^f&m#LMcJGA6^N`ADOE6>#09d45PYIGC+~ zS=;);u`6c$N&-LVbA^z2XH)WJ!S7zU5ds*xmJGi`vrpC&dstYB^pyO6*5Y?RDP=lg zVM3fY^Iopj#YT31xniZK>teoPu3W(-P3fWFfRD{sa77`rsGf;nt=wmeBTn(qv!@+i z6*&j>pTzdLMr(g(bKj1bi>!kRUfMp zGOEyB!uvcmj(pa&N_&JY+rtByDgHo@eIWDjZse!4BeHbn@?Lj+x`&Ep*_1I{kyeQF z#^sCE+P{S99wHS?i?FX}?0Ln^cgM(h;47jw%^C36gUP^UWyLZamnOUlMf{ZmE5@ z^^3z;RgB-5152Udz@SH%n<%BrG3xl>i|I$J#HCe|_yn#vQ~d*z%#PO_F;;@Ho)hXQM{~e z!v)nSLm!`f%B2j(awjqK5(;VPucS=yrTr``JVarBBXQ&@mMXhCZDxp#$+PU4`Bm}* zo7m`D(1&A4mObx-r=;gaKiv(|q2DOgn}NZY{Kd0}K~V}TojUgUu8@eLcy7Kg{_zq! z(FLl~>8YYI0C^~r$#eZ3=>{dfU!D2IOdCT|bH+G(LEkAgv$g0nL3Ml>-KOnpFi_DL zOFW@4k=fyvkGRCH;s&Jla+T50)h=P_vtC!PS$ea{?lPmc)(F&~-Yz)4^VgNQ1RZ6P zszn|~`BB51t6fj2*_M0v!z`}_zh0vVX?!74)9mIj8jLy$gZdJX^%Au`>P|`HRVnhS zne^DR`{f2VeZ;->Y0oR;2cDQ3>{}ei%pV8+Gj?|sst?&%$HqDw?q}a91X(PKFFPxu zV&}A3FY4`QvSer@fExZ$o`kMfb)@r3w+foMH2kb0nQru1?ODV^MUB*e3w%3Vhpd7{ zOk7&uSEBm96$=epq3XLCR3?>b3-?1SEGqL~Za3*qfm?7Wf>M};X1m}fN`Ca&+^lwP zl68$~T_{knQ+G-%xXJLH!#-d2=tGd*kONb=baGIb3< z0Mey3V@e4JRH9g@H9TF;QKl;^&lWMC!bf$q1^L2$1otcy>R?ZhTF%d#ggc zi94Jq-pxK=l*T{xl}E(D)90CC=lxq6_k#zr0-@10JTJ;TQTwcI#j4@%l~21HyT~aor&g!W^|#sWAL*5TsLcT_G`5@WIKz39fsAui7aHDae-a0}cLN({ zsT?6yKB>{Xj#54>ZQDtjM#l6<;nc`yV5q1l_Z@&6QeOAGfCIB-f<;oP(6(+Le4%3OD2X|>%eu5ki9-~%$wy4|+WZ0^ww0&a+tHi~R zLR;o+MD$E9e*N2!)gXiQvhx){XZlkd)465ZBzK*Y{|e%561vYU?b0cEXv_)Y{HoXr zp2_&6tlOq$?MKx~lGYyp4^K2J>x8F$oIDbZ*3@S!+>#9H`XHJaM8WQ{)8$4>$*gc7 z5eyLWlVJIB!DB-V_Y0J2mUZMI$NXvoo~#|zSlLtQytiP}$(I~NCa~qe{`FPLonlq? zQF?Mub?_vV%NQf>a>=^9&w0L}EFD5L;JuJ}N%4&M$7U6Uwtb!x@ew?FNG;s2ZxZ{; z55LqWhGmOS9%bl9?qJk>52}dQbD1Skv(E_tb;y6-o%1 zGE~8%E9g^$gKM_F$Ps+HT1^VZW zh(re`h-OSQVdc!KtMgP;kElN;e=iwM$6oH&cPPOW*C7j7(}jiyO**k$T!&|#Tr8ez zug7B`+X|Enbhm$EQ7ppAanuZa@WUagc~Rc5blE zua$*Ls~U12hH=rq$O01F&l`9HV6n>NE#DyN8SDge6@6P9C0VeHSax=R`0OP{LTS>Uxvl7&eCMn03#7Dn<`OGj z1Vw$Fc|d~md{zb}td?^)J7cbt2H~T?ulEo?N(DpHVS%2Z3VD-(0 zi|P|)VhCU5n1{}PcOlW*sIDyrR}EQ!VExkMpaYk6zPp+T5{z6xO0W4yd$^^kiqnei z54|Ef)@?<)LvZ=5818c-sPQx=W`HR_HL#KU(tw~(9xLtwRT@Cu00$O1*9Q#+N{a;2 zjTK6Tx88SCf7y0w9i`X58u$Qpov;6&8Kb1BtHCIn!Pq-;6VORP_PID)aMq0N>M!%A z8lp8OBz8l(&hg?BCjBc^B9XKXAGTeklNR8tX8P-_CBH~|I1wvjtN#+rjDT9HZM&F} zsGOV+YVwJv_t9V*}bEaVp}&7s-O(0ecQD z)pI1AHL84ThLq>hew{sL*s?0!hvky4{+TKCg@FLlMH+ye?x9M$hfHzG(%OKR+wHB+ z1cX#1fx!)n)t`xI#Fh7n@-%O@EdxZ$Y82Z5*+@nRfOHYy;KuyU#u--~CuJ(LwE2ry z86ZTfuXiN@-9K~-6DXw%bIlb$%P%ui%8gF&EfSksWnE{=?hli;x(vd^2l98hXk(W8 z-t)Aq8FviKb@@i{tx)o(<#*;fwH*{>lBAtD9A9&kq-LKR|w%>7w*R0I)+FLI01o2w?f$oLiN) z7u_fR{cvYxru(UxCL~GOkeF}A#VxZO4!A9RRz&WvkV!A;ne{Q`oma3I7;^As9JWAI zStzQKi^TwfNe%pIX?(Ihi^O_`RJ4nUbZs!tw%s)yH*r0owwo$pV*}FGgd*SV{<73F zYu;wVebL3Y`yyjJ)hm;J2gpBm#{I`!n>~+mrM6xrZ%>#7h$e63s?rXKdUBgt$P8B& zf?1pTwatJWGv-5(T1dr%CCl`lknwZ#Cdr;Oi}V5gu6!ZTTumWQ5^WEFv3Dgy`#|bX z?l?LqHJ*=~dA;@@%~mU}0x>XfBG4t+sqO9gMq!XN>{YXrPW6!Z+n!5(U(&jM(|z ziG$xfAj>HlCTF&pkX!?I=FV!`vIaP2lKU z7V=*LbpXB>`m_r3snDVpyBhXpSmQ$HH7z%vBY zU5&v;sbx5Og1cvaP?Hh>m8~INcDg=oen7g~-NHq2N}`#nbpsIn*L9H)Cr-21*#n|P zihks~MH^^(cbYCq3D_$+?uWt4nGg~)A9z0HY&gVzWv<8*=lyaoH~e!8I1w#sb!O&O zj3``k1z|xOu6ce}eAZ)j2Z&Fx%#rYx#OLpM=DM6RjJo>GJh|6D`HJ=cFlKLZ?+G@3 z{mM8v_c@~pH{`KaO;4=B6(_>wE#w~-&~Qa|(?b%x##rM}SK=ksDLvAFvmFj|v)Ax8 z4AmpeK~&wu3pXfHW~y4G083b^+SMJa>6aPXb~tgHvGV4Q0tc*p4pk;T^=2g%X#`7b zA%%mqnR?8&`jD$|Vx|wv6GX1H39``=_8S1ne~b%Q1(ctL8I2x!i1+cP5O~|ECp7%K zUvL<&%RYnkgf+&3N!0e!Odobm-73)xnXA#@QK%EDw+925&KPTj@e-k`!&+Oi8oM^KWU9I> zDR0MSygQ;*fK$JQ_m67EKCYl+RxG{JxiLc2VEK_ zuRaQzgw2WIXOgr6Ae7=xFLWN+Zu;7r#@KAHBvt|{G4-YTheK}p98Uc+znT}DfV(rO z`?3x|5UOz{13uAorpcGfRSb*uMl{T;>?0zqlAf|&7=!|gG|6ihN6j;+4> z{Xk&1d9+{QOW*_*0}|fF958V?vtl|LuUs2uU;m|;*SeFnETLLMvI?vXei-*k?Nu<~ z=vcEOAXLQ_tTY#CB93%Z27}n=QlQFYbRc69N|Et2Ew?fjT&`1jFN~mtILm93EmiF3 zsm|%8_z&GYR{N8lq2)7FT&TdvFKmFGXy?|;#mmvQ+wc3{`$nZ{LdZ&a`amF+``V8> z!})_zD!;{BQK{=1b!3d6FA^5b9YzfI#TiKE3dY1I4`~e}q<%hrY{W6&sL4Tjur2U8 z$oo#0`7t0H!?E|{LgKtQW8r{?y=ohoA!WJ*$0?U^S@lV6Zks594@L$?yz-N#gyV4w z?joZY0PgkS>?P4$b})lBKVM35bKVS}{z4?Zl&kG@U;>XMwnt(LLL9Wj1{HHqv({S3 zsB;_oAljpRx<7ZDgS*pYDOH-CPdRz~vG znNe8@X#Wig2d)G_YF*AO#q`ReKs?F%H=2y<@3gP6b25FN9mZaOpP9IjMb zXwcnNvtW_|;(&*Ln8VEZ0c#V5>o}>HZ5mvW%C=A{)|KFiwEFmsc1YcOk`ZMgyJy(4 zoKJI068F1<84-*{9O!T4?u*l%^25l>N#lEb^!4EY&nT)Q>-jBe(dp7*f7&cAe}Z?V zVFTHG#DlYuUSp5D*Lox@h+}xtdXZ*_T)f=H-zmW6Nx0ogE6$^&-uFgy-9H_CUPqO4 zd#kYeqo>G*^OQZ?nxu!6V-6gnyg{9hSoTd|N zdVh*0QZ9~FHH#qpRPvq{7GvDgqu|peZ0yG_42>|$N4rudbJ+Q+*>o$0UQWy|zY(6k z8m~pxV?~hP5>;^toAw%M21%YF!iUx1a;ul5 zuLTAKlEj1q%-qWzXX^sOUOO;2eTo#q}J@f$&T|J2XtKK3~p5_wmw#YM??_2n0fGfaI1 zrmO@WAuvw|UNA~Ng{bU0__AkMS3e#Q{TpRW6orDLU&_&tc+c|Oy%_7SGinKG&2|ZC z`c`O^(c@tl4V6WdQ8Eo-=72P#-}p~dfD zSe6Wl1V91T(@NvSQ52S@S(0)%%cm~Nzi%?mME$YXx4;IJ+gq8YOJIip*Wld_fE{1l z8VgO&_55}A!j~@zpH;sJ^tL~5_ad+EA9 z`ttVn)ZaVXxAmymDARkd$+2xogGs6Lm+fqZ>wDVblwg~D)-}RzQv#~sZ>`LWARyAxt*Log^__V!(;=o>3w*&>zDkFEh*J_r^hyh zOsbYxry(Vc_lp~nouidU4D)sE5bP7z}>Ro(BDROdg%~3|+c*)}^Po2zd zKs{x2aJ@fQJ;E1zxmoN_IqW~4J)tk@vk6mGSr?zJwo=uBf=vk9E+(zQ$OckQ)ymqC zVc-+7a^hvD4F5$>WRR*)#@gp!aH-diu=NAKYCNYF5&jXI=4zvQh&^=dQ_S6A3$nn; zq;XGCTrWvl(P^PoayBO#GdK7o;xs$0MyGx%*9~M6c^uLx2H9jjA%$3Tq-spR{h**=GTb8kct{xT}x9p9i9o7^2m558@L%hUVTtY7_k zIvvJDB-0$9t?u*3%%AG!M$xFKaPQpFpDs@7WM)6PzO}S0Ui`3kA4PBQ7{8)uWFwRQWP5=mPHa7OzmxuIudmK0l9u&aRpv(R_|rwuKK<>l_)ei| zef6Woi{$!{c%L)bL`bU7p7$-~;!T0SR*J{SP24<)k1)$8{*Gn|JZlu3+f=U9DVl@t z3#6>;eZy{TVX0U=HTh>wfejjm*!-)N8x)R zfUM5Gl>FKEHP#y_bw_SbUn5t;`=`nbXbgSVsgNu@o(ePXeRFow?8*sK$}Z(*t|xZA zVtIUSAjphrBfX777H70A?(+{GvjcwRyVtgzVcjM$`*XjYz(J*NERZ!_TNi4DoJ*r?W^v%?ENBFQsan zFhX9mt(W*4waG7-&BpKfO-o=H;%$87NyzquQz7?mccbkm57a4qS$%eoTKq+6kG9QV zlQPhvR+^M=(=9iINF)Cf0o+hoVln2cZ6p7=a8D#2^j>uVS}cu3jvCxF%Iuh#e87`) zVK29C3N4JUAU0iYT4K^So|>nSrJmVwrK+6Ct&~r<97u;QMGn26`m<#`RVQo@mC10s z;OHb#l~k+eLdl^5vFUIqt|p&$UKE$%Nw{sN>f_P#dM_TS;O+VD8HJ>1xg%+(jf{Mw zn!VWQvKjq99RIwioxXyMQk%5#++M5STe7>YmhqMMxV>B)VA+J8Ck!ETN3L9YqB>f_Yczym~3A zMU><3G1ziy4j3wcobIg8IlJpYEnDAFnxdEz5VP*$69W~#Sx);M$X`}ccJM{_#TIXO z-&6nPabkiaiotBfs*48bJ*Lv<{ZJ=U!4{nwQRUR_jrBCE$=5o^t4qJb$HfgnQH3k3 zt8X5UY_1unF>Tc~2=M^s#58PRiZVqUrg`rI(k??It%#xV82ljwa!Ti&9T^fDDT=P> zzkg?k?;m}U)zKAM(`qASGLqlzj-`2f2FBD6bh^X3VIvwyNgdRIS4@7RaosS$>{laB zF~L^>)GoO2qRaWt6by-2#rS*j%@;oFU6Uq{Glh@EHr=QlU;{cxDT`^0pcL%LPhI)Y z!m4!QT4uLPC>mAg57ROWU}FbQB(&SU|NdXQx7v zJf1?kN{LV}w=K(S?x($qOW)K`8+c;(#SG6*F0v1?Nn%!Ww*6$$YpWF5zp2;!2aKAE z^4I}%2bBw0>V~5FU~Hk7mZ~ZL#zBBd?}zoq6!qX>K8wtLQUug{ZX*5zk?sJk`BcoK zM6t^ltr1wS)oP{)l(Jps`nT#Sp8r224U*32_$D$cmkPdQm+Aqk1EjtTw05~J=EG@Y z*m{0sU4{RILh8v-x*kONVpZIITp+xG-+{prj?MOQfpf7<$uRmm&Irh?%@7|W<$mN% z+Wqw`S(+QBvcUhEg8Ugu_FW$2S$Cn0qH}aQY{snXoPYYE`=Yj{zY7MG#(n!~r_&ug zZsC2V6sZ}NE47Or59#w`pOz{f?nXc-@reW#a3Y>;eL}1}GW)zmGR_A_X4cb)kRIN_ z7V5|II44;OhtWnAzzK9YLx!q1^#^0UU&Yc;P_FxK78Wob-?b}ipJ7{uFLbbMESO>| z9xwdPpNf7w4ukLxCAg|*&DVQ$nLeb}X$dZtar)hPr`>?LF<2l*WtVh&Hc7Ql%!g~4 zllxsqiXeP#C>4a$__HUhVgIAq>Qc@w6A%RSYs9~b%!vvk5}ZV&rZIW*Z_GU!Zzx-% zU676aDn`Bzml}dAqe9OHU6qanwWmRdcO&5(%Xl$)_jo}BX$Ce*L$zK2rZDv^XSskT z8&YWiR{gYm{?SKgJgAd9xX(jmrsI90dx5fDcbpB9dR!=uh3`v&*DBxJyX8qBiT3Lu zti4m=c2RcTO?a#w>t1i^91MODmu`t;BFfAP`D5X*_MP%P=8&>0Etf{5JVXA@0!1+A zs6||IP5ucG=*6(6r#%-muI*JU2+S^rY%V4gZTl>SaSpx+e4z9ePX;eQzb607@!MD$ z>ajO}?Zh1D7(ZUzZwHC(7eqjxl1{$=W_tou$S0AQeU>z>Ozm_o})7h7vKb1q0<5)|lJvtC6JT_^^~tLI;NDZ>es ztuq?(zTva}=8CN9u|3$?4x;2ijSQ$9nHAwwRpmE*$&! zHW+RH9SM3b`5teP=h1p7u=8!|_DOab621^vWguO-aTh;I#U@Sgm35V7P%@cYX3>~I zKutS!Hs}57segtuB|6Itn#9iv_gU_^$sp6Iu~yS*_Hc4oH`oHSEihLwmnb<+uzuo0 zAxihZMj8(H1l6o7P192a>N+m9O0hJZ0t2*@J<~G&{qs9I>*5+1wfkI|S`AxKIZe;D zbm9OAaNcfGYOf4ZRl2Xoki!i*H^l@UmJM!Pc@Y+SGnE(v7k7}Xoddy4=G1);>`|%R zSE3R*88|JXGE2R)XyFYFOXS{vNmUdA*QYzLd^VlnA5G(-4c~E}dpCY3Tc!GY28*6e zfTq=2OFrfl>V8!!q~25guRH~;y0ZQ%KxMDkp-MV}JBDV@#&N!mF#O;jL#yGa@HszJ zSv+z>?JmC`Qxey){ki|%?t7fov7pxb9_S;h;fNLis~X-D(}xgnL5ttD*SBMadVCbz zd+z3iAp6!BV1M~~=*`oy5_>PgX-;$Sw2o|8A9GGZwZ0I>d&8ET59$yAh)#+J zO_`Ta@V;+#p#SK^v(r@AO!RBJ$Ibw(#QlYp*O&$E3N z0LSJ#6%%Z%&qQ8Y+XtYD_+K<3B?F_fY$xWvIT;A8!@2zCY{EhS{P?3QKosN@t5Y+@ zI{m+-wa3o$u0^K&UORR{k=u@5;e6lJQC-neiFw##nnj}yptOlhY+aDPfbI?OUwUH8Q&hr^dA0ys#8vdPKS`ooDwS6xy=ZbQ$nL6xeT#N zj4|W5g;PReghGsxkh^u#E-sbJM%d)C6+>($R^&27^nFj~`}_X!`+xhq-|y#n-p})T zy`JauX<&;`$x%=R>aok~mA&Gs&xj}d7*|`dl?1sW-rnRk#cBnZ<7Q!Qpx~F$L^hymPfKhf9bp@DzXWPrbF?ofjeB|jy*>Mw_f*B%X?4E!oQ70-l zuMZ#9b)ac=XGUnAq!S9-GUbBBs|S9jbpRI2uJ0>W)Dt_!a`L#F&ODrUqVfn8YiXz~ z+Th(?T`#bxNTR~WD&?4T>amkK2HG`zyif`DYvF-|^m}z(4rcRms<8Np z#rC8&FM}Dezs>e<@HZ5iUk=y*dCK_9W0huslal*n@t&cA!F?N(G}Go)#4GWkUFut#X{(*VJE}UJcPV7ou5qmu}OEx)1UFi5kkX>gL zjyYKUz~uPccoi6u0TY#^!_qkc+^mFlq}6Yy&hll{*4n{9=x{~HUF8-IS&Am{?)uYW zieZ{u5i-*m!{c~CXVjNwBx6HIe@L*+ZYaNG!2oAvna;8*nk`KsHEdUt*z?BG-S51* zo3D;7sY4_!BEl_K5JHQTJ|_#)@5?Hlj*}Z7LEbDXIxb5K*snt5{MP1;tWYO%kPDS2 zvN-PFTpIK3aV{-jPh#5WLSJpfq?FJ^OcN>Zq#ff*UYko4Q1RFwX`Z8hG|dUz1mASO zB-sJ?6slh}KGMGEJXl`8KhL;$3!cMo zrye4akEAq~+*wE`c#*j=L-`hxVVGe@+w~`-CY98+Xza?++mM>~i^=jDh8Rx3qiAke z3nM9eh-v!$>DQ9DM-DZr$|K5*Jd}spP(eLd@190aF?Jz!e`!~P zfh!IWIQt2z4*+YUSfJd(v{Ma69rLHX@W7l=kk~^F+&hzr|EincUMlk(?inPg}baIN-=jOFXvri&yST%r*7nvJl!pKm)k$|{C10-cMML)iLe=Ddr1qq z&V}o5C{v+@ky2X&#CFr5kPBSe_AcnMm+lO6<5gbs2aPmID@~Ww05_iRN z@WmS3^mI{6Vuk6-dt*UKU}9DM-~C^9r>LSlXp?c5+Lsx&066|Emyf z;&?R2c#FL3{QEm1o?|;eEZ9UtjCeSZiL&puT;{Oq()n(y7brJ&ez#DHJQ+TupGJ~A zkD46ahzkk~C8h0+vTnqz#sO#{p1)P!mor#-;I!oFR9+`?Nws>x$dG^eEd2DTQbPUm}lUrW-O@@)qrx@^q) z!q+O#QKw~(rfHWkuGKmiMe6|>Bf4F z;uw3$|7kzcoNG+gL2Jxz<;t79UH=y*i(eC3{D={@X$(zwF5N`Mz#8UXxA0UycUpun zU)@HlH!V(7#-;6^g@2ETj@A+7jqrV+2Fb;H^#bpnv%(Et4weMDzhZ$}wn`!7UfTbf z&;W|JOKDb|b!wL|_c@&arPZyrhTKPgf(R(rIf0ciZGwU%oj~|2y>XaRf}%nog=;l1 z8*JfB`thk&s>SWm97k?IMEm6QwwH90eREQb1Ng-2SU^px4?yz;u8enP{c^cdZAZ5S zah?7+V|_((FQ6pSwJQqRsYghwM>I>VB)Ld~nLvvW`<2g) z78N=}>Gr0Fk>5Fe6RLzRm{aU+o`oY#LTjmFV>y5FkyJs`<#$&`MS7kbX8X0b z%-THg4o+o+cGun9lw%4OP3pO{o2DMs*hYZdJ$_Q>JW)ztzteV*f_q1XeHnx>8o$+N zvNu}Lu{wm+MN914Xs*fw$`9PtdATETvw6ID(S5;hb(bR<9OonUZf!Mwu8x~m&B{X; zT$J^C03~BJcD^|D9Fym^Z~@S<@o^h}M|@PEFuSp7?xRkN&<&Pw$uZW!E%p~g6EgKx zV`KHIipoN(=SY(eJ?m?U8_V8ru5kM5{H2vn-pbt9v0W)CTixYJS1SP(J~`z9QVfN{ zcLA?uJp4z2lyThl;D1sU{Z8^*B<;K*=36w+m{dbp$!)4RJ6wx%3+Sp}o;hKvNb*Lk zWcrxH6p_(k-wFt?6&s&>zcjA?W;;P!}G^i z&IswJm%d*MRMt+uIIvt4OI*#!dayhD%=^s*x@CJwAK906?`DK15av6wbGlH`9Vb!` zP~f3v9XXenRc9|VQH(x}qFWhf^g zhDh;s1F)j?FWAzAh&9Ce&RJPi|543?Gr3e@AM?>%L1c=apbVItlEfWMo|0sdJ8T~$+@i*F$Vvy5MKg? z_%Kwd&`vf7X*KEI&ys(w%OPv*y?(3iV0;|`Jt338{awVzwO@dvz)m;H5 zvENTG?NqV~klrQ0mkNf_4sN)Ayg;w#;2Biq#q&8cotuSLvviWyt-%)^@HFD)lpdz@ zdJ^=c20sNT8Kv_j1v74;;uUjm6-~fvy~*Aob^Z*KBdG(OZw^`US2KT+b7kLLiz!52x8mceE%UqWR`K)8!Ddgi_p;wsy ztCF5~e7qYV9y-$MdJ&Wb^szX8WYfj$%Z4PqUtu#gJGCsWwJ2Tt4?KU6?G0@LGSZTW zEfzgHo=wZw8+Y78B{Bg(hY8=b-D@BWj*EIW;$C(NFuMzno>b$EBU3B$=8d8mUiYI8 zC48buT>W3DtVGj7WKvRlj>bP&RFwtN$;`#>P=;dlMO=mYk8~J@aAw-zXP1Iga*Px> z2S)1}E>*e4_e7p$&tgd<_v}SrmU#a1Id06S!bG*YCoa>!-J&^n7Hl?=7PS4)5|6u7PC;WbozzIXfDH$hlI4gAXCWT=I`90ouCkA zpSXHHSM8q+*I<#33$2XVg<|6Cn?g2Wo(dot`$<<{Qsk~2%0BPCDYhp|wfuu3W0ymo zDFXs#G@aMi$O`PefU*tg>H0JXV@z6Qt~n3j_BYOGt^6UuIRgt)-sdJ+=oh6`*ze zyH&SspN5loi1dwe0>4~EM!StiIDzY;e}qI1^os(Z!|_SIeH72XmVvN`EIWE z!a+3B=JjKJIS>}%&1%_WaSZ-wN5`EVIGUPfsSaF(>8QVMlifC{=QBgbp6u;8*Xbn; z*6p?)c+S2rFrR$^3m7~^QhFL8fd47!$1x3?shpi(lbjaS3i8&zO3_etGnhISGueeV zW#?!?jE;*g5QYDronAvqyUEyJd<~urrE)?q90NUPL+q8C|Pcpnd5-d4?0^EGP098+z`RPRl8Jk}O>g>h$_GbMf^2&IU36F!#Xqb|>)0yw{)kU!uj zjxV0(6!2W&x(#Pj_msHs@#Y>z*~-q_Sn=33_pn*&S`m0=7bt0*090u&Ij`&ew3{5O z`;Eh~;eV&)vYJ2SIdN$xo>~`TOoK&NNmQmqIfVyZ;JeP71zwNnIU!c};6)$=cw+L) zPf>Wv@t3ecGIz%N*nGQ6W~cMDykxJv$$80WpbB8U<$}a#K(mF49*9#rg2i`G1r4nY z^?DdWMeI3*2bKwf|1o+yb>(<2C-W-D0QNOU-^QOB+^Fp*PDzAhr1@^N%fXDaB{I~X zpzcZue35JxQPql{s}Y5ueCC?X0)fZwST!!n1WCv>j$vM4+7%t=`i2+g5edj@m^n<>YPqR2L;rua1eMf`m#(XxeGyhb> zB)&fI$7@%gjMbAsDL?v8cH11GM|7s~*{Kikkbz;QC?4AxE z1S;3S^d;|2apK^x%$U>>;}ae)bFGO2@R> zOmxjItU#0)!4VcfyE}`Jab#tG9iGhA|_@6yp=1cEU(X_*e47dv8h6gRUF?FJSM8e{j=5(edu*!kKo*orzXgZ!0D z0{9vkS@kArGxc=2Y!4#g>oMZK_ke>!Lv>1D8oxH?H6=l(N1Wwht@ln_W4+034|2My z46k^KZjCCu$>#UbEuVkhUF^BzO=qYlSiJA$T)<9XX zZ;rpHXA3-xa0yG-ajyOIBa`>-rwFPj{aOQWZzgn%F7NH9z9k0vYk@@ahbC=1}_UDy*f9{D^r{q>FZSglgzrjVL&r zxm{LH=V5(>Kx10;gcRyl-GGL_QYZfkxb|GTyU^A@70gyZ#VjF3BJUc*onlX?C@9?9 z(JCSF2abgvf4b_VBi5$~#58oqQ06fW`YBrCz*nEe|GHDM(%@5#+#63HKH!&qQ#I>8 zg+H*|XX&q5D(hYoIsb_DN|M%%pnC2Pe|b}O*Cm{AgDOyKjN^RlaT4{`Hc}YtV+5DVb7d;o`vo}qSd4HM8D1*0{v0( z##eGqnJPDyuDoEalj>tHI;6r^f3wc-s)A=C?2$KJoE}dlaRxnR2-3`H7rE4$Ic-6| zE2U98+?}9a^I&8TRv`DGaXQKWw8zoO1nM#5j4PtS*+P~SE^j+PX+%O^WFa4BFB-7R zwazNtHNMuUrfWA7HAGP`=$O?IAy~|kJEuw+xncX^T+>w zhpyjI{h$EtB|{(I(sE}mYB(g8HcKX!X+Qc6$MOTNBo@%>D;?0?A!!zWm2pd|%L=l` zjfCWEX`N7dz?W0iQxpwd@m&UHg>F$@`I+M`X1iPF3`ZPc-PYZYrabyQaH}6Le`;Lr z89|k^jY*MudGAay{?9rs`PBoh$wJ$pZmlv0j-$Qc;dn`8WIn+p8wL8*pUi}!Kd49O zy%JE?Ess$&{@iyxG9!!QIC3q&pWv(`GK0cXyKaQ=apC9AhNqge!D*h+rXu^CBq?^=czr zkBSj4D=JG6F|$iNZ!5x{!-~O8J`D#=@t_-cfk|S~B9Rh(GeBfCVzp#my`7{E?Z_L$uzS=im~5nA^^*_>m)RqiPKZ0@ox540j-Jo;o-#pv|LN8~L!j0?&-&(%%}Y%-PZ&Y((W1k3>eS%>2Gj9z zVc&Q;^-fYc1Ek0RsF^)Wj}&4fbZG3Y(`<^LLfwk<8k1q6mLYko#Lx+OD3{^lR?P)2 z%G=f2_1M=QzL0C|G}>G%`|~{a`&E&R*}arVb3gG$JMoH+z2;E}@IE28w?J)?DpV&wFMt>lYSmkuHXo-eq|%w zxrzoxXUy6;+DqP5Tf{AAs}gD0B?sJ^@jzz(nOBafnMdI9YMAmsP^Tk3vO}j_vl0+! zXFwT0QOpcdOZh?CDF1*Z0M43B+@luLZ$DXkcqn{)mw4e;qWX`1Cy`f(9y_Zk2t!6$ zlFFK%PX16rVE2(XuiJXoW(wE9>8~)7OfiJBeNra&)ZHzLMF3whHKW%W z8S{fa;nX3?JU5zB9%>9ppN8{yiI*Rrk;3(1ZP*=SbYoR=+rax;c2ARUnoJ`5EK{{0 z*V4{U8!j{%kQ!(o#d80$u`5c-n|5n_>C8CR{cvWm_kwcYc&qM5IhK5*9o5RNPoC#O z%QrEaj0oADfVjy~$2QJ#B93_YGRM(p+3!iTYgERExVFuGPqIL~8VQ%76?Nt6buLiw zu3M*NcI7}TLWnZk&3t2E#m=(J)xVyP69>%cLb!uY>7G=@`R`iXEKUg$Tqa?Y#<}w2 z9htbk!D6)GoWr^^vl&-wq-a+9BB8*&i^v+Q>lH}ZcOOtU%vPkqQ5@sK4E5nnFHpfm zP%oi(u-CT63u~hr1g#8>$`46Xr1hKdoN4*`X$xl5tu0TEcSun^GDTy=S z`plvvZ-S)jZgD;fq;rI@svy3N@owDjESu$;TO=UB1K>G{UP}M6eMh-BX#LRk6TC|W z)zM4onL#t0j-8+jVEGu>h%$od;7F4Y%-kZVJL-pgU#Mhhw<3C2PNt=bdn-A8dSX#< zN)1A0RgPeBmhKirel@$*R^$khE}@SFw>JJq`~>T=0tF~Dwp_=(C#ElKXX(U_FH=65Z3s@Q@hi>#nn=$zH*)O<2m`{7Wm zV-51=hfA;Z(m3u9x&p>&s~~2(-%!VolL&P-;ZW@$aY1;a9q@`WR}zm!#krezi1IFa zh{Q+0jD`iJ)#;)B-z?ev_ElQ!bV^-`5vGILQDunZ!|D6l&p+lRnfRCm*|59DU|8?y z-H$N-RJOgZzml5=>BJh+wnpEPhDZD@Y;}2VCj|pJ)+Q)Fke;Z$!g?aLxjv zI!fD~kxm=F)`aZDUAinM-D5vk9Q8JT6xg%MLpx!iV~igZ%sx8SMn2L|mfa_oX!&TZ zXFtqna6k$(V*+oGR%dCv(VEfqDie5r$+QS6^Vpfl={N7mq-jm^c<`uh7dpK9xXqUJ zLxl0HMH_baSgA2c4j63W&bSR$47e$KqEp^e8)urVl9zvM325z#<=FmSB>LvN^(ni* Js!v|N^*`%a2QvTw literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/tutorial/localeDropdown.png b/packages/artplayer-document/static/img/tutorial/localeDropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..d7163f96752499e2e39e771d4d5e9e42c68677aa GIT binary patch literal 30020 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 literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg b/packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg new file mode 100644 index 000000000..431cef2f7 --- /dev/null +++ b/packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/artplayer-document/static/img/undraw_docusaurus_react.svg b/packages/artplayer-document/static/img/undraw_docusaurus_react.svg new file mode 100644 index 000000000..e41705043 --- /dev/null +++ b/packages/artplayer-document/static/img/undraw_docusaurus_react.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/artplayer-document/static/img/undraw_docusaurus_tree.svg b/packages/artplayer-document/static/img/undraw_docusaurus_tree.svg new file mode 100644 index 000000000..a05cc03dd --- /dev/null +++ b/packages/artplayer-document/static/img/undraw_docusaurus_tree.svg @@ -0,0 +1 @@ +docu_tree \ No newline at end of file From f25f97b3ac1568e0a7f860415fc2e2c61ee81dcd Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 16:08:08 +0800 Subject: [PATCH 06/61] update --- packages/artplayer-document/README.md | 24 +- .../en/Basic Services/1.User Registration.md | 61 ++ .../en/Basic Services/10.Sign agreement.md | 3 + .../Basic Services/11.Get loan information.md | 3 + .../en/Basic Services/12.Get repayment VA.md | 3 + .../en/Basic Services/13.Push notification.md | 3 + .../en/Basic Services/14.Eligible Check.md | 3 + .../15.Get the token for uploading image.md | 3 + ...6.Upload Image - By sending file stream.md | 3 + ...d Image - By using base64 or url format.md | 3 + .../Basic Services/18.Get the redirect url.md | 3 + .../2.Authorization list inquiry.md | 3 + .../3.Get the authorization detail page.md | 3 + .../4.Call back for authorization status.md | 3 + .../en/Basic Services/5.Bank card inquiry.md | 3 + .../docs/en/Basic Services/6.Get bank list.md | 3 + .../7.Bank card verification.md | 3 + .../docs/en/Basic Services/8.Submit loan.md | 3 + .../9.Loan agreement inquiry.md | 3 + .../docs/en/Basic Services/_category_.json | 5 + .../docs/en/Data dictionary.md | 195 +++++++ .../artplayer-document/docs/en/Overview.md | 72 +++ .../docs/en/Parameters Instructions.md | 81 +++ .../artplayer-document/docs/en/UML Diagram.md | 24 + packages/artplayer-document/docs/intro.md | 35 -- .../docs/tutorial-basics/_category_.json | 4 - .../docs/tutorial-basics/congratulations.md | 21 - .../tutorial-basics/create-a-blog-post.md | 34 -- .../docs/tutorial-basics/create-a-document.md | 55 -- .../docs/tutorial-basics/create-a-page.md | 43 -- .../docs/tutorial-basics/deploy-your-site.md | 31 - .../tutorial-basics/markdown-features.mdx | 144 ----- .../docs/tutorial-extras/_category_.json | 4 - .../tutorial-extras/manage-docs-versions.md | 55 -- .../tutorial-extras/translate-your-site.md | 88 --- .../Basic Services/1.User Registration.md | 62 ++ .../zh-cn/Basic Services/10.Sign agreement.md | 4 + .../Basic Services/11.Get loan information.md | 4 + .../Basic Services/12.Get repayment VA.md | 4 + .../Basic Services/13.Push notification.md | 4 + .../zh-cn/Basic Services/14.Eligible Check.md | 3 + .../15.Get the token for uploading image.md | 3 + ...6.Upload Image - By sending file stream.md | 3 + ...d Image - By using base64 or url format.md | 3 + .../Basic Services/18.Get the redirect url.md | 3 + .../2.Authorization list inquiry.md | 4 + .../3.Get the authorization detail page.md | 4 + .../4.Call back for authorization status.md | 4 + .../Basic Services/5.Bank card inquiry.md | 4 + .../zh-cn/Basic Services/6.Get bank list.md | 4 + .../7.Bank card verification.md | 4 + .../zh-cn/Basic Services/8.Submit loan.md | 4 + .../9.Loan agreement inquiry.md | 4 + .../docs/zh-cn/Basic Services/_category_.json | 5 + .../docs/zh-cn/Data dictionary.md | 195 +++++++ .../artplayer-document/docs/zh-cn/Overview.md | 80 +++ .../docs/zh-cn/Parameters Instructions.md | 100 ++++ .../docs/zh-cn/UML Diagram.md | 24 + .../artplayer-document/docusaurus.config.js | 134 ++--- packages/artplayer-document/package.json | 26 +- packages/artplayer-document/sidebars.js | 33 +- .../src/components/HomepageFeatures.js | 64 --- .../components/HomepageFeatures.module.css | 11 - .../artplayer-document/src/css/custom.css | 34 +- .../artplayer-document/src/pages/index.js | 40 -- .../src/pages/index.module.css | 23 - .../src/pages/markdown-page.md | 7 - .../artplayer-document/src/script/bugfix.js | 36 ++ .../artplayer-document/src/script/main.js | 3 + .../src/theme/SearchBar/algolia.css | 533 ++++++++++++++++++ .../src/theme/SearchBar/index.js | 110 ++++ .../src/theme/SearchBar/lib/DocSearch.js | 306 ++++++++++ .../src/theme/SearchBar/lib/lunar-search.js | 146 +++++ .../src/theme/SearchBar/lib/templates.js | 114 ++++ .../src/theme/SearchBar/lib/utils.js | 270 +++++++++ .../src/theme/SearchBar/styles.css | 40 ++ .../static/img/ApplyForLloan.png | Bin 0 -> 30261 bytes .../static/img/Authorization.png | Bin 0 -> 49427 bytes .../static/img/ContractContract.png | Bin 0 -> 34904 bytes .../static/img/RepaymentInformation.png | Bin 0 -> 41409 bytes .../static/img/SubmitBankCard.png | Bin 0 -> 48858 bytes .../static/img/docusaurus.png | Bin 5142 -> 0 bytes .../artplayer-document/static/img/favicon.ico | Bin 3626 -> 4286 bytes .../artplayer-document/static/img/logo.png | Bin 0 -> 3760 bytes .../artplayer-document/static/img/logo.svg | 1 - .../img/tutorial/docsVersionDropdown.png | Bin 25102 -> 0 bytes .../static/img/tutorial/localeDropdown.png | Bin 30020 -> 0 bytes .../static/img/undraw_docusaurus_mountain.svg | 170 ------ .../static/img/undraw_docusaurus_react.svg | 169 ------ .../static/img/undraw_docusaurus_tree.svg | 1 - 90 files changed, 2694 insertions(+), 1133 deletions(-) create mode 100644 packages/artplayer-document/docs/en/Basic Services/1.User Registration.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/10.Sign agreement.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/11.Get loan information.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/12.Get repayment VA.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/13.Push notification.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/14.Eligible Check.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/15.Get the token for uploading image.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/16.Upload Image - By sending file stream.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/17.Upload Image - By using base64 or url format.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/18.Get the redirect url.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/2.Authorization list inquiry.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/3.Get the authorization detail page.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/4.Call back for authorization status.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/5.Bank card inquiry.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/6.Get bank list.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/7.Bank card verification.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/8.Submit loan.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/9.Loan agreement inquiry.md create mode 100644 packages/artplayer-document/docs/en/Basic Services/_category_.json create mode 100644 packages/artplayer-document/docs/en/Data dictionary.md create mode 100644 packages/artplayer-document/docs/en/Overview.md create mode 100644 packages/artplayer-document/docs/en/Parameters Instructions.md create mode 100644 packages/artplayer-document/docs/en/UML Diagram.md delete mode 100644 packages/artplayer-document/docs/intro.md delete mode 100644 packages/artplayer-document/docs/tutorial-basics/_category_.json delete mode 100644 packages/artplayer-document/docs/tutorial-basics/congratulations.md delete mode 100644 packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md delete mode 100644 packages/artplayer-document/docs/tutorial-basics/create-a-document.md delete mode 100644 packages/artplayer-document/docs/tutorial-basics/create-a-page.md delete mode 100644 packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md delete mode 100644 packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx delete mode 100644 packages/artplayer-document/docs/tutorial-extras/_category_.json delete mode 100644 packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md delete mode 100644 packages/artplayer-document/docs/tutorial-extras/translate-your-site.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/1.User Registration.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/10.Sign agreement.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/11.Get loan information.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/12.Get repayment VA.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/13.Push notification.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/14.Eligible Check.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/15.Get the token for uploading image.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/16.Upload Image - By sending file stream.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/17.Upload Image - By using base64 or url format.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/18.Get the redirect url.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/2.Authorization list inquiry.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/3.Get the authorization detail page.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/4.Call back for authorization status.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/5.Bank card inquiry.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/6.Get bank list.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/7.Bank card verification.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/8.Submit loan.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/9.Loan agreement inquiry.md create mode 100644 packages/artplayer-document/docs/zh-cn/Basic Services/_category_.json create mode 100644 packages/artplayer-document/docs/zh-cn/Data dictionary.md create mode 100644 packages/artplayer-document/docs/zh-cn/Overview.md create mode 100644 packages/artplayer-document/docs/zh-cn/Parameters Instructions.md create mode 100644 packages/artplayer-document/docs/zh-cn/UML Diagram.md delete mode 100644 packages/artplayer-document/src/components/HomepageFeatures.js delete mode 100644 packages/artplayer-document/src/components/HomepageFeatures.module.css delete mode 100644 packages/artplayer-document/src/pages/index.js delete mode 100644 packages/artplayer-document/src/pages/index.module.css delete mode 100644 packages/artplayer-document/src/pages/markdown-page.md create mode 100644 packages/artplayer-document/src/script/bugfix.js create mode 100644 packages/artplayer-document/src/script/main.js create mode 100644 packages/artplayer-document/src/theme/SearchBar/algolia.css create mode 100644 packages/artplayer-document/src/theme/SearchBar/index.js create mode 100644 packages/artplayer-document/src/theme/SearchBar/lib/DocSearch.js create mode 100644 packages/artplayer-document/src/theme/SearchBar/lib/lunar-search.js create mode 100644 packages/artplayer-document/src/theme/SearchBar/lib/templates.js create mode 100644 packages/artplayer-document/src/theme/SearchBar/lib/utils.js create mode 100644 packages/artplayer-document/src/theme/SearchBar/styles.css create mode 100644 packages/artplayer-document/static/img/ApplyForLloan.png create mode 100644 packages/artplayer-document/static/img/Authorization.png create mode 100644 packages/artplayer-document/static/img/ContractContract.png create mode 100644 packages/artplayer-document/static/img/RepaymentInformation.png create mode 100644 packages/artplayer-document/static/img/SubmitBankCard.png delete mode 100644 packages/artplayer-document/static/img/docusaurus.png create mode 100644 packages/artplayer-document/static/img/logo.png delete mode 100644 packages/artplayer-document/static/img/logo.svg delete mode 100644 packages/artplayer-document/static/img/tutorial/docsVersionDropdown.png delete mode 100644 packages/artplayer-document/static/img/tutorial/localeDropdown.png delete mode 100644 packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg delete mode 100644 packages/artplayer-document/static/img/undraw_docusaurus_react.svg delete mode 100644 packages/artplayer-document/static/img/undraw_docusaurus_tree.svg diff --git a/packages/artplayer-document/README.md b/packages/artplayer-document/README.md index 55d0c3ef4..231a499c0 100644 --- a/packages/artplayer-document/README.md +++ b/packages/artplayer-document/README.md @@ -2,32 +2,32 @@ This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. -### Installation +## Installation -``` -$ yarn +```console +yarn install ``` -### Local Development +## Local Development -``` -$ yarn start +```console +yarn start ``` This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. -### Build +## Build -``` -$ yarn build +```console +yarn build ``` This command generates static content into the `build` directory and can be served using any static contents hosting service. -### Deployment +## Deployment -``` -$ GIT_USER= USE_SSH=true yarn deploy +```console +GIT_USER= USE_SSH=true yarn deploy ``` If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/packages/artplayer-document/docs/en/Basic Services/1.User Registration.md b/packages/artplayer-document/docs/en/Basic Services/1.User Registration.md new file mode 100644 index 000000000..7a76ef2fc --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/1.User Registration.md @@ -0,0 +1,61 @@ +--- +sidebar_position: 1 +--- + +All other services can be used only after user + +## Description + +**Provider:** `Awda` + +**Service url:** `/welab-sun/api/user/register` + +**Dependency:** `NO` + +**Request method** `POST` + +## Request body + +| Param | Type | Required | Description | +| ------- | ------ | -------- | ---------------------- | +| body | | Yes | | +| -mobile | String | Yes | Customer mobile number | +| -name | String | Yes | Customer name | +| -nik | String | Yes | Customer NIK | +| -email | String | Yes | Customer email | + +Request Sample: + +```json +{ + "body":{ + "email": "xxx", + "mobile": "xxx", + "name": "xxx", + "nik": "xxx" + }, + "timestamp":"1488363493", + "signature":"B3C14758F4AF52AE8AA0D4CD1493B137", + "appId":"111", + "v":"1.0" +} +``` + +## Response (Json format) + +| Param | Type | Required | Description | +| ------- | ------- | -------- | ------------ | +| code | Integer | Yes | Status code | +| message | String | Yes | Code message | +| result | Object | No | Return data | + + +Sample response for success request: + +```json +{ + "code":0, + "message":"Permintaan berhasil", + "result":null +} +``` \ No newline at end of file diff --git a/packages/artplayer-document/docs/en/Basic Services/10.Sign agreement.md b/packages/artplayer-document/docs/en/Basic Services/10.Sign agreement.md new file mode 100644 index 000000000..41ecc564c --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/10.Sign agreement.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 10 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/11.Get loan information.md b/packages/artplayer-document/docs/en/Basic Services/11.Get loan information.md new file mode 100644 index 000000000..33551c0da --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/11.Get loan information.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 11 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/12.Get repayment VA.md b/packages/artplayer-document/docs/en/Basic Services/12.Get repayment VA.md new file mode 100644 index 000000000..724edadf8 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/12.Get repayment VA.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 12 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/13.Push notification.md b/packages/artplayer-document/docs/en/Basic Services/13.Push notification.md new file mode 100644 index 000000000..6562f53ed --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/13.Push notification.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 13 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/14.Eligible Check.md b/packages/artplayer-document/docs/en/Basic Services/14.Eligible Check.md new file mode 100644 index 000000000..c008ed653 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/14.Eligible Check.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 14 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/15.Get the token for uploading image.md b/packages/artplayer-document/docs/en/Basic Services/15.Get the token for uploading image.md new file mode 100644 index 000000000..9095cc478 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/15.Get the token for uploading image.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 15 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/16.Upload Image - By sending file stream.md b/packages/artplayer-document/docs/en/Basic Services/16.Upload Image - By sending file stream.md new file mode 100644 index 000000000..cd77a8173 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/16.Upload Image - By sending file stream.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 16 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/17.Upload Image - By using base64 or url format.md b/packages/artplayer-document/docs/en/Basic Services/17.Upload Image - By using base64 or url format.md new file mode 100644 index 000000000..7ea4b7053 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/17.Upload Image - By using base64 or url format.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 17 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/18.Get the redirect url.md b/packages/artplayer-document/docs/en/Basic Services/18.Get the redirect url.md new file mode 100644 index 000000000..973ce7047 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/18.Get the redirect url.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 18 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/2.Authorization list inquiry.md b/packages/artplayer-document/docs/en/Basic Services/2.Authorization list inquiry.md new file mode 100644 index 000000000..718a60373 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/2.Authorization list inquiry.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 2 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/3.Get the authorization detail page.md b/packages/artplayer-document/docs/en/Basic Services/3.Get the authorization detail page.md new file mode 100644 index 000000000..20cfccebd --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/3.Get the authorization detail page.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 3 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/4.Call back for authorization status.md b/packages/artplayer-document/docs/en/Basic Services/4.Call back for authorization status.md new file mode 100644 index 000000000..4a245f210 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/4.Call back for authorization status.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 4 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/5.Bank card inquiry.md b/packages/artplayer-document/docs/en/Basic Services/5.Bank card inquiry.md new file mode 100644 index 000000000..a4002d439 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/5.Bank card inquiry.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 5 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/6.Get bank list.md b/packages/artplayer-document/docs/en/Basic Services/6.Get bank list.md new file mode 100644 index 000000000..71253e6f3 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/6.Get bank list.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 6 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/7.Bank card verification.md b/packages/artplayer-document/docs/en/Basic Services/7.Bank card verification.md new file mode 100644 index 000000000..e015f7fb4 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/7.Bank card verification.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 7 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/8.Submit loan.md b/packages/artplayer-document/docs/en/Basic Services/8.Submit loan.md new file mode 100644 index 000000000..17894bb5e --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/8.Submit loan.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 8 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/9.Loan agreement inquiry.md b/packages/artplayer-document/docs/en/Basic Services/9.Loan agreement inquiry.md new file mode 100644 index 000000000..a42365a41 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/9.Loan agreement inquiry.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 9 +--- diff --git a/packages/artplayer-document/docs/en/Basic Services/_category_.json b/packages/artplayer-document/docs/en/Basic Services/_category_.json new file mode 100644 index 000000000..d7807c523 --- /dev/null +++ b/packages/artplayer-document/docs/en/Basic Services/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "Basic Services", + "position": 5, + "collapsed": false +} \ No newline at end of file diff --git a/packages/artplayer-document/docs/en/Data dictionary.md b/packages/artplayer-document/docs/en/Data dictionary.md new file mode 100644 index 000000000..e662a4926 --- /dev/null +++ b/packages/artplayer-document/docs/en/Data dictionary.md @@ -0,0 +1,195 @@ +--- +title: Data dictionary +sidebar_position: 4 +--- + +## Marriage + +| Code | Description | Note | +| ---- | ------------- | ---- | +| 10 | Belum Menikah | | +| 11 | Menikah | | +| 12 | Cerai | | + +## Education + +| Code | Description | Note | +| ---- | ------------------ | ---- | +| 14 | Sekolah Dasar | | +| 16 | SMP | | +| 13 | SMA | | +| 15 | Diploma/Politehnik | | +| 10 | Sarjana | | +| 11 | Master | | +| 12 | Doctor | | +| 17 | Lain-Lain | | + +## House Ownership + +| Code | Description | Note | +| ---- | -------------- | ---- | +| 10 | Rumah Sendiri | | +| 11 | Rumah Keluarga | | +| 12 | Rumah Dinas | | +| 13 | Sewa/Kontrak | | +| 14 | Kost | | +| 15 | Status Kredit | | +| 16 | Lain-Lain | | + +## Religion + +| Code | Description | Note | +| ---- | ----------------- | ---- | +| 10 | Islam | | +| 11 | Kristen Protestan | | +| 12 | Kristen Katolik | | +| 13 | Hindu | | +| 14 | Budha | | +| 15 | Kong Hu Cu | | + +## Work Type + +| Code | Description | Note | +| ---- | ------------- | ---- | +| 10 | Tetap | | +| 11 | Kontrak | | +| 12 | Outsourcing | | +| 13 | Pekerja Lepas | | +| 14 | Pemilik Usaha | | + +## Position + +| Code | Description | Note | +| ---- | ------------------------ | ---- | +| 10 | Direktur/General Manager | | +| 11 | Manajer | | +| 12 | Asisten Manajer | | +| 13 | Staf | | +| 14 | Pemilik | | + +## Industry + +| Code | Description | Note | +| ---- | ------------------------------------------- | ---- | +| 10 | Perdagangan Eceran / Grosir | | +| 11 | Perbankan / Keuangan / Asuransi / Investasi | | +| 12 | Manufaktur | | +| 13 | Properti / Konstruksi | | +| 14 | Pertambangan / Minyak / Gas | | +| 15 | Pendidikan | | +| 16 | Telekomunikasi | | +| 17 | Pariwisata / Hotel / Perhotelan | | +| 18 | Angkutan | | +| 19 | PNS (Pemerintah) | | +| 20 | Konsultan / Akuntansi / Jasa Profesional | | +| 21 | BUMN (Badan Usaha Milik Negara) | | +| 22 | Perkebunan / Pertanian | | +| 23 | TNI / Polisi (Militer / Polisi) | | +| 24 | Hukum | | +| 25 | Teknologi | | +| 26 | Media / Hiburan | | +| 27 | Pemasaran iklan | | +| 28 | Makanan & Minuman | | +| 29 | Layanan medis | | +| 30 | Perikanan | | + +## Office Ownership + +| Code | Description | Note | +| ---- | ------------- | ---- | +| 10 | Milik Sendiri | | +| 11 | Sewa | | + +## Company Size + +| Code | Description | Note | +| ---- | ----------- | ---- | +| 10 | 1-5 | | +| 11 | 5-10 | | +| 12 | 10-25 | | +| 13 | 25-50 | | +| 14 | >50 | | + +## Occupation + +| Code | Description | Note | +| ---- | ------------------------- | ---- | +| 11 | Pensiunan/Purnawirawan | | +| 12 | Pelayaran/Pelaut | | +| 13 | Guru/Pendidikan | | +| 14 | Jasa | | +| 15 | Dokter/Bidan/Mantri | | +| 16 | Ojek Motor | | +| 17 | Sopir | | +| 18 | Peternak | | +| 19 | Pelajar/Mahasiswa | | +| 20 | Buruh/PRT | | +| 21 | Pengrajin Tangan | | +| 23 | Pedagang | | +| 24 | Produksi | | +| 26 | Sewa/Rent | | +| 27 | Transportasi & Komunikasi | | +| 28 | Hiburan | | +| 29 | Pendidikan Non Formal | | +| 30 | Hotel | | +| 31 | Perangkat Desa | | +| 32 | TNI/Polri | | +| 33 | Atlet | | +| 34 | Pengobatan Alternatif | | +| 2 | ABRI | | +| 3 | Pengacara | | +| 35 | Jurnalis / Wartawan | | +| 37 | Profesi | | +| 36 | Wartawan | | +| 6 | Lain-Lain | | +| 38 | Pekerja Lepas | | + +## Income source + +| Code | Description | Note | +| ---- | ---------------------------------- | ---- | +| 10 | Gaji/Upah | | +| 11 | Laba Usaha | | +| 12 | Uang Tabungan | | +| 13 | Menjual/Menggadaikan Aset | | +| 14 | Dari Keluarga/Teman/Sumber Lainnya | | + +## Relationship with emergency contact + +| Code | Description | Note | +| ---- | --------------- | ---- | +| 10 | Pasangan | | +| 11 | Orang Tua | | +| 12 | Saudara Kandung | | +| 13 | Anak | | +| 14 | Teman Kantor | | + +## Apply reason + +| Code | Description | Note | +| ---- | ----------------------------------------- | ---- | +| 10 | Pembelian Handphone / Laptop / Elektronik | | +| 11 | Tagihan Rutin | | +| 12 | Liburan / Rekreasi | | +| 13 | Pembayaran Pajak | | +| 14 | Asuransi | | +| 15 | Pengobatan Medis | | +| 16 | Pendidikan | | +| 17 | Konsumsi Rumah Tangga | | +| 18 | Modal Usaha | | +| 19 | Multiguna | | + +## Document type + +| Code | Description | Note | +| ----------------------- | ------------------------------------ | ---- | +| bank_statement_3_months | Bank statement for the last 3 months | | +| company_id_card | | | +| ID_PNS | | | +| receiptri | | | +| salary_certificate | | | +| salary_slip_3_months | Salary slip for the last 3 months | | +| self_SKU_SIUP_TDP | | | +| SK_PNS | | | +| driver_license | | | +| KTP | | | \ No newline at end of file diff --git a/packages/artplayer-document/docs/en/Overview.md b/packages/artplayer-document/docs/en/Overview.md new file mode 100644 index 000000000..eaf2ee917 --- /dev/null +++ b/packages/artplayer-document/docs/en/Overview.md @@ -0,0 +1,72 @@ +--- +title: Overview +sidebar_position: 1 +slug: / +--- + +## Integration Guides + +- Require confirmation from AWDA to implement to production after complete UAT for all services. + +- You can use API tools to test some services during your development。 + +- You can check the response code or contact us when you have problems during the testing + +- All services using POST method to send request(Including Inquiry) + +- All requests and responses are JSON format. NOTE: Header Content-Type -> application/json UTF-8 encoding + +- All requests require signature + +## Document Change Control + +| Version | Date | Authors | Summary of changes | +| ------- | ---------- | ------- | -------------------- | +| 1.0.0 | 2019.06.03 | ZHIBO | Thumbnails image url | + +## API Summary + +| **Service name** | **Description** | +| -----------------| --------------- | +| user registration|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : All other services can be used only after user registration success

    | +| Authorization list inquiry|

    Provider : AWDA

    User : Third party

    Mandatory : NO

    Description : Get the authorization list and check the authorization status

    | +| Get the authorization detail page|

    Provider : AWDA

    User : Third party

    Mandatory : NO

    Description : Customer complete the authorization in the pages

    +| Call back for authorization status|

    Provider : AWDA

    User : Third party

    Mandatory : NO

    Description : To receive the authorization status

    | +| Bank card inquiry|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : To inquiry bank card status

    | +| Get bank list|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Get the bank list for bank card input

    | +| Bank card verification|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Verify and submit bank card

    | +| Submit loan|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Submit loan info, including (personal info, work info and emergency contact)

    | +| Loan agreement inquiry|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Get loan agreement

    | +| Sign agreement|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Sign agreement (Confirm disbursement)

    | +| Get loan information|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Get loan info based on loan number (include repayment schedule if disbursed)

    | +| Get repayment VA|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Get the repayment VA

    | +| Push notification|

    Provider: Third party

    User : AWDA

    Mandatory: NO

    Description : Push the loan status update to Third party

    | +| Eligible Check|

    Provider : AWDA

    User : Third party

    Mandatory : YES

    Description : Verify Customer

    | +| Get the token for uploading image|

    Provider : AWDA

    User : Third party

    Mandatory : NO

    Description : To get the token which used for api Upload Image (1)

    | +| Upload Image (1)|

    Provider : AWDA

    User : Third party

    Mandatory : NO

    Description : By sending file stream with token

    | +| Upload Image (2)|

    Provider : AWDA

    User : Third party

    Mandatory : NO

    Description : By sending base64 or url format

    | +| Get the redirect url
    (For H5 pages of Digital Signature, Loan detail and Repayment detail) |

    Provider : AWDA

    User : Third party

    Mandatory : NO

    Description : Redirect to the specific H5 pages

    | + +## Environment information + +- Testing environment:`https://sea-staging.wolaidai.com` +- Production environment:`https://japi.maucash.id` +- Note: All APIs URL will be environment `url` + `service url` + +## List Of Response Code + +| Code|Description| +| ----|----| +| 0 | Success| +| 1000| System is busy| +| 1001| Repeat request| +| 1002| Unvalid token| +| 1003| Timestamp error or expired (only valid within 60s)| +| 1004| Signature error| +| 1005| appId invalid| +| 1006| Parameters cannot be empty| +| 1007| Parameters error| +| 1008| User already existed| +| 1009| User not found| +| 1010| Loan not found| +| 1012| Authorization info not found| \ No newline at end of file diff --git a/packages/artplayer-document/docs/en/Parameters Instructions.md b/packages/artplayer-document/docs/en/Parameters Instructions.md new file mode 100644 index 000000000..14f36b450 --- /dev/null +++ b/packages/artplayer-document/docs/en/Parameters Instructions.md @@ -0,0 +1,81 @@ +--- +title: Parameters Instructions +sidebar_position: 3 +--- + +### Instructions for API request parameters + +:::note +NOTE: The following parameters is included in all services (different values). If no parameters for body then pass blank, like body:”” +::: + +| Name|Description|Type|Mandatory|Notes| +| ----|----|----|----|----| +| body|Business parameters|Object|N|Some APIs may require body| +| timestamp|Timestamp|Long|Y|Accurate into a second| +| appId|Apply from AWDA|String|Y| +| v|Version code|String|N|Default 1.0| +| signature|Signature|String|Y|All requests need signature| + +example: + +```json +{ + "body": "1111", + "timestamp": 1488363493, + "signature": "B3C14758F4AF52AE8AA0D4CD1493B137", + "appId": "111", + "v":"1.0" +} +``` + +### Rules for signature + +Rules for signature: + +- Step 1:Sort the parameters alphabetically by key name. Result will be: appId、body、timestamp、v +- Step 2:Combine key and value of all the parameters. Result will be: appId:123456body:{"orderNo":"1234567"}timestamp:1558923813v:1.0 +- Step 3:Add secret to the last of the result from step 2, which will become the signature. Result will be: appId:123456body:{"orderNo":"1234567"}timestamp:1558923813v:1.0yoursecret +- Step 4:MD5 encryption of the signature string. Result will be: `B6F6E3F9ADF4D7558F54BC8B7D9869CC` + + +### Java Sample Codes for Signature + +```java +String[] keys = new String[map.size()]; +int i = 0; +for (Map.Entry entry : map.entrySet()) { + keys[i++] = entry.getKey(); +} +Arrays.sort(keys); +StringBuilder stringBuilder = new StringBuilder(); +for (String key : keys) { + stringBuilder.append(key); + stringBuilder.append(":"); + stringBuilder.append(map.get(key)); +} +stringBuilder.append(secret); +String str=stringBuilder.toString(); +String encodeStr = DigestUtils.md5Hex(str).toUpperCase(); +return encodeStr ; +``` + +### API Response + +| Parameters|DescriptionType|Mandatory|Notes| +| ----|----|----|----|----| +| code|Status code|Integer|Y|

    0: Success

    Other codes all represent failure, find more details in Code List

    | +| message|Status description|String|Y|Code description| +| result|Return data|Object|N|When code=0, there will be business data returned inside result object| + +### Sample response for success request: + +```json +{ + "code": 0, + "message": "Permintaan berhasil", + "result": { + "state": true + } +} +``` \ No newline at end of file diff --git a/packages/artplayer-document/docs/en/UML Diagram.md b/packages/artplayer-document/docs/en/UML Diagram.md new file mode 100644 index 000000000..e124bffa1 --- /dev/null +++ b/packages/artplayer-document/docs/en/UML Diagram.md @@ -0,0 +1,24 @@ +--- +title: UML Diagram +sidebar_position: 2 +--- + +### Authorization + +![logo](/img/Authorization.png) + +### Submit Bank Card + +![logo](/img/SubmitBankCard.png) + +### Submit Loan + +![logo](/img/ApplyForLloan.png) + +### Sign Contract + +![logo](/img/ContractContract.png) + +### Payment Inquiry + +![logo](/img/RepaymentInformation.png) diff --git a/packages/artplayer-document/docs/intro.md b/packages/artplayer-document/docs/intro.md deleted file mode 100644 index 8417aebee..000000000 --- a/packages/artplayer-document/docs/intro.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Tutorial Intro - -Let's discover **Docusaurus in less than 5 minutes**. - -## Getting Started - -Get started by **creating a new site**. - -Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**. - -## Generate a new site - -Generate a new Docusaurus site using the **classic template**: - -```shell -npm init docusaurus@latest my-website classic -``` - -## Start your site - -Run the development server: - -```shell -cd my-website - -npx docusaurus start -``` - -Your site starts at `http://localhost:3000`. - -Open `docs/intro.md` and edit some lines: the site **reloads automatically** and displays your changes. diff --git a/packages/artplayer-document/docs/tutorial-basics/_category_.json b/packages/artplayer-document/docs/tutorial-basics/_category_.json deleted file mode 100644 index 135e4a685..000000000 --- a/packages/artplayer-document/docs/tutorial-basics/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Tutorial - Basics", - "position": 2 -} diff --git a/packages/artplayer-document/docs/tutorial-basics/congratulations.md b/packages/artplayer-document/docs/tutorial-basics/congratulations.md deleted file mode 100644 index 9ef99bbad..000000000 --- a/packages/artplayer-document/docs/tutorial-basics/congratulations.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Congratulations! - -You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. - -Docusaurus has **much more to offer**! - -Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. - -Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) - -## What's next? - -- Read the [official documentation](https://docusaurus.io/). -- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) -- Add a [search bar](https://docusaurus.io/docs/search) -- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) -- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md b/packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md deleted file mode 100644 index 0d50aaf31..000000000 --- a/packages/artplayer-document/docs/tutorial-basics/create-a-blog-post.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Create a Blog Post - -Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... - -## Create your first Post - -Create a file at `blog/2021-02-28-greetings.md`: - -```md title="blog/2021-02-28-greetings.md" ---- -slug: greetings -title: Greetings! -authors: - - name: Joel Marcey - title: Co-creator of Docusaurus 1 - url: https://github.com/JoelMarcey - image_url: https://github.com/JoelMarcey.png - - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png -tags: [greetings] ---- - -Congratulations, you have made your first post! - -Feel free to play around and edit this post as much you like. -``` - -A new blog post is now available at `http://localhost:3000/blog/greetings`. diff --git a/packages/artplayer-document/docs/tutorial-basics/create-a-document.md b/packages/artplayer-document/docs/tutorial-basics/create-a-document.md deleted file mode 100644 index b4a072ecd..000000000 --- a/packages/artplayer-document/docs/tutorial-basics/create-a-document.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Document - -Documents are **groups of pages** connected through: - -- a **sidebar** -- **previous/next navigation** -- **versioning** - -## Create your first Doc - -Create a markdown file at `docs/hello.md`: - -```md title="docs/hello.md" -# Hello - -This is my **first Docusaurus document**! -``` - -A new document is now available at `http://localhost:3000/docs/hello`. - -## Configure the Sidebar - -Docusaurus automatically **creates a sidebar** from the `docs` folder. - -Add metadatas to customize the sidebar label and position: - -```md title="docs/hello.md" {1-4} ---- -sidebar_label: 'Hi!' -sidebar_position: 3 ---- - -# Hello - -This is my **first Docusaurus document**! -``` - -It is also possible to create your sidebar explicitly in `sidebars.js`: - -```diff title="sidebars.js" -module.exports = { - tutorialSidebar: [ - { - type: 'category', - label: 'Tutorial', -- items: [...], -+ items: ['hello'], - }, - ], -}; -``` diff --git a/packages/artplayer-document/docs/tutorial-basics/create-a-page.md b/packages/artplayer-document/docs/tutorial-basics/create-a-page.md deleted file mode 100644 index e112b0059..000000000 --- a/packages/artplayer-document/docs/tutorial-basics/create-a-page.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create a Page - -Add **Markdown or React** files to `src/pages` to create a **standalone page**: - -- `src/pages/index.js` -> `localhost:3000/` -- `src/pages/foo.md` -> `localhost:3000/foo` -- `src/pages/foo/bar.js` -> `localhost:3000/foo/bar` - -## Create your first React Page - -Create a file at `src/pages/my-react-page.js`: - -```jsx title="src/pages/my-react-page.js" -import React from 'react'; -import Layout from '@theme/Layout'; - -export default function MyReactPage() { - return ( - -

    My React page

    -

    This is a React page

    -
    - ); -} -``` - -A new page is now available at `http://localhost:3000/my-react-page`. - -## Create your first Markdown Page - -Create a file at `src/pages/my-markdown-page.md`: - -```mdx title="src/pages/my-markdown-page.md" -# My Markdown page - -This is a Markdown page -``` - -A new page is now available at `http://localhost:3000/my-markdown-page`. diff --git a/packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md b/packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md deleted file mode 100644 index 492eae027..000000000 --- a/packages/artplayer-document/docs/tutorial-basics/deploy-your-site.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Deploy your site - -Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). - -It builds your site as simple **static HTML, JavaScript and CSS files**. - -## Build your site - -Build your site **for production**: - -```bash -npm run build -``` - -The static files are generated in the `build` folder. - -## Deploy your site - -Test your production build locally: - -```bash -npm run serve -``` - -The `build` folder is now served at `http://localhost:3000/`. - -You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx b/packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx deleted file mode 100644 index 885562605..000000000 --- a/packages/artplayer-document/docs/tutorial-basics/markdown-features.mdx +++ /dev/null @@ -1,144 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Markdown Features - -Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. - -## Front Matter - -Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```text title="my-doc.md" -// highlight-start ---- -id: my-doc-id -title: My document title -description: My document description -slug: /my-custom-url ---- -// highlight-end - -## Markdown heading - -Markdown text with [links](./hello.md) -``` - -## Links - -Regular Markdown links are supported, using url paths or relative file paths. - -```md -Let's see how to [Create a page](/create-a-page). -``` - -```md -Let's see how to [Create a page](./create-a-page.md). -``` - -**Result:** Let's see how to [Create a page](./create-a-page.md). - -## Images - -Regular Markdown images are supported. - -Add an image at `static/img/docusaurus.png` and display it in Markdown: - -```md -![Docusaurus logo](/img/docusaurus.png) -``` - -![Docusaurus logo](/img/docusaurus.png) - -## Code Blocks - -Markdown code blocks are supported with Syntax highlighting. - - ```jsx title="src/components/HelloDocusaurus.js" - function HelloDocusaurus() { - return ( -

    Hello, Docusaurus!

    - ) - } - ``` - -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

    Hello, Docusaurus!

    ; -} -``` - -## Admonitions - -Docusaurus has a special syntax to create admonitions and callouts: - - :::tip My tip - - Use this awesome feature option - - ::: - - :::danger Take care - - This action is dangerous - - ::: - -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: - -## MDX and React Components - -[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: - -```jsx -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`) - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! -``` - -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`); - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! diff --git a/packages/artplayer-document/docs/tutorial-extras/_category_.json b/packages/artplayer-document/docs/tutorial-extras/_category_.json deleted file mode 100644 index ca3f8e064..000000000 --- a/packages/artplayer-document/docs/tutorial-extras/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Tutorial - Extras", - "position": 3 -} diff --git a/packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md b/packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md deleted file mode 100644 index 6335b0ac9..000000000 --- a/packages/artplayer-document/docs/tutorial-extras/manage-docs-versions.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -module.exports = { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'docsVersionDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](/img/tutorial/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/packages/artplayer-document/docs/tutorial-extras/translate-your-site.md b/packages/artplayer-document/docs/tutorial-extras/translate-your-site.md deleted file mode 100644 index a25c089ed..000000000 --- a/packages/artplayer-document/docs/tutorial-extras/translate-your-site.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -module.exports = { - i18n: { - defaultLocale: 'en', - locales: ['en', 'fr'], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at `http://localhost:3000/fr/` and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a same time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -module.exports = { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: 'localeDropdown', - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](/img/tutorial/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/1.User Registration.md b/packages/artplayer-document/docs/zh-cn/Basic Services/1.User Registration.md new file mode 100644 index 000000000..07d9222c4 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/1.User Registration.md @@ -0,0 +1,62 @@ +--- +title: 用户创建 +sidebar_position: 1 +--- + +用户创建,只有在用户创建成功后才能调用其他业务接口,例如:绑卡、授权 + +## 接口描述 + +**接口提供方:** `Awda` + +**接口地址:** `/welab-sun/api/user/register` + +**前置调用:** `NO` + +**请求方式** `POST` + +## 参数说明 + +| 参数名称 | 中文含义 | 类型 | 必选 | 备注 | +| -------- | -------- | ------ | ---- | ---- | +| body | | | 是 | | +| -mobile | 手机号 | String | 是 | | +| -name | 用户姓名 | String | 是 | | +| -nik | 身份证 | String | 是 | | +| -email | 邮箱 | String | 是 | | + +请求参数 - 例: + +```json +{ + "body":{ + "email": "xxx", + "mobile": "xxx", + "name": "xxx", + "nik": "xxx" + }, + "timestamp":"1488363493", + "signature":"B3C14758F4AF52AE8AA0D4CD1493B137", + "appId":"111", + "v":"1.0" +} +``` + +## 响应数据(返回结果,Json格式) + +| 参数名称 | 中文含义 | 类型 | 必选 | 备注 | +| -------- | ---------- | ------- | ---- | ---- | +| code | 返回码 | Integer | 是 | | +| message | 返回信息 | String | 是 | | +| result | 返回结果集 | Object | 否 | | + + +正确响应的JSON - 例: + +```json +{ + "code":0, + "message":"Permintaan berhasil", + "result":null +} +``` \ No newline at end of file diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/10.Sign agreement.md b/packages/artplayer-document/docs/zh-cn/Basic Services/10.Sign agreement.md new file mode 100644 index 000000000..2501ea5e0 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/10.Sign agreement.md @@ -0,0 +1,4 @@ +--- +title: 签约(确认放款) +sidebar_position: 10 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/11.Get loan information.md b/packages/artplayer-document/docs/zh-cn/Basic Services/11.Get loan information.md new file mode 100644 index 000000000..5cf3184c6 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/11.Get loan information.md @@ -0,0 +1,4 @@ +--- +title: 贷款信息查询 +sidebar_position: 11 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/12.Get repayment VA.md b/packages/artplayer-document/docs/zh-cn/Basic Services/12.Get repayment VA.md new file mode 100644 index 000000000..3858b1798 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/12.Get repayment VA.md @@ -0,0 +1,4 @@ +--- +title: 用户还款虚拟账号查询 +sidebar_position: 12 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/13.Push notification.md b/packages/artplayer-document/docs/zh-cn/Basic Services/13.Push notification.md new file mode 100644 index 000000000..bf66e12d3 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/13.Push notification.md @@ -0,0 +1,4 @@ +--- +title: 推送通知 +sidebar_position: 13 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/14.Eligible Check.md b/packages/artplayer-document/docs/zh-cn/Basic Services/14.Eligible Check.md new file mode 100644 index 000000000..c008ed653 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/14.Eligible Check.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 14 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/15.Get the token for uploading image.md b/packages/artplayer-document/docs/zh-cn/Basic Services/15.Get the token for uploading image.md new file mode 100644 index 000000000..9095cc478 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/15.Get the token for uploading image.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 15 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/16.Upload Image - By sending file stream.md b/packages/artplayer-document/docs/zh-cn/Basic Services/16.Upload Image - By sending file stream.md new file mode 100644 index 000000000..cd77a8173 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/16.Upload Image - By sending file stream.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 16 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/17.Upload Image - By using base64 or url format.md b/packages/artplayer-document/docs/zh-cn/Basic Services/17.Upload Image - By using base64 or url format.md new file mode 100644 index 000000000..7ea4b7053 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/17.Upload Image - By using base64 or url format.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 17 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/18.Get the redirect url.md b/packages/artplayer-document/docs/zh-cn/Basic Services/18.Get the redirect url.md new file mode 100644 index 000000000..973ce7047 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/18.Get the redirect url.md @@ -0,0 +1,3 @@ +--- +sidebar_position: 18 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/2.Authorization list inquiry.md b/packages/artplayer-document/docs/zh-cn/Basic Services/2.Authorization list inquiry.md new file mode 100644 index 000000000..6612d62ee --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/2.Authorization list inquiry.md @@ -0,0 +1,4 @@ +--- +title: 查询授权列表 +sidebar_position: 2 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/3.Get the authorization detail page.md b/packages/artplayer-document/docs/zh-cn/Basic Services/3.Get the authorization detail page.md new file mode 100644 index 000000000..ccabc4507 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/3.Get the authorization detail page.md @@ -0,0 +1,4 @@ +--- +title: 获取授权地址 +sidebar_position: 3 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/4.Call back for authorization status.md b/packages/artplayer-document/docs/zh-cn/Basic Services/4.Call back for authorization status.md new file mode 100644 index 000000000..42d190387 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/4.Call back for authorization status.md @@ -0,0 +1,4 @@ +--- +title: 授权回调通知 +sidebar_position: 4 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/5.Bank card inquiry.md b/packages/artplayer-document/docs/zh-cn/Basic Services/5.Bank card inquiry.md new file mode 100644 index 000000000..9f98cde4b --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/5.Bank card inquiry.md @@ -0,0 +1,4 @@ +--- +title: 绑卡信息查询 +sidebar_position: 5 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/6.Get bank list.md b/packages/artplayer-document/docs/zh-cn/Basic Services/6.Get bank list.md new file mode 100644 index 000000000..c28d7e73b --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/6.Get bank list.md @@ -0,0 +1,4 @@ +--- +title: 银行列表查询 +sidebar_position: 6 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/7.Bank card verification.md b/packages/artplayer-document/docs/zh-cn/Basic Services/7.Bank card verification.md new file mode 100644 index 000000000..8e6093e4f --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/7.Bank card verification.md @@ -0,0 +1,4 @@ +--- +title: 绑定银行卡 +sidebar_position: 7 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/8.Submit loan.md b/packages/artplayer-document/docs/zh-cn/Basic Services/8.Submit loan.md new file mode 100644 index 000000000..6843de236 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/8.Submit loan.md @@ -0,0 +1,4 @@ +--- +title: 申请借款 +sidebar_position: 8 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/9.Loan agreement inquiry.md b/packages/artplayer-document/docs/zh-cn/Basic Services/9.Loan agreement inquiry.md new file mode 100644 index 000000000..b61844f7f --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/9.Loan agreement inquiry.md @@ -0,0 +1,4 @@ +--- +title: 查看合同 +sidebar_position: 9 +--- diff --git a/packages/artplayer-document/docs/zh-cn/Basic Services/_category_.json b/packages/artplayer-document/docs/zh-cn/Basic Services/_category_.json new file mode 100644 index 000000000..b854c06c2 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Basic Services/_category_.json @@ -0,0 +1,5 @@ +{ + "label": "基本接口", + "position": 5, + "collapsed": false +} diff --git a/packages/artplayer-document/docs/zh-cn/Data dictionary.md b/packages/artplayer-document/docs/zh-cn/Data dictionary.md new file mode 100644 index 000000000..e0c57037f --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Data dictionary.md @@ -0,0 +1,195 @@ +--- +title: 数据字典 +sidebar_position: 4 +--- + +## 婚姻状况 + +| 编码 | 描述 | 备注 | +| ---- | ------------- | ---- | +| 10 | Belum Menikah | | +| 11 | Menikah | | +| 12 | Cerai | | + +## 教育程度 + +| 编码 | 描述 | 备注 | +| ---- | ------------------ | ---- | +| 14 | Sekolah Dasar | | +| 16 | SMP | | +| 13 | SMA | | +| 15 | Diploma/Politehnik | | +| 10 | Sarjana | | +| 11 | Master | | +| 12 | Doctor | | +| 17 | Lain-Lain | | + +## 宅所有权 + +| 编码 | 描述 | 备注 | +| ---- | -------------- | ---- | +| 10 | Rumah Sendiri | | +| 11 | Rumah Keluarga | | +| 12 | Rumah Dinas | | +| 13 | Sewa/Kontrak | | +| 14 | Kost | | +| 15 | Status Kredit | | +| 16 | Lain-Lain | | + +## 宗教 + +| 编码 | 描述 | 备注 | +| ---- | ----------------- | ---- | +| 10 | Islam | | +| 11 | Kristen Protestan | | +| 12 | Kristen Katolik | | +| 13 | Hindu | | +| 14 | Budha | | +| 15 | Kong Hu Cu | | + +## 工作类型 + +| 编码 | 描述 | 备注 | +| ---- | ------------- | ---- | +| 10 | Tetap | | +| 11 | Kontrak | | +| 12 | Outsourcing | | +| 13 | Pekerja Lepas | | +| 14 | Pemilik Usaha | | + +## 职位 + +| 编码 | 描述 | 备注 | +| ---- | ------------------------ | ---- | +| 10 | Direktur/General Manager | | +| 11 | Manajer | | +| 12 | Asisten Manajer | | +| 13 | Staf | | +| 14 | Pemilik | | + +## 行业 + +| 编码 | 描述 | 备注 | +| ---- | ------------------------------------------- | ---- | +| 10 | Perdagangan Eceran / Grosir | | +| 11 | Perbankan / Keuangan / Asuransi / Investasi | | +| 12 | Manufaktur | | +| 13 | Properti / Konstruksi | | +| 14 | Pertambangan / Minyak / Gas | | +| 15 | Pendidikan | | +| 16 | Telekomunikasi | | +| 17 | Pariwisata / Hotel / Perhotelan | | +| 18 | Angkutan | | +| 19 | PNS (Pemerintah) | | +| 20 | Konsultan / Akuntansi / Jasa Profesional | | +| 21 | BUMN (Badan Usaha Milik Negara) | | +| 22 | Perkebunan / Pertanian | | +| 23 | TNI / Polisi (Militer / Polisi) | | +| 24 | Hukum | | +| 25 | Teknologi | | +| 26 | Media / Hiburan | | +| 27 | Pemasaran iklan | | +| 28 | Makanan & Minuman | | +| 29 | Layanan medis | | +| 30 | Perikanan | | + +## 办公场所所有权 + +| 编码 | 描述 | 备注 | +| ---- | ------------- | ---- | +| 10 | Milik Sendiri | | +| 11 | Sewa | | + +## 公司人数 + +| 编码 | 描述 | 备注 | +| ---- | ----- | ---- | +| 10 | 1-5 | | +| 11 | 5-10 | | +| 12 | 10-25 | | +| 13 | 25-50 | | +| 14 | >50 | | + +## 职业 + +| 编码 | 描述 | 备注 | +| ---- | ------------------------- | ---- | +| 11 | Pensiunan/Purnawirawan | | +| 12 | Pelayaran/Pelaut | | +| 13 | Guru/Pendidikan | | +| 14 | Jasa | | +| 15 | Dokter/Bidan/Mantri | | +| 16 | Ojek Motor | | +| 17 | Sopir | | +| 18 | Peternak | | +| 19 | Pelajar/Mahasiswa | | +| 20 | Buruh/PRT | | +| 21 | Pengrajin Tangan | | +| 23 | Pedagang | | +| 24 | Produksi | | +| 26 | Sewa/Rent | | +| 27 | Transportasi & Komunikasi | | +| 28 | Hiburan | | +| 29 | Pendidikan Non Formal | | +| 30 | Hotel | | +| 31 | Perangkat Desa | | +| 32 | TNI/Polri | | +| 33 | Atlet | | +| 34 | Pengobatan Alternatif | | +| 2 | ABRI | | +| 3 | Pengacara | | +| 35 | Jurnalis / Wartawan | | +| 37 | Profesi | | +| 36 | Wartawan | | +| 6 | Lain-Lain | | +| 38 | Pekerja Lepas | | + +## 收入来源 + +| 编码 | 描述 | 备注 | +| ---- | ---------------------------------- | ---- | +| 10 | Gaji/Upah | | +| 11 | Laba Usaha | | +| 12 | Uang Tabungan | | +| 13 | Menjual/Menggadaikan Aset | | +| 14 | Dari Keluarga/Teman/Sumber Lainnya | | + +## 紧急联系人关系 + +| 编码 | 描述 | 备注 | +| ---- | --------------- | ---- | +| 10 | Pasangan | | +| 11 | Orang Tua | | +| 12 | Saudara Kandung | | +| 13 | Anak | | +| 14 | Teman Kantor | | + +## 借款原因 + +| 编码 | 描述 | 备注 | +| ---- | ----------------------------------------- | ---- | +| 10 | Pembelian Handphone / Laptop / Elektronik | | +| 11 | Tagihan Rutin | | +| 12 | Liburan / Rekreasi | | +| 13 | Pembayaran Pajak | | +| 14 | Asuransi | | +| 15 | Pengobatan Medis | | +| 16 | Pendidikan | | +| 17 | Konsumsi Rumah Tangga | | +| 18 | Modal Usaha | | +| 19 | Multiguna | | + +## 文档类型 + +| 编码 | 描述 | 备注 | +| ----------------------- | ------------------------------------ | ---- | +| bank_statement_3_months | Bank statement for the last 3 months | | +| company_id_card | | | +| ID_PNS | | | +| receiptri | | | +| salary_certificate | | | +| salary_slip_3_months | Salary slip for the last 3 months | | +| self_SKU_SIUP_TDP | | | +| SK_PNS | | | +| driver_license | | | +| KTP | | | \ No newline at end of file diff --git a/packages/artplayer-document/docs/zh-cn/Overview.md b/packages/artplayer-document/docs/zh-cn/Overview.md new file mode 100644 index 000000000..f41bb0866 --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Overview.md @@ -0,0 +1,80 @@ +--- +title: 前言 +sidebar_position: 1 +slug: /zh-cn +--- + +## 必读 + +- 在生产环境发布前前,请先通过测试环境调试完所有接口及流程后待我方确认无误方可上生产环境 + +- 在开发过程中,可以使用接口调试工具来在线调试某些接口。 + +- 在开发出现问题时,可以通过接口调用的返回码查看失败原因或联系我方技术支持人员 + +- 所有接口都采用POST方式(包括查询接口) + +- 请求和响应的数据都为JSON格式。注:请设置Header的Content-Type为application/json,采用UTF-8字符编码 + +- 所有的接口必须进行接口签名 + +## 更新日志 + +| 版本 | 日期 | 项目负责人 | 描述 | +| ------- | ---------- | ------- | ------- | +| 1.0.0 | 2019.06.03 | 吕志博 | 初始版本 | + +## 接口说明 + +| **接口名称** | **描述** | +| -----------------| --------------- | +| user registration|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 用户创建,必须先创建用户成功后才能调用其他接口

    | +| Authorization list inquiry|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 否

    接口描述 : 获取授权列表及用户个人授权状态

    | +| Get the authorization detail page|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 否

    接口描述 : 授权第三方授权页面地址

    +| Call back for authorization status|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 否

    接口描述 : 通知授权结果

    | +| Bank card inquiry|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 查询绑卡信息

    | +| Get bank list|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 获取支持绑卡的银行列表

    | +| Bank card verification|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 用户绑定用于接收平台放款的银行卡

    | +| Submit loan|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 提交进件信息,进件信息包含(用户个人信息、身份信息、工作信息、紧急联系人信息)

    | +| Loan agreement inquiry|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 查看贷款合同

    | +| Sign agreement|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 合同签约(确认放款)

    | +| Get loan information|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 根据贷款编号查询贷款当前信息(如已放款则包含还款计划)

    | +| Get repayment VA|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : 用户还款虚拟账号查询

    | +| Push notification|

    Provider: Third party

    User : AWDA

    是否必须对接: 否

    接口描述 : 推送贷款状态变更消息

    | +| Eligible Check|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 是

    接口描述 : Verify Customer

    | +| Get the token for uploading image|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 否

    接口描述 : To get the token which used for api Upload Image (1)

    | +| Upload Image (1)|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 否

    接口描述 : By sending file stream with token

    | +| Upload Image (2)|

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 否

    接口描述 : By sending base64 or url format

    | +| Get the redirect url
    (For H5 pages of Digital Signature, Loan detail and Repayment detail) |

    接口提供方: AWDA

    接口调用方 : 合作方

    是否必须对接 : 否

    接口描述 : Redirect to the specific H5 pages

    | + +## 环境地址说明 + +测试环境域名:`https://sea-staging.wolaidai.com` + +生产环境域名:`https://japi.maucash.id` + +注:所有接口调用真实地址为 `环境域名+接口地址` + +## 全局状态码说明 + +| 返回码| 描述| +| ----|----| +| 0 |请求成功| +| 100| 系统繁忙| +| 300| 请求超时| +| 400| 参数错误| +| 404| 网络异常| +| 600| 数据不存在| +| 999| 其他未知错误| +| 1001| 重复请求| +| 1002| 无效的token| +| 1003| 时间戳有误或已失效(仅处理60S内的请求)| +| 1004| 签名校验不通过| +| 1005| 商户号错误| +| 1006| 参数不能为空| +| 1007| 参数有误| +| 1008| 用户已存在| +| 1009| 用户不存在| +| 1010| 订单不存在| +| 1011| 系统繁忙| +| 1012| 授权信息获取失败| \ No newline at end of file diff --git a/packages/artplayer-document/docs/zh-cn/Parameters Instructions.md b/packages/artplayer-document/docs/zh-cn/Parameters Instructions.md new file mode 100644 index 000000000..4f4c7500d --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/Parameters Instructions.md @@ -0,0 +1,100 @@ +--- +title: 入参及出参说明 +sidebar_position: 3 +--- + +### API请求参数说明 + +:::note +注:所有的API接口都包含如下参数(不同的接口只是参数body值不一样),以下具体接口只针对body进行描述若接口,当没有业务参数的时候, body需要赋值为空字符串,即body: "" +::: + +| 参数名称 | 描述 | 类型 | 必填 | 备注 | +| --------- | --------------- | ------ | ---- | -------------------- | +| body | 业务参数 | Object | 否 | 具体接口决定是否必传 | +| timestamp | 时间戳 | Long | 是 | 精确到秒 | +| appId | 平台分配的appId | String | 是 | +| v | 接口版本号 | String | 否 | 默认1.0 | +| signature | 签名 | String | 是 | 见签名生成 | + +例: + +```json +{ + "body": "1111", + "timestamp": 1488363493, + "signature": "B3C14758F4AF52AE8AA0D4CD1493B137", + "appId": "111", + "v":"1.0" +} +``` + +### 接口签名规则 + +签名生成的通用步骤如下: + +- 第一步:将参与签名的参数按照键值(key)进行字典排序 +- 第二步:将排序过后的参数,进行key和value字符串拼接 +- 第三步:将拼接后的字符串末尾加上secret秘钥,合成签名字符串 +- 第四步:对签名字符串进行MD5加密,生成32位的字符串转换为大写 + +### 签名生成过程 + +第一步:将参与签名的参数按照键值(key)进行字典排序 + +例如:将上述请求参数中的body、timestamp、appId、v 进行字典排序。结果为:appId、body、timestamp (精确到秒)、v + +第二步:将排序过后的参数,进行key和value字符串拼接 + +将参数中的key和value按照key的顺序进行字符串拼接。若body为对象的话转成JSON字符串进行签名即可 + +例:appId:123456body:{"orderNo":"1234567"}timestamp:1558923813v:1.0 + +第三步:将拼接后的字符串尾部加上secret秘钥,合成签名字符串 + +将第二步的字符窜首尾拼接上secret。结果为:appId:123456body:{"orderNo":"1234567"}timestamp:1558923813v:1.0yousecret + +第四步:对签名字符串进行MD5加密,生成32位的字符串,并转换大写 + +对生成签名字符串进行MD5加密。结果为:B6F6E3F9ADF4D7558F54BC8B7D9869CC + +### Java 签名代码 + +```java +String[] keys = new String[map.size()]; +int i = 0; +for (Map.Entry entry : map.entrySet()) { + keys[i++] = entry.getKey(); +} +Arrays.sort(keys); +StringBuilder stringBuilder = new StringBuilder(); +for (String key : keys) { + stringBuilder.append(key); + stringBuilder.append(":"); + stringBuilder.append(map.get(key)); +} +stringBuilder.append(secret); +String str=stringBuilder.toString(); +String encodeStr = DigestUtils.md5Hex(str).toUpperCase(); +return encodeStr ; +``` + +### API响应结果说明 + +| 参数名称 | 描述 | 类型 | 必填 | 备注 | +| -------- | -------- | ------- | ---- | --------------------------------------------------- | +| code | 状态码 | Integer | 是 |

    0:执行成功

    其他编码均为失败,详见码表

    | +| message | 状态描述 | String | 是 | 用于描述code | +| result | 详细信息 | Object | 否 | 当code为0时 result为返回的业务数据。 | + +正确响应的JSON - 例: + +```json +{ + "code": 0, + "message": "Permintaan berhasil", + "result": { + "state": true + } +} +``` \ No newline at end of file diff --git a/packages/artplayer-document/docs/zh-cn/UML Diagram.md b/packages/artplayer-document/docs/zh-cn/UML Diagram.md new file mode 100644 index 000000000..ad54c20ce --- /dev/null +++ b/packages/artplayer-document/docs/zh-cn/UML Diagram.md @@ -0,0 +1,24 @@ +--- +title: 参考对接UML时序图 +sidebar_position: 2 +--- + +### Wedefend授权 + +![logo](/img/Authorization.png) + +### 绑定银行卡 + +![logo](/img/SubmitBankCard.png) + +### 申请借款 + +![logo](/img/ApplyForLloan.png) + +### 合同签约 + +![logo](/img/ContractContract.png) + +### 还款信息 + +![logo](/img/RepaymentInformation.png) \ No newline at end of file diff --git a/packages/artplayer-document/docusaurus.config.js b/packages/artplayer-document/docusaurus.config.js index abef4eec9..dd7ed5aca 100644 --- a/packages/artplayer-document/docusaurus.config.js +++ b/packages/artplayer-document/docusaurus.config.js @@ -1,106 +1,84 @@ const lightCodeTheme = require('prism-react-renderer/themes/github'); const darkCodeTheme = require('prism-react-renderer/themes/dracula'); -const config = { - title: 'Artplayer.js Document', - tagline: 'ArtPlayer.js is an modern and full featured HTML5 video player', +module.exports = { + title: 'Artplayer.js', + tagline: 'Public Product Api Document', url: 'https://artplayer.org', baseUrl: '/document/', onBrokenLinks: 'ignore', onBrokenMarkdownLinks: 'ignore', favicon: 'img/favicon.ico', - organizationName: 'zhw2590582', - projectName: 'artplayer', - presets: [ - [ - '@docusaurus/preset-classic', - { - docs: { - sidebarPath: require.resolve('./sidebars.js'), - editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/', - }, - blog: { - showReadingTime: true, - editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/blog/', - }, - theme: { - customCss: require.resolve('./src/css/custom.css'), - }, - }, - ], - ], + clientModules: [require.resolve('./src/script/main.js')], themeConfig: { + hideableSidebar: true, navbar: { - title: 'My Site', - logo: { - alt: 'My Site Logo', - src: 'img/logo.svg', - }, + title: 'Artplayer.js', items: [ { - type: 'doc', - docId: 'intro', + href: 'https://artplayer.org', position: 'left', - label: 'Tutorial', + label: 'Online Editor', }, - { to: '/blog', label: 'Blog', position: 'left' }, { - href: 'https://github.com/facebook/docusaurus', - label: 'GitHub', + href: 'https://github.com/zhw2590582/ArtPlayer', + position: 'left', + label: 'Github', + }, + { + label: 'QQ群: 320881312', position: 'right', }, + { + label: 'v 4.x.x', + position: 'right', + items: [ + { + label: 'v 3.x.x', + href: 'https://artplayer.org/document_v3/', + }, + ], + }, + { + label: 'English', + position: 'right', + items: [ + { + label: 'English', + href: '/', + }, + { + label: '中文', + href: '/zh-cn/', + }, + ], + }, ], }, footer: { style: 'dark', - links: [ - { - title: 'Docs', - items: [ - { - label: 'Tutorial', - to: '/docs/intro', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'Stack Overflow', - href: 'https://stackoverflow.com/questions/tagged/docusaurus', - }, - { - label: 'Discord', - href: 'https://discordapp.com/invite/docusaurus', - }, - { - label: 'Twitter', - href: 'https://twitter.com/docusaurus', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'Blog', - to: '/blog', - }, - { - label: 'GitHub', - href: 'https://github.com/facebook/docusaurus', - }, - ], - }, - ], - copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`, + copyright: `Copyright © ${new Date().getFullYear()} Artplayer.js, Inc. Built with Docusaurus.`, }, prism: { theme: lightCodeTheme, darkTheme: darkCodeTheme, }, }, + plugins: [require.resolve('docusaurus-lunr-search')], + presets: [ + [ + '@docusaurus/preset-classic', + { + docs: { + path: './docs', + routeBasePath: '/', + sidebarPath: require.resolve('./sidebars.js'), + }, + blog: false, + theme: { + customCss: require.resolve('./src/css/custom.css'), + }, + }, + ], + ], }; - -module.exports = config; diff --git a/packages/artplayer-document/package.json b/packages/artplayer-document/package.json index 4a3c461e7..941e57204 100644 --- a/packages/artplayer-document/package.json +++ b/packages/artplayer-document/package.json @@ -1,23 +1,25 @@ { "name": "artplayer-document", - "version": "4.0.0", + "version": "1.0.0", + "private": true, "scripts": { "docusaurus": "docusaurus", - "start": "docusaurus start", - "build": "docusaurus build", - "swizzle": "docusaurus swizzle", - "deploy": "docusaurus deploy", - "clear": "docusaurus clear", - "serve": "docusaurus serve", - "write-translations": "docusaurus write-translations", - "write-heading-ids": "docusaurus write-heading-ids" + "start": "npx docusaurus start", + "build": "npx docusaurus build", + "swizzle": "npx docusaurus swizzle", + "deploy": "npx docusaurus deploy", + "clear": "npx docusaurus clear", + "serve": "npx docusaurus serve", + "write-translations": "npx docusaurus write-translations", + "write-heading-ids": "npx docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "2.0.0-beta.9", - "@docusaurus/preset-classic": "2.0.0-beta.9", + "@docusaurus/core": "2.0.0-beta.3", + "@docusaurus/preset-classic": "2.0.0-beta.3", "@mdx-js/react": "^1.6.21", "@svgr/webpack": "^5.5.0", "clsx": "^1.1.1", + "docusaurus-lunr-search": "^2.1.14", "file-loader": "^6.2.0", "prism-react-renderer": "^1.2.1", "react": "^17.0.1", @@ -36,4 +38,4 @@ "last 1 safari version" ] } -} \ No newline at end of file +} diff --git a/packages/artplayer-document/sidebars.js b/packages/artplayer-document/sidebars.js index fd342f2cd..25226f070 100644 --- a/packages/artplayer-document/sidebars.js +++ b/packages/artplayer-document/sidebars.js @@ -1,31 +1,4 @@ -/** - * Creating a sidebar enables you to: - - create an ordered group of docs - - render a sidebar for each doc of that group - - provide next/previous navigation - - The sidebars can be generated from the filesystem, or explicitly defined here. - - Create as many sidebars as you want. - */ - -// @ts-check - -/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ -const sidebars = { - // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], - - // But you can create a sidebar manually - /* - tutorialSidebar: [ - { - type: 'category', - label: 'Tutorial', - items: ['hello'], - }, - ], - */ +module.exports = { + en: [{ type: "autogenerated", dirName: "en" }], + "zh-cn": [{ type: "autogenerated", dirName: "zh-cn" }], }; - -module.exports = sidebars; diff --git a/packages/artplayer-document/src/components/HomepageFeatures.js b/packages/artplayer-document/src/components/HomepageFeatures.js deleted file mode 100644 index 16f820b10..000000000 --- a/packages/artplayer-document/src/components/HomepageFeatures.js +++ /dev/null @@ -1,64 +0,0 @@ -import React from 'react'; -import clsx from 'clsx'; -import styles from './HomepageFeatures.module.css'; - -const FeatureList = [ - { - title: 'Easy to Use', - Svg: require('../../static/img/undraw_docusaurus_mountain.svg').default, - description: ( - <> - Docusaurus was designed from the ground up to be easily installed and - used to get your website up and running quickly. - - ), - }, - { - title: 'Focus on What Matters', - Svg: require('../../static/img/undraw_docusaurus_tree.svg').default, - description: ( - <> - Docusaurus lets you focus on your docs, and we'll do the chores. Go - ahead and move your docs into the docs directory. - - ), - }, - { - title: 'Powered by React', - Svg: require('../../static/img/undraw_docusaurus_react.svg').default, - description: ( - <> - Extend or customize your website layout by reusing React. Docusaurus can - be extended while reusing the same header and footer. - - ), - }, -]; - -function Feature({Svg, title, description}) { - return ( -
    -
    - -
    -
    -

    {title}

    -

    {description}

    -
    -
    - ); -} - -export default function HomepageFeatures() { - return ( -
    -
    -
    - {FeatureList.map((props, idx) => ( - - ))} -
    -
    -
    - ); -} diff --git a/packages/artplayer-document/src/components/HomepageFeatures.module.css b/packages/artplayer-document/src/components/HomepageFeatures.module.css deleted file mode 100644 index b248eb2e5..000000000 --- a/packages/artplayer-document/src/components/HomepageFeatures.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -} diff --git a/packages/artplayer-document/src/css/custom.css b/packages/artplayer-document/src/css/custom.css index 6abe14854..29d8472dd 100644 --- a/packages/artplayer-document/src/css/custom.css +++ b/packages/artplayer-document/src/css/custom.css @@ -1,3 +1,4 @@ +/* stylelint-disable docusaurus/copyright-header */ /** * Any CSS included here will be global. The classic template * bundles Infima by default. Infima is a CSS framework designed to @@ -23,6 +24,37 @@ padding: 0 var(--ifm-pre-padding); } -html[data-theme='dark'] .docusaurus-highlight-code-line { +html[data-theme="dark"] .docusaurus-highlight-code-line { background-color: rgba(0, 0, 0, 0.3); } + +table { + display: table; + font-size: 15px; +} + +table th { + text-align: left; +} + +table thead tr { + border-bottom-width: 1px !important; +} + +table p { + margin-bottom: 0px; +} + +.markdown li > p { + margin-top: 10px; + margin-bottom: 10px; +} + +.markdown > p { + margin-bottom: 10px; +} + +.navbar__search { + padding-left: 1rem; + padding-left: var(--ifm-navbar-padding-horizontal); +} diff --git a/packages/artplayer-document/src/pages/index.js b/packages/artplayer-document/src/pages/index.js deleted file mode 100644 index 27c21e8f9..000000000 --- a/packages/artplayer-document/src/pages/index.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from 'react'; -import clsx from 'clsx'; -import Layout from '@theme/Layout'; -import Link from '@docusaurus/Link'; -import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import styles from './index.module.css'; -import HomepageFeatures from '../components/HomepageFeatures'; - -function HomepageHeader() { - const {siteConfig} = useDocusaurusContext(); - return ( -
    -
    -

    {siteConfig.title}

    -

    {siteConfig.tagline}

    -
    - - Docusaurus Tutorial - 5min ⏱️ - -
    -
    -
    - ); -} - -export default function Home() { - const {siteConfig} = useDocusaurusContext(); - return ( - - -
    - -
    -
    - ); -} diff --git a/packages/artplayer-document/src/pages/index.module.css b/packages/artplayer-document/src/pages/index.module.css deleted file mode 100644 index 666feb6a1..000000000 --- a/packages/artplayer-document/src/pages/index.module.css +++ /dev/null @@ -1,23 +0,0 @@ -/** - * CSS files with the .module.css suffix will be treated as CSS modules - * and scoped locally. - */ - -.heroBanner { - padding: 4rem 0; - text-align: center; - position: relative; - overflow: hidden; -} - -@media screen and (max-width: 966px) { - .heroBanner { - padding: 2rem; - } -} - -.buttons { - display: flex; - align-items: center; - justify-content: center; -} diff --git a/packages/artplayer-document/src/pages/markdown-page.md b/packages/artplayer-document/src/pages/markdown-page.md deleted file mode 100644 index 9756c5b66..000000000 --- a/packages/artplayer-document/src/pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. diff --git a/packages/artplayer-document/src/script/bugfix.js b/packages/artplayer-document/src/script/bugfix.js new file mode 100644 index 000000000..553eff901 --- /dev/null +++ b/packages/artplayer-document/src/script/bugfix.js @@ -0,0 +1,36 @@ +const i18n = { + English: "中文", +}; + +function changeI18n() { + const zh = window.location.pathname.startsWith("/zh-cn/"); + const links = Array.from(document.querySelectorAll(".navbar__link")); + links.forEach((item) => { + const text = item.textContent.trim(); + if (zh) { + if (i18n[text]) { + item.textContent = i18n[text]; + item.dataset.en = text; + } + } else { + if (item.dataset.en && item.dataset.en !== text) { + item.textContent = item.dataset.en; + } + } + }); +} + +window.addEventListener("load", () => { + setTimeout(changeI18n, 300); + document.addEventListener("click", (event) => { + const { className } = event.target; + if (!className || typeof className !== "string") return; + if ( + className.includes("navbar__link") || + className.includes("dropdown__link") || + className.includes("navbar__title") + ) { + setTimeout(changeI18n, 300); + } + }); +}); diff --git a/packages/artplayer-document/src/script/main.js b/packages/artplayer-document/src/script/main.js new file mode 100644 index 000000000..e9183aa00 --- /dev/null +++ b/packages/artplayer-document/src/script/main.js @@ -0,0 +1,3 @@ +if (typeof window !== "undefined") { + require("./bugfix"); +} diff --git a/packages/artplayer-document/src/theme/SearchBar/algolia.css b/packages/artplayer-document/src/theme/SearchBar/algolia.css new file mode 100644 index 000000000..8f3038edc --- /dev/null +++ b/packages/artplayer-document/src/theme/SearchBar/algolia.css @@ -0,0 +1,533 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* Bottom border of each suggestion */ +.algolia-docsearch-suggestion { + border-bottom-color: #3a3dd1; +} +/* Main category headers */ +.algolia-docsearch-suggestion--category-header { + background-color: #4b54de; +} +/* Highlighted search terms */ +.algolia-docsearch-suggestion--highlight { + color: #3a33d1; +} +/* Highligted search terms in the main category headers */ +.algolia-docsearch-suggestion--category-header + .algolia-docsearch-suggestion--highlight { + background-color: #4d47d5; +} +/* Currently selected suggestion */ +.aa-cursor .algolia-docsearch-suggestion--content { + color: #272296; +} +.aa-cursor .algolia-docsearch-suggestion { + background: #ebebfb; +} + +/* For bigger screens, when displaying results in two columns */ +@media (min-width: 768px) { + /* Bottom border of each suggestion */ + .algolia-docsearch-suggestion { + border-bottom-color: #7671df; + } + /* Left column, with secondary category header */ + .algolia-docsearch-suggestion--subcategory-column { + border-right-color: #7671df; + color: #4e4726; + } +} + +.searchbox { + display: inline-block; + position: relative; + width: 200px; + height: 32px !important; + white-space: nowrap; + box-sizing: border-box; + visibility: visible !important; +} + +.searchbox .algolia-autocomplete { + display: block; + width: 100%; + height: 100%; +} + +.searchbox__wrapper { + width: 100%; + height: 100%; + z-index: 999; + position: relative; +} + +.searchbox__input { + display: inline-block; + box-sizing: border-box; + -webkit-transition: box-shadow 0.4s ease, background 0.4s ease; + transition: box-shadow 0.4s ease, background 0.4s ease; + border: 0; + border-radius: 16px; + box-shadow: inset 0 0 0 1px #cccccc; + background: #ffffff !important; + padding: 0; + padding-right: 26px; + padding-left: 32px; + width: 100%; + height: 100%; + vertical-align: middle; + white-space: normal; + font-size: 12px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.searchbox__input::-webkit-search-decoration, +.searchbox__input::-webkit-search-cancel-button, +.searchbox__input::-webkit-search-results-button, +.searchbox__input::-webkit-search-results-decoration { + display: none; +} + +.searchbox__input:hover { + box-shadow: inset 0 0 0 1px #b3b3b3; +} + +.searchbox__input:focus, +.searchbox__input:active { + outline: 0; + box-shadow: inset 0 0 0 1px #aaaaaa; + background: #ffffff; +} + +.searchbox__input::-webkit-input-placeholder { + color: #aaaaaa; +} + +.searchbox__input::-moz-placeholder { + color: #aaaaaa; +} + +.searchbox__input:-ms-input-placeholder { + color: #aaaaaa; +} + +.searchbox__input::placeholder { + color: #aaaaaa; +} + +.searchbox__submit { + position: absolute; + top: 0; + margin: 0; + border: 0; + border-radius: 16px 0 0 16px; + background-color: rgba(69, 142, 225, 0); + padding: 0; + width: 32px; + height: 100%; + vertical-align: middle; + text-align: center; + font-size: inherit; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + right: inherit; + left: 0; +} + +.searchbox__submit::before { + display: inline-block; + margin-right: -4px; + height: 100%; + vertical-align: middle; + content: ''; +} + +.searchbox__submit:hover, +.searchbox__submit:active { + cursor: pointer; +} + +.searchbox__submit:focus { + outline: 0; +} + +.searchbox__submit svg { + width: 14px; + height: 14px; + vertical-align: middle; + fill: #6d7e96; +} + +.searchbox__reset { + display: block; + position: absolute; + top: 8px; + right: 8px; + margin: 0; + border: 0; + background: none; + cursor: pointer; + padding: 0; + font-size: inherit; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + fill: rgba(0, 0, 0, 0.5); +} + +.searchbox__reset.hide { + display: none; +} + +.searchbox__reset:focus { + outline: 0; +} + +.searchbox__reset svg { + display: block; + margin: 4px; + width: 8px; + height: 8px; +} + +.searchbox__input:valid ~ .searchbox__reset { + display: block; + -webkit-animation-name: sbx-reset-in; + animation-name: sbx-reset-in; + -webkit-animation-duration: 0.15s; + animation-duration: 0.15s; +} + +@-webkit-keyframes sbx-reset-in { + 0% { + -webkit-transform: translate3d(-20%, 0, 0); + transform: translate3d(-20%, 0, 0); + opacity: 0; + } + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +@keyframes sbx-reset-in { + 0% { + -webkit-transform: translate3d(-20%, 0, 0); + transform: translate3d(-20%, 0, 0); + opacity: 0; + } + 100% { + -webkit-transform: none; + transform: none; + opacity: 1; + } +} + +.algolia-autocomplete .ds-dropdown-menu:before { + display: block; + position: absolute; + content: ''; + width: 14px; + height: 14px; + background: #373940; + z-index: 1000; + top: -7px; + border-top: 1px solid #373940; + border-right: 1px solid #373940; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + border-radius: 2px; +} + +.algolia-autocomplete .ds-dropdown-menu { + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.2), 0 2px 3px 0 rgba(0, 0, 0, 0.1); +} + +@media (min-width: 601px) { + .algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu { + right: 0 !important; + left: inherit !important; + } + + .algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before { + right: 48px; + } + + .algolia-autocomplete .ds-dropdown-menu { + position: relative; + top: -6px; + border-radius: 4px; + margin: 6px 0 0; + padding: 0; + text-align: left; + height: auto; + position: relative; + background: transparent; + border: none; + z-index: 999; + max-width: 600px; + min-width: 500px; + } +} + +@media (max-width: 600px) { + .algolia-autocomplete .ds-dropdown-menu { + z-index: 100; + position: fixed !important; + top: 50px !important; + left: auto !important; + right: 1rem !important; + width: 600px; + max-width: calc(100% - 2rem); + max-height: calc(100% - 5rem); + display: block; + } + + .algolia-autocomplete .ds-dropdown-menu:before { + right: 6rem; + } +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestions { + position: relative; + z-index: 1000; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestion { + cursor: pointer; +} + +.algolia-autocomplete .ds-dropdown-menu [class^='ds-dataset-'] { + position: relative; + border-radius: 4px; + overflow: auto; + padding: 0; + background: #ffffff; +} + +.algolia-autocomplete .ds-dropdown-menu * { + box-sizing: border-box; +} + +.algolia-autocomplete .algolia-docsearch-suggestion { + display: block; + position: relative; + padding: 0; + overflow: hidden; + text-decoration: none; +} + +.algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--wrapper { + background: #f1f1f1; + box-shadow: inset -2px 0 0 #61dafb; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--highlight { + background: #ffe564; + padding: 0.1em 0.05em; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion--category-header + .algolia-docsearch-suggestion--category-header-lvl0 + .algolia-docsearch-suggestion--highlight, +.algolia-autocomplete + .algolia-docsearch-suggestion--category-header + .algolia-docsearch-suggestion--category-header-lvl1 + .algolia-docsearch-suggestion--highlight { + color: inherit; + background: inherit; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion--text + .algolia-docsearch-suggestion--highlight { + padding: 0 0 1px; + background: inherit; + box-shadow: inset 0 -2px 0 0 rgba(69, 142, 225, 0.8); + color: inherit; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content { + display: block; + float: right; + width: 70%; + position: relative; + padding: 5.33333px 0 5.33333px 10.66667px; + cursor: pointer; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content:before { + content: ''; + position: absolute; + display: block; + top: 0; + height: 100%; + width: 1px; + background: #ececec; + left: -1px; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--category-header { + position: relative; + display: none; + font-size: 14px; + letter-spacing: 0.08em; + font-weight: 700; + background-color: #373940; + text-transform: uppercase; + color: #fff; + margin: 0; + padding: 5px 8px; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--wrapper { + background-color: #fff; + width: 100%; + float: left; + padding: 8px 0 0 0; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { + float: left; + width: 30%; + display: none; + padding-left: 0; + text-align: right; + position: relative; + padding: 5.33333px 10.66667px; + color: #777; + font-size: 0.9em; + word-wrap: break-word; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before { + content: ''; + position: absolute; + display: block; + top: 0; + height: 100%; + width: 1px; + background: #ececec; + right: 0; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main + .algolia-docsearch-suggestion--category-header, +.algolia-autocomplete + .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary { + display: block; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion--subcategory-column + .algolia-docsearch-suggestion--highlight { + background-color: inherit; + color: inherit; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline { + display: none; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--title { + margin-bottom: 4px; + color: #02060c; + font-size: 0.9em; + font-weight: bold; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--text { + display: block; + line-height: 1.2em; + font-size: 0.85em; + color: #63676d; + padding-right: 2px; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--no-results { + width: 100%; + padding: 8px 0; + text-align: center; + font-size: 1.2em; + background-color: #373940; + margin-top: -8px; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion--no-results + .algolia-docsearch-suggestion--text { + color: #ffffff; + margin-top: 4px; +} + +.algolia-autocomplete .algolia-docsearch-suggestion--no-results::before { + display: none; +} + +.algolia-autocomplete .algolia-docsearch-suggestion code { + padding: 1px 5px; + font-size: 90%; + border: none; + color: #222222; + background-color: #ebebeb; + border-radius: 3px; + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion + code + .algolia-docsearch-suggestion--highlight { + background: none; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main + .algolia-docsearch-suggestion--category-header { + color: white; + display: block; +} + +.algolia-autocomplete + .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary + .algolia-docsearch-suggestion--subcategory-column { + display: block; +} + +.algolia-autocomplete .algolia-docsearch-footer { + background-color: #fff; + width: 100%; + height: 30px; + z-index: 2000; + float: right; + font-size: 0; + line-height: 0; +} + +.algolia-autocomplete .algolia-docsearch-footer--logo { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 18'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='-36.87%25' x2='129.43%25' y1='134.94%25' y2='-27.7%25'%3E%3Cstop stop-color='%252300AEFF' offset='0%25'/%3E%3Cstop stop-color='%25233369E7' offset='100%25'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='url(%2523a)' d='M59.4.02h13.3a2.37 2.37 0 0 1 2.38 2.37V15.6a2.37 2.37 0 0 1-2.38 2.36H59.4a2.37 2.37 0 0 1-2.38-2.36V2.38A2.37 2.37 0 0 1 59.4.02z'/%3E%3Cpath fill='%2523FFF' d='M66.26 4.56c-2.82 0-5.1 2.27-5.1 5.08 0 2.8 2.28 5.07 5.1 5.07 2.8 0 5.1-2.26 5.1-5.07 0-2.8-2.28-5.07-5.1-5.07zm0 8.65c-2 0-3.6-1.6-3.6-3.56 0-1.97 1.6-3.58 3.6-3.58 1.98 0 3.6 1.6 3.6 3.58a3.58 3.58 0 0 1-3.6 3.57zm0-6.4v2.66c0 .07.08.13.15.1l2.4-1.24c.04-.02.06-.1.03-.14a2.96 2.96 0 0 0-2.46-1.5c-.06 0-.1.05-.1.1zm-3.33-1.96l-.3-.3a.78.78 0 0 0-1.12 0l-.36.36a.77.77 0 0 0 0 1.1l.3.3c.05.05.13.04.17 0 .2-.25.4-.5.6-.7.23-.23.46-.43.7-.6.07-.04.07-.1.03-.16zm5-.8V3.4a.78.78 0 0 0-.78-.78h-1.83a.78.78 0 0 0-.78.78v.63c0 .07.06.12.14.1a5.74 5.74 0 0 1 1.58-.22c.52 0 1.04.07 1.54.2a.1.1 0 0 0 .13-.1z'/%3E%3Cpath fill='%2523182359' d='M102.16 13.76c0 1.46-.37 2.52-1.12 3.2-.75.67-1.9 1-3.44 1-.56 0-1.74-.1-2.67-.3l.34-1.7c.78.17 1.82.2 2.36.2.86 0 1.48-.16 1.84-.5.37-.36.55-.88.55-1.57v-.35a6.37 6.37 0 0 1-.84.3 4.15 4.15 0 0 1-1.2.17 4.5 4.5 0 0 1-1.6-.28 3.38 3.38 0 0 1-1.26-.82 3.74 3.74 0 0 1-.8-1.35c-.2-.54-.3-1.5-.3-2.2 0-.67.1-1.5.3-2.06a3.92 3.92 0 0 1 .9-1.43 4.12 4.12 0 0 1 1.45-.92 5.3 5.3 0 0 1 1.94-.37c.7 0 1.35.1 1.97.2a15.86 15.86 0 0 1 1.6.33v8.46zm-5.95-4.2c0 .9.2 1.88.6 2.3.4.4.9.62 1.53.62.34 0 .66-.05.96-.15a2.75 2.75 0 0 0 .73-.33V6.7a8.53 8.53 0 0 0-1.42-.17c-.76-.02-1.36.3-1.77.8-.4.5-.62 1.4-.62 2.23zm16.13 0c0 .72-.1 1.26-.32 1.85a4.4 4.4 0 0 1-.9 1.53c-.38.42-.85.75-1.4.98-.54.24-1.4.37-1.8.37-.43 0-1.27-.13-1.8-.36a4.1 4.1 0 0 1-1.4-.97 4.5 4.5 0 0 1-.92-1.52 5.04 5.04 0 0 1-.33-1.84c0-.72.1-1.4.32-2 .22-.6.53-1.1.92-1.5.4-.43.86-.75 1.4-.98a4.55 4.55 0 0 1 1.78-.34 4.7 4.7 0 0 1 1.8.34c.54.23 1 .55 1.4.97.38.42.68.92.9 1.5.23.6.35 1.3.35 2zm-2.2 0c0-.92-.2-1.7-.6-2.22-.38-.54-.94-.8-1.64-.8-.72 0-1.27.26-1.67.8-.4.54-.58 1.3-.58 2.22 0 .93.2 1.56.6 2.1.38.54.94.8 1.64.8s1.25-.26 1.65-.8c.4-.55.6-1.17.6-2.1zm6.97 4.7c-3.5.02-3.5-2.8-3.5-3.27L113.57.92l2.15-.34v10c0 .25 0 1.87 1.37 1.88v1.8zm3.77 0h-2.15v-9.2l2.15-.33v9.54zM119.8 3.74c.7 0 1.3-.58 1.3-1.3 0-.7-.58-1.3-1.3-1.3-.73 0-1.3.6-1.3 1.3 0 .72.58 1.3 1.3 1.3zm6.43 1c.7 0 1.3.1 1.78.27.5.18.88.42 1.17.73.28.3.5.74.6 1.18.13.46.2.95.2 1.5v5.47a25.24 25.24 0 0 1-1.5.25c-.67.1-1.42.15-2.25.15a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.37-.27-.9-.27-1.44 0-.52.1-.85.3-1.2.2-.37.48-.67.83-.9a3.6 3.6 0 0 1 1.23-.5 7.07 7.07 0 0 1 2.2-.1l.83.16v-.35c0-.25-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.18-.34-.3-.58-.4a2.54 2.54 0 0 0-.92-.17c-.5 0-.94.06-1.35.13-.4.08-.75.16-1 .25l-.27-1.74c.27-.1.67-.18 1.2-.28a9.34 9.34 0 0 1 1.65-.14zm.18 7.74c.66 0 1.15-.04 1.5-.1V10.2a5.1 5.1 0 0 0-2-.1c-.23.03-.45.1-.64.2a1.17 1.17 0 0 0-.47.38c-.13.17-.18.26-.18.52 0 .5.17.8.5.98.32.2.74.3 1.3.3zM84.1 4.8c.72 0 1.3.08 1.8.26.48.17.87.42 1.15.73.3.3.5.72.6 1.17.14.45.2.94.2 1.47v5.48a25.24 25.24 0 0 1-1.5.26c-.67.1-1.42.14-2.25.14a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.38-.27-.9-.27-1.44 0-.53.1-.86.3-1.22.2-.36.5-.65.84-.88a3.6 3.6 0 0 1 1.24-.5 7.07 7.07 0 0 1 2.2-.1c.26.03.54.08.84.15v-.35c0-.24-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.17-.34-.3-.58-.4a2.54 2.54 0 0 0-.9-.15c-.5 0-.96.05-1.37.12-.4.07-.75.15-1 .24l-.26-1.75c.27-.08.67-.17 1.18-.26a8.9 8.9 0 0 1 1.66-.15zm.2 7.73c.65 0 1.14-.04 1.48-.1v-2.17a5.1 5.1 0 0 0-1.98-.1c-.24.03-.46.1-.65.18a1.17 1.17 0 0 0-.47.4c-.12.17-.17.26-.17.52 0 .5.18.8.5.98.32.2.75.3 1.3.3zm8.68 1.74c-3.5 0-3.5-2.82-3.5-3.28L89.45.92 91.6.6v10c0 .25 0 1.87 1.38 1.88v1.8z'/%3E%3Cpath fill='%25231D3657' d='M5.03 11.03c0 .7-.26 1.24-.76 1.64-.5.4-1.2.6-2.1.6-.88 0-1.6-.14-2.17-.42v-1.2c.36.16.74.3 1.14.38.4.1.78.15 1.13.15.5 0 .88-.1 1.12-.3a.94.94 0 0 0 .35-.77.98.98 0 0 0-.33-.74c-.22-.2-.68-.44-1.37-.72-.72-.3-1.22-.62-1.52-1C.23 8.27.1 7.82.1 7.3c0-.65.22-1.17.7-1.55.46-.37 1.08-.56 1.86-.56.76 0 1.5.16 2.25.48l-.4 1.05c-.7-.3-1.32-.44-1.87-.44-.4 0-.73.08-.94.26a.9.9 0 0 0-.33.72c0 .2.04.38.12.52.08.15.22.3.42.4.2.14.55.3 1.06.52.58.24 1 .47 1.27.67.27.2.47.44.6.7.12.26.18.57.18.92zM9 13.27c-.92 0-1.64-.27-2.16-.8-.52-.55-.78-1.3-.78-2.24 0-.97.24-1.73.72-2.3.5-.54 1.15-.82 2-.82.78 0 1.4.25 1.85.72.46.48.7 1.14.7 1.97v.67H7.35c0 .58.17 1.02.46 1.33.3.3.7.47 1.24.47.36 0 .68-.04.98-.1a5.1 5.1 0 0 0 .98-.33v1.02a3.87 3.87 0 0 1-.94.32 5.72 5.72 0 0 1-1.08.1zm-.22-5.2c-.4 0-.73.12-.97.38s-.37.62-.42 1.1h2.7c0-.48-.13-.85-.36-1.1-.23-.26-.54-.38-.94-.38zm7.7 5.1l-.26-.84h-.05c-.28.36-.57.6-.86.74-.28.13-.65.2-1.1.2-.6 0-1.05-.16-1.38-.48-.32-.32-.5-.77-.5-1.34 0-.62.24-1.08.7-1.4.45-.3 1.14-.47 2.07-.5l1.02-.03V9.2c0-.37-.1-.65-.27-.84-.17-.2-.45-.28-.82-.28-.3 0-.6.04-.88.13a6.68 6.68 0 0 0-.8.33l-.4-.9a4.4 4.4 0 0 1 1.05-.4 4.86 4.86 0 0 1 1.08-.12c.76 0 1.33.18 1.7.5.4.33.6.85.6 1.56v4h-.9zm-1.9-.87c.47 0 .83-.13 1.1-.38.3-.26.43-.62.43-1.08v-.52l-.76.03c-.6.03-1.02.13-1.3.3s-.4.45-.4.82c0 .26.08.47.24.6.16.16.4.23.7.23zm7.57-5.2c.25 0 .46.03.62.06l-.12 1.18a2.38 2.38 0 0 0-.56-.06c-.5 0-.92.16-1.24.5-.3.32-.47.75-.47 1.27v3.1h-1.27V7.23h1l.16 1.05h.05c.2-.36.45-.64.77-.85a1.83 1.83 0 0 1 1.02-.3zm4.12 6.17c-.9 0-1.58-.27-2.05-.8-.47-.52-.7-1.27-.7-2.25 0-1 .24-1.77.73-2.3.5-.54 1.2-.8 2.12-.8.63 0 1.2.1 1.7.34l-.4 1c-.52-.2-.96-.3-1.3-.3-1.04 0-1.55.68-1.55 2.05 0 .67.13 1.17.38 1.5.26.34.64.5 1.13.5a3.23 3.23 0 0 0 1.6-.4v1.1a2.53 2.53 0 0 1-.73.28 4.36 4.36 0 0 1-.93.08zm8.28-.1h-1.27V9.5c0-.45-.1-.8-.28-1.02-.18-.23-.47-.34-.88-.34-.53 0-.9.16-1.16.48-.25.3-.38.85-.38 1.6v2.94h-1.26V4.8h1.26v2.12c0 .34-.02.7-.06 1.1h.08a1.76 1.76 0 0 1 .72-.67c.3-.16.66-.24 1.07-.24 1.43 0 2.15.74 2.15 2.2v3.86zM42.2 7.1c.74 0 1.32.28 1.73.82.4.53.62 1.3.62 2.26 0 .97-.2 1.73-.63 2.27-.42.54-1 .82-1.75.82s-1.33-.27-1.75-.8h-.08l-.23.7h-.94V4.8h1.26v2l-.02.64-.03.56h.05c.4-.6 1-.9 1.78-.9zm-.33 1.04c-.5 0-.88.15-1.1.45-.22.3-.34.8-.35 1.5v.08c0 .72.12 1.24.35 1.57.23.32.6.48 1.12.48.44 0 .78-.17 1-.53.24-.35.36-.87.36-1.53 0-1.35-.47-2.03-1.4-2.03zm3.24-.92h1.4l1.2 3.37c.18.47.3.92.36 1.34h.04l.18-.72 1.37-4H51l-2.53 6.73c-.46 1.23-1.23 1.85-2.3 1.85-.3 0-.56-.03-.83-.1v-1c.2.05.4.08.65.08.6 0 1.03-.36 1.28-1.06l.22-.56-2.4-5.94z'/%3E%3C/g%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; + overflow: hidden; + text-indent: -9000px; + width: 110px; + height: 100%; + display: block; + margin-left: auto; + margin-right: 5px; +} diff --git a/packages/artplayer-document/src/theme/SearchBar/index.js b/packages/artplayer-document/src/theme/SearchBar/index.js new file mode 100644 index 000000000..53f73d3ff --- /dev/null +++ b/packages/artplayer-document/src/theme/SearchBar/index.js @@ -0,0 +1,110 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import React, { useRef, useCallback } from "react"; +import classnames from "classnames"; +import { useHistory } from "@docusaurus/router"; +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import { usePluginData } from '@docusaurus/useGlobalData'; +const Search = props => { + const initialized = useRef(false); + const searchBarRef = useRef(null); + const history = useHistory(); + const { siteConfig = {} } = useDocusaurusContext(); + const { baseUrl } = siteConfig; + const initAlgolia = (searchDocs, searchIndex, DocSearch) => { + new DocSearch({ + searchDocs, + searchIndex, + inputSelector: "#search_input_react", + // Override algolia's default selection event, allowing us to do client-side + // navigation and avoiding a full page refresh. + handleSelected: (_input, _event, suggestion) => { + const url = baseUrl + suggestion.url; + // Use an anchor tag to parse the absolute url into a relative url + // Alternatively, we can use new URL(suggestion.url) but its not supported in IE + const a = document.createElement("a"); + a.href = url; + // Algolia use closest parent element id #__docusaurus when a h1 page title does not have an id + // So, we can safely remove it. See https://github.com/facebook/docusaurus/issues/1828 for more details. + + history.push(url); + } + }); + }; + + const pluginData = usePluginData('docusaurus-lunr-search'); + const getSearchDoc = () => + process.env.NODE_ENV === "production" + ? fetch(`${baseUrl}${pluginData.fileNames.searchDoc}`).then((content) => content.json()) + : Promise.resolve([]); + + const getLunrIndex = () => + process.env.NODE_ENV === "production" + ? fetch(`${baseUrl}${pluginData.fileNames.lunrIndex}`).then((content) => content.json()) + : Promise.resolve([]); + + const loadAlgolia = () => { + if (!initialized.current) { + Promise.all([ + getSearchDoc(), + getLunrIndex(), + import("./lib/DocSearch"), + import("./algolia.css") + ]).then(([searchDocs, searchIndex, { default: DocSearch }]) => { + if( searchDocs.length === 0) { + return; + } + initAlgolia(searchDocs, searchIndex, DocSearch); + }); + initialized.current = true; + } + }; + + const toggleSearchIconClick = useCallback( + e => { + if (!searchBarRef.current.contains(e.target)) { + searchBarRef.current.focus(); + } + props.handleSearchBarToggle && props.handleSearchBarToggle(!props.isSearchBarExpanded); + }, + [props.isSearchBarExpanded] + ); + + return ( +
    + + +
    + ); +}; + +export default Search; diff --git a/packages/artplayer-document/src/theme/SearchBar/lib/DocSearch.js b/packages/artplayer-document/src/theme/SearchBar/lib/DocSearch.js new file mode 100644 index 000000000..ffdca6a59 --- /dev/null +++ b/packages/artplayer-document/src/theme/SearchBar/lib/DocSearch.js @@ -0,0 +1,306 @@ +import Hogan from "hogan.js"; +import LunrSearchAdapter from "./lunar-search"; +import autocomplete from "autocomplete.js"; +import templates from "./templates"; +import utils from "./utils"; +import $ from "autocomplete.js/zepto"; + +/** + * Adds an autocomplete dropdown to an input field + * @function DocSearch + * @param {Object} options.searchDocs Search Documents + * @param {Object} options.searchIndex Lune searchIndexes + * @param {string} options.inputSelector CSS selector that targets the input + * value. + * @param {Object} [options.autocompleteOptions] Options to pass to the underlying autocomplete instance + * @return {Object} + */ +class DocSearch { + constructor({ + searchDocs, + searchIndex, + inputSelector, + debug = false, + queryDataCallback = null, + autocompleteOptions = { + debug: false, + hint: false, + autoselect: true + }, + transformData = false, + queryHook = false, + handleSelected = false, + enhancedSearchInput = false, + layout = "collumns" + }) { + this.input = DocSearch.getInputFromSelector(inputSelector); + this.queryDataCallback = queryDataCallback || null; + const autocompleteOptionsDebug = + autocompleteOptions && autocompleteOptions.debug + ? autocompleteOptions.debug + : false; + // eslint-disable-next-line no-param-reassign + autocompleteOptions.debug = debug || autocompleteOptionsDebug; + this.autocompleteOptions = autocompleteOptions; + this.autocompleteOptions.cssClasses = + this.autocompleteOptions.cssClasses || {}; + this.autocompleteOptions.cssClasses.prefix = + this.autocompleteOptions.cssClasses.prefix || "ds"; + const inputAriaLabel = + this.input && + typeof this.input.attr === "function" && + this.input.attr("aria-label"); + this.autocompleteOptions.ariaLabel = + this.autocompleteOptions.ariaLabel || inputAriaLabel || "search input"; + + this.isSimpleLayout = layout === "simple"; + + this.client = new LunrSearchAdapter(searchDocs, searchIndex); + + if (enhancedSearchInput) { + this.input = DocSearch.injectSearchBox(this.input); + } + this.autocomplete = autocomplete(this.input, autocompleteOptions, [ + { + source: this.getAutocompleteSource(transformData, queryHook), + templates: { + suggestion: DocSearch.getSuggestionTemplate(this.isSimpleLayout), + footer: templates.footer, + empty: DocSearch.getEmptyTemplate() + } + } + ]); + + const customHandleSelected = handleSelected; + this.handleSelected = customHandleSelected || this.handleSelected; + + // We prevent default link clicking if a custom handleSelected is defined + if (customHandleSelected) { + $(".algolia-autocomplete").on("click", ".ds-suggestions a", event => { + event.preventDefault(); + }); + } + + this.autocomplete.on( + "autocomplete:selected", + this.handleSelected.bind(null, this.autocomplete.autocomplete) + ); + + this.autocomplete.on( + "autocomplete:shown", + this.handleShown.bind(null, this.input) + ); + + if (enhancedSearchInput) { + DocSearch.bindSearchBoxEvent(); + } + } + + static injectSearchBox(input) { + input.before(templates.searchBox); + const newInput = input + .prev() + .prev() + .find("input"); + input.remove(); + return newInput; + } + + static bindSearchBoxEvent() { + $('.searchbox [type="reset"]').on("click", function () { + $("input#docsearch").focus(); + $(this).addClass("hide"); + autocomplete.autocomplete.setVal(""); + }); + + $("input#docsearch").on("keyup", () => { + const searchbox = document.querySelector("input#docsearch"); + const reset = document.querySelector('.searchbox [type="reset"]'); + reset.className = "searchbox__reset"; + if (searchbox.value.length === 0) { + reset.className += " hide"; + } + }); + } + + /** + * Returns the matching input from a CSS selector, null if none matches + * @function getInputFromSelector + * @param {string} selector CSS selector that matches the search + * input of the page + * @returns {void} + */ + static getInputFromSelector(selector) { + const input = $(selector).filter("input"); + return input.length ? $(input[0]) : null; + } + + /** + * Returns the `source` method to be passed to autocomplete.js. It will query + * the Algolia index and call the callbacks with the formatted hits. + * @function getAutocompleteSource + * @param {function} transformData An optional function to transform the hits + * @param {function} queryHook An optional function to transform the query + * @returns {function} Method to be passed as the `source` option of + * autocomplete + */ + getAutocompleteSource(transformData, queryHook) { + return (query, callback) => { + if (queryHook) { + // eslint-disable-next-line no-param-reassign + query = queryHook(query) || query; + } + this.client.search(query).then(hits => { + if ( + this.queryDataCallback && + typeof this.queryDataCallback == "function" + ) { + this.queryDataCallback(hits); + } + if (transformData) { + hits = transformData(hits) || hits; + } + callback(DocSearch.formatHits(hits)); + }); + }; + } + + // Given a list of hits returned by the API, will reformat them to be used in + // a Hogan template + static formatHits(receivedHits) { + const clonedHits = utils.deepClone(receivedHits); + const hits = clonedHits.map(hit => { + if (hit._highlightResult) { + // eslint-disable-next-line no-param-reassign + hit._highlightResult = utils.mergeKeyWithParent( + hit._highlightResult, + "hierarchy" + ); + } + return utils.mergeKeyWithParent(hit, "hierarchy"); + }); + + // Group hits by category / subcategory + let groupedHits = utils.groupBy(hits, "lvl0"); + $.each(groupedHits, (level, collection) => { + const groupedHitsByLvl1 = utils.groupBy(collection, "lvl1"); + const flattenedHits = utils.flattenAndFlagFirst( + groupedHitsByLvl1, + "isSubCategoryHeader" + ); + groupedHits[level] = flattenedHits; + }); + groupedHits = utils.flattenAndFlagFirst(groupedHits, "isCategoryHeader"); + + // Translate hits into smaller objects to be send to the template + return groupedHits.map(hit => { + const url = DocSearch.formatURL(hit); + const category = utils.getHighlightedValue(hit, "lvl0"); + const subcategory = utils.getHighlightedValue(hit, "lvl1") || category; + const displayTitle = utils + .compact([ + utils.getHighlightedValue(hit, "lvl2") || subcategory, + utils.getHighlightedValue(hit, "lvl3"), + utils.getHighlightedValue(hit, "lvl4"), + utils.getHighlightedValue(hit, "lvl5"), + utils.getHighlightedValue(hit, "lvl6") + ]) + .join( + '' + ); + const text = utils.getSnippetedValue(hit, "content"); + const isTextOrSubcategoryNonEmpty = + (subcategory && subcategory !== "") || + (displayTitle && displayTitle !== ""); + const isLvl1EmptyOrDuplicate = + !subcategory || subcategory === "" || subcategory === category; + const isLvl2 = + displayTitle && displayTitle !== "" && displayTitle !== subcategory; + const isLvl1 = + !isLvl2 && + (subcategory && subcategory !== "" && subcategory !== category); + const isLvl0 = !isLvl1 && !isLvl2; + + return { + isLvl0, + isLvl1, + isLvl2, + isLvl1EmptyOrDuplicate, + isCategoryHeader: hit.isCategoryHeader, + isSubCategoryHeader: hit.isSubCategoryHeader, + isTextOrSubcategoryNonEmpty, + category, + subcategory, + title: displayTitle, + text, + url + }; + }); + } + + static formatURL(hit) { + const { url, anchor } = hit; + if (url) { + const containsAnchor = url.indexOf("#") !== -1; + if (containsAnchor) return url; + else if (anchor) return `${hit.url}#${hit.anchor}`; + return url; + } else if (anchor) return `#${hit.anchor}`; + /* eslint-disable */ + console.warn("no anchor nor url for : ", JSON.stringify(hit)); + /* eslint-enable */ + return null; + } + + static getEmptyTemplate() { + return args => Hogan.compile(templates.empty).render(args); + } + + static getSuggestionTemplate(isSimpleLayout) { + const stringTemplate = isSimpleLayout + ? templates.suggestionSimple + : templates.suggestion; + const template = Hogan.compile(stringTemplate); + return suggestion => template.render(suggestion); + } + + handleSelected(input, event, suggestion, datasetNumber, context = {}) { + // Do nothing if click on the suggestion, as it's already a , the + // browser will take care of it. This allow Ctrl-Clicking on results and not + // having the main window being redirected as well + if (context.selectionMethod === "click") { + return; + } + + input.setVal(""); + window.location.assign(suggestion.url); + } + + handleShown(input) { + const middleOfInput = input.offset().left + input.width() / 2; + let middleOfWindow = $(document).width() / 2; + + if (isNaN(middleOfWindow)) { + middleOfWindow = 900; + } + + const alignClass = + middleOfInput - middleOfWindow >= 0 + ? "algolia-autocomplete-right" + : "algolia-autocomplete-left"; + const otherAlignClass = + middleOfInput - middleOfWindow < 0 + ? "algolia-autocomplete-right" + : "algolia-autocomplete-left"; + const autocompleteWrapper = $(".algolia-autocomplete"); + if (!autocompleteWrapper.hasClass(alignClass)) { + autocompleteWrapper.addClass(alignClass); + } + + if (autocompleteWrapper.hasClass(otherAlignClass)) { + autocompleteWrapper.removeClass(otherAlignClass); + } + } +} + +export default DocSearch; \ No newline at end of file diff --git a/packages/artplayer-document/src/theme/SearchBar/lib/lunar-search.js b/packages/artplayer-document/src/theme/SearchBar/lib/lunar-search.js new file mode 100644 index 000000000..159b79504 --- /dev/null +++ b/packages/artplayer-document/src/theme/SearchBar/lib/lunar-search.js @@ -0,0 +1,146 @@ +import lunr from "@generated/lunr.client"; +lunr.tokenizer.separator = /[\s\-/]+/; + +class LunrSearchAdapter { + constructor(searchDocs, searchIndex) { + this.searchDocs = searchDocs; + this.lunrIndex = lunr.Index.load(searchIndex); + } + + getLunrResult(input) { + return this.lunrIndex.query(function (query) { + const tokens = lunr.tokenizer(input); + query.term(tokens, { + boost: 10 + }); + query.term(tokens, { + wildcard: lunr.Query.wildcard.TRAILING + }); + }); + } + + getHit(doc, formattedTitle, formattedContent) { + return { + hierarchy: { + lvl0: doc.pageTitle || doc.title, + lvl1: doc.type === 0 ? null : doc.title + }, + url: doc.url, + _snippetResult: formattedContent ? { + content: { + value: formattedContent, + matchLevel: "full" + } + } : null, + _highlightResult: { + hierarchy: { + lvl0: { + value: doc.type === 0 ? formattedTitle || doc.title : doc.pageTitle, + }, + lvl1: + doc.type === 0 + ? null + : { + value: formattedTitle || doc.title + } + } + } + }; + } + getTitleHit(doc, position, length) { + const start = position[0]; + const end = position[0] + length; + let formattedTitle = doc.title.substring(0, start) + '' + doc.title.substring(start, end) + '' + doc.title.substring(end, doc.title.length); + return this.getHit(doc, formattedTitle) + } + + getKeywordHit(doc, position, length) { + const start = position[0]; + const end = position[0] + length; + let formattedTitle = doc.title + '
    Keywords: ' + doc.keywords.substring(0, start) + '' + doc.keywords.substring(start, end) + '' + doc.keywords.substring(end, doc.keywords.length) + '' + return this.getHit(doc, formattedTitle) + } + + getContentHit(doc, position) { + const start = position[0]; + const end = position[0] + position[1]; + let previewStart = start; + let previewEnd = end; + let ellipsesBefore = true; + let ellipsesAfter = true; + for (let k = 0; k < 3; k++) { + const nextSpace = doc.content.lastIndexOf(' ', previewStart - 2); + const nextDot = doc.content.lastIndexOf('.', previewStart - 2); + if ((nextDot > 0) && (nextDot > nextSpace)) { + previewStart = nextDot + 1; + ellipsesBefore = false; + break; + } + if (nextSpace < 0) { + previewStart = 0; + ellipsesBefore = false; + break; + } + previewStart = nextSpace + 1; + } + for (let k = 0; k < 10; k++) { + const nextSpace = doc.content.indexOf(' ', previewEnd + 1); + const nextDot = doc.content.indexOf('.', previewEnd + 1); + if ((nextDot > 0) && (nextDot < nextSpace)) { + previewEnd = nextDot; + ellipsesAfter = false; + break; + } + if (nextSpace < 0) { + previewEnd = doc.content.length; + ellipsesAfter = false; + break; + } + previewEnd = nextSpace; + } + let preview = doc.content.substring(previewStart, start); + if (ellipsesBefore) { + preview = '... ' + preview; + } + preview += '' + doc.content.substring(start, end) + ''; + preview += doc.content.substring(end, previewEnd); + if (ellipsesAfter) { + preview += ' ...'; + } + return this.getHit(doc, null, preview); + + } + search(input) { + return new Promise((resolve, rej) => { + const results = this.getLunrResult(input); + const hits = []; + results.length > 5 && (results.length = 5); + this.titleHitsRes = [] + this.contentHitsRes = [] + results.forEach(result => { + const doc = this.searchDocs[result.ref]; + const { metadata } = result.matchData; + for (let i in metadata) { + if (metadata[i].title) { + if (!this.titleHitsRes.includes(result.ref)) { + const position = metadata[i].title.position[0] + hits.push(this.getTitleHit(doc, position, input.length)); + this.titleHitsRes.push(result.ref); + } + } else if (metadata[i].content) { + const position = metadata[i].content.position[0] + hits.push(this.getContentHit(doc, position)) + } else if (metadata[i].keywords) { + const position = metadata[i].keywords.position[0] + hits.push(this.getKeywordHit(doc, position, input.length)); + this.titleHitsRes.push(result.ref); + } + } + }); + hits.length > 5 && (hits.length = 5); + resolve(hits); + }); + } +} + +export default LunrSearchAdapter; diff --git a/packages/artplayer-document/src/theme/SearchBar/lib/templates.js b/packages/artplayer-document/src/theme/SearchBar/lib/templates.js new file mode 100644 index 000000000..c7ea998fd --- /dev/null +++ b/packages/artplayer-document/src/theme/SearchBar/lib/templates.js @@ -0,0 +1,114 @@ +const prefix = 'algolia-docsearch'; +const suggestionPrefix = `${prefix}-suggestion`; +const footerPrefix = `${prefix}-footer`; + +/* eslint-disable max-len */ + +const templates = { + suggestion: ` +
    +
    + {{{category}}} +
    +
    +
    + {{{subcategory}}} +
    + {{#isTextOrSubcategoryNonEmpty}} +
    +
    {{{subcategory}}}
    +
    {{{title}}}
    + {{#text}}
    {{{text}}}
    {{/text}} +
    + {{/isTextOrSubcategoryNonEmpty}} +
    +
    + `, + suggestionSimple: ` +
    +
    + {{^isLvl0}} + {{{category}}} + {{^isLvl1}} + {{^isLvl1EmptyOrDuplicate}} + + {{{subcategory}}} + + {{/isLvl1EmptyOrDuplicate}} + {{/isLvl1}} + {{/isLvl0}} +
    + {{#isLvl2}} + {{{title}}} + {{/isLvl2}} + {{#isLvl1}} + {{{subcategory}}} + {{/isLvl1}} + {{#isLvl0}} + {{{category}}} + {{/isLvl0}} +
    +
    +
    + {{#text}} +
    +
    {{{text}}}
    +
    + {{/text}} +
    +
    + `, + footer: ` +
    +
    + `, + empty: ` +
    +
    +
    +
    +
    + No results found for query "{{query}}" +
    +
    +
    +
    +
    + `, + searchBox: ` + + + + `, +}; + +export default templates; diff --git a/packages/artplayer-document/src/theme/SearchBar/lib/utils.js b/packages/artplayer-document/src/theme/SearchBar/lib/utils.js new file mode 100644 index 000000000..0807500d7 --- /dev/null +++ b/packages/artplayer-document/src/theme/SearchBar/lib/utils.js @@ -0,0 +1,270 @@ +import $ from "autocomplete.js/zepto"; + +const utils = { + /* + * Move the content of an object key one level higher. + * eg. + * { + * name: 'My name', + * hierarchy: { + * lvl0: 'Foo', + * lvl1: 'Bar' + * } + * } + * Will be converted to + * { + * name: 'My name', + * lvl0: 'Foo', + * lvl1: 'Bar' + * } + * @param {Object} object Main object + * @param {String} property Main object key to move up + * @return {Object} + * @throws Error when key is not an attribute of Object or is not an object itself + */ + mergeKeyWithParent(object, property) { + if (object[property] === undefined) { + return object; + } + if (typeof object[property] !== 'object') { + return object; + } + const newObject = $.extend({}, object, object[property]); + delete newObject[property]; + return newObject; + }, + /* + * Group all objects of a collection by the value of the specified attribute + * If the attribute is a string, use the lowercase form. + * + * eg. + * groupBy([ + * {name: 'Tim', category: 'dev'}, + * {name: 'Vincent', category: 'dev'}, + * {name: 'Ben', category: 'sales'}, + * {name: 'Jeremy', category: 'sales'}, + * {name: 'AlexS', category: 'dev'}, + * {name: 'AlexK', category: 'sales'} + * ], 'category'); + * => + * { + * 'devs': [ + * {name: 'Tim', category: 'dev'}, + * {name: 'Vincent', category: 'dev'}, + * {name: 'AlexS', category: 'dev'} + * ], + * 'sales': [ + * {name: 'Ben', category: 'sales'}, + * {name: 'Jeremy', category: 'sales'}, + * {name: 'AlexK', category: 'sales'} + * ] + * } + * @param {array} collection Array of objects to group + * @param {String} property The attribute on which apply the grouping + * @return {array} + * @throws Error when one of the element does not have the specified property + */ + groupBy(collection, property) { + const newCollection = {}; + $.each(collection, (index, item) => { + if (item[property] === undefined) { + throw new Error(`[groupBy]: Object has no key ${property}`); + } + let key = item[property]; + if (typeof key === 'string') { + key = key.toLowerCase(); + } + // fix #171 the given data type of docsearch hits might be conflict with the properties of the native Object, + // such as the constructor, so we need to do this check. + if (!Object.prototype.hasOwnProperty.call(newCollection, key)) { + newCollection[key] = []; + } + newCollection[key].push(item); + }); + return newCollection; + }, + /* + * Return an array of all the values of the specified object + * eg. + * values({ + * foo: 42, + * bar: true, + * baz: 'yep' + * }) + * => + * [42, true, yep] + * @param {object} object Object to extract values from + * @return {array} + */ + values(object) { + return Object.keys(object).map(key => object[key]); + }, + /* + * Flattens an array + * eg. + * flatten([1, 2, [3, 4], [5, 6]]) + * => + * [1, 2, 3, 4, 5, 6] + * @param {array} array Array to flatten + * @return {array} + */ + flatten(array) { + const results = []; + array.forEach(value => { + if (!Array.isArray(value)) { + results.push(value); + return; + } + value.forEach(subvalue => { + results.push(subvalue); + }); + }); + return results; + }, + /* + * Flatten all values of an object into an array, marking each first element of + * each group with a specific flag + * eg. + * flattenAndFlagFirst({ + * 'devs': [ + * {name: 'Tim', category: 'dev'}, + * {name: 'Vincent', category: 'dev'}, + * {name: 'AlexS', category: 'dev'} + * ], + * 'sales': [ + * {name: 'Ben', category: 'sales'}, + * {name: 'Jeremy', category: 'sales'}, + * {name: 'AlexK', category: 'sales'} + * ] + * , 'isTop'); + * => + * [ + * {name: 'Tim', category: 'dev', isTop: true}, + * {name: 'Vincent', category: 'dev', isTop: false}, + * {name: 'AlexS', category: 'dev', isTop: false}, + * {name: 'Ben', category: 'sales', isTop: true}, + * {name: 'Jeremy', category: 'sales', isTop: false}, + * {name: 'AlexK', category: 'sales', isTop: false} + * ] + * @param {object} object Object to flatten + * @param {string} flag Flag to set to true on first element of each group + * @return {array} + */ + flattenAndFlagFirst(object, flag) { + const values = this.values(object).map(collection => + collection.map((item, index) => { + // eslint-disable-next-line no-param-reassign + item[flag] = index === 0; + return item; + }) + ); + return this.flatten(values); + }, + /* + * Removes all empty strings, null, false and undefined elements array + * eg. + * compact([42, false, null, undefined, '', [], 'foo']); + * => + * [42, [], 'foo'] + * @param {array} array Array to compact + * @return {array} + */ + compact(array) { + const results = []; + array.forEach(value => { + if (!value) { + return; + } + results.push(value); + }); + return results; + }, + /* + * Returns the highlighted value of the specified key in the specified object. + * If no highlighted value is available, will return the key value directly + * eg. + * getHighlightedValue({ + * _highlightResult: { + * text: { + * value: 'foo' + * } + * }, + * text: 'foo' + * }, 'text'); + * => + * 'foo' + * @param {object} object Hit object returned by the Algolia API + * @param {string} property Object key to look for + * @return {string} + **/ + getHighlightedValue(object, property) { + if ( + object._highlightResult && + object._highlightResult.hierarchy_camel && + object._highlightResult.hierarchy_camel[property] && + object._highlightResult.hierarchy_camel[property].matchLevel && + object._highlightResult.hierarchy_camel[property].matchLevel !== 'none' && + object._highlightResult.hierarchy_camel[property].value + ) { + return object._highlightResult.hierarchy_camel[property].value; + } + if ( + object._highlightResult && + object._highlightResult && + object._highlightResult[property] && + object._highlightResult[property].value + ) { + return object._highlightResult[property].value; + } + return object[property]; + }, + /* + * Returns the snippeted value of the specified key in the specified object. + * If no highlighted value is available, will return the key value directly. + * Will add starting and ending ellipsis (…) if we detect that a sentence is + * incomplete + * eg. + * getSnippetedValue({ + * _snippetResult: { + * text: { + * value: 'This is an unfinished sentence' + * } + * }, + * text: 'This is an unfinished sentence' + * }, 'text'); + * => + * 'This is an unfinished sentence…' + * @param {object} object Hit object returned by the Algolia API + * @param {string} property Object key to look for + * @return {string} + **/ + getSnippetedValue(object, property) { + if ( + !object._snippetResult || + !object._snippetResult[property] || + !object._snippetResult[property].value + ) { + return object[property]; + } + let snippet = object._snippetResult[property].value; + + if (snippet[0] !== snippet[0].toUpperCase()) { + snippet = `…${snippet}`; + } + if (['.', '!', '?'].indexOf(snippet[snippet.length - 1]) === -1) { + snippet = `${snippet}…`; + } + return snippet; + }, + /* + * Deep clone an object. + * Note: This will not clone functions and dates + * @param {object} object Object to clone + * @return {object} + */ + deepClone(object) { + return JSON.parse(JSON.stringify(object)); + }, +}; + +export default utils; diff --git a/packages/artplayer-document/src/theme/SearchBar/styles.css b/packages/artplayer-document/src/theme/SearchBar/styles.css new file mode 100644 index 000000000..047517ec0 --- /dev/null +++ b/packages/artplayer-document/src/theme/SearchBar/styles.css @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +.search-icon { + background-image: var(--ifm-navbar-search-input-icon); + height: auto; + width: 24px; + cursor: pointer; + padding: 8px; + line-height: 32px; + background-repeat: no-repeat; + background-position: center; + display: none; +} + +.search-icon-hidden { + visibility: hidden; +} + +@media (max-width: 360px) { + .search-bar { + width: 0 !important; + background: none !important; + padding: 0 !important; + transition: none !important; + } + + .search-bar-expanded { + width: 9rem !important; + } + + .search-icon { + display: inline; + vertical-align: sub; + } +} diff --git a/packages/artplayer-document/static/img/ApplyForLloan.png b/packages/artplayer-document/static/img/ApplyForLloan.png new file mode 100644 index 0000000000000000000000000000000000000000..59ffc5f844e356fffd62cf5c960bd915684f5702 GIT binary patch literal 30261 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 literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/Authorization.png b/packages/artplayer-document/static/img/Authorization.png new file mode 100644 index 0000000000000000000000000000000000000000..702b95173d6dd3f567924c480d318553994d6c55 GIT binary patch literal 49427 zcmce;1z1(<);7E_w%YXaNs;dEG?7*s>28p2mRm}?b5VkHcf&s> z>~qe0-tT;Wyw~;pT-V;hT63*A=ktuX$35;by=0_Cu3sU%f^`rF*5{BxQUZEHt9l zT4<&8KuIu-;@Ofoy{6#1GI#e~?a_QR zH9@#4f=2)=Q7v#+DZO27eOUiQ3CTLPCyQXGh6+mO6D42MnJ(`wZW^ccf>(jSGs-V*UT~ zq6>ArK68W)a|AVASZr*rVzvtBh{jy*`1niP`5rNeP})aI#Tj{uMJ~FU%fFVljhZIv zd`vYC#D~u=kF_op*QxDCdwc&tp7z#Ozb3cBDC4!r+)Sn1dH0hY_adt)@uRf>_rga? z-A(nf+sz{l>laz{T2^g-Kl=iWWa$T++e?_#7+z;;diu60w!_22p44Y#ri1xHG>Tak z+BRng3T*W{Jz3E_*$<5^c0MU8ig;lmKfoy^Dd~p^TeA-HBMOSAI6SK!{$%_b zT9HaQYMn&pmGKD)2}X5#%n^mA7&akcVd_8r5YQ`lVQ6T`rn|j3m^eFYaPiV58fIo$ zSZ;^dN$;}V-P zJQ~F`g-k{4$qT2qm)3m^zf`%E@mdW5kHgn{>BIfzZW~0#5$7*q575c2PyN8xba|dk zKto+%zoIco#lPoOlmGhlYhfd!3@w5W&(+jSC@3fhNVse)l#dq&3+lU)CDgs^GzMW+ z2{ql1ir}EnU%nV!`0Y29omdXb?*@bU$!lv3WJDjd2=3m!Tc2GrYGm!3-;kNr+RlG6 z{5uW~J2Nx$wHiiWauI)mpFe-rQ^mSWFt+t;x{u8E=f-{x3eqO{pmjLIf5N2K`bBqh zp+EQgMh*2U9_v-k0>NK zIB93heax)o^XJb)Rn8?t#iqt1dU?vX2?;a6zK8r07ulRGNxAJLqq%JJRYymdSy+1E z>#SVQB9V-G&h%p=-gtZxl5F(J(TWkKIQ!MBS3S9!{97wyn)mMA>tl|OkKae19Pmf; zyKA(5VGW{~nx4+kZ4M0_j_jaWn2t18l$7+PlnjqMK04qwF`w^AZ)$ApL{=(Cog3~| z-ObHyswp)&*$~!D1?}cqG?|@dGG{6k$);dtmIKCT>#n60|K`mbYRO=Q9=$|iKby4) zA+TOd;b4;3E%h?1I;|{N&Y=qXTyJl0o846{)3Ivxh5)h>KD$NnC%Fmh%fe4^PPee< zcC6TJG>@Zf0N;Mv@$n8?wPeJmTgquB+WxW00Hg7N>|Skj;!;k%a=CBatIjtUuNIn* z@tF>M{gZ#cGl1G8H!epMI498}|fy}h*6A&8T1iYcBS$V*%oG4m3)$0`?JO~Bq}OPyTRY^V0-Bb4vrEmOcIg(+aoaE&XO^=%sX@{ zqJi{krE$}(krEk$B4#tKk*RX2(jgUzISJcV*4800F*!;ajzX!@(fOfd;Gls)LAIN- z&!xUR7W2d=$xy7s3!$r`qotL^XV9=&AaN=gv5U+vD8RdMV_e=hu&2ygzcrR$6P($G z3)`pezPr17uGnl{U7g|2@9&*Xj&{J(KN52O%TWw__Nhy-u&|gTB)RODqu{zy_cmrE z%JcS3y#htlW8L-*VdsSQ_V&I!Hk8e--8mRL(HL_($X3i!{%I5a@#F8{6Z7C6Y?xcP zxD+D}Eu|s>q$*`r$*S76IyYl^lE9Pr5x7@AOGn7d1?(P(RG0*=DVvu1I;L+B`JfrY-axu zb2?mW$kv63ko@hNz=H=5=8!#>VjoGu;oFVtdo^5W7^Ik^mY!R^-=q}*VKiG4t#QXk zC@?rQGzC5p$?QkSn(ubfCBZP~$3EIoW<6s>IV(FcG4a@W+hl>{HLP}5p<(y0m6a8% zNXR1{aF4J%^kQ7r)4t%esSzytTv^@Os_fuR5|C^2m1)6mBOzxP$Wbyf%0QG3OoG#k z2T?sM9vp*s6U}KYj8Cs-!D**N`y&4-gulvA+7}71-ZT#%rYQ!T+5Wg_Hr3{++kq+X z$>By{gT8s$)E(Y~#RBhufRa!zfB!yDGPg8;5^icZhyAdnCs@dc)nSujP>2~Vb)I22 zCGXK@H+HiLWHsad90gI)kFaDPuH8)lE9Rsn!^KTd(sWhmPLaxFEcULB!o$N$E;8;n zTL0B}<@et^(w--7t~WDac;2WgJb(UNTvQafaWJnqjVh-{Y;1~&A^~>F`tWfsr_Hn{ zf`WMPg}b{B*)Iy}QzWgd@{u!nc%Zf*Osl=I0ILIEm(5hnR`ajQ5U1LRab7M{;if;` zR}U5*HcwKc{$z=;$1lI3NI0!(yW<^L107G_jVs=5A$Cf0gyronw_T7|R(>ePWjh~S z?|WBn*-~-fe#9Bza>2S>#r2Sr^F<`Px#DEKA09Dr7I>oZ=4>Y+zguOh;D!pt#@YFD z$3Ls~IRE1>s?{HKs+)J;B++Zsa-rlJVwq z87e=)Y6Fv6S|m#@o$o2MUFbvH>mT3So?-QbfrdsRuqRJj1UcXXnDakQqaWc*o#W@c zG{g##aiP}h7AxK@8SU!biK}4nqJRGRXAJhm)ARILQwE7CNVbloDfPb7u*E)eS=9J% zO4cT{-hX4Z|5I3#kCvZb(+8hHu|G$>H${qQ#BnAXfj8^x>pUccr`Lxv`Ut2vu_;87 zvP|Z>nGFOf-ow=zNE(kyave9Ohw`*N%WdXl4_;$gcs1&*+x(vPc31tnyl)=7CCWeda67EVsg#&4#XrQ7 zzi6%@bL)TeH4eY}E*-6hp$jQDVjNz@Rqs&>jkyFRSkLhF+BPTBDgo_y;>vLRnf8R=2m4o zF%(tXL*`4NXXfg$LLNV(&3C-3Eha1AfnKiKv8&K6xABs-`1&Hy=GX7;y=TjtCIQP5 zzEXW49eDeWUC>CyhWKMcTuQN~=H|?h(z9b^xRGNhrM`#;Rv*wm+uKuG3Th=I++Bkh@QFey zYB#?xXGE(?j)DIq0~c5JvE#an@t#-^r6Yy(**ErF3;Owes5FN@{pt=NoDX*xG)xNU z9{$Ms{{2ZvH7(?{UO7j{KE$HZNi$svIs zKAAh$-O#gdITF8VJ891kE{L`7h9&2aqSEk_ZAukV1l#7 zU2=kReYp=B`TN$DN+9LOyrI0z>IkQxX#Hi**$lzh~10H%`mRNB5{7 z39a~;W9zjjFBe?qh1)1iSv*kmsY`G@;OkBj%WX2j?lE`gZZazy`k0(Ue08~oyoArF zGeKzoaHE~oc3$3gu1g4@a9|RI{{^T*{&x7Z-}w3Yx8}NqREuf5yzwG=NU&eNeHVkX z(32h%O0S+#Hu^meOZ&_mxdLI|{yG_-;7ptA3}Z~7gH#GVb3}QXNWkT(p_bOFH26r=0x@b8 ztBq%LD(lxTbd%0}0{p|pqd1rA;SozikyMe8NY+huva8`&cM+8{-}6Y8lXFZ(GmIos zR`!^(U{51LQvEh=mpTp)eT9MP5So)z_EFJ7dV{%)t`)DPD*Uh{UT6P@T>DHH zFO8-C_z|yCKsh)~yjZ1~o7D<;JU_hmJfd}nn%XD{zEd%KL!fuY-tv(Cr-d}`8b z;@kSVy6J$Y@Ip=dbE1pQ$CitCQ7<>9)rZh0?d40wdg2n?arXpM(!Z{1drsZLm9_c# zonBW@Pa^PmEuhSR;VCEyKtBqoE0|~cX4x6cy!qLH4s-UO8@$Tx~ zp)%{TghY%)U?}ZioO%VHqS5@7BBS0X;80sb#>T8>!#?5?2bvXYHuJX)HyqY@cWUP| zbKBAtGVk=QbK5WX3*zK?bD#!-f;aJbx0T%=P^K9F_!MK;Jm6eO!?NL99}t@g_9zwI zL?(rD2mpJNTj=|Vy@NxvT^Se@mgatPpp&OuXgTRg$U1*fSC4XtE;iEnxtG_R8PP&0 zy{nS*&T-?i^IA&_3vy4hM?3iQG0t3^M|>3tYyqUa$!n7{kM3#3>~GE`JmWulBKSeF zyVx{0)42a(Nz^Ush6Dn>I9SCd09mTekkz>?C*EO(&daz~Gcr{qa&Ahd&~w?D6mZ#k z7pfMU@CK#(KtggoTGY?Z#*n(Z6#sU8K3?-UKh_pgZcApcI8cUtPy_a|yUQUJ!Q54D zTJu3ZIq6V}h^>-V%-feZW29nC22*^qj~M`0d_1qs*8CW8y&Tsx|B;~&z2~EyIli|M*e=_;{;qbY1N18%~zUrbam$d z66!aEJ2s|EwkZ)J*Il$FiZD@#@NtmAAky_pw{23C)+ z+;SRoM?V8JT4+W?TbV;CMcM(5l!Unk>euUhTK-`{BwK2GzLif9V7`RlKp z^tf>kIo&F(N&0cV80py%+l|(EZ?C;FN=bs0=N2*-a>2jJ%(rqP#T!mpnMHNzD z23i{pzJcq8hL;Mp1i$pQr^N^AZ~4R2#uy`ExOc1@I6b;xiX{@uHcBlaklHdtsjb7l(QUrM{2l7k!r zb=WRt#Eqjf-N<-$adK?-rS#Xs0%x_uvkp$fCXDbB9(r70E*x3h094 z&f3p=8?k-6YYc|li|kOrhS|UZ?*9t1H>oe+KXI(6KHjgCj{1>bott$%j6w6!4qwIM zLPoh$k-&ArVI{K)G=KBs9!e)7)VO7Q{5>`=j=6fxJ!-jPNv)r@BUTdR3kzaF8VXOo z^N?`nYb^9tr9F}p9^!FZ$jZ~cw6IiS&U0L(EAipOwK;_;Hq!%jONsMo*Xm`Uni0+(rL6-LG#s>FRlKR9I@Bb7wdX+apAH1aW@iw z1C#h%%ME^h*Uzw#6oLDNSf2XlTeB9X{nZ**K+vQwXhX%@yIghu+;S&6Ha1o`z)c1V>v(^&n}I^C!QVAqI(kT~ zJTI;N<4spneIlJ58VSgMeh_ts{AvmYtKr^Nyxmt~3sa2HwW2A);n z8W0#u21A48tJ1Y!y;^?MKiwF_>FuxgXX4OPpj^f+S@iw8B^aubH#dpgd%109OWigi zFNX9*vYDo1lW@_`)n94^S^~5GF@geM`ila+Ish8V5Z*DxOTD#T3`#?0KnvMSOXkq4 z?UvYLf}ZguK~kCnj~X1l_&bVqZu~Fzhdh;Ny>>S_$ZJNxW+F+ru8w`#X#rD`$*L9l z=~D((48b2_guMHIW~=VJrg%g?`PFHsS~bvGj#%DKQiRQXG}+g;hRv&dbMx7vn+2`2 zQbP!hdr{7f%cxNua9reutM})lYM47a0}PM$Z!eHELO8iiV8C7TVlMp^VpC3&eov#h zchp-isEezqWx@4y@5k(Q#7}-_s6pa1vXj!X>b>bVY$l?;RIyn> z6ufJ-DBC$^VYw7v`GakKMJOB>=W$+BM7TCS$yx3KjJZ6%6o zVO$da<7AaWgM_govr6!ejw!b1wpmuHmnf*Hj1kJHA5&u9|LL9}55Y~3jP;O^J5^$) zxh@W{ANR>U=VMQXCwgxcA9Q(Zc%<%qA20?8{N~Mhw#KhO{fNH3#INt?*b>e^8>(v7 zm8Y#~)E=YIXEjp6pImIJO8v(-P2;|n&lG+{I|+zwf#YON6`Nu*J;`FsOxq*0LxBuw z*q%@y|MAHXSbq_`TN~D5y_!{>7^KXbygF&6ZZX%Td!1m_*Pr;s%AAam?^zA9 z%MuY#VKwEQA{D7uU^-N2SPp-9-aqG2-T;wpvL0t^u>id}uR{tiM5Ld0+WgpuWNGxF zE`Q__xkx=6@|bsb++Atf4$_BG3XQ0EQ^&i@HH*v6^Xd1drd7_Ndi?cT%_RSlu}a+n zvonSpHCX>8!b5yF!{=R0KqRBqoBaHI3NhdXCz%SevS_8k8UG5>!V>VidWBg@A} zLFd`T06vBiTnbcAp;V+sZ)alaZNeeJd-rx|_>OrOM(iG#p{t@HMw7bsu*I`GZN8>m;PLWuptsX3t*{7(= zr;+R{vXk|$c*HKTA8=xGIuqUF*Css`HSTKoiI}-6ySP-k9bm@90|7UsRyprvDCKJO zUC@M=QzRoM8gF26cr{!dr?1|0z#2F7t+KdOul~)IAnYf7^<%b;AEvw;gZi;^do!_N z6hJG_K{Aqi`t;qX^9nEgDOSEVyQClMI^D>4#+8igQEa*ZvQm0%)bmii!cHo%P^S?W zAvOY&DwfM7BtnP7eRttX2w9D8Z_J&2sOKJhNM_D)1G+#8%XveO=ku%k|-WQC&9dOO*p&mtOw=sMes?x=RhQT z?(;-pyJj|{o{xLb`b2)_|9}EK0dgy`79UcZqEH^?p0J^5CZjwe|2&-;obG&7G<*Ba z>FzV?KMhiuV;Sso>P)M3?Wl{>1N(!sYyVdAsbj+mItnU4ssb$^^@Y9tbKu^l_|T&= z?X$~ARoCf2PiIP;GDt1$gVB$sCMyZtHuWWx1w&Ay&e15NzXK!gE*I1TTh9N1=osuJ zCbFO1``!M*&wo&5yKMil`8nNj9>pNzRDI){`hOyCTH=*F71+|4{%%F~kWu`-Dkw7C z@i|zFQFo$J_8*On&mkcNM@MJ(WveSjLI zPuCsQEApiMYUxJq4ajJ6z-V5pk#TdYj&YiQ1R%Ys{A9K>5g`^s88mZ%>_B+sTU63L zKslNYi2+^u{wn@v8}~{n9oyO0$&&#;IlaHNP(GIuNg)Pp6ok4CiHI;9IRU11p;t*$ zA(qdTLd<^5wFJnJtczFg3>30x*IxtDJspUYBK$Mv5k)QZB-h_@dr-f~pz}TuuEJ!l zo1ei?TaUq>4T0}u!wCBl#KRwhCI^GLXE2vge{N) z$2Hzow=Pmxs%M2i&lEh>{`y{{8!7{WjwF@83Ie-A1LcgFk$$U<7AC@CuK} z-%SP8aKXQQKJC)~wB`Se>c5@aoN@b{hrO1X@MXm7V?Tw3r9$`kGdlxH#^;}xaZ0tp zGJo^@1X1Ah$L06`4=+}6-G_D;?ACK-Oqhgy?g-;6_p62YfA~$ zvo}4+mz(sQ`-CZdl(JjgS?8b*9+pX}Gv?s97lEnXTRYj{r zXCovj7j}T-w^LO`c?<>p`z2NVHE9Jnr^Jg!0m0BS6T_34W! zqnp|cCETq~@TQrSQ&M(Ususo}sgBg6X z2Y+26OM}>kXefXY<=Y*9OC1L7dc>3NlauSRMdE=EZ*Fc<*PY$B$Npb4x12yF@?1sb zi>#cSg0gZNTzrP0CpICwnOa%?2QB3jy1mioclDE?N8Obqw!aa3g0Rs?d+qK}N>AFZ zj{ij+@;M3m=G1(A8sIM~MMfd7w6&4`YN~d6P9Q~U)jK^1_|PwdrW#3K(M}aZhC#KE zQd=w0ehtaY&ujK2s;ZXUvYjW0MhS)DY1EN_@K!;#Q71!oBJ(~cC#O+&iXXINd!b=P z-5=oV+p|1U(F?e9feo;CM~94hl~a*gWv^eA%@Op|=9JL;A*AkymJ7#zMC?Y8Z~7`$ zqaJB9N8BbO%LTBZ+-w3p?MIIu4Sm&mD`&|$FQR`?lHlg$=LgNX&!Ar^bUWI=vQWOE zUvq2Nm438?OjmpLLwM9rI!h-B;YV!a`e-PF`1`{$pp zySlpM<>ixrp*Dt&H8m}5)|xhSona0pzkQ&?C?Zf+}mk;F&*q?Yk5Q!Zd@Tlv-9vZ z(&awh%5{ICIWs-o1X>z)_Wtsv^{Hm>j~~Bc>>9PdJ=mZ+UexE8b8;%jy>+X%+SM6? zFbHpG=;&Hg{HyGUO=*sP=nh)tw77;t2e>VoyBXf3rfy0<&NA`;(KNx}Od44Dst)0O zo6N|>+FB1v_1j4yzscK=*eaEAi1X*D>>Ce!)sl`5V>wzeiF(lgW3=o)s(Y3>POZZM zujV4XVgU^|H|CR$j=p|{{K+=PoZW7D*suWF8OCf(T>GPV$qQqkY^aB-qlx4oCDJTI z_O6&+^RUxGwseE--ny=KTNG#gRCAbVF*gS7zpuMEkXO&WQi*6{veYa32)OM`-rGvJ z$AaeOou?-enfqZLNN`RSHzlJ^nU>?aNE;OglsDeq0cWDeLO@c`10k;_cL>g?cP=W>|-tkh{lH( zy}D{KxzWyFqB;ZrXNT?fgG33ZoBZ*aT-d>(bghvpc7T^3#6ABva-Q~NYidW=G1nc= z#l)r@RWYJxyj#JD(1@7Zu0@Mjw|xq9M)a{tgZ*vwFFM=dO5(Qm@$m79E?>SZ3~hR9 z9(tbCax?=9rO)p$k5!OKit6&D5_sOx7;}T>+k9Nk0;Kr@Xj_rET zyw2OS_RG+m%UJ_`$lVW?Nk&5h#zaC?l#$eVk*UHKaNFs2rW{tRR2%yeFeMx|9=Su0hZU+hlVap< zf#kB7ixSreqxiWPlD=3T5}cbB+l;7b@|?EjjiOK2#}U*}o=c+4+bd%$jAqUa?`Kw# zP)&9gs;B1H>f7zN*y8&O^q-M~2CmfYs2o{olacaXgVD;ens>qwg#4hKm^|FupeM<- zQ9amMVFv_cRwX$5?e%$KfLwl1swt-XQbcn5*{zJ49{!@@XOfQPTaxunmWt&Y`K05r z(aJ6ztK@~lf7mgLDamau2GF-aBDFmqdd$bj`1O0mEjc+kKhQA@fDCOH6eVWEmJK8y zw1!0&5fK2RFVW@BkqUcm-?D^XuXNWGipL_}je3XgK2_ z$~1`S*poQ!yKmuZ>Sf*$y%-RZ{4}rd7iIOhUNkdn&g1ilC!ajtxUjttx zaz9$oY(C;qu+d0!t#ril82ax9bV%$3B}Z3hq6i*nu^=qLz8M1u#%^X%E0uvV!l*YR zWaMajdd@1zd1u)P?wr-_&>^B#4^ixZ>_HaPMj7(LfuMWfL{cFXAGuZAUy4lz6YQ3T zI7xhX5p4-b9a+ssd5S=^(X_>GKAHt?6v^2Econo^zvPdarg0WwA>k7b#6XhqmHryD z)20DH4C%n&&!6K#=ETkOAr*f%t!da3fTsc=aFczOhYx?06Bh8sgp+p-I+8^r7e=R6 z+MyT8-PTNE*#qKll;9R|64$$OM2Gx;OIp1mUig~$zGWab+!D^BjOJk_b?|Bi|2#o(xyS4p^k;>Jw<^=H{HHLX=DbokmNu99`=m zU8cGI4Z<@Ui1^3K2!qO-6brhkql2B2K}9R2MDkuD7Lc9> zM?}1!kDw~E(_qEZ_xhI{i@x_%ZV=a3x*nC|)4MpaXI}IBl`B>f-28{DZ#&WM?&KUC zrNcb-A&;D;+_y3{2eSlJhmdrjc{HzNw-9eX^hm#uUZhZbZQ)tL(|O-;-oa2U0^nh-qQ zLi{--T26Q7xm{$z2A^V2J){KF+PXT0g-U8442k6^`0ii8*W@lFe=s5EyJOVM@ODYG1Em1l4Mm4}YP_V3z}UJxNTg*6^$+z_AyT4_^c) zQP0Q^Iu2kI2W>O6{IJgdMi98@#_6olR;xb3QIMbSTkU#42uAvW0xqTlPN|=4`i*7R z6$@1qkcW?|1d4IXVRD9BN&6Lc71ucUC?Pb(AVHES3*y<_;+R)t5!g597D( zHeVclvqh>@kMh63=JOs3^V+Qc65E>X6a>-e)SXLd8L$$F44H#tK&rFX^;D&V#hUi( z{|szQQ{KaWh`0WSYI_Zmn|JP{a9U441cQf)@$@I| zw~G#3s8SKAil^J6p~O9VS*E7+AC>+pu$N~qqR5^=o9FcB|HX^B{y$(5hRdu&!op^d zf>ik3`}c-`LqSq>$~pY2?hn#};RBioNvn93>>?$y|CQ80&gr4FR*$U1f2qy?hZMwo z_Tixmg3zb-5fOZEW*8{mZ-e0P5~+hgh24^s_Pdx8Fo(!~%Aj=dEs3yPqmlfE?TeRi zNacZJ%gR02oJ)Lr3CD>sq5J{(jP*>Lf`unHbdZ_oUWSv(vNY=&B+PT%j{*;`F}$p z)+wj!HXjWsBOSOpD4?v<-SqTQ5c(1BB*XpWczt6d2>OisJ1e>9qa|~duPk}r{;GBG`@6q_dlC`tM8LloeRkcbEkFK?CF$iI=QQ_J(zBhuhXAP0xq zlG@jHFkcr0pn-!XiXcS&fJ2spEV)C@1C02IYWc7?9!*b%0!^y6g-up)@NM{BU?qT8 zn|*zWv}0|ufriI!a64+QziD3}@P8SHcw|4^l+zBC9IMr@A65-yY$o9#>3%M@a%$(u zY)+az-@ziwf_DD4yj|u3!u3Ml^E`l>L4`i=vE8CFpt;PiUu6)SW@3`%PYOJbJFo$M zFrv{M#-Idx_P$)rTu}7Sul}rITcTAjmj{%G)ZRc4uWTN364?4F~5w;|O~ zrM^nb%7z=ughdJIvn@oQ-ULu8c(-mPGHKT{X2CQtnus+%^@}!KywkHaLesi z=s~krVM|h^{sPU_ed%9A3{u>X-TEfEtz99qAk#k9*s^;UUb(IU=rM$e51`G%&z(Cr z+($o2jOyX5*Fde(`!@GZ`t4EOsY4lwK?e%3>A1xS@Oyx3wF>V;A!gMn*kX&kM8dcbAf;~KU9>7gae2*nJ|SCgMG@V&0kpV$UJ4V?U&VX zor=aI^kX_{aw`)g!stUV_H$hiKuT-OwoxwD1yI#g!+f~(Inr&Y_V@C7{_0hNR0N3a zskyj@rZ|vt#ca(Vnjs3xR4gprQ%2vO4LY>8mWKG1IokDu#KRaI)>JsTy^mrKb2 z!Y~CKBRwrm^i)-0+6~%p(+rn?jaWe6>%Rk+#rw(7`^u+xG>g{4x?)G zHs~Iq4_dR(oPuu6XGm|^&>-!rX!wMXuHUkeNihIA=c9C2^xFqx8=&KpD?C>1iXdZh zs4kJ>KF@i_tYQgFj!Blj|eRt6yX*qmQ;# z6E)FpeY-HD$wK0gV13-aT!ekI3++}@$`=PcrWIAD_1a6YIa~*}PoPTjH<6u>?mtLEpWVD_32_>$JNMz<=P zxxnA95y&K8B!PsJ3WX~SQEY{@ZnK#VA-o94gx^=xY^pqe#Dazay2YfgUdp$&=_`Ic`!g;|7yFy``4g z0NX*~`je2?sjxnPOmnK(?c`u=VJb|sxY`Zea0|$nQ98>$1)yY=EG_epkr^nMjMgUV zXroS<_mJ_=7^iW-G(Z`z+Yq4Uy@rR?K%?+hA!lY~g`tMAr`*=KYInlNX|q!V=0skO zv`=0{$sGK*wFIpsj2OjWW1%W>(GsX{RnSR*+KE{znhWx#7J{AUdFv5^>hRX(DyO83 zBisKnBSClTK1WZFk|H$4kh${GGgf9Z#`u-?JL zoBAn=>bV4iZ}h!BA3t_Lir0x zf1~n^O4JA2?WGP6F~-*8-(CaQlLP*ULJY|HZWwY44h)>=(}qyqbHV(uW!y*-X%eO> z41f0Q`qyALkh0#y-SZXa6C*^NA62zCZU53))%9APL= zWKNLoT+bC;$FKVTnq{3Y=4#_nDF-4P!F$l=MdSnpdQxRh2>kx%464cU6Piab7TMG* zAtv@5IAdfe2uLYRm2<0xZ!)H^fBSEw_fJwjyK5tBHXJ}Nbb!Dxu3Wy{c^-!+4uD?M_y(iP$8$?H1EyX^~YWg%+a+q0oICyuHPO_KZquD_vV^XPtX2EOO8I_L6{A zNq+O@TsF-1F;uR;k&1vhB_o(;P^oq)gR%t)lTuL}&pmO-iaB8tb;>^shAwZC3yTJl zy6tMg{FuVrA#qWagdSR z+<^;~zivId_s4YTx$#!<=?>$rB(G72$?IW(4!+h~a;EA#(CUV^w*feNpD8dt-7rUx zZOXg;gPahi{UAGK>#_j_1R1FcXcdTadCEO7J*f-oV$d^nLU`VsBs)<)ftkpunVm6o z;!vilQ)CtACTw#GH1RnVMoFDbm*E~DRM=;@fD8qjm?IA6HCuP@tA zFV1lW${h5UGzEhuBZ>ga5T-;GA^Yll@L~SSL@ouI2Z;8mMtfzbNaE@p+78X*b^L{5 zO_-{2I^LTxJ$_ai*pVsj=-d<Ptik>MUhrID7FMk)CI7JvjKiohKAd@}=j(+2uL zaUVV-UGFV%xCgL9)8Y`S(tSE>E>aB_S^w@KpqU0pZSOi_{MY;wT-;rc(TV z9UHq33I-(NK{_|uTc09)Z1AaO9YEGsqSU%qmJ1|WX)(~BQGsO94}bx>Y2!ftpaia; zK8|2M1n>LB+lWZR|?PRI2mfDI(YkuYfr13~CvVrvBbmY9uDt8v^1pftE@ z{Pdqd$2xS3Q)fQn9YQN79@dz>7Y=o9>_xl(v!GsS}5Ch~$7paLi)Da4R$3ly}8T(t>? z^&YTBkOE3ZZNtu{IX#(%fn|k>M1wLrKA6ac+)-3N@ou5|0^RyDUoc8uKBqnAs?uFt3=kx+jd)_;%q(@l@

    t^ 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

    p4g2ZE@3 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 literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/ContractContract.png b/packages/artplayer-document/static/img/ContractContract.png new file mode 100644 index 0000000000000000000000000000000000000000..e71144da3a7382bb0ad8da6762375af2cef4b8fa GIT binary patch literal 34904 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 literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/RepaymentInformation.png b/packages/artplayer-document/static/img/RepaymentInformation.png new file mode 100644 index 0000000000000000000000000000000000000000..615840ea61fa2bcdcdd454204d40375236e0d9f1 GIT binary patch literal 41409 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ȅSXqyVps|PNJ-N)0F%Nbpb#--! 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�GY^zeNff6H?oo~kyX<{xK&t`7cm^a2`%=P>|UfuH~sxHv$nl|G66V){I%*V zr;{k@mttFSb$549j53DpY&p&I6+tS7mnvc7Ut2v??hb z{+u6$MGaQhD?u=NkPq> z2O<31!!*{y7?acA4rHMLMxKM=*>sb*#1E^qwu0}F2g-%?EBk|I3X1x`u;s&j8-0CP zcW~aaO?MKL*BE9$C~Sq{SXg0999$SK(t5U(?ZOnaWCs@G)AJ=i3@O|&-rAz z!46`@oa4DBtUDjInNn*j8pVpn#>VGTumX)aw**`n;kloSc>&5pJezt%}=>s>o#SaS-30nHwU}Dg4bm6!exoc{3IEG!`49;uiYS2l2 z@3o&i`J`I`rtCPH-f%TkEl9TD%F2DdkSfoQz6$Nu+6d%Olv|>_m(z|n+Ip_Io@cFH zqs&Rbx&@HL71n<%Q&Xd709g~%G;lbS08-PeAbpH+w*l``kO-`By!Fk<$Otfpi^WD? zs7Kb5pE$0YFG#!VJ`H1~Z}&celX=~tXIJV;Xy;!HheRPvhu0~Ef<6@6xd3kWeh?Db z^%dpil|(sk{DEIj*<&o%N8EW2O#Bcgulg0DqN27( zFi&vbJ`RA&FQiU)_a5rdWL>LM;(Mo}wY^gp`FDsiqsk6}#(B_G>R;v6Udu9!_rCnz zOJs@Ucu#E!|BL7N99Oib)y+zs#m1`;`{^jm7d!4CK8t~2hQ?c9qbKVY2uj{jo>Js) zRPp*X7qH%!m@tZiP1IJ3$=aL!$q6Tg2XGH0j3trXdNUP=TfG#7{*ukzJ3=RuLp$N6gn zzVaDZ=Ve?WXV0hA$fjdnV}KHk>9GbSGatLb2=|fo9GWb^NUp@$iDb(Nu?eqFA&_p5 zr2UrzAsmG4ff_~H2($o@iI=CB-6KbS6Xk=weYpXFBy=O!wGhZQSLc_WmerqcZkJ*9l zz?H|--8uj5w>wpr`<;hv>-Ob-D{WV1J=>?Yc^*E<1zJPUkMiNZf3~d-3k&P}Y$E4h z*4t1P77l;2z%Ro+a&(y?GRQ+^{+KT^L2~H*WI5BW0mb|tQ|b)g#wicHjEj)+@M$by_JF+C$HChLkBe5wm*# zurDfSAWAja(#*^gK;RN^M*~&e3}r1H{RNe(hLAAGjr1HFmEd#w9Nz~fpppx(LI|&I-?`Zq< zDvf;Qo^3p(#EFC%opGZBabmVjB_1B8M~`}|EayPBl5d%cwl+C{$c*&Wi5)2oRW0o5 zPij6QG!SU_pm!s(A^@m%7BCvme71U3n~%E4r}6y(n;u~OcHR|riFn*OigTGCoE@9i z9Bb7V{d^@HUjsM3*hpJvPpn-gkWy7P1a=FK6-ZCkqW7ity4`bitOpS5#gIQdQgy35 zUuD}UQGj41QUnszz36B!D53L_@2kDee_8EaGfqoGV?N+FFHx6f<#>>vB!b*9rR*bu zzs0w<>Wz3&V|aiDR^{L>Zo|RpZ;A5O8=j?GkrknuSnk?+!La^;8aq1_th@0*Sa%Oa z7HJ?;3o%2$M{eMbT+5e!VBGn@HFb09$Oyxdbf2=I!?W@zNYOj458hC2Ya5ibdErx2 zRAnG*sTr%sjpObjGBd7CCoH1%(i3(Cq4+XFmUQRwNte2XwH`zdeSCs(_w%h^Qha#x zJE8vPCNf@2f=UTy<&mLy%09as zB)SEd?V@W~Sy?HBCPx8EN<70Cpu$o*14r6wM})&&bRO7SL-UXn8Xqr)-`5YtzaLf& z>!iZd*I{W?^m^N4)*w9`-n|K?c30@^ptBu1=G4;1ZpJ5k8`nsNK+57zsqHYc~9estzT#wiE zv_WdVSR3Vo4H6h3;(zO=8bZctX&|KJJM>s?NWlg&k@_UHrQ5uAU>x0>MsZ~O1;89| z71j%4O7G;V2cvkcL_4{qw|BjVy2Duc)NgbA=VmvNoiUqTCzI_MdCx_3zpoEHtHPrzUH6IOTCi$aIYhzJuOq9vWgg zb1%$VzhOfznp+Do1aO~oo4H}@e*aqoZ+Bw{Pz4i!@+YSHyQ=4NZ<8f;kk(5`vk+c)xkG!s?=LiV(y?Yle zTD#Sm=N=U~Wo`WS?|+hPODZ!$3t7zJYkl9(a(zDs@HYkx)tcSJ{j9(i0?ws=|SVZNsj>h`x>Je9RB(e_`?w((;Q}uU_@& zvwZ<S zs&n*-(4>_@ZO#MFhix)|)H?$^oQ2R^c^Os+5zQRx@CgWfL^sX>&7jS3F3*yCZrMQM z8O|4eC(dIbO3ibf-hJO{)EB? zeZw!u?w$z(f;FOFQZ^q*e&^J8EfpaBCl|)XoV+%L2{1zSYIOz4b=v2I=O01l_8cAQ z7!|RV(r-kq?SmsWvs-Ep%Gis@gT)cdwBA1}g?oEoXO!XaDggmH0?_?4bcP3%xl0bz z1#n|r#Lj*!XZQqVW0qAuD8okZn%Nt^>18?EK^qfbtB>A}1wmexTb|M>4gplGR^|yy zMa9n;jxh4McqDpPR^Xd(z_*f6#@?b+neY!Z?iL_88=vEWHygKG=K?o&x4v_3_BByo zq)}h;7X#Fo4@I0O&ht^}2ps_dQuO9wymPr@05CZ&z$BXfj#Q&#RKVeLDToPib>QgB zG=tt&_0(mUEz0cHG*)WxZT`%eGnEtt@n_)COrgi?Hw?C}TbLs}gTRgH={q5`**D^Qgj1Sxru#zQ@d`LKEfE-M6sZ~0duJwbxWn^IrK#64#6#cLlb8=Ant^xD; zxkC_Ge10na62i@3OVSG*#EL0^E?D|i>Fd|m6%}o;-}w_q^iu4?deEDPUN@zpW+cnm zy9?E}AF2?Xh63HSNA&ge*8xVI)dsrE+mI99#eY3;bk+U#YiN)2)J7VCMZR4@K>^C} zq0>Qz2<@*bDz@Q))@P^lOW(*A7_J)#qLn}zS z#!*jSe-UPFd7!B0yqEA1I)J9B8s%#U6w)Z4;I4|+=Wzm6aOE>z!$^`>*10b&gqyPp zVYUu&`#j*xK;IDUC*j4CQ4ta6QAwp9)kRU|h4~z&lg5gG@PMUJN70izLyd}U6el3M z5V6%B3POH2FXOaGrTXA{j25&uo8{dsx#%|IJco0iX*K$eXMTzz4i{~ zLT)`TV}kqbMtt0(|ENq|GUMl?e(WE52``IzPCcIsS_eUkyW)vEwB;JZWZhbg1K(3T zn5%x1<{}^mAYRTz%k(_v9`AFCG8=dI5#2C7YmE#~JFjR+WQ9uLiP_hM)af;v4=}x3 zG0@v#*yM|%!C;5gq=ze`P@h?2_vS;WXN+aE2aZf*{|r0lhbu+>3Z78jZ;#<6AF)Fd zn^14eA=7tLJM^@lfJ$wIQ&J38f^6760Ur@dN{T+o_NLnd%OR^nYk&cq8Bojy%Tt`0 z0ncF{%z6|b0k|SXDa#fzIsbM)LC_~zA=9|vrICIfdOo*!S4`TxSrfg7bt0hZJUzJ1 zA$fAsE=U75FR68S>|FK-mZ2KzZge1a+|wW_&ZepVxRyt0c*fr;jqt3$Uq}7*$t(6k zZ@iX;Y-Jfo~Rd~IP|18O@q6}6+tRPIYUI9KTMBDVX@2UED+! zrv_Dq%V;hEv(*f{wi861JSrTiSOwu`8@6OpQW9szdS=B`D)Uwt0a>wzoB-nwHW@*= zBZdvjCFklKt)H1va+gj1C6$@-Q*p)OVF&XX$snCZ*K&pq70aPc6-3GCK6jl>{Zo5z z2sV$-U^2)}pV@ioQxMz3g4N2v#M03&tbZAuKPc$d?{!XWf}>9Madqr$RZA$E7ozv0 z?1I6jjn4DVks11Mx2+olT7;-lIsx!Y0Okvg_a(UAQ%C8=(2%VE-eF=wPT#~V|59?dh6_p!;{_>GPl^xf2qy zgkBt`8XmZ%^XXpdxJ=i_Z@rY$Q!M6$YE37|coGx9ix0Wm2IO9Z(#8ioi{#^p;NE1w zf~>CoE6C)n5%w6_eqNV#aiq%pY5!FfN+0h>9{%lW5d0(0KJaKk_8cr$PuRF}W^ghq zv}uR93oKhd-o1U<-^CIBy8i#p-a&G-?#6X^=HP!@$hVv`J^>Y0z(ORNe1(n=)V^LD z!)!l(py2=geP=O&SJK_Y#kzegggDL9?!aQUWEmqLx11L9zTIN7*CsKJENMErPG{bG zouUC6z^m}pByY9tS5)Ym!_2Z`2BoZ+!`od9};*e?%=gHLOmvJl6wST#1_K$&6o@P_s4>uWT{I^tMAZ>R3I zy|MW0*|P?au45~IZ0$Jc+VmDjkxfkI=TV-9Pynr8O)KhLd~=-ha1+-MvRbja=xAnJ zie#Oaxa06B8@(@0$KeeU659abK0vn`@Zo&}&9S%GT`}VQA_zAIBJ?j~59X9Mi&|!f zq;Z;i`YKIDIpFpvR8Vcb-VA3W2E}@crFE-}JX&n#HYfXt< zt{(|B4&zEl^0oa%fRs2Pa})%i-KKqt6C?oFbw02^LWl|d1P0jm^;!-ud^3GucubKQ z&r)R%co_qSD{geto#}S-@bKJ5F^&Mu0l6Up1D?fu?Y$SD7`#dB(bK8>aE{*_wp~vE zKiomrK}Sbt8o~@3NvnS4-kjG}OfPFBAbBVM?&i_x?Ck84Lu|_gaUO&A;FEqunrVI! zB(Ek`yL-(uUzv(oZQjeaU$EmY+xttgef_4hKorG(d~`a1rg1W7_C!mm#@YcbDEFfv z#_ZPf+%W!W^3gFTd--Xs2boaTv?%6ZeY;G^zi=BwYpern-0uDV<*(*a2u?M%u<*iF zqH_*O+JX#T_uFt^boA^G>zijj>5}=|F{8)70bAm&{#R%7A;2(Fz_u>P+zh<0h9@$f z3YsPgo0n9oL>=2$;p=B4^P2gldhz1LJ;*SBTQS)9yVw8z-pN7)U%v;JEo0*=@U5-R zSYe6~enw>C`?S9_${N*z!>=D(F+c0D`YuPg*~ci)@YIgIadpfs67dJeDZ}g?8}{(u ze7iyl$0oS7OZ^MyXK=dT#+V3Pq_ajqb^lRN270j7KOLI-jk9ZJ?jP@vUjNcReY-9E z(4PaXm0sg&_o3@@Kix9Q4$-=@Ov$$%=pi;BE2d8LGY>;5Nw4%@UE+U>D*vsY-8IVd z2pqJHN{T=1#}EA9-Sz*SxAY&sjh7p1&jK^m*Pe`*V7{$#n25%ctsSss1mmbQYXAJ5 k8;>XbH_PJB|2iZmcd$O>u(DGy9%Yoasw&2AIdJO#0NMQ&fdBvi literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/SubmitBankCard.png b/packages/artplayer-document/static/img/SubmitBankCard.png new file mode 100644 index 0000000000000000000000000000000000000000..458714c62cd4e1ad16cde674a9cb0efd62157789 GIT binary patch literal 48858 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 A6aWAK literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/docusaurus.png b/packages/artplayer-document/static/img/docusaurus.png deleted file mode 100644 index f458149e3c8f53335f28fbc162ae67f55575c881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5142 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 F{0H{b<4^zq diff --git a/packages/artplayer-document/static/img/favicon.ico b/packages/artplayer-document/static/img/favicon.ico index c01d54bcd39a5f853428f3cd5aa0f383d963c484..fe35e89096c30cb884e3d9fb0d8449e7561cf129 100644 GIT binary patch literal 4286 zcmcJQ3sh6*9l)<=XQv|%l0Zm8cm^bodlTEq+@@=5+fCPXeXTl6t@T~cu&v_oXr*ju zW%xi##?oJ`JmYPXsKd>9#DDOyk9pDlGLh%|NhZ~W1i4t4#WBJ-TTkY z_xpd}|NFj65L56kHI)edCk}84LO>9N9KjIr1QLwj{@`~p%sbo(5JX=Cd3~TsF~$#g zeJ?jK7K)n~55+Bvy9Trh^*}Qzz;;X(vb|bQ0zUsBxG|t5U&6jaddGs7_mR-Ac_97( zx|fFY_tcQk*Z9Ev%ftD*tEtA`2C@O4t4HdPeMk+WMyio2tYIa#6-YU978ymt)hvMX zzXG2do9d8lPxZ8)_3l?i4QZ*Up=OFPq$L@HS|t(b#uN*% z&)|9u?{5n4?<}V@JvCHwe z7NI}5&qFzWEEZh#d&;-FDwO$`YsmuKhg&e`t@yhlWCyYfIfXvMw zako;BYe3gsLw<+*kVe73H=)K5BR)gl5)WP z7ykTd+pb#IUZTwHs#LDOQb+C?&?r2Uih`?kljHBxP>@%) zyM8`}S{q8~`94ip&%kdJ37-cNvRs!1(Q@Fx9~2~mmD z+;Yim>l>11Ek{#cv6_-r*>vK+(jN#5Tua2e=+yXH=R<=1?uUeGYsmQzy6=Nq_?un@ zrLU3y%J8CWu1S>fl7*S}n&pv{Z0p9P4Yn`D@7nF6_Z&mQ8d}3Y;93y-sV9kl+WQmU z3D=NRAl)KMm1FXEzPdKD?vzlr`&5KE-FC`cX1erX6~JY_VczhF8ndDXlsHQOpn z-e8YOc-N5`zuS=~P}Ar5%}!6uCoU(q)qN`Z;&2Y@ijQKOuQQlte*(@y7CGHXkm=V5 zQm&7}TpppMx*W{m7-B_6k-POCf2~mJK{nF>8FP$~{wEVi7MlaftF5}kjkbdch4#hq zd+0P_y_3&B=zKKhsJn>sg{Pf;Y1qf?^I923-;pS@?{$XRpFVyu&YJEb3bKJv%JfXk zB@=z?krRj=`A;q~+^-MoLHZj5Onur2Y4c5xy37K}Z&@KR&j#^D_M4(I$3R@Yv!4H< zdw$GuPZIC^u#ny5ox>dT?ZJ8PLHvk*ynp;PN$LnP%@CXy7Ae!uK>tSM6yhM|x>2k> zNFPW4AJPA^8B$hSASuTR34cTX4m$`dXozccLhMJbo4k|mtDLVqRapCHSUSHb%HkK} z+Is>0wd0)=T`Q$JLM77^m$3NIhR)Z8b6<>e{{++GkDJIjQC$8D6A@oJK*(nq+0r@2 zndvW@-jTd!ZcWa%(1{ytqj>IssKfz+8uTAP|EI11uf@GCy2Gnt^?Gv|2H!~>H;s6a zwuwBE#4{GrgnXWBie#CUgSDTTxXG3${)fE<&mDVQ9UX}MzzKNn1h}U?E4ioK1kd6j zSQbAE$36qs{zmk-M&gO&nUw7`@$*eiLcG(-5tY-kvGzq+`wrf5w}Jb)=W$M}=WaLA sw(Era77$FUpMyd8KbVcby_aC0Q;@r#(|F}ZZj0~+Mi3xU0j@pzZ-<4R5&!@I literal 3626 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 SjPphRDQ&DANW~U=6aNEq|27{0 literal 0 HcmV?d00001 diff --git a/packages/artplayer-document/static/img/logo.svg b/packages/artplayer-document/static/img/logo.svg deleted file mode 100644 index 9db6d0d06..000000000 --- a/packages/artplayer-document/static/img/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/packages/artplayer-document/static/img/tutorial/docsVersionDropdown.png b/packages/artplayer-document/static/img/tutorial/docsVersionDropdown.png deleted file mode 100644 index ff1cbe68893d205dc0a6821bfa74d8e7d25c09cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25102 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 Js!v|N^*`%a2QvTw diff --git a/packages/artplayer-document/static/img/tutorial/localeDropdown.png b/packages/artplayer-document/static/img/tutorial/localeDropdown.png deleted file mode 100644 index d7163f96752499e2e39e771d4d5e9e42c68677aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30020 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 diff --git a/packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg b/packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg deleted file mode 100644 index 431cef2f7..000000000 --- a/packages/artplayer-document/static/img/undraw_docusaurus_mountain.svg +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/artplayer-document/static/img/undraw_docusaurus_react.svg b/packages/artplayer-document/static/img/undraw_docusaurus_react.svg deleted file mode 100644 index e41705043..000000000 --- a/packages/artplayer-document/static/img/undraw_docusaurus_react.svg +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/artplayer-document/static/img/undraw_docusaurus_tree.svg b/packages/artplayer-document/static/img/undraw_docusaurus_tree.svg deleted file mode 100644 index a05cc03dd..000000000 --- a/packages/artplayer-document/static/img/undraw_docusaurus_tree.svg +++ /dev/null @@ -1 +0,0 @@ -docu_tree \ No newline at end of file From 3b79c1751cba408459367dc117cdb49cffc77e7a Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 16:11:20 +0800 Subject: [PATCH 07/61] Update docusaurus.config.js --- packages/artplayer-document/docusaurus.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/artplayer-document/docusaurus.config.js b/packages/artplayer-document/docusaurus.config.js index dd7ed5aca..49cfb5451 100644 --- a/packages/artplayer-document/docusaurus.config.js +++ b/packages/artplayer-document/docusaurus.config.js @@ -8,6 +8,8 @@ module.exports = { baseUrl: '/document/', onBrokenLinks: 'ignore', onBrokenMarkdownLinks: 'ignore', + organizationName: 'zhw2590582', + projectName: 'Artplayer', favicon: 'img/favicon.ico', clientModules: [require.resolve('./src/script/main.js')], themeConfig: { From b2d27cd4287ea44becf71801683261d5fe8b9f70 Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 16:25:34 +0800 Subject: [PATCH 08/61] update --- README.md | 22 +++------------------- docs/index.html | 2 +- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 08e0a4875..a95bf20e7 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,17 @@ # ArtPlayer.js -- [中文介绍](./README-CN.md) - > :art: ArtPlayer.js is a modern and full featured HTML5 video player ![version](https://badgen.net/npm/v/artplayer) ![license](https://badgen.net/npm/license/artplayer) ![size](https://badgen.net/bundlephobia/minzip/artplayer) [![npm Downloads](https://img.shields.io/npm/dt/artplayer.svg)](https://www.npmjs.com/package/artplayer) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/354e9953b70a4791a5a46194d587c707)](https://www.codacy.com/app/zhw2590582/ArtPlayer?utm_source=github.com&utm_medium=referral&utm_content=zhw2590582/ArtPlayer&utm_campaign=Badge_Grade) ![Screenshot](./images/screenshot.png) ## Features -- Size - `25kB` minified and gzipped +- Size - `27kB` minified and gzipped - Subtitle - Support for `.VTT`, `.ASS` and `.SRT` formats - Customizable - `Right Click Menu`, `Business Layer`, `Video Controller` and `Settings Panel` - Controller - `Quality Switch`, `Subtitle Switch`, `Play Speed`, `Aspect Ratio`, `Video Flip`, `Fullscreen`, `Picture In Picture`, `Screenshot`, `Thumbnail`, `Adaptive Size`, `Highlight` and `Hotkey`... @@ -25,18 +22,6 @@ - API - Rich interface and response events, easy to interface with business or custom plugin - I18N - support for internationalization of controls -## Ecosystem - -| Project | Description | Demo | -| --------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| [artplayer-plugin-danmuku](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-plugin-danmuku) | Danmuku plugin | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-danmuku.js&example=danmuku) | -| [artplayer-plugin-gif](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-plugin-gif) | Gif plugin | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-gif.js&example=gif) | -| [artplayer-plugin-backlight](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-plugin-backlight) | Backlight plugin | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-backlight.js&example=backlight) | -| [artplayer-tool-thumbnail](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-tool-thumbnail) | Thumbnail tool | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-tool-thumbnail.js&example=thumbnail) | -| [artplayer-tool-github](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-tool-github) | Github Danmuku tool | [demo](https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-tool-github.js%0A.%2Funcompiled%2Fartplayer-plugin-danmuku.js&example=github) | | -| [artplayer-react](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-react) | React Component | [demo](https://codesandbox.io/s/n74859y9rl) | -| [artplayer-vue](https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-vue) | Vue Component | [demo](https://codesandbox.io/s/thirsty-sunset-3lz7m) | - ## Homepage [https://artplayer.org](https://artplayer.org) @@ -99,8 +84,7 @@ var art = new Artplayer({ Installation dependency: ```bash -$ npm install -$ npm run bootstrap +$ npm install && npm run bootstrap ``` Run the developer mode and select the project you want to develop: @@ -130,4 +114,4 @@ We accept donations through these channels: ## License -MIT © [Harvey Zack](https://sleepy.im/) +MIT © Harvey Zack diff --git a/docs/index.html b/docs/index.html index c99531661..edcc02af4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,7 +7,7 @@ - + From 3210833e73bc91a76a3b227ad4af4234c9fab2a9 Mon Sep 17 00:00:00 2001 From: Harvey Date: Wed, 24 Nov 2021 16:50:48 +0800 Subject: [PATCH 09/61] update --- docs/document/.nojekyll | 0 docs/document/404.html | 17 + docs/document/assets/css/styles.1f01327e.css | 25 + ...Lloan-92b1919198379be8ee12655c43a0a212.png | Bin 0 -> 30261 bytes ...ation-5dc7e081b17eadbcf9a95a42d465e468.png | Bin 0 -> 49427 bytes ...tract-3491149c86bd6056c1207cb64ce3de8d.png | Bin 0 -> 34904 bytes ...ation-3a7c45258cee09eb3e6e7bd3bb4f4064.png | Bin 0 -> 41409 bytes ...kCard-973d354050c9f0bf6d647d4785e9c754.png | Bin 0 -> 48858 bytes docs/document/assets/js/0a02cac0.f0bce8c0.js | 1 + docs/document/assets/js/0a29ddce.220313c9.js | 1 + docs/document/assets/js/134cb88d.8fccc33b.js | 1 + docs/document/assets/js/16507a2a.fdc241af.js | 1 + docs/document/assets/js/17896441.ef0b6bbe.js | 1 + docs/document/assets/js/1a67a6ef.d9ab7487.js | 1 + docs/document/assets/js/1ae79f9a.908ae50c.js | 1 + docs/document/assets/js/1b08f3f6.9ff50f36.js | 1 + docs/document/assets/js/1be78505.e476c2ed.js | 1 + docs/document/assets/js/20de075e.9c90407a.js | 1 + docs/document/assets/js/2507de72.445eb175.js | 1 + docs/document/assets/js/2538.81bde722.js | 1 + docs/document/assets/js/25894e64.7b006a3a.js | 1 + docs/document/assets/js/27c4af28.042accd9.js | 1 + docs/document/assets/js/298c6703.2729019d.js | 1 + docs/document/assets/js/3107.9b5e7f75.js | 1 + docs/document/assets/js/3149.015be90d.js | 2 + .../assets/js/3149.015be90d.js.LICENSE.txt | 5 + docs/document/assets/js/31c34e48.7ab75273.js | 1 + docs/document/assets/js/3466b11f.08c57717.js | 1 + docs/document/assets/js/36b2dbba.6b021475.js | 1 + docs/document/assets/js/4159.aa3137f4.js | 1 + docs/document/assets/js/477a14c5.b9546c86.js | 1 + docs/document/assets/js/4eecbd2e.e48fb3ed.js | 1 + docs/document/assets/js/5307a45c.60afe657.js | 1 + docs/document/assets/js/5d257fcd.de131e0c.js | 1 + docs/document/assets/js/7086e348.e17cd167.js | 1 + docs/document/assets/js/759.e1743857.js | 2 + .../assets/js/759.e1743857.js.LICENSE.txt | 61 + docs/document/assets/js/7646b534.2fe2b4c2.js | 1 + docs/document/assets/js/797.228560e8.js | 2 + .../assets/js/797.228560e8.js.LICENSE.txt | 14 + docs/document/assets/js/8171bdc6.8534cb29.js | 1 + docs/document/assets/js/82476eed.f2662f3e.js | 1 + docs/document/assets/js/85bbc3c8.68e87f8e.js | 1 + docs/document/assets/js/86a1bb42.e3537f21.js | 1 + docs/document/assets/js/9355141f.4f6ca000.js | 1 + docs/document/assets/js/935f2afb.977506b4.js | 1 + docs/document/assets/js/96f9ab01.6bc52438.js | 1 + docs/document/assets/js/9efba2fd.b8cee26e.js | 1 + docs/document/assets/js/af90ffd9.87b751a6.js | 1 + docs/document/assets/js/c0737d29.4855a421.js | 1 + docs/document/assets/js/c2c2c87c.107ef98e.js | 1 + docs/document/assets/js/c554111e.8f978538.js | 1 + docs/document/assets/js/c579eb15.3b3c9ffe.js | 1 + docs/document/assets/js/c6173bc3.e47d0982.js | 1 + docs/document/assets/js/ca8cd0b5.7f3f6786.js | 1 + docs/document/assets/js/cb252814.0dd4d1c1.js | 1 + docs/document/assets/js/d599a0fb.081c92bd.js | 1 + docs/document/assets/js/dcd71a53.c16d1e11.js | 1 + docs/document/assets/js/def96cc2.ef7ebc71.js | 1 + docs/document/assets/js/e2ec2894.11c91aac.js | 1 + docs/document/assets/js/e3f60dae.9175d7d5.js | 1 + docs/document/assets/js/e8a938ca.e6cad436.js | 1 + docs/document/assets/js/fcf1cd90.1102402f.js | 1 + docs/document/assets/js/ff064a75.48bea2e6.js | 1 + docs/document/assets/js/main.fedbd408.js | 2 + .../assets/js/main.fedbd408.js.LICENSE.txt | 44 + .../assets/js/runtime~main.9213ef7f.js | 1 + .../Authorization list inquiry/index.html | 17 + .../Bank card inquiry/index.html | 17 + .../Bank card verification/index.html | 17 + .../index.html | 17 + .../Basic Services/Eligible Check/index.html | 17 + .../Basic Services/Get bank list/index.html | 17 + .../Get loan information/index.html | 17 + .../Get repayment VA/index.html | 17 + .../index.html | 17 + .../Get the redirect url/index.html | 17 + .../index.html | 17 + .../Loan agreement inquiry/index.html | 17 + .../Push notification/index.html | 17 + .../Basic Services/Sign agreement/index.html | 17 + .../en/Basic Services/Submit loan/index.html | 17 + .../index.html | 17 + .../index.html | 17 + .../User Registration/index.html | 17 + docs/document/en/Data dictionary/index.html | 17 + .../en/Parameters Instructions/index.html | 17 + docs/document/en/UML Diagram/index.html | 17 + docs/document/img/ApplyForLloan.png | Bin 0 -> 30261 bytes docs/document/img/Authorization.png | Bin 0 -> 49427 bytes docs/document/img/ContractContract.png | Bin 0 -> 34904 bytes docs/document/img/RepaymentInformation.png | Bin 0 -> 41409 bytes docs/document/img/SubmitBankCard.png | Bin 0 -> 48858 bytes docs/document/img/favicon.ico | Bin 0 -> 4286 bytes docs/document/img/logo.png | Bin 0 -> 3760 bytes docs/document/index.html | 17 + docs/document/server.bundle.js | 65182 ++++++++++++++++ .../Authorization list inquiry/index.html | 17 + .../Bank card inquiry/index.html | 17 + .../Bank card verification/index.html | 17 + .../index.html | 17 + .../Basic Services/Eligible Check/index.html | 17 + .../Basic Services/Get bank list/index.html | 17 + .../Get loan information/index.html | 17 + .../Get repayment VA/index.html | 17 + .../index.html | 17 + .../Get the redirect url/index.html | 17 + .../index.html | 17 + .../Loan agreement inquiry/index.html | 17 + .../Push notification/index.html | 17 + .../Basic Services/Sign agreement/index.html | 17 + .../Basic Services/Submit loan/index.html | 17 + .../index.html | 17 + .../index.html | 17 + .../User Registration/index.html | 17 + .../document/zh-cn/Data dictionary/index.html | 17 + .../zh-cn/Parameters Instructions/index.html | 17 + docs/document/zh-cn/UML Diagram/index.html | 17 + docs/document/zh-cn/index.html | 17 + packages/artplayer-document/package.json | 5 +- 120 files changed, 66158 insertions(+), 2 deletions(-) create mode 100644 docs/document/.nojekyll create mode 100644 docs/document/404.html create mode 100644 docs/document/assets/css/styles.1f01327e.css create mode 100644 docs/document/assets/images/ApplyForLloan-92b1919198379be8ee12655c43a0a212.png create mode 100644 docs/document/assets/images/Authorization-5dc7e081b17eadbcf9a95a42d465e468.png create mode 100644 docs/document/assets/images/ContractContract-3491149c86bd6056c1207cb64ce3de8d.png create mode 100644 docs/document/assets/images/RepaymentInformation-3a7c45258cee09eb3e6e7bd3bb4f4064.png create mode 100644 docs/document/assets/images/SubmitBankCard-973d354050c9f0bf6d647d4785e9c754.png create mode 100644 docs/document/assets/js/0a02cac0.f0bce8c0.js create mode 100644 docs/document/assets/js/0a29ddce.220313c9.js create mode 100644 docs/document/assets/js/134cb88d.8fccc33b.js create mode 100644 docs/document/assets/js/16507a2a.fdc241af.js create mode 100644 docs/document/assets/js/17896441.ef0b6bbe.js create mode 100644 docs/document/assets/js/1a67a6ef.d9ab7487.js create mode 100644 docs/document/assets/js/1ae79f9a.908ae50c.js create mode 100644 docs/document/assets/js/1b08f3f6.9ff50f36.js create mode 100644 docs/document/assets/js/1be78505.e476c2ed.js create mode 100644 docs/document/assets/js/20de075e.9c90407a.js create mode 100644 docs/document/assets/js/2507de72.445eb175.js create mode 100644 docs/document/assets/js/2538.81bde722.js create mode 100644 docs/document/assets/js/25894e64.7b006a3a.js create mode 100644 docs/document/assets/js/27c4af28.042accd9.js create mode 100644 docs/document/assets/js/298c6703.2729019d.js create mode 100644 docs/document/assets/js/3107.9b5e7f75.js create mode 100644 docs/document/assets/js/3149.015be90d.js create mode 100644 docs/document/assets/js/3149.015be90d.js.LICENSE.txt create mode 100644 docs/document/assets/js/31c34e48.7ab75273.js create mode 100644 docs/document/assets/js/3466b11f.08c57717.js create mode 100644 docs/document/assets/js/36b2dbba.6b021475.js create mode 100644 docs/document/assets/js/4159.aa3137f4.js create mode 100644 docs/document/assets/js/477a14c5.b9546c86.js create mode 100644 docs/document/assets/js/4eecbd2e.e48fb3ed.js create mode 100644 docs/document/assets/js/5307a45c.60afe657.js create mode 100644 docs/document/assets/js/5d257fcd.de131e0c.js create mode 100644 docs/document/assets/js/7086e348.e17cd167.js create mode 100644 docs/document/assets/js/759.e1743857.js create mode 100644 docs/document/assets/js/759.e1743857.js.LICENSE.txt create mode 100644 docs/document/assets/js/7646b534.2fe2b4c2.js create mode 100644 docs/document/assets/js/797.228560e8.js create mode 100644 docs/document/assets/js/797.228560e8.js.LICENSE.txt create mode 100644 docs/document/assets/js/8171bdc6.8534cb29.js create mode 100644 docs/document/assets/js/82476eed.f2662f3e.js create mode 100644 docs/document/assets/js/85bbc3c8.68e87f8e.js create mode 100644 docs/document/assets/js/86a1bb42.e3537f21.js create mode 100644 docs/document/assets/js/9355141f.4f6ca000.js create mode 100644 docs/document/assets/js/935f2afb.977506b4.js create mode 100644 docs/document/assets/js/96f9ab01.6bc52438.js create mode 100644 docs/document/assets/js/9efba2fd.b8cee26e.js create mode 100644 docs/document/assets/js/af90ffd9.87b751a6.js create mode 100644 docs/document/assets/js/c0737d29.4855a421.js create mode 100644 docs/document/assets/js/c2c2c87c.107ef98e.js create mode 100644 docs/document/assets/js/c554111e.8f978538.js create mode 100644 docs/document/assets/js/c579eb15.3b3c9ffe.js create mode 100644 docs/document/assets/js/c6173bc3.e47d0982.js create mode 100644 docs/document/assets/js/ca8cd0b5.7f3f6786.js create mode 100644 docs/document/assets/js/cb252814.0dd4d1c1.js create mode 100644 docs/document/assets/js/d599a0fb.081c92bd.js create mode 100644 docs/document/assets/js/dcd71a53.c16d1e11.js create mode 100644 docs/document/assets/js/def96cc2.ef7ebc71.js create mode 100644 docs/document/assets/js/e2ec2894.11c91aac.js create mode 100644 docs/document/assets/js/e3f60dae.9175d7d5.js create mode 100644 docs/document/assets/js/e8a938ca.e6cad436.js create mode 100644 docs/document/assets/js/fcf1cd90.1102402f.js create mode 100644 docs/document/assets/js/ff064a75.48bea2e6.js create mode 100644 docs/document/assets/js/main.fedbd408.js create mode 100644 docs/document/assets/js/main.fedbd408.js.LICENSE.txt create mode 100644 docs/document/assets/js/runtime~main.9213ef7f.js create mode 100644 docs/document/en/Basic Services/Authorization list inquiry/index.html create mode 100644 docs/document/en/Basic Services/Bank card inquiry/index.html create mode 100644 docs/document/en/Basic Services/Bank card verification/index.html create mode 100644 docs/document/en/Basic Services/Call back for authorization status/index.html create mode 100644 docs/document/en/Basic Services/Eligible Check/index.html create mode 100644 docs/document/en/Basic Services/Get bank list/index.html create mode 100644 docs/document/en/Basic Services/Get loan information/index.html create mode 100644 docs/document/en/Basic Services/Get repayment VA/index.html create mode 100644 docs/document/en/Basic Services/Get the authorization detail page/index.html create mode 100644 docs/document/en/Basic Services/Get the redirect url/index.html create mode 100644 docs/document/en/Basic Services/Get the token for uploading image/index.html create mode 100644 docs/document/en/Basic Services/Loan agreement inquiry/index.html create mode 100644 docs/document/en/Basic Services/Push notification/index.html create mode 100644 docs/document/en/Basic Services/Sign agreement/index.html create mode 100644 docs/document/en/Basic Services/Submit loan/index.html create mode 100644 docs/document/en/Basic Services/Upload Image - By sending file stream/index.html create mode 100644 docs/document/en/Basic Services/Upload Image - By using base64 or url format/index.html create mode 100644 docs/document/en/Basic Services/User Registration/index.html create mode 100644 docs/document/en/Data dictionary/index.html create mode 100644 docs/document/en/Parameters Instructions/index.html create mode 100644 docs/document/en/UML Diagram/index.html create mode 100644 docs/document/img/ApplyForLloan.png create mode 100644 docs/document/img/Authorization.png create mode 100644 docs/document/img/ContractContract.png create mode 100644 docs/document/img/RepaymentInformation.png create mode 100644 docs/document/img/SubmitBankCard.png create mode 100644 docs/document/img/favicon.ico create mode 100644 docs/document/img/logo.png create mode 100644 docs/document/index.html create mode 100644 docs/document/server.bundle.js create mode 100644 docs/document/zh-cn/Basic Services/Authorization list inquiry/index.html create mode 100644 docs/document/zh-cn/Basic Services/Bank card inquiry/index.html create mode 100644 docs/document/zh-cn/Basic Services/Bank card verification/index.html create mode 100644 docs/document/zh-cn/Basic Services/Call back for authorization status/index.html create mode 100644 docs/document/zh-cn/Basic Services/Eligible Check/index.html create mode 100644 docs/document/zh-cn/Basic Services/Get bank list/index.html create mode 100644 docs/document/zh-cn/Basic Services/Get loan information/index.html create mode 100644 docs/document/zh-cn/Basic Services/Get repayment VA/index.html create mode 100644 docs/document/zh-cn/Basic Services/Get the authorization detail page/index.html create mode 100644 docs/document/zh-cn/Basic Services/Get the redirect url/index.html create mode 100644 docs/document/zh-cn/Basic Services/Get the token for uploading image/index.html create mode 100644 docs/document/zh-cn/Basic Services/Loan agreement inquiry/index.html create mode 100644 docs/document/zh-cn/Basic Services/Push notification/index.html create mode 100644 docs/document/zh-cn/Basic Services/Sign agreement/index.html create mode 100644 docs/document/zh-cn/Basic Services/Submit loan/index.html create mode 100644 docs/document/zh-cn/Basic Services/Upload Image - By sending file stream/index.html create mode 100644 docs/document/zh-cn/Basic Services/Upload Image - By using base64 or url format/index.html create mode 100644 docs/document/zh-cn/Basic Services/User Registration/index.html create mode 100644 docs/document/zh-cn/Data dictionary/index.html create mode 100644 docs/document/zh-cn/Parameters Instructions/index.html create mode 100644 docs/document/zh-cn/UML Diagram/index.html create mode 100644 docs/document/zh-cn/index.html diff --git a/docs/document/.nojekyll b/docs/document/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/docs/document/404.html b/docs/document/404.html new file mode 100644 index 000000000..1bd1d24f2 --- /dev/null +++ b/docs/document/404.html @@ -0,0 +1,17 @@ + + + + + + +Page Not Found | Artplayer.js + + + + +

    +

    Page Not Found

    We could not find what you were looking for.

    Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

    + + + + \ No newline at end of file diff --git a/docs/document/assets/css/styles.1f01327e.css b/docs/document/assets/css/styles.1f01327e.css new file mode 100644 index 000000000..bf5ece173 --- /dev/null +++ b/docs/document/assets/css/styles.1f01327e.css @@ -0,0 +1,25 @@ +.row .col,img{max-width:100%}body,ol ol,ol ul,ul ol,ul ul{margin:0}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.react-toggle{-webkit-user-select:none;-ms-user-select:none}.admonition-icon,.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.navbar__title,.text--truncate{text-overflow:ellipsis;white-space:nowrap}.button,.clean-btn,.close,.menu__link,.navbar__link{cursor:pointer}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.footer__items,.menu__list,.pills__item{list-style-type:none}.tabs__item,hr,img{box-sizing:content-box}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.react-toggle,html{-webkit-tap-highlight-color:transparent}.button,.dropdown__link,.navbar__title,.searchbox,.text--truncate{white-space:nowrap}.searchbox__reset:focus,.searchbox__submit:focus,body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.markdown li,body{word-wrap:break-word}:root{--ra-admonition-background-color:var(--ifm-alert-background-color);--ra-admonition-border-width:var(--ifm-alert-border-width);--ra-admonition-border-color:var(--ifm-alert-border-color);--ra-admonition-border-radius:var(--ifm-alert-border-radius);--ra-admonition-color:var(--ifm-alert-color);--ra-admonition-padding-vertical:var(--ifm-alert-padding-vertical);--ra-admonition-padding-horizontal:var(--ifm-alert-padding-horizontal);--ra-color-note:var(--ifm-color-secondary);--ra-color-important:var(--ifm-color-info);--ra-color-tip:var(--ifm-color-success);--ra-color-caution:var(--ifm-color-warning);--ra-color-warning:var(--ifm-color-danger);--ra-color-text-dark:var(--ifm-color-gray-900)}.admonition{margin-bottom:1em;--ra-admonition-icon-color:var(--ra-admonition-color)}.admonition:not(.alert){--ra-admonition-background-color:var(--ifm-color-primary);background-color:var(--ra-admonition-background-color);border:var(--ra-admonition-border-width) solid var(--ra-admonition-border-color);border-radius:var(--ra-admonition-border-radius);box-sizing:border-box;color:var(--ra-admonition-color);padding:var(--ra-admonition-padding-vertical) var(--ra-admonition-padding-horizontal)}.container,.row .col{padding:0 var(--ifm-spacing-horizontal);width:100%}.admonition h5{margin-bottom:8px;margin-top:0;text-transform:uppercase}.admonition-icon{display:inline-block;margin-right:.2em}.admonition-icon svg{stroke-width:0;fill:var(--ra-admonition-icon-color);stroke:var(--ra-admonition-icon-color);display:inline-block;height:22px;width:22px}.admonition-content>:last-child,blockquote>:last-child{margin-bottom:0}.admonition-note{--ra-admonition-color:var(--ra-color-text-dark)}:root{--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-color-primary:#3578e5;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-secondary:#ebedf0;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-success:#00a400;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-info:#54c7ec;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-warning:#ffba00;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-danger:#fa383e;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:transparent;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:rgba(0,0,0,0.05);--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 rgba(0,0,0,0.1);--ifm-global-shadow-md:0 5px 40px rgba(0,0,0,0.2);--ifm-global-shadow-tl:0 12px 28px 0 rgba(0,0,0,0.2),0 2px 4px 0 rgba(0,0,0,0.1);--ifm-z-index-dropdown:2;--ifm-z-index-fixed:3;--ifm-z-index-overlay:4;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:rgba(0,0,0,.05);--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.3rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-color-emphasis-100);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:inherit;--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:transparent;--ifm-table-stripe-background:var(--ifm-color-emphasis-100);--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-color:#6a737d;--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-padding-horizontal:1rem;--ifm-blockquote-padding-vertical:1rem;--ifm-hr-border-color:var(--ifm-color-emphasis-500);--ifm-hr-border-width:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:#888;--ifm-scrollbar-thumb-hover-background-color:#555;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:var(--ifm-global-border-width);--ifm-alert-color:var(--ifm-font-color-base-inverse);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size-sm:2rem;--ifm-avatar-photo-size-md:3rem;--ifm-avatar-photo-size-lg:4rem;--ifm-avatar-photo-size-xl:6rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.0625rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:1rem;--ifm-breadcrumb-padding-vertical:0.5rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-margin:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:1rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:80vw;--ifm-pagination-border-radius:calc(var(--ifm-global-radius)*var(--ifm-pagination-size-multiplier));--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.0625rem;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-size-multiplier:1;--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.0625rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--ifm-tabs-spacing:0.0625rem;--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#46cbae;--ifm-color-primary-lighter:#66d4bd;--ifm-color-primary-lightest:#92e0d0;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--collapse-button-bg-color-dark:#2e333a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:transparent}.navbar--dark,.navbar--primary{--ifm-navbar-search-input-background-color:hsla(0,0%,100%,0.1);--ifm-navbar-search-input-placeholder-color:hsla(0,0%,100%,0.5)}*,.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base)}.container{margin:0 auto;max-width:var(--ifm-container-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.container--fluid{max-width:inherit}.row{display:flex;flex-direction:row;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none,.markdown>:first-child{margin-top:0!important}.row .col{--ifm-col-width:100%;flex:1 0;margin-left:0}.row .col.col--1,.row .col.col--2,.row .col.col--3,.row .col[class*=col--]{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--1{--ifm-col-width:8.33333%}.row .col.col--offset-1{margin-left:8.33333%}.row .col.col--2{--ifm-col-width:16.66667%}.row .col.col--offset-2{margin-left:16.66667%}.row .col.col--3{--ifm-col-width:25%}.row .col.col--offset-3{margin-left:25%}.row .col.col--4{--ifm-col-width:33.33333%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-4{margin-left:33.33333%}.row .col.col--5{--ifm-col-width:41.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--6,.row .col.col--7{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-5{margin-left:41.66667%}.row .col.col--6{--ifm-col-width:50%}.row .col.col--offset-6{margin-left:50%}.row .col.col--7{--ifm-col-width:58.33333%}.row .col.col--offset-7{margin-left:58.33333%}.row .col.col--8{--ifm-col-width:66.66667%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-8{margin-left:66.66667%}.row .col.col--9{--ifm-col-width:75%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--10,.row .col.col--11{flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-9{margin-left:75%}.row .col.col--10{--ifm-col-width:83.33333%}.row .col.col--offset-10{margin-left:83.33333%}.row .col.col--11{--ifm-col-width:91.66667%}.row .col.col--offset-11{margin-left:91.66667%}.row .col.col--12{--ifm-col-width:100%;flex:0 0 var(--ifm-col-width);max-width:var(--ifm-col-width)}.row .col.col--offset-12{margin-left:100%}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid rgba(0,0,0,.1);border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);overflow:auto;padding:var(--ifm-pre-padding)}.avatar__photo,.card,.text--truncate,hr{overflow:hidden}pre code{background-color:transparent;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{border-style:none}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before,hr:after,hr:before{content:"";display:table}.markdown:after,hr:after{clear:both}.markdown>h1{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading));margin-top:calc(var(--ifm-h1-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.codeBlockContainer_37il,.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight);text-align:left}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration);transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.breadcrumbs__link:hover,.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:6px solid var(--ifm-color-emphasis-300);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}hr{border:var(--ifm-hr-border-width) solid var(--ifm-hr-border-color);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;padding:0}.alert,.alert a{color:var(--ifm-alert-color)}.alert{background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-radius:var(--ifm-alert-border-radius);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary);--ifm-alert-border-color:var(--ifm-color-primary)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary);--ifm-alert-border-color:var(--ifm-color-secondary);--ifm-alert-color:var(--ifm-color-gray-900)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success);--ifm-alert-border-color:var(--ifm-color-success)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info);--ifm-alert-border-color:var(--ifm-color-info)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning);--ifm-alert-border-color:var(--ifm-color-warning)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger);--ifm-alert-border-color:var(--ifm-color-danger)}.alert a{text-decoration:underline}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0}.avatar,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.avatar__photo-link{display:block}.avatar__photo{border-radius:50%;height:var(--ifm-avatar-photo-size-md);width:var(--ifm-avatar-photo-size-md)}.avatar__photo--sm{height:var(--ifm-avatar-photo-size-sm);width:var(--ifm-avatar-photo-size-sm)}.avatar__photo--lg{height:var(--ifm-avatar-photo-size-lg);width:var(--ifm-avatar-photo-size-lg)}.avatar__photo--xl{height:var(--ifm-avatar-photo-size-xl);width:var(--ifm-avatar-photo-size-xl)}.avatar__photo+.avatar__intro{margin-left:var(--ifm-avatar-intro-margin)}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.menu__link--sublist:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.avatar--vertical .avatar__intro{margin-left:0}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:first-child){margin-left:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child){margin-right:var(--ifm-breadcrumb-spacing)}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 .5rem;opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__item--active .breadcrumbs__link,.breadcrumbs__item:not(.breadcrumbs__item--active):hover .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:transparent;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}.button--primary{--ifm-button-border-color:var(--ifm-color-primary)}.button--primary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-primary)}.button--primary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-border-color:var(--ifm-color-primary-darker);--ifm-button-background-color:var(--ifm-color-primary-darker);background-color:var( + --ifm-color-primary-darker + );border-color:var( + --ifm-color-primary-darker + )}.button--secondary{--ifm-button-border-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline){--ifm-button-background-color:var(--ifm-color-secondary)}.button--secondary:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-border-color:var(--ifm-color-secondary-darker);--ifm-button-background-color:var(--ifm-color-secondary-darker);background-color:var( + --ifm-color-secondary-darker + );border-color:var( + --ifm-color-secondary-darker + )}.button--success{--ifm-button-border-color:var(--ifm-color-success)}.button--success:not(.button--outline){--ifm-button-background-color:var(--ifm-color-success)}.button--success:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-border-color:var(--ifm-color-success-darker);--ifm-button-background-color:var(--ifm-color-success-darker);background-color:var( + --ifm-color-success-darker + );border-color:var( + --ifm-color-success-darker + )}.button--info{--ifm-button-border-color:var(--ifm-color-info)}.button--info:not(.button--outline){--ifm-button-background-color:var(--ifm-color-info)}.button--info:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-border-color:var(--ifm-color-info-darker);--ifm-button-background-color:var(--ifm-color-info-darker);background-color:var( + --ifm-color-info-darker + );border-color:var( + --ifm-color-info-darker + )}.button--warning{--ifm-button-border-color:var(--ifm-color-warning)}.button--warning:not(.button--outline){--ifm-button-background-color:var(--ifm-color-warning)}.button--warning:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-border-color:var(--ifm-color-warning-darker);--ifm-button-background-color:var(--ifm-color-warning-darker);background-color:var( + --ifm-color-warning-darker + );border-color:var( + --ifm-color-warning-darker + )}.button--danger{--ifm-button-border-color:var(--ifm-color-danger)}.button--danger:not(.button--outline){--ifm-button-background-color:var(--ifm-color-danger)}.button--danger:not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-border-color:var(--ifm-color-danger-darker);--ifm-button-background-color:var(--ifm-color-danger-darker);background-color:var( + --ifm-color-danger-darker + );border-color:var( + --ifm-color-danger-darker + )}.button-group{display:inline-flex}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:var(--ifm-button-group-margin)}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group>.button--active{z-index:1}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column}.card--full-height,body,html{height:100%}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child,table p{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style-type:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color)}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{background:none;border:none;color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__menu,.menu__link,.menu__link:hover{transition-duration:var(--ifm-transition-fast);transition-timing-function:var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;transform:translateY(0);visibility:visible}.dropdown--right .dropdown__menu{right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);list-style:none;max-height:calc(100vh - var(--ifm-navbar-height));min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:100%;transform:translateY(-10px);transition-property:opacity,transform,visibility;visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor transparent;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:10rem}.docItemContainer_2R9F header+*,.footer__item,.pills__item+.pills__item{margin-top:0}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.footer__items{margin-bottom:0;padding-left:0}[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu{font-weight:var(--ifm-font-weight-semibold);overflow-x:hidden}.menu__list{margin:0;padding-left:0}.menu__list .menu__list{margin-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item{margin-top:.25rem}.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__link{border-radius:.25rem;display:flex;justify-content:space-between;line-height:1.25;padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal);position:relative}.menu__link,.menu__link:hover{color:var(--ifm-menu-color);transition-property:color,background}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-timing-function:ease-in-out;visibility:hidden;left:0;top:0}.menu__link:hover{background:var(--ifm-menu-color-background-hover);text-decoration:none}.menu__link--sublist:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;content:" ";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;min-width:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background:var(--ifm-menu-color-background-active)}.menu--responsive .menu__button{bottom:2rem;display:none;position:fixed;right:1rem;z-index:var(--ifm-z-index-fixed)}.menu--show{-ms-scroll-chaining:none;background:var(--ifm-background-surface-color);bottom:0;left:0;overscroll-behavior:contain;padding:1rem;position:fixed;right:0;top:0;z-index:var(--ifm-z-index-overlay)}.menu--show .menu__list{display:inherit;opacity:1;transition:opacity var(--ifm-transition-fast) linear}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal);width:100%}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{align-items:stretch;display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;font-weight:700;height:2rem;margin-right:1rem;min-width:0}.navbar__brand:hover{color:inherit;text-decoration:none}.navbar__title{flex:1 1 auto;overflow:hidden}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{height:100%;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.codeBlock_woFx,.navbar__item.dropdown{padding:0}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link{font-weight:var(--ifm-font-weight-semibold);padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal);position:relative;text-decoration:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-color:var(--ifm-color-white);--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-toggle-color:var(--ifm-color-white)}.navbar--dark .navbar__toggle{color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input:-ms-input-placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);overflow:auto;position:fixed;transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar--show .navbar-sidebar{transform:translateZ(0)}.navbar-sidebar__backdrop{background-color:rgba(0,0,0,.6);position:fixed;right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.pagination__item,.pagination__link{display:inline-block}.navbar-sidebar__items{padding:.5rem}.pagination{font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item:not(:first-child){margin-left:var(--ifm-pagination-page-spacing)}.pagination__item:not(:last-child){margin-right:var(--ifm-pagination-page-spacing)}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.docs-wrapper,.pagination-nav{display:flex}.pagination-nav__item{display:flex;flex:1 50%;max-width:50%}.pagination-nav__item--next{text-align:right}.pagination-nav__item+.pagination-nav__item{margin-left:var(--ifm-spacing-horizontal)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);flex-grow:1;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills,.sidebarMenuCloseIcon_21dM,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pills__item--active{background:var(--ifm-pills-color-background-active);color:var(--ifm-pills-color-active)}.pills__item:not(.pills__item--active):hover{background-color:var(--ifm-pills-color-background-active)}.pills__item:not(:first-child){margin-left:var(--ifm-pills-spacing)}.pills__item:not(:last-child){margin-right:var(--ifm-pills-spacing)}.pills--block{display:flex;justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto;padding-left:0}.tabs__item{border-bottom:3px solid transparent;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;margin:0;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#18191a;--ifm-background-surface-color:#242526;--ifm-hover-overlay:hsla(0,0%,100%,0.05);--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:hsla(0,0%,100%,0.1)}.docusaurus-highlight-code-line{background-color:rgba(0,0,0,.1);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:rgba(0,0,0,.3)}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);overflow:auto;width:100%;display:table;font-size:15px}table thead tr{border-bottom-width:1px!important}.markdown li>p{margin-top:10px}.markdown li>p,.markdown>p{margin-bottom:10px}.navbar__search{padding-left:1rem;padding-left:var(--ifm-navbar-padding-horizontal)}#nprogress .bar{background:#29d;height:2px;left:0;position:fixed;top:0;width:100%;z-index:7}#nprogress .peg{box-shadow:0 0 10px #29d,0 0 5px #29d;height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}#docusaurus-base-url-issue-banner-container,.collapseSidebarButton_2CWe,.sidebarLogo_2V5j,.themedImage_3jUe,html[data-announcement-bar-initially-dismissed=true] .announcementBar_1KuI{display:none}.skipToContent_2ebr{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_2ebr:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.announcementBar_1KuI{background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);height:var(--docusaurus-announcement-bar-height);position:relative;width:100%}.announcementBarClose_olmB{font-size:1.25rem;height:100%;position:absolute;right:0;top:0;width:55px}.announcementBarContent_1Bsb{font-size:85%;padding:5px 0;text-align:center;width:100%}.announcementBarCloseable_2IED{margin-right:55px}.announcementBarContent_1Bsb a{color:inherit;text-decoration:underline}.react-toggle{cursor:pointer;position:relative;touch-action:pan-x;user-select:none}.copyButton_3eq6,.searchbox__submit{-webkit-user-select:none;-ms-user-select:none}.react-toggle-screenreader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px}.react-toggle--disabled{cursor:not-allowed}.react-toggle-track{background-color:#4d4d4d;border-radius:30px;height:24px;transition:.2s;width:50px}.react-toggle-track-check,.react-toggle-track-x{bottom:0;height:10px;margin:auto 0;top:0;position:absolute}.react-toggle-track-check{left:8px;opacity:0;transition:opacity .25s;width:14px}.react-toggle--checked .react-toggle-track-check,.react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-check{opacity:1;transition:opacity .25s}.react-toggle-track-x{right:10px;width:10px}.react-toggle--checked .react-toggle-track-x,[data-theme=dark] .react-toggle .react-toggle-track-x{opacity:0}.react-toggle-thumb{background-color:#fafafa;border:1px solid #4d4d4d;border-radius:50%;height:22px;left:1px;position:absolute;top:1px;transition:.25s;width:22px}.react-toggle--checked .react-toggle-thumb,[data-theme=dark] .react-toggle .react-toggle-thumb{left:27px}.react-toggle--focus .react-toggle-thumb,.react-toggle:hover .react-toggle-thumb{box-shadow:0 0 2px 3px var(--ifm-color-primary)}.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb{box-shadow:0 0 5px 5px var(--ifm-color-primary)}.toggle_3k75{align-items:center;display:flex;height:10px;justify-content:center;width:10px}.toggle_3k75:before{position:absolute}.iconExternalLink_3qag{margin-left:.3rem;position:relative;top:1px}html[data-theme=dark] .themedImage--dark_3GtQ,html[data-theme=light] .themedImage--light_3-1O{display:initial}.navbarHideable_1KiH{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_S2ab{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_1IuP{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.codeBlockContent_3leN:hover>.copyButton_3eq6,.codeBlockTitle_1EEr:hover+.codeBlockContent_3leN .copyButton_3eq6,.copyButton_3eq6:focus,.footerLogoLink_1IuP:hover,.hash-link:focus,:hover>.hash-link{opacity:1}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.main-wrapper{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}.tableOfContents_23zS{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.iconEdit_3_iy{margin-right:.3em;vertical-align:sub}.searchbox__input,.searchbox__submit,.searchbox__submit svg,.sidebarMenuIcon_3IeT{vertical-align:middle}.sidebarMenuCloseIcon_21dM{align-items:center;display:inline-flex;font-size:1.5rem;height:24px;justify-content:center;line-height:.9;width:24px}.menu__list .menu__list{overflow-y:hidden;transition:height var(--ifm-transition-fast) linear;will-change:height}.menu__list-item--collapsed .menu__list{overflow:hidden;height:0!important}.codeBlockContent_3leN{direction:ltr;position:relative}.codeBlockTitle_1EEr{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:var(--ifm-global-radius);border-top-right-radius:var(--ifm-global-radius);font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlockWithTitle_ooFl{border-top-left-radius:0;border-top-right-radius:0}.copyButton_3eq6{background:rgba(0,0,0,.3);border-radius:var(--ifm-global-radius);color:var(--ifm-color-white);opacity:0;padding:.4rem .5rem;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2);transition:opacity .2s ease-in-out;user-select:none}.codeBlockLines_2lkQ{display:flex;flex-direction:column;float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.anchor{display:block;position:relative;top:-.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast)}.enhancedAnchor_1wgz{top:calc(var(--ifm-navbar-height)*-1 - .5rem)}.h1Heading_3OuH{font-size:3rem;margin-bottom:calc(var(--ifm-leading-desktop)*var(--ifm-leading))}.lastUpdated_31o1{font-size:smaller;font-style:italic;margin-top:.2rem}.docMainContainer_J7Yc,.docPage_2V9V{display:flex;width:100%}.searchbox,.searchbox__input{box-sizing:border-box;display:inline-block}.algolia-docsearch-suggestion{border-bottom-color:#3a3dd1}.algolia-docsearch-suggestion--category-header{background-color:#4b54de}.algolia-docsearch-suggestion--highlight{color:#3a33d1}.algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#4d47d5}.aa-cursor .algolia-docsearch-suggestion--content{color:#272296}.aa-cursor .algolia-docsearch-suggestion{background:#ebebfb}.searchbox{height:32px!important;position:relative;visibility:visible!important;width:200px}.searchbox .algolia-autocomplete{display:block;height:100%;width:100%}.searchbox__wrapper{height:100%;position:relative;width:100%;z-index:5}.searchbox__input{-webkit-appearance:none;appearance:none;background:#fff!important;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;font-size:12px;height:100%;padding:0 26px 0 32px;transition:box-shadow .4s,background .4s;white-space:normal;width:100%}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{background:#fff;box-shadow:inset 0 0 0 1px #aaa;outline:0}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{background-color:rgba(69,142,225,0);border:0;border-radius:16px 0 0 16px;font-size:inherit;height:100%;left:0;margin:0;padding:0;position:absolute;right:inherit;text-align:center;top:0;user-select:none;width:32px}.searchbox__submit:before{content:"";display:inline-block;height:100%;margin-right:-4px;vertical-align:middle}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion,.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit svg{fill:#6d7e96;height:14px;width:14px}.searchbox__reset{fill:rgba(0,0,0,.5);background:none;border:0;cursor:pointer;display:block;font-size:inherit;margin:0;padding:0;position:absolute;right:8px;top:8px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.searchbox__reset.hide{display:none}.searchbox__reset svg{display:block;height:8px;margin:4px;width:8px}.searchbox__input:valid~.searchbox__reset{animation-duration:.15s;animation-name:a;display:block}@keyframes a{0%{opacity:0;transform:translate3d(-20%,0,0)}to{opacity:1;transform:none}}.algolia-autocomplete .ds-dropdown-menu:before{background:#373940;border-radius:2px;border-right:1px solid #373940;border-top:1px solid #373940;content:"";display:block;height:14px;position:absolute;top:-7px;transform:rotate(-45deg);width:14px;z-index:6}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:6}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{background:#fff;border-radius:4px;overflow:auto;padding:0;position:relative}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;overflow:hidden;padding:0;position:relative;text-decoration:none}.algolia-autocomplete .ds-cursor .algolia-docsearch-suggestion--wrapper{background:#f1f1f1;box-shadow:inset -2px 0 0 #61dafb}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{background:#ffe564;padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight{background:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);color:inherit;padding:0 0 1px}.algolia-autocomplete .algolia-docsearch-suggestion--content{cursor:pointer;display:block;float:right;padding:5.33333px 0 5.33333px 10.66667px;position:relative;width:70%}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{background:#ececec;content:"";display:block;height:100%;left:-1px;position:absolute;top:0;width:1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{background-color:#373940;color:#fff;display:none;font-size:14px;font-weight:700;letter-spacing:.08em;margin:0;padding:5px 8px;position:relative;text-transform:uppercase}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{background-color:#fff;float:left;padding:8px 0 0;width:100%}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{word-wrap:break-word;color:#777;display:none;float:left;font-size:.9em;padding:5.33333px 10.66667px;position:relative;text-align:right;width:30%}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{background:#ececec;content:"";display:block;height:100%;position:absolute;right:0;top:0;width:1px}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before,.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight{background-color:inherit;color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--title{color:#02060c;font-size:.9em;font-weight:700;margin-bottom:4px}.algolia-autocomplete .algolia-docsearch-suggestion--text{color:#63676d;display:block;font-size:.85em;line-height:1.2em;padding-right:2px}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{background-color:#373940;font-size:1.2em;margin-top:-8px;padding:8px 0;text-align:center;width:100%}.algolia-autocomplete .algolia-docsearch-suggestion--no-results .algolia-docsearch-suggestion--text{color:#fff;margin-top:4px}.algolia-autocomplete .algolia-docsearch-suggestion code{background-color:#ebebeb;border:none;border-radius:3px;color:#222;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-size:90%;padding:1px 5px}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header{color:#fff;display:block}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary .algolia-docsearch-suggestion--subcategory-column{display:block}.algolia-autocomplete .algolia-docsearch-footer{background-color:#fff;float:right;font-size:0;height:30px;line-height:0;width:100%;z-index:8}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 130 18'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='url(%2523a)' d='M59.4.02h13.3a2.37 2.37 0 0 1 2.38 2.37V15.6a2.37 2.37 0 0 1-2.38 2.36H59.4a2.37 2.37 0 0 1-2.38-2.36V2.38A2.37 2.37 0 0 1 59.4.02z'/%3E%3Cpath fill='%2523FFF' d='M66.26 4.56c-2.82 0-5.1 2.27-5.1 5.08 0 2.8 2.28 5.07 5.1 5.07 2.8 0 5.1-2.26 5.1-5.07 0-2.8-2.28-5.07-5.1-5.07zm0 8.65c-2 0-3.6-1.6-3.6-3.56 0-1.97 1.6-3.58 3.6-3.58 1.98 0 3.6 1.6 3.6 3.58a3.58 3.58 0 0 1-3.6 3.57zm0-6.4v2.66c0 .07.08.13.15.1l2.4-1.24c.04-.02.06-.1.03-.14a2.96 2.96 0 0 0-2.46-1.5.1.1 0 0 0-.1.1zm-3.33-1.96-.3-.3a.78.78 0 0 0-1.12 0l-.36.36a.77.77 0 0 0 0 1.1l.3.3c.05.05.13.04.17 0 .2-.25.4-.5.6-.7.23-.23.46-.43.7-.6.07-.04.07-.1.03-.16zm5-.8V3.4a.78.78 0 0 0-.78-.78h-1.83a.78.78 0 0 0-.78.78v.63c0 .07.06.12.14.1a5.74 5.74 0 0 1 1.58-.22c.52 0 1.04.07 1.54.2a.1.1 0 0 0 .13-.1z'/%3E%3Cpath fill='%2523182359' d='M102.16 13.76c0 1.46-.37 2.52-1.12 3.2-.75.67-1.9 1-3.44 1-.56 0-1.74-.1-2.67-.3l.34-1.7c.78.17 1.82.2 2.36.2.86 0 1.48-.16 1.84-.5.37-.36.55-.88.55-1.57v-.35a6.37 6.37 0 0 1-.84.3 4.15 4.15 0 0 1-1.2.17 4.5 4.5 0 0 1-1.6-.28 3.38 3.38 0 0 1-1.26-.82 3.74 3.74 0 0 1-.8-1.35c-.2-.54-.3-1.5-.3-2.2 0-.67.1-1.5.3-2.06a3.92 3.92 0 0 1 .9-1.43 4.12 4.12 0 0 1 1.45-.92 5.3 5.3 0 0 1 1.94-.37c.7 0 1.35.1 1.97.2a15.86 15.86 0 0 1 1.6.33v8.46zm-5.95-4.2c0 .9.2 1.88.6 2.3.4.4.9.62 1.53.62.34 0 .66-.05.96-.15a2.75 2.75 0 0 0 .73-.33V6.7a8.53 8.53 0 0 0-1.42-.17c-.76-.02-1.36.3-1.77.8-.4.5-.62 1.4-.62 2.23zm16.13 0c0 .72-.1 1.26-.32 1.85a4.4 4.4 0 0 1-.9 1.53c-.38.42-.85.75-1.4.98-.54.24-1.4.37-1.8.37-.43 0-1.27-.13-1.8-.36a4.1 4.1 0 0 1-1.4-.97 4.5 4.5 0 0 1-.92-1.52 5.04 5.04 0 0 1-.33-1.84c0-.72.1-1.4.32-2 .22-.6.53-1.1.92-1.5.4-.43.86-.75 1.4-.98a4.55 4.55 0 0 1 1.78-.34 4.7 4.7 0 0 1 1.8.34c.54.23 1 .55 1.4.97.38.42.68.92.9 1.5.23.6.35 1.3.35 2zm-2.2 0c0-.92-.2-1.7-.6-2.22-.38-.54-.94-.8-1.64-.8-.72 0-1.27.26-1.67.8-.4.54-.58 1.3-.58 2.22 0 .93.2 1.56.6 2.1.38.54.94.8 1.64.8s1.25-.26 1.65-.8c.4-.55.6-1.17.6-2.1zm6.97 4.7c-3.5.02-3.5-2.8-3.5-3.27L113.57.92l2.15-.34v10c0 .25 0 1.87 1.37 1.88v1.8zm3.77 0h-2.15v-9.2l2.15-.33v9.54zM119.8 3.74c.7 0 1.3-.58 1.3-1.3 0-.7-.58-1.3-1.3-1.3-.73 0-1.3.6-1.3 1.3 0 .72.58 1.3 1.3 1.3zm6.43 1c.7 0 1.3.1 1.78.27.5.18.88.42 1.17.73.28.3.5.74.6 1.18.13.46.2.95.2 1.5v5.47a25.24 25.24 0 0 1-1.5.25c-.67.1-1.42.15-2.25.15a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.37-.27-.9-.27-1.44 0-.52.1-.85.3-1.2.2-.37.48-.67.83-.9a3.6 3.6 0 0 1 1.23-.5 7.07 7.07 0 0 1 2.2-.1l.83.16V8.4c0-.25-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.18-.34-.3-.58-.4a2.54 2.54 0 0 0-.92-.17c-.5 0-.94.06-1.35.13-.4.08-.75.16-1 .25l-.27-1.74c.27-.1.67-.18 1.2-.28a9.34 9.34 0 0 1 1.65-.14zm.18 7.74c.66 0 1.15-.04 1.5-.1V10.2a5.1 5.1 0 0 0-2-.1c-.23.03-.45.1-.64.2a1.17 1.17 0 0 0-.47.38c-.13.17-.18.26-.18.52 0 .5.17.8.5.98.32.2.74.3 1.3.3zM84.1 4.8c.72 0 1.3.08 1.8.26.48.17.87.42 1.15.73.3.3.5.72.6 1.17.14.45.2.94.2 1.47v5.48a25.24 25.24 0 0 1-1.5.26c-.67.1-1.42.14-2.25.14a6.83 6.83 0 0 1-1.52-.16 3.2 3.2 0 0 1-1.18-.5 2.46 2.46 0 0 1-.76-.9c-.18-.38-.27-.9-.27-1.44 0-.53.1-.86.3-1.22.2-.36.5-.65.84-.88a3.6 3.6 0 0 1 1.24-.5 7.07 7.07 0 0 1 2.2-.1c.26.03.54.08.84.15v-.35c0-.24-.03-.48-.1-.7a1.5 1.5 0 0 0-.3-.58c-.15-.17-.34-.3-.58-.4a2.54 2.54 0 0 0-.9-.15c-.5 0-.96.05-1.37.12-.4.07-.75.15-1 .24l-.26-1.75c.27-.08.67-.17 1.18-.26a8.9 8.9 0 0 1 1.66-.15zm.2 7.73c.65 0 1.14-.04 1.48-.1v-2.17a5.1 5.1 0 0 0-1.98-.1c-.24.03-.46.1-.65.18a1.17 1.17 0 0 0-.47.4c-.12.17-.17.26-.17.52 0 .5.18.8.5.98.32.2.75.3 1.3.3zm8.68 1.74c-3.5 0-3.5-2.82-3.5-3.28L89.45.92 91.6.6v10c0 .25 0 1.87 1.38 1.88v1.8z'/%3E%3Cpath fill='%25231D3657' d='M5.03 11.03c0 .7-.26 1.24-.76 1.64-.5.4-1.2.6-2.1.6-.88 0-1.6-.14-2.17-.42v-1.2c.36.16.74.3 1.14.38.4.1.78.15 1.13.15.5 0 .88-.1 1.12-.3a.94.94 0 0 0 .35-.77.98.98 0 0 0-.33-.74c-.22-.2-.68-.44-1.37-.72-.72-.3-1.22-.62-1.52-1C.23 8.27.1 7.82.1 7.3c0-.65.22-1.17.7-1.55.46-.37 1.08-.56 1.86-.56.76 0 1.5.16 2.25.48l-.4 1.05c-.7-.3-1.32-.44-1.87-.44-.4 0-.73.08-.94.26a.9.9 0 0 0-.33.72c0 .2.04.38.12.52.08.15.22.3.42.4.2.14.55.3 1.06.52.58.24 1 .47 1.27.67.27.2.47.44.6.7.12.26.18.57.18.92zM9 13.27c-.92 0-1.64-.27-2.16-.8-.52-.55-.78-1.3-.78-2.24 0-.97.24-1.73.72-2.3.5-.54 1.15-.82 2-.82.78 0 1.4.25 1.85.72.46.48.7 1.14.7 1.97v.67H7.35c0 .58.17 1.02.46 1.33.3.3.7.47 1.24.47.36 0 .68-.04.98-.1a5.1 5.1 0 0 0 .98-.33v1.02a3.87 3.87 0 0 1-.94.32 5.72 5.72 0 0 1-1.08.1zm-.22-5.2c-.4 0-.73.12-.97.38s-.37.62-.42 1.1h2.7c0-.48-.13-.85-.36-1.1-.23-.26-.54-.38-.94-.38zm7.7 5.1-.26-.84h-.05c-.28.36-.57.6-.86.74-.28.13-.65.2-1.1.2-.6 0-1.05-.16-1.38-.48-.32-.32-.5-.77-.5-1.34 0-.62.24-1.08.7-1.4.45-.3 1.14-.47 2.07-.5l1.02-.03V9.2c0-.37-.1-.65-.27-.84-.17-.2-.45-.28-.82-.28-.3 0-.6.04-.88.13a6.68 6.68 0 0 0-.8.33l-.4-.9a4.4 4.4 0 0 1 1.05-.4 4.86 4.86 0 0 1 1.08-.12c.76 0 1.33.18 1.7.5.4.33.6.85.6 1.56v4h-.9zm-1.9-.87c.47 0 .83-.13 1.1-.38.3-.26.43-.62.43-1.08v-.52l-.76.03c-.6.03-1.02.13-1.3.3s-.4.45-.4.82c0 .26.08.47.24.6.16.16.4.23.7.23zm7.57-5.2c.25 0 .46.03.62.06l-.12 1.18a2.38 2.38 0 0 0-.56-.06c-.5 0-.92.16-1.24.5-.3.32-.47.75-.47 1.27v3.1h-1.27V7.23h1l.16 1.05h.05c.2-.36.45-.64.77-.85a1.83 1.83 0 0 1 1.02-.3zm4.12 6.17c-.9 0-1.58-.27-2.05-.8-.47-.52-.7-1.27-.7-2.25 0-1 .24-1.77.73-2.3.5-.54 1.2-.8 2.12-.8.63 0 1.2.1 1.7.34l-.4 1c-.52-.2-.96-.3-1.3-.3-1.04 0-1.55.68-1.55 2.05 0 .67.13 1.17.38 1.5.26.34.64.5 1.13.5a3.23 3.23 0 0 0 1.6-.4v1.1a2.53 2.53 0 0 1-.73.28 4.36 4.36 0 0 1-.93.08zm8.28-.1h-1.27V9.5c0-.45-.1-.8-.28-1.02-.18-.23-.47-.34-.88-.34-.53 0-.9.16-1.16.48-.25.3-.38.85-.38 1.6v2.94h-1.26V4.8h1.26v2.12c0 .34-.02.7-.06 1.1h.08a1.76 1.76 0 0 1 .72-.67c.3-.16.66-.24 1.07-.24 1.43 0 2.15.74 2.15 2.2v3.86zM42.2 7.1c.74 0 1.32.28 1.73.82.4.53.62 1.3.62 2.26 0 .97-.2 1.73-.63 2.27-.42.54-1 .82-1.75.82s-1.33-.27-1.75-.8h-.08l-.23.7h-.94V4.8h1.26v2l-.02.64-.03.56h.05c.4-.6 1-.9 1.78-.9zm-.33 1.04c-.5 0-.88.15-1.1.45-.22.3-.34.8-.35 1.5v.08c0 .72.12 1.24.35 1.57.23.32.6.48 1.12.48.44 0 .78-.17 1-.53.24-.35.36-.87.36-1.53 0-1.35-.47-2.03-1.4-2.03zm3.24-.92h1.4l1.2 3.37c.18.47.3.92.36 1.34h.04l.18-.72 1.37-4H51l-2.53 6.73c-.46 1.23-1.23 1.85-2.3 1.85-.3 0-.56-.03-.83-.1v-1c.2.05.4.08.65.08.6 0 1.03-.36 1.28-1.06l.22-.56-2.4-5.94z'/%3E%3C/g%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100%;display:block;height:100%;margin-left:auto;margin-right:5px;overflow:hidden;text-indent:-9000px;width:110px}@media (min-width:601px){.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{left:inherit!important;right:0!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete .ds-dropdown-menu{background:0 0;border:none;border-radius:4px;height:auto;margin:6px 0 0;max-width:600px;min-width:500px;padding:0;position:relative;text-align:left;top:-6px;z-index:5}}@media (min-width:768px){.algolia-docsearch-suggestion{border-bottom-color:#7671df}.algolia-docsearch-suggestion--subcategory-column{border-right-color:#7671df;color:#4e4726}}@media (min-width:997px){.sidebar_23hl{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_1WpM{padding-top:0}.sidebarHidden_-mRj{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_2V5j{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_2V5j img{height:2rem;margin-right:.5rem}.menu_N163{flex-grow:1;padding:.5rem}.menuLinkText_2jzf{cursor:auto}.menuLinkText_2jzf:hover{background:none}.menuWithAnnouncementBar_3kKv{margin-bottom:var(--docusaurus-announcement-bar-height)}.collapseSidebarButton_2CWe{background-color:var(--ifm-button-background-color);border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_1YUG{margin-top:4px;transform:rotate(180deg)}.expandSidebarButtonIcon_1jpY,html[dir=rtl] .collapseSidebarButtonIcon_1YUG{transform:rotate(0)}html[data-theme=dark] .collapseSidebarButton_2CWe,html[data-theme=dark] .collapsedDocSidebar_2VO_:focus,html[data-theme=dark] .collapsedDocSidebar_2VO_:hover{background-color:var(--collapse-button-bg-color-dark)}.collapsedDocSidebar_2VO_:focus,.collapsedDocSidebar_2VO_:hover,html[data-theme=dark] .collapseSidebarButton_2CWe:focus,html[data-theme=dark] .collapseSidebarButton_2CWe:hover{background-color:var(--ifm-color-emphasis-200)}.docMainContainer_J7Yc{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_3py4{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docSidebarContainer_bKeA{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_27zm{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.collapsedDocSidebar_2VO_{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;position:sticky;top:0;transition:background-color var(--ifm-transition-fast) ease}html[dir=rtl] .expandSidebarButtonIcon_1jpY{transform:rotate(180deg)}.docItemWrapperEnhanced_Ke6y{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}@media only screen and (min-width:997px){.docItemCol_fcm6{max-width:75%!important}.lastUpdated_31o1{text-align:right}}@media screen and (min-width:1024px){:root{--docusaurus-announcement-bar-height:30px}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:1200px){h1{--ifm-h1-font-size:calc(1.375rem + 1.5vw)}}@media screen and (max-width:997px){.displayOnlyInLargeViewport_PjS3{display:none!important}}@media (max-width:996px){.row .col.col.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0;max-width:var(--ifm-col-width)}.footer{--ifm-footer-padding-horizontal:0}.footer__link-separator,.navbar__item{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.menu--responsive .menu__button,.navbar__toggle{display:inherit}.menu--responsive:not(.menu--show) .menu__list{display:none;opacity:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.pills--block .pills__item:not(:first-child){margin-top:var(--ifm-pills-spacing)}.pills--block .pills__item:not(:last-child){margin-bottom:var(--ifm-pills-spacing)}.tabs--block .tabs__item:not(:first-child){margin-top:var(--ifm-tabs-spacing)}.tabs--block .tabs__item:not(:last-child){margin-bottom:var(--ifm-tabs-spacing)}}@media only screen and (max-width:996px){.tableOfContents_23zS{display:none}.docItemContainer_3U9h{padding:0 .3rem}}@media (max-width:600px){.algolia-autocomplete .ds-dropdown-menu{display:block;left:auto!important;max-height:calc(100% - 5rem);max-width:calc(100% - 2rem);position:fixed!important;right:1rem!important;top:50px!important;width:600px;z-index:2}.algolia-autocomplete .ds-dropdown-menu:before{right:6rem}}@media screen and (max-width:576px){.announcementBarClose_olmB{width:35px}.announcementBarContent_1Bsb{width:auto}.announcementBarCloseable_2IED{margin-right:35px}}@media (pointer:fine){.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media print{.announcementBar_1KuI,.footer,.menu,.navbar,.pagination-nav,.table-of-contents{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_2lkQ{white-space:pre-wrap}} \ No newline at end of file diff --git a/docs/document/assets/images/ApplyForLloan-92b1919198379be8ee12655c43a0a212.png b/docs/document/assets/images/ApplyForLloan-92b1919198379be8ee12655c43a0a212.png new file mode 100644 index 0000000000000000000000000000000000000000..59ffc5f844e356fffd62cf5c960bd915684f5702 GIT binary patch literal 30261 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 literal 0 HcmV?d00001 diff --git a/docs/document/assets/images/Authorization-5dc7e081b17eadbcf9a95a42d465e468.png b/docs/document/assets/images/Authorization-5dc7e081b17eadbcf9a95a42d465e468.png new file mode 100644 index 0000000000000000000000000000000000000000..702b95173d6dd3f567924c480d318553994d6c55 GIT binary patch literal 49427 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

    t^ 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

    p4g2ZE@3 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 literal 0 HcmV?d00001 diff --git a/docs/document/assets/images/ContractContract-3491149c86bd6056c1207cb64ce3de8d.png b/docs/document/assets/images/ContractContract-3491149c86bd6056c1207cb64ce3de8d.png new file mode 100644 index 0000000000000000000000000000000000000000..e71144da3a7382bb0ad8da6762375af2cef4b8fa GIT binary patch literal 34904 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 literal 0 HcmV?d00001 diff --git a/docs/document/assets/images/RepaymentInformation-3a7c45258cee09eb3e6e7bd3bb4f4064.png b/docs/document/assets/images/RepaymentInformation-3a7c45258cee09eb3e6e7bd3bb4f4064.png new file mode 100644 index 0000000000000000000000000000000000000000..615840ea61fa2bcdcdd454204d40375236e0d9f1 GIT binary patch literal 41409 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ȅSXqyVps|PNJ-N)0F%Nbpb#--! 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�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 literal 0 HcmV?d00001 diff --git a/docs/document/assets/images/SubmitBankCard-973d354050c9f0bf6d647d4785e9c754.png b/docs/document/assets/images/SubmitBankCard-973d354050c9f0bf6d647d4785e9c754.png new file mode 100644 index 0000000000000000000000000000000000000000..458714c62cd4e1ad16cde674a9cb0efd62157789 GIT binary patch literal 48858 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 A6aWAK literal 0 HcmV?d00001 diff --git a/docs/document/assets/js/0a02cac0.f0bce8c0.js b/docs/document/assets/js/0a02cac0.f0bce8c0.js new file mode 100644 index 000000000..d16ef52d4 --- /dev/null +++ b/docs/document/assets/js/0a02cac0.f0bce8c0.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[903],{9278:function(e,r,t){"use strict";t.d(r,{Zo:function(){return p},kt:function(){return m}});var n=t(9301);function c(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function o(e){for(var r=1;r=0||(c[t]=e[t]);return c}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(c[t]=e[t])}return c}var u=n.createContext({}),s=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):o(o({},r),e)),t},p=function(e){var r=s(e.components);return n.createElement(u.Provider,{value:r},e.children)},l={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,c=e.mdxType,i=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),f=s(t),m=c,d=f["".concat(u,".").concat(m)]||f[m]||l[m]||i;return t?n.createElement(d,o(o({ref:r},p),{},{components:t})):n.createElement(d,o({ref:r},p))}));function m(e,r){var t=arguments,c=r&&r.mdxType;if("string"==typeof e||c){var i=t.length,o=new Array(i);o[0]=f;var a={};for(var u in r)hasOwnProperty.call(r,u)&&(a[u]=r[u]);a.originalType=e,a.mdxType="string"==typeof e?e:c,o[1]=a;for(var s=2;s=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var p=r.createContext({}),u=function(t){var e=r.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},d=function(t){var e=u(t.components);return r.createElement(p.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},k=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,l=t.originalType,p=t.parentName,d=o(t,["components","mdxType","originalType","parentName"]),k=u(n),s=a,c=k["".concat(p,".").concat(s)]||k[s]||m[s]||l;return n?r.createElement(c,i(i({ref:e},d),{},{components:n})):r.createElement(c,i({ref:e},d))}));function s(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var l=n.length,i=new Array(l);i[0]=k;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o.mdxType="string"==typeof t?t:a,i[1]=o;for(var u=2;u application/json UTF-8 encoding")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"All requests require signature"))),(0,l.kt)("h2",{id:"document-change-control"},"Document Change Control"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Version"),(0,l.kt)("th",{parentName:"tr",align:null},"Date"),(0,l.kt)("th",{parentName:"tr",align:null},"Authors"),(0,l.kt)("th",{parentName:"tr",align:null},"Summary of changes"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1.0.0"),(0,l.kt)("td",{parentName:"tr",align:null},"2019.06.03"),(0,l.kt)("td",{parentName:"tr",align:null},"ZHIBO"),(0,l.kt)("td",{parentName:"tr",align:null},"Thumbnails image url")))),(0,l.kt)("h2",{id:"api-summary"},"API Summary"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"th"},"Service name")),(0,l.kt)("th",{parentName:"tr",align:null},(0,l.kt)("strong",{parentName:"th"},"Description")))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"user registration"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : All other services can be used only after user registration success"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Authorization list inquiry"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : NO"),(0,l.kt)("p",null,"Description : Get the authorization list and check the authorization status"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Get the authorization detail page"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : NO"),(0,l.kt)("p",null,"Description : Customer complete the authorization in the pages"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Call back for authorization status"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : NO"),(0,l.kt)("p",null,"Description : To receive the authorization status"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Bank card inquiry"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : To inquiry bank card status"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Get bank list"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Get the bank list for bank card input"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Bank card verification"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Verify and submit bank card"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Submit loan"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Submit loan info, including (personal info, work info and emergency contact)"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Loan agreement inquiry"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Get loan agreement"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Sign agreement"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Sign agreement (Confirm disbursement)"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Get loan information"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Get loan info based on loan number (include repayment schedule if disbursed)"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Get repayment VA"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Get the repayment VA"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Push notification"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider: Third party "),(0,l.kt)("p",null,"User : AWDA"),(0,l.kt)("p",null,"Mandatory: NO"),(0,l.kt)("p",null,"Description : Push the loan status update to Third party "))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Eligible Check"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : YES"),(0,l.kt)("p",null,"Description : Verify Customer"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Get the token for uploading image"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : NO"),(0,l.kt)("p",null,"Description : To get the token which used for api Upload Image (1)"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Upload Image (1)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : NO"),(0,l.kt)("p",null,"Description : By sending file stream with token"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Upload Image (2)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : NO"),(0,l.kt)("p",null,"Description : By sending base64 or url format"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"Get the redirect url",(0,l.kt)("br",null),"(For H5 pages of Digital Signature, Loan detail and Repayment detail)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"Provider : AWDA"),(0,l.kt)("p",null,"User : Third party "),(0,l.kt)("p",null,"Mandatory : NO"),(0,l.kt)("p",null,"Description : Redirect to the specific H5 pages"))))),(0,l.kt)("h2",{id:"environment-information"},"Environment information"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Testing environment\uff1a",(0,l.kt)("inlineCode",{parentName:"li"},"https://sea-staging.wolaidai.com")),(0,l.kt)("li",{parentName:"ul"},"Production environment\uff1a",(0,l.kt)("inlineCode",{parentName:"li"},"https://japi.maucash.id")),(0,l.kt)("li",{parentName:"ul"},"Note: All APIs URL will be environment ",(0,l.kt)("inlineCode",{parentName:"li"},"url")," + ",(0,l.kt)("inlineCode",{parentName:"li"},"service url"))),(0,l.kt)("h2",{id:"list-of-response-code"},"List Of Response Code"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Code"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"0"),(0,l.kt)("td",{parentName:"tr",align:null},"Success")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1000"),(0,l.kt)("td",{parentName:"tr",align:null},"System is busy")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1001"),(0,l.kt)("td",{parentName:"tr",align:null},"Repeat request")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1002"),(0,l.kt)("td",{parentName:"tr",align:null},"Unvalid token")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1003"),(0,l.kt)("td",{parentName:"tr",align:null},"Timestamp error or expired (only valid within 60s)")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1004"),(0,l.kt)("td",{parentName:"tr",align:null},"Signature error")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1005"),(0,l.kt)("td",{parentName:"tr",align:null},"appId invalid")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1006"),(0,l.kt)("td",{parentName:"tr",align:null},"Parameters cannot be empty")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1007"),(0,l.kt)("td",{parentName:"tr",align:null},"Parameters error")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1008"),(0,l.kt)("td",{parentName:"tr",align:null},"User already existed")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1009"),(0,l.kt)("td",{parentName:"tr",align:null},"User not found")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1010"),(0,l.kt)("td",{parentName:"tr",align:null},"Loan not found")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"1012"),(0,l.kt)("td",{parentName:"tr",align:null},"Authorization info not found")))))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/docs/document/assets/js/134cb88d.8fccc33b.js b/docs/document/assets/js/134cb88d.8fccc33b.js new file mode 100644 index 000000000..96ba9f9fd --- /dev/null +++ b/docs/document/assets/js/134cb88d.8fccc33b.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[4718],{9278:function(e,n,r){"use strict";r.d(n,{Zo:function(){return p},kt:function(){return m}});var t=r(9301);function o(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function i(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function a(e){for(var n=1;n=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=t.createContext({}),s=function(e){var n=t.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):a(a({},n),e)),r},p=function(e){var n=s(e.components);return t.createElement(u.Provider,{value:n},e.children)},l={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},f=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),f=s(r),m=o,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||i;return r?t.createElement(y,a(a({ref:n},p),{},{components:r})):t.createElement(y,a({ref:n},p))}));function m(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var s=2;s=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),f=l(r),m=i,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||o;return r?n.createElement(d,c(c({ref:t},s),{},{components:r})):n.createElement(d,c({ref:t},s))}));function m(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,c=new Array(o);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:i,c[1]=a;for(var l=2;l=a}));if(t){if(t.getBoundingClientRect().top>=a){var n=e[e.indexOf(t)-1];return null!=n?n:t}return t}return e[e.length-1]}();if(n)for(var r=0,s=!1,o=document.getElementsByClassName(e);r1,y=!m&&void 0===a.contentTitle;return n.createElement(n.Fragment,null,n.createElement(p.Z,{title:E,description:v,keywords:d,image:c}),n.createElement("div",{className:"row"},n.createElement("div",{className:(0,b.Z)("col",(t={},t[M]=!u,t))},n.createElement(h,{versionMetadata:r}),n.createElement("div",{className:I},n.createElement("article",null,T&&n.createElement("span",{className:"badge badge--secondary"},"Version: ",r.label),n.createElement("div",{className:"markdown"},y&&n.createElement(B.N,null,E),n.createElement(a,null)),(f||_||L)&&n.createElement("footer",{className:"row docusaurus-mt-lg"},n.createElement("div",{className:"col"},f&&n.createElement(C,{editUrl:f})),n.createElement("div",{className:(0,b.Z)("col",x)},(_||L)&&n.createElement(g,{lastUpdatedAt:_,formattedLastUpdatedAt:N,lastUpdatedBy:L})))),n.createElement(i,{metadata:l}))),!u&&a.toc&&n.createElement("div",{className:"col col--3"},n.createElement(U,{toc:a.toc}))))}},2917:function(e,t,a){"use strict";a.d(t,{N:function(){return u},Z:function(){return v}});var n=a(7256),r=a(1814),l=a(9301),i=a(4927),s=a(5914),o=a(4590),c="enhancedAnchor_1wgz",d="h1Heading_3OuH",m=["id"],u=function(e){var t=Object.assign({},e);return l.createElement("header",null,l.createElement("h1",(0,r.Z)({},t,{id:void 0,className:d}),t.children))},v=function(e){return"h1"===e?u:(t=e,function(e){var a,r=e.id,d=(0,n.Z)(e,m),u=(0,o.LU)().navbar.hideOnScroll;return r?l.createElement(t,d,l.createElement("a",{"aria-hidden":"true",tabIndex:-1,className:(0,i.Z)("anchor",(a={},a[c]=!u,a)),id:r}),d.children,l.createElement("a",{className:"hash-link",href:"#"+r,title:(0,s.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"#")):l.createElement(t,d)});var t}}}]); \ No newline at end of file diff --git a/docs/document/assets/js/1a67a6ef.d9ab7487.js b/docs/document/assets/js/1a67a6ef.d9ab7487.js new file mode 100644 index 000000000..3e577b97c --- /dev/null +++ b/docs/document/assets/js/1a67a6ef.d9ab7487.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[9195],{9278:function(e,r,t){"use strict";t.d(r,{Zo:function(){return l},kt:function(){return m}});var n=t(9301);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),s=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},l=function(e){var r=s(e.components);return n.createElement(u.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(t),m=o,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||a;return t?n.createElement(d,i(i({ref:r},l),{},{components:t})):n.createElement(d,i({ref:r},l))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=f;var c={};for(var u in r)hasOwnProperty.call(r,u)&&(c[u]=r[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),f=l(n),m=o,d=f["".concat(u,".").concat(m)]||f[m]||s[m]||i;return n?r.createElement(d,a(a({ref:t},p),{},{components:n})):r.createElement(d,a({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var l=2;l=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(n),m=o,y=f["".concat(u,".").concat(m)]||f[m]||p[m]||i;return n?r.createElement(y,c(c({ref:t},l),{},{components:n})):r.createElement(y,c({ref:t},l))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,c=new Array(i);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),s=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=s(e.components);return a.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,h=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return n?a.createElement(h,i(i({ref:t},u),{},{components:n})):a.createElement(h,i({ref:t},u))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var s=2;s0&&e[n-1]===t?e:e.concat(t)},G=function(e,t){var n=e.plain,a=Object.create(null),r=e.styles.reduce((function(e,n){var a=n.languages,r=n.style;return a&&!a.includes(t)||n.types.forEach((function(t){var n=$({},e[t],r);e[t]=n})),e}),a);return r.root=n,r.plain=$({},n,{backgroundColor:null}),r};function J(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&-1===t.indexOf(a)&&(n[a]=e[a]);return n}var Q=function(e){function t(){for(var t=this,n=[],a=arguments.length;a--;)n[a]=arguments[a];e.apply(this,n),K(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?G(e.theme,e.language):void 0;return t.themeDict=n})),K(this,"getLineProps",(function(e){var n=e.key,a=e.className,r=e.style,o=$({},J(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),i=t.getThemeDict(t.props);return void 0!==i&&(o.style=i.plain),void 0!==r&&(o.style=void 0!==o.style?$({},o.style,r):r),void 0!==n&&(o.key=n),a&&(o.className+=" "+a),o})),K(this,"getStyleForToken",(function(e){var n=e.types,a=e.empty,r=n.length,o=t.getThemeDict(t.props);if(void 0!==o){if(1===r&&"plain"===n[0])return a?{display:"inline-block"}:void 0;if(1===r&&!a)return o[n[0]];var i=a?{display:"inline-block"}:{},l=n.map((function(e){return o[e]}));return Object.assign.apply(Object,[i].concat(l))}})),K(this,"getTokenProps",(function(e){var n=e.key,a=e.className,r=e.style,o=e.token,i=$({},J(e,["key","className","style","token"]),{className:"token "+o.types.join(" "),children:o.content,style:t.getStyleForToken(o),key:void 0});return void 0!==r&&(i.style=void 0!==i.style?$({},i.style,r):r),void 0!==n&&(i.key=n),a&&(i.className+=" "+a),i})),K(this,"tokenize",(function(e,t,n,a){var r={code:t,grammar:n,language:a,tokens:[]};e.hooks.run("before-tokenize",r);var o=r.tokens=e.tokenize(r.code,r.grammar,r.language);return e.hooks.run("after-tokenize",r),o}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,a=e.code,r=e.children,o=this.getThemeDict(this.props),i=t.languages[n];return r({tokens:function(e){for(var t=[[]],n=[e],a=[0],r=[e.length],o=0,i=0,l=[],c=[l];i>-1;){for(;(o=a[i]++)0?u:["plain"],s=d):(u=q(u,d.type),d.alias&&(u=q(u,d.alias)),s=d.content),"string"==typeof s){var p=s.split(Y),m=p.length;l.push({types:u,content:p[0]});for(var h=1;h0}))}var _=n&&n.replace(/language-/,"");!_&&i.defaultLanguage&&(_=i.defaultLanguage);var S=k.replace(/\n$/,"");if(0===g.length&&void 0!==_){for(var N,x="",Z=function(e){switch(e){case"js":case"javascript":case"ts":case"typescript":return me(["js","jsBlock"]);case"jsx":case"tsx":return me(["js","jsBlock","jsx"]);case"html":return me(["js","jsBlock","html"]);case"python":case"py":return me(["python"]);default:return me()}}(_),j=k.replace(/\n$/,"").split("\n"),T=0;T0&&(o=r.getRangeAt(0)),t.append(n),n.select(),n.selectionStart=0,n.selectionEnd=e.length;let i=!1;try{i=document.execCommand("copy")}catch{}n.remove(),o&&(r.removeAllRanges(),r.addRange(o)),a&&a.focus()}(S),p(!0),setTimeout((function(){return p(!1)}),2e3)};return a.createElement(Q,(0,c.Z)({},U,{key:String(h),theme:v,code:S,language:_}),(function(e){var t,n=e.className,r=e.style,o=e.tokens,i=e.getLineProps,l=e.getTokenProps;return a.createElement("div",{className:oe},b&&a.createElement("div",{style:r,className:le},b),a.createElement("div",{className:(0,u.Z)(ie,_)},a.createElement("pre",{tabIndex:0,className:(0,u.Z)(n,ce,"thin-scrollbar",(t={},t[se]=b,t)),style:r},a.createElement("code",{className:de},o.map((function(e,t){1===e.length&&""===e[0].content&&(e[0].content="\n");var n=i({line:e,key:t});return g.includes(t+1)&&(n.className+=" docusaurus-highlight-code-line"),a.createElement("span",(0,c.Z)({key:t},n),e.map((function(e,t){return a.createElement("span",(0,c.Z)({key:t},l({token:e,key:t})))})))})))),a.createElement("button",{ref:y,type:"button","aria-label":(0,E.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),className:(0,u.Z)(ue,"clean-btn"),onClick:P},s?a.createElement(E.Z,{id:"theme.CodeBlock.copied",description:"The copied button label on code blocks"},"Copied"):a.createElement(E.Z,{id:"theme.CodeBlock.copy",description:"The copy button label on code blocks"},"Copy"))))}))}var fe=n(2917),be={code:function(e){var t=e.children;return(0,a.isValidElement)(t)?t:t.includes("\n")?a.createElement(he,e):a.createElement("code",e)},a:function(e){return a.createElement(f.Z,e)},pre:function(e){var t,n=e.children;return(0,a.isValidElement)(null==n||null==(t=n.props)?void 0:t.children)?null==n?void 0:n.props.children:a.createElement(he,(0,a.isValidElement)(n)?null==n?void 0:n.props:{children:n})},h1:(0,fe.Z)("h1"),h2:(0,fe.Z)("h2"),h3:(0,fe.Z)("h3"),h4:(0,fe.Z)("h4"),h5:(0,fe.Z)("h5"),h6:(0,fe.Z)("h6")},ye=n(591),ge=n(3630),ve={docPage:"docPage_2V9V",docMainContainer:"docMainContainer_J7Yc",docMainContainerEnhanced:"docMainContainerEnhanced_3py4",docSidebarContainer:"docSidebarContainer_bKeA",docSidebarContainerHidden:"docSidebarContainerHidden_27zm",collapsedDocSidebar:"collapsedDocSidebar_2VO_",expandSidebarButtonIcon:"expandSidebarButtonIcon_1jpY",docItemWrapperEnhanced:"docItemWrapperEnhanced_Ke6y"};function ke(e){var t,n,i,c,s,p=e.currentDocRoute,m=e.versionMetadata,h=e.children,f=(0,o.Z)(),b=f.siteConfig,y=f.isClient,v=m.pluginId,k=m.version,C=function(e){var t,n=e.versionMetadata,a=e.currentDocRoute,r=n.permalinkToSidebar,o=n.docsSidebars,i=r[a.path]||r[(t=a.path,t.endsWith("/")?t:t+"/")]||r[function(e){return e.endsWith("/")?e.slice(0,-1):e}(a.path)];return{sidebar:o[i],sidebarName:i}}({versionMetadata:m,currentDocRoute:p}),_=C.sidebarName,S=C.sidebar,N=(0,a.useState)(!1),x=N[0],Z=N[1],j=(0,a.useState)(!1),T=j[0],O=j[1],I=(0,a.useCallback)((function(){T&&O(!1),Z(!x)}),[T]);return a.createElement(l.Z,{key:y,wrapperClassName:d.kM.wrapper.docPages,pageClassName:d.kM.page.docPage,searchMetadatas:{version:k,tag:(0,d.os)(v,k)}},a.createElement("div",{className:ve.docPage},S&&a.createElement("aside",{className:(0,u.Z)(ve.docSidebarContainer,(t={},t[ve.docSidebarContainerHidden]=x,t)),onTransitionEnd:function(e){e.currentTarget.classList.contains(ve.docSidebarContainer)&&x&&O(!0)}},a.createElement(F,{key:_,sidebar:S,path:p.path,sidebarCollapsible:null==(n=null==(i=b.themeConfig)?void 0:i.sidebarCollapsible)||n,onCollapse:I,isHidden:T}),T&&a.createElement("div",{className:ve.collapsedDocSidebar,title:(0,E.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,E.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:I,onClick:I},a.createElement(g,{className:ve.expandSidebarButtonIcon}))),a.createElement("main",{className:(0,u.Z)(ve.docMainContainer,(c={},c[ve.docMainContainerEnhanced]=x||!S,c))},a.createElement("div",{className:(0,u.Z)("container padding-top--md padding-bottom--lg",ve.docItemWrapper,(s={},s[ve.docItemWrapperEnhanced]=x,s))},a.createElement(r.Zo,{components:be},h)))))}var Ee=function(e){var t=e.route.routes,n=e.versionMetadata,r=e.location,o=t.find((function(e){return(0,ge.LX)(r.pathname,e)}));return o?a.createElement(ke,{currentDocRoute:o,versionMetadata:n},(0,i.Z)(t,{versionMetadata:n})):a.createElement(ye.default,e)}},2917:function(e,t,n){"use strict";n.d(t,{N:function(){return p},Z:function(){return m}});var a=n(7256),r=n(1814),o=n(9301),i=n(4927),l=n(5914),c=n(4590),s="enhancedAnchor_1wgz",u="h1Heading_3OuH",d=["id"],p=function(e){var t=Object.assign({},e);return o.createElement("header",null,o.createElement("h1",(0,r.Z)({},t,{id:void 0,className:u}),t.children))},m=function(e){return"h1"===e?p:(t=e,function(e){var n,r=e.id,u=(0,a.Z)(e,d),p=(0,c.LU)().navbar.hideOnScroll;return r?o.createElement(t,u,o.createElement("a",{"aria-hidden":"true",tabIndex:-1,className:(0,i.Z)("anchor",(n={},n[s]=!p,n)),id:r}),u.children,o.createElement("a",{className:"hash-link",href:"#"+r,title:(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"#")):o.createElement(t,u)});var t}},2538:function(e,t,n){"use strict";var a=n(9301),r=n(2691),o=n.n(r),i=n(3630),l=n(973),c=n(6300);t.Z=function(e){var t=(0,a.useRef)(!1),r=(0,a.useRef)(null),s=(0,i.k6)(),u=(0,l.Z)().siteConfig,d=(void 0===u?{}:u).baseUrl,p=(0,c.usePluginData)("docusaurus-lunr-search"),m=function(){t.current||(Promise.all([fetch(""+d+p.fileNames.searchDoc).then((function(e){return e.json()})),fetch(""+d+p.fileNames.lunrIndex).then((function(e){return e.json()})),Promise.all([n.e(759),n.e(4159)]).then(n.bind(n,6050)),Promise.all([n.e(532),n.e(3107)]).then(n.bind(n,3107))]).then((function(e){var t=e[0],n=e[1],a=e[2].default;0!==t.length&&function(e,t,n){new n({searchDocs:e,searchIndex:t,inputSelector:"#search_input_react",handleSelected:function(e,t,n){var a=d+n.url;document.createElement("a").href=a,s.push(a)}})}(t,n,a)})),t.current=!0)},h=(0,a.useCallback)((function(t){r.current.contains(t.target)||r.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return a.createElement("div",{className:"navbar__search",key:"search-box"},a.createElement("span",{"aria-label":"expand searchbar",role:"button",className:o()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:h,onKeyDown:h,tabIndex:0}),a.createElement("input",{id:"search_input_react",type:"search",placeholder:"Search","aria-label":"Search",className:o()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:m,onMouseOver:m,onFocus:h,onBlur:h,ref:r}))}},2680:function(e,t){function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,r,o]=t;if(a&&o){a=parseInt(a),o=parseInt(o);const e=a=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),m=s(n),d=i,f=m["".concat(u,".").concat(d)]||m[d]||p[d]||a;return n?r.createElement(f,o(o({ref:t},l),{},{components:n})):r.createElement(f,o({ref:t},l))}));function d(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=m;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:i,o[1]=c;for(var s=2;s=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var u=r.createContext({}),o=function(t){var e=r.useContext(u),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},d=function(t){var e=o(t.components);return r.createElement(u.Provider,{value:e},t.children)},m={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},c=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,l=t.originalType,u=t.parentName,d=p(t,["components","mdxType","originalType","parentName"]),c=o(n),s=a,k=c["".concat(u,".").concat(s)]||c[s]||m[s]||l;return n?r.createElement(k,i(i({ref:e},d),{},{components:n})):r.createElement(k,i({ref:e},d))}));function s(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var l=n.length,i=new Array(l);i[0]=c;var p={};for(var u in e)hasOwnProperty.call(e,u)&&(p[u]=e[u]);p.originalType=t,p.mdxType="string"==typeof t?t:a,i[1]=p;for(var o=2;o entry : map.entrySet()) {\n keys[i++] = entry.getKey();\n}\nArrays.sort(keys);\nStringBuilder stringBuilder = new StringBuilder();\nfor (String key : keys) {\n stringBuilder.append(key);\n stringBuilder.append(":");\n stringBuilder.append(map.get(key));\n}\nstringBuilder.append(secret);\nString str=stringBuilder.toString();\nString encodeStr = DigestUtils.md5Hex(str).toUpperCase();\nreturn encodeStr ;\n')),(0,l.kt)("h3",{id:"api\u54cd\u5e94\u7ed3\u679c\u8bf4\u660e"},"API\u54cd\u5e94\u7ed3\u679c\u8bf4\u660e"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"\u53c2\u6570\u540d\u79f0"),(0,l.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,l.kt)("th",{parentName:"tr",align:null},"\u7c7b\u578b"),(0,l.kt)("th",{parentName:"tr",align:null},"\u5fc5\u586b"),(0,l.kt)("th",{parentName:"tr",align:null},"\u5907\u6ce8"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"code"),(0,l.kt)("td",{parentName:"tr",align:null},"\u72b6\u6001\u7801"),(0,l.kt)("td",{parentName:"tr",align:null},"Integer"),(0,l.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"0\uff1a\u6267\u884c\u6210\u529f"),(0,l.kt)("p",null,"\u5176\u4ed6\u7f16\u7801\u5747\u4e3a\u5931\u8d25\uff0c\u8be6\u89c1\u7801\u8868"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"message"),(0,l.kt)("td",{parentName:"tr",align:null},"\u72b6\u6001\u63cf\u8ff0"),(0,l.kt)("td",{parentName:"tr",align:null},"String"),(0,l.kt)("td",{parentName:"tr",align:null},"\u662f"),(0,l.kt)("td",{parentName:"tr",align:null},"\u7528\u4e8e\u63cf\u8ff0code")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"result"),(0,l.kt)("td",{parentName:"tr",align:null},"\u8be6\u7ec6\u4fe1\u606f"),(0,l.kt)("td",{parentName:"tr",align:null},"Object"),(0,l.kt)("td",{parentName:"tr",align:null},"\u5426"),(0,l.kt)("td",{parentName:"tr",align:null},"\u5f53code\u4e3a0\u65f6 result\u4e3a\u8fd4\u56de\u7684\u4e1a\u52a1\u6570\u636e\u3002")))),(0,l.kt)("p",null,"\u6b63\u786e\u54cd\u5e94\u7684JSON - \u4f8b\uff1a"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-json"},'{\n "code": 0,\n "message": "Permintaan berhasil",\n "result": {\n "state": true\n }\n}\n')))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/docs/document/assets/js/2538.81bde722.js b/docs/document/assets/js/2538.81bde722.js new file mode 100644 index 000000000..50f9ac53f --- /dev/null +++ b/docs/document/assets/js/2538.81bde722.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[2538],{2538:function(e,a,n){"use strict";var r=n(9301),c=n(2691),t=n.n(c),s=n(3630),l=n(973),u=n(6300);a.Z=function(e){var a=(0,r.useRef)(!1),c=(0,r.useRef)(null),h=(0,s.k6)(),o=(0,l.Z)().siteConfig,i=(void 0===o?{}:o).baseUrl,d=(0,u.usePluginData)("docusaurus-lunr-search"),f=function(){a.current||(Promise.all([fetch(""+i+d.fileNames.searchDoc).then((function(e){return e.json()})),fetch(""+i+d.fileNames.lunrIndex).then((function(e){return e.json()})),Promise.all([n.e(759),n.e(4159)]).then(n.bind(n,6050)),Promise.all([n.e(532),n.e(3107)]).then(n.bind(n,3107))]).then((function(e){var a=e[0],n=e[1],r=e[2].default;0!==a.length&&function(e,a,n){new n({searchDocs:e,searchIndex:a,inputSelector:"#search_input_react",handleSelected:function(e,a,n){var r=i+n.url;document.createElement("a").href=r,h.push(r)}})}(a,n,r)})),a.current=!0)},p=(0,r.useCallback)((function(a){c.current.contains(a.target)||c.current.focus(),e.handleSearchBarToggle&&e.handleSearchBarToggle(!e.isSearchBarExpanded)}),[e.isSearchBarExpanded]);return r.createElement("div",{className:"navbar__search",key:"search-box"},r.createElement("span",{"aria-label":"expand searchbar",role:"button",className:t()("search-icon",{"search-icon-hidden":e.isSearchBarExpanded}),onClick:p,onKeyDown:p,tabIndex:0}),r.createElement("input",{id:"search_input_react",type:"search",placeholder:"Search","aria-label":"Search",className:t()("navbar__search-input",{"search-bar-expanded":e.isSearchBarExpanded},{"search-bar":!e.isSearchBarExpanded}),onClick:f,onMouseOver:f,onFocus:p,onBlur:p,ref:c}))}}}]); \ No newline at end of file diff --git a/docs/document/assets/js/25894e64.7b006a3a.js b/docs/document/assets/js/25894e64.7b006a3a.js new file mode 100644 index 000000000..0880a2991 --- /dev/null +++ b/docs/document/assets/js/25894e64.7b006a3a.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[6683],{9278:function(e,t,n){"use strict";n.d(t,{Zo:function(){return l},kt:function(){return m}});var r=n(9301);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(n),m=i,y=f["".concat(u,".").concat(m)]||f[m]||p[m]||o;return n?r.createElement(y,c(c({ref:t},l),{},{components:n})):r.createElement(y,c({ref:t},l))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,c=new Array(o);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:i,c[1]=a;for(var s=2;s=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=t.createContext({}),s=function(e){var n=t.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},p=function(e){var n=s(e.components);return t.createElement(u.Provider,{value:n},e.children)},l={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},f=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),f=s(r),m=o,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||i;return r?t.createElement(y,c(c({ref:n},p),{},{components:r})):t.createElement(y,c({ref:n},p))}));function m(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var s=2;s=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),s=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},l=function(e){var r=s(e.components);return n.createElement(u.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(t),m=o,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||a;return t?n.createElement(d,i(i({ref:r},l),{},{components:t})):n.createElement(d,i({ref:r},l))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=f;var c={};for(var u in r)hasOwnProperty.call(r,u)&&(c[u]=r[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var s=2;s=a?o(!1):r+c0&&r.createElement("div",{className:"row footer__links"},o.map((function(e,t){return r.createElement("div",{key:t,className:"col footer__col"},null!=e.title?r.createElement("div",{className:"footer__title"},e.title):null,null!=e.items&&Array.isArray(e.items)&&e.items.length>0?r.createElement("ul",{className:"footer__items"},e.items.map((function(e,t){return e.html?r.createElement("li",{key:t,className:"footer__item",dangerouslySetInnerHTML:{__html:e.html}}):r.createElement("li",{key:e.href||e.to,className:"footer__item"},r.createElement($,e))}))):null)}))),(s||n)&&r.createElement("div",{className:"footer__bottom text--center"},s&&(s.src||s.srcDark)&&r.createElement("div",{className:"margin-bottom--sm"},s.href?r.createElement(G.Z,{href:s.href,className:Q},r.createElement(ee,{alt:s.alt,sources:u})):r.createElement(ee,{alt:s.alt,sources:u})),n?r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:n}}):null))):null},ne=n(5804),re=(0,c.WA)("theme"),ae="light",le="dark",oe=function(e){return e===le?le:ae},ce=function(e){(0,c.WA)("theme").set(oe(e))},ie=function(){var e=(0,c.LU)().colorMode,t=e.defaultMode,n=e.disableSwitch,a=e.respectPrefersColorScheme,l=(0,r.useState)(function(e){return ne.Z.canUseDOM?oe(document.documentElement.getAttribute("data-theme")):oe(e)}(t)),o=l[0],i=l[1],s=(0,r.useCallback)((function(){i(ae),ce(ae)}),[]),u=(0,r.useCallback)((function(){i(le),ce(le)}),[]);return(0,r.useEffect)((function(){document.documentElement.setAttribute("data-theme",oe(o))}),[o]),(0,r.useEffect)((function(){if(!n)try{var e=re.get();null!==e&&i(oe(e))}catch(t){console.error(t)}}),[i]),(0,r.useEffect)((function(){n&&!a||window.matchMedia("(prefers-color-scheme: dark)").addListener((function(e){var t=e.matches;i(t?le:ae)}))}),[]),{isDarkTheme:o===le,setLightTheme:s,setDarkTheme:u}},se=n(4473);var ue=function(e){var t=ie(),n=t.isDarkTheme,a=t.setLightTheme,l=t.setDarkTheme;return r.createElement(se.Z.Provider,{value:{isDarkTheme:n,setLightTheme:a,setDarkTheme:l}},e.children)},me="docusaurus.tab.",de=function(){var e=(0,r.useState)({}),t=e[0],n=e[1],a=(0,r.useCallback)((function(e,t){(0,c.WA)("docusaurus.tab."+e).set(t)}),[]);return(0,r.useEffect)((function(){try{var e={};(0,c._f)().forEach((function(t){if(t.startsWith(me)){var n=t.substring(me.length);e[n]=(0,c.WA)(t).get()}})),n(e)}catch(t){console.error(t)}}),[]),{tabGroupChoices:t,setTabGroupChoices:function(e,t){n((function(n){var r;return Object.assign({},n,((r={})[e]=t,r))})),a(e,t)}}},fe=(0,r.createContext)(void 0);var ve=function(e){var t=de(),n=t.tabGroupChoices,a=t.setTabGroupChoices;return r.createElement(fe.Provider,{value:{tabGroupChoices:n,setTabGroupChoices:a}},e.children)};function he(e){var t=e.children;return r.createElement(ue,null,r.createElement(c.pl,null,r.createElement(ve,null,r.createElement(c.L5,null,t))))}var ge=n(2549);function pe(e){var t=e.locale,n=e.version,a=e.tag;return r.createElement(ge.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}))}var Ee=n(2336);function be(){var e=(0,E.Z)().i18n,t=e.defaultLocale,n=e.locales,a=(0,c.l5)();return r.createElement(ge.Z,null,n.map((function(e){return r.createElement("link",{key:e,rel:"alternate",href:a.createUrl({locale:e,fullyQualified:!0}),hrefLang:e})})),r.createElement("link",{rel:"alternate",href:a.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}))}function ke(e){var t=e.permalink,n=(0,E.Z)().siteConfig.url,a=function(){var e=(0,E.Z)().siteConfig.url,t=(0,l.TH)().pathname;return e+(0,K.Z)(t)}(),o=t?""+n+t:a;return r.createElement(ge.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function Ze(e){var t=(0,E.Z)(),n=t.siteConfig,a=n.favicon,l=n.themeConfig,o=l.metadatas,i=l.image,s=t.i18n,u=s.currentLocale,m=s.localeConfigs,d=e.title,f=e.description,v=e.image,h=e.keywords,p=e.searchMetadatas,b=(0,K.Z)(a),k=(0,c.pe)(d),Z=u,_=m[u].direction;return r.createElement(r.Fragment,null,r.createElement(ge.Z,null,r.createElement("html",{lang:Z,dir:_}),a&&r.createElement("link",{rel:"shortcut icon",href:b}),r.createElement("title",null,k),r.createElement("meta",{property:"og:title",content:k}),v||i&&r.createElement("meta",{name:"twitter:card",content:"summary_large_image"})),r.createElement(Ee.Z,{description:f,keywords:h,image:v}),r.createElement(ke,null),r.createElement(be,null),r.createElement(pe,(0,g.Z)({tag:c.HX,locale:u},p)),r.createElement(ge.Z,null,o.map((function(e,t){return r.createElement("meta",(0,g.Z)({key:"metadata_"+t},e))}))))}var _e=function(){(0,r.useEffect)((function(){var e="navigation-with-keyboard";function t(t){"keydown"===t.type&&"Tab"===t.key&&document.body.classList.add(e),"mousedown"===t.type&&document.body.classList.remove(e)}return document.addEventListener("keydown",t),document.addEventListener("mousedown",t),function(){document.body.classList.remove(e),document.removeEventListener("keydown",t),document.removeEventListener("mousedown",t)}}),[])};var Ne=function(e){var t=e.children,n=e.noFooter,l=e.wrapperClassName,o=e.pageClassName;return _e(),r.createElement(he,null,r.createElement(Ze,e),r.createElement(u,null),r.createElement(h,null),r.createElement(j,null),r.createElement("div",{className:(0,a.Z)(c.kM.wrapper.main,l,o)},t),!n&&r.createElement(te,null))}},5637:function(e,t,n){"use strict";var r=n(1814),a=n(7256),l=n(9301),o=n(181),c=n(8553),i=n(5899),s=n(973),u=["imageClassName","titleClassName"];t.Z=function(e){var t=(0,s.Z)(),n=t.siteConfig,m=n.title,d=n.themeConfig.navbar,f=d.title,v=d.logo,h=void 0===v?{src:""}:v,g=t.isClient,p=e.imageClassName,E=e.titleClassName,b=(0,a.Z)(e,u),k=(0,i.Z)(h.href||"/"),Z={light:(0,i.Z)(h.src),dark:(0,i.Z)(h.srcDark||h.src)};return l.createElement(o.Z,(0,r.Z)({to:k},b,h.target&&{target:h.target}),h.src&&l.createElement(c.Z,{key:g,className:p,sources:Z,alt:h.alt||f||m}),null!=f&&l.createElement("b",{className:E},f))}},4888:function(e,t,n){"use strict";var r=n(1814),a=n(7256),l=n(9301),o=n(4927),c=n(181),i=n(5899),s=n(3630),u=n(4590),m=n(3798),d=n(3897),f=["activeBasePath","activeBaseRegex","to","href","label","activeClassName","prependBaseUrlToHref"],v=["items","position","className"],h=["className"],g=["items","className","position"],p=["className"],E=["mobile"],b="dropdown__link--active";function k(e){var t=e.activeBasePath,n=e.activeBaseRegex,o=e.to,s=e.href,u=e.label,v=e.activeClassName,h=void 0===v?"navbar__link--active":v,g=e.prependBaseUrlToHref,p=(0,a.Z)(e,f),E=(0,i.Z)(o),k=(0,i.Z)(t),Z=(0,i.Z)(s,{forcePrependBaseUrl:!0}),_=u&&s&&!(0,d.Z)(s),N=h===b;return l.createElement(c.Z,(0,r.Z)({},s?{href:g?Z:s}:Object.assign({isNavLink:!0,activeClassName:h,to:E},t||n?{isActive:function(e,t){return n?new RegExp(n).test(t.pathname):t.pathname.startsWith(k)}}:null),p),_?l.createElement("span",null,u,l.createElement(m.Z,N&&{width:12,height:12})):u)}function Z(e){var t,n=e.items,c=e.position,i=e.className,s=(0,a.Z)(e,v),u=(0,l.useRef)(null),m=(0,l.useRef)(null),d=(0,l.useState)(!1),f=d[0],g=d[1];(0,l.useEffect)((function(){var e=function(e){u.current&&!u.current.contains(e.target)&&g(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[u]);var p=function(e,t){return void 0===t&&(t=!1),(0,o.Z)({"navbar__item navbar__link":!t,dropdown__link:t},e)};return n?l.createElement("div",{ref:u,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--left":"left"===c,"dropdown--right":"right"===c,"dropdown--show":f})},l.createElement(k,(0,r.Z)({className:p(i)},s,{onClick:s.to?void 0:function(e){return e.preventDefault()},onKeyDown:function(e){"Enter"===e.key&&(e.preventDefault(),g(!f))}}),null!=(t=s.children)?t:s.label),l.createElement("ul",{ref:m,className:"dropdown__menu"},n.map((function(e,t){var o=e.className,c=(0,a.Z)(e,h);return l.createElement("li",{key:t},l.createElement(k,(0,r.Z)({onKeyDown:function(e){if(t===n.length-1&&"Tab"===e.key){e.preventDefault(),g(!1);var r=u.current.nextElementSibling;r&&r.focus()}},activeClassName:b,className:p(o,!0)},c)))})))):l.createElement(k,(0,r.Z)({className:p(i)},s))}function _(e){var t,n,c,i=e.items,m=e.className,d=(e.position,(0,a.Z)(e,g)),f=(0,l.useRef)(null),v=(0,s.TH)().pathname,h=(0,l.useState)((function(){var e;return null==(e=!(null!=i&&i.some((function(e){return(0,u.Mg)(e.to,v)}))))||e})),E=h[0],b=h[1],Z=function(e,t){return void 0===t&&(t=!1),(0,o.Z)("menu__link",{"menu__link--sublist":t},e)};if(!i)return l.createElement("li",{className:"menu__list-item"},l.createElement(k,(0,r.Z)({className:Z(m)},d)));var _=null!=(t=f.current)&&t.scrollHeight?(null==(n=f.current)?void 0:n.scrollHeight)+"px":void 0;return l.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":E})},l.createElement(k,(0,r.Z)({role:"button",className:Z(m,!0)},d,{onClick:function(e){e.preventDefault(),b((function(e){return!e}))}}),null!=(c=d.children)?c:d.label),l.createElement("ul",{className:"menu__list",ref:f,style:{height:E?void 0:_}},i.map((function(e,t){var n=e.className,o=(0,a.Z)(e,p);return l.createElement("li",{className:"menu__list-item",key:t},l.createElement(k,(0,r.Z)({activeClassName:"menu__link--active",className:Z(n)},o,{onClick:d.onClick})))}))))}t.Z=function(e){var t=e.mobile,n=void 0!==t&&t,r=(0,a.Z)(e,E),o=n?_:Z;return l.createElement(o,r)}},874:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(1814),a=n(7256),l=n(9301),o=n(4888),c=n(8781),i=n(4927),s=n(4590),u=n(4441),m=["docId","activeSidebarClassName","label","docsPluginId"];function d(e){var t,n=e.docId,d=e.activeSidebarClassName,f=e.label,v=e.docsPluginId,h=(0,a.Z)(e,m),g=(0,c.Iw)(v),p=g.activeVersion,E=g.activeDoc,b=(0,s.J)(v).preferredVersion,k=(0,c.yW)(v),Z=function(e,t){var n,r=(n=[]).concat.apply(n,e.map((function(e){return e.docs}))),a=r.find((function(e){return e.id===t}));if(!a){var l=r.map((function(e){return e.id})).join("\n- ");throw new Error("DocNavbarItem: couldn't find any doc with id \""+t+'" in version'+(e.length?"s":"")+" "+e.map((function(e){return e.name})).join(", ")+'".\nAvailable doc ids are:\n- '+l)}return a}((0,u.uniq)([p,b,k].filter(Boolean)),n);return l.createElement(o.Z,(0,r.Z)({exact:!0},h,{className:(0,i.Z)(h.className,(t={},t[d]=E&&E.sidebar===Z.sidebar,t)),label:null!=f?f:Z.id,to:Z.path}))}},1132:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(1814),a=n(7256),l=n(9301),o=n(4888),c=n(8781),i=n(4590),s=["mobile","docsPluginId","dropdownActiveClassDisabled","dropdownItemsBefore","dropdownItemsAfter"],u=function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))};function m(e){var t,n,m=e.mobile,d=e.docsPluginId,f=e.dropdownActiveClassDisabled,v=e.dropdownItemsBefore,h=e.dropdownItemsAfter,g=(0,a.Z)(e,s),p=(0,c.Iw)(d),E=(0,c.gB)(d),b=(0,c.yW)(d),k=(0,i.J)(d),Z=k.preferredVersion,_=k.savePreferredVersionName;var N=function(){var e=E.map((function(e){var t=(null==p?void 0:p.alternateDocVersions[e.name])||u(e);return{isNavLink:!0,label:e.label,to:t.path,isActive:function(){return e===(null==p?void 0:p.activeVersion)},onClick:function(){_(e.name)}}})),t=[].concat(v,e,h);if(!(t.length<=1))return t}(),w=null!=(t=null!=(n=p.activeVersion)?n:Z)?t:b,y=m&&N?"Versions":w.label,C=m&&N?void 0:u(w).path;return l.createElement(o.Z,(0,r.Z)({},g,{mobile:m,label:y,to:C,items:N,isActive:f?function(){return!1}:void 0}))}},5639:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(1814),a=n(7256),l=n(9301),o=n(4888),c=n(8781),i=n(4590),s=["label","to","docsPluginId"];function u(e){var t,n=e.label,u=e.to,m=e.docsPluginId,d=(0,a.Z)(e,s),f=(0,c.zu)(m),v=(0,i.J)(m).preferredVersion,h=(0,c.yW)(m),g=null!=(t=null!=f?f:v)?t:h,p=null!=n?n:g.label,E=null!=u?u:function(e){return e.docs.find((function(t){return t.id===e.mainDocId}))}(g).path;return l.createElement(o.Z,(0,r.Z)({},d,{label:p,to:E}))}},591:function(e,t,n){"use strict";n.r(t);var r=n(9301),a=n(2380),l=n(5914);t.default=function(){return r.createElement(a.Z,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})},r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),r.createElement("p",null,r.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),r.createElement("p",null,r.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."))))))}},4473:function(e,t,n){"use strict";var r=n(9301).createContext(void 0);t.Z=r},8553:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(1814),a=n(7256),l=n(9301),o=n(4927),c=n(973),i=n(4848),s={themedImage:"themedImage_3jUe","themedImage--light":"themedImage--light_3-1O","themedImage--dark":"themedImage--dark_3GtQ"},u=["sources","className","alt"],m=function(e){var t=(0,c.Z)().isClient,n=(0,i.Z)().isDarkTheme,m=e.sources,d=e.className,f=e.alt,v=void 0===f?"":f,h=(0,a.Z)(e,u),g=t?n?["dark"]:["light"]:["light","dark"];return l.createElement(l.Fragment,null,g.map((function(e){return l.createElement("img",(0,r.Z)({key:e,src:m[e],alt:v,className:(0,o.Z)(s.themedImage,s["themedImage--"+e],d)},h))})))}},8196:function(e,t,n){"use strict";var r=n(9301);t.Z=function(e){void 0===e&&(e=!0),(0,r.useEffect)((function(){return document.body.style.overflow=e?"hidden":"visible",function(){document.body.style.overflow="visible"}}),[e])}},4384:function(e,t,n){"use strict";var r=n(9301),a=n(5804),l=function(){return{scrollX:a.Z.canUseDOM?window.pageXOffset:0,scrollY:a.Z.canUseDOM?window.pageYOffset:0}};t.Z=function(e,t){void 0===t&&(t=[]);var n=(0,r.useRef)(l()),a=function(){var t=l();e&&e(t,n.current),n.current=t};(0,r.useEffect)((function(){var e={passive:!0};return a(),window.addEventListener("scroll",a,e),function(){return window.removeEventListener("scroll",a,e)}}),t)}},4848:function(e,t,n){"use strict";var r=n(9301),a=n(4473);t.Z=function(){var e=(0,r.useContext)(a.Z);if(null==e)throw new Error('"useThemeContext" is used outside of "Layout" component. Please see https://docusaurus.io/docs/api/themes/configuration#usethemecontext.');return e}},2402:function(e,t,n){"use strict";n.d(t,{D:function(){return l}});var r=n(9301),a=n(5804),l={desktop:"desktop",mobile:"mobile"};t.Z=function(){var e=a.Z.canUseDOM;function t(){if(e)return window.innerWidth>996?l.desktop:l.mobile}var n=(0,r.useState)(t),o=n[0],c=n[1];return(0,r.useEffect)((function(){if(e)return window.addEventListener("resize",n),function(){return window.removeEventListener("resize",n)};function n(){c(t())}}),[]),o}},2691:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),u=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(n),d=a,k=c["".concat(p,".").concat(d)]||c[d]||m[d]||l;return n?r.createElement(k,i(i({ref:t},s),{},{components:n})):r.createElement(k,i({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o.mdxType="string"==typeof e?e:a,i[1]=o;for(var u=2;u=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=t.createContext({}),s=function(e){var n=t.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},p=function(e){var n=s(e.components);return t.createElement(u.Provider,{value:n},e.children)},l={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},f=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),f=s(r),m=o,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||i;return r?t.createElement(y,c(c({ref:n},p),{},{components:r})):t.createElement(y,c({ref:n},p))}));function m(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var s=2;s=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=r.createContext({}),s=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},p=function(e){var n=s(e.components);return r.createElement(u.Provider,{value:n},e.children)},l={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},f=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),f=s(t),m=o,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||i;return t?r.createElement(y,a(a({ref:n},p),{},{components:t})):r.createElement(y,a({ref:n},p))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,a=new Array(i);a[0]=f;var c={};for(var u in n)hasOwnProperty.call(n,u)&&(c[u]=n[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var s=2;s'+e.title.substring(i,a)+""+e.title.substring(a,e.title.length);return this.getHit(e,s)},t.getKeywordHit=function(e,t,n){var i=t[0],a=t[0]+n,s=e.title+"
    Keywords: "+e.keywords.substring(0,i)+''+e.keywords.substring(i,a)+""+e.keywords.substring(a,e.keywords.length)+"";return this.getHit(e,s)},t.getContentHit=function(e,t){for(var n=t[0],i=t[0]+t[1],a=n,s=i,r=!0,l=!0,o=0;o<3;o++){var u=e.content.lastIndexOf(" ",a-2),c=e.content.lastIndexOf(".",a-2);if(c>0&&c>u){a=c+1,r=!1;break}if(u<0){a=0,r=!1;break}a=u+1}for(var h=0;h<10;h++){var g=e.content.indexOf(" ",s+1),d=e.content.indexOf(".",s+1);if(d>0&&d",p+=e.content.substring(i,s),l&&(p+=" ..."),this.getHit(e,null,p)},t.search=function(e){var t=this;return new Promise((function(n,i){var a=t.getLunrResult(e),s=[];a.length>5&&(a.length=5),t.titleHitsRes=[],t.contentHitsRes=[],a.forEach((function(n){var i=t.searchDocs[n.ref],a=n.matchData.metadata;for(var r in a)if(a[r].title){if(!t.titleHitsRes.includes(n.ref)){var l=a[r].title.position[0];s.push(t.getTitleHit(i,l,e.length)),t.titleHitsRes.push(n.ref)}}else if(a[r].content){var o=a[r].content.position[0];s.push(t.getContentHit(i,o))}else if(a[r].keywords){var u=a[r].keywords.position[0];s.push(t.getKeywordHit(i,u,e.length)),t.titleHitsRes.push(n.ref)}})),s.length>5&&(s.length=5),n(s)}))},e}(),l=n(8708),o=n.n(l),u="algolia-docsearch",c=u+"-suggestion",h={suggestion:'\n
    \n

    \n
    \n
    \n {{{subcategory}}}\n
    \n {{#isTextOrSubcategoryNonEmpty}}\n
    \n
    {{{subcategory}}}
    \n
    {{{title}}}
    \n {{#text}}
    {{{text}}}
    {{/text}}\n
    \n {{/isTextOrSubcategoryNonEmpty}}\n
    \n
    \n ',suggestionSimple:'\n
    \n
    \n {{^isLvl0}}\n {{{category}}}\n {{^isLvl1}}\n {{^isLvl1EmptyOrDuplicate}}\n \n {{{subcategory}}}\n \n {{/isLvl1EmptyOrDuplicate}}\n {{/isLvl1}}\n {{/isLvl0}}\n
    \n {{#isLvl2}}\n {{{title}}}\n {{/isLvl2}}\n {{#isLvl1}}\n {{{subcategory}}}\n {{/isLvl1}}\n {{#isLvl0}}\n {{{category}}}\n {{/isLvl0}}\n
    \n
    \n
    \n {{#text}}\n
    \n
    {{{text}}}
    \n
    \n {{/text}}\n
    \n
    \n ',footer:'\n \n ',empty:'\n
    \n
    \n
    \n
    \n
    \n No results found for query "{{query}}"\n
    \n
    \n
    \n
    \n
    \n ',searchBox:'\n \n\n\n '},g=n(3573),d=n.n(g),p={mergeKeyWithParent:function(e,t){if(void 0===e[t])return e;if("object"!=typeof e[t])return e;var n=d().extend({},e,e[t]);return delete n[t],n},groupBy:function(e,t){var n={};return d().each(e,(function(e,i){if(void 0===i[t])throw new Error("[groupBy]: Object has no key "+t);var a=i[t];"string"==typeof a&&(a=a.toLowerCase()),Object.prototype.hasOwnProperty.call(n,a)||(n[a]=[]),n[a].push(i)})),n},values:function(e){return Object.keys(e).map((function(t){return e[t]}))},flatten:function(e){var t=[];return e.forEach((function(e){Array.isArray(e)?e.forEach((function(e){t.push(e)})):t.push(e)})),t},flattenAndFlagFirst:function(e,t){var n=this.values(e).map((function(e){return e.map((function(e,n){return e[t]=0===n,e}))}));return this.flatten(n)},compact:function(e){var t=[];return e.forEach((function(e){e&&t.push(e)})),t},getHighlightedValue:function(e,t){return e._highlightResult&&e._highlightResult.hierarchy_camel&&e._highlightResult.hierarchy_camel[t]&&e._highlightResult.hierarchy_camel[t].matchLevel&&"none"!==e._highlightResult.hierarchy_camel[t].matchLevel&&e._highlightResult.hierarchy_camel[t].value?e._highlightResult.hierarchy_camel[t].value:e._highlightResult&&e._highlightResult&&e._highlightResult[t]&&e._highlightResult[t].value?e._highlightResult[t].value:e[t]},getSnippetedValue:function(e,t){if(!e._snippetResult||!e._snippetResult[t]||!e._snippetResult[t].value)return e[t];var n=e._snippetResult[t].value;return n[0]!==n[0].toUpperCase()&&(n="\u2026"+n),-1===[".","!","?"].indexOf(n[n.length-1])&&(n+="\u2026"),n},deepClone:function(e){return JSON.parse(JSON.stringify(e))}},v=function(){function e(t){var n=t.searchDocs,i=t.searchIndex,a=t.inputSelector,s=t.debug,l=void 0!==s&&s,u=t.queryDataCallback,c=void 0===u?null:u,g=t.autocompleteOptions,p=void 0===g?{debug:!1,hint:!1,autoselect:!0}:g,v=t.transformData,f=void 0!==v&&v,y=t.queryHook,m=void 0!==y&&y,b=t.handleSelected,x=void 0!==b&&b,w=t.enhancedSearchInput,_=void 0!==w&&w,S=t.layout,H=void 0===S?"collumns":S;this.input=e.getInputFromSelector(a),this.queryDataCallback=c||null;var C=!(!p||!p.debug)&&p.debug;p.debug=l||C,this.autocompleteOptions=p,this.autocompleteOptions.cssClasses=this.autocompleteOptions.cssClasses||{},this.autocompleteOptions.cssClasses.prefix=this.autocompleteOptions.cssClasses.prefix||"ds";var L=this.input&&"function"==typeof this.input.attr&&this.input.attr("aria-label");this.autocompleteOptions.ariaLabel=this.autocompleteOptions.ariaLabel||L||"search input",this.isSimpleLayout="simple"===H,this.client=new r(n,i),_&&(this.input=e.injectSearchBox(this.input)),this.autocomplete=o()(this.input,p,[{source:this.getAutocompleteSource(f,m),templates:{suggestion:e.getSuggestionTemplate(this.isSimpleLayout),footer:h.footer,empty:e.getEmptyTemplate()}}]);var k=x;this.handleSelected=k||this.handleSelected,k&&d()(".algolia-autocomplete").on("click",".ds-suggestions a",(function(e){e.preventDefault()})),this.autocomplete.on("autocomplete:selected",this.handleSelected.bind(null,this.autocomplete.autocomplete)),this.autocomplete.on("autocomplete:shown",this.handleShown.bind(null,this.input)),_&&e.bindSearchBoxEvent()}e.injectSearchBox=function(e){e.before(h.searchBox);var t=e.prev().prev().find("input");return e.remove(),t},e.bindSearchBoxEvent=function(){d()('.searchbox [type="reset"]').on("click",(function(){d()("input#docsearch").focus(),d()(this).addClass("hide"),o().autocomplete.setVal("")})),d()("input#docsearch").on("keyup",(function(){var e=document.querySelector("input#docsearch"),t=document.querySelector('.searchbox [type="reset"]');t.className="searchbox__reset",0===e.value.length&&(t.className+=" hide")}))},e.getInputFromSelector=function(e){var t=d()(e).filter("input");return t.length?d()(t[0]):null};var t=e.prototype;return t.getAutocompleteSource=function(t,n){var i=this;return function(a,s){n&&(a=n(a)||a),i.client.search(a).then((function(n){i.queryDataCallback&&"function"==typeof i.queryDataCallback&&i.queryDataCallback(n),t&&(n=t(n)||n),s(e.formatHits(n))}))}},e.formatHits=function(t){var n=p.deepClone(t).map((function(e){return e._highlightResult&&(e._highlightResult=p.mergeKeyWithParent(e._highlightResult,"hierarchy")),p.mergeKeyWithParent(e,"hierarchy")})),i=p.groupBy(n,"lvl0");return d().each(i,(function(e,t){var n=p.groupBy(t,"lvl1"),a=p.flattenAndFlagFirst(n,"isSubCategoryHeader");i[e]=a})),(i=p.flattenAndFlagFirst(i,"isCategoryHeader")).map((function(t){var n=e.formatURL(t),i=p.getHighlightedValue(t,"lvl0"),a=p.getHighlightedValue(t,"lvl1")||i,s=p.compact([p.getHighlightedValue(t,"lvl2")||a,p.getHighlightedValue(t,"lvl3"),p.getHighlightedValue(t,"lvl4"),p.getHighlightedValue(t,"lvl5"),p.getHighlightedValue(t,"lvl6")]).join(''),r=p.getSnippetedValue(t,"content"),l=a&&""!==a||s&&""!==s,o=s&&""!==s&&s!==a,u=!o&&a&&""!==a&&a!==i;return{isLvl0:!u&&!o,isLvl1:u,isLvl2:o,isLvl1EmptyOrDuplicate:!a||""===a||a===i,isCategoryHeader:t.isCategoryHeader,isSubCategoryHeader:t.isSubCategoryHeader,isTextOrSubcategoryNonEmpty:l,category:i,subcategory:a,title:s,text:r,url:n}}))},e.formatURL=function(e){var t=e.url,n=e.anchor;return t?-1!==t.indexOf("#")?t:n?e.url+"#"+e.anchor:t:n?"#"+e.anchor:(console.warn("no anchor nor url for : ",JSON.stringify(e)),null)},e.getEmptyTemplate=function(){return function(e){return a().compile(h.empty).render(e)}},e.getSuggestionTemplate=function(e){var t=e?h.suggestionSimple:h.suggestion,n=a().compile(t);return function(e){return n.render(e)}},t.handleSelected=function(e,t,n,i,a){void 0===a&&(a={}),"click"!==a.selectionMethod&&(e.setVal(""),window.location.assign(n.url))},t.handleShown=function(e){var t=e.offset().left+e.width()/2,n=d()(document).width()/2;isNaN(n)&&(n=900);var i=t-n>=0?"algolia-autocomplete-right":"algolia-autocomplete-left",a=t-n<0?"algolia-autocomplete-right":"algolia-autocomplete-left",s=d()(".algolia-autocomplete");s.hasClass(i)||s.addClass(i),s.hasClass(a)&&s.removeClass(a)},e}()},801:function(){}}]); \ No newline at end of file diff --git a/docs/document/assets/js/477a14c5.b9546c86.js b/docs/document/assets/js/477a14c5.b9546c86.js new file mode 100644 index 000000000..610f68dcd --- /dev/null +++ b/docs/document/assets/js/477a14c5.b9546c86.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[8819],{9278:function(t,e,n){"use strict";n.d(e,{Zo:function(){return m},kt:function(){return s}});var r=n(9301);function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(a[n]=t[n]);return a}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(a[n]=t[n])}return a}var o=r.createContext({}),u=function(t){var e=r.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},m=function(t){var e=u(t.components);return r.createElement(o.Provider,{value:e},t.children)},c={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},d=r.forwardRef((function(t,e){var n=t.components,a=t.mdxType,l=t.originalType,o=t.parentName,m=p(t,["components","mdxType","originalType","parentName"]),d=u(n),s=a,k=d["".concat(o,".").concat(s)]||d[s]||c[s]||l;return n?r.createElement(k,i(i({ref:e},m),{},{components:n})):r.createElement(k,i({ref:e},m))}));function s(t,e){var n=arguments,a=e&&e.mdxType;if("string"==typeof t||a){var l=n.length,i=new Array(l);i[0]=d;var p={};for(var o in e)hasOwnProperty.call(e,o)&&(p[o]=e[o]);p.originalType=t,p.mdxType="string"==typeof t?t:a,i[1]=p;for(var u=2;u=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=t.createContext({}),u=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):a(a({},r),e)),n},l=function(e){var r=u(e.components);return t.createElement(s.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=u(n),m=o,d=f["".concat(s,".").concat(m)]||f[m]||p[m]||i;return n?t.createElement(d,a(a({ref:r},l),{},{components:n})):t.createElement(d,a({ref:r},l))}));function m(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var s in r)hasOwnProperty.call(r,s)&&(c[s]=r[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var u=2;u=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(r),m=o,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||i;return r?n.createElement(d,a(a({ref:t},l),{},{components:r})):n.createElement(d,a({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var s=2;s=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=t.createContext({}),s=function(e){var n=t.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},p=function(e){var n=s(e.components);return t.createElement(u.Provider,{value:n},e.children)},l={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},f=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),f=s(r),m=o,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||i;return r?t.createElement(y,c(c({ref:n},p),{},{components:r})):t.createElement(y,c({ref:n},p))}));function m(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var s=2;s=0||(l[e]=t[e]);return l}(t,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(l[e]=t[e])}return l}var i=a.createContext({}),k=function(t){var n=a.useContext(i),e=n;return t&&(e="function"==typeof t?t(n):p(p({},n),t)),e},m=function(t){var n=k(t.components);return a.createElement(i.Provider,{value:n},t.children)},d={inlineCode:"code",wrapper:function(t){var n=t.children;return a.createElement(a.Fragment,{},n)}},o=a.forwardRef((function(t,n){var e=t.components,l=t.mdxType,r=t.originalType,i=t.parentName,m=u(t,["components","mdxType","originalType","parentName"]),o=k(e),N=l,g=o["".concat(i,".").concat(N)]||o[N]||d[N]||r;return e?a.createElement(g,p(p({ref:n},m),{},{components:e})):a.createElement(g,p({ref:n},m))}));function N(t,n){var e=arguments,l=n&&n.mdxType;if("string"==typeof t||l){var r=e.length,p=new Array(r);p[0]=o;var u={};for(var i in n)hasOwnProperty.call(n,i)&&(u[i]=n[i]);u.originalType=t,u.mdxType="string"==typeof t?t:l,p[1]=u;for(var k=2;k"+t(e)+"

    "}}(e.templates,this.displayFn),this.css=o.mixin({},c,e.appendTo?c.appendTo:{}),this.cssClasses=e.cssClasses=o.mixin({},c.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=e.$menu&&e.$menu.find(n+"-"+this.name).length>0?a.element(e.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=e.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(e){return a.element(e).data(i)},h.extractValue=function(e){return a.element(e).data(r)},h.extractDatum=function(e){var t=a.element(e).data(s);return"string"==typeof t&&(t=JSON.parse(t)),t},o.mixin(h.prototype,l,{_render:function(e,t){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=t&&t.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(h.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(n)this.$el.html(p.apply(this,l)).prepend(c.templates.header?f.apply(this,l):null).append(c.templates.footer?d.apply(this,l):null);else if(t&&!Array.isArray(t))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",e)}function h(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!0}].concat(t),c.templates.empty.apply(this,t)}function p(){var e,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return e=a.element(p).css(this.css.suggestions),n=o.map(t,f),e.append.apply(e,n),e;function f(e){var t,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(t=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[e].concat(l)))).data(i,c.name),t.data(r,c.displayFn(e)||void 0),t.data(s,JSON.stringify(e)),t.children().each((function(){a.element(this).css(h.css.suggestionChild)})),t}}function f(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),c.templates.header.apply(this,t)}function d(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!n}].concat(t),c.templates.footer.apply(this,t)}},getRoot:function(){return this.$el},update:function(e){function t(t){if(!this.canceled&&e===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(e,t,n),this._render.apply(this,[e,t].concat(n))}}if(this.query=e,this.canceled=!1,this.shouldFetchFromCache(e))t.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(e,t.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(e,t,n){this.cachedQuery=e,this.cachedSuggestions=t,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(e){return this.cache&&this.cachedQuery===e&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),e.exports=h},4184:function(e,t,n){"use strict";var i=n(8540),r=n(6171),s=n(6087),o=n(6460),a=n(4223);function u(e){var t,n,s,o=this;(e=e||{}).menu||i.error("menu is required"),i.isArray(e.datasets)||i.isObject(e.datasets)||i.error("1 or more datasets required"),e.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=e.minLength||0,this.templates={},this.appendTo=e.appendTo||!1,this.css=i.mixin({},a,e.appendTo?a.appendTo:{}),this.cssClasses=e.cssClasses=i.mixin({},a.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),t=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),s=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=r.element(e.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,s).on("click.aa",c,t),this.$container=e.appendTo?e.wrapper:this.$menu,e.templates&&e.templates.header&&(this.templates.header=i.templatify(e.templates.header),this.$menu.prepend(this.templates.header())),e.templates&&e.templates.empty&&(this.templates.empty=i.templatify(e.templates.empty),this.$empty=r.element('
    '),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(e.datasets,(function(t){return function(e,t,n){return new u.Dataset(i.mixin({$menu:e,cssClasses:n},t))}(o.$menu,t,e.cssClasses)})),i.each(this.datasets,(function(e){var t=e.getRoot();t&&0===t.parent().length&&o.$menu.append(t),e.onSync("rendered",o._onRendered,o)})),e.templates&&e.templates.footer&&(this.templates.footer=i.templatify(e.templates.footer),this.$menu.append(this.templates.footer()));var l=this;r.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,s,{_onSuggestionClick:function(e){this.trigger("suggestionClicked",r.element(e.currentTarget))},_onSuggestionMouseEnter:function(e){var t=r.element(e.currentTarget);if(!t.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(t,!1)}),0)}},_onSuggestionMouseLeave:function(e){if(e.relatedTarget&&r.element(e.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(e,t){if(this.isEmpty=i.every(this.datasets,(function(e){return e.isEmpty()})),this.isEmpty)if(t.length>=this.minLength&&this.trigger("empty"),this.$empty)if(t.length=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(e,t){e.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",t)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(e){var t,n,i,r;this.isOpen&&(n=this._getCursor(),t=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=t.index(n)+e)+1)%(t.length+1)-1)?(i<-1&&(i=t.length-1),this._setCursor(r=t.eq(i),!0),this._ensureVisible(r)):this.trigger("cursorRemoved"))},_ensureVisible:function(e){var t,n,i,r;n=(t=e.position().top)+e.height()+parseInt(e.css("margin-top"),10)+parseInt(e.css("margin-bottom"),10),i=this.$menu.scrollTop(),r=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),t<0?this.$menu.scrollTop(i+t):r',dropdown:'',dataset:'
    ',suggestions:'',suggestion:'
    '}},9506:function(e,t,n){"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var r=n(8540),s=n(6171),o=n(6087);function a(e){var t,n,o,a,u,c=this;(e=e||{}).input||r.error("input is missing"),t=r.bind(this._onBlur,this),n=r.bind(this._onFocus,this),o=r.bind(this._onKeydown,this),a=r.bind(this._onInput,this),this.$hint=s.element(e.hint),this.$input=s.element(e.input).on("blur.aa",t).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=r.noop),r.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(e){i[e.which||e.keyCode]||r.defer(r.bind(c._onInput,c,e))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,s.element('').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}a.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},r.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(e){var t=i[e.which||e.keyCode];this._managePreventDefault(t,e),t&&this._shouldTrigger(t,e)&&this.trigger(t+"Keyed",e)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(e,t){var n,i,r;switch(e){case"tab":i=this.getHint(),r=this.getInputValue(),n=i&&i!==r&&!u(t);break;case"up":case"down":n=!u(t);break;default:n=!1}n&&t.preventDefault()},_shouldTrigger:function(e,t){var n;switch(e){case"tab":n=!u(t);break;default:n=!0}return n},_checkInputValue:function(){var e,t,n,i,r;e=this.getInputValue(),i=e,r=this.query,n=!(!(t=a.normalizeQuery(i)===a.normalizeQuery(r))||!this.query)&&this.query.length!==e.length,this.query=e,t?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(e){this.query=e},getInputValue:function(){return this.$input.val()},setInputValue:function(e,t){void 0===e&&(e=this.query),this.$input.val(e),t?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(e){this.$input.attr("aria-activedescendant",e)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(e){this.$hint.val(e)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var e,t,n;n=(e=this.getInputValue())!==(t=this.getHint())&&0===t.indexOf(e),""!==e&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var e=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=e},isCursorAtEnd:function(){var e,t,n;return e=this.$input.val().length,t=this.$input[0].selectionStart,r.isNumber(t)?t===e:!document.selection||((n=document.selection.createRange()).moveStart("character",-e),e===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),e.exports=a},3549:function(e,t,n){"use strict";var i="aaAttrs",r=n(8540),s=n(6171),o=n(3743),a=n(9506),u=n(4184),c=n(5262),l=n(4223);function h(e){var t,n;if((e=e||{}).input||r.error("missing input"),this.isActivated=!1,this.debug=!!e.debug,this.autoselect=!!e.autoselect,this.autoselectOnBlur=!!e.autoselectOnBlur,this.openOnFocus=!!e.openOnFocus,this.minLength=r.isNumber(e.minLength)?e.minLength:1,this.autoWidth=void 0===e.autoWidth||!!e.autoWidth,this.clearOnSelected=!!e.clearOnSelected,this.tabAutocomplete=void 0===e.tabAutocomplete||!!e.tabAutocomplete,e.hint=!!e.hint,e.hint&&e.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=e.css=r.mixin({},l,e.appendTo?l.appendTo:{}),this.cssClasses=e.cssClasses=r.mixin({},l.defaultClasses,e.cssClasses||{}),this.cssClasses.prefix=e.cssClasses.formattedPrefix=r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=e.listboxId=[this.cssClasses.root,"listbox",r.getUniqueId()].join("-");var a=function(e){var t,n,o,a;t=s.element(e.input),n=s.element(c.wrapper.replace("%ROOT%",e.cssClasses.root)).css(e.css.wrapper),e.appendTo||"block"!==t.css("display")||"table"!==t.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",e.cssClasses.prefix).replace("%DROPDOWN_MENU%",e.cssClasses.dropdownMenu);o=s.element(u).css(e.css.dropdown).attr({role:"listbox",id:e.listboxId}),e.templates&&e.templates.dropdownMenu&&o.html(r.templatify(e.templates.dropdownMenu)());(a=t.clone().css(e.css.hint).css(function(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}(t))).val("").addClass(r.className(e.cssClasses.prefix,e.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();t.data(i,{"aria-autocomplete":t.attr("aria-autocomplete"),"aria-expanded":t.attr("aria-expanded"),"aria-owns":t.attr("aria-owns"),autocomplete:t.attr("autocomplete"),dir:t.attr("dir"),role:t.attr("role"),spellcheck:t.attr("spellcheck"),style:t.attr("style"),type:t.attr("type")}),t.addClass(r.className(e.cssClasses.prefix,e.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":e.datasets&&e.datasets[0]&&e.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":e.ariaLabel,"aria-owns":e.listboxId}).css(e.hint?e.css.input:e.css.inputWithNoHint);try{t.attr("dir")||t.attr("dir","auto")}catch(l){}return(n=e.appendTo?n.appendTo(s.element(e.appendTo).eq(0)).eq(0):t.wrap(n).parent()).prepend(e.hint?a:null).append(o),{wrapper:n,input:t,hint:a,menu:o}}(e);this.$node=a.wrapper;var u=this.$input=a.input;t=a.menu,n=a.hint,e.dropdownMenuContainer&&s.element(e.dropdownMenuContainer).css("position","relative").append(t.css("top","0")),u.on("blur.aa",(function(e){var n=document.activeElement;r.isMsie()&&(t[0]===n||t[0].contains(n))&&(e.preventDefault(),e.stopImmediatePropagation(),r.defer((function(){u.focus()})))})),t.on("mousedown.aa",(function(e){e.preventDefault()})),this.eventBus=e.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:e.appendTo,wrapper:this.$node,menu:t,datasets:e.datasets,templates:e.templates,cssClasses:e.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(e),this._setLanguageDirection()}r.mixin(h.prototype,{_bindKeyboardShortcuts:function(e){if(e.keyboardShortcuts){var t=this.$input,n=[];r.each(e.keyboardShortcuts,(function(e){"string"==typeof e&&(e=e.toUpperCase().charCodeAt(0)),n.push(e)})),s.element(document).keydown((function(e){var i=e.target||e.srcElement,r=i.tagName;if(!i.isContentEditable&&"INPUT"!==r&&"SELECT"!==r&&"TEXTAREA"!==r){var s=e.which||e.keyCode;-1!==n.indexOf(s)&&(t.focus(),e.stopPropagation(),e.preventDefault())}}))}},_onSuggestionClicked:function(e,t){var n;(n=this.dropdown.getDatumForSuggestion(t))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(e,t){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(t&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var e=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",e.width+"px");var t=this.$node[0].getBoundingClientRect(),n=e.bottom-t.top;this.$node.css("top",n+"px");var i=e.left-t.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var e=this.input.getQuery();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var e,t;e=this.dropdown.getDatumForCursor(),t=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&e?this._select(e,n):this.autoselectOnBlur&&t?this._select(t,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(e,t){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var r={selectionMethod:"enterKey"};n?(this._select(n,r),t.preventDefault()):this.autoselect&&i&&(this._select(i,r),t.preventDefault())},_onTabKeyed:function(e,t){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),t.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(e,t){this.input.clearHintIfInvalid(),t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var e=this.input.getLanguageDirection();this.dir!==e&&(this.dir=e,this.$node.css("direction",e),this.dropdown.setLanguageDirection(e))},_updateHint:function(){var e,t,n,i,s;(e=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(t=this.input.getInputValue(),n=a.normalizeQuery(t),i=r.escapeRegExChars(n),(s=new RegExp("^(?:"+i+")(.+$)","i").exec(e.value))?this.input.setHint(t+s[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(e){var t,n,i,r;t=this.input.getHint(),n=this.input.getQuery(),i=e||this.input.isCursorAtEnd(),t&&n!==t&&i&&((r=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(r.value),this.eventBus.trigger("autocompleted",r.raw,r.datasetName))},_select:function(e,t){void 0!==e.value&&this.input.setQuery(e.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(e.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",e.raw,e.datasetName,t).isDefaultPrevented()&&(this.dropdown.close(),r.defer(r.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var e=this.input.getInputValue();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(e){e=r.toStr(e),this.isActivated?this.input.setInputValue(e):(this.input.setQuery(e),this.input.setInputValue(e,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(e,t){var n=e.find(r.className(t.prefix,t.input));r.each(n.data(i),(function(e,t){void 0===e?n.removeAttr(t):n.attr(t,e)})),n.detach().removeClass(r.className(t.prefix,t.input,!0)).insertAfter(e),n.removeData&&n.removeData(i);e.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(8975),e.exports=h},6171:function(e){"use strict";e.exports={element:null}},6288:function(e){"use strict";e.exports=function(e){var t=e.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||e.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(t)return[t[1],t[2],t[3]]}},8540:function(e,t,n){"use strict";var i,r=n(6171);function s(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}e.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(e){if(void 0===e&&(e=navigator.userAgent),/(msie|trident)/i.test(e)){var t=e.match(/(msie |rv:)(\d+(.\d+)?)/i);if(t)return t[2]}return!1},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(e){return"number"==typeof e},toStr:function(e){return null==e?"":e+""},cloneDeep:function(e){var t=this.mixin({},e),n=this;return this.each(t,(function(e,i){e&&(n.isArray(e)?t[i]=[].concat(e):n.isObject(e)&&(t[i]=n.cloneDeep(e)))})),t},error:function(e){throw new Error(e)},every:function(e,t){var n=!0;return e?(this.each(e,(function(i,r){n&&(n=t.call(null,i,r,e)&&n)})),!!n):n},any:function(e,t){var n=!1;return e?(this.each(e,(function(i,r){if(t.call(null,i,r,e))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(e){if(this.isFunction(e))return e;var t=r.element(e);return"SCRIPT"===t.prop("tagName")?function(){return t.text()}:function(){return String(e)}},defer:function(e){setTimeout(e,0)},noop:function(){},formatPrefix:function(e,t){return t?"":e+"-"},className:function(e,t,n){return(n?"":".")+e+t},escapeHighlightedString:function(e,t,n){t=t||"";var i=document.createElement("div");i.appendChild(document.createTextNode(t)),n=n||"";var r=document.createElement("div");r.appendChild(document.createTextNode(n));var o=document.createElement("div");return o.appendChild(document.createTextNode(e)),o.innerHTML.replace(RegExp(s(i.innerHTML),"g"),t).replace(RegExp(s(r.innerHTML),"g"),n)}}},4974:function(e,t,n){"use strict";var i=n(8540),r=n(6055),s=n(6288);e.exports=function(e,t){var n=s(e.as._ua);return n&&n[0]>=3&&n[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),function(n,r){e.search(n,t,(function(e,t){e?i.error(e.message):r(t.hits,t)}))}}},8975:function(e,t,n){"use strict";e.exports={hits:n(4974),popularIn:n(5986)}},5986:function(e,t,n){"use strict";var i=n(8540),r=n(6055),s=n(6288);e.exports=function(e,t,n,o){var a=s(e.as._ua);if(a&&a[0]>=3&&a[1]>20&&((t=t||{}).additionalUA="autocomplete.js "+r),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(e){return e[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){e.search(a,t,(function(e,a){if(e)i.error(e.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var f=s(c.as._ua);return f&&f[0]>=3&&f[1]>20&&(t.additionalUA="autocomplete.js "+r),void c.search(u(h),p,(function(e,t){if(e)i.error(e.message);else{var n=[];if(o.includeAll){var r=o.allTitle||"All departments";n.push(i.mixin({facet:{value:r,count:t.nbHits}},i.cloneDeep(h)))}i.each(t.facets,(function(e,t){i.each(e,(function(e,r){n.push(i.mixin({facet:{facet:t,value:r,count:e}},i.cloneDeep(h)))}))}));for(var s=1;s]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,v=/^(?:body|html)$/i,x=/([A-Z])/g,w=["val","css","html","text","data","width","height","offset"],b=["after","prepend","before","append"],S=h.createElement("table"),C=h.createElement("tr"),E={tr:h.createElement("tbody"),tbody:S,thead:S,tfoot:S,td:C,th:C,"*":h.createElement("div")},k=/complete|loaded|interactive/,T=/^[\w-]*$/,_={},O=_.toString,A={},P=h.createElement("div"),L={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(e){return e instanceof Array};function I(e){return null==e?String(e):_[O.call(e)]||"object"}function N(e){return"function"==I(e)}function $(e){return null!=e&&e==e.window}function D(e){return null!=e&&e.nodeType==e.DOCUMENT_NODE}function R(e){return"object"==I(e)}function F(e){return R(e)&&!$(e)&&Object.getPrototypeOf(e)==Object.prototype}function j(e){var t=!!e&&"length"in e&&e.length,n=i.type(e);return"function"!=n&&!$(e)&&("array"==n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function M(e){return c.call(e,(function(e){return null!=e}))}function V(e){return e.length>0?i.fn.concat.apply([],e):e}function B(e){return e.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function q(e){return e in f?f[e]:f[e]=new RegExp("(^|\\s)"+e+"(\\s|$)")}function z(e,t){return"number"!=typeof t||d[B(e)]?t:t+"px"}function H(e){var t,n;return p[e]||(t=h.createElement(e),h.body.appendChild(t),n=getComputedStyle(t,"").getPropertyValue("display"),t.parentNode.removeChild(t),"none"==n&&(n="block"),p[e]=n),p[e]}function K(e){return"children"in e?l.call(e.children):i.map(e.childNodes,(function(e){if(1==e.nodeType)return e}))}function W(e,t){var n,i=e?e.length:0;for(n=0;n")),n===t&&(n=g.test(e)&&RegExp.$1),n in E||(n="*"),(a=E[n]).innerHTML=""+e,s=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),F(r)&&(o=i(s),i.each(r,(function(e,t){w.indexOf(e)>-1?o[e](t):o.attr(e,t)}))),s},A.Z=function(e,t){return new W(e,t)},A.isZ=function(e){return e instanceof A.Z},A.init=function(e,n){var r;if(!e)return A.Z();if("string"==typeof e)if("<"==(e=e.trim())[0]&&g.test(e))r=A.fragment(e,RegExp.$1,n),e=null;else{if(n!==t)return i(n).find(e);r=A.qsa(h,e)}else{if(N(e))return i(h).ready(e);if(A.isZ(e))return e;if(Q(e))r=M(e);else if(R(e))r=[e],e=null;else if(g.test(e))r=A.fragment(e.trim(),RegExp.$1,n),e=null;else{if(n!==t)return i(n).find(e);r=A.qsa(h,e)}}return A.Z(r,e)},(i=function(e,t){return A.init(e,t)}).extend=function(e){var t,n=l.call(arguments,1);return"boolean"==typeof e&&(t=e,e=n.shift()),n.forEach((function(n){U(e,n,t)})),e},A.qsa=function(e,t){var n,i="#"==t[0],r=!i&&"."==t[0],s=i||r?t.slice(1):t,o=T.test(s);return e.getElementById&&o&&i?(n=e.getElementById(s))?[n]:[]:1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType?[]:l.call(o&&!i&&e.getElementsByClassName?r?e.getElementsByClassName(s):e.getElementsByTagName(t):e.querySelectorAll(t))},i.contains=h.documentElement.contains?function(e,t){return e!==t&&e.contains(t)}:function(e,t){for(;t&&(t=t.parentNode);)if(t===e)return!0;return!1},i.type=I,i.isFunction=N,i.isWindow=$,i.isArray=Q,i.isPlainObject=F,i.isEmptyObject=function(e){var t;for(t in e)return!1;return!0},i.isNumeric=function(e){var t=Number(e),n=typeof e;return null!=e&&"boolean"!=n&&("string"!=n||e.length)&&!isNaN(t)&&isFinite(t)||!1},i.inArray=function(e,t,n){return a.indexOf.call(t,e,n)},i.camelCase=s,i.trim=function(e){return null==e?"":String.prototype.trim.call(e)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(e,t){var n,i,r,s=[];if(j(e))for(i=0;i=0?e:e+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(e){return a.every.call(this,(function(t,n){return!1!==e.call(t,n,t)})),this},filter:function(e){return N(e)?this.not(this.not(e)):i(c.call(this,(function(t){return A.matches(t,e)})))},add:function(e,t){return i(o(this.concat(i(e,t))))},is:function(e){return this.length>0&&A.matches(this[0],e)},not:function(e){var n=[];if(N(e)&&e.call!==t)this.each((function(t){e.call(this,t)||n.push(this)}));else{var r="string"==typeof e?this.filter(e):j(e)&&N(e.item)?l.call(e):i(e);this.forEach((function(e){r.indexOf(e)<0&&n.push(e)}))}return i(n)},has:function(e){return this.filter((function(){return R(e)?i.contains(this,e):i(this).find(e).size()}))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){var e=this[0];return e&&!R(e)?e:i(e)},last:function(){var e=this[this.length-1];return e&&!R(e)?e:i(e)},find:function(e){var t=this;return e?"object"==typeof e?i(e).filter((function(){var e=this;return a.some.call(t,(function(t){return i.contains(t,e)}))})):1==this.length?i(A.qsa(this[0],e)):this.map((function(){return A.qsa(this,e)})):i()},closest:function(e,t){var n=[],r="object"==typeof e&&i(e);return this.each((function(i,s){for(;s&&!(r?r.indexOf(s)>=0:A.matches(s,e));)s=s!==t&&!D(s)&&s.parentNode;s&&n.indexOf(s)<0&&n.push(s)})),i(n)},parents:function(e){for(var t=[],n=this;n.length>0;)n=i.map(n,(function(e){if((e=e.parentNode)&&!D(e)&&t.indexOf(e)<0)return t.push(e),e}));return G(t,e)},parent:function(e){return G(o(this.pluck("parentNode")),e)},children:function(e){return G(this.map((function(){return K(this)})),e)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(e){return G(this.map((function(e,t){return c.call(K(t.parentNode),(function(e){return e!==t}))})),e)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(e){return i.map(this,(function(t){return t[e]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=H(this.nodeName))}))},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){var t=N(e);if(this[0]&&!t)var n=i(e).get(0),r=n.parentNode||this.length>1;return this.each((function(s){i(this).wrapAll(t?e.call(this,s):r?n.cloneNode(!0):n)}))},wrapAll:function(e){if(this[0]){var t;for(i(this[0]).before(e=i(e));(t=e.children()).length;)e=t.first();i(e).append(this)}return this},wrapInner:function(e){var t=N(e);return this.each((function(n){var r=i(this),s=r.contents(),o=t?e.call(this,n):e;s.length?s.wrapAll(o):r.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(e){return this.each((function(){var n=i(this);(e===t?"none"==n.css("display"):e)?n.show():n.hide()}))},prev:function(e){return i(this.pluck("previousElementSibling")).filter(e||"*")},next:function(e){return i(this.pluck("nextElementSibling")).filter(e||"*")},html:function(e){return 0 in arguments?this.each((function(t){var n=this.innerHTML;i(this).empty().append(Z(this,e,t,n))})):0 in this?this[0].innerHTML:null},text:function(e){return 0 in arguments?this.each((function(t){var n=Z(this,e,t,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(e,i){var r;return"string"!=typeof e||1 in arguments?this.each((function(t){if(1===this.nodeType)if(R(e))for(n in e)X(this,n,e[n]);else X(this,e,Z(this,i,t,this.getAttribute(e)))})):0 in this&&1==this[0].nodeType&&null!=(r=this[0].getAttribute(e))?r:t},removeAttr:function(e){return this.each((function(){1===this.nodeType&&e.split(" ").forEach((function(e){X(this,e)}),this)}))},prop:function(e,t){return e=L[e]||e,1 in arguments?this.each((function(n){this[e]=Z(this,t,n,this[e])})):this[0]&&this[0][e]},removeProp:function(e){return e=L[e]||e,this.each((function(){delete this[e]}))},data:function(e,n){var i="data-"+e.replace(x,"-$1").toLowerCase(),r=1 in arguments?this.attr(i,n):this.attr(i);return null!==r?Y(r):t},val:function(e){return 0 in arguments?(null==e&&(e=""),this.each((function(t){this.value=Z(this,e,t,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each((function(e){var n=i(this),r=Z(this,t,e,n.offset()),s=n.offsetParent().offset(),o={top:r.top-s.top,left:r.left-s.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+e.pageXOffset,top:n.top+e.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(e,t){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[s(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(Q(e)){if(!r)return;var o={},a=getComputedStyle(r,"");return i.each(e,(function(e,t){o[t]=r.style[s(t)]||a.getPropertyValue(t)})),o}}var u="";if("string"==I(e))t||0===t?u=B(e)+":"+z(e,t):this.each((function(){this.style.removeProperty(B(e))}));else for(n in e)e[n]||0===e[n]?u+=B(n)+":"+z(n,e[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(e){return e?this.indexOf(i(e)[0]):this.parent().children().indexOf(this[0])},hasClass:function(e){return!!e&&a.some.call(this,(function(e){return this.test(J(e))}),q(e))},addClass:function(e){return e?this.each((function(t){if("className"in this){r=[];var n=J(this);Z(this,e,t,n).split(/\s+/g).forEach((function(e){i(this).hasClass(e)||r.push(e)}),this),r.length&&J(this,n+(n?" ":"")+r.join(" "))}})):this},removeClass:function(e){return this.each((function(n){if("className"in this){if(e===t)return J(this,"");r=J(this),Z(this,e,n,r).split(/\s+/g).forEach((function(e){r=r.replace(q(e)," ")})),J(this,r.trim())}}))},toggleClass:function(e,n){return e?this.each((function(r){var s=i(this);Z(this,e,r,J(this)).split(/\s+/g).forEach((function(e){(n===t?!s.hasClass(e):n)?s.addClass(e):s.removeClass(e)}))})):this},scrollTop:function(e){if(this.length){var n="scrollTop"in this[0];return e===t?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=e}:function(){this.scrollTo(this.scrollX,e)})}},scrollLeft:function(e){if(this.length){var n="scrollLeft"in this[0];return e===t?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=e}:function(){this.scrollTo(e,this.scrollY)})}},position:function(){if(this.length){var e=this[0],t=this.offsetParent(),n=this.offset(),r=v.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(i(e).css("margin-top"))||0,n.left-=parseFloat(i(e).css("margin-left"))||0,r.top+=parseFloat(i(t[0]).css("border-top-width"))||0,r.left+=parseFloat(i(t[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent||h.body;e&&!v.test(e.nodeName)&&"static"==i(e).css("position");)e=e.offsetParent;return e}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(e){var n=e.replace(/./,(function(e){return e[0].toUpperCase()}));i.fn[e]=function(r){var s,o=this[0];return r===t?$(o)?o["inner"+n]:D(o)?o.documentElement["scroll"+n]:(s=this.offset())&&s[e]:this.each((function(t){(o=i(this)).css(e,Z(this,r,t,o[e]()))}))}})),b.forEach((function(n,r){var s=r%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(e){var r=[];return"array"==(n=I(e))?(e.forEach((function(e){return e.nodeType!==t?r.push(e):i.zepto.isZ(e)?r=r.concat(e.get()):void(r=r.concat(A.fragment(e)))})),r):"object"==n||null==e?e:A.fragment(e)})),u=this.length>1;return a.length<1?this:this.each((function(t,n){o=s?n:n.parentNode,n=0==r?n.nextSibling:1==r?n.firstChild:2==r?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(t){if(u)t=t.cloneNode(!0);else if(!o)return i(t).remove();o.insertBefore(t,n),c&&ee(t,(function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var n=t.ownerDocument?t.ownerDocument.defaultView:e;n.eval.call(n,t.innerHTML)}}))}))}))},i.fn[s?n+"To":"insert"+(r?"Before":"After")]=function(e){return i(e)[n](this),this}})),A.Z.prototype=W.prototype=i.fn,A.uniq=o,A.deserializeValue=Y,i.zepto=A,i}();return function(t){var n,i=1,r=Array.prototype.slice,s=t.isFunction,o=function(e){return"string"==typeof e},a={},u={},c="onfocusin"in e,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(e){return e._zid||(e._zid=i++)}function f(e,t,n,i){if((t=d(t)).ns)var r=g(t.ns);return(a[p(e)]||[]).filter((function(e){return e&&(!t.e||e.e==t.e)&&(!t.ns||r.test(e.ns))&&(!n||p(e.fn)===p(n))&&(!i||e.sel==i)}))}function d(e){var t=(""+e).split(".");return{e:t[0],ns:t.slice(1).sort().join(" ")}}function g(e){return new RegExp("(?:^| )"+e.replace(" "," .* ?")+"(?: |$)")}function m(e,t){return e.del&&!c&&e.e in l||!!t}function y(e){return h[e]||c&&l[e]||e}function v(e,i,r,s,o,u,c){var l=p(e),f=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return t(document).ready(r);var a=d(i);a.fn=r,a.sel=o,a.e in h&&(r=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||r;a.proxy=function(t){if(!(t=E(t)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(t,"data");i&&!i.writable||(t.data=s)}catch(t){}var r=l.apply(e,t._args==n?[t]:[t].concat(t._args));return!1===r&&(t.preventDefault(),t.stopPropagation()),r}},a.i=f.length,f.push(a),"addEventListener"in e&&e.addEventListener(y(a.e),a.proxy,m(a,c))}))}function x(e,t,n,i,r){var s=p(e);(t||"").split(/\s/).forEach((function(t){f(e,t,n,i).forEach((function(t){delete a[s][t.i],"removeEventListener"in e&&e.removeEventListener(y(t.e),t.proxy,m(t,r))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",t.event={add:v,remove:x},t.proxy=function(e,n){var i=2 in arguments&&r.call(arguments,2);if(s(e)){var a=function(){return e.apply(n,i?i.concat(r.call(arguments)):arguments)};return a._zid=p(e),a}if(o(n))return i?(i.unshift(e[n],e),t.proxy.apply(null,i)):t.proxy(e[n],e);throw new TypeError("expected function")},t.fn.bind=function(e,t,n){return this.on(e,t,n)},t.fn.unbind=function(e,t){return this.off(e,t)},t.fn.one=function(e,t,n,i){return this.on(e,t,n,i,1)};var w=function(){return!0},b=function(){return!1},S=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,C={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function E(e,i){if(i||!e.isDefaultPrevented){i||(i=e),t.each(C,(function(t,n){var r=i[t];e[t]=function(){return this[n]=w,r&&r.apply(i,arguments)},e[n]=b}));try{e.timeStamp||(e.timeStamp=Date.now())}catch(r){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(e.isDefaultPrevented=w)}return e}function k(e){var t,i={originalEvent:e};for(t in e)S.test(t)||e[t]===n||(i[t]=e[t]);return E(i,e)}t.fn.delegate=function(e,t,n){return this.on(t,e,n)},t.fn.undelegate=function(e,t,n){return this.off(t,e,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,i,a,u,c){var l,h,p=this;return e&&!o(e)?(t.each(e,(function(e,t){p.on(e,i,a,t,c)})),p):(o(i)||s(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=b),p.each((function(n,s){c&&(l=function(e){return x(s,e.type,u),u.apply(this,arguments)}),i&&(h=function(e){var n,o=t(e.target).closest(i,s).get(0);if(o&&o!==s)return n=t.extend(k(e),{currentTarget:o,liveFired:s}),(l||u).apply(o,[n].concat(r.call(arguments,1)))}),v(s,e,u,a,i,h||l)})))},t.fn.off=function(e,i,r){var a=this;return e&&!o(e)?(t.each(e,(function(e,t){a.off(e,i,t)})),a):(o(i)||s(r)||!1===r||(r=i,i=n),!1===r&&(r=b),a.each((function(){x(this,e,r,i)})))},t.fn.trigger=function(e,n){return(e=o(e)||t.isPlainObject(e)?t.Event(e):E(e))._args=n,this.each((function(){e.type in l&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)}))},t.fn.triggerHandler=function(e,n){var i,r;return this.each((function(s,a){(i=k(o(e)?t.Event(e):e))._args=n,i.target=a,t.each(f(a,e.type||e),(function(e,t){if(r=t.proxy(i),i.isImmediatePropagationStopped())return!1}))})),r},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}})),t.Event=function(e,t){o(e)||(e=(t=e).type);var n=document.createEvent(u[e]||"Events"),i=!0;if(t)for(var r in t)"bubbles"==r?i=!!t[r]:n[r]=t[r];return n.initEvent(e,i,!0),E(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",t&&clearTimeout(t),t=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(e){var t={},n=e.fn.data,i=e.camelCase,r=e.expando="Zepto"+ +new Date,s=[];function o(s,o){var u=s[r],c=u&&t[u];if(void 0===o)return c||a(s);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(e(s),o)}function a(n,s,o){var a=n[r]||(n[r]=++e.uuid),c=t[a]||(t[a]=u(n));return void 0!==s&&(c[i(s)]=o),c}function u(t){var n={};return e.each(t.attributes||s,(function(t,r){0==r.name.indexOf("data-")&&(n[i(r.name.replace("data-",""))]=e.zepto.deserializeValue(r.value))})),n}e.fn.data=function(t,n){return void 0===n?e.isPlainObject(t)?this.each((function(n,i){e.each(t,(function(e,t){a(i,e,t)}))})):0 in this?o(this[0],t):void 0:this.each((function(){a(this,t,n)}))},e.data=function(t,n,i){return e(t).data(n,i)},e.hasData=function(n){var i=n[r],s=i&&t[i];return!!s&&!e.isEmptyObject(s)},e.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var s=this[r],o=s&&t[s];o&&e.each(n||o,(function(e){delete o[n?i(this):e]}))}))},["remove","empty"].forEach((function(t){var n=e.fn[t];e.fn[t]=function(){var e=this.find("*");return"remove"===t&&(e=e.add(this)),e.removeData(),n.call(this)}}))}(i),i}(t)},884:function(e,t){!function(e){var t=/\S/,n=/\"/g,i=/\n/g,r=/\r/g,s=/\\/g,o=/\u2028/,a=/\u2029/;function u(e){"}"===e.n.substr(e.n.length-1)&&(e.n=e.n.substring(0,e.n.length-1))}function c(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function l(e,t,n){if(t.charAt(n)!=e.charAt(0))return!1;for(var i=1,r=e.length;i":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(n,i){var r=n.length,s=0,o=null,a=null,h="",p=[],f=!1,d=0,g=0,m="{{",y="}}";function v(){h.length>0&&(p.push({tag:"_t",text:new String(h)}),h="")}function x(n,i){if(v(),n&&function(){for(var n=!0,i=g;i"==r.tag&&(r.indent=p[s].text.toString()),p.splice(s,1));else i||p.push({tag:"\n"});f=!1,g=p.length}function w(e,t){var n="="+y,i=e.indexOf(n,t),r=c(e.substring(e.indexOf("=",t)+1,i)).split(" ");return m=r[0],y=r[r.length-1],i+n.length-1}for(i&&(i=i.split(" "),m=i[0],y=i[1]),d=0;d0;){if(u=t.shift(),s&&"<"==s.tag&&!(u.tag in h))throw new Error("Illegal content in < super tag.");if(e.tags[u.tag]<=e.tags.$||f(u,r))i.push(u),u.nodes=p(t,u.tag,i,r);else{if("/"==u.tag){if(0===i.length)throw new Error("Closing tag without opener: /"+u.n);if(a=i.pop(),u.n!=a.n&&!d(u.n,a.n,r))throw new Error("Nesting error: "+a.n+" vs. "+u.n);return a.end=u.i,o}"\n"==u.tag&&(u.last=0==t.length||"\n"==t[0].tag)}o.push(u)}if(i.length>0)throw new Error("missing closing tag: "+i.pop().n);return o}function f(e,t){for(var n=0,i=t.length;n":x,"<":function(t,n){var i={partials:{},code:"",subs:{},inPartial:!0};e.walk(t.nodes,i);var r=n.partials[x(t,n)];r.subs=i.subs,r.partials=i.partials},$:function(t,n){var i={subs:{},code:"",partials:n.partials,prefix:t.n};e.walk(t.nodes,i),n.subs[t.n]=i.code,n.inPartial||(n.code+='t.sub("'+y(t.n)+'",c,p,i);')},"\n":function(e,t){t.code+=b('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+v(e.n)+'("'+y(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=b('"'+y(e.text)+'"')},"{":w,"&":w},e.walk=function(t,n){for(var i,r=0,s=t.length;r=0;u--)if(void 0!==(s=t(e,n[u],a))){o=!0;break}return o?(r||"function"!=typeof s||(s=this.mv(s,n,i)),s):!r&&""},ls:function(e,t,n,i,r){var s=this.options.delimiters;return this.options.delimiters=r,this.b(this.ct(u(e.call(t,i)),t,n)),this.options.delimiters=s,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,i,r,s,o){var a,u=t[t.length-1],c=e.call(u);return"function"==typeof c?!!i||(a=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,a.substring(r,s),o)):c},mv:function(e,t,n){var i=t[t.length-1],r=e.call(i);return"function"==typeof r?this.ct(u(r.call(i)),i,n):r},sub:function(e,t,n,i){var r=this.subs[e];r&&(this.activeSub=e,r(t,n,this,i),this.activeSub=!1)}};var n=/&/g,i=//g,s=/\'/g,o=/\"/g,a=/[&<>\"\']/;function u(e){return String(null==e?"":e)}var c=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(t)},7202:function(e,t,n){"use strict";var i,r,s,o=[n(801),n(7865),n(567),n(7981),n(2348),n(11)],a=-1,u=[],c=!1;function l(){i&&r&&(i=!1,r.length?u=r.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var e=u.length,t=setTimeout(l);e;){for(r=u,u=[];r&&++a1)for(var n=1;n0){var u=L.utils.clone(t)||{};u.position=[o,a],u.index=r.length,r.push(new L.Token(n.slice(o,s),u))}o=s+1}}return r},L.tokenizer.separator=/[\s\-]+/,L.Pipeline=function(){this._stack=[]},L.Pipeline.registeredFunctions=Object.create(null),L.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&L.utils.warn("Overwriting existing registered function: "+t),e.label=t,L.Pipeline.registeredFunctions[e.label]=e},L.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||L.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},L.Pipeline.load=function(e){var t=new L.Pipeline;return e.forEach((function(e){var n=L.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},L.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){L.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},L.Pipeline.prototype.after=function(e,t){L.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},L.Pipeline.prototype.before=function(e,t){L.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},L.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},L.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(se&&(n=r),s!=e);)i=n-t,r=t+Math.floor(i/2),s=this.elements[2*r];return s==e||s>e?2*r:sa?c+=2:o==a&&(t+=n[u+1]*i[c+1],u+=2,c+=2);return t},L.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},L.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var s,o=r.str.charAt(0);o in r.node.edges?s=r.node.edges[o]:(s=new L.TokenSet,r.node.edges[o]=s),1==r.str.length&&(s.final=!0),i.push({node:s,editsRemaining:r.editsRemaining,str:r.str.slice(1)})}if(0!=r.editsRemaining){if("*"in r.node.edges)var a=r.node.edges["*"];else{a=new L.TokenSet;r.node.edges["*"]=a}if(0==r.str.length&&(a.final=!0),i.push({node:a,editsRemaining:r.editsRemaining-1,str:r.str}),r.str.length>1&&i.push({node:r.node,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)}),1==r.str.length&&(r.node.final=!0),r.str.length>=1){if("*"in r.node.edges)var u=r.node.edges["*"];else{u=new L.TokenSet;r.node.edges["*"]=u}1==r.str.length&&(u.final=!0),i.push({node:u,editsRemaining:r.editsRemaining-1,str:r.str.slice(1)})}if(r.str.length>1){var c,l=r.str.charAt(0),h=r.str.charAt(1);h in r.node.edges?c=r.node.edges[h]:(c=new L.TokenSet,r.node.edges[h]=c),1==r.str.length&&(c.final=!0),i.push({node:c,editsRemaining:r.editsRemaining-1,str:l+r.str.slice(2)})}}}return n},L.TokenSet.fromString=function(e){for(var t=new L.TokenSet,n=t,i=0,r=e.length;i=e;t--){var n=this.uncheckedNodes[t],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}},L.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},L.Index.prototype.search=function(e){return this.query((function(t){new L.QueryParser(e,t).parse()}))},L.Index.prototype.query=function(e){for(var t=new L.Query(this.fields),n=Object.create(null),i=Object.create(null),r=Object.create(null),s=Object.create(null),o=Object.create(null),a=0;a1?1:e},L.Builder.prototype.k1=function(e){this._k1=e},L.Builder.prototype.add=function(e,t){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var r=0;r=this.length)return L.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},L.QueryLexer.prototype.width=function(){return this.pos-this.start},L.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},L.QueryLexer.prototype.backup=function(){this.pos-=1},L.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=L.QueryLexer.EOS&&this.backup()},L.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(L.QueryLexer.TERM)),e.ignore(),e.more())return L.QueryLexer.lexText},L.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(L.QueryLexer.EDIT_DISTANCE),L.QueryLexer.lexText},L.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(L.QueryLexer.BOOST),L.QueryLexer.lexText},L.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(L.QueryLexer.TERM)},L.QueryLexer.termSeparator=L.tokenizer.separator,L.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==L.QueryLexer.EOS)return L.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return L.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(L.QueryLexer.TERM),L.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(L.QueryLexer.TERM),L.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(L.QueryLexer.PRESENCE),L.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(L.QueryLexer.PRESENCE),L.QueryLexer.lexText;if(t.match(L.QueryLexer.termSeparator))return L.QueryLexer.lexTerm}else e.escapeCharacter()}},L.QueryParser=function(e,t){this.lexer=new L.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},L.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=L.QueryParser.parseClause;e;)e=e(this);return this.query},L.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},L.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},L.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},L.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case L.QueryLexer.PRESENCE:return L.QueryParser.parsePresence;case L.QueryLexer.FIELD:return L.QueryParser.parseField;case L.QueryLexer.TERM:return L.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new L.QueryParseError(n,t.start,t.end)}},L.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=L.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=L.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new L.QueryParseError(n,t.start,t.end)}var i=e.peekLexeme();if(null==i){n="expecting term or field, found nothing";throw new L.QueryParseError(n,t.start,t.end)}switch(i.type){case L.QueryLexer.FIELD:return L.QueryParser.parseField;case L.QueryLexer.TERM:return L.QueryParser.parseTerm;default:n="expecting term or field, found '"+i.type+"'";throw new L.QueryParseError(n,i.start,i.end)}}},L.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),i="unrecognised field '"+t.str+"', possible fields: "+n;throw new L.QueryParseError(i,t.start,t.end)}e.currentClause.fields=[t.str];var r=e.peekLexeme();if(null==r){i="expecting term, found nothing";throw new L.QueryParseError(i,t.start,t.end)}switch(r.type){case L.QueryLexer.TERM:return L.QueryParser.parseTerm;default:i="expecting term, found '"+r.type+"'";throw new L.QueryParseError(i,r.start,r.end)}}},L.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case L.QueryLexer.TERM:return e.nextClause(),L.QueryParser.parseTerm;case L.QueryLexer.FIELD:return e.nextClause(),L.QueryParser.parseField;case L.QueryLexer.EDIT_DISTANCE:return L.QueryParser.parseEditDistance;case L.QueryLexer.BOOST:return L.QueryParser.parseBoost;case L.QueryLexer.PRESENCE:return e.nextClause(),L.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new L.QueryParseError(i,n.start,n.end)}else e.nextClause()}},L.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new L.QueryParseError(i,t.start,t.end)}e.currentClause.editDistance=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case L.QueryLexer.TERM:return e.nextClause(),L.QueryParser.parseTerm;case L.QueryLexer.FIELD:return e.nextClause(),L.QueryParser.parseField;case L.QueryLexer.EDIT_DISTANCE:return L.QueryParser.parseEditDistance;case L.QueryLexer.BOOST:return L.QueryParser.parseBoost;case L.QueryLexer.PRESENCE:return e.nextClause(),L.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new L.QueryParseError(i,r.start,r.end)}else e.nextClause()}},L.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var i="boost must be numeric";throw new L.QueryParseError(i,t.start,t.end)}e.currentClause.boost=n;var r=e.peekLexeme();if(null!=r)switch(r.type){case L.QueryLexer.TERM:return e.nextClause(),L.QueryParser.parseTerm;case L.QueryLexer.FIELD:return e.nextClause(),L.QueryParser.parseField;case L.QueryLexer.EDIT_DISTANCE:return L.QueryParser.parseEditDistance;case L.QueryLexer.BOOST:return L.QueryParser.parseBoost;case L.QueryLexer.PRESENCE:return e.nextClause(),L.QueryParser.parsePresence;default:i="Unexpected lexeme type '"+r.type+"'";throw new L.QueryParseError(i,r.start,r.end)}else e.nextClause()}},void 0===(r="function"==typeof(i=function(){return L})?i.call(t,n,t,e):i)||(e.exports=r)}()}}]); \ No newline at end of file diff --git a/docs/document/assets/js/759.e1743857.js.LICENSE.txt b/docs/document/assets/js/759.e1743857.js.LICENSE.txt new file mode 100644 index 000000000..1cf473c23 --- /dev/null +++ b/docs/document/assets/js/759.e1743857.js.LICENSE.txt @@ -0,0 +1,61 @@ +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ + +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ + +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ diff --git a/docs/document/assets/js/7646b534.2fe2b4c2.js b/docs/document/assets/js/7646b534.2fe2b4c2.js new file mode 100644 index 000000000..1ab476d8b --- /dev/null +++ b/docs/document/assets/js/7646b534.2fe2b4c2.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[3264],{9278:function(e,t,n){"use strict";n.d(t,{Zo:function(){return s},kt:function(){return m}});var r=n(9301);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),f=p(n),m=o,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||i;return n?r.createElement(y,c(c({ref:t},s),{},{components:n})):r.createElement(y,c({ref:t},s))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,c=new Array(i);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var p=2;p0)&&(C.unobserve(n),C.disconnect(),t())}))}))).observe(n))},to:x||""},v&&{isActive:m,activeClassName:h}))}},5914:function(e,n,t){"use strict";t.d(n,{Z:function(){return l},I:function(){return f}});var r=t(9301),o=/{\w+}/g,u="{}";function i(e,n){var t=[],i=e.replace(o,(function(e){var o=e.substr(1,e.length-2),i=null==n?void 0:n[o];if(void 0!==i){var a=r.isValidElement(i)?i:String(i);return t.push(a),u}return e}));return 0===t.length?e:t.every((function(e){return"string"==typeof e}))?i.split(u).reduce((function(e,n,r){var o;return e.concat(n).concat(null!==(o=t[r])&&void 0!==o?o:"")}),""):i.split(u).reduce((function(e,n,o){return[].concat(e,[r.createElement(r.Fragment,{key:o},n,t[o])])}),[])}function a(e){return i(e.children,e.values)}var c=t(4644);function s(e){var n,t=e.id,r=e.message;return null!==(n=c[null!=t?t:r])&&void 0!==n?n:r}function f(e,n){var t,r=e.message;return i(null!==(t=s({message:r,id:e.id}))&&void 0!==t?t:r,n)}function l(e){var n,t=e.children,o=e.id,u=e.values,i=null!==(n=s({message:t,id:o}))&&void 0!==n?n:t;return r.createElement(a,{values:u},i)}},3897:function(e,n,t){"use strict";function r(e){return!0===/^(\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}t.d(n,{b:function(){return r},Z:function(){return o}})},3110:function(e,n,t){"use strict";t.r(n),t.d(n,{BrowserRouter:function(){return r.VK},HashRouter:function(){return r.UT},Link:function(){return r.rU},MemoryRouter:function(){return r.VA},NavLink:function(){return r.OL},Prompt:function(){return r.NL},Redirect:function(){return r.l_},Route:function(){return r.AW},Router:function(){return r.F0},StaticRouter:function(){return r.gx},Switch:function(){return r.rs},generatePath:function(){return r.Gn},matchPath:function(){return r.LX},useHistory:function(){return r.k6},useLocation:function(){return r.TH},useParams:function(){return r.UO},useRouteMatch:function(){return r.$B},withRouter:function(){return r.EN}});var r=t(444)},5899:function(e,n,t){"use strict";t.d(n,{C:function(){return u},Z:function(){return i}});var r=t(973),o=t(3897);function u(){var e=(0,r.Z)().siteConfig,n=(e=void 0===e?{}:e).baseUrl,t=void 0===n?"/":n,u=e.url;return{withBaseUrl:function(e,n){return function(e,n,t,r){var u=void 0===r?{}:r,i=u.forcePrependBaseUrl,a=void 0!==i&&i,c=u.absolute,s=void 0!==c&&c;if(!t)return t;if(t.startsWith("#"))return t;if((0,o.b)(t))return t;if(a)return n+t;var f=t.startsWith(n)?t:n+t.replace(/^\//,"");return s?e+f:f}(u,t,e,n)}}}function i(e,n){return void 0===n&&(n={}),(0,u().withBaseUrl)(e,n)}},6300:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return o},useAllPluginInstancesData:function(){return u},usePluginData:function(){return i}});var r=t(973);function o(){var e=(0,r.Z)().globalData;if(!e)throw new Error("Docusaurus global data not found.");return e}function u(e){var n=o()[e];if(!n)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin.');return n}function i(e,n){void 0===n&&(n="default");var t=u(e)[n];if(!t)throw new Error('Docusaurus plugin global data not found for "'+e+'" plugin with id "'+n+'".');return t}},5650:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getDocVersionSuggestions=n.getActiveDocContext=n.getActiveVersion=n.getLatestVersion=n.getActivePlugin=void 0;var r=t(3110);n.getActivePlugin=function(e,n,t){void 0===t&&(t={});var o=Object.entries(e).find((function(e){e[0];var t=e[1];return!!r.matchPath(n,{path:t.path,exact:!1,strict:!1})})),u=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!u&&t.failfast)throw new Error("Can't find active docs plugin for \""+n+'" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: '+Object.values(e).map((function(e){return e.path})).join(", "));return u};n.getLatestVersion=function(e){return e.versions.find((function(e){return e.isLast}))};n.getActiveVersion=function(e,t){var o=n.getLatestVersion(e);return[].concat(e.versions.filter((function(e){return e!==o})),[o]).find((function(e){return!!r.matchPath(t,{path:e.path,exact:!1,strict:!1})}))};n.getActiveDocContext=function(e,t){var o,u,i=n.getActiveVersion(e,t),a=null==i?void 0:i.docs.find((function(e){return!!r.matchPath(t,{path:e.path,exact:!0,strict:!1})}));return{activeVersion:i,activeDoc:a,alternateDocVersions:a?(o=a.id,u={},e.versions.forEach((function(e){e.docs.forEach((function(n){n.id===o&&(u[e.name]=n)}))})),u):{}}};n.getDocVersionSuggestions=function(e,t){var r=n.getLatestVersion(e),o=n.getActiveDocContext(e,t);return{latestDocSuggestion:null==o?void 0:o.alternateDocVersions[r.name],latestVersionSuggestion:r}}},6818:function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.useDocVersionSuggestions=n.useActiveDocContext=n.useActiveVersion=n.useLatestVersion=n.useVersions=n.useActivePluginAndVersion=n.useActivePlugin=n.useDocsData=n.useAllDocsData=void 0;var r=t(29),o=t(3110),u=r.__importStar(t(6300)),i=t(5650),a={};n.useAllDocsData=function(){var e;return null!==(e=u.default()["docusaurus-plugin-content-docs"])&&void 0!==e?e:a};n.useDocsData=function(e){return u.usePluginData("docusaurus-plugin-content-docs",e)};n.useActivePlugin=function(e){void 0===e&&(e={});var t=n.useAllDocsData(),r=o.useLocation().pathname;return i.getActivePlugin(t,r,e)};n.useActivePluginAndVersion=function(e){void 0===e&&(e={});var t=n.useActivePlugin(e),r=o.useLocation().pathname;if(t)return{activePlugin:t,activeVersion:i.getActiveVersion(t.pluginData,r)}};n.useVersions=function(e){return n.useDocsData(e).versions};n.useLatestVersion=function(e){var t=n.useDocsData(e);return i.getLatestVersion(t)};n.useActiveVersion=function(e){var t=n.useDocsData(e),r=o.useLocation().pathname;return i.getActiveVersion(t,r)};n.useActiveDocContext=function(e){var t=n.useDocsData(e),r=o.useLocation().pathname;return i.getActiveDocContext(t,r)};n.useDocVersionSuggestions=function(e){var t=n.useDocsData(e),r=o.useLocation().pathname;return i.getDocVersionSuggestions(t,r)}},2336:function(e,n,t){"use strict";t.d(n,{Z:function(){return a}});var r=t(9301),o=t(2549),u=t(4590),i=t(5899);function a(e){var n=e.title,t=e.description,a=e.keywords,c=e.image,s=(0,u.LU)().image,f=(0,u.pe)(n),l=(0,i.Z)(c||s,{absolute:!0});return r.createElement(o.Z,null,n&&r.createElement("title",null,f),n&&r.createElement("meta",{property:"og:title",content:f}),t&&r.createElement("meta",{name:"description",content:t}),t&&r.createElement("meta",{property:"og:description",content:t}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),l&&r.createElement("meta",{property:"og:image",content:l}),l&&r.createElement("meta",{name:"twitter:image",content:l}))}},8781:function(e,n,t){"use strict";t.d(n,{Iw:function(){return r.useActiveDocContext},gA:function(){return r.useActivePlugin},zu:function(){return r.useActiveVersion},_r:function(){return r.useAllDocsData},Jo:function(){return r.useDocVersionSuggestions},zh:function(){return r.useDocsData},yW:function(){return r.useLatestVersion},gB:function(){return r.useVersions}});var r=t(6818)},4590:function(e,n,t){"use strict";t.d(n,{pl:function(){return M},HX:function(){return g},L5:function(){return C},kM:function(){return I},WA:function(){return s},os:function(){return h},Mg:function(){return b},_f:function(){return f},bc:function(){return p},l5:function(){return d},nT:function(){return N},J:function(){return k},SL:function(){return E},D9:function(){return A},LU:function(){return o},pe:function(){return w}});var r=t(973);function o(){return(0,r.Z)().siteConfig.themeConfig}var u="localStorage";function i(e){if(void 0===e&&(e=u),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(t){return n=t,a||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",n),a=!0),null}var n}var a=!1;var c={get:function(){return null},set:function(){},del:function(){}};var s=function(e,n){if("undefined"==typeof window)return function(e){function n(){throw new Error('Illegal storage API usage for storage key "'+e+'".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.')}return{get:n,set:n,del:n}}(e);var t=i(null==n?void 0:n.persistence);return null===t?c:{get:function(){return t.getItem(e)},set:function(n){return t.setItem(e,n)},del:function(){return t.removeItem(e)}}};function f(e){void 0===e&&(e=u);var n=i(e);if(!n)return[];for(var t=[],r=0;r=0;a--)(o=e[a])&&(i=(u<3?o(i):u>3?o(n,t,i):o(n,t))||i);return u>3&&i&&Object.defineProperty(n,t,i),i}function c(e,n){return function(t,r){n(t,r,e)}}function s(e,n){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,n)}function f(e,n,t,r){return new(t||(t=Promise))((function(o,u){function i(e){try{c(r.next(e))}catch(n){u(n)}}function a(e){try{c(r.throw(e))}catch(n){u(n)}}function c(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,a)}c((r=r.apply(e,n||[])).next())}))}function l(e,n){var t,r,o,u,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return u={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function a(u){return function(a){return function(u){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,r&&(o=2&u[0]?r.return:u[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,u[1])).done)return o;switch(r=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,r=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,o,u=t.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(r=u.next()).done;)i.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(t=u.return)&&t.call(u)}finally{if(o)throw o.error}}return i}function h(){for(var e=[],n=0;n1||a(e,n)}))})}function a(e,n){try{(t=o[e](n)).value instanceof b?Promise.resolve(t.value.v).then(c,s):f(u[0][2],t)}catch(r){f(u[0][3],r)}var t}function c(e){a("next",e)}function s(e){a("throw",e)}function f(e,n){e(n),u.shift(),u.length&&a(u[0][0],u[0][1])}}function _(e){var n,t;return n={},r("next"),r("throw",(function(e){throw e})),r("return"),n[Symbol.iterator]=function(){return this},n;function r(r,o){n[r]=e[r]?function(n){return(t=!t)?{value:b(e[r](n)),done:"return"===r}:o?o(n):n}:o}}function P(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,t=e[Symbol.asyncIterator];return t?t.call(e):(e=p(e),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(t){n[t]=e[t]&&function(n){return new Promise((function(r,o){(function(e,n,t,r){Promise.resolve(r).then((function(n){e({value:n,done:t})}),n)})(r,o,(n=e[t](n)).done,n.value)}))}}}function D(e,n){return Object.defineProperty?Object.defineProperty(e,"raw",{value:n}):e.raw=n,e}var A=Object.create?function(e,n){Object.defineProperty(e,"default",{enumerable:!0,value:n})}:function(e,n){e.default=n};function E(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)"default"!==t&&Object.prototype.hasOwnProperty.call(e,t)&&d(n,e,t);return A(n,e),n}function O(e){return e&&e.__esModule?e:{default:e}}function S(e,n,t,r){if("a"===t&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof n?e!==n||!r:!n.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?r:"a"===t?r.call(e):r?r.value:n.get(e)}function V(e,n,t,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof n?e!==n||!o:!n.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,t):o?o.value=t:n.set(e,t),t}}}]); \ No newline at end of file diff --git a/docs/document/assets/js/797.228560e8.js.LICENSE.txt b/docs/document/assets/js/797.228560e8.js.LICENSE.txt new file mode 100644 index 000000000..c18ab1d93 --- /dev/null +++ b/docs/document/assets/js/797.228560e8.js.LICENSE.txt @@ -0,0 +1,14 @@ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ diff --git a/docs/document/assets/js/8171bdc6.8534cb29.js b/docs/document/assets/js/8171bdc6.8534cb29.js new file mode 100644 index 000000000..62ebbd5df --- /dev/null +++ b/docs/document/assets/js/8171bdc6.8534cb29.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[9701],{9278:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(9301);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),f=l(n),m=o,d=f["".concat(u,".").concat(m)]||f[m]||s[m]||i;return n?r.createElement(d,c(c({ref:t},p),{},{components:n})):r.createElement(d,c({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,c=new Array(i);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var l=2;l=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=t.createContext({}),u=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):a(a({},r),e)),n},l=function(e){var r=u(e.components);return t.createElement(s.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=u(n),m=o,d=f["".concat(s,".").concat(m)]||f[m]||p[m]||i;return n?t.createElement(d,a(a({ref:r},l),{},{components:n})):t.createElement(d,a({ref:r},l))}));function m(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var s in r)hasOwnProperty.call(r,s)&&(c[s]=r[s]);c.originalType=e,c.mdxType="string"==typeof e?e:o,a[1]=c;for(var u=2;u=0||(i[n]=e[n]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=t.createContext({}),s=function(e){var r=t.useContext(u),n=r;return e&&(n="function"==typeof e?e(r):c(c({},r),e)),n},p=function(e){var r=s(e.components);return t.createElement(u.Provider,{value:r},e.children)},l={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),f=s(n),m=i,d=f["".concat(u,".").concat(m)]||f[m]||l[m]||o;return n?t.createElement(d,c(c({ref:r},p),{},{components:n})):t.createElement(d,c({ref:r},p))}));function m(e,r){var n=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=n.length,c=new Array(o);c[0]=f;var a={};for(var u in r)hasOwnProperty.call(r,u)&&(a[u]=r[u]);a.originalType=e,a.mdxType="string"==typeof e?e:i,c[1]=a;for(var s=2;s=0||(o[r]=e[r]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=t.createContext({}),s=function(e){var n=t.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):c(c({},n),e)),r},l=function(e){var n=s(e.components);return t.createElement(u.Provider,{value:n},e.children)},p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},f=t.forwardRef((function(e,n){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(r),m=o,y=f["".concat(u,".").concat(m)]||f[m]||p[m]||i;return r?t.createElement(y,c(c({ref:n},l),{},{components:r})):t.createElement(y,c({ref:n},l))}));function m(e,n){var r=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=f;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var s=2;s=0||(l[n]=t[n]);return l}(t,a);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(e=0;e=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(l[n]=t[n])}return l}var p=e.createContext({}),m=function(t){var a=e.useContext(p),n=a;return t&&(n="function"==typeof t?t(a):i(i({},a),t)),n},d=function(t){var a=m(t.components);return e.createElement(p.Provider,{value:a},t.children)},N={inlineCode:"code",wrapper:function(t){var a=t.children;return e.createElement(e.Fragment,{},a)}},u=e.forwardRef((function(t,a){var n=t.components,l=t.mdxType,r=t.originalType,p=t.parentName,d=k(t,["components","mdxType","originalType","parentName"]),u=m(n),g=l,o=u["".concat(p,".").concat(g)]||u[g]||N[g]||r;return n?e.createElement(o,i(i({ref:a},d),{},{components:n})):e.createElement(o,i({ref:a},d))}));function g(t,a){var n=arguments,l=a&&a.mdxType;if("string"==typeof t||l){var r=n.length,i=new Array(r);i[0]=u;var k={};for(var p in a)hasOwnProperty.call(a,p)&&(k[p]=a[p]);k.originalType=t,k.mdxType="string"==typeof t?t:l,i[1]=k;for(var m=2;m50"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h2",{id:"\u804c\u4e1a"},"\u804c\u4e1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u7f16\u7801"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5907\u6ce8"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"11"),(0,r.kt)("td",{parentName:"tr",align:null},"Pensiunan/Purnawirawan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"12"),(0,r.kt)("td",{parentName:"tr",align:null},"Pelayaran/Pelaut"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13"),(0,r.kt)("td",{parentName:"tr",align:null},"Guru/Pendidikan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"14"),(0,r.kt)("td",{parentName:"tr",align:null},"Jasa"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"15"),(0,r.kt)("td",{parentName:"tr",align:null},"Dokter/Bidan/Mantri"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"16"),(0,r.kt)("td",{parentName:"tr",align:null},"Ojek Motor"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"17"),(0,r.kt)("td",{parentName:"tr",align:null},"Sopir"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"18"),(0,r.kt)("td",{parentName:"tr",align:null},"Peternak"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"19"),(0,r.kt)("td",{parentName:"tr",align:null},"Pelajar/Mahasiswa"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"20"),(0,r.kt)("td",{parentName:"tr",align:null},"Buruh/PRT"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"21"),(0,r.kt)("td",{parentName:"tr",align:null},"Pengrajin Tangan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"23"),(0,r.kt)("td",{parentName:"tr",align:null},"Pedagang"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"24"),(0,r.kt)("td",{parentName:"tr",align:null},"Produksi"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"26"),(0,r.kt)("td",{parentName:"tr",align:null},"Sewa/Rent"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"27"),(0,r.kt)("td",{parentName:"tr",align:null},"Transportasi & Komunikasi"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"28"),(0,r.kt)("td",{parentName:"tr",align:null},"Hiburan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"29"),(0,r.kt)("td",{parentName:"tr",align:null},"Pendidikan Non Formal"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"30"),(0,r.kt)("td",{parentName:"tr",align:null},"Hotel"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"31"),(0,r.kt)("td",{parentName:"tr",align:null},"Perangkat Desa"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"32"),(0,r.kt)("td",{parentName:"tr",align:null},"TNI/Polri"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"33"),(0,r.kt)("td",{parentName:"tr",align:null},"Atlet"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"34"),(0,r.kt)("td",{parentName:"tr",align:null},"Pengobatan Alternatif"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"2"),(0,r.kt)("td",{parentName:"tr",align:null},"ABRI"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"3"),(0,r.kt)("td",{parentName:"tr",align:null},"Pengacara"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"35"),(0,r.kt)("td",{parentName:"tr",align:null},"Jurnalis / Wartawan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"37"),(0,r.kt)("td",{parentName:"tr",align:null},"Profesi"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"36"),(0,r.kt)("td",{parentName:"tr",align:null},"Wartawan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"6"),(0,r.kt)("td",{parentName:"tr",align:null},"Lain-Lain"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"38"),(0,r.kt)("td",{parentName:"tr",align:null},"Pekerja Lepas"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h2",{id:"\u6536\u5165\u6765\u6e90"},"\u6536\u5165\u6765\u6e90"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u7f16\u7801"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5907\u6ce8"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"10"),(0,r.kt)("td",{parentName:"tr",align:null},"Gaji/Upah"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"11"),(0,r.kt)("td",{parentName:"tr",align:null},"Laba Usaha"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"12"),(0,r.kt)("td",{parentName:"tr",align:null},"Uang Tabungan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13"),(0,r.kt)("td",{parentName:"tr",align:null},"Menjual/Menggadaikan Aset"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"14"),(0,r.kt)("td",{parentName:"tr",align:null},"Dari Keluarga/Teman/Sumber Lainnya"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h2",{id:"\u7d27\u6025\u8054\u7cfb\u4eba\u5173\u7cfb"},"\u7d27\u6025\u8054\u7cfb\u4eba\u5173\u7cfb"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u7f16\u7801"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5907\u6ce8"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"10"),(0,r.kt)("td",{parentName:"tr",align:null},"Pasangan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"11"),(0,r.kt)("td",{parentName:"tr",align:null},"Orang Tua"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"12"),(0,r.kt)("td",{parentName:"tr",align:null},"Saudara Kandung"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13"),(0,r.kt)("td",{parentName:"tr",align:null},"Anak"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"14"),(0,r.kt)("td",{parentName:"tr",align:null},"Teman Kantor"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h2",{id:"\u501f\u6b3e\u539f\u56e0"},"\u501f\u6b3e\u539f\u56e0"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u7f16\u7801"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5907\u6ce8"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"10"),(0,r.kt)("td",{parentName:"tr",align:null},"Pembelian Handphone / Laptop / Elektronik"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"11"),(0,r.kt)("td",{parentName:"tr",align:null},"Tagihan Rutin"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"12"),(0,r.kt)("td",{parentName:"tr",align:null},"Liburan / Rekreasi"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"13"),(0,r.kt)("td",{parentName:"tr",align:null},"Pembayaran Pajak"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"14"),(0,r.kt)("td",{parentName:"tr",align:null},"Asuransi"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"15"),(0,r.kt)("td",{parentName:"tr",align:null},"Pengobatan Medis"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"16"),(0,r.kt)("td",{parentName:"tr",align:null},"Pendidikan"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"17"),(0,r.kt)("td",{parentName:"tr",align:null},"Konsumsi Rumah Tangga"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"18"),(0,r.kt)("td",{parentName:"tr",align:null},"Modal Usaha"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"19"),(0,r.kt)("td",{parentName:"tr",align:null},"Multiguna"),(0,r.kt)("td",{parentName:"tr",align:null})))),(0,r.kt)("h2",{id:"\u6587\u6863\u7c7b\u578b"},"\u6587\u6863\u7c7b\u578b"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u7f16\u7801"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5907\u6ce8"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"bank_statement_3_months"),(0,r.kt)("td",{parentName:"tr",align:null},"Bank statement for the last 3 months"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"company_id_card"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"ID_PNS"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"receiptri"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"salary_certificate"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"salary_slip_3_months"),(0,r.kt)("td",{parentName:"tr",align:null},"Salary slip for the last 3 months"),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"self_SKU_SIUP_TDP"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"SK_PNS"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"driver_license"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"KTP"),(0,r.kt)("td",{parentName:"tr",align:null}),(0,r.kt)("td",{parentName:"tr",align:null})))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/docs/document/assets/js/935f2afb.977506b4.js b/docs/document/assets/js/935f2afb.977506b4.js new file mode 100644 index 000000000..4d1b27699 --- /dev/null +++ b/docs/document/assets/js/935f2afb.977506b4.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[53],{9054:function(e){"use strict";e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":"none","isLast":true,"docsSidebars":{"en":[{"type":"link","label":"Overview","href":"/document/"},{"type":"link","label":"UML Diagram","href":"/document/en/UML Diagram"},{"type":"link","label":"Parameters Instructions","href":"/document/en/Parameters Instructions"},{"type":"link","label":"Data dictionary","href":"/document/en/Data dictionary"},{"type":"category","label":"Basic Services","items":[{"type":"link","label":"User Registration","href":"/document/en/Basic Services/User Registration"},{"type":"link","label":"Authorization list inquiry","href":"/document/en/Basic Services/Authorization list inquiry"},{"type":"link","label":"Get the authorization detail page","href":"/document/en/Basic Services/Get the authorization detail page"},{"type":"link","label":"Call back for authorization status","href":"/document/en/Basic Services/Call back for authorization status"},{"type":"link","label":"Bank card inquiry","href":"/document/en/Basic Services/Bank card inquiry"},{"type":"link","label":"Get bank list","href":"/document/en/Basic Services/Get bank list"},{"type":"link","label":"Bank card verification","href":"/document/en/Basic Services/Bank card verification"},{"type":"link","label":"Submit loan","href":"/document/en/Basic Services/Submit loan"},{"type":"link","label":"Loan agreement inquiry","href":"/document/en/Basic Services/Loan agreement inquiry"},{"type":"link","label":"Sign agreement","href":"/document/en/Basic Services/Sign agreement"},{"type":"link","label":"Get loan information","href":"/document/en/Basic Services/Get loan information"},{"type":"link","label":"Get repayment VA","href":"/document/en/Basic Services/Get repayment VA"},{"type":"link","label":"Push notification","href":"/document/en/Basic Services/Push notification"},{"type":"link","label":"Eligible Check","href":"/document/en/Basic Services/Eligible Check"},{"type":"link","label":"Get the token for uploading image","href":"/document/en/Basic Services/Get the token for uploading image"},{"type":"link","label":"Upload Image - By sending file stream","href":"/document/en/Basic Services/Upload Image - By sending file stream"},{"type":"link","label":"Upload Image - By using base64 or url format","href":"/document/en/Basic Services/Upload Image - By using base64 or url format"},{"type":"link","label":"Get the redirect url","href":"/document/en/Basic Services/Get the redirect url"}],"collapsed":false}],"zh-cn":[{"type":"link","label":"\u524d\u8a00","href":"/document/zh-cn"},{"type":"link","label":"\u53c2\u8003\u5bf9\u63a5UML\u65f6\u5e8f\u56fe","href":"/document/zh-cn/UML Diagram"},{"type":"link","label":"\u5165\u53c2\u53ca\u51fa\u53c2\u8bf4\u660e","href":"/document/zh-cn/Parameters Instructions"},{"type":"link","label":"\u6570\u636e\u5b57\u5178","href":"/document/zh-cn/Data dictionary"},{"type":"category","label":"\u57fa\u672c\u63a5\u53e3","items":[{"type":"link","label":"\u7528\u6237\u521b\u5efa","href":"/document/zh-cn/Basic Services/User Registration"},{"type":"link","label":"\u67e5\u8be2\u6388\u6743\u5217\u8868","href":"/document/zh-cn/Basic Services/Authorization list inquiry"},{"type":"link","label":"\u83b7\u53d6\u6388\u6743\u5730\u5740","href":"/document/zh-cn/Basic Services/Get the authorization detail page"},{"type":"link","label":"\u6388\u6743\u56de\u8c03\u901a\u77e5","href":"/document/zh-cn/Basic Services/Call back for authorization status"},{"type":"link","label":"\u7ed1\u5361\u4fe1\u606f\u67e5\u8be2","href":"/document/zh-cn/Basic Services/Bank card inquiry"},{"type":"link","label":"\u94f6\u884c\u5217\u8868\u67e5\u8be2","href":"/document/zh-cn/Basic Services/Get bank list"},{"type":"link","label":"\u7ed1\u5b9a\u94f6\u884c\u5361","href":"/document/zh-cn/Basic Services/Bank card verification"},{"type":"link","label":"\u7533\u8bf7\u501f\u6b3e","href":"/document/zh-cn/Basic Services/Submit loan"},{"type":"link","label":"\u67e5\u770b\u5408\u540c","href":"/document/zh-cn/Basic Services/Loan agreement inquiry"},{"type":"link","label":"\u7b7e\u7ea6\uff08\u786e\u8ba4\u653e\u6b3e\uff09","href":"/document/zh-cn/Basic Services/Sign agreement"},{"type":"link","label":"\u8d37\u6b3e\u4fe1\u606f\u67e5\u8be2","href":"/document/zh-cn/Basic Services/Get loan information"},{"type":"link","label":"\u7528\u6237\u8fd8\u6b3e\u865a\u62df\u8d26\u53f7\u67e5\u8be2","href":"/document/zh-cn/Basic Services/Get repayment VA"},{"type":"link","label":"\u63a8\u9001\u901a\u77e5","href":"/document/zh-cn/Basic Services/Push notification"},{"type":"link","label":"Eligible Check","href":"/document/zh-cn/Basic Services/Eligible Check"},{"type":"link","label":"Get the token for uploading image","href":"/document/zh-cn/Basic Services/Get the token for uploading image"},{"type":"link","label":"Upload Image - By sending file stream","href":"/document/zh-cn/Basic Services/Upload Image - By sending file stream"},{"type":"link","label":"Upload Image - By using base64 or url format","href":"/document/zh-cn/Basic Services/Upload Image - By using base64 or url format"},{"type":"link","label":"Get the redirect url","href":"/document/zh-cn/Basic Services/Get the redirect url"}],"collapsed":false}]},"permalinkToSidebar":{"/document/en/Basic Services/Authorization list inquiry":"en","/document/en/Basic Services/Bank card inquiry":"en","/document/en/Basic Services/Bank card verification":"en","/document/en/Basic Services/Call back for authorization status":"en","/document/en/Basic Services/Eligible Check":"en","/document/en/Basic Services/Get bank list":"en","/document/en/Basic Services/Get loan information":"en","/document/en/Basic Services/Get repayment VA":"en","/document/en/Basic Services/Get the authorization detail page":"en","/document/en/Basic Services/Get the redirect url":"en","/document/en/Basic Services/Get the token for uploading image":"en","/document/en/Basic Services/Loan agreement inquiry":"en","/document/en/Basic Services/Push notification":"en","/document/en/Basic Services/Sign agreement":"en","/document/en/Basic Services/Submit loan":"en","/document/en/Basic Services/Upload Image - By sending file stream":"en","/document/en/Basic Services/Upload Image - By using base64 or url format":"en","/document/en/Basic Services/User Registration":"en","/document/en/Data dictionary":"en","/document/":"en","/document/en/Parameters Instructions":"en","/document/en/UML Diagram":"en","/document/zh-cn/Basic Services/Authorization list inquiry":"zh-cn","/document/zh-cn/Basic Services/Bank card inquiry":"zh-cn","/document/zh-cn/Basic Services/Bank card verification":"zh-cn","/document/zh-cn/Basic Services/Call back for authorization status":"zh-cn","/document/zh-cn/Basic Services/Eligible Check":"zh-cn","/document/zh-cn/Basic Services/Get bank list":"zh-cn","/document/zh-cn/Basic Services/Get loan information":"zh-cn","/document/zh-cn/Basic Services/Get repayment VA":"zh-cn","/document/zh-cn/Basic Services/Get the authorization detail page":"zh-cn","/document/zh-cn/Basic Services/Get the redirect url":"zh-cn","/document/zh-cn/Basic Services/Get the token for uploading image":"zh-cn","/document/zh-cn/Basic Services/Loan agreement inquiry":"zh-cn","/document/zh-cn/Basic Services/Push notification":"zh-cn","/document/zh-cn/Basic Services/Sign agreement":"zh-cn","/document/zh-cn/Basic Services/Submit loan":"zh-cn","/document/zh-cn/Basic Services/Upload Image - By sending file stream":"zh-cn","/document/zh-cn/Basic Services/Upload Image - By using base64 or url format":"zh-cn","/document/zh-cn/Basic Services/User Registration":"zh-cn","/document/zh-cn/Data dictionary":"zh-cn","/document/zh-cn":"zh-cn","/document/zh-cn/Parameters Instructions":"zh-cn","/document/zh-cn/UML Diagram":"zh-cn"}}')}}]); \ No newline at end of file diff --git a/docs/document/assets/js/96f9ab01.6bc52438.js b/docs/document/assets/js/96f9ab01.6bc52438.js new file mode 100644 index 000000000..4ce877bdb --- /dev/null +++ b/docs/document/assets/js/96f9ab01.6bc52438.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[8150],{9278:function(e,t,r){"use strict";r.d(t,{Zo:function(){return s},kt:function(){return m}});var n=r(9301);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),f=p(r),m=o,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||c;return r?n.createElement(y,i(i({ref:t},s),{},{components:r})):n.createElement(y,i({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,i[1]=a;for(var p=2;p=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(r),y=i,m=f["".concat(u,".").concat(y)]||f[y]||p[y]||o;return r?n.createElement(m,a(a({ref:t},l),{},{components:r})):n.createElement(m,a({ref:t},l))}));function y(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:i,a[1]=c;for(var s=2;s=0||(r[n]=t[n]);return r}(t,a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(e=0;e=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var d=e.createContext({}),m=function(t){var a=e.useContext(d),n=a;return t&&(n="function"==typeof t?t(a):i(i({},a),t)),n},k=function(t){var a=m(t.components);return e.createElement(d.Provider,{value:a},t.children)},N={inlineCode:"code",wrapper:function(t){var a=t.children;return e.createElement(e.Fragment,{},a)}},u=e.forwardRef((function(t,a){var n=t.components,r=t.mdxType,l=t.originalType,d=t.parentName,k=p(t,["components","mdxType","originalType","parentName"]),u=m(n),g=r,o=u["".concat(d,".").concat(g)]||u[g]||N[g]||l;return n?e.createElement(o,i(i({ref:a},k),{},{components:n})):e.createElement(o,i({ref:a},k))}));function g(t,a){var n=arguments,r=a&&a.mdxType;if("string"==typeof t||r){var l=n.length,i=new Array(l);i[0]=u;var p={};for(var d in a)hasOwnProperty.call(a,d)&&(p[d]=a[d]);p.originalType=t,p.mdxType="string"==typeof t?t:r,i[1]=p;for(var m=2;m50"),(0,l.kt)("td",{parentName:"tr",align:null})))),(0,l.kt)("h2",{id:"occupation"},"Occupation"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Code"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Note"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"11"),(0,l.kt)("td",{parentName:"tr",align:null},"Pensiunan/Purnawirawan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"12"),(0,l.kt)("td",{parentName:"tr",align:null},"Pelayaran/Pelaut"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"13"),(0,l.kt)("td",{parentName:"tr",align:null},"Guru/Pendidikan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"14"),(0,l.kt)("td",{parentName:"tr",align:null},"Jasa"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"15"),(0,l.kt)("td",{parentName:"tr",align:null},"Dokter/Bidan/Mantri"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"16"),(0,l.kt)("td",{parentName:"tr",align:null},"Ojek Motor"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"17"),(0,l.kt)("td",{parentName:"tr",align:null},"Sopir"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"18"),(0,l.kt)("td",{parentName:"tr",align:null},"Peternak"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"19"),(0,l.kt)("td",{parentName:"tr",align:null},"Pelajar/Mahasiswa"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"20"),(0,l.kt)("td",{parentName:"tr",align:null},"Buruh/PRT"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"21"),(0,l.kt)("td",{parentName:"tr",align:null},"Pengrajin Tangan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"23"),(0,l.kt)("td",{parentName:"tr",align:null},"Pedagang"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"24"),(0,l.kt)("td",{parentName:"tr",align:null},"Produksi"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"26"),(0,l.kt)("td",{parentName:"tr",align:null},"Sewa/Rent"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"27"),(0,l.kt)("td",{parentName:"tr",align:null},"Transportasi & Komunikasi"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"28"),(0,l.kt)("td",{parentName:"tr",align:null},"Hiburan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"29"),(0,l.kt)("td",{parentName:"tr",align:null},"Pendidikan Non Formal"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"30"),(0,l.kt)("td",{parentName:"tr",align:null},"Hotel"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"31"),(0,l.kt)("td",{parentName:"tr",align:null},"Perangkat Desa"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"32"),(0,l.kt)("td",{parentName:"tr",align:null},"TNI/Polri"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"33"),(0,l.kt)("td",{parentName:"tr",align:null},"Atlet"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"34"),(0,l.kt)("td",{parentName:"tr",align:null},"Pengobatan Alternatif"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"2"),(0,l.kt)("td",{parentName:"tr",align:null},"ABRI"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"3"),(0,l.kt)("td",{parentName:"tr",align:null},"Pengacara"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"35"),(0,l.kt)("td",{parentName:"tr",align:null},"Jurnalis / Wartawan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"37"),(0,l.kt)("td",{parentName:"tr",align:null},"Profesi"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"36"),(0,l.kt)("td",{parentName:"tr",align:null},"Wartawan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"6"),(0,l.kt)("td",{parentName:"tr",align:null},"Lain-Lain"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"38"),(0,l.kt)("td",{parentName:"tr",align:null},"Pekerja Lepas"),(0,l.kt)("td",{parentName:"tr",align:null})))),(0,l.kt)("h2",{id:"income-source"},"Income source"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Code"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Note"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"10"),(0,l.kt)("td",{parentName:"tr",align:null},"Gaji/Upah"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"11"),(0,l.kt)("td",{parentName:"tr",align:null},"Laba Usaha"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"12"),(0,l.kt)("td",{parentName:"tr",align:null},"Uang Tabungan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"13"),(0,l.kt)("td",{parentName:"tr",align:null},"Menjual/Menggadaikan Aset"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"14"),(0,l.kt)("td",{parentName:"tr",align:null},"Dari Keluarga/Teman/Sumber Lainnya"),(0,l.kt)("td",{parentName:"tr",align:null})))),(0,l.kt)("h2",{id:"relationship-with-emergency-contact"},"Relationship with emergency contact"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Code"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Note"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"10"),(0,l.kt)("td",{parentName:"tr",align:null},"Pasangan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"11"),(0,l.kt)("td",{parentName:"tr",align:null},"Orang Tua"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"12"),(0,l.kt)("td",{parentName:"tr",align:null},"Saudara Kandung"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"13"),(0,l.kt)("td",{parentName:"tr",align:null},"Anak"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"14"),(0,l.kt)("td",{parentName:"tr",align:null},"Teman Kantor"),(0,l.kt)("td",{parentName:"tr",align:null})))),(0,l.kt)("h2",{id:"apply-reason"},"Apply reason"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Code"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Note"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"10"),(0,l.kt)("td",{parentName:"tr",align:null},"Pembelian Handphone / Laptop / Elektronik"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"11"),(0,l.kt)("td",{parentName:"tr",align:null},"Tagihan Rutin"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"12"),(0,l.kt)("td",{parentName:"tr",align:null},"Liburan / Rekreasi"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"13"),(0,l.kt)("td",{parentName:"tr",align:null},"Pembayaran Pajak"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"14"),(0,l.kt)("td",{parentName:"tr",align:null},"Asuransi"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"15"),(0,l.kt)("td",{parentName:"tr",align:null},"Pengobatan Medis"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"16"),(0,l.kt)("td",{parentName:"tr",align:null},"Pendidikan"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"17"),(0,l.kt)("td",{parentName:"tr",align:null},"Konsumsi Rumah Tangga"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"18"),(0,l.kt)("td",{parentName:"tr",align:null},"Modal Usaha"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"19"),(0,l.kt)("td",{parentName:"tr",align:null},"Multiguna"),(0,l.kt)("td",{parentName:"tr",align:null})))),(0,l.kt)("h2",{id:"document-type"},"Document type"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Code"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"),(0,l.kt)("th",{parentName:"tr",align:null},"Note"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"bank_statement_3_months"),(0,l.kt)("td",{parentName:"tr",align:null},"Bank statement for the last 3 months"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"company_id_card"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"ID_PNS"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"receiptri"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"salary_certificate"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"salary_slip_3_months"),(0,l.kt)("td",{parentName:"tr",align:null},"Salary slip for the last 3 months"),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"self_SKU_SIUP_TDP"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"SK_PNS"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"driver_license"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"KTP"),(0,l.kt)("td",{parentName:"tr",align:null}),(0,l.kt)("td",{parentName:"tr",align:null})))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/docs/document/assets/js/c0737d29.4855a421.js b/docs/document/assets/js/c0737d29.4855a421.js new file mode 100644 index 000000000..a41135183 --- /dev/null +++ b/docs/document/assets/js/c0737d29.4855a421.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[5680],{9278:function(e,t,r){"use strict";r.d(t,{Zo:function(){return l},kt:function(){return d}});var n=r(9301);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(r),d=i,m=f["".concat(u,".").concat(d)]||f[d]||p[d]||o;return r?n.createElement(m,a(a({ref:t},l),{},{components:r})):n.createElement(m,a({ref:t},l))}));function d(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:i,a[1]=c;for(var s=2;s=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(r),m=o,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||a;return r?n.createElement(d,i(i({ref:t},l),{},{components:r})):n.createElement(d,i({ref:t},l))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var s=2;s=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),f=l(n),m=i,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||o;return n?r.createElement(d,c(c({ref:t},s),{},{components:n})):r.createElement(d,c({ref:t},s))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,c=new Array(o);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:i,c[1]=a;for(var l=2;l=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),s=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},l=function(e){var r=s(e.components);return n.createElement(u.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(t),m=o,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||i;return t?n.createElement(d,c(c({ref:r},l),{},{components:t})):n.createElement(d,c({ref:r},l))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=f;var a={};for(var u in r)hasOwnProperty.call(r,u)&&(a[u]=r[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(n),m=o,y=f["".concat(u,".").concat(m)]||f[m]||p[m]||i;return n?r.createElement(y,c(c({ref:t},l),{},{components:n})):r.createElement(y,c({ref:t},l))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,c=new Array(i);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var s=2;s=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(r),m=i,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||o;return r?n.createElement(d,a(a({ref:t},l),{},{components:r})):n.createElement(d,a({ref:t},l))}));function m(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,a=new Array(o);a[0]=f;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c.mdxType="string"==typeof e?e:i,a[1]=c;for(var s=2;s=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(r),m=i,y=f["".concat(u,".").concat(m)]||f[m]||p[m]||o;return r?n.createElement(y,c(c({ref:t},l),{},{components:r})):n.createElement(y,c({ref:t},l))}));function m(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,c=new Array(o);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:i,c[1]=a;for(var s=2;s=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(n),m=i,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||o;return n?r.createElement(d,c(c({ref:t},l),{},{components:n})):r.createElement(d,c({ref:t},l))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,c=new Array(o);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:i,c[1]=a;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),d=l(n),f=o,m=d["".concat(u,".").concat(f)]||d[f]||p[f]||i;return n?r.createElement(m,c(c({ref:t},s),{},{components:n})):r.createElement(m,c({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,c=new Array(i);c[0]=d;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,c[1]=a;for(var l=2;l=0||(c[n]=e[n]);return c}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(c[n]=e[n])}return c}var u=t.createContext({}),s=function(e){var r=t.useContext(u),n=r;return e&&(n="function"==typeof e?e(r):o(o({},r),e)),n},l=function(e){var r=s(e.components);return t.createElement(u.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,c=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(n),m=c,y=f["".concat(u,".").concat(m)]||f[m]||p[m]||i;return n?t.createElement(y,o(o({ref:r},l),{},{components:n})):t.createElement(y,o({ref:r},l))}));function m(e,r){var n=arguments,c=r&&r.mdxType;if("string"==typeof e||c){var i=n.length,o=new Array(i);o[0]=f;var a={};for(var u in r)hasOwnProperty.call(r,u)&&(a[u]=r[u]);a.originalType=e,a.mdxType="string"==typeof e?e:c,o[1]=a;for(var s=2;s=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),s=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},l=function(e){var r=s(e.components);return n.createElement(u.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},f=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,c=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(t),m=o,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||c;return t?n.createElement(d,i(i({ref:r},l),{},{components:t})):n.createElement(d,i({ref:r},l))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var c=t.length,i=new Array(c);i[0]=f;var a={};for(var u in r)hasOwnProperty.call(r,u)&&(a[u]=r[u]);a.originalType=e,a.mdxType="string"==typeof e?e:o,i[1]=a;for(var s=2;s=0||(i[n]=e[n]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=t.createContext({}),s=function(e){var r=t.useContext(u),n=r;return e&&(n="function"==typeof e?e(r):a(a({},r),e)),n},l=function(e){var r=s(e.components);return t.createElement(u.Provider,{value:r},e.children)},p={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},f=t.forwardRef((function(e,r){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),f=s(n),y=i,d=f["".concat(u,".").concat(y)]||f[y]||p[y]||o;return n?t.createElement(d,a(a({ref:r},l),{},{components:n})):t.createElement(d,a({ref:r},l))}));function y(e,r){var n=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=f;var c={};for(var u in r)hasOwnProperty.call(r,u)&&(c[u]=r[u]);c.originalType=e,c.mdxType="string"==typeof e?e:i,a[1]=c;for(var s=2;s=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),p=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(o.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,o=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(n),c=a,g=d["".concat(o,".").concat(c)]||d[c]||m[c]||l;return n?r.createElement(g,i(i({ref:t},u),{},{components:n})):r.createElement(g,i({ref:t},u))}));function c(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=d;var s={};for(var o in t)hasOwnProperty.call(t,o)&&(s[o]=t[o]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var p=2;p entry : map.entrySet()) {\n keys[i++] = entry.getKey();\n}\nArrays.sort(keys);\nStringBuilder stringBuilder = new StringBuilder();\nfor (String key : keys) {\n stringBuilder.append(key);\n stringBuilder.append(":");\n stringBuilder.append(map.get(key));\n}\nstringBuilder.append(secret);\nString str=stringBuilder.toString();\nString encodeStr = DigestUtils.md5Hex(str).toUpperCase();\nreturn encodeStr ;\n')),(0,l.kt)("h3",{id:"api-response"},"API Response"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Parameters"),(0,l.kt)("th",{parentName:"tr",align:null},"DescriptionType"),(0,l.kt)("th",{parentName:"tr",align:null},"Mandatory"),(0,l.kt)("th",{parentName:"tr",align:null},"Notes"),(0,l.kt)("th",{parentName:"tr",align:null}))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"code"),(0,l.kt)("td",{parentName:"tr",align:null},"Status code"),(0,l.kt)("td",{parentName:"tr",align:null},"Integer"),(0,l.kt)("td",{parentName:"tr",align:null},"Y"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("p",null,"0: Success"),(0,l.kt)("p",null,"Other codes all represent failure, find more details in Code List"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"message"),(0,l.kt)("td",{parentName:"tr",align:null},"Status description"),(0,l.kt)("td",{parentName:"tr",align:null},"String"),(0,l.kt)("td",{parentName:"tr",align:null},"Y"),(0,l.kt)("td",{parentName:"tr",align:null},"Code description")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"result"),(0,l.kt)("td",{parentName:"tr",align:null},"Return data"),(0,l.kt)("td",{parentName:"tr",align:null},"Object"),(0,l.kt)("td",{parentName:"tr",align:null},"N"),(0,l.kt)("td",{parentName:"tr",align:null},"When code=0, there will be business data returned inside result object")))),(0,l.kt)("h3",{id:"sample-response-for-success-request"},"Sample response for success request:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-json"},'{\n "code": 0,\n "message": "Permintaan berhasil",\n "result": {\n "state": true\n }\n}\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/docs/document/assets/js/fcf1cd90.1102402f.js b/docs/document/assets/js/fcf1cd90.1102402f.js new file mode 100644 index 000000000..16314286b --- /dev/null +++ b/docs/document/assets/js/fcf1cd90.1102402f.js @@ -0,0 +1 @@ +(self.webpackChunkartplayer_document=self.webpackChunkartplayer_document||[]).push([[5510],{9278:function(e,t,n){"use strict";n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(9301);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,u=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),f=s(n),m=i,y=f["".concat(u,".").concat(m)]||f[m]||l[m]||o;return n?r.createElement(y,c(c({ref:t},p),{},{components:n})):r.createElement(y,c({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,c=new Array(o);c[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:i,c[1]=a;for(var s=2;s=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},l=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,c=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),f=s(r),m=c,d=f["".concat(u,".").concat(m)]||f[m]||p[m]||i;return r?n.createElement(d,o(o({ref:t},l),{},{components:r})):n.createElement(d,o({ref:t},l))}));function m(e,t){var r=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var i=r.length,o=new Array(i);o[0]=f;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a.mdxType="string"==typeof e?e:c,o[1]=a;for(var s=2;s=0||(a[n]=e[n]);return a}n.d(t,{Z:function(){return r}})},7119:function(e,t,n){var r={"./":3682};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=7119},1047:function(e,t){"use strict";t.Z={title:"Artplayer.js",tagline:"Public Product Api Document",url:"https://artplayer.org",baseUrl:"/document/",onBrokenLinks:"ignore",onBrokenMarkdownLinks:"ignore",organizationName:"zhw2590582",projectName:"Artplayer",favicon:"img/favicon.ico",clientModules:["/Users/harvey/Desktop/github/ArtPlayer/packages/artplayer-document/src/script/main.js"],themeConfig:{hideableSidebar:!0,navbar:{title:"Artplayer.js",items:[{href:"https://artplayer.org",position:"left",label:"Online Editor"},{href:"https://github.com/zhw2590582/ArtPlayer",position:"left",label:"Github"},{label:"QQ\u7fa4: 320881312",position:"right"},{label:"v 4.x.x",position:"right",items:[{label:"v 3.x.x",href:"https://artplayer.org/document_v3/"}]},{label:"English",position:"right",items:[{label:"English",href:"/"},{label:"\u4e2d\u6587",href:"/zh-cn/"}]}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2021 Artplayer.js, Inc. Built with Docusaurus.",links:[]},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1,switchConfig:{darkIcon:"\ud83c\udf1c",darkIconStyle:{},lightIcon:"\ud83c\udf1e",lightIconStyle:{}}},docs:{versionPersistence:"localStorage"},metadatas:[]},plugins:["/Users/harvey/Desktop/github/ArtPlayer/packages/artplayer-document/node_modules/_docusaurus-lunr-search@2.1.14@docusaurus-lunr-search/src/index.js"],presets:[["@docusaurus/preset-classic",{docs:{path:"./docs",routeBasePath:"/",sidebarPath:"/Users/harvey/Desktop/github/ArtPlayer/packages/artplayer-document/sidebars.js"},blog:!1,theme:{customCss:"/Users/harvey/Desktop/github/ArtPlayer/packages/artplayer-document/src/css/custom.css"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",customFields:{},themes:[],titleDelimiter:"|",noIndex:!1}},8923:function(e,t,n){"use strict";var r=n(9301),a=n(4676),i=n(444),o=n(6395),l=n.n(o),s=function(e){var t=e.error,n=e.retry,a=e.pastDelay;return t?r.createElement("div",{style:{align:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null},u=JSON.parse('{"/document/-270":{"component":"1be78505","versionMetadata":"935f2afb"},"/document/-2f1":{"component":"17896441","content":"0a29ddce"},"/document/en/Basic Services/Authorization list inquiry-943":{"component":"17896441","content":"9efba2fd"},"/document/en/Basic Services/Bank card inquiry-efc":{"component":"17896441","content":"e3f60dae"},"/document/en/Basic Services/Bank card verification-b60":{"component":"17896441","content":"85bbc3c8"},"/document/en/Basic Services/Call back for authorization status-c5a":{"component":"17896441","content":"c2c2c87c"},"/document/en/Basic Services/Eligible Check-ca6":{"component":"17896441","content":"c554111e"},"/document/en/Basic Services/Get bank list-54d":{"component":"17896441","content":"d599a0fb"},"/document/en/Basic Services/Get loan information-a25":{"component":"17896441","content":"36b2dbba"},"/document/en/Basic Services/Get repayment VA-1c4":{"component":"17896441","content":"7646b534"},"/document/en/Basic Services/Get the authorization detail page-96c":{"component":"17896441","content":"c0737d29"},"/document/en/Basic Services/Get the redirect url-5c4":{"component":"17896441","content":"c579eb15"},"/document/en/Basic Services/Get the token for uploading image-daa":{"component":"17896441","content":"1ae79f9a"},"/document/en/Basic Services/Loan agreement inquiry-121":{"component":"17896441","content":"134cb88d"},"/document/en/Basic Services/Push notification-cde":{"component":"17896441","content":"fcf1cd90"},"/document/en/Basic Services/Sign agreement-346":{"component":"17896441","content":"27c4af28"},"/document/en/Basic Services/Submit loan-9a3":{"component":"17896441","content":"86a1bb42"},"/document/en/Basic Services/Upload Image - By sending file stream-7a5":{"component":"17896441","content":"82476eed"},"/document/en/Basic Services/Upload Image - By using base64 or url format-927":{"component":"17896441","content":"1a67a6ef"},"/document/en/Basic Services/User Registration-03f":{"component":"17896441","content":"31c34e48"},"/document/en/Data dictionary-abd":{"component":"17896441","content":"af90ffd9"},"/document/en/Parameters Instructions-bb6":{"component":"17896441","content":"e8a938ca"},"/document/en/UML Diagram-99e":{"component":"17896441","content":"20de075e"},"/document/zh-cn-772":{"component":"17896441","content":"7086e348"},"/document/zh-cn/Basic Services/Authorization list inquiry-781":{"component":"17896441","content":"cb252814"},"/document/zh-cn/Basic Services/Bank card inquiry-6c8":{"component":"17896441","content":"def96cc2"},"/document/zh-cn/Basic Services/Bank card verification-bd1":{"component":"17896441","content":"0a02cac0"},"/document/zh-cn/Basic Services/Call back for authorization status-518":{"component":"17896441","content":"5307a45c"},"/document/zh-cn/Basic Services/Eligible Check-a13":{"component":"17896441","content":"16507a2a"},"/document/zh-cn/Basic Services/Get bank list-dd3":{"component":"17896441","content":"ff064a75"},"/document/zh-cn/Basic Services/Get loan information-f5b":{"component":"17896441","content":"c6173bc3"},"/document/zh-cn/Basic Services/Get repayment VA-175":{"component":"17896441","content":"96f9ab01"},"/document/zh-cn/Basic Services/Get the authorization detail page-95f":{"component":"17896441","content":"ca8cd0b5"},"/document/zh-cn/Basic Services/Get the redirect url-cf4":{"component":"17896441","content":"e2ec2894"},"/document/zh-cn/Basic Services/Get the token for uploading image-4c9":{"component":"17896441","content":"8171bdc6"},"/document/zh-cn/Basic Services/Loan agreement inquiry-e5f":{"component":"17896441","content":"5d257fcd"},"/document/zh-cn/Basic Services/Push notification-954":{"component":"17896441","content":"25894e64"},"/document/zh-cn/Basic Services/Sign agreement-dd8":{"component":"17896441","content":"3466b11f"},"/document/zh-cn/Basic Services/Submit loan-96f":{"component":"17896441","content":"1b08f3f6"},"/document/zh-cn/Basic Services/Upload Image - By sending file stream-02f":{"component":"17896441","content":"4eecbd2e"},"/document/zh-cn/Basic Services/Upload Image - By using base64 or url format-766":{"component":"17896441","content":"298c6703"},"/document/zh-cn/Basic Services/User Registration-bd2":{"component":"17896441","content":"477a14c5"},"/document/zh-cn/Data dictionary-f8b":{"component":"17896441","content":"9355141f"},"/document/zh-cn/Parameters Instructions-09b":{"component":"17896441","content":"2507de72"},"/document/zh-cn/UML Diagram-5da":{"component":"17896441","content":"dcd71a53"}}'),c={"0a02cac0":[function(){return n.e(903).then(n.bind(n,8496))},"@site/docs/zh-cn/Basic Services/7.Bank card verification.md",8496],"0a29ddce":[function(){return n.e(9176).then(n.bind(n,7598))},"@site/docs/en/Overview.md",7598],"134cb88d":[function(){return n.e(4718).then(n.bind(n,5745))},"@site/docs/en/Basic Services/9.Loan agreement inquiry.md",5745],"16507a2a":[function(){return n.e(3093).then(n.bind(n,4715))},"@site/docs/zh-cn/Basic Services/14.Eligible Check.md",4715],17896441:[function(){return Promise.all([n.e(532),n.e(797),n.e(7918)]).then(n.bind(n,475))},"@theme/DocItem",475],"1a67a6ef":[function(){return n.e(9195).then(n.bind(n,6095))},"@site/docs/en/Basic Services/17.Upload Image - By using base64 or url format.md",6095],"1ae79f9a":[function(){return n.e(794).then(n.bind(n,3962))},"@site/docs/en/Basic Services/15.Get the token for uploading image.md",3962],"1b08f3f6":[function(){return n.e(1043).then(n.bind(n,6804))},"@site/docs/zh-cn/Basic Services/8.Submit loan.md",6804],"1be78505":[function(){return Promise.all([n.e(532),n.e(797),n.e(3149),n.e(9514)]).then(n.bind(n,6318))},"@theme/DocPage",6318],"20de075e":[function(){return n.e(3188).then(n.bind(n,4))},"@site/docs/en/UML Diagram.md",4],"2507de72":[function(){return n.e(69).then(n.bind(n,6845))},"@site/docs/zh-cn/Parameters Instructions.md",6845],"25894e64":[function(){return n.e(6683).then(n.bind(n,3647))},"@site/docs/zh-cn/Basic Services/13.Push notification.md",3647],"27c4af28":[function(){return n.e(1396).then(n.bind(n,2091))},"@site/docs/en/Basic Services/10.Sign agreement.md",2091],"298c6703":[function(){return n.e(2177).then(n.bind(n,862))},"@site/docs/zh-cn/Basic Services/17.Upload Image - By using base64 or url format.md",862],"31c34e48":[function(){return n.e(5104).then(n.bind(n,3979))},"@site/docs/en/Basic Services/1.User Registration.md",3979],"3466b11f":[function(){return n.e(7668).then(n.bind(n,4615))},"@site/docs/zh-cn/Basic Services/10.Sign agreement.md",4615],"36b2dbba":[function(){return n.e(4822).then(n.bind(n,7696))},"@site/docs/en/Basic Services/11.Get loan information.md",7696],"477a14c5":[function(){return n.e(8819).then(n.bind(n,8944))},"@site/docs/zh-cn/Basic Services/1.User Registration.md",8944],"4eecbd2e":[function(){return n.e(9272).then(n.bind(n,9523))},"@site/docs/zh-cn/Basic Services/16.Upload Image - By sending file stream.md",9523],"5307a45c":[function(){return n.e(6919).then(n.bind(n,5110))},"@site/docs/zh-cn/Basic Services/4.Call back for authorization status.md",5110],"5d257fcd":[function(){return n.e(5649).then(n.bind(n,6314))},"@site/docs/zh-cn/Basic Services/9.Loan agreement inquiry.md",6314],"7086e348":[function(){return n.e(1576).then(n.bind(n,8441))},"@site/docs/zh-cn/Overview.md",8441],"7646b534":[function(){return n.e(3264).then(n.bind(n,4040))},"@site/docs/en/Basic Services/12.Get repayment VA.md",4040],"8171bdc6":[function(){return n.e(9701).then(n.bind(n,9824))},"@site/docs/zh-cn/Basic Services/15.Get the token for uploading image.md",9824],"82476eed":[function(){return n.e(6631).then(n.bind(n,7033))},"@site/docs/en/Basic Services/16.Upload Image - By sending file stream.md",7033],"85bbc3c8":[function(){return n.e(530).then(n.bind(n,4467))},"@site/docs/en/Basic Services/7.Bank card verification.md",4467],"86a1bb42":[function(){return n.e(7434).then(n.bind(n,3618))},"@site/docs/en/Basic Services/8.Submit loan.md",3618],"9355141f":[function(){return n.e(2518).then(n.bind(n,9419))},"@site/docs/zh-cn/Data dictionary.md",9419],"935f2afb":[function(){return n.e(53).then(n.t.bind(n,9054,19))},"~docs/default/version-current-metadata-prop-751.json",9054],"96f9ab01":[function(){return n.e(8150).then(n.bind(n,4050))},"@site/docs/zh-cn/Basic Services/12.Get repayment VA.md",4050],"9efba2fd":[function(){return n.e(3119).then(n.bind(n,1576))},"@site/docs/en/Basic Services/2.Authorization list inquiry.md",1576],af90ffd9:[function(){return n.e(7786).then(n.bind(n,2939))},"@site/docs/en/Data dictionary.md",2939],c0737d29:[function(){return n.e(5680).then(n.bind(n,1494))},"@site/docs/en/Basic Services/3.Get the authorization detail page.md",1494],c2c2c87c:[function(){return n.e(5643).then(n.bind(n,9805))},"@site/docs/en/Basic Services/4.Call back for authorization status.md",9805],c554111e:[function(){return n.e(9177).then(n.bind(n,4625))},"@site/docs/en/Basic Services/14.Eligible Check.md",4625],c579eb15:[function(){return n.e(1030).then(n.bind(n,6938))},"@site/docs/en/Basic Services/18.Get the redirect url.md",6938],c6173bc3:[function(){return n.e(8062).then(n.bind(n,347))},"@site/docs/zh-cn/Basic Services/11.Get loan information.md",347],ca8cd0b5:[function(){return n.e(4394).then(n.bind(n,479))},"@site/docs/zh-cn/Basic Services/3.Get the authorization detail page.md",479],cb252814:[function(){return n.e(4838).then(n.bind(n,4479))},"@site/docs/zh-cn/Basic Services/2.Authorization list inquiry.md",4479],d599a0fb:[function(){return n.e(6800).then(n.bind(n,1915))},"@site/docs/en/Basic Services/6.Get bank list.md",1915],dcd71a53:[function(){return n.e(4640).then(n.bind(n,9014))},"@site/docs/zh-cn/UML Diagram.md",9014],def96cc2:[function(){return n.e(1642).then(n.bind(n,3345))},"@site/docs/zh-cn/Basic Services/5.Bank card inquiry.md",3345],e2ec2894:[function(){return n.e(3664).then(n.bind(n,6587))},"@site/docs/zh-cn/Basic Services/18.Get the redirect url.md",6587],e3f60dae:[function(){return n.e(7951).then(n.bind(n,5855))},"@site/docs/en/Basic Services/5.Bank card inquiry.md",5855],e8a938ca:[function(){return n.e(4735).then(n.bind(n,8554))},"@site/docs/en/Parameters Instructions.md",8554],fcf1cd90:[function(){return n.e(5510).then(n.bind(n,4098))},"@site/docs/en/Basic Services/13.Push notification.md",4098],ff064a75:[function(){return n.e(3020).then(n.bind(n,5740))},"@site/docs/zh-cn/Basic Services/6.Get bank list.md",5740]};var d=function(e){var t={};return function e(n,r){Object.keys(n).forEach((function(a){var i=n[a],o=r?r+"."+a:a;"object"===typeof i&&!!i&&Object.keys(i).length?e(i,o):t[o]=i}))}(e),t};var f=function(e,t){if("*"===e)return l()({loading:s,loader:function(){return Promise.all([n.e(532),n.e(797),n.e(3149),n.e(2538)]).then(n.bind(n,591))}});var a=u[e+"-"+t],i=[],o=[],f={},p=d(a);return Object.keys(p).forEach((function(e){var t=c[p[e]];t&&(f[e]=t[0],i.push(t[1]),o.push(t[2]))})),l().Map({loading:s,loader:f,modules:i,webpack:function(){return o},render:function(e,t){var n=JSON.parse(JSON.stringify(a));Object.keys(e).forEach((function(t){for(var r=n,a=t.split("."),i=0;i1?t-1:0),r=1;r\n

    Your Docusaurus site did not load properly.

    \n

    A very common reason is a wrong site baseUrl configuration.

    \n

    Current configured baseUrl = '+e+" "+("/"===e?" (default value)":"")+'

    \n

    We suggest trying baseUrl =

    \n\n'}(e)).replace(/=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},H=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},V=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return!1===t?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},W=function(e){var t=X(e,y.TITLE),n=X(e,D);if(n&&t)return n.replace(/%s/g,(function(){return Array.isArray(t)?t.join(""):t}));var r=X(e,B);return t||r||void 0},Z=function(e){return X(e,I)||function(){}},Y=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return q({},e,t)}),{})},K=function(e,t){return t.filter((function(e){return void 0!==e[y.BASE]})).map((function(e){return e[y.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},J=(r=Date.now(),function(e){var t=Date.now();t-r>16?(r=t,e(t)):setTimeout((function(){J(e)}),0)}),ee=function(e){return clearTimeout(e)},te="undefined"!=typeof window?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||J:n.g.requestAnimationFrame||J,ne="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||ee:n.g.cancelAnimationFrame||ee,re=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},ae=null,ie=function(e,t){var n=e.baseTag,r=e.bodyAttributes,a=e.htmlAttributes,i=e.linkTags,o=e.metaTags,l=e.noscriptTags,s=e.onChangeClientState,u=e.scriptTags,c=e.styleTags,d=e.title,f=e.titleAttributes;se(y.BODY,r),se(y.HTML,a),le(d,f);var p={baseTag:ue(y.BASE,n),linkTags:ue(y.LINK,i),metaTags:ue(y.META,o),noscriptTags:ue(y.NOSCRIPT,l),scriptTags:ue(y.SCRIPT,u),styleTags:ue(y.STYLE,c)},m={},h={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(m[e]=n),r.length&&(h[e]=p[e].oldTags)})),t&&t(),s(e,m,h)},oe=function(e){return Array.isArray(e)?e.join(""):e},le=function(e,t){void 0!==e&&document.title!==e&&(document.title=oe(e)),se(y.TITLE,t)},se=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(F),a=r?r.split(","):[],i=[].concat(a),o=Object.keys(t),l=0;l=0;d--)n.removeAttribute(i[d]);a.length===i.length?n.removeAttribute(F):n.getAttribute(F)!==o.join(",")&&n.setAttribute(F,o.join(","))}},ue=function(e,t){var n=document.head||document.querySelector(y.HEAD),r=n.querySelectorAll(e+"["+"data-react-helmet]"),a=Array.prototype.slice.call(r),i=[],o=void 0;return t&&t.length&&t.forEach((function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===x)n.innerHTML=t.innerHTML;else if(r===k)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var l=void 0===t[r]?"":t[r];n.setAttribute(r,l)}n.setAttribute(F,"true"),a.some((function(e,t){return o=t,n.isEqualNode(e)}))?a.splice(o,1):i.push(n)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return n.appendChild(e)})),{oldTags:a,newTags:i}},ce=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},de=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[R[n]||n]=e[n],t}),t)},fe=function(e,t,n){switch(e){case y.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(r={key:e})[F]=!0,a=de(n,r),[l.createElement(y.TITLE,a,e)];var e,n,r,a},toString:function(){return function(e,t,n,r){var a=ce(n),i=oe(t);return a?"<"+e+' data-react-helmet="true" '+a+">"+V(i,r)+"":"<"+e+' data-react-helmet="true">'+V(i,r)+""}(e,t.title,t.titleAttributes,n)}};case g:case v:return{toComponent:function(){return de(t)},toString:function(){return ce(t)}};default:return{toComponent:function(){return function(e,t){return t.map((function(t,n){var r,a=((r={key:n})[F]=!0,r);return Object.keys(t).forEach((function(e){var n=R[e]||e;if(n===x||n===k){var r=t.innerHTML||t.cssText;a.dangerouslySetInnerHTML={__html:r}}else a[n]=t[e]})),l.createElement(e,a)}))}(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!(e===x||e===k)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+V(r[t],n)+'"';return e?e+" "+a:a}),""),i=r.innerHTML||r.cssText||"",o=-1===M.indexOf(e);return t+"<"+e+' data-react-helmet="true" '+a+(o?"/>":">"+i+"")}),"")}(e,t,n)}}}},pe=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,i=e.linkTags,o=e.metaTags,l=e.noscriptTags,s=e.scriptTags,u=e.styleTags,c=e.title,d=void 0===c?"":c,f=e.titleAttributes;return{base:fe(y.BASE,t,r),bodyAttributes:fe(g,n,r),htmlAttributes:fe(v,a,r),link:fe(y.LINK,i,r),meta:fe(y.META,o,r),noscript:fe(y.NOSCRIPT,l,r),script:fe(y.SCRIPT,s,r),style:fe(y.STYLE,u,r),title:fe(y.TITLE,{title:d,titleAttributes:f},r)}},me=d()((function(e){return{baseTag:K([S,P],e),bodyAttributes:Y(g,e),defer:X(e,L),encode:X(e,N),htmlAttributes:Y(v,e),linkTags:Q(y.LINK,[_,S],e),metaTags:Q(y.META,[C,w,E,A,T],e),noscriptTags:Q(y.NOSCRIPT,[x],e),onChangeClientState:Z(e),scriptTags:Q(y.SCRIPT,[O,x],e),styleTags:Q(y.STYLE,[k],e),title:W(e),titleAttributes:Y(b,e)}}),(function(e){ae&&ne(ae),e.defer?ae=te((function(){ie(e,(function(){ae=null}))})):(ie(e),ae=null)}),pe)((function(){return null})),he=(a=me,o=i=function(e){function t(){return U(this,t),H(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!p()(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case y.SCRIPT:case y.NOSCRIPT:return{innerHTML:t};case y.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,a=e.newChildProps,i=e.nestedChildren;return q({},r,((t={})[n.type]=[].concat(r[n.type]||[],[q({},a,this.mapNestedChildrenToProps(n,i))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,i=e.newChildProps,o=e.nestedChildren;switch(r.type){case y.TITLE:return q({},a,((t={})[r.type]=o,t.titleAttributes=q({},i),t));case y.BODY:return q({},a,{bodyAttributes:q({},i)});case y.HTML:return q({},a,{htmlAttributes:q({},i)})}return q({},a,((n={})[r.type]=q({},i),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=q({},t);return Object.keys(e).forEach((function(t){var r;n=q({},n,((r={})[t]=e[t],r))})),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return l.Children.forEach(e,(function(e){if(e&&e.props){var a=e.props,i=a.children,o=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce((function(t,n){return t[z[n]||n]=e[n],t}),t)}($(a,["children"]));switch(n.warnOnInvalidChildren(e,i),e.type){case y.LINK:case y.META:case y.NOSCRIPT:case y.SCRIPT:case y.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:o,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:o,nestedChildren:i})}}})),t=this.mapArrayTypeChildrenToProps(r,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=$(e,["children"]),r=q({},n);return t&&(r=this.mapChildrenToProps(t,r)),l.createElement(a,r)},G(t,null,[{key:"canUseDOM",set:function(e){a.canUseDOM=e}}]),t}(l.Component),i.propTypes={base:u().object,bodyAttributes:u().object,children:u().oneOfType([u().arrayOf(u().node),u().node]),defaultTitle:u().string,defer:u().bool,encodeSpecialCharacters:u().bool,htmlAttributes:u().object,link:u().arrayOf(u().object),meta:u().arrayOf(u().object),noscript:u().arrayOf(u().object),onChangeClientState:u().func,script:u().arrayOf(u().object),style:u().arrayOf(u().object),title:u().string,titleAttributes:u().object,titleTemplate:u().string},i.defaultProps={defer:!0,encodeSpecialCharacters:!0},i.peek=a.peek,i.rewind=function(){var e=a.rewind();return e||(e=pe({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},o);he.renderStatic=he.rewind;var ge=function(e){return l.createElement(he,Object.assign({},e))}},4498:function(e,t,n){"use strict";var r=n(9301);t.Z=r.createContext(null)},3434:function(e,t,n){"use strict";var r=n(5334);t.Z=r.H},973:function(e,t,n){"use strict";var r=n(9301),a=n(4498);t.Z=function(){var e=(0,r.useContext)(a.Z);if(null===e)throw new Error("Docusaurus context not provided.");return e}},6395:function(e,t,n){"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(){return(o=Object.assign||function(e){for(var t=1;t=0;f--){var p=o[f];"."===p?i(o,f):".."===p?(i(o,f),d++):d&&(i(o,f),d--)}if(!u)for(;d--;d)o.unshift("..");!u||""===o[0]||o[0]&&a(o[0])||o.unshift("");var m=o.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),a=l(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},u=n(7832);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function h(e,t,n,a){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(i=(0,r.Z)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(i.key=n),a?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=o(i.pathname,a.pathname)):i.pathname=a.pathname:i.pathname||(i.pathname="/"),i}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,a):a(!0):a(!1!==i)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=h(e,t,f(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t
    '};function a(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function o(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),u=i.querySelector(r.barSelector),c=r.speed,d=r.easing;return i.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,o(e,c,d)),1===e?(s(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){s(i,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,o=t.querySelector(r.barSelector),l=e?"-100":i(n.status||0),u=document.querySelector(r.parent);return s(o,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+i)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n})?r.call(t,n,t,e):r)||(e.exports=a)},4126:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,i){for(var o,l,s=a(e),u=1;ue.length)return;if(!(k instanceof s)){if(h&&y!=t.length-1){if(f.lastIndex=w,!(A=f.exec(e)))break;for(var S=A.index+(m?A[1].length:0),E=A.index+A[0].length,x=y,T=w,C=t.length;x=(T+=t[x].length)&&(++y,w=T);if(t[y]instanceof s)continue;_=x-y,k=e.slice(w,T),A.index-=w}else{f.lastIndex=0;var A=f.exec(k),_=1}if(A){m&&(g=A[1]?A[1].length:0),E=(S=A.index+g)+(A=A[0].slice(g)).length;var O=k.slice(0,S),P=k.slice(E),R=[y,_];O&&(++y,w+=O.length,R.push(O));var B=new s(u,p?r.tokenize(A,p):A,v,A,h);if(R.push(B),P&&R.push(P),Array.prototype.splice.apply(t,R),1!=_&&r.matchGrammar(e,t,n,y,w,!0,u),o)break}else if(o)break}}}}},hooks:{add:function(){},run:function(e,t){}},tokenize:function(e,t,n){var a=[e],i=t.rest;if(i){for(var o in i)t[o]=i[o];delete t.rest}return r.matchGrammar(e,a,t,0,0,!1),a}},(a=r.Token=function(e,t,n,r,a){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!a}).stringify=function(e,t,n){if("string"==typeof e)return e;if("Array"===r.util.type(e))return e.map((function(n){return a.stringify(n,t,e)})).join("");var i={type:e.type,content:a.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n};if(e.alias){var o="Array"===r.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,o)}var l=Object.keys(i.attributes).map((function(e){return e+'="'+(i.attributes[e]||"").replace(/"/g,""")+'"'})).join(" ");return"<"+i.tag+' class="'+i.classes.join(" ")+'"'+(l?" "+l:"")+">"+i.content+""},r);i.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/,name:/[^\s<>'"]+/}},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},i.languages.markup.tag.inside["attr-value"].inside.entity=i.languages.markup.entity,i.languages.markup.doctype.inside["internal-subset"].inside=i.languages.markup,i.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(i.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:i.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:i.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},i.languages.insertBefore("markup","cdata",a)}}),i.languages.html=i.languages.markup,i.languages.mathml=i.languages.markup,i.languages.svg=i.languages.markup,i.languages.xml=i.languages.extend("markup",{}),i.languages.ssml=i.languages.xml,i.languages.atom=i.languages.xml,i.languages.rss=i.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)(["'])(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|(?!\2)[^\\`$])*\2/,lookbehind:!0,greedy:!0,inside:r}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,o=0;o]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},i.languages.c=i.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:__attribute__|_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,function:/[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),i.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},i.languages.c.string],comment:i.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:i.languages.c}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete i.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char8_t|char16_t|char32_t|class|compl|concept|const|consteval|constexpr|constinit|const_cast|continue|co_await|co_return|co_yield|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/;e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),e.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","operator",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(i),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:RegExp("[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),string:{pattern:t,greedy:!0},property:/(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,important:/!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/(^|["'\s])style\s*=\s*(?:"[^"]*"|'[^']*')/i,lookbehind:!0,inside:{"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{style:{pattern:/(["'])[\s\S]+(?=["']$)/,lookbehind:!0,alias:"language-css",inside:e.languages.css},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},"attr-name":/^style/i}}},n.tag))}(i),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+\b)/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#(?:[\da-f]{1,2}){3,4}\b/i,alias:"color"},color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(i),i.languages.javascript=i.languages.extend("clike",{"class-name":[i.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:prototype|constructor))/,lookbehind:!0}],keyword:[{pattern:/((?:^|})\s*)(?:catch|finally)\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|(?:get|set)(?=\s*[\[$\w\xA0-\uFFFF])|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:/\b(?:(?:0[xX](?:[\dA-Fa-f](?:_[\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\d(?:_\d)?)+n|NaN|Infinity)\b|(?:\b(?:\d(?:_\d)?)+\.?(?:\d(?:_\d)?)*|\B\.(?:\d(?:_\d)?)+)(?:[Ee][+-]?(?:\d(?:_\d)?)+)?/,operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),i.languages.javascript["class-name"][0].pattern=/(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/,i.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyus]{0,6}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:i.languages.regex},"regex-flags":/[a-z]+$/,"regex-delimiter":/^\/|\/$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:i.languages.javascript},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,inside:i.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:i.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:i.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),i.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}|(?!\${)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})+}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:i.languages.javascript}},string:/[\s\S]+/}}}),i.languages.markup&&i.languages.markup.tag.addInlined("script","javascript"),i.languages.js=i.languages.javascript,function(e){var t=e.util.clone(e.languages.javascript);e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=/<\/?(?:[\w.:-]+(?:\s+(?:[\w.:$-]+(?:=(?:"(?:\\[^]|[^\\"])*"|'(?:\\[^]|[^\\'])*'|[^\s{'">=]+|\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\}))?|\{\s*\.{3}\s*[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\s*\}))*\s*\/?)?>/i,e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/i,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[^]|[^\\"])*"|'(?:\\[^]|[^\\'])*'|[^\s'">]+)/i,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.insertBefore("inside","attr-name",{spread:{pattern:/\{\s*\.{3}\s*[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\s*\}/,inside:{punctuation:/\.{3}|[{}.]/,"attr-value":/\w+/}}},e.languages.jsx.tag),e.languages.insertBefore("inside","attr-value",{script:{pattern:/=(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])+\})/i,inside:{"script-punctuation":{pattern:/^=(?={)/,alias:"punctuation"},rest:e.languages.jsx},alias:"language-javascript"}},e.languages.jsx.tag);var n=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(n).join(""):""},r=function(t){for(var a=[],i=0;i0&&a[a.length-1].tagName===n(o.content[0].content[1])&&a.pop():"/>"===o.content[o.content.length-1].content||a.push({tagName:n(o.content[0].content[1]),openedBraces:0}):a.length>0&&"punctuation"===o.type&&"{"===o.content?a[a.length-1].openedBraces++:a.length>0&&a[a.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?a[a.length-1].openedBraces--:l=!0),(l||"string"==typeof o)&&a.length>0&&0===a[a.length-1].openedBraces){var s=n(o);i0&&("string"==typeof t[i-1]||"plain-text"===t[i-1].type)&&(s=n(t[i-1])+s,t.splice(i-1,1),i--),t[i]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&r(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||r(e.tokens)}))}(i),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(i),i.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},i.languages.go=i.languages.extend("clike",{string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,number:/(?:\b0x[a-f\d]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[-+]?\d+)?)i?/i,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/}),delete i.languages.go["class-name"],i.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:i.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*)[a-zA-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,punctuation:/[!(){}\[\]:=,]/,constant:/\b(?!ID\b)[A-Z][A-Z_\d]*\b/},function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,i){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof i&&!i(e))return e;for(var a,l=o.length;-1!==n.code.indexOf(a=t(r,l));)++l;return o[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,i=Object.keys(n.tokenStack);!function o(l){for(var s=0;s=i.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=i[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(m+p.length),b=[];h&&b.push.apply(b,o([h])),b.push(g),v&&b.push.apply(b,o([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&o(u.content)}return l}(n.tokens)}}}})}(i),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:true|false)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")}))}(i),i.languages.json={property:{pattern:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},i.languages.webmanifest=i.languages.json,i.languages.less=i.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,operator:/[+\-*\/]/}),i.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),i.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?!\n|\r\n?))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"font-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\r\n]+`/,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+?\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete i.languages.objectivec["class-name"],i.languages.objc=i.languages.objectivec,i.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?[\d_]+)?)/i,directive:{pattern:/\B#\w+/,alias:"important"},label:{pattern:/\B~\w+/,alias:"function"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"variable"},module:{pattern:/\b[A-Z]\w+/,alias:"variable"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/[(){}\[\]|.,:;]|\b_\b/},i.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},i.languages.python["string-interpolation"].inside.interpolation.inside.rest=i.languages.python,i.languages.py=i.languages.python,i.languages.reason=i.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),i.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete i.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/,lookbehind:!0}})}(i),i.languages.scss=i.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),i.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|forward|for|each|while|import|use|extend|debug|warn|mixin|include|function|return|content)\b/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),i.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),i.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|with|show|hide)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),i.languages.scss.atrule.inside.rest=i.languages.scss,i.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:S|ING)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/url\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:rgb|hsl)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:rgb|hsl)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^{|}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(?:\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(i),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},keyword:/\b(?:abstract|as|asserts|async|await|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|is|keyof|let|module|namespace|new|null|of|package|private|protected|public|readonly|return|require|set|static|super|switch|this|throw|try|type|typeof|undefined|var|void|while|with|yield)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\b/}),delete e.languages.typescript.parameter;var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(i),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t);var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(i),i.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^_`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function o(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|]|}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:o(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:o(/true|false/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:o(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:o(i),lookbehind:!0,greedy:!0},number:{pattern:o(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(i),t.Z=i},1239:function(e){e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},go:{title:"Go",require:"clike",owner:"arnehormann"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:"hbs",owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},http:{title:"HTTP",optional:["css","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},matlab:{title:"MATLAB",owner:"Golmote"},mel:{title:"MEL",owner:"Golmote"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},swift:{title:"Swift",require:"clike",owner:"chrischares"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword matched in the code. For example, the keyword if will have the class keyword-if as well. You can have fine grained control over the appearance of each keyword by providing your own CSS rules.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},3682:function(e,t,n){const r=n(1239),a=n(53),i=new Set;function o(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...i,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(o.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(5145).resolve(t)],delete Prism.languages[e],n(5145)(t),i.add(e)}))}o.silent=!1,e.exports=o},5145:function(e,t,n){var r={"./":3682};function a(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=i,e.exports=a,a.id=5145},53:function(e){"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function o(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var o in a(t,i),l[t]=!0,n[t])l[o]=!0}t(s.require,o),t(s.optional,o),t(s.modify,o)}n[r]=l,i.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(i,o,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var i=r[a];t[a]="string"==typeof i?{title:i}:i}}return t}(i),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var i=e[a];t(i&&i.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);o=o.map(u),l=(l||[]).map(u);var c=n(o),d=n(l);o.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var i=a?a.series:void 0,o=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=o(c.map((function(e){var t=u(e);return delete s[e],t})));i?a=i(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return o(d)}(p,c,t,n)}};return w}}();e.exports=t},4712:function(e,t,n){"use strict";var r=n(6514);function a(){}function i(){}i.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,i,o){if(o!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:a};return n.PropTypes=n,n}},8712:function(e,t,n){e.exports=n(4712)()},6514:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},3675:function(e,t,n){"use strict";var r=n(9301),a=n(4126),i=n(3014);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n