mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-09 03:46:16 -08:00
9 lines
77 KiB
JavaScript
9 lines
77 KiB
JavaScript
/*!
|
||
* artplayer.js v3.1.9
|
||
* Github: https://github.com/zhw2590582/ArtPlayer#readme
|
||
* (c) 2017-2019 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=t||self).Artplayer=e()}(this,function(){"use strict";var a=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}var r=function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function t(t,e){return t(e={exports:{}},e.exports),e.exports}var s=t(function(e){function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=i=function(t){return n(t)}:e.exports=i=function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":n(t)},i(t)}e.exports=i});var o=function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t};var c=function(t,e){return!e||"object"!==s(e)&&"function"!=typeof e?o(t):e},l=t(function(e){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},n(t)}e.exports=n}),u=t(function(n){function i(t,e){return n.exports=i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},i(t,e)}n.exports=i});var e=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&u(t,e)},f=t(function(t,e){function s(t){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function c(t){return t.constructor?t.constructor.name:null}function o(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:["option"];for(var i in u(t,e,n),f(t,e,n),d(t,e,n),e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i],a=n.concat(i);if(l(t,i,o,a))continue;u(r,o,a),f(r,o,a),d(r,o,a)}}function l(t,e,n,i){if(!Object.prototype.hasOwnProperty.call(t,e)){if(!0===n.__required__||!0===n.required)throw new TypeError("'".concat(i.join("."),"' is required"));return!0}}function u(t,e,n){var i;if("string"===a(e)?i=e:"function"===a(e)?e.___validator__=e:e.__type__?i=e.__type__:e.type&&(i=e.type),i&&"string"===a(i)){i=i.trim().toLowerCase();var r=a(t),o=r===i;if(-1<i.indexOf("|")&&(o=i.split("|").filter(Boolean).some(function(t){return r===t.trim()})),!o)throw new TypeError("'".concat(n.join("."),"' require '").concat(i,"' type, but got '").concat(r,"'"))}}function f(t,e,n){var i;if(e.___validator__?i=e.___validator__:e.validator&&(i=e.validator),"function"===a(i)){var r=i(n,t,a(t));if(!0!==r)throw new TypeError("The scheme for '".concat(n.join("."),"' validator function require return true, but got '").concat(r,"'"))}}function d(t,e,n){var i;if(e.___child__?i=e.___child__:e.child&&(i=e.child),"object"===a(i)){var r=a(t);"object"===r?o(t,i,n):"array"===r&&t.forEach(function(t,e){o(t,i,n.concat(e))})}}var p,a;t.exports=(p=Object.prototype.toString,o.kindOf=a=function(t){if(void 0===t)return"undefined";if(null===t)return"null";var e,n,i,r,o,a=s(t);if("boolean"===a)return"boolean";if("string"===a)return"string";if("number"===a)return"number";if("symbol"===a)return"symbol";if("function"===a)return"GeneratorFunction"===c(t)?"generatorfunction":"function";if(e=t,Array.isArray?Array.isArray(e):e instanceof Array)return"array";if(function(t){return!(!t.constructor||"function"!=typeof t.constructor.isBuffer)&&t.constructor.isBuffer(t)}(t))return"buffer";if(function(t){try{if("number"==typeof t.length&&"function"==typeof t.callee)return!0}catch(t){if(-1!==t.message.indexOf("callee"))return!0}return!1}(t))return"arguments";if((n=t)instanceof Date||"function"==typeof n.toDateString&&"function"==typeof n.getDate&&"function"==typeof n.setDate)return"date";if((i=t)instanceof Error||"string"==typeof i.message&&i.constructor&&"number"==typeof i.constructor.stackTraceLimit)return"error";if((r=t)instanceof RegExp||"string"==typeof r.flags&&"boolean"==typeof r.ignoreCase&&"boolean"==typeof r.multiline&&"boolean"==typeof r.global)return"regexp";switch(c(t)){case"Symbol":return"symbol";case"Promise":return"promise";case"WeakMap":return"weakmap";case"WeakSet":return"weakset";case"Map":return"map";case"Set":return"set";case"Int8Array":return"int8array";case"Uint8Array":return"uint8array";case"Uint8ClampedArray":return"uint8clampedarray";case"Int16Array":return"int16array";case"Uint16Array":return"uint16array";case"Int32Array":return"int32array";case"Uint32Array":return"uint32array";case"Float32Array":return"float32array";case"Float64Array":return"float64array"}if("function"==typeof(o=t).throw&&"function"==typeof o.return&&"function"==typeof o.next)return"generator";switch(a=p.call(t)){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 a.slice(8,-1).toLowerCase().replace(/\s/g,"")},window.optionValidator=o)}),d=function(){function t(){a(this,t)}return r(t,[{key:"on",value:function(t,e,n){var i=this.e||(this.e={});return(i[t]||(i[t]=[])).push({fn:e,ctx:n}),this}},{key:"once",value:function(i,r,o){var a=this;function s(){a.off(i,s);for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];r.apply(o,e)}return s._=r,this.on(i,s,o)}},{key:"emit",value:function(t){for(var e=((this.e||(this.e={}))[t]||[]).slice(),n=arguments.length,i=new Array(1<n?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];for(var o=0;o<e.length;o+=1)e[o].fn.apply(e[o].ctx,i);return this}},{key:"off",value:function(t,e){var n=this.e||(this.e={}),i=n[t],r=[];if(i&&e)for(var o=0,a=i.length;o<a;o+=1)i[o].fn!==e&&i[o].fn._!==e&&r.push(i[o]);return r.length?n[t]=r:delete n[t],this}}]),t}();var n=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}};var p=function(t){if(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(t))return Array.from(t)};var h=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")};var y=function(t){return n(t)||p(t)||h()};var v=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")},m=t(function(i){function r(t,e,n){return!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}}()?i.exports=r=function(t,e,n){var i=[null];i.push.apply(i,e);var r=new(Function.bind.apply(t,i));return n&&u(r,n.prototype),r}:i.exports=r=Reflect.construct,r.apply(null,arguments)}i.exports=r}),g=function(t){function i(t,e){var n;return a(this,i),n=c(this,l(i).call(this,t)),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(o(n),e||n.constructor),n.name="ArtPlayerError",n}return e(i,t),i}(t(function(e){function i(t){var n="function"==typeof Map?new Map:void 0;return e.exports=i=function(t){if(null===t||!v(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 m(t,arguments,l(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u(e,t)},i(t)}e.exports=i})(Error));function b(t,e){if(!t)throw new g(e);return t}function w(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function x(t,e,n){return Math.max(Math.min(t,Math.max(e,n)),Math.min(e,n))}function k(t){return t.includes("?")?k(t.split("?")[0]):t.includes("#")?k(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function S(t){var e=Math.floor(t/3600),n=Math.floor((t-3600*e)/60),i=Math.floor(t-3600*e-60*n);return(0<e?[e,n,i]:[n,i]).map(function(t){return t<10?"0".concat(t):String(t)}).join(":")}function $(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;return new Promise(function(t){return setTimeout(t,e)})}function L(i,r,o){var a;function t(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];clearTimeout(a),a=setTimeout(function(){a=null,i.apply(o,e)},r)}return t.clearTimeout=function(){clearTimeout(a)},t}function T(r,o){var a,s,c=!1;return function t(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];if(c)return a=n,void(s=this);c=!0,r.apply(this,n),setTimeout(function(){c=!1,a&&(t.apply(s,a),s=a=null)},o)}}function R(){for(var o=function(t){return t&&"object"===s(t)&&!Array.isArray(t)},t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return e.reduce(function(i,r){return Object.keys(r).forEach(function(t){var e=i[t],n=r[t];Array.isArray(e)&&Array.isArray(n)?i[t]=e.concat.apply(e,y(n)):!o(e)||!o(n)||n instanceof Element?i[t]=n:i[t]=R(e,n)}),i},{})}function P(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function E(t){return t.parentNode.removeChild(t)}function j(t,e,n){return t.style[e]=n,t}function O(e,n){return Object.keys(n).forEach(function(t){j(e,t,n[t])}),e}function A(t,e){var n=!(2<arguments.length&&void 0!==arguments[2])||arguments[2],i=window.getComputedStyle(t,null).getPropertyValue(e);return n?parseFloat(i):i}function C(e){return Array.from(e.parentElement.children).filter(function(t){return t!==e})}function M(t,e){C(t).forEach(function(t){return t.classList.remove(e)}),t.classList.add(e)}function q(t,e){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"up";t.setAttribute("data-balloon",e),t.setAttribute("data-balloon-pos",n)}function z(t){return"WEBVTT \r\n\r\n".concat(t.replace(/\{\\([ibu])\}/g,"</$1>").replace(/\{\\([ibu])1\}/g,"<$1>").replace(/\{([ibu])\}/g,"<$1>").replace(/\{\/([ibu])\}/g,"</$1>").replace(/(\d\d:\d\d:\d\d),(\d\d\d)/g,"$1.$2").concat("\r\n\r\n"))}function W(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function _(t,e){var n=document.createElement("a");j(n,"display","none"),n.href=t,n.download=e,document.body.appendChild(n),n.click(),document.body.removeChild(n)}var F=Object.freeze({errorHandle:b,hasOwnProperty:w,clamp:x,getExt:k,secondToTime:S,sleep:$,debounce:L,throttle:T,mergeDeep:R,append:P,remove:E,setStyle:j,setStyles:O,getStyle:A,sublings:C,inverseClass:M,tooltip:q,srtToVtt:z,vttToBlob:W,downloadFile:_});function H(t,e,n){return b("string"===n||e instanceof Element,"".concat(t.join(".")," require 'string' or 'Element' type"))}function B(t){var e=this;a(this,B);var n=t.constructor.kindOf,i=t.option.whitelist;this.userAgent=window.navigator.userAgent,this.isMobile=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(this.userAgent),this.state=!this.isMobile||i.some(function(t){switch(n(t)){case"string":return-1<e.userAgent.indexOf(t);case"function":return t(e.userAgent);case"regexp":return t.test(e.userAgent);default:return!1}})}var I={container:{validator:H,required:!0},url:{type:"string|function",required:!0},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",fullscreen:"boolean",fullscreenWeb:"boolean",plugins:{type:"array",child:{type:"function"}},whitelist:{type:"array",child:{type:"string|function|regexp"}},layers:{type:"array",child:{type:"object|function",disable:"boolean",name:"string",index:"number",html:H,style:"object",click:"function",mounted:"function"}},contextmenu:{type:"array",child:{type:"object|function",disable:"boolean",name:"string",index:"number",html:H,style:"object",click:"function",mounted:"function"}},quality:{type:"array",child:{default:"boolean",name:"string",url:"string"}},controls:{type:"array",child:{type:"object|function",disable:"boolean",name:"string",index:"number",html:H,style:"object",click:"function",mounted:"function",position:function(t,e){var n=["top","left","right"];return b(n.includes(e),"".concat(t.join(".")," only accept ").concat(n.toString()," as parameters"))}}},highlight:{type:"array",child:{type:"object",time:"number",text:"string"}},thumbnails:{type:"object",child:{url:"string",number:"number",width:"number",height:"number",column:"number"}},subtitle:{type:"object",child:{url:"string",style:"object"}},moreVideoAttr:"object",icons:"object",customType:"object"},V={mimeCodec:{mp4:'video/mp4; codecs="avc1.42E01E, mp4a.40.2"',webm:'video/webm; codecs="vorbis, vp8"',ts:'video/mp2t; codecs="avc1.42E01E, mp4a.40.2"'},mse:{mediaSource:{propertys:["activeSourceBuffers","duration","readyState","sourceBuffers"],methods:["addSourceBuffer","endOfStream","removeSourceBuffer","clearLiveSeekableRange","setLiveSeekableRange"],events:["sourceclose","sourceended","sourceopen"]},sourceBuffer:{propertys:["mode","updating","buffered","timestampOffset","audioTracks","videoTracks","textTracks","appendWindowStart","appendWindowEnd","trackDefaults"],methods:["appendBuffer","appendStream","abort","remove"],events:["abort","error","update","updateend","updatestart"]},sourceBufferList:{propertys:["length"],events:["addsourcebuffer","removesourcebuffer"]}},video:{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"]}},N=function(){function n(t){var e=this;a(this,n),(this.art=t).option.container instanceof Element?this.$container=t.option.container:(this.$container=document.querySelector(t.option.container),b(this.$container,"No container element found by ".concat(t.option.container))),t.constructor.instances.some(function(t){return t.template.$container===e.$container})&&b(!1,"Cannot mount multiple instances on the same dom element"),t.whitelist.state?this.initDesktop():this.initMobile()}return r(n,[{key:"initDesktop",value:function(){this.$container.innerHTML='\n <div class="artplayer-video-player" style="--theme: '.concat(this.art.option.theme,'">\n <video class="artplayer-video"></video>\n <div class="artplayer-subtitle"></div>\n <div class="artplayer-danmuku"></div>\n <div class="artplayer-layers"></div>\n <div class="artplayer-mask"></div>\n <div class="artplayer-bottom">\n <div class="artplayer-progress"></div>\n <div class="artplayer-controls">\n <div class="artplayer-controls-left"></div>\n <div class="artplayer-controls-right"></div>\n </div>\n </div>\n <div class="artplayer-loading"></div>\n <div class="artplayer-notice">\n <div class="artplayer-notice-inner"></div>\n </div>\n <div class="artplayer-setting">\n <div class="artplayer-setting-inner">\n <div class="artplayer-setting-body"></div>\n </div>\n </div>\n <div class="artplayer-info">\n <div class="artplayer-info-panel"></div>\n <div class="artplayer-info-close">[x]</div>\n </div>\n <div class="artplayer-pip-header">\n <div class="artplayer-pip-title"></div>\n <div class="artplayer-pip-close">×</div>\n </div>\n <div class="artplayer-contextmenu"></div>\n </div>\n '),this.$player=this.$container.querySelector(".artplayer-video-player"),this.$video=this.$container.querySelector(".artplayer-video"),this.$subtitle=this.$container.querySelector(".artplayer-subtitle"),this.$danmuku=this.$container.querySelector(".artplayer-danmuku"),this.$bottom=this.$container.querySelector(".artplayer-bottom"),this.$progress=this.$container.querySelector(".artplayer-progress"),this.$controls=this.$container.querySelector(".artplayer-controls"),this.$controlsLeft=this.$container.querySelector(".artplayer-controls-left"),this.$controlsRight=this.$container.querySelector(".artplayer-controls-right"),this.$layers=this.$container.querySelector(".artplayer-layers"),this.$loading=this.$container.querySelector(".artplayer-loading"),this.$notice=this.$container.querySelector(".artplayer-notice"),this.$noticeInner=this.$container.querySelector(".artplayer-notice-inner"),this.$mask=this.$container.querySelector(".artplayer-mask"),this.$setting=this.$container.querySelector(".artplayer-setting"),this.$settingInner=this.$container.querySelector(".artplayer-setting-inner"),this.$settingBody=this.$container.querySelector(".artplayer-setting-body"),this.$info=this.$container.querySelector(".artplayer-info"),this.$infoPanel=this.$container.querySelector(".artplayer-info-panel"),this.$infoClose=this.$container.querySelector(".artplayer-info-close"),this.$pipHeader=this.$container.querySelector(".artplayer-pip-header"),this.$pipTitle=this.$container.querySelector(".artplayer-pip-title"),this.$pipClose=this.$container.querySelector(".artplayer-pip-close"),this.$contextmenu=this.$container.querySelector(".artplayer-contextmenu")}},{key:"initMobile",value:function(){this.$container.innerHTML='\n <div class="artplayer-video-player">\n <video class="artplayer-video"></video>\n </div>\n ',this.$player=this.$container.querySelector(".artplayer-video-player"),this.$video=this.$container.querySelector(".artplayer-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":this.$player.classList.add("artplayer-destroy")}}]),n}(),D={"About author":"关于作者","Video info":"视频统计信息",Close:"关闭","Video load failed":"视频加载失败",Volume:"音量",Play:"播放",Pause:"暂停",Rate:"速度",Mute:"静音",Flip:"视频翻转",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新连接","Hide subtitle":"隐藏字幕","Show subtitle":"显示字幕","Hide danmu":"隐藏弹幕","Show danmu":"显示弹幕","Show setting":"显示设置","Hide setting":"隐藏设置",Screenshot:"截图","Play speed":"播放速度","Aspect ratio":"画面比例",Default:"默认",Normal:"正常","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","This does not seem to support full screen functionality":"似乎不支持全屏功能"},U={"About author":"關於作者","Video info":"影片統計訊息",Close:"關閉","Video load failed":"影片載入失敗",Volume:"音量",Play:"播放",Pause:"暫停",Rate:"速度",Mute:"靜音",Flip:"影片翻轉",Horizontal:"水平",Vertical:"垂直",Reconnect:"重新連接","Hide subtitle":"隱藏字幕","Show subtitle":"顯示字幕","Show setting":"顯示设置","Hide setting":"隱藏设置","Hide danmu":"隱藏彈幕","Show danmu":"顯示彈幕",Screenshot:"截圖","Play speed":"播放速度","Aspect ratio":"畫面比例",Default:"默認",Normal:"正常","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","This does not seem to support full screen functionality":"似乎不支持全屏功能"},X=function(){function e(t){a(this,e),this.art=t,this.languages={"zh-cn":D,"zh-tw":U},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=R(this.languages,t),this.init()}}]),e}();var Y=t(function(t){var o,e,r,a,i,n;o="undefined"!=typeof window&&void 0!==window.document?window.document:{},e=t.exports,r="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,a=function(){for(var t,e=[["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,i=e.length,r={};n<i;n++)if((t=e[n])&&t[1]in o){for(n=0;n<t.length;n++)r[e[0][n]]=t[n];return r}return!1}(),i={change:a.fullscreenchange,error:a.fullscreenerror},n={request:function(i){return new Promise(function(t){var e=a.requestFullscreen,n=function(){this.off("change",n),t()}.bind(this);i=i||o.documentElement,/ Version\/5\.1(?:\.\d+)? Safari\//.test(navigator.userAgent)?i[e]():i[e](r?Element.ALLOW_KEYBOARD_INPUT:{}),this.on("change",n)}.bind(this))},exit:function(){return new Promise(function(t){if(this.isFullscreen){var e=function(){this.off("change",e),t()}.bind(this);o[a.exitFullscreen](),this.on("change",e)}else t()}.bind(this))},toggle:function(t){return this.isFullscreen?this.exit():this.request(t)},onchange:function(t){this.on("change",t)},onerror:function(t){this.on("error",t)},on:function(t,e){var n=i[t];n&&o.addEventListener(n,e,!1)},off:function(t,e){var n=i[t];n&&o.removeEventListener(n,e,!1)},raw:a},a?(Object.defineProperties(n,{isFullscreen:{get:function(){return Boolean(o[a.fullscreenElement])}},element:{enumerable:!0,get:function(){return o[a.fullscreenElement]}},enabled:{enumerable:!0,get:function(){return Boolean(o[a.fullscreenEnabled])}}}),e?(t.exports=n,t.exports.default=n):window.screenfull=n):e?t.exports=!1:window.screenfull=!1});function Z(t,e){var n=t.template.$video;document.pictureInPictureEnabled?function(t,e){var n=t.notice,i=t.template.$video,r=t.events.proxy;i.disablePictureInPicture=!1,Object.defineProperty(e,"pip",{get:function(){return document.pictureInPictureElement},set:function(t){t?i.requestPictureInPicture().catch(function(t){n.show(t,!0,3e3),console.warn(t)}):document.exitPictureInPicture().catch(function(t){n.show(t,!0,3e3),console.warn(t)})}}),r(i,"enterpictureinpicture",function(){t.emit("pipEnabled")}),r(i,"leavepictureinpicture",function(){t.emit("pipExit")}),t.on("destroy",function(){e.pip&&(e.pip=!1)})}(t,e):n.webkitSupportsPresentationMode&&"function"==typeof n.webkitSetPresentationMode?function(e,t){var n=e.template.$video;n.webkitSetPresentationMode("inline"),Object.defineProperty(t,"pip",{get:function(){return"picture-in-picture"===n.webkitPresentationMode},set:function(t){t?(n.webkitSetPresentationMode("picture-in-picture"),e.emit("pipEnabled")):(n.webkitSetPresentationMode("inline"),e.emit("pipExit"))}})}(t,e):function(n,i){var t=n.option,e=n.i18n,r=n.template,o=r.$player,a=r.$pipClose,s=r.$pipTitle,c=r.$pipHeader,l=n.events.proxy,u="",f=!1,d=0,p=0,h=0,y=0;l(c,"mousedown",function(t){f=!0,d=t.pageX,p=t.pageY,h=i.left,y=i.top}),l(c,"mousemove",function(t){f&&(o.classList.add("is-dragging"),j(o,"left","".concat(h+t.pageX-d,"px")),j(o,"top","".concat(y+t.pageY-p,"px")))}),l(document,"mouseup",function(){f=!1,o.classList.remove("is-dragging")}),l(a,"click",function(){i.pip=!1,f=!1,o.classList.remove("is-dragging")}),P(s,t.title||e.get("Mini player")),Object.defineProperty(i,"pip",{get:function(){return o.classList.contains("artplayer-pip")},set:function(t){if(t){i.autoSize=!1,u=o.style.cssText,o.classList.add("artplayer-pip");var e=document.body;j(o,"top","".concat(e.clientHeight-i.height-50,"px")),j(o,"left","".concat(e.clientWidth-i.width-50,"px")),i.fullscreen=!1,i.fullscreenWeb=!1,i.aspectRatio=!1,i.playbackRate=!1,n.emit("pipEnabled")}else i.pip&&(o.style.cssText=u,o.classList.remove("artplayer-pip"),j(o,"top",null),j(o,"left",null),i.fullscreen=!1,i.fullscreenWeb=!1,i.aspectRatio=!1,i.playbackRate=!1,i.autoSize=!0,n.emit("pipExit"))}})}(t,e),Object.defineProperty(e,"pipToggle",{set:function(t){t&&(e.pip=!e.pip)}})}function J(t){a(this,J),function(i,t){var e=i.option,r=e.type,o=e.customType,a=i.template.$video;Object.defineProperty(t,"attachUrl",{value:function(n){return $().then(function(){function e(t){var e=r||k(t),n=o[e];return e&&n?(i.loading.show=!0,i.emit("beforeCustomType",e),n.call(i,a,t,i),i.emit("afterCustomType",e)):(i.emit("beforeAttachUrl",t),a.src=t,i.emit("afterAttachUrl",t)),Promise.resolve(t)}if("function"!=typeof n)return e(n);var t=n.call(i);return b("function"==typeof t.then,"If url is a function, it needs to return a promise."),t.then(function(t){return i.loading.show=!0,e(t)})})}})}(t,this),function(e,t){var n=e.option,i=e.events.proxy,r=e.template,o=r.$player,a=r.$video,s=e.i18n,c=e.notice,l=0;i(a,"click",function(){t.toggle=!0}),V.video.events.forEach(function(t){i(a,t,function(t){e.emit("video:".concat(t.type),t)})}),e.on("video:canplay",function(){l=0,e.controls.show=!0,e.mask.show=!0,e.loading.show=!1}),e.on("video:ended",function(){e.controls.show=!0,e.mask.show=!0,n.loop&&(t.seek=0,t.play=!0)}),e.on("video:error",function(){l<5?$(1e3).then(function(){l+=1,t.attachUrl(n.url),c.show("".concat(s.get("Reconnect"),": ").concat(l))}):(e.loading.show=!1,e.controls.show=!1,o.classList.add("artplayer-error"),$(1e3).then(function(){c.show(s.get("Video load failed"),!1),e.destroy()}))}),e.on("video:loadedmetadata",function(){n.autoSize&&(t.autoSize=!0)}),e.on("video:loadstart",function(){e.loading.show=!0}),e.on("video:pause",function(){e.controls.show=!0,e.mask.show=!0}),e.on("video:play",function(){e.mask.show=!1}),e.on("video:playing",function(){e.mask.show=!1}),e.on("video:seeked",function(){e.loading.show=!1}),e.on("video:seeking",function(){e.loading.show=!0}),e.on("video:timeupdate",function(){e.mask.show=!1}),e.on("video:waiting",function(){e.loading.show=!0})}(t,this),function(t,e){var n=t.option,i=t.template.$video;Object.keys(n.moreVideoAttr).forEach(function(t){i[t]=n.moreVideoAttr[t]}),n.muted&&(i.muted=n.muted),n.volume&&(i.volume=x(n.volume,0,1)),n.poster&&(i.poster=n.poster),n.autoplay&&(i.autoplay=n.autoplay),e.attachUrl(n.url)}(t,this),function(n,i){var r=n.template.$video,o=n.i18n,a=n.notice,s=n.option.mutex;Object.defineProperty(i,"play",{set:function(t){if(t){var e=r.play();void 0!==e&&e.then().catch(function(t){a.show(t,!0,3e3),console.warn(t)}),s&&n.constructor.instances.filter(function(t){return t!==n}).forEach(function(t){t.player.pause=!0}),a.show(o.get("Play")),n.emit("play")}else i.pause=!0}})}(t,this),function(e,n){var i=e.template.$video,r=e.i18n,o=e.notice;Object.defineProperty(n,"pause",{get:function(){return i.paused},set:function(t){t?(i.pause(),o.show(r.get("Pause")),e.emit("pause")):n.play=!0}})}(t,this),function(t,e){Object.defineProperty(e,"toggle",{set:function(t){t&&(e.playing?e.pause=!0:e.play=!0)}})}(0,this),function(e,n){var i=e.notice;Object.defineProperty(n,"seek",{set:function(t){n.currentTime=t,i.show("".concat(S(t)," / ").concat(S(n.duration))),e.emit("seek",t)}})}(t,this),function(e,t){var n=e.template.$video,i=e.i18n,r=e.notice,o=e.storage;Object.defineProperty(t,"volume",{get:function(){return n.volume||0},set:function(t){n.volume=x(t,0,1),r.show("".concat(i.get("Volume"),": ").concat(parseInt(100*n.volume,10))),0!==n.volume&&o.set("volume",n.volume),e.emit("volumeChange",n.volume)}}),Object.defineProperty(t,"muted",{get:function(){return n.muted},set:function(t){n.muted=t,e.emit("volumeChange",n.volume)}})}(t,this),function(e,n){Object.defineProperty(n,"currentTime",{get:function(){return e.template.$video.currentTime||0},set:function(t){e.template.$video.currentTime=x(t,0,n.duration)}})}(t,this),function(t,e){Object.defineProperty(e,"duration",{get:function(){return t.template.$video.duration||0}})}(t,this),function(r,o){var a=r.i18n,s=r.notice,c=r.option;Object.defineProperty(o,"switchQuality",{value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"unknown";if(t===c.url)return null;var n=o.currentTime,i=o.playing;return o.attachUrl(t).then(function(){c.url=t,o.playbackRate=!1,o.aspectRatio=!1,r.once("video:canplay",function(){o.currentTime=n}),i&&(o.play=!0),s.show("".concat(a.get("Switch video"),": ").concat(e)),r.emit("switch",t)})}}),Object.defineProperty(o,"switchUrl",{value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"unknown";if(t===c.url)return null;var n=o.playing;return o.attachUrl(t).then(function(){c.url=t,o.playbackRate=!1,o.aspectRatio=!1,o.currentTime=0,n&&(o.play=!0),s.show("".concat(a.get("Switch video"),": ").concat(e)),r.emit("switch",t)})}})}(t,this),function(n,i){var t=n.template,r=t.$video,o=t.$player,a=n.i18n,s=n.notice;Object.defineProperty(i,"playbackRate",{get:function(){return o.dataset.playbackRate},set:function(t){if(t){var e=[.5,.75,1,1.25,1.5,1.75,2];if(b(e.includes(t),"'playbackRate' only accept ".concat(e.toString()," as parameters")),t===o.dataset.playbackRate)return;r.playbackRate=t,o.dataset.playbackRate=t,s.show("".concat(a.get("Rate"),": ").concat(1===t?a.get("Normal"):"".concat(t,"x"))),n.emit("playbackRateChange",t)}else i.playbackRate&&(i.playbackRate=1,delete o.dataset.playbackRate,n.emit("playbackRateRemove"))}}),Object.defineProperty(i,"playbackRateReset",{set:function(t){if(t){var e=o.dataset.playbackRate;e&&(i.playbackRate=Number(e),n.emit("playbackRateReset"))}}})}(t,this),function(f,d){var t=f.template,p=t.$video,h=t.$player,y=f.i18n,v=f.notice;Object.defineProperty(d,"aspectRatio",{get:function(){return h.dataset.aspectRatio||""},set:function(t){if(t){var e=["default","4:3","16:9"];if(b(e.includes(t),"'aspectRatio' only accept ".concat(e.toString()," as parameters")),"default"===t)d.aspectRatio=!1;else{var n=t.split(":"),i=p.videoWidth,r=p.videoHeight,o=h.clientWidth,a=h.clientHeight,s=i/r,c=n[0]/n[1];if(c<s){var l=c*r/i;j(p,"width","".concat(100*l,"%")),j(p,"height","100%"),j(p,"padding","0 ".concat((o-o*l)/2,"px"))}else{var u=i/c/r;j(p,"width","100%"),j(p,"height","".concat(100*u,"%")),j(p,"padding","".concat((a-a*u)/2,"px 0"))}}h.dataset.aspectRatio=t,v.show("".concat(y.get("Aspect ratio"),": ").concat("default"===t?y.get("Default"):t)),f.emit("aspectRatioChange",t)}else d.aspectRatio&&(j(p,"width",null),j(p,"height",null),j(p,"padding",null),delete h.dataset.aspectRatio,f.emit("aspectRatioRemove"))}}),Object.defineProperty(d,"aspectRatioReset",{set:function(t){t&&d.aspectRatio&&(d.aspectRatio=d.aspectRatio,f.emit("aspectRatioReset"))}})}(t,this),function(e,n){var i=e.option,r=e.notice,o=e.template.$video;Object.defineProperty(n,"getScreenshotDataURL",{value:function(){try{var t=document.createElement("canvas");return t.width=o.videoWidth,t.height=o.videoHeight,t.getContext("2d").drawImage(o,0,0),t.toDataURL("image/png")}catch(t){return r.show(t),console.warn(t),null}}}),Object.defineProperty(n,"getScreenshotBlobUrl",{value:function(){return new Promise(function(e,n){try{var t=document.createElement("canvas");t.width=o.videoWidth,t.height=o.videoHeight,t.getContext("2d").drawImage(o,0,0),t.toBlob(function(t){e(URL.createObjectURL(t))})}catch(t){r.show(t),n(t)}})}}),Object.defineProperty(n,"screenshot",{value:function(){var t=n.getScreenshotDataURL();t&&(_(t,"".concat(i.title||"artplayer","_").concat(S(o.currentTime),".png")),e.emit("screenshot",t))}})}(t,this),function(e,n){function t(){e.emit("fullscreen:change",Y.isFullscreen)}function i(){o.show(r.get("This does not seem to support full screen functionality"))}var r=e.i18n,o=e.notice,a=e.events.destroyEvents,s=e.template.$player;try{Y.on("change",t),Y.on("error",i),a.push(function(){Y.off("change",t),Y.off("error",i)})}catch(t){i()}Object.defineProperty(n,"fullscreen",{get:function(){return Y.isFullscreen},set:function(t){t?(n.fullscreenWeb&&(n.fullscreenWeb=!1),Y.request(s).then(function(){s.classList.add("artplayer-fullscreen"),n.aspectRatioReset=!0,e.emit("fullscreen:enabled")})):(n.fullscreenWeb&&(n.fullscreenWeb=!1),Y.exit().then(function(){s.classList.remove("artplayer-fullscreen"),n.aspectRatioReset=!0,e.emit("fullscreen:exit")}))}}),Object.defineProperty(n,"fullscreenToggle",{set:function(t){t&&(n.fullscreen=!n.fullscreen)}})}(t,this),function(e,n){var i=e.template.$player;Object.defineProperty(n,"fullscreenWeb",{get:function(){return i.classList.contains("artplayer-web-fullscreen")},set:function(t){t?(n.fullscreen&&(n.fullscreen=!1),i.classList.add("artplayer-web-fullscreen"),n.aspectRatioReset=!0,e.emit("fullscreenWeb:enabled")):(n.fullscreen&&(n.fullscreen=!1),i.classList.remove("artplayer-web-fullscreen"),n.aspectRatioReset=!0,e.emit("fullscreenWeb:exit"))}}),Object.defineProperty(n,"fullscreenWebToggle",{set:function(t){t&&(n.fullscreenWeb=!n.fullscreenWeb)}})}(t,this),Z(t,this),function(t,e){var n=t.template.$video;Object.defineProperty(e,"loaded",{get:function(){return n.buffered.length?n.buffered.end(n.buffered.length-1)/n.duration:0}})}(t,this),function(t,e){Object.defineProperty(e,"played",{get:function(){return t.template.$video.currentTime/t.template.$video.duration}})}(t,this),function(t,e){var n=t.template.$video;Object.defineProperty(e,"playing",{get:function(){return!!(0<n.currentTime&&!n.paused&&!n.ended&&2<n.readyState)}})}(t,this),function(l,t){var e=l.template,u=e.$container,f=e.$player,d=e.$video;Object.defineProperty(t,"autoSize",{get:function(){return u.classList.contains("artplayer-auto-size")},set:function(t){if(t){var e=d.videoWidth,n=d.videoHeight,i=u.getBoundingClientRect(),r=i.width,o=i.height,a=e/n,s=r/o;if(u.classList.add("artplayer-auto-size"),a<s)j(f,"width","".concat(o*a/r*100,"%")),j(f,"height","100%");else{var c=r/a/o*100;j(f,"width","100%"),j(f,"height","".concat(c,"%"))}l.emit("autoSizeChange")}else u.classList.remove("artplayer-auto-size"),j(f,"width",null),j(f,"height",null),l.emit("autoSizeRemove")}})}(t,this),function(t,e){Object.defineProperty(e,"rect",{get:function(){return t.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach(function(t){Object.defineProperty(e,t,{get:function(){return e.rect[t]}})}),Object.defineProperty(e,"x",{get:function(){return e.left+window.pageXOffset}}),Object.defineProperty(e,"y",{get:function(){return e.top+window.pageYOffset}})}(t,this),function(n,t){Object.defineProperty(t,"flip",{get:function(){return n.template.$player.dataset.flip},set:function(t){if(t){var e=["normal","horizontal","vertical"];b(e.includes(t),"'flip' only accept ".concat(e.toString()," as parameters")),n.template.$player.dataset.flip=t,n.emit("flipChange",t)}else delete n.template.$player.dataset.flip,n.emit("flipRemove")}})}(t,this)}function G(e,n,t,i,r,o){var a="function"==typeof i?i(e):i;if(a.disable)return null;var s=a.name||"".concat(o).concat(n.id);b(!w(n,s),"Cannot create a component that already has the same name: ".concat(o," -> ").concat(s));var c=document.createElement("div");c.classList.value="art-".concat(o," art-").concat(o,"-").concat(s),a.html&&P(c,a.html),a.style&&O(c,a.style);var l=Array.from(t.children);c.dataset.index=a.index||n.id;var u=l.find(function(t){return Number(t.dataset.index)>=Number(c.dataset.index)});return u?u.insertAdjacentElement("beforebegin",c):P(t,c),a.click&&e.events.proxy(c,"click",function(t){t.preventDefault(),a.click.call(n,t,e),e.emit("".concat(o,":click"),c)}),a.mounted&&a.mounted(c,n,e),r&&r(c,n,e),Object.defineProperty(n,s,{value:{get id(){return n.id},get $ref(){return c},set show(t){t?(j(c,"display","block"),e.emit("".concat(o,":show"),c)):(j(c,"display","none"),e.emit("".concat(o,":hide"),c))},set remove(t){t&&(E(c),e.emit("".concat(o,":remove"),c))}}}),e.emit("".concat(o,":add"),a),n[s]}var K=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t};var Q=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),i.forEach(function(t){K(e,t,n[t])})}return e};function tt(t,e){var n=t.template.$progress,i=t.player,r=n.getBoundingClientRect().left,o=x(e.pageX-r,0,n.clientWidth),a=o/n.clientWidth*i.duration;return{second:a,time:S(a),width:o,percentage:x(o/n.clientWidth,0,1)}}function et(i){return function(u){var t=u.option,e=t.highlight,n=t.theme,f=u.events.proxy,d=u.player;return Q({},i,{html:'\n <div class="art-control-progress-inner">\n <div class="art-progress-loaded"></div>\n <div class="art-progress-played" style="background: '.concat(n,'"></div>\n <div class="art-progress-highlight"></div>\n <div class="art-progress-indicator" style="background: ').concat(n,'"></div>\n <div class="art-progress-tip art-tip"></div>\n </div>\n '),mounted:function(o){var r=!1,n=o.querySelector(".art-progress-loaded"),i=o.querySelector(".art-progress-played"),a=o.querySelector(".art-progress-highlight"),s=o.querySelector(".art-progress-indicator"),c=o.querySelector(".art-progress-tip");function l(t,e){"loaded"===t&&j(n,"width","".concat(100*e,"%")),"played"===t&&(j(i,"width","".concat(100*e,"%")),j(s,"left","calc(".concat(100*e,"% - ").concat(A(s,"width")/2,"px)")))}e.forEach(function(t){var e=x(t.time,0,d.duration)/d.duration*100;P(a,'<span data-text="'.concat(t.text,'" data-time="').concat(t.time,'" style="left: ').concat(e,'%"></span>'))}),l("loaded",d.loaded),u.on("video:progress",function(){l("loaded",d.loaded)}),u.on("video:timeupdate",function(){l("played",d.played)}),u.on("video:ended",function(){l("played",1)}),f(o,"mousemove",function(t){j(c,"display","block"),-1<t.composedPath().indexOf(a)?function(t){var e=tt(u,t).width,n=t.target.dataset.text;c.innerHTML=n;var i=c.clientWidth;e<=i/2?j(c,"left",0):e>o.clientWidth-i/2?j(c,"left","".concat(o.clientWidth-i,"px")):j(c,"left","".concat(e-i/2,"px"))}(t):function(t){var e=tt(u,t),n=e.width,i=e.time;c.innerHTML=i;var r=c.clientWidth;n<=r/2?j(c,"left",0):n>o.clientWidth-r/2?j(c,"left","".concat(o.clientWidth-r,"px")):j(c,"left","".concat(n-r/2,"px"))}(t)}),f(o,"mouseout",function(){j(c,"display","none")}),f(o,"click",function(t){if(t.target!==s){var e=tt(u,t),n=e.second;l("played",e.percentage),d.seek=n}}),f(s,"mousedown",function(){r=!0}),f(document,"mousemove",function(t){if(r){var e=tt(u,t),n=e.second,i=e.percentage;s.classList.add("art-show-indicator"),l("played",i),d.seek=n}}),f(document,"mouseup",function(){r&&(r=!1,s.classList.remove("art-show-indicator"))})}})}}function nt(t){return function(h){return Q({},t,{mounted:function(d){var p=h.template.$progress,t=h.events,e=t.proxy,n=t.loadImg,i=!1,r=!1;e(p,"mousemove",function(t){i||(i=!0,n(h.option.thumbnails.url).then(function(){r=!0})),r&&(j(d,"display","block"),function(t){var e=tt(h,t).width,n=h.option.thumbnails,i=n.url,r=n.height,o=n.width,a=n.number,s=n.column,c=p.clientWidth/a,l=Math.floor(e/c),u=Math.ceil(l/s)-1,f=l%s||s-1;j(d,"backgroundImage","url(".concat(i,")")),j(d,"height","".concat(r,"px")),j(d,"width","".concat(o,"px")),j(d,"backgroundPosition","-".concat(f*o,"px -").concat(u*r,"px")),e<=o/2?j(d,"left",0):e>p.clientWidth-o/2?j(d,"left","".concat(p.clientWidth-o,"px")):j(d,"left","".concat(e-o/2,"px"))}(t))}),e(p,"mouseout",function(){j(d,"display","none")})}})}}var it=function(){function n(t){var e=this;a(this,n),this.id=0,this.art=t,this.art.once("video:canplay",function(){e.init()})}return r(n,[{key:"init",value:function(){var e=this,t=this.art.option;this.add(et({name:"progress",disable:t.isLive,position:"top",index:10})),this.add(nt({name:"thumbnails",disable:!t.thumbnails.url||t.isLive,position:"top",index:20})),this.add(function(t){return function(l){return Q({},t,{mounted:function(t){var e=l.events.proxy,n=l.icons,i=l.i18n,r=l.player,o=P(t,n.play),a=P(t,n.pause);function s(){j(o,"display","flex"),j(a,"display","none")}function c(){j(o,"display","none"),j(a,"display","flex")}q(o,i.get("Play")),q(a,i.get("Pause")),e(o,"click",function(){r.play=!0}),e(a,"click",function(){r.pause=!0}),r.playing?c():s(),l.on("video:playing",function(){c()}),l.on("video:pause",function(){s()})}})}}({name:"playAndPause",disable:!1,position:"left",index:10})),this.add(function(t){return function(d){return Q({},t,{mounted:function(t){var e=d.events.proxy,n=d.icons,i=d.player,r=d.i18n,o=!1,a=P(t,n.volume),s=P(t,n.volumeClose),c=P(t,'<div class="art-volume-panel"></div>'),l=P(c,'<div class="art-volume-slider-handle"></div>');function u(t){var e=c.getBoundingClientRect(),n=e.left,i=e.width,r=l.getBoundingClientRect().width;return x(t.pageX-n-r/2,0,i-r/2)/(i-r)}function f(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:.7;if(i.muted||0===t)j(a,"display","none"),j(s,"display","flex"),j(l,"left","0");else{var e=((A(c,"width")||60)-A(l,"width"))*t;j(a,"display","flex"),j(s,"display","none"),j(l,"left","".concat(e,"px"))}}q(a,r.get("Mute")),j(s,"display","none"),f(i.volume),d.on("video:volumechange",function(){f(i.volume)}),e(a,"click",function(){i.muted=!0}),e(s,"click",function(){i.muted=!1}),e(c,"click",function(t){i.muted=!1,i.volume=u(t)}),e(l,"mousedown",function(){o=!0}),e(l,"mousemove",function(t){o&&(i.muted=!1,i.volume=u(t))}),e(document,"mouseup",function(){o&&(o=!1)})}})}}({name:"volume",disable:!1,position:"left",index:20})),this.add(function(t){return function(i){return Q({},t,{mounted:function(e){function n(){var t="".concat(S(i.player.currentTime)," / ").concat(S(i.player.duration));t!==e.innerHTML&&(e.innerHTML=t)}n(),["video:loadedmetadata","video:timeupdate","video:progress"].forEach(function(t){i.on(t,n)})}})}}({name:"time",disable:t.isLive,position:"left",index:30})),this.add(function(t){return function(r){return Q({},t,{mounted:function(t){var o=r.option,e=r.events.proxy,a=r.player,s=-1,n=o.quality.find(function(t){return t.default})||o.quality[0];s=o.quality.indexOf(n);var c=P(t,'<div class="art-quality-name">'.concat(n.name,"</div>")),i=o.quality.map(function(t,e){return'<div class="art-quality-item" data-index="'.concat(e,'">').concat(t.name,"</div>")}).join("");e(P(t,'<div class="art-qualitys">'.concat(i,"</div>")),"click",function(t){var e=Number(t.target.dataset.index),n=o.quality[e],i=n.url,r=n.name;i&&r&&s!==e&&(a.switchQuality(i,r),c.innerHTML=r,s=e)})}})}}({name:"quality",disable:0===t.quality.length,position:"right",index:10})),this.add(function(t){return function(a){return Q({},t,{mounted:function(t){var e=a.events.proxy,n=a.icons,i=a.i18n,r=a.player,o=P(t,n.screenshot);q(o,i.get("Screenshot")),e(o,"click",function(){r.screenshot()})}})}}({name:"screenshot",disable:!t.screenshot,position:"right",index:20})),this.add(function(t){return function(a){return Q({},t,{mounted:function(t){var e=a.events.proxy,n=a.icons,i=a.i18n,r=a.subtitle,o=P(t,n.subtitle);q(o,i.get("Hide subtitle")),e(t,"click",function(){r.toggle()}),a.on("subtitle:show",function(){j(o,"opacity","1"),q(o,i.get("Hide subtitle"))}),a.on("subtitle:hide",function(){j(o,"opacity","0.8"),q(o,i.get("Show subtitle"))})}})}}({name:"subtitle",disable:!t.subtitle.url,position:"right",index:30})),this.add(function(t){return function(a){return Q({},t,{mounted:function(t){var e=a.events.proxy,n=a.icons,i=a.i18n,r=a.setting,o=P(t,n.setting);q(o,i.get("Show setting")),e(t,"click",function(){r.toggle()}),a.on("setting:show",function(){j(o,"opacity","0.8"),q(o,i.get("Hide setting"))}),a.on("setting:hide",function(){j(o,"opacity","1"),q(o,i.get("Show setting"))})}})}}({name:"setting",disable:!t.setting,position:"right",index:40})),this.add(function(t){return function(o){return Q({},t,{mounted:function(t){var e=o.events.proxy,n=o.icons,i=o.i18n,r=o.player;q(P(t,n.pip),i.get("Mini player")),e(t,"click",function(){r.pip=!0})}})}}({name:"pip",disable:!t.pip,position:"right",index:50})),this.add(function(t){return function(a){return Q({},t,{mounted:function(t){var e=a.events.proxy,n=a.icons,i=a.i18n,r=a.player,o=P(t,n.fullscreenWeb);q(o,i.get("Web fullscreen")),e(t,"click",function(){r.fullscreenWebToggle=!0}),a.on("fullscreenWeb:enabled",function(){j(o,"opacity","0.8"),q(o,i.get("Exit web fullscreen"))}),a.on("fullscreenWeb:exit",function(){j(o,"opacity","1"),q(o,i.get("Web fullscreen"))})}})}}({name:"fullscreenWeb",disable:!t.fullscreenWeb,position:"right",index:60})),this.add(function(t){return function(a){return Q({},t,{mounted:function(t){var e=a.events.proxy,n=a.icons,i=a.i18n,r=a.player,o=P(t,n.fullscreen);q(o,i.get("Fullscreen")),e(t,"click",function(){r.fullscreenToggle=!0}),a.on("fullscreen:enabled",function(){j(o,"opacity","0.8"),q(o,i.get("Exit fullscreen"))}),a.on("fullscreen:exit",function(){j(o,"opacity","1"),q(o,i.get("Fullscreen"))})}})}}({name:"fullscreen",disable:!t.fullscreen,position:"right",index:70})),t.controls.forEach(function(t){e.add(t)})}},{key:"add",value:function(t,e){var n,i="function"==typeof t?t(this.art):t,r=this.art.template,o=r.$progress,a=r.$controlsLeft,s=r.$controlsRight;switch(i.position){case"top":n=o;break;case"left":n=a;break;case"right":n=s}return b(n,"Controls option.position can not be empty"),this.id+=1,G(this.art,this,n,i,e,"control")}},{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template.$player;t?(this.state=!0,e.classList.add("artplayer-controls-show"),this.art.emit("controls:show")):(this.state=!1,e.classList.remove("artplayer-controls-show"),this.art.emit("controls:hide"))}}]),n}();var rt=function(){function n(t){var e=this;a(this,n),this.id=0,this.art=t,this.art.once("video:canplay",function(){e.init()}),this.art.on("blur",function(){e.show=!1})}return r(n,[{key:"init",value:function(){var e=this,t=this.art,n=t.option,i=t.template,r=i.$player,o=i.$contextmenu,a=t.events.proxy;this.add(function(e){return function(i){var t=i.i18n,n=i.player;return Q({},e,{html:"\n ".concat(t.get("Play speed"),':\n <span data-rate="0.5">0.5</span>\n <span data-rate="0.75">0.75</span>\n <span data-rate="1.0" class="normal current">').concat(t.get("Normal"),'</span>\n <span data-rate="1.25">1.25</span>\n <span data-rate="1.5">1.5</span>\n <span data-rate="2.0">2.0</span>\n '),click:function(t){var e=t.target.dataset.rate;e&&(n.playbackRate=Number(e),i.contextmenu.show=!1)},mounted:function(n){i.on("playbackRateChange",function(e){var t=Array.from(n.querySelectorAll("span")).find(function(t){return Number(t.dataset.rate)===e});t&&M(t,"current")})}})}}({disable:!n.playbackRate,name:"playbackRate",index:10})),this.add(function(e){return function(n){var t=n.i18n,i=n.player;return Q({},e,{html:"\n ".concat(t.get("Aspect ratio"),':\n <span data-ratio="default" class="default current">').concat(t.get("Default"),'</span>\n <span data-ratio="4:3">4:3</span>\n <span data-ratio="16:9">16:9</span>\n '),click:function(t){var e=t.target.dataset.ratio;e&&(i.aspectRatio=e,n.contextmenu.show=!1)},mounted:function(t){n.on("aspectRatioChange",function(e){M(Array.from(t.querySelectorAll("span")).find(function(t){return t.dataset.ratio===e}),"current")})}})}}({disable:!n.aspectRatio,name:"aspectRatio",index:20})),this.add(function(e){return function(t){return Q({},e,{html:t.i18n.get("Video info"),click:function(){t.info.show=!0,t.contextmenu.show=!1}})}}({disable:!1,name:"info",index:30})),this.add(function(t){return Q({},t,{html:'<a href="https://github.com/zhw2590582/artplayer" target="_blank">ArtPlayer 3.1.9</a>'})}({disable:!1,name:"version",index:40})),this.add(function(e){return function(t){return Q({},e,{html:t.i18n.get("Close"),click:function(){t.contextmenu.show=!1}})}}({disable:!1,name:"close",index:50})),n.contextmenu.forEach(function(t){e.add(t)}),a(r,"contextmenu",function(t){t.preventDefault(),e.show=!0,e.setPos(t)}),a(r,"click",function(t){t.composedPath().includes(o)||(e.show=!1)})}},{key:"add",value:function(t,e){var n=this.art.template.$contextmenu;return this.id+=1,G(this.art,this,n,t,e,"contextmenu")}},{key:"setPos",value:function(t){var e=this.art.template,n=e.$player,i=e.$contextmenu,r=t.clientX,o=t.clientY,a=n.getBoundingClientRect(),s=a.height,c=a.width,l=a.left,u=a.top,f=i.getBoundingClientRect(),d=f.height,p=f.width,h=r-l,y=o-u;l+c<r+p&&(h=c-p),u+s<o+d&&(y=s-d),j(i,"left","".concat(h,"px")),j(i,"top","".concat(y,"px"))}},{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template.$player;t?(this.state=!0,e.classList.add("artplayer-contextmenu-show"),this.art.emit("contextmenu:show")):(this.state=!1,e.classList.remove("artplayer-contextmenu-show"),this.art.emit("contextmenu:hide"))}}]),n}(),ot=function(){function e(t){a(this,e),this.art=t,this.init()}return r(e,[{key:"init",value:function(){var t=this,e=this.art,n=e.template.$infoClose;(0,e.events.proxy)(n,"click",function(){t.show=!1}),this.art.on("destroy",function(){t.timer&&clearTimeout(t.timer)})}},{key:"creatInfo",value:function(){var t=[];return t.push('\n <div class="art-info-item ">\n <div class="art-info-title">Player version:</div>\n <div class="art-info-content">3.1.9</div>\n </div>\n '),t.push('\n <div class="art-info-item">\n <div class="art-info-title">Video url:</div>\n <div class="art-info-content">'.concat(this.art.option.url,"</div>\n </div>\n ")),t.push('\n <div class="art-info-item">\n <div class="art-info-title">Video volume:</div>\n <div class="art-info-content" data-video="volume"></div>\n </div>\n '),t.push('\n <div class="art-info-item">\n <div class="art-info-title">Video time:</div>\n <div class="art-info-content" data-video="currentTime"></div>\n </div>\n '),t.push('\n <div class="art-info-item">\n <div class="art-info-title">Video duration:</div>\n <div class="art-info-content" data-video="duration"></div>\n </div>\n '),t.push('\n <div class="art-info-item">\n <div class="art-info-title">Video resolution:</div>\n <div class="art-info-content">\n <span data-video="videoWidth"></span> x <span data-video="videoHeight"></span>\n </div>\n </div>\n '),t.join("")}},{key:"readInfo",value:function(){var t=this.art.template,e=t.$infoPanel,n=t.$video;Array.from(e.querySelectorAll("[data-video]")).forEach(function(t){var e=n[t.dataset.video];t.innerHTML=void 0!==e?"number"==typeof e?e.toFixed(2):e:"unknown"})}},{key:"loop",value:function(){var t=this;this.readInfo(),this.timer=setTimeout(function(){t.readInfo(),t.loop()},1e3)}},{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template,n=e.$player,i=e.$infoPanel;t?(this.state=!0,n.classList.add("artplayer-info-show"),i.innerHTML||P(i,this.creatInfo()),clearTimeout(this.timer),this.loop(),this.art.emit("info:show")):(this.state=!1,n.classList.remove("artplayer-info-show"),clearTimeout(this.timer),this.art.emit("info:hide"))}}]),e}();var at=function(t){if(Array.isArray(t))return t};var st=function(t,e){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);i=!0);}catch(t){r=!0,o=t}finally{try{i||null==s.return||s.return()}finally{if(r)throw o}}return n};var ct=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")};var lt=function(t,e){return at(t)||st(t,e)||ct()},ut=function(){function n(t){a(this,n),this.art=t,this.state=!0;var e=this.art.option.subtitle.url;e&&this.init(e)}return r(n,[{key:"init",value:function(t){var i=this,e=this.art,r=e.events.proxy,n=e.option.subtitle,o=e.template,a=o.$video,s=o.$subtitle,c=o.$track;if(O(s,n.style||{}),!c){var l=document.createElement("track");l.default=!0,l.kind="metadata",a.appendChild(l),this.art.template.$track=l}this.load(t).then(function(t){if(i.art.template.$track.src=t,i.art.emit("subtitle:load",t),a.textTracks&&a.textTracks[0]){var n=lt(a.textTracks,1)[0];r(n,"cuechange",function(){var t=lt(n.activeCues,1)[0];if(s.innerHTML="",t){var e=document.createElement("div");e.appendChild(t.getCueAsHTML()),s.innerHTML=e.innerHTML.split(/\r?\n/).map(function(t){return"<p>".concat(t,"</p>")}).join("")}i.art.emit("subtitle:update",s)})}})}},{key:"load",value:function(e){var n,i=this.art.notice;return fetch(e).then(function(t){return n=t.headers.get("Content-Type"),t.text()}).then(function(t){return/x-subrip/gi.test(n)?W(z(t)):e}).catch(function(t){i.show(t),console.warn(t)})}},{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template.$player;t?(this.state=!0,e.classList.remove("artplayer-subtitle-hide"),this.art.emit("subtitle:show")):(this.state=!1,e.classList.add("artplayer-subtitle-hide"),this.art.emit("subtitle:hide"))}}]),n}();function ft(t){var n=this;a(this,ft);var i=Object.assign({loading:'<svg xmlns="http://www.w3.org/2000/svg" width="50px" height="50px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-default">\n <rect x="0" y="0" width="100" height="100" fill="none" class="bk"/>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(0 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-1s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(30 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(60 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(90 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.75s" repeatCount="indefinite"/></rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(120 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(150 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(180 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.5s" repeatCount="indefinite"/></rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(210 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(240 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(270 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.25s" repeatCount="indefinite"/></rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(300 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"/>\n </rect>\n <rect x="47" y="40" width="6" height="20" rx="5" ry="5" fill="#ffffff" transform="rotate(330 50 50) translate(0 -30)">\n <animate attributeName="opacity" from="1" to="0" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"/>\n </rect>\n</svg>',state:'<svg xmlns="http://www.w3.org/2000/svg" height="60" width="60" style="filter: drop-shadow(0px 1px 1px black);" viewBox="0 0 24 24">\n <path d="M20,2H4C1.8,2,0,3.8,0,6v12c0,2.2,1.8,4,4,4h16c2.2,0,4-1.8,4-4V6C24,3.8,22.2,2,20,2z M15.6,12.8L10.5,16 C9.9,16.5,9,16,9,15.2V8.8C9,8,9.9,7.5,10.5,8l5.1,3.2C16.3,11.5,16.3,12.5,15.6,12.8z"/>\n</svg>',play:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\n <path d="M17.982 9.275L8.06 3.27A2.013 2.013 0 0 0 5 4.994v12.011a2.017 2.017 0 0 0 3.06 1.725l9.922-6.005a2.017 2.017 0 0 0 0-3.45z"></path>\n</svg>',pause:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\n <path d="M7 3a2 2 0 0 0-2 2v12a2 2 0 1 0 4 0V5a2 2 0 0 0-2-2zM15 3a2 2 0 0 0-2 2v12a2 2 0 1 0 4 0V5a2 2 0 0 0-2-2z"></path>\n</svg>',volume:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\n <path d="M10.188 4.65L6 8H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h1l4.188 3.35a.5.5 0 0 0 .812-.39V5.04a.498.498 0 0 0-.812-.39zM14.446 3.778a1 1 0 0 0-.862 1.804 6.002 6.002 0 0 1-.007 10.838 1 1 0 0 0 .86 1.806A8.001 8.001 0 0 0 19 11a8.001 8.001 0 0 0-4.554-7.222z"></path>\n <path d="M15 11a3.998 3.998 0 0 0-2-3.465v6.93A3.998 3.998 0 0 0 15 11z"></path>\n</svg>',volumeClose:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\n <path d="M15 11a3.998 3.998 0 0 0-2-3.465v2.636l1.865 1.865A4.02 4.02 0 0 0 15 11z"></path>\n <path d="M13.583 5.583A5.998 5.998 0 0 1 17 11a6 6 0 0 1-.585 2.587l1.477 1.477a8.001 8.001 0 0 0-3.446-11.286 1 1 0 0 0-.863 1.805zM18.778 18.778l-2.121-2.121-1.414-1.414-1.415-1.415L13 13l-2-2-3.889-3.889-3.889-3.889a.999.999 0 1 0-1.414 1.414L5.172 8H5a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h1l4.188 3.35a.5.5 0 0 0 .812-.39v-3.131l2.587 2.587-.01.005a1 1 0 0 0 .86 1.806c.215-.102.424-.214.627-.333l2.3 2.3a1.001 1.001 0 0 0 1.414-1.416zM11 5.04a.5.5 0 0 0-.813-.39L8.682 5.854 11 8.172V5.04z"></path>\n</svg>',subtitle:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 48 48">\n <path d="M0 0h48v48H0z" fill="none"/>\n <path d="M40 8H8c-2.21 0-4 1.79-4 4v24c0 2.21 1.79 4 4 4h32c2.21 0 4-1.79 4-4V12c0-2.21-1.79-4-4-4zM8 24h8v4H8v-4zm20 12H8v-4h20v4zm12 0h-8v-4h8v4zm0-8H20v-4h20v4z"/>\n</svg>',screenshot:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 50 50">\n\t<path d="M 19.402344 6 C 17.019531 6 14.96875 7.679688 14.5 10.011719 L 14.097656 12 L 9 12 C 6.238281 12 4 14.238281 4 17 L 4 38 C 4 40.761719 6.238281 43 9 43 L 41 43 C 43.761719 43 46 40.761719 46 38 L 46 17 C 46 14.238281 43.761719 12 41 12 L 35.902344 12 L 35.5 10.011719 C 35.03125 7.679688 32.980469 6 30.597656 6 Z M 25 17 C 30.519531 17 35 21.480469 35 27 C 35 32.519531 30.519531 37 25 37 C 19.480469 37 15 32.519531 15 27 C 15 21.480469 19.480469 17 25 17 Z M 25 19 C 20.589844 19 17 22.589844 17 27 C 17 31.410156 20.589844 35 25 35 C 29.410156 35 33 31.410156 33 27 C 33 22.589844 29.410156 19 25 19 Z "/>\n</svg>\n',setting:'<svg xmlns="http://www.w3.org/2000/svg" height="22" width="22" viewBox="0 0 22 22">\n <circle cx="11" cy="11" r="2"></circle>\n <path d="M19.164 8.861L17.6 8.6a6.978 6.978 0 0 0-1.186-2.099l.574-1.533a1 1 0 0 0-.436-1.217l-1.997-1.153a1.001 1.001 0 0 0-1.272.23l-1.008 1.225a7.04 7.04 0 0 0-2.55.001L8.716 2.829a1 1 0 0 0-1.272-.23L5.447 3.751a1 1 0 0 0-.436 1.217l.574 1.533A6.997 6.997 0 0 0 4.4 8.6l-1.564.261A.999.999 0 0 0 2 9.847v2.306c0 .489.353.906.836.986l1.613.269a7 7 0 0 0 1.228 2.075l-.558 1.487a1 1 0 0 0 .436 1.217l1.997 1.153c.423.244.961.147 1.272-.23l1.04-1.263a7.089 7.089 0 0 0 2.272 0l1.04 1.263a1 1 0 0 0 1.272.23l1.997-1.153a1 1 0 0 0 .436-1.217l-.557-1.487c.521-.61.94-1.31 1.228-2.075l1.613-.269a.999.999 0 0 0 .835-.986V9.847a.999.999 0 0 0-.836-.986zM11 15a4 4 0 1 1 0-8 4 4 0 0 1 0 8z"></path>\n</svg>',fullscreen:'<svg xmlns="http://www.w3.org/2000/svg" height="36" width="36" viewBox="0 0 36 36">\n\t<path d="m 10,16 2,0 0,-4 4,0 0,-2 L 10,10 l 0,6 0,0 z"></path>\n\t<path d="m 20,10 0,2 4,0 0,4 2,0 L 26,10 l -6,0 0,0 z"></path>\n\t<path d="m 24,24 -4,0 0,2 L 26,26 l 0,-6 -2,0 0,4 0,0 z"></path>\n\t<path d="M 12,20 10,20 10,26 l 6,0 0,-2 -4,0 0,-4 0,0 z"></path>\n</svg>',fullscreenWeb:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" height="36" width="36">\n\t<path d="m 28,11 0,14 -20,0 0,-14 z m -18,2 16,0 0,10 -16,0 0,-10 z" fill-rule="evenodd"></path>\n</svg>',pip:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36" height="32" width="32">\n <path d="M25,17 L17,17 L17,23 L25,23 L25,17 L25,17 Z M29,25 L29,10.98 C29,9.88 28.1,9 27,9 L9,9 C7.9,9 7,9.88 7,10.98 L7,25 C7,26.1 7.9,27 9,27 L27,27 C28.1,27 29,26.1 29,25 L29,25 Z M27,25.02 L9,25.02 L9,10.97 L27,10.97 L27,25.02 L27,25.02 Z"></path>\n</svg>',prev:'<svg xmlns="http://www.w3.org/2000/svg" height="36" width="36" viewBox="0 0 36 36">\n <path d="m 12,12 h 2 v 12 h -2 z m 3.5,6 8.5,6 V 12 z"></path>\n</svg>',next:'<svg xmlns="http://www.w3.org/2000/svg" height="36" width="36" viewBox="0 0 36 36">\n <path d="M 12,24 20.5,18 12,12 V 24 z M 22,12 v 12 h 2 V 12 h -2 z"></path>\n</svg>'},t.option.icons);Object.keys(i).forEach(function(t){var e=document.createElement("i");e.classList.add("art-icon"),e.classList.add("art-icon-".concat(t)),P(e,i[t]),n[t]=e})}var dt=function(){function n(t){var e=this;a(this,n),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),t.whitelist.state&&t.once("video:canplay",function(){!function(e,t){var n=e.template.$player;t.proxy(document,["click","contextmenu"],function(t){-1<t.composedPath().indexOf(n)?(e.isFocus=!0,e.emit("focus")):(e.isFocus=!1,e.emit("blur"))})}(t,e),function(t,e){var n=t.template.$player;e.hover(n,function(){n.classList.add("artplayer-hover"),t.emit("hoverenter")},function(){n.classList.remove("artplayer-hover"),t.emit("hoverleave")})}(t,e),function(e,t){var n=e.template,i=n.$player,r=n.$video,o=e.player,a=L(function(){i.classList.add("artplayer-hide-cursor"),i.classList.remove("artplayer-hover"),e.controls.show=!1},5e3);e.on("hoverleave",function(){o.playing&&a()}),t.proxy(i,"mousemove",function(t){a.clearTimeout(),i.classList.remove("artplayer-hide-cursor"),e.controls.show=!0,!e.player.pip&&o.playing&&t.target===r&&a()})}(t,e),function(t,e){var n=t.option,i=t.player,r=t.template.$player,o=document.createElement("object");o.setAttribute("aria-hidden","true"),o.setAttribute("tabindex",-1),o.type="text/html",o.data="about:blank";var a=i.width,s=i.height,c=T(function(){i.width===a&&i.height===s||(a=i.width,s=i.height,n.autoSize&&(t.player.fullscreen||t.player.fullscreenWeb||t.player.pip?t.player.autoSize=!1:t.player.autoSize=!0),t.player.aspectRatioReset=!0,t.emit("resize",{width:i.width,height:i.height}))},500);e.proxy(o,"load",function(){e.proxy(o.contentDocument.defaultView,"resize",c)}),r.appendChild(o)}(t,e)})}return r(n,[{key:"proxy",value:function(e,t,n){var i=this,r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};Array.isArray(t)?t.forEach(function(t){return i.proxy(e,t,n,r)}):(e.addEventListener(t,n,r),this.destroyEvents.push(function(){e.removeEventListener(t,n,r)}))}},{key:"hover",value:function(t,e,n){this.proxy(t,"mouseenter",e),this.proxy(t,"mouseleave",n)}},{key:"loadImg",value:function(i){var r=this;return new Promise(function(t,e){var n;if(i instanceof HTMLImageElement)n=i;else{if("string"!=typeof i)return e(i);(n=new Image).src=i}return n.complete?t(n):(r.proxy(n,"load",function(){return t(n)}),r.proxy(n,"error",function(){return e(n)}),i)})}},{key:"destroy",value:function(){this.destroyEvents.forEach(function(t){return t()})}}]),n}(),pt=function(){function n(t){var e=this;a(this,n),this.art=t,this.keys={},this.art.option.hotkey&&this.art.once("video:canplay",function(){e.add(27,function(){t.player.fullscreenWeb&&(t.player.fullscreenWeb=!1)}),e.add(32,function(){t.player.toggle=!0}),e.add(37,function(){t.player.seek=t.player.currentTime-10}),e.add(38,function(){t.player.volume+=.05}),e.add(39,function(){t.player.seek=t.player.currentTime+10}),e.add(40,function(){t.player.volume-=.05}),e.init()})}return r(n,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}},{key:"init",value:function(){var r=this;(0,this.art.events.proxy)(window,"keydown",function(t){if(r.art.isFocus){var e=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==n&&"true"!==n){var i=r.keys[t.keyCode];i&&(t.preventDefault(),i.forEach(function(t){return t()}),r.art.emit("hotkey",t))}}})}}]),n}(),ht=function(){function n(t){var e=this;a(this,n),this.id=0,this.art=t,this.add=this.add.bind(this),this.art.once("video:canplay",function(){e.art.option.layers.forEach(function(t){e.add(t)})})}return r(n,[{key:"add",value:function(t,e){this.id+=1;var n=this.art.template.$layers;return G(this.art,this,n,t,e,"layer")}},{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template.$player;t?(this.state=!0,e.classList.remove("artplayer-layers-hide"),this.art.emit("layers:show")):(this.state=!1,e.classList.add("artplayer-layers-hide"),this.art.emit("layers:hide"))}}]),n}(),yt=function(){function e(t){a(this,e),P((this.art=t).template.$loading,t.icons.loading)}return r(e,[{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template.$player;t?(this.state=!0,e.classList.add("artplayer-loading-show"),this.art.emit("loading:show")):(this.state=!1,e.classList.remove("artplayer-loading-show"),this.art.emit("loading:hide"))}}]),e}(),vt=function(){function e(t){a(this,e),this.art=t,this.timer=null}return r(e,[{key:"show",value:function(t){var e=this,n=!(1<arguments.length&&void 0!==arguments[1])||arguments[1],i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:1e3,r=this.art.template,o=r.$player,a=r.$noticeInner;this.state=!0,o.classList.add("artplayer-notice-show"),a.innerHTML=t instanceof Error?t.message.trim():t,clearTimeout(this.timer),n&&(this.timer=setTimeout(function(){e.hide()},i)),this.art.emit("notice:show")}},{key:"hide",value:function(){var t=this.art.template.$player;this.state=!1,t.classList.remove("artplayer-notice-show"),this.art.emit("notice:hide")}}]),e}(),mt=function(){function e(t){a(this,e),P(P((this.art=t).template.$mask,'<div class="art-state"></div>'),t.icons.state)}return r(e,[{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template.$player;t?(this.state=!0,e.classList.add("artplayer-mask-show"),this.art.emit("mask:show")):(this.state=!1,e.classList.remove("artplayer-mask-show"),this.art.emit("mask:hide"))}}]),e}();var gt=function(){function n(t){var e=this;a(this,n),this.id=0,this.art=t,this.state=!1,t.option.setting&&(this.art.once("video:canplay",function(){e.init()}),this.art.on("blur",function(){e.show=!1}))}return r(n,[{key:"init",value:function(){var e=this,t=this.art,n=t.option,i=t.template.$setting;(0,t.events.proxy)(i,"click",function(t){t.target===i&&(e.show=!1)}),this.add(function(i){return function(e){var t=e.i18n,n=e.player;return Q({},i,{html:'\n <div class="art-setting-header">'.concat(t.get("Flip"),'</div>\n <div class="art-setting-radio">\n <div class="art-radio-item current">\n <button type="button" data-value="normal">').concat(t.get("Normal"),'</button>\n </div>\n <div class="art-radio-item">\n <button type="button" data-value="horizontal">').concat(t.get("Horizontal"),'</button>\n </div>\n <div class="art-radio-item">\n <button type="button" data-value="vertical">').concat(t.get("Vertical"),"</button>\n </div>\n </div>\n "),click:function(t){var e=t.target.dataset.value;e&&(n.flip=e)},mounted:function(t){e.on("flipChange",function(e){M(Array.from(t.querySelectorAll("button")).find(function(t){return t.dataset.value===e}).parentElement,"current")})}})}}({disable:!n.flip,name:"flip"})),this.add(function(i){return function(e){var t=e.i18n,n=e.player;return Q({},i,{html:'\n <div class="art-setting-header">'.concat(t.get("Aspect ratio"),'</div>\n <div class="art-setting-radio">\n <div class="art-radio-item current">\n <button type="button" data-value="default">').concat(t.get("Default"),'</button>\n </div>\n <div class="art-radio-item">\n <button type="button" data-value="4:3">4:3</button>\n </div>\n <div class="art-radio-item">\n <button type="button" data-value="16:9">16:9</button>\n </div>\n </div>\n '),click:function(t){var e=t.target.dataset.value;e&&(n.aspectRatio=e)},mounted:function(t){e.on("aspectRatioChange",function(e){M(Array.from(t.querySelectorAll("button")).find(function(t){return t.dataset.value===e}).parentElement,"current")})}})}}({disable:!n.aspectRatio,name:"aspectRatio"})),this.add(function(e){return function(i){var t=i.i18n,r=i.player,o=i.events.proxy;return Q({},e,{html:'\n <div class="art-setting-header">\n '.concat(t.get("Play speed"),': <span class="art-subtitle-value">1.0</span>x\n </div>\n <div class="art-setting-range">\n <input class="art-subtitle-range" value="1" type="range" min="0.5" max="2" step="0.25">\n </div>\n '),mounted:function(t){var e=t.querySelector(".art-setting-range input"),n=t.querySelector(".art-subtitle-value");o(e,"change",function(){var t=e.value;n.innerText=t,r.playbackRate=Number(t)}),i.on("playbackRateChange",function(t){e.value!==t&&(e.value=t,n.innerText=t)})}})}}({disable:!n.playbackRate,name:"playbackRate"}))}},{key:"add",value:function(t,e){this.id+=1;var n=this.art.template.$settingBody;return G(this.art,this,n,t,e,"setting")}},{key:"toggle",value:function(){this.show=!this.state}},{key:"show",set:function(t){var e=this.art.template.$player;t?(this.state=!0,e.classList.add("artplayer-setting-show"),this.art.emit("setting:show")):(this.state=!1,e.classList.remove("artplayer-setting-show"),this.art.emit("setting:hide"))}}]),n}(),bt=function(){function e(t){a(this,e),this.art=t,this.name="artplayer_settings",this.init()}return r(e,[{key:"init",value:function(){var t=this.art.option,e=this.get("volume");e&&(t.volume=e)}},{key:"get",value:function(t){var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:{}}},{key:"set",value:function(t,e){var n=Object.assign({},this.get(),K({},t,e));window.localStorage.setItem(this.name,JSON.stringify(n))}},{key:"del",value:function(t){var e=this.get();delete e[t],window.localStorage.setItem(this.name,JSON.stringify(e))}},{key:"clean",value:function(){window.localStorage.removeItem(this.name)}}]),e}();function wt(i){var t=i.i18n,r=i.events.proxy;return{title:"Subtitle",name:"subtitle",index:20,html:'\n <div class="art-setting-header">\n '.concat(t.get("Subtitle offset time"),': <span class="art-subtitle-value">0</span>s\n </div>\n <div class="art-setting-range">\n <input class="art-subtitle-range" value="0" type="range" min="-5" max="5" step="0.5">\n </div>\n '),mounted:function(t){var e=t.querySelector(".art-setting-range input"),n=t.querySelector(".art-subtitle-value");r(e,"change",function(){var t=e.value;n.innerText=t,i.plugins.subtitle.offset(Number(t))}),i.on("subtitle:switch",function(){e.value=0,n.innerText=0}),i.on("artplayerPluginSubtitle:set",function(t){e.value!==t&&(e.value=t,n.innerText=t)})}}}function xt(i){var r=i.constructor.utils.clamp,t=i.setting,o=i.notice,a=i.template,s=i.i18n,c=i.player;s.update({"zh-cn":{"Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},"zh-tw":{"Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"}}),t.add(wt);var l=[];return i.on("subtitle:switch",function(){l=[]}),{name:"subtitle",offset:function(t){if(a.$track&&a.$track.track){var e=Array.from(a.$track.track.cues),n=r(t,-5,5);e.forEach(function(t,e){l[e]||(l[e]={startTime:t.startTime,endTime:t.endTime}),t.startTime=r(l[e].startTime+n,0,c.duration),t.endTime=r(l[e].endTime+n,0,c.duration)}),o.show("".concat(s.get("Subtitle offset time"),": ").concat(t,"s")),i.emit("artplayerPluginSubtitle:set",t)}else o.show("".concat(s.get("No subtitles found"))),i.emit("artplayerPluginSubtitle:set",0)}}}function kt(r){var t=r.constructor.utils,n=t.append,i=t.setStyle,o=t.setStyles,a=t.sleep,s=r.events.proxy,c=r.option,l=r.notice,u=r.i18n,f=r.template,d=r.player;function p(t){if(t){var e=f.$video.canPlayType(t.type);if("maybe"===e||"probably"===e){var n=URL.createObjectURL(t);d.playbackRate=!1,d.aspectRatio=!1,f.$video.src=n,a(1e3).then(function(){d.currentTime=0}),c.url=n,r.emit("switch",n),l.show(u.get("Load local video successfully"))}else{var i="".concat(u.get("Playback of this file format is not supported"),": ").concat(t.type);l.show(i,!0,3e3),console.warn(i)}}}return u.update({"zh-cn":{"Playback of this file format is not supported":"不支持播放该文件格式","Load local video successfully":"加载本地视频成功"},"zh-tw":{"Playback of this file format is not supported":"不支持播放該文件格式","Load local video successfully":"加載本地視頻成功"}}),s(f.$player,"dragover",function(t){t.preventDefault(),l.show(u.get("Load local video successfully"))}),s(f.$player,"drop",function(t){t.preventDefault(),p(t.dataTransfer.files[0])}),{name:"localPreview",attach:function(t){var e=n(t,'<input type="file">');i(t,"position","relative"),o(e,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),s(e,"change",function(){p(e.files[0])})}}}function St(e){var t=e.layers,n=e.player,i=e.option.theme;return t.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"3px",background:i},mounted:function(t){e.on("controls:show",function(){t.style.display="none"}),e.on("controls:hide",function(){t.style.display="block"}),e.on("video:timeupdate",function(){t.style.width="".concat(100*n.played,"%")})}}),{name:"miniProgressBar"}}function $t(e){a(this,$t);var n=e.option,i=e.events.proxy,r=e.template.$video;V.video.events.forEach(function(t){i(r,t,function(t){e.emit("video:".concat(t.type),t)})}),Object.keys(n.moreVideoAttr).forEach(function(t){r[t]=n.moreVideoAttr[t]}),n.muted&&(r.muted=n.muted),n.volume&&(r.volume=x(n.volume,0,1)),n.poster&&(r.poster=n.poster),n.autoplay&&(r.autoplay=n.autoplay),r.controls=!0;var t=n.type||k(n.url),o=n.customType[t];t&&o?(e.emit("beforeCustomType",t),o(r,n.url,e),e.emit("afterCustomType",t)):(e.emit("beforeAttachUrl",n.url),r.src=n.url,e.emit("afterAttachUrl",r.src))}var Lt=function(){function n(t){var e=this;a(this,n),this.art=t,this.id=0,t.option.subtitle.url&&this.add(xt),t.option.isLive||this.add(St),this.add(kt),t.option.plugins.forEach(function(t){e.add(t)})}return r(n,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art);return this[e&&e.name?e.name:t.name?t.name:"plugin".concat(this.id)]=e,this.art.emit("plugin:add",t),this}}]),n}(),Tt=0,Rt=function(t){function n(t){var e;return a(this,n),e=c(this,l(n).call(this)),b("function"==typeof window.Promise,"Unsupported 'Promise' method"),e.option=R(n.DEFAULTS,t),f(e.option,I),e.init(),e}return e(n,d),r(n,[{key:"init",value:function(){this.whitelist=new B(this),this.template=new N(this),this.events=new dt(this),this.whitelist.state?(this.isFocus=!1,this.isDestroy=!1,this.storage=new bt(this),this.icons=new ft(this),this.i18n=new X(this),this.notice=new vt(this),this.player=new J(this),this.layers=new ht(this),this.controls=new it(this),this.contextmenu=new rt(this),this.subtitle=new ut(this),this.info=new ot(this),this.loading=new yt(this),this.hotkey=new pt(this),this.mask=new mt(this),this.setting=new gt(this),this.plugins=new Lt(this)):this.mobile=new $t(this),Tt+=1,this.id=Tt,n.instances.push(this)}},{key:"destroy",value:function(){var t=0<arguments.length&&void 0!==arguments[0]&&arguments[0];this.events.destroy(),this.template.destroy(t),n.instances.splice(n.instances.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"version",get:function(){return"3.1.9"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return V}},{key:"utils",get:function(){return F}},{key:"scheme",get:function(){return I}},{key:"Emitter",get:function(){return d}},{key:"validator",get:function(){return f}},{key:"kindOf",get:function(){return f.kindOf}},{key:"DEFAULTS",get:function(){return{container:"#artplayer",url:"",poster:"",title:"",theme:"#f00",volume:.7,isLive:!1,muted:!1,autoplay:!1,autoSize:!1,loop:!1,flip:!1,playbackRate:!1,aspectRatio:!1,screenshot:!1,setting:!1,hotkey:!0,pip:!1,mutex:!0,fullscreen:!1,fullscreenWeb:!1,layers:[],contextmenu:[],quality:[],controls:[],highlight:[],plugins:[],whitelist:[],thumbnails:{url:"",number:60,width:160,height:90,column:10},subtitle:{url:"",style:{}},moreVideoAttr:{controls:!1,preload:"auto"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),n}();return Object.defineProperty(Rt,"instances",{value:[]}),Rt});
|