From 7f9325909b95b13bfb0d080e20579922e481a0ec Mon Sep 17 00:00:00 2001 From: zhw2590582 Date: Fri, 22 Nov 2019 20:59:16 +0800 Subject: [PATCH] build all packages --- dist/artplayer-plugin-backlight.js | 8 - dist/artplayer-plugin-danmuku.js | 8 - dist/artplayer-plugin-gif.js | 8 - dist/artplayer-plugin-playlist.css | 1 - dist/artplayer-plugin-playlist.js | 8 - dist/artplayer-react.css | 19 - dist/artplayer-react.js | 8 - dist/artplayer-tool-github.js | 8 - dist/artplayer-tool-thumbnail.js | 8 - dist/artplayer-vue.css | 19 - dist/artplayer-vue.js | 8 - dist/artplayer.css | 19 - dist/artplayer.js | 8 - docs/uncompiled/artplayer-plugin-backlight.js | 4 +- docs/uncompiled/artplayer-plugin-danmuku.js | 44 +- .../artplayer-plugin-danmuku.js.map | 2 +- docs/uncompiled/artplayer-plugin-gif.js | 33 +- docs/uncompiled/artplayer-plugin-gif.js.map | 2 +- docs/uncompiled/artplayer-react.css | 20 +- docs/uncompiled/artplayer-react.css.map | 2 +- docs/uncompiled/artplayer-react.js | 4702 ++++++++++++++++- docs/uncompiled/artplayer-react.js.map | 2 +- docs/uncompiled/artplayer-tool-github.js | 4 +- docs/uncompiled/artplayer-tool-thumbnail.js | 20 +- .../artplayer-tool-thumbnail.js.map | 2 +- docs/uncompiled/artplayer-vue.css | 20 +- docs/uncompiled/artplayer-vue.css.map | 2 +- docs/uncompiled/artplayer-vue.js | 4579 +++++++++++++++- docs/uncompiled/artplayer-vue.js.map | 2 +- docs/uncompiled/artplayer.js | 54 +- docs/uncompiled/artplayer.js.map | 2 +- package.json | 6 +- .../dist/artplayer-plugin-backlight.js | 8 - .../dist/artplayer-plugin-danmuku.js | 8 - .../dist/artplayer-plugin-gif.js | 8 - .../dist/artplayer-plugin-playlist.css | 1 - .../dist/artplayer-plugin-playlist.js | 8 - .../artplayer-react/dist/artplayer-react.css | 19 - .../artplayer-react/dist/artplayer-react.js | 8 - .../dist/artplayer-tool-github.js | 8 - .../dist/artplayer-tool-thumbnail.js | 8 - packages/artplayer-vue/dist/artplayer-vue.css | 19 - packages/artplayer-vue/dist/artplayer-vue.js | 8 - packages/artplayer/dist/artplayer.css | 19 - packages/artplayer/dist/artplayer.js | 8 - 45 files changed, 9244 insertions(+), 518 deletions(-) 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-plugin-playlist.css delete mode 100644 dist/artplayer-plugin-playlist.js delete mode 100644 dist/artplayer-react.css 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.css delete mode 100644 dist/artplayer-vue.js delete mode 100644 dist/artplayer.css delete mode 100644 dist/artplayer.js delete mode 100644 packages/artplayer-plugin-backlight/dist/artplayer-plugin-backlight.js delete mode 100644 packages/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js delete mode 100644 packages/artplayer-plugin-gif/dist/artplayer-plugin-gif.js delete mode 100644 packages/artplayer-plugin-playlist/dist/artplayer-plugin-playlist.css delete mode 100644 packages/artplayer-plugin-playlist/dist/artplayer-plugin-playlist.js delete mode 100644 packages/artplayer-react/dist/artplayer-react.css delete mode 100644 packages/artplayer-react/dist/artplayer-react.js delete mode 100644 packages/artplayer-tool-github/dist/artplayer-tool-github.js delete mode 100644 packages/artplayer-tool-thumbnail/dist/artplayer-tool-thumbnail.js delete mode 100644 packages/artplayer-vue/dist/artplayer-vue.css delete mode 100644 packages/artplayer-vue/dist/artplayer-vue.js delete mode 100644 packages/artplayer/dist/artplayer.css delete mode 100644 packages/artplayer/dist/artplayer.js diff --git a/dist/artplayer-plugin-backlight.js b/dist/artplayer-plugin-backlight.js deleted file mode 100644 index 141e99dd9..000000000 --- a/dist/artplayer-plugin-backlight.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-plugin-backlight.js v3.1.19 - * 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).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,r=n.$video,i=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,r),function o(){window.requestAnimationFrame((function(){if(i.playing){var n=r.clientWidth,a=r.clientHeight;(function(e,o,n,a){var r=e.getContext("2d");return e.width=n,e.height=a,r.drawImage(o,0,0),t((function(t,e,o,i){for(var c=n/o,l=a/i,s=t*c,u=e*l,d=r.getImageData(s,u,c,l).data,f=0,h=0,p=0,g=0,y=d.length;g\n '.concat(e.get("Danmu opacity"),': 100%\n \n
\n \n
\n '),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:'\n
\n '.concat(e.get("Danmu size"),': 25px\n
\n
\n \n
\n '),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:'\n
\n '.concat(e.get("Danmu speed"),': 5s\n
\n
\n \n
\n '),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:'\n \n "),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(Symbol.iterator in Object(t)||"[object Arguments]"===Object.prototype.toString.call(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 m=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")};var h=function(t,e){return p(t)||f(t,e)||m()};function d(t){switch(t){case 1:case 2:case 3:return"scroll";case 4:case 5:return"static";default:return null}}function y(t){return fetch(t).then((function(t){return t.text()})).then((function(t){return function(t){if("string"!=typeof t)return[];var e=t.match(/[\S ]*?)<\/d>/gi);return e.length?e.map((function(t){var e=t.match(/(.+)<\/d>/),n=h(e,3),r=n[1],i=n[2],a=r.split(",");return 8===a.length&&i.trim()?{text:i,time:Number(a[0]),mode:d(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 g(t,e){var n=h(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,m=0;mf)f=d,e=h(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=h(x,1)[0]}return e}(o))}function v(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}var b=function(){function n(t,r){var l=this;e(this,n),t.i18n.update(i),t.setting.add(a),t.setting.add(o),t.setting.add(u),t.setting.add(s),this.art=t,this.queue=[],this.option={},this.config(r),this.isStop=!1,this.animationFrameTimer=null,this.$danmuku=t.template.$danmuku,t.on("video:play",this.start.bind(this)),t.on("video:playing",this.start.bind(this)),t.on("video:pause",this.stop.bind(this)),t.on("video:waiting",this.stop.bind(this)),t.on("resize",this.resize.bind(this)),t.on("destroy",this.stop.bind(this)),"function"==typeof this.option.danmuku?this.option.danmuku().then((function(e){e.forEach(l.emit.bind(l)),t.emit("artplayerPluginDanmuku:loaded")})):"string"==typeof this.option.danmuku?y(this.option.danmuku).then((function(e){e.forEach(l.emit.bind(l)),t.emit("artplayerPluginDanmuku:loaded")})):(this.option.danmuku.forEach(this.emit.bind(this)),t.emit("artplayerPluginDanmuku:loaded"))}return r(n,[{key:"config",value:function(t){var e=this.art.constructor,r=e.utils.clamp,i=e.validator;this.option=Object.assign({},n.option,this.option,t),i(this.option,n.scheme),this.option.speed=r(this.option.speed,1,10),this.option.maxlength=r(this.option.maxlength,10,100),this.option.margin[0]=r(this.option.margin[0],0,100),this.option.margin[1]=r(this.option.margin[1],0,100),this.option.opacity=r(this.option.opacity,0,1),this.option.fontSize=r(this.option.fontSize,12,30),this.art.emit("artplayerPluginDanmuku:config",this.option)}},{key:"continue",value:function(){l(this.queue,"stop",(function(t){switch(t.$state="emit",t.$lastStartTime=Date.now(),t.mode){case"scroll":t.$ref.style.transform="translateX(".concat(-t.$restWidth,"px) translateY(0px) translateZ(0px)"),t.$ref.style.transition="transform ".concat(t.$restTime,"s linear 0s")}}))}},{key:"suspend",value:function(){var t=this.art.template.$player;l(this.queue,"emit",(function(e){switch(e.$state="stop",e.mode){case"scroll":var n=c(t),r=n.left,i=n.width-(c(e.$ref).left-r)+5;e.$ref.style.transform="translateX(".concat(-i,"px) translateY(0px) translateZ(0px)"),e.$ref.style.transition="transform 0s linear 0s"}}))}},{key:"resize",value:function(){var t=c(this.art.template.$player,"width");l(this.queue,"wait",(function(e){e.$ref&&(e.$ref.style.border="none",e.$ref.style.left="".concat(t,"px"),e.$ref.style.marginLeft="0px",e.$ref.style.transform="translateX(0px) translateY(0px) translateZ(0px)",e.$ref.style.transition="transform 0s linear 0s")}))}},{key:"update",value:function(){var t=this,e=this.art,n=e.player,r=e.template.$player;this.animationFrameTimer=window.requestAnimationFrame((function(){if(n.playing){var e=c(r,"width");l(t.queue,"emit",(function(t){t.$restTime-=(Date.now()-t.$lastStartTime)/1e3,t.$lastStartTime=Date.now(),t.$restTime<=0&&(t.$state="wait",t.$ref.style.border="none",t.$ref.style.left="".concat(e,"px"),t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px) translateY(0px) translateZ(0px)",t.$ref.style.transition="transform 0s linear 0s")})),t.queue.filter((function(t){return n.currentTime+.1>=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,r.$ref.style.border=r.border?"1px solid ".concat(r.color):"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=g(t,r);switch(r.$state="emit",r.mode){case"scroll":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"static":r.$ref.style.top="".concat(a,"px"),r.$ref.style.left="50%",r.$ref.style.marginLeft="-".concat(i/2,"px")}}))}t.isStop||t.update()}))}},{key:"stop",value:function(){this.isStop=!0,this.suspend(),window.cancelAnimationFrame(this.animationFrameTimer),this.art.emit("artplayerPluginDanmuku:stop")}},{key:"start",value:function(){this.isStop=!1,this.continue(),this.update(),this.art.emit("artplayerPluginDanmuku:start")}},{key:"show",value:function(){this.$danmuku.style="block",this.art.emit("artplayerPluginDanmuku:show")}},{key:"hide",value:function(){this.$danmuku.style="none",this.art.emit("artplayerPluginDanmuku:hide")}},{key:"emit",value:function(e){var n=this.art,r=n.notice,i=n.player,a=n.i18n;e.text.trim()?e.text.length>this.option.maxlength?r.show("".concat(a.get("The length of the danmu does not exceed")," ").concat(this.option.maxlength)):("number"!=typeof e.time&&(e.time=i.currentTime),this.queue.push(function(e){for(var n=1;n=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)*(1<o&&(l=o),s=t+1,c=t-1,f=1;sd;){if(u=A[f++],sd){g=n[c--];try{g[0]-=u*(g[0]-r)/O|0,g[1]-=u*(g[1]-i)/O|0,g[2]-=u*(g[2]-a)/O|0}catch(e){}}}}function T(e,t,r,i,o){var a=n[t],s=e/x;a[0]-=s*(a[0]-r)|0,a[1]-=s*(a[1]-i)|0,a[2]-=s*(a[2]-o)|0}function U(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,E[i]-=d,W[i]+=d<=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)>y)<=1&&(v=0),n=0;n=M&&(E-=r),0===O&&(O=1),++n%O==0)for(b-=b/e,(v=(p-=p/S)>>y)<=1&&(v=0),o=0;o>=f,n[e][1]>>=f,n[e][2]>>=f,n[e][3]=e}(),function(){var e,t,r,i,a,s,c,d;for(c=0,d=0,e=0;e>1,t=c+1;t>1,t=c+1;t<256;t++)F[t]=u}(),function(){for(var e=[],t=new Array(o),r=0;r65535||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++]=C>>8&255,e[o++]=255&C}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 y=function(){},C={getGIF:function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{},t=arguments[1];t=s.isFunction(t)?t:y;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,C=e.text,S=e.textAlign,x=e.textBaseline,k=e.videoElement,O=e.videoHeight,F=e.videoWidth,W=e.webcamVideoElement,E=Number(e.gifWidth),A=Number(e.gifHeight),R=Number(e.interval),T=(Number(e.sampleInterval),c?0:1e3*R),U=[],M=b.length?b.length:e.numFrames,j=M,I=new w(e),P=s.getFontSize(e),V=e.textXCoordinate?e.textXCoordinate:"left"===S?1:"right"===S?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?O-l.scaledHeight:0,N=function e(){var r=j-1;function i(){var i;v&&U.push(o.getImageData(0,0,E,A)),C&&(o.font=H,o.fillStyle=f,o.textAlign=S,o.textBaseline=x,o.fillText(C,V,L)),i=o.getImageData(0,0,E,A),I.addFrameImageData(i),p((M-(j=r))/M),r>0&&s.requestTimeout(e,T),j||I.getBase64GIF((function(e){t({error:!1,errorCode:"",errorMsg:"",image:e,cameraStream:d,videoElement:k,webcamVideoElement:W,savedRenderingContexts:U,keepCameraOn:h})}))}b.length?(o.putImageData(b[M-j],0,0),i()):function e(){try{G>F&&(G=F),D>O&&(D=O),z<0&&(z=0),B<0&&(B=0),o.filter=u,o.drawImage(k,z,B,G,D,0,0,E,A),i()}catch(t){if("NS_ERROR_NOT_AVAILABLE"!==t.name)throw t;s.requestTimeout(e,100)}}()};M=M!==n?M:10,R=R!==n?R:.1,i.width=E,i.height=A,o=i.getContext("2d"),function e(){b.length||0!==k.currentTime?N():s.requestTimeout(e,100)}()},getCropDimensions: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}},S={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",S.findVideoSize),i({videoElement:n,cameraStream:r,videoWidth:n.videoWidth,videoHeight:n.videoHeight})):e.attempts<10?(e.attempts+=1,s.requestTimeout((function(){S.findVideoSize(t)}),400)):i({videoElement:n,cameraStream:r,videoWidth:S.defaultVideoDimensions.width,videoHeight:S.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===S.loadedData?(S.findVideoSize({videoElement:o,cameraStream:r,completedCallback:i}),S.loadedData=!1):(e.count+=1)>10?S.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){S.loadedData=!0,d.offset&&(u.currentTime=d.offset)})),a?S.stream({videoElement:u,existingVideo:a,completedCallback:n}):c?S.stream({videoElement:u,cameraStream:c,streamedCallback:i,completedCallback:n}):s.getUserMedia({video:!0},(function(e){S.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(){S.onStreamingTimeout(i)}),1e4)),S.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 x(e){e=s.isObject(e)?e:{},S.stopVideoStreaming(e)}function k(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=C.getCropDimensions({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.getGIF(i,(function(e){n&&n.length||o&&o.length||x(e),m(e)})))}function O(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=d.validate({getUserMedia:!0,"window.URL":!0}),l=[],u=0,f=void 0,g=void 0;if(c.error)return t(c);function m(){s.each(l,(function(e,t){t&&(t.text?g.addFrame(t.img,o,t.text):g.addFrame(t,o))})),function(e,t){e.getBase64GIF((function(e){t({error:!1,errorCode:"",errorMsg:"",image:e})}))}(g,t)}g=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),l[e]=n,(u+=1)===a&&m()):s.isString(n)&&(f=new Image,o.crossOrigin&&(f.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?l[e]={img:r,text:r.text}:l[e]=r,(u+=1)===a&&m(),s.removeElement(r)},r.src=n}(f),s.setCSSAttr(f,{position:"fixed",opacity:"0"}),r.body.appendChild(f))}))}({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=d.validate({getUserMedia:!0,"window.URL":!0}),a=void 0,c=void 0;if(o.error)return t(o);if(s.isElement(r)&&r.src){if(c=r.src,a=s.getExtension(c),!s.isSupported.videoCodecs[a])return t(d.messages.videoCodecs)}else s.isArray(r)&&s.each(r,(function(e,t){if(a=t instanceof Blob?t.type.substr(t.type.lastIndexOf("/")+1,t.length):t.substr(t.lastIndexOf(".")+1,t.length),s.isSupported.videoCodecs[a])return r=t,!1}));S.startStreaming({completed:function(e){e.options=i||{},k(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.getGIF(i,(function(e){t(e)})):S.startVideoStreaming((function(){var e=arguments.length>0&&arguments[0]!==n?arguments[0]:{};e.options=i||{},k(e,t)}),{lastCameraStream:r,callback:t,webcamVideoElement:o,crossOrigin:i.crossOrigin})}({lastCameraStream:o,callback:t,webcamVideoElement:u,options:i})}}var F={utils:c,error:l,defaultOptions:g,createGIF:O,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);O(s.mergeOptions(r,{interval:.1,numFrames:1,gifWidth:Math.floor(r.gifWidth),gifHeight:Math.floor(r.gifHeight)}),t)}},stopVideoStreaming:x,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"};"function"==typeof n&&n.amd?n([],(function(){return F})):e.exports=F}("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;y=!0,f.show=!0,e.emit("artplayerPluginGif:start"),d.show(c.get("Start creating gif..."),!1),r.createGIF(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)}y=!1,f.show=!1,e.emit("artplayerPluginGif:end")}))}}}})); diff --git a/dist/artplayer-plugin-playlist.css b/dist/artplayer-plugin-playlist.css deleted file mode 100644 index bb2c0072a..000000000 --- a/dist/artplayer-plugin-playlist.css +++ /dev/null @@ -1 +0,0 @@ -.art-video-player .art-playlist{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:120;left:0;top:0;height:100%;width:100%;opacity:0;visibility:hidden;pointer-events:none;overflow:hidden}.art-video-player .art-playlist .art-playlist-inner{position:absolute;top:0;right:-300px;bottom:0;width:300px;height:100%;font-size:12px;background:rgba(0,0,0,.8);-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;overflow:auto}.art-video-player .art-playlist .art-playlist-inner .art-playlist-item{cursor:pointer;border-bottom:1px solid hsla(0,0%,100%,.1);padding:12px 20px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.art-video-player .art-playlist .art-playlist-inner .art-playlist-item.active,.art-video-player .art-playlist .art-playlist-inner .art-playlist-item:hover{color:#00a1d6;background:hsla(0,0%,100%,.1)}.art-video-player.art-playlist-show .art-playlist{opacity:1;visibility:visible;pointer-events:auto}.art-video-player.art-playlist-show .art-playlist .art-playlist-inner{right:0} \ No newline at end of file diff --git a/dist/artplayer-plugin-playlist.js b/dist/artplayer-plugin-playlist.js deleted file mode 100644 index 0514ef938..000000000 --- a/dist/artplayer-plugin-playlist.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-plugin-playlist.js v3.1.19 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2019 Harvey Zack - * Released under the MIT License. - */ - -!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).artplayerPluginPlaylist=n()}(this,(function(){"use strict";return function(t){return function(n){var e=n.constructor.utils,i=e.append,r=e.errorHandle,a=e.sleep,l=e.inverseClass,o=n.player,s=n.events.proxy,u=n.template,c=u.$player,f=u.$video,d=i(c,'\n
\n
\n
\n ');r(Array.isArray(t),"Playlist is not an array type"),r(t.length>0,"Playlist cannot be empty");var y=t.map((function(t){return r(t.url,"Playlist items require url attribute"),r(t.title,"Playlist items require title attribute"),t})),p=d.querySelector(".art-playlist-inner");function v(t){var e=y[t];return o.switchUrl(e.url,e.title).then((function(){n.emit("artplayerPluginPlaylist:change",e)}))}function h(){var t=y.findIndex((function(t){return t.url===f.src}));return r(-1!==t,"Can't find Playlist item"),1===y.length?v(0):v(t+1===y.length?0:t+1)}return p.innerHTML=y.map((function(t,n){return'
').concat(t.title,"
")})).join(""),s(p,"click",(function(t){var n=t.target.dataset.optionIndex;n&&Number(n)<=y.length-1&&v(n)})),s(d,"click",(function(t){t.target===d&&c.classList.remove("art-playlist-show")})),n.on("video:ended",(function(){h().then((function(){a(1e3).then((function(){o.play=!0}))}))})),n.on("afterAttachUrl",(function(){var t=y.findIndex((function(t){return t.url===f.src})),n=Array.from(p.children)[t];-1!==t&&n&&l(n,"active")})),{name:"artplayerPluginPlaylist",show:function(){c.classList.add("art-playlist-show")},hide:function(){c.classList.remove("art-playlist-show")},next:function(){h()},prev:function(){var t;t=y.findIndex((function(t){return t.url===f.src})),r(-1!==t,"Can't find Playlist item"),1===y.length?v(0):v(t-1==-1?y.length-1:t-1)}}}}})); diff --git a/dist/artplayer-react.css b/dist/artplayer-react.css deleted file mode 100644 index fc25c3e21..000000000 --- a/dist/artplayer-react.css +++ /dev/null @@ -1,19 +0,0 @@ -.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>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}} -.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} -.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} -.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} -.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} -.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-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} -.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,.8);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} -.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,.8);-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} -.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,.7)}.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} -.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-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0} -.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} -.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)} -: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%)} \ No newline at end of file diff --git a/dist/artplayer-react.js b/dist/artplayer-react.js deleted file mode 100644 index 2d965406c..000000000 --- a/dist/artplayer-react.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-react.js v3.1.19 - * Github: https://github.com/zhw2590582/ArtPlayer#readme - * (c) 2017-2019 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=e||self).ArtplayerReact=t()}(this,(function(){"use strict";var e=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o};var t=function(t,n){if(null==t)return{};var r,o,i=e(t,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i};var n=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e};"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;function r(e,t){return e(t={exports:{}},t.exports),t.exports}var o=r((function(e){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(r){return"function"==typeof Symbol&&"symbol"===t(Symbol.iterator)?e.exports=n=function(e){return t(e)}:e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":t(e)},n(r)}e.exports=n}));var i=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")};function a(e,t){for(var n=0;nU.length&&U.push(e)}function X(e,t,n){return null==e?0:function e(t,n,r,o){var i=typeof t;"undefined"!==i&&"boolean"!==i||(t=null);var a=!1;if(null===t)a=!0;else switch(i){case"string":case"number":a=!0;break;case"object":switch(t.$$typeof){case b:case w:a=!0}}if(a)return r(o,t,""===n?"."+Z(t,0):n),1;if(a=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;c1?t-1:0),r=1;r2?n-2:0),o=2;o2?n-2:0),o=2;o8)throw new Error("warningWithoutStack() currently supports at most 8 arguments.");if(!e){if("undefined"!=typeof console){var i=r.map((function(e){return""+e}));i.unshift("Warning: "+t),Function.prototype.apply.call(console.error,console,i)}try{var a=0,c="Warning: "+t.replace(/%s/g,(function(){return r[a++]}));throw new Error(c)}catch(e){}}},E={};function R(e,t){var n=e.constructor,r=n&&(n.displayName||n.name)||"ReactClass",o=r+"."+t;E[o]||(S(!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.",t,r),E[o]=!0)}var C={isMounted:function(e){return!1},enqueueForceUpdate:function(e,t,n){R(e,"forceUpdate")},enqueueReplaceState:function(e,t,n,r){R(e,"replaceState")},enqueueSetState:function(e,t,n,r){R(e,"setState")}},$={};function D(e,t,n){this.props=e,this.context=t,this.refs=$,this.updater=n||C}Object.freeze($),D.prototype.isReactComponent={},D.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)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,e,t,"setState")},D.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};var T={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)."]},_=function(e,t){Object.defineProperty(D.prototype,e,{get:function(){x(!1,"%s(...) is deprecated in plain JavaScript React classes. %s",t[0],t[1])}})};for(var A in T)T.hasOwnProperty(A)&&_(A,T[A]);function L(){}function M(e,t,n){this.props=e,this.context=t,this.refs=$,this.updater=n||C}L.prototype=D.prototype;var q=M.prototype=new L;q.constructor=M,t(q,D.prototype),q.isPureReactComponent=!0;var z={current:null},I={current:null},V=/^(.*)[\\\/]/,F=1;function W(e){if(null==e)return null;if("number"==typeof e.tag&&S(!1,"Received an unexpected object in getComponentName(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case a:return"Fragment";case i:return"Portal";case u:return"Profiler";case c:return"StrictMode";case d:return"Suspense";case y:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case l:return"Context.Consumer";case s:return"Context.Provider";case p:return r=e,o=e.render,f="ForwardRef",m=o.displayName||o.name||"",r.displayName||(""!==m?f+"("+m+")":f);case h:return W(e.type);case v:var t=(n=e)._status===F?n._result:null;if(t)return W(t)}var n,r,o,f,m;return null}var N={},H=null;function U(e){H=e}N.getCurrentStack=null,N.getStackAddendum=function(){var e="";if(H){var t=W(H.type),n=H._owner;e+=function(e,t,n){var r="";if(t){var o=t.fileName,i=o.replace(V,"");if(/^index\./.test(i)){var a=o.match(V);if(a){var c=a[1];if(c)i=c.replace(V,"")+"/"+i}}r=" (at "+i+":"+t.lineNumber+")"}else n&&(r=" (created by "+n+")");return"\n in "+(e||"Unknown")+r}(t,H._source,n&&W(n.type))}var r=N.getCurrentStack;return r&&(e+=r()||""),e};var B={ReactCurrentDispatcher:z,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:I,IsSomeRendererActing:{current:!1},assign:t};t(B,{ReactDebugCurrentFrame:N,ReactComponentTreeHook:{}});var Y,X,Z=function(e,t){if(!e){for(var n=B.ReactDebugCurrentFrame,r=n.getStackAddendum(),o=arguments.length,i=new Array(o>2?o-2:0),a=2;a1){for(var l=Array(s),f=0;f1){for(var d=Array(p),y=0;y.")}return t}(t);if(!Pe[n]){Pe[n]=!0;var r="";e&&e._owner&&e._owner!==I.current&&(r=" It was passed a child from "+W(e._owner.type)+"."),U(e),Z(!1,'Each child in a list should have a unique "key" prop.%s%s See https://fb.me/react-warning-keys for more information.',n,r),U(null)}}}function xe(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n",u=" Did you accidentally export a JSX literal instead of a component?"):s=typeof e,Z(!1,"React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",s,u)}var f=te.apply(this,arguments);if(null==f)return f;if(c)for(var p=2;p is not supported and will be removed in a future major release. Did you mean to render instead?")),n.Provider},set:function(e){n.Provider=e}},_currentValue:{get:function(){return n._currentValue},set:function(e){n._currentValue=e}},_currentValue2:{get:function(){return n._currentValue2},set:function(e){n._currentValue2=e}},_threadCount:{get:function(){return n._threadCount},set:function(e){n._threadCount=e}},Consumer:{get:function(){return r||(r=!0,Z(!1,"Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),n.Consumer}}}),n.Consumer=i,n._currentRenderer=null,n._currentRenderer2=null,n},forwardRef:function(e){return null!=e&&e.$$typeof===h?S(!1,"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):"function"!=typeof e?S(!1,"forwardRef requires a render function but was given %s.",null===e?"null":typeof e):0!==e.length&&2!==e.length&&S(!1,"forwardRef render functions accept exactly two parameters: props and ref. %s",1===e.length?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),null!=e&&(null!=e.defaultProps||null!=e.propTypes)&&S(!1,"forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?"),{$$typeof:p,render:e}},lazy:function(e){var t,n,r={$$typeof:v,_ctor:e,_status:-1,_result:null};return Object.defineProperties(r,{defaultProps:{configurable:!0,get:function(){return t},set:function(e){Z(!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."),t=e,Object.defineProperty(r,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return n},set:function(e){Z(!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."),n=e,Object.defineProperty(r,"propTypes",{enumerable:!0})}}}),r},memo:function(e,t){return we(e)||S(!1,"memo: The first argument must be a component. Instead received: %s",null===e?"null":typeof e),{$$typeof:h,type:e,compare:void 0===t?null:t}},useCallback:function(e,t){return Oe().useCallback(e,t)},useContext:function(e,t){var n=Oe();if(void 0!==t&&Z(!1,"useContext() second argument is reserved for future use in React. Passing it is not supported. You passed: %s.%s",t,"number"==typeof t&&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!==e._context){var r=e._context;r.Consumer===e?Z(!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?"):r.Provider===e&&Z(!1,"Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return n.useContext(e,t)},useEffect:function(e,t){return Oe().useEffect(e,t)},useImperativeHandle:function(e,t,n){return Oe().useImperativeHandle(e,t,n)},useDebugValue:function(e,t){return Oe().useDebugValue(e,t)},useLayoutEffect:function(e,t){return Oe().useLayoutEffect(e,t)},useMemo:function(e,t){return Oe().useMemo(e,t)},useReducer:function(e,t,n){return Oe().useReducer(e,t,n)},useRef:function(e){return Oe().useRef(e)},useState:function(e){return Oe().useState(e)},Fragment:a,Profiler:u,StrictMode:c,Suspense:d,createElement:Ee,cloneElement:function(e,t,n){for(var r=ne.apply(this,arguments),o=2;o1?n-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:document).querySelector(e)}function he(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(t.querySelectorAll(e))}function ve(e,t){return e.classList.add(t)}function me(e,t){return e.classList.remove(t)}function ge(e,t){return e.classList.contains(t)}function be(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function we(e,t,n){return e.style[t]=n,e}function Oe(e,t){return Object.keys(t).forEach((function(n){we(e,n,t[n])})),e}function je(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=window.getComputedStyle(e,null).getPropertyValue(t);return n?parseFloat(r):r}function Pe(e){return Array.from(e.parentElement.children).filter((function(t){return t!==e}))}function ke(e,t){Pe(e).forEach((function(e){return me(e,t)})),ve(e,t)}function xe(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";e.setAttribute("aria-label",t),e.setAttribute("data-balloon-pos",n)}var Se=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")},Ee=r((function(e){function t(n,r,o){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(e){return!1}}()?e.exports=t=function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&f(o,n.prototype),o}:e.exports=t=Reflect.construct,t.apply(null,arguments)}e.exports=t})),Re=function(e){function t(e,n){var r;return i(this,t),r=s(this,l(t).call(this,e)),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(u(r),n||r.constructor),r.name="ArtPlayerError",r}return p(t,e),t}(r((function(e){function t(n){var r="function"==typeof Map?new Map:void 0;return e.exports=t=function(e){if(null===e||!Se(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(e))return r.get(e);r.set(e,t)}function t(){return Ee(e,arguments,l(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),f(t,e)},t(n)}e.exports=t}))(Error));function Ce(e,t){if(!e)throw new Re(t);return e}function $e(e){return"WEBVTT \r\n\r\n".concat(e.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 De(e){return URL.createObjectURL(new Blob([e],{type:"text/vtt"}))}function Te(e){var t=new RegExp("Dialogue:\\s\\d,(\\d+:\\d\\d:\\d\\d.\\d\\d),(\\d+:\\d\\d:\\d\\d.\\d\\d),([^,]*),([^,]*),(?:[^,]*,){4}([\\s\\S]*)$","i");function n(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").split(/[:.]/).map((function(e,t,n){if(t===n.length-1){if(1===e.length)return".".concat(e,"00");if(2===e.length)return".".concat(e,"0")}else if(1===e.length)return(0===t?"0":":0")+e;return 0===t?e:t===n.length-1?".".concat(e):":".concat(e)})).join("")}return"WEBVTT\n\n".concat(e.split(/\r?\n/).map((function(e){var r=e.match(t);return r?{start:n(r[1].trim()),end:n(r[2].trim()),text:r[5].replace(/{[\s\S]*?}/g,"").replace(/(\\N)/g,"\n").trim().split(/\r?\n/).map((function(e){return e.trim()})).join("\n")}:null})).filter((function(e){return e})).map((function(e,t){return e?"".concat(t+1,"\n").concat(e.start," --\x3e ").concat(e.end,"\n").concat(e.text):""})).filter((function(e){return e.trim()})).join("\n\n"))}function _e(e){return e.includes("?")?_e(e.split("?")[0]):e.includes("#")?_e(e.split("#")[0]):e.trim().toLowerCase().split(".").pop()}function Ae(e,t){var n=document.createElement("a");n.style.display="none",n.href=e,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n)}var Le=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1?t-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(t){return setTimeout(t,e)}))}function He(e,t,n){var r;function o(){for(var o=arguments.length,i=new Array(o),a=0;a0?[t,n,r]:[n,r]).map((function(e){return e<10?"0".concat(e):String(e)})).join(":")}var Xe=Object.freeze({__proto__:null,query:ye,queryAll:he,addClass:ve,removeClass:me,hasClass:ge,append:be,remove:function(e){return e.parentNode.removeChild(e)},setStyle:we,setStyles:Oe,getStyle:je,sublings:Pe,inverseClass:ke,tooltip:xe,ArtPlayerError:Re,errorHandle:Ce,srtToVtt:$e,vttToBlob:De,assToVtt:Te,getExt:_e,downloadFile:Ae,hasOwnProperty:Ie,defineProperty:Ve,proxyPropertys:Fe,mergeDeep:We,sleep:Ne,debounce:He,throttle:Ue,clamp:Be,secondToTime:Ye});function Ze(e,t,n){return Ce("string"===t||e instanceof Element,"".concat(n.join(".")," require 'string' or 'Element' type"))}var Je={container:Ze,url:"string|function",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",subtitleOffset:"boolean",miniProgressBar:"boolean",localVideo:"boolean",localSubtitle:"boolean",autoPip:"boolean",networkMonitor:"boolean",plugins:["function"],whitelist:["string|function|regexp"],layers:[{disable:"boolean|undefined",name:"string|undefined",index:"number|undefined",html:Ze,style:"object|undefined",click:"function|undefined",mounted:"function|undefined",tooltip:"string|undefined"}],contextmenu:[{disable:"boolean|undefined",name:"string|undefined",index:"number|undefined",html:Ze,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:Ze,style:"object|undefined",click:"function|undefined",mounted:"function|undefined",tooltip:"string|undefined",position:function(e,t,n){var r=["top","left","right"];return Ce(r.includes(e),"".concat(n.join(".")," only accept ").concat(r.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"},Ge={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"]}},Qe=function e(t){var n=this;i(this,e);var r=t.constructor.kindOf,o=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||o.some((function(e){switch(r(e)){case"string":return n.userAgent.indexOf(e)>-1;case"function":return e(n.userAgent);case"regexp":return e.test(n.userAgent);default:return!1}}))},Ke=function(){function e(t){var n=this;i(this,e),this.art=t,t.option.container instanceof Element?this.$container=t.option.container:(this.$container=ye(t.option.container),Ce(this.$container,"No container element found by ".concat(t.option.container))),Ce(t.constructor.instances.every((function(e){return e.template.$container!==n.$container})),"Cannot mount multiple instances on the same dom element"),Ce(this.$container.clientWidth&&this.$container.clientHeight,"The width and height of the container cannot be 0"),t.whitelist.state?this.initDesktop():this.initMobile()}return c(e,[{key:"query",value:function(e){return ye(e,this.$container)}},{key:"initDesktop",value:function(){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.1.19
\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 '),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")}},{key:"initMobile",value:function(){this.$container.innerHTML='\n
\n \n
\n ',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(e){e?this.$container.innerHTML="":ve(this.$player,"art-destroy")}}]),e}(),et={"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:"正常",Open:"打开","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","Does not support fullscreen":"不支持全屏","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},tt={"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:"正常",Open:"打開","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","Does not support fullscreen":"不支持全屏","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},nt=function(){function e(t){i(this,e),this.art=t,this.languages={"zh-cn":et,"zh-tw":tt},this.init()}return c(e,[{key:"init",value:function(){var e=this.art.option.lang.toLowerCase();this.language=this.languages[e]||{}}},{key:"get",value:function(e){return this.language[e]||e}},{key:"update",value:function(e){this.languages=We(this.languages,e),this.init()}}]),e}();var rt=r((function(e){!function(){var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["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"]],r=0,o=n.length,i={};ry){var h=y*l/s;we(r,"width","".concat(100*h,"%")),we(r,"height","100%"),we(r,"padding","0 ".concat((f-f*h)/2,"px"))}else{var v=s/y/l;we(r,"width","100%"),we(r,"height","".concat(100*v,"%")),we(r,"padding","".concat((p-p*v)/2,"px 0"))}}o.dataset.aspectRatio=n,a.show("".concat(i.get("Aspect ratio"),": ").concat("default"===n?i.get("Default"):n)),e.emit("aspectRatioChange",n)}else t.aspectRatio&&(we(r,"width",null),we(r,"height",null),we(r,"padding",null),delete o.dataset.aspectRatio,e.emit("aspectRatioRemove"))}}),Object.defineProperty(t,"aspectRatioReset",{set:function(n){if(n&&t.aspectRatio){var r=t.aspectRatio;t.aspectRatio=r,e.emit("aspectRatioReset")}}})}(t,this),function(e,t){var n=e.option,r=e.notice,o=e.template.$video;Object.defineProperty(t,"getScreenshotDataURL",{value:function(){try{var e=document.createElement("canvas");return e.width=o.videoWidth,e.height=o.videoHeight,e.getContext("2d").drawImage(o,0,0),e.toDataURL("image/png")}catch(e){throw r.show(e),e}}}),Object.defineProperty(t,"getScreenshotBlobUrl",{value:function(){return new Promise((function(e,t){try{var n=document.createElement("canvas");n.width=o.videoWidth,n.height=o.videoHeight,n.getContext("2d").drawImage(o,0,0),n.toBlob((function(t){e(URL.createObjectURL(t))}))}catch(e){r.show(e),t(e)}}))}}),Object.defineProperty(t,"screenshot",{value:function(){var r=t.getScreenshotDataURL();r&&(Ae(r,"".concat(n.title||"artplayer","_").concat(Ye(o.currentTime),".png")),e.emit("screenshot",r))}})}(t,this),function(e,t){var n=e.i18n,r=e.notice,o=e.events.destroyEvents,i=e.template.$player,a=function(){e.emit("fullscreenChange",rt.isFullscreen)},c=function(){r.show(n.get("Does not support fullscreen"))};t.fullscreenIsEnabled&&(rt.on("change",a),rt.on("error",c),o.push((function(){rt.off("change",a),rt.off("error",c)}))),Object.defineProperty(t,"fullscreen",{get:function(){return rt.isFullscreen},set:function(n){t.fullscreenIsEnabled?n?(t.fullscreenWeb&&(t.fullscreenWeb=!1),rt.request(i).then((function(){ve(i,"art-fullscreen"),t.aspectRatioReset=!0,e.emit("fullscreenEnabled")}))):(t.fullscreenWeb&&(t.fullscreenWeb=!1),rt.exit().then((function(){me(i,"art-fullscreen"),t.aspectRatioReset=!0,e.emit("fullscreenExit")}))):c()}}),Object.defineProperty(t,"fullscreenToggle",{set:function(e){e&&(t.fullscreen=!t.fullscreen)}}),Object.defineProperty(t,"fullscreenIsEnabled",{get:function(){return rt.isEnabled}})}(t,this),function(e,t){var n=e.template.$player;Object.defineProperty(t,"fullscreenWeb",{get:function(){return ge(n,"art-web-fullscreen")},set:function(r){r?(t.fullscreen&&(t.fullscreen=!1),ve(n,"art-web-fullscreen"),t.aspectRatioReset=!0,e.emit("fullscreenWebEnabled")):(t.fullscreen&&(t.fullscreen=!1),me(n,"art-web-fullscreen"),t.aspectRatioReset=!0,e.emit("fullscreenWebExit"))}}),Object.defineProperty(t,"fullscreenWebToggle",{set:function(e){e&&(t.fullscreenWeb=!t.fullscreenWeb)}})}(t,this),ot(t,this),function(e,t){var n=e.template.$video;Object.defineProperty(t,"loaded",{get:function(){return n.buffered.length?n.buffered.end(n.buffered.length-1)/n.duration:0}}),Object.defineProperty(t,"loadedTime",{get:function(){return n.buffered.length?n.buffered.end(n.buffered.length-1):0}})}(t,this),function(e,t){Object.defineProperty(t,"played",{get:function(){return e.template.$video.currentTime/e.template.$video.duration}})}(t,this),function(e,t){var n=e.template.$video;Object.defineProperty(t,"playing",{get:function(){return!!(n.currentTime>0&&!n.paused&&!n.ended&&n.readyState>2)}})}(t,this),function(e,t){var n=e.template,r=n.$container,o=n.$player,i=n.$video;Object.defineProperty(t,"autoSize",{get:function(){return ge(r,"art-auto-size")},set:function(n){if(n){var a=i.videoWidth,c=i.videoHeight,u=r.getBoundingClientRect(),s=u.width,l=u.height,f=a/c,p=s/l;if(ve(r,"art-auto-size"),p>f){we(o,"width","".concat(l*f/s*100,"%")),we(o,"height","100%")}else{var d=s/f/l*100;we(o,"width","100%"),we(o,"height","".concat(d,"%"))}e.emit("autoSizeChange",{width:t.width,height:t.height})}else me(r,"art-auto-size"),we(o,"width",null),we(o,"height",null),e.emit("autoSizeRemove")}})}(t,this),function(e,t){Object.defineProperty(t,"rect",{get:function(){return e.template.$player.getBoundingClientRect()}}),["bottom","height","left","right","top","width"].forEach((function(e){Object.defineProperty(t,e,{get:function(){return t.rect[e]}})})),Object.defineProperty(t,"x",{get:function(){return t.left+window.pageXOffset}}),Object.defineProperty(t,"y",{get:function(){return t.top+window.pageYOffset}})}(t,this),function(e,t){Object.defineProperty(t,"flip",{get:function(){return e.template.$player.dataset.flip},set:function(t){if(t){var n=["normal","horizontal","vertical"];Ce(n.includes(t),"'flip' only accept ".concat(n.toString()," as parameters")),e.template.$player.dataset.flip=t,e.emit("flipChange",t)}else delete e.template.$player.dataset.flip,e.emit("flipRemove")}})}(t,this),Fe(t,this)};var at=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=l(e)););return e},ct=r((function(e){function t(n,r,o){return"undefined"!=typeof Reflect&&Reflect.get?e.exports=t=Reflect.get:e.exports=t=function(e,t,n){var r=at(e,t);if(r){var o=Object.getOwnPropertyDescriptor(r,t);return o.get?o.get.call(n):o.value}},t(n,r,o||n)}e.exports=t})),ut=function(){function e(t){i(this,e),this.id=0,this.art=t,this.add=this.add.bind(this),this.name=this.constructor.name.toLowerCase()}return c(e,[{key:"toggle",value:function(){this.show=!this.show}},{key:"add",value:function(e,t){var n=this,r="function"==typeof e?e(this.art):e;if(!this.$parent||r.disable)return{};this.id+=1;var o=r.name||"".concat(this.name).concat(this.id);Ce(!Ie(this,o),"Cannot add a component that already has the same name: ".concat(o));var i=document.createElement("div");i.classList.value="art-".concat(this.name," art-").concat(this.name,"-").concat(o),r.html&&be(i,r.html),r.style&&Oe(i,r.style),r.tooltip&&xe(i,r.tooltip);var a=Array.from(this.$parent.children);i.dataset.index=r.index||this.id;var c=a.find((function(e){return Number(e.dataset.index)>=Number(i.dataset.index)}));return c?c.insertAdjacentElement("beforebegin",i):be(this.$parent,i),r.click&&this.art.events.proxy(i,"click",(function(e){e.preventDefault(),r.click.call(n.art,n,e)})),r.mounted&&r.mounted(i,this,this.art),t&&t(i,this,this.art),Ve(this,o,{value:{get $ref(){return i},set show(e){we(i,"display",e?"block":"none")}}}),this.art.emit("".concat(this.name,":add"),r),this[o]}},{key:"show",get:function(){return ge(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(e){Ce(!1===e||!0===e,"The show attribute expects a boolean value");var t=this.art.template.$player,n="art-".concat(this.name,"-show");e?ve(t,n):me(t,n),this.art.emit("".concat(this.name,":toggle"),e)}}]),e}();function st(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 lt(e){return function(t){return function(e){for(var t=1;t\n
\n
\n
\n
\n
\n\n '),mounted:function(e){var n=!1,r=ye(".art-progress-loaded",e),i=ye(".art-progress-played",e),u=ye(".art-progress-highlight",e),s=ye(".art-progress-indicator",e),l=ye(".art-progress-tip",e);function f(e,t){"loaded"===e&&we(r,"width","".concat(100*t,"%")),"played"===e&&(we(i,"width","".concat(100*t,"%")),we(s,"left","calc(".concat(100*t,"% - ").concat(je(s,"width")/2,"px)")))}o.forEach((function(e){var t=Be(e.time,0,c.duration)/c.duration*100;be(u,''))})),f("loaded",c.loaded),t.on("video:progress",(function(){f("loaded",c.loaded)})),t.on("video:timeupdate",(function(){f("played",c.played)})),t.on("video:ended",(function(){f("played",1)})),a(e,"mousemove",(function(n){we(l,"display","block"),n.composedPath().indexOf(u)>-1?function(n){var r=gt(t,n).width,o=n.target.dataset.text;l.innerHTML=o;var i=l.clientWidth;r<=i/2?we(l,"left",0):r>e.clientWidth-i/2?we(l,"left","".concat(e.clientWidth-i,"px")):we(l,"left","".concat(r-i/2,"px"))}(n):function(n){var r=gt(t,n),o=r.width,i=r.time;l.innerHTML=i;var a=l.clientWidth;o<=a/2?we(l,"left",0):o>e.clientWidth-a/2?we(l,"left","".concat(e.clientWidth-a,"px")):we(l,"left","".concat(o-a/2,"px"))}(n)})),a(e,"mouseout",(function(){we(l,"display","none")})),a(e,"click",(function(e){if(e.target!==s){var n=gt(t,e),r=n.second;f("played",n.percentage),c.seek=r}})),a(s,"mousedown",(function(){n=!0})),a(document,"mousemove",(function(e){if(n){var r=gt(t,e),o=r.second,i=r.percentage;ve(s,"art-show-indicator"),f("played",i),c.seek=o}})),a(document,"mouseup",(function(){n&&(n=!1,me(s,"art-show-indicator"))}))}})}}function wt(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 Ot(e){return function(t){return function(e){for(var t=1;t'),l=be(s,'
');function f(e){var t=s.getBoundingClientRect(),n=t.left,r=t.width,o=l.getBoundingClientRect().width;return Be(e.pageX-n-o/2,0,r-o/2)/(r-o)}function p(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(o.muted||0===e)we(c,"display","none"),we(u,"display","flex"),we(l,"left","0");else{var t=((je(s,"width")||60)-je(l,"width"))*e;we(c,"display","flex"),we(u,"display","none"),we(l,"left","".concat(t,"px"))}}xe(c,i.get("Mute")),we(u,"display","none"),p(o.volume),t.on("video:volumechange",(function(){p(o.volume)})),n(c,"click",(function(){o.muted=!0})),n(u,"click",(function(){o.muted=!1})),n(s,"click",(function(e){o.muted=!1,o.volume=f(e)})),n(l,"mousedown",(function(){a=!0})),n(document,"mousemove",(function(e){a&&(o.muted=!1,o.volume=f(e))})),n(document,"mouseup",(function(){a&&(a=!1)}))}})}}function St(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 Et(e){return function(t){return function(e){for(var t=1;tr.clientWidth-u/2?we(e,"left","".concat(r.clientWidth-u,"px")):we(e,"left","".concat(i-u/2,"px"))}(o))})),i(r,"mouseout",(function(){we(e,"display","none")}))}})}}function $t(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 Dt(e){return function(t){return function(e){for(var t=1;t'.concat(u.name,"")),l=n.map((function(e,t){return'
').concat(e.name,"
")})).join(""),f=be(e,'
'.concat(l,"
"));i(e,(function(){f.style.left="-".concat(je(f,"width")/2-e.clientWidth/2,"px")})),o(f,"click",(function(e){var t=Number(e.target.dataset.index),r=n[t],o=r.url,i=r.name;o&&i&&c!==t&&(a.switchQuality(o,i),s.innerHTML=i,c=t)}))}})}}var At=function(e){function t(e){var n;i(this,t),n=s(this,l(t).call(this,e));var r=e.option;return e.on("ready",(function(){n.add(bt({name:"progress",disable:r.isLive,position:"top",index:10})),n.add(Ct({name:"thumbnails",disable:!r.thumbnails.url||r.isLive,position:"top",index:20})),n.add(vt({name:"playAndPause",disable:!1,position:"left",index:10})),n.add(xt({name:"volume",disable:!1,position:"left",index:20})),n.add(Pt({name:"time",disable:r.isLive,position:"left",index:30})),n.add(_t({name:"quality",disable:0===r.quality.length,position:"right",index:10})),n.add(Dt({name:"screenshot",disable:!r.screenshot,position:"right",index:20})),n.add(Ot({name:"subtitle",disable:!r.subtitle.url,position:"right",index:30})),n.add(Et({name:"setting",disable:!r.setting,position:"right",index:40})),n.add(yt({name:"pip",disable:!r.pip,position:"right",index:50})),n.add(pt({name:"fullscreenWeb",disable:!r.fullscreenWeb,position:"right",index:60})),n.add(lt({name:"fullscreen",disable:!r.fullscreen,position:"right",index:70})),r.controls.forEach((function(e){n.add(e)}))})),n}return p(t,e),c(t,[{key:"add",value:function(e,n){var r="function"==typeof e?e(this.art):e;Ce(r.position,"Controls option.position can not be empty");var o=this.art.template,i=o.$progress,a=o.$controlsLeft,c=o.$controlsRight;switch(r.position){case"top":this.$parent=i;break;case"left":this.$parent=a;break;case"right":this.$parent=c}var u=ct(l(t.prototype),"add",this).call(this,r,n);return r.disable||"top"===r.position||u.$ref.firstElementChild&&"I"===u.$ref.firstElementChild.tagName||ve(u.$ref,"art-control-onlyText"),u}}]),t}(ut);function Lt(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 Mt(e){return function(t){var r=t.i18n,o=t.player;return function(e){for(var t=1;t0.5\n0.75\n').concat(r.get("Normal"),'\n1.25\n1.5\n2.0\n '),click:function(e,t){var n=t.target.dataset.rate;n&&(o.playbackRate=Number(n),e.show=!1)},mounted:function(e){t.on("playbackRateChange",(function(t){var n=he("span",e).find((function(e){return Number(e.dataset.rate)===t}));n&&ke(n,"art-current")}))}})}}function qt(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 zt(e){return function(t){var r=t.i18n,o=t.player;return function(e){for(var t=1;t').concat(r.get("Default"),'\n4:3\n16:9\n '),click:function(e,t){var n=t.target.dataset.ratio;n&&(o.aspectRatio=n,e.show=!1)},mounted:function(e){t.on("aspectRatioChange",(function(t){var n=he("span",e).find((function(e){return e.dataset.ratio===t}));n&&ke(n,"art-current")}))}})}}function It(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 Vt(e){return function(t){return function(e){for(var t=1;tArtPlayer 3.1.19'})}function Nt(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 Ht(e){return function(t){return function(e){for(var t=1;ts+u&&(y=u-d),r+p>l+i&&(h=i-p),we(c,"left","".concat(y,"px")),we(c,"top","".concat(h,"px"))})),u(a,"click",(function(e){e.composedPath().includes(c)||(n.show=!1)})),e.on("blur",(function(){n.show=!1}))})),n}return p(t,e),t}(ut),Bt=function(e){function t(e){var n;i(this,t),n=s(this,l(t).call(this,e));var r=e.template,o=r.$infoPanel,a=r.$infoClose,c=r.$video;(0,e.events.proxy)(a,"click",(function(){n.show=!1}));var u=null,f=he("[data-video]",o);return e.on("destroy",(function(){clearTimeout(u)})),e.on("info:toggle",(function(e){clearTimeout(u),e&&function e(){f.forEach((function(e){var t=c[e.dataset.video];e.innerHTML="number"==typeof t?t.toFixed(2):t})),u=setTimeout((function(){e()}),1e3)}()})),n}return p(t,e),t}(ut),Yt=function(e){function t(e){var n;i(this,t),n=s(this,l(t).call(this,e));var r=e.events.proxy,o=e.option.subtitle;return Oe(e.template.$subtitle,o.style),r(n.textTrack,"cuechange",n.update.bind(u(n))),o.url&&n.init(o.url),n}return p(t,e),c(t,[{key:"update",value:function(){var e=this.art.template.$subtitle;e.innerHTML="",this.activeCue&&(e.innerHTML=this.activeCue.text.split(/\r?\n/).map((function(e){return"

".concat(e,"

")})).join(""),this.art.emit("subtitle:update",this.activeCue.text))}},{key:"switch",value:function(e,t){var n=this,r=this.art,o=r.i18n,i=r.notice;return this.init(e).then((function(e){return t&&i.show("".concat(o.get("Switch subtitle"),": ").concat(t)),n.art.emit("subtitle:switch",e),e}))}},{key:"init",value:function(e){var t=this,n=this.art,r=n.notice,o=n.template,i=o.$subtitle,a=o.$track;return fetch(e).then((function(e){return e.text()})).then((function(n){switch(t.art.emit("subtitle:load",e),_e(e)){case"srt":return De($e(n));case"ass":return De(Te(n));case"vtt":return De(n);default:return e}})).then((function(e){return i.innerHTML="",t.url===e?e:(URL.revokeObjectURL(t.url),a.src=e,e)})).catch((function(e){throw r.show(e),t.art.emit("subtitle:err",e),e}))}},{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]}}]),t}(ut);var Xt=function(){function e(t){var n=this;i(this,e),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){t.composedPath().indexOf(n)>-1?(e.isFocus=!0,e.emit("focus")):(e.isFocus=!1,e.emit("blur"))}))}(t,n),function(e,t){var n=e.template.$player;t.hover(n,(function(){ve(n,"art-hover"),e.emit("hoverenter")}),(function(){me(n,"art-hover"),e.emit("hoverleave")}))}(t,n),function(e,t){var n=e.template,r=n.$player,o=n.$video,i=e.player,a=He((function(){ve(r,"art-hide-cursor"),me(r,"art-hover"),e.controls.show=!1}),3e3);e.on("hoverleave",(function(){i.playing&&a()})),t.proxy(r,"mousemove",(function(t){a.clearTimeout(),me(r,"art-hide-cursor"),e.controls.show=!0,!e.player.pip&&i.playing&&t.target===o&&a(),e.emit("mousemove")}))}(t,n),function(e,t){var n=e.option,r=e.player,o=e.template.$player,i=document.createElement("object");i.setAttribute("aria-hidden","true"),i.setAttribute("tabindex",-1),i.type="text/html",i.data="about:blank";var a=r.width,c=r.height,u=Ue((function(){r.width===a&&r.height===c||(a=r.width,c=r.height,n.autoSize&&(e.player.fullscreen||e.player.fullscreenWeb||e.player.pip?e.player.autoSize=!1:e.player.autoSize=!0),e.player.aspectRatioReset=!0,e.emit("resize",{width:r.width,height:r.height}))}),500);t.proxy(i,"load",(function(){t.proxy(i.contentDocument.defaultView,"resize",u)})),o.appendChild(i)}(t,n)}))}return c(e,[{key:"proxy",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};Array.isArray(t)?t.forEach((function(t){return r.proxy(e,t,n,o)})):(e.addEventListener(t,n,o),this.destroyEvents.push((function(){e.removeEventListener(t,n,o)})))}},{key:"hover",value:function(e,t,n){t&&this.proxy(e,"mouseenter",t),n&&this.proxy(e,"mouseleave",n)}},{key:"loadImg",value:function(e){var t=this;return new Promise((function(n,r){var o;if(e instanceof HTMLImageElement)o=e;else{if("string"!=typeof e)return r(e);(o=new Image).src=e}return o.complete?n(o):(t.proxy(o,"load",(function(){return n(o)})),t.proxy(o,"error",(function(){return r(o)})),e)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(e){return e()}))}}]),e}(),Zt=function(){function e(t){var n=this;i(this,e),this.keys={};var r=t.option,o=t.player,a=t.events.proxy;r.hotkey&&t.on("ready",(function(){n.add(27,(function(){o.fullscreenWeb&&(o.fullscreenWeb=!1)})),n.add(32,(function(){o.toggle=!0})),n.add(37,(function(){o.seek=o.currentTime-5})),n.add(38,(function(){o.volume+=.1})),n.add(39,(function(){o.seek=o.currentTime+5})),n.add(40,(function(){o.volume-=.1})),a(window,"keydown",(function(e){if(t.isFocus){var r=document.activeElement.tagName.toUpperCase(),o=document.activeElement.getAttribute("contenteditable");if("INPUT"!==r&&"TEXTAREA"!==r&&""!==o&&"true"!==o){var i=n.keys[e.keyCode];i&&(e.preventDefault(),i.forEach((function(e){return e()})),t.emit("hotkey",e))}}}))}))}return c(e,[{key:"add",value:function(e,t){this.keys[e]?this.keys[e].push(t):this.keys[e]=[t]}}]),e}(),Jt=function(e){function t(e){var n;return i(this,t),(n=s(this,l(t).call(this,e))).$parent=e.template.$layer,e.on("ready",(function(){e.option.layers.forEach((function(e){n.add(e)}))})),n}return p(t,e),t}(ut),Gt=function(e){function t(e){var n;return i(this,t),n=s(this,l(t).call(this,e)),be(e.template.$loading,e.icons.loading),n}return p(t,e),t}(ut),Qt=function(){function e(t){i(this,e),this.art=t,this.timer=null}return c(e,[{key:"show",value:function(e){var t=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,o=this.art.template,i=o.$player,a=o.$noticeInner;a.innerHTML=e instanceof Error?e.message.trim():e,clearTimeout(this.timer),n&&(this.timer=setTimeout((function(){t.hide()}),r)),ve(i,"art-notice-show"),this.art.emit("notice:toggle",!0)}},{key:"hide",value:function(){var e=this.art.template,t=e.$player;e.$noticeInner.innerHTML="",me(t,"art-notice-show"),this.art.emit("notice:toggle",!0)}}]),e}(),Kt=function(e){function t(e){var n;return i(this,t),n=s(this,l(t).call(this,e)),be(e.template.$state,e.icons.state),n}return p(t,e),t}(ut),en=function e(t){var n=this;i(this,e);var r=Object.assign({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',state:'\n \n',play:'\n \n',pause:'\n \n',volume:'\n \n \n',volumeClose:'\n \n \n',subtitle:'\n \n \n',screenshot:'\n\t\n\n',setting:'\n \n \n',fullscreen:'\n\t\n\t\n\t\n\t\n',fullscreenWeb:'\n\t\n',pip:'\n \n',prev:'\n \n',next:'\n \n'},t.option.icons);Object.keys(r).forEach((function(e){var t=document.createElement("i");t.classList.add("art-icon"),t.classList.add("art-icon-".concat(e)),be(t,r[e]),n[e]=t}))};function tn(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 nn(e){return function(t){var r=t.i18n,o=t.player;return function(e){for(var t=1;t'.concat(r.get("Flip"),'\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "),click:function(e,t){var n=t.target.dataset.value;n&&(o.flip=n)},mounted:function(e){t.on("flipChange",(function(t){var n=he("button",e).find((function(e){return e.dataset.value===t}));n&&ke(n.parentElement,"current")}))}})}}function rn(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 on(e){return function(t){var r=t.i18n,o=t.player;return function(e){for(var t=1;t'.concat(r.get("Aspect ratio"),'\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n '),click:function(e,t){var n=t.target.dataset.value;n&&(o.aspectRatio=n)},mounted:function(e){t.on("aspectRatioChange",(function(t){var n=he("button",e).find((function(e){return e.dataset.value===t}));n&&ke(n.parentElement,"current")}))}})}}function an(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 cn(e){return function(t){var r=t.i18n,o=t.player,i=t.events.proxy;return function(e){for(var t=1;t\n '.concat(r.get("Play speed"),': 1.0x\n\n
\n \n
\n '),mounted:function(e){var n=ye(".art-setting-range input",e),r=ye(".art-subtitle-value",e);i(n,"change",(function(){var e=n.value;r.innerText=e,o.playbackRate=Number(e)})),t.on("playbackRateChange",(function(e){n.value!==e&&(n.value=e,r.innerText=e)}))}})}}var un=function(e){function t(e){var n;i(this,t),n=s(this,l(t).call(this,e));var r=e.option,o=e.template,a=o.$setting,c=o.$settingBody,u=e.events.proxy;return n.$parent=c,r.setting&&(e.on("ready",(function(){u(a,"click",(function(e){e.target===a&&(n.show=!1)})),n.add(nn({disable:!r.flip,name:"flip"})),n.add(on({disable:!r.aspectRatio,name:"aspectRatio"})),n.add(cn({disable:!r.playbackRate,name:"playbackRate"}))})),e.on("blur",(function(){n.show=!1}))),n}return p(t,e),t}(ut),sn=function(){function e(t){i(this,e),this.art=t,this.name="artplayer_settings";var n=t.option,r=this.get("volume");r&&(n.volume=r)}return c(e,[{key:"get",value:function(e){var t=JSON.parse(window.localStorage.getItem(this.name))||{};return e?t[e]:{}}},{key:"set",value:function(e,t){var r=Object.assign({},this.get(),n({},e,t));window.localStorage.setItem(this.name,JSON.stringify(r))}},{key:"del",value:function(e){var t=this.get();delete t[e],window.localStorage.setItem(this.name,JSON.stringify(t))}},{key:"clean",value:function(){window.localStorage.removeItem(this.name)}}]),e}();function ln(e){var t=e.i18n,n=e.subtitle,r=e.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'\n
\n '.concat(t.get("Subtitle offset time"),': 0s\n
\n
\n \n
\n '),mounted:function(t){var o=ye(".art-setting-range input",t),i=ye(".art-subtitle-value",t);r(o,"change",(function(){var t=o.value;i.innerText=t,e.plugins.subtitleOffset.offset(Number(t))})),e.on("subtitle:switch",(function(){o.value=0,i.innerText=0})),e.on("subtitleOffset",(function(e){n.update(),o.value!==e&&(o.value=e,i.innerText=e)}))}}}function fn(e){var t=e.constructor.utils.clamp,n=e.setting,r=e.notice,o=e.template,i=e.i18n,a=e.player;n.add(ln);var c=[];return e.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(n){if(o.$track&&o.$track.track){var u=Array.from(o.$track.track.cues),s=t(n,-5,5);u.forEach((function(e,n){c[n]||(c[n]={startTime:e.startTime,endTime:e.endTime}),e.startTime=t(c[n].startTime+s,0,a.duration),e.endTime=t(c[n].endTime+s,0,a.duration)})),r.show("".concat(i.get("Subtitle offset time"),": ").concat(n,"s")),e.emit("subtitleOffset",n)}else r.show("".concat(i.get("No subtitles found"))),e.emit("subtitleOffset",0)}}}function pn(e){var t=e.events.proxy,n=e.template,r=e.player,o=e.option,i=e.setting,a=e.i18n;function c(t){if(t){var i=n.$video.canPlayType(t.type);if("maybe"===i||"probably"===i){var a=URL.createObjectURL(t);o.title=t.name,r.switchUrl(a,t.name),e.emit("localVideo",t)}else Ce(!1,"Playback of this file format is not supported")}}function u(e){var n=be(e,'');we(e,"position","relative"),Oe(n,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),t(n,"change",(function(){c(n.files[0])}))}return t(n.$player,"dragover",(function(e){e.preventDefault()})),t(n.$player,"drop",(function(e){e.preventDefault(),c(e.dataTransfer.files[0])})),e.on("ready",(function(){i.add({title:"Local Video",name:"localVideo",index:30,html:'\n
\n '.concat(a.get("Local Video"),'\n
\n
\n
').concat(a.get("Open"),'
\n
\n
\n '),mounted:function(t){var n=ye(".art-upload-btn",t),r=ye(".art-upload-value",t);e.on("localVideo",(function(e){r.textContent=e.name,r.title=e.name})),u(n)}})})),{name:"localVideo",attach:u}}function dn(e){var t=e.events.proxy,n=e.subtitle,r=e.setting,o=e.i18n;function i(r){var o=be(r,'');we(r,"position","relative"),Oe(o,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),t(o,"change",(function(){!function(r){if(r){var o=_e(r.name);if(["ass","vtt","srt"].includes(o)){var i=new FileReader;t(i,"load",(function(t){var i=t.target.result;switch(o){case"srt":var a=De($e(i));n.switch(a,r.name);break;case"ass":var c=De(Te(i));n.switch(c,r.name);break;case"vtt":var u=De(i);n.switch(u,r.name)}e.emit("localSubtitle",r)})),i.readAsText(r)}else Ce(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(o.files[0])}))}return e.on("ready",(function(){r.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'\n
\n '.concat(o.get("Local Subtitle"),'\n
\n
\n
').concat(o.get("Open"),'
\n
\n
\n '),mounted:function(t){var n=ye(".art-upload-btn",t),r=ye(".art-upload-value",t);e.on("localSubtitle",(function(e){r.textContent=e.name,r.title=e.name})),i(n)}})})),{name:"localSubtitle",attach:i}}function yn(e){var t=e.layers,n=e.player,r=e.option.theme;return t.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:r},mounted:function(t){e.on("control:toggle",(function(e){t.style.display=e?"none":"block"})),e.on("destroy",(function(){t.style.display="none"})),e.on("video:timeupdate",(function(){t.style.width="".concat(100*n.played,"%")}))}}),{name:"miniProgressBar"}}function hn(e){var t=1e4,n=0,r=0,o=0,i=null;function a(){n=0,r=0,o=0,cancelAnimationFrame(i),i=null}function c(){i||function a(){e.isDestroy||(i=requestAnimationFrame((function(){var i=Date.now();if(o){var c=i-o;r+=c,e.player.playing||(n+=c)}o=i,e.emit("networkMonitor",n/r),r>=t&&(n=0,r=0),a()})))}()}return e.on("play",c),e.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(e){t=e}}}function vn(e){var t=e.events,n=e.player,r=e.template,o=He((function(){var t=r.$player.getBoundingClientRect();t.top+t.height<=0&&!n.pip?(n.pip=!0,e.emit("autoPip",!0)):n.pip&&(n.pip=!1,e.emit("autoPip",!1))}),300);return t.proxy(window,"scroll",o),{name:"autoPip"}}var mn=function(){function e(t){var n=this;i(this,e),this.art=t,this.id=0;var r=t.option;r.subtitle.url&&r.subtitleOffset&&this.add(fn),!r.isLive&&r.miniProgressBar&&this.add(yn),r.localVideo&&this.add(pn),r.localSubtitle&&this.add(dn),r.networkMonitor&&this.add(hn),r.autoPip&&this.add(vn),t.option.plugins.forEach((function(e){n.add(e)}))}return c(e,[{key:"add",value:function(e){this.id+=1;var t=e.call(this,this.art),n="";return Ce(!Ie(this,n=t&&t.name?t.name:e.name?e.name:"plugin".concat(this.id)),"Cannot add a plugin that already has the same name: ".concat(n)),Object.defineProperty(this,n,{value:t}),this.art.emit("plugin:add",e),this}}]),e}(),gn=function e(t){i(this,e);var n=t.option,r=t.events.proxy,o=t.template.$video;Ge.video.events.forEach((function(e){r(o,e,(function(e){t.emit("video:".concat(e.type),e)}))})),Object.keys(n.moreVideoAttr).forEach((function(e){o[e]=n.moreVideoAttr[e]})),n.muted&&(o.muted=n.muted),n.volume&&(o.volume=Be(n.volume,0,1)),n.poster&&(o.poster=n.poster),n.autoplay&&(o.autoplay=n.autoplay),o.controls=!0;var a=n.type||_e(n.url),c=n.customType[a];a&&c?(t.emit("beforeCustomType",a),c(o,n.url,t),t.emit("afterCustomType",a)):(t.emit("beforeAttachUrl",n.url),o.src=n.url,t.emit("afterAttachUrl",o.src))},bn=0,wn=function(e){function t(e){var n;return i(this,t),(n=s(this,l(t).call(this))).option=pe(We(t.option,e),Je),n.isFocus=!1,n.isDestroy=!1,n.whitelist=new Qe(u(n)),n.template=new Ke(u(n)),n.events=new Xt(u(n)),n.whitelist.state?(n.storage=new sn(u(n)),n.icons=new en(u(n)),n.i18n=new nt(u(n)),n.notice=new Qt(u(n)),n.player=new it(u(n)),n.layers=new Jt(u(n)),n.controls=new At(u(n)),n.contextmenu=new Ut(u(n)),n.subtitle=new Yt(u(n)),n.info=new Bt(u(n)),n.loading=new Gt(u(n)),n.hotkey=new Zt(u(n)),n.mask=new Kt(u(n)),n.setting=new un(u(n)),n.plugins=new mn(u(n))):n.mobile=new gn(u(n)),bn+=1,n.id=bn,t.instances.push(u(n)),n}return p(t,e),c(t,[{key:"destroy",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(e),t.instances.splice(t.instances.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"version",get:function(){return"3.1.19"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return Ge}},{key:"utils",get:function(){return Xe}},{key:"scheme",get:function(){return Je}},{key:"Emitter",get:function(){return de}},{key:"validator",get:function(){return pe}},{key:"kindOf",get:function(){return pe.kindOf}},{key:"option",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,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,autoPip:!1,networkMonitor:!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:"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),t}(de);function On(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 jn(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};return t(this,o),(e=a(this,s(o).call(this))).processing=!1,e.option={},e.setup(Object.assign({},o.DEFAULTS,n)),e.video=o.creatVideo(),e.inputChange=e.inputChange.bind(r(e)),e.ondrop=e.ondrop.bind(r(e)),e.option.fileInput.addEventListener("change",e.inputChange),e.option.fileInput.addEventListener("dragover",o.ondragover),e.option.fileInput.addEventListener("drop",o.ondrop),e}return l(o,e),n(o,[{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,o=n.fileInput,i=n.delay,r=n.number,a=n.width,s=n.height,u=n.column;if(this.errorHandle(o instanceof Element,"The 'fileInput' is not a Element"),"INPUT"!==o.tagName||"file"!==o.type){o.style.position="relative";var l=document.createElement("input");l.type="file",l.style.position="absolute",l.style.width="100%",l.style.height="100%",l.style.left="0",l.style.top="0",l.style.right="0",l.style.bottom="0",l.style.opacity="0",o.appendChild(l),this.option.fileInput=l}return["delay","number","width","height","column"].forEach((function(e){t.errorHandle("number"==typeof t.option[e],"The '".concat(e,"' is not a number"))})),this.option.delay=d(i,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 o=this.video.canPlayType(t.type);this.errorHandle("maybe"===o||"probably"===o,"Playback of this file format is not supported: ".concat(t.type));var i=URL.createObjectURL(t);this.videoUrl=i,this.file=t,this.emit("file",this.file),this.video.src=i,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,e=this.option,n=e.width,o=e.height,i=e.number,r=e.delay;this.density=i/this.video.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 a=this.creatScreenshotDate(),s=this.creatCanvas(),u=s.getContext("2d");this.emit("canvas",s);var l,c=a.map((function(e,a){return function(){return t.video.currentTime=e.time,new Promise((function(l){p(r).then((function(){u.drawImage(t.video,e.x,e.y,n,o),s.toBlob((function(e){t.thumbnailUrl&&URL.revokeObjectURL(t.thumbnailUrl),t.thumbnailUrl=URL.createObjectURL(e),t.emit("update",t.thumbnailUrl,(a+1)/i),l()}))})).catch((function(t){throw t}))}))}}));return this.processing=!0,(l=c,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,o=t.height,i=t.column,r=this.video.duration/e,a=[r];a.lengthobject{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}} -.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} -.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} -.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} -.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} -.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-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} -.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,.8);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} -.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,.8);-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} -.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,.7)}.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} -.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-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0} -.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} -.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)} -: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%)} \ No newline at end of file diff --git a/dist/artplayer-vue.js b/dist/artplayer-vue.js deleted file mode 100644 index 80899e68e..000000000 --- a/dist/artplayer-vue.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer-vue.js v3.1.19 - * 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).ArtplayerVue=e()}(this,(function(){"use strict";var t=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 e=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function n(t,e){for(var n=0;n1?n-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:document).querySelector(t)}function h(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function y(t,e){return t.classList.add(e)}function v(t,e){return t.classList.remove(e)}function m(t,e){return t.classList.contains(e)}function g(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function b(t,e,n){return t.style[e]=n,t}function w(t,e){return Object.keys(e).forEach((function(n){b(t,n,e[n])})),t}function O(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=window.getComputedStyle(t,null).getPropertyValue(e);return n?parseFloat(r):r}function j(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function P(t,e){j(t).forEach((function(t){return v(t,e)})),y(t,e)}function x(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",n)}var k=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")},E=i((function(t){function e(n,r,i){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}}()?t.exports=e=function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&u(i,n.prototype),i}:t.exports=e=Reflect.construct,e.apply(null,arguments)}t.exports=e})),S=function(t){function n(t,r){var i;return e(this,n),i=c(this,s(n).call(this,t)),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(a(i),r||i.constructor),i.name="ArtPlayerError",i}return l(n,t),n}(i((function(t){function e(n){var r="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!k(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,e)}function e(){return E(t,arguments,s(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u(e,t)},e(n)}t.exports=e}))(Error));function $(t,e){if(!t)throw new S(e);return t}function R(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 D(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function T(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 n(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").split(/[:.]/).map((function(t,e,n){if(e===n.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===n.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var r=t.match(e);return r?{start:n(r[1].trim()),end:n(r[2].trim()),text:r[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 C(t){return t.includes("?")?C(t.split("?")[0]):t.includes("#")?C(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function L(t,e){var n=document.createElement("a");n.style.display="none",n.href=t,n.download=e,document.body.appendChild(n),n.click(),document.body.removeChild(n)}var A=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function I(t,e,n){var r;function i(){for(var i=arguments.length,o=new Array(i),a=0;a0?[e,n,r]:[n,r]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}var X=Object.freeze({__proto__:null,query:d,queryAll:h,addClass:y,removeClass:v,hasClass:m,append:g,remove:function(t){return t.parentNode.removeChild(t)},setStyle:b,setStyles:w,getStyle:O,sublings:j,inverseClass:P,tooltip:x,ArtPlayerError:S,errorHandle:$,srtToVtt:R,vttToBlob:D,assToVtt:T,getExt:C,downloadFile:L,hasOwnProperty:V,defineProperty:W,proxyPropertys:F,mergeDeep:H,sleep:B,debounce:I,throttle:N,clamp:U,secondToTime:_});function Y(t,e,n){return $("string"===e||t instanceof Element,"".concat(n.join(".")," require 'string' or 'Element' type"))}var Z={container:Y,url:"string|function",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",subtitleOffset:"boolean",miniProgressBar:"boolean",localVideo:"boolean",localSubtitle:"boolean",autoPip:"boolean",networkMonitor:"boolean",plugins:["function"],whitelist:["string|function|regexp"],layers:[{disable:"boolean|undefined",name:"string|undefined",index:"number|undefined",html:Y,style:"object|undefined",click:"function|undefined",mounted:"function|undefined",tooltip:"string|undefined"}],contextmenu:[{disable:"boolean|undefined",name:"string|undefined",index:"number|undefined",html:Y,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:Y,style:"object|undefined",click:"function|undefined",mounted:"function|undefined",tooltip:"string|undefined",position:function(t,e,n){var r=["top","left","right"];return $(r.includes(t),"".concat(n.join(".")," only accept ").concat(r.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"},J={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"]}},G=function t(n){var r=this;e(this,t);var i=n.constructor.kindOf,o=n.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||o.some((function(t){switch(i(t)){case"string":return r.userAgent.indexOf(t)>-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},Q=function(){function t(n){var r=this;e(this,t),this.art=n,n.option.container instanceof Element?this.$container=n.option.container:(this.$container=d(n.option.container),$(this.$container,"No container element found by ".concat(n.option.container))),$(n.constructor.instances.every((function(t){return t.template.$container!==r.$container})),"Cannot mount multiple instances on the same dom element"),$(this.$container.clientWidth&&this.$container.clientHeight,"The width and height of the container cannot be 0"),n.whitelist.state?this.initDesktop():this.initMobile()}return r(t,[{key:"query",value:function(t){return d(t,this.$container)}},{key:"initDesktop",value:function(){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.1.19
\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 '),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")}},{key:"initMobile",value:function(){this.$container.innerHTML='\n
\n \n
\n ',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":y(this.$player,"art-destroy")}}]),t}(),K={"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:"正常",Open:"打开","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","Does not support fullscreen":"不支持全屏","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},tt={"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:"正常",Open:"打開","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","Does not support fullscreen":"不支持全屏","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},et=function(){function t(n){e(this,t),this.art=n,this.languages={"zh-cn":K,"zh-tw":tt},this.init()}return r(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=H(this.languages,t),this.init()}}]),t}();var nt=i((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=t.exports,r=function(){for(var t,n=[["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"]],r=0,i=n.length,o={};rh){var y=h*l/u;b(r,"width","".concat(100*y,"%")),b(r,"height","100%"),b(r,"padding","0 ".concat((f-f*y)/2,"px"))}else{var v=u/h/l;b(r,"width","100%"),b(r,"height","".concat(100*v,"%")),b(r,"padding","".concat((p-p*v)/2,"px 0"))}}i.dataset.aspectRatio=n,a.show("".concat(o.get("Aspect ratio"),": ").concat("default"===n?o.get("Default"):n)),t.emit("aspectRatioChange",n)}else e.aspectRatio&&(b(r,"width",null),b(r,"height",null),b(r,"padding",null),delete i.dataset.aspectRatio,t.emit("aspectRatioRemove"))}}),Object.defineProperty(e,"aspectRatioReset",{set:function(n){if(n&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r,t.emit("aspectRatioReset")}}})}(n,this),function(t,e){var n=t.option,r=t.notice,i=t.template.$video;Object.defineProperty(e,"getScreenshotDataURL",{value:function(){try{var t=document.createElement("canvas");return t.width=i.videoWidth,t.height=i.videoHeight,t.getContext("2d").drawImage(i,0,0),t.toDataURL("image/png")}catch(t){throw r.show(t),t}}}),Object.defineProperty(e,"getScreenshotBlobUrl",{value:function(){return new Promise((function(t,e){try{var n=document.createElement("canvas");n.width=i.videoWidth,n.height=i.videoHeight,n.getContext("2d").drawImage(i,0,0),n.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){r.show(t),e(t)}}))}}),Object.defineProperty(e,"screenshot",{value:function(){var r=e.getScreenshotDataURL();r&&(L(r,"".concat(n.title||"artplayer","_").concat(_(i.currentTime),".png")),t.emit("screenshot",r))}})}(n,this),function(t,e){var n=t.i18n,r=t.notice,i=t.events.destroyEvents,o=t.template.$player,a=function(){t.emit("fullscreenChange",nt.isFullscreen)},c=function(){r.show(n.get("Does not support fullscreen"))};e.fullscreenIsEnabled&&(nt.on("change",a),nt.on("error",c),i.push((function(){nt.off("change",a),nt.off("error",c)}))),Object.defineProperty(e,"fullscreen",{get:function(){return nt.isFullscreen},set:function(n){e.fullscreenIsEnabled?n?(e.fullscreenWeb&&(e.fullscreenWeb=!1),nt.request(o).then((function(){y(o,"art-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenEnabled")}))):(e.fullscreenWeb&&(e.fullscreenWeb=!1),nt.exit().then((function(){v(o,"art-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenExit")}))):c()}}),Object.defineProperty(e,"fullscreenToggle",{set:function(t){t&&(e.fullscreen=!e.fullscreen)}}),Object.defineProperty(e,"fullscreenIsEnabled",{get:function(){return nt.isEnabled}})}(n,this),function(t,e){var n=t.template.$player;Object.defineProperty(e,"fullscreenWeb",{get:function(){return m(n,"art-web-fullscreen")},set:function(r){r?(e.fullscreen&&(e.fullscreen=!1),y(n,"art-web-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenWebEnabled")):(e.fullscreen&&(e.fullscreen=!1),v(n,"art-web-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenWebExit"))}}),Object.defineProperty(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(n,this),rt(n,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}}),Object.defineProperty(e,"loadedTime",{get:function(){return n.buffered.length?n.buffered.end(n.buffered.length-1):0}})}(n,this),function(t,e){Object.defineProperty(e,"played",{get:function(){return t.template.$video.currentTime/t.template.$video.duration}})}(n,this),function(t,e){var n=t.template.$video;Object.defineProperty(e,"playing",{get:function(){return!!(n.currentTime>0&&!n.paused&&!n.ended&&n.readyState>2)}})}(n,this),function(t,e){var n=t.template,r=n.$container,i=n.$player,o=n.$video;Object.defineProperty(e,"autoSize",{get:function(){return m(r,"art-auto-size")},set:function(n){if(n){var a=o.videoWidth,c=o.videoHeight,s=r.getBoundingClientRect(),u=s.width,l=s.height,f=a/c,p=u/l;if(y(r,"art-auto-size"),p>f){b(i,"width","".concat(l*f/u*100,"%")),b(i,"height","100%")}else{var d=u/f/l*100;b(i,"width","100%"),b(i,"height","".concat(d,"%"))}t.emit("autoSizeChange",{width:e.width,height:e.height})}else v(r,"art-auto-size"),b(i,"width",null),b(i,"height",null),t.emit("autoSizeRemove")}})}(n,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}})}(n,this),function(t,e){Object.defineProperty(e,"flip",{get:function(){return t.template.$player.dataset.flip},set:function(e){if(e){var n=["normal","horizontal","vertical"];$(n.includes(e),"'flip' only accept ".concat(n.toString()," as parameters")),t.template.$player.dataset.flip=e,t.emit("flipChange",e)}else delete t.template.$player.dataset.flip,t.emit("flipRemove")}})}(n,this),F(n,this)};var ot=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=s(t)););return t},at=i((function(t){function e(n,r,i){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=ot(t,e);if(r){var i=Object.getOwnPropertyDescriptor(r,e);return i.get?i.get.call(n):i.value}},e(n,r,i||n)}t.exports=e})),ct=function(){function t(n){e(this,t),this.id=0,this.art=n,this.add=this.add.bind(this),this.name=this.constructor.name.toLowerCase()}return r(t,[{key:"toggle",value:function(){this.show=!this.show}},{key:"add",value:function(t,e){var n=this,r="function"==typeof t?t(this.art):t;if(!this.$parent||r.disable)return{};this.id+=1;var i=r.name||"".concat(this.name).concat(this.id);$(!V(this,i),"Cannot add a component that already has the same name: ".concat(i));var o=document.createElement("div");o.classList.value="art-".concat(this.name," art-").concat(this.name,"-").concat(i),r.html&&g(o,r.html),r.style&&w(o,r.style),r.tooltip&&x(o,r.tooltip);var a=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var c=a.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));return c?c.insertAdjacentElement("beforebegin",o):g(this.$parent,o),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(n.art,n,t)})),r.mounted&&r.mounted(o,this,this.art),e&&e(o,this,this.art),W(this,i,{value:{get $ref(){return o},set show(t){b(o,"display",t?"block":"none")}}}),this.art.emit("".concat(this.name,":add"),r),this[i]}},{key:"show",get:function(){return m(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){$(!1===t||!0===t,"The show attribute expects a boolean value");var e=this.art.template.$player,n="art-".concat(this.name,"-show");t?y(e,n):v(e,n),this.art.emit("".concat(this.name,":toggle"),t)}}]),t}();function st(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 ut(e){return function(n){return function(e){for(var n=1;n\n
\n
\n
\n
\n
\n\n '),mounted:function(t){var e=!1,r=d(".art-progress-loaded",t),o=d(".art-progress-played",t),s=d(".art-progress-highlight",t),u=d(".art-progress-indicator",t),l=d(".art-progress-tip",t);function f(t,e){"loaded"===t&&b(r,"width","".concat(100*e,"%")),"played"===t&&(b(o,"width","".concat(100*e,"%")),b(u,"left","calc(".concat(100*e,"% - ").concat(O(u,"width")/2,"px)")))}i.forEach((function(t){var e=U(t.time,0,c.duration)/c.duration*100;g(s,''))})),f("loaded",c.loaded),n.on("video:progress",(function(){f("loaded",c.loaded)})),n.on("video:timeupdate",(function(){f("played",c.played)})),n.on("video:ended",(function(){f("played",1)})),a(t,"mousemove",(function(e){b(l,"display","block"),e.composedPath().indexOf(s)>-1?function(e){var r=mt(n,e).width,i=e.target.dataset.text;l.innerHTML=i;var o=l.clientWidth;r<=o/2?b(l,"left",0):r>t.clientWidth-o/2?b(l,"left","".concat(t.clientWidth-o,"px")):b(l,"left","".concat(r-o/2,"px"))}(e):function(e){var r=mt(n,e),i=r.width,o=r.time;l.innerHTML=o;var a=l.clientWidth;i<=a/2?b(l,"left",0):i>t.clientWidth-a/2?b(l,"left","".concat(t.clientWidth-a,"px")):b(l,"left","".concat(i-a/2,"px"))}(e)})),a(t,"mouseout",(function(){b(l,"display","none")})),a(t,"click",(function(t){if(t.target!==u){var e=mt(n,t),r=e.second;f("played",e.percentage),c.seek=r}})),a(u,"mousedown",(function(){e=!0})),a(document,"mousemove",(function(t){if(e){var r=mt(n,t),i=r.second,o=r.percentage;y(u,"art-show-indicator"),f("played",o),c.seek=i}})),a(document,"mouseup",(function(){e&&(e=!1,v(u,"art-show-indicator"))}))}})}}function bt(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 wt(e){return function(n){return function(e){for(var n=1;n'),l=g(u,'
');function f(t){var e=u.getBoundingClientRect(),n=e.left,r=e.width,i=l.getBoundingClientRect().width;return U(t.pageX-n-i/2,0,r-i/2)/(r-i)}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(i.muted||0===t)b(c,"display","none"),b(s,"display","flex"),b(l,"left","0");else{var e=((O(u,"width")||60)-O(l,"width"))*t;b(c,"display","flex"),b(s,"display","none"),b(l,"left","".concat(e,"px"))}}x(c,o.get("Mute")),b(s,"display","none"),p(i.volume),n.on("video:volumechange",(function(){p(i.volume)})),e(c,"click",(function(){i.muted=!0})),e(s,"click",(function(){i.muted=!1})),e(u,"click",(function(t){i.muted=!1,i.volume=f(t)})),e(l,"mousedown",(function(){a=!0})),e(document,"mousemove",(function(t){a&&(i.muted=!1,i.volume=f(t))})),e(document,"mouseup",(function(){a&&(a=!1)}))}})}}function kt(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 Et(e){return function(n){return function(e){for(var n=1;nr.clientWidth-s/2?b(t,"left","".concat(r.clientWidth-s,"px")):b(t,"left","".concat(o-s/2,"px"))}(i))})),o(r,"mouseout",(function(){b(t,"display","none")}))}})}}function Rt(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 Dt(e){return function(n){return function(e){for(var n=1;n'.concat(s.name,"")),l=e.map((function(t,e){return'
').concat(t.name,"
")})).join(""),f=g(t,'
'.concat(l,"
"));o(t,(function(){f.style.left="-".concat(O(f,"width")/2-t.clientWidth/2,"px")})),i(f,"click",(function(t){var n=Number(t.target.dataset.index),r=e[n],i=r.url,o=r.name;i&&o&&c!==n&&(a.switchQuality(i,o),u.innerHTML=o,c=n)}))}})}}var Lt=function(t){function n(t){var r;e(this,n),r=c(this,s(n).call(this,t));var i=t.option;return t.on("ready",(function(){r.add(gt({name:"progress",disable:i.isLive,position:"top",index:10})),r.add($t({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),r.add(yt({name:"playAndPause",disable:!1,position:"left",index:10})),r.add(xt({name:"volume",disable:!1,position:"left",index:20})),r.add(jt({name:"time",disable:i.isLive,position:"left",index:30})),r.add(Ct({name:"quality",disable:0===i.quality.length,position:"right",index:10})),r.add(Dt({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),r.add(wt({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),r.add(Et({name:"setting",disable:!i.setting,position:"right",index:40})),r.add(dt({name:"pip",disable:!i.pip,position:"right",index:50})),r.add(ft({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),r.add(ut({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){r.add(t)}))})),r}return l(n,t),r(n,[{key:"add",value:function(t,e){var r="function"==typeof t?t(this.art):t;$(r.position,"Controls option.position can not be empty");var i=this.art.template,o=i.$progress,a=i.$controlsLeft,c=i.$controlsRight;switch(r.position){case"top":this.$parent=o;break;case"left":this.$parent=a;break;case"right":this.$parent=c}var u=at(s(n.prototype),"add",this).call(this,r,e);return r.disable||"top"===r.position||u.$ref.firstElementChild&&"I"===u.$ref.firstElementChild.tagName||y(u.$ref,"art-control-onlyText"),u}}]),n}(ct);function At(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 Mt(e){return function(n){var r=n.i18n,i=n.player;return function(e){for(var n=1;n0.5\n0.75\n').concat(r.get("Normal"),'\n1.25\n1.5\n2.0\n '),click:function(t,e){var n=e.target.dataset.rate;n&&(i.playbackRate=Number(n),t.show=!1)},mounted:function(t){n.on("playbackRateChange",(function(e){var n=h("span",t).find((function(t){return Number(t.dataset.rate)===e}));n&&P(n,"art-current")}))}})}}function zt(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 qt(e){return function(n){var r=n.i18n,i=n.player;return function(e){for(var n=1;n').concat(r.get("Default"),'\n4:3\n16:9\n '),click:function(t,e){var n=e.target.dataset.ratio;n&&(i.aspectRatio=n,t.show=!1)},mounted:function(t){n.on("aspectRatioChange",(function(e){var n=h("span",t).find((function(t){return t.dataset.ratio===e}));n&&P(n,"art-current")}))}})}}function Vt(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 Wt(e){return function(n){return function(e){for(var n=1;nArtPlayer 3.1.19'})}function Bt(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 It(e){return function(n){return function(e){for(var n=1;ns+c&&(h=c-d),n+p>l+o&&(y=o-p),b(u,"left","".concat(h,"px")),b(u,"top","".concat(y,"px"))})),l(a,"click",(function(t){t.composedPath().includes(u)||(r.show=!1)})),t.on("blur",(function(){r.show=!1}))})),r}return l(n,t),n}(ct),Ut=function(t){function n(t){var r;e(this,n),r=c(this,s(n).call(this,t));var i=t.template,o=i.$infoPanel,a=i.$infoClose,u=i.$video;(0,t.events.proxy)(a,"click",(function(){r.show=!1}));var l=null,f=h("[data-video]",o);return t.on("destroy",(function(){clearTimeout(l)})),t.on("info:toggle",(function(t){clearTimeout(l),t&&function t(){f.forEach((function(t){var e=u[t.dataset.video];t.innerHTML="number"==typeof e?e.toFixed(2):e})),l=setTimeout((function(){t()}),1e3)}()})),r}return l(n,t),n}(ct),_t=function(t){function n(t){var r;e(this,n),r=c(this,s(n).call(this,t));var i=t.events.proxy,o=t.option.subtitle;return w(t.template.$subtitle,o.style),i(r.textTrack,"cuechange",r.update.bind(a(r))),o.url&&r.init(o.url),r}return l(n,t),r(n,[{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(t,"

")})).join(""),this.art.emit("subtitle:update",this.activeCue.text))}},{key:"switch",value:function(t,e){var n=this,r=this.art,i=r.i18n,o=r.notice;return this.init(t).then((function(t){return e&&o.show("".concat(i.get("Switch subtitle"),": ").concat(e)),n.art.emit("subtitle:switch",t),t}))}},{key:"init",value:function(t){var e=this,n=this.art,r=n.notice,i=n.template,o=i.$subtitle,a=i.$track;return fetch(t).then((function(t){return t.text()})).then((function(n){switch(e.art.emit("subtitle:load",t),C(t)){case"srt":return D(R(n));case"ass":return D(T(n));case"vtt":return D(n);default:return t}})).then((function(t){return o.innerHTML="",e.url===t?t:(URL.revokeObjectURL(e.url),a.src=t,t)})).catch((function(t){throw r.show(t),e.art.emit("subtitle:err",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]}}]),n}(ct);var Xt=function(){function t(n){var r=this;e(this,t),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),n.whitelist.state&&n.once("video:canplay",(function(){!function(t,e){var n=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){e.composedPath().indexOf(n)>-1?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(n,r),function(t,e){var n=t.template.$player;e.hover(n,(function(){y(n,"art-hover"),t.emit("hoverenter")}),(function(){v(n,"art-hover"),t.emit("hoverleave")}))}(n,r),function(t,e){var n=t.template,r=n.$player,i=n.$video,o=t.player,a=I((function(){y(r,"art-hide-cursor"),v(r,"art-hover"),t.controls.show=!1}),3e3);t.on("hoverleave",(function(){o.playing&&a()})),e.proxy(r,"mousemove",(function(e){a.clearTimeout(),v(r,"art-hide-cursor"),t.controls.show=!0,!t.player.pip&&o.playing&&e.target===i&&a(),t.emit("mousemove")}))}(n,r),function(t,e){var n=t.option,r=t.player,i=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=r.width,c=r.height,s=N((function(){r.width===a&&r.height===c||(a=r.width,c=r.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:r.width,height:r.height}))}),500);e.proxy(o,"load",(function(){e.proxy(o.contentDocument.defaultView,"resize",s)})),i.appendChild(o)}(n,r)}))}return r(t,[{key:"proxy",value:function(t,e,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};Array.isArray(e)?e.forEach((function(e){return r.proxy(t,e,n,i)})):(t.addEventListener(e,n,i),this.destroyEvents.push((function(){t.removeEventListener(e,n,i)})))}},{key:"hover",value:function(t,e,n){e&&this.proxy(t,"mouseenter",e),n&&this.proxy(t,"mouseleave",n)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(n,r){var i;if(t instanceof HTMLImageElement)i=t;else{if("string"!=typeof t)return r(t);(i=new Image).src=t}return i.complete?n(i):(e.proxy(i,"load",(function(){return n(i)})),e.proxy(i,"error",(function(){return r(i)})),t)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),t}(),Yt=function(){function t(n){var r=this;e(this,t),this.keys={};var i=n.option,o=n.player,a=n.events.proxy;i.hotkey&&n.on("ready",(function(){r.add(27,(function(){o.fullscreenWeb&&(o.fullscreenWeb=!1)})),r.add(32,(function(){o.toggle=!0})),r.add(37,(function(){o.seek=o.currentTime-5})),r.add(38,(function(){o.volume+=.1})),r.add(39,(function(){o.seek=o.currentTime+5})),r.add(40,(function(){o.volume-=.1})),a(window,"keydown",(function(t){if(n.isFocus){var e=document.activeElement.tagName.toUpperCase(),i=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==i&&"true"!==i){var o=r.keys[t.keyCode];o&&(t.preventDefault(),o.forEach((function(t){return t()})),n.emit("hotkey",t))}}}))}))}return r(t,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),t}(),Zt=function(t){function n(t){var r;return e(this,n),(r=c(this,s(n).call(this,t))).$parent=t.template.$layer,t.on("ready",(function(){t.option.layers.forEach((function(t){r.add(t)}))})),r}return l(n,t),n}(ct),Jt=function(t){function n(t){var r;return e(this,n),r=c(this,s(n).call(this,t)),g(t.template.$loading,t.icons.loading),r}return l(n,t),n}(ct),Gt=function(){function t(n){e(this,t),this.art=n,this.timer=null}return r(t,[{key:"show",value:function(t){var e=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,i=this.art.template,o=i.$player,a=i.$noticeInner;a.innerHTML=t instanceof Error?t.message.trim():t,clearTimeout(this.timer),n&&(this.timer=setTimeout((function(){e.hide()}),r)),y(o,"art-notice-show"),this.art.emit("notice:toggle",!0)}},{key:"hide",value:function(){var t=this.art.template,e=t.$player;t.$noticeInner.innerHTML="",v(e,"art-notice-show"),this.art.emit("notice:toggle",!0)}}]),t}(),Qt=function(t){function n(t){var r;return e(this,n),r=c(this,s(n).call(this,t)),g(t.template.$state,t.icons.state),r}return l(n,t),n}(ct),Kt=function t(n){var r=this;e(this,t);var i=Object.assign({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',state:'\n \n',play:'\n \n',pause:'\n \n',volume:'\n \n \n',volumeClose:'\n \n \n',subtitle:'\n \n \n',screenshot:'\n\t\n\n',setting:'\n \n \n',fullscreen:'\n\t\n\t\n\t\n\t\n',fullscreenWeb:'\n\t\n',pip:'\n \n',prev:'\n \n',next:'\n \n'},n.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)),g(e,i[t]),r[t]=e}))};function te(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 ee(e){return function(n){var r=n.i18n,i=n.player;return function(e){for(var n=1;n'.concat(r.get("Flip"),'\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n "),click:function(t,e){var n=e.target.dataset.value;n&&(i.flip=n)},mounted:function(t){n.on("flipChange",(function(e){var n=h("button",t).find((function(t){return t.dataset.value===e}));n&&P(n.parentElement,"current")}))}})}}function ne(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 re(e){return function(n){var r=n.i18n,i=n.player;return function(e){for(var n=1;n'.concat(r.get("Aspect ratio"),'\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n '),click:function(t,e){var n=e.target.dataset.value;n&&(i.aspectRatio=n)},mounted:function(t){n.on("aspectRatioChange",(function(e){var n=h("button",t).find((function(t){return t.dataset.value===e}));n&&P(n.parentElement,"current")}))}})}}function ie(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 oe(e){return function(n){var r=n.i18n,i=n.player,o=n.events.proxy;return function(e){for(var n=1;n\n '.concat(r.get("Play speed"),': 1.0x\n\n
\n \n
\n '),mounted:function(t){var e=d(".art-setting-range input",t),r=d(".art-subtitle-value",t);o(e,"change",(function(){var t=e.value;r.innerText=t,i.playbackRate=Number(t)})),n.on("playbackRateChange",(function(t){e.value!==t&&(e.value=t,r.innerText=t)}))}})}}var ae=function(t){function n(t){var r;e(this,n),r=c(this,s(n).call(this,t));var i=t.option,o=t.template,a=o.$setting,u=o.$settingBody,l=t.events.proxy;return r.$parent=u,i.setting&&(t.on("ready",(function(){l(a,"click",(function(t){t.target===a&&(r.show=!1)})),r.add(ee({disable:!i.flip,name:"flip"})),r.add(re({disable:!i.aspectRatio,name:"aspectRatio"})),r.add(oe({disable:!i.playbackRate,name:"playbackRate"}))})),t.on("blur",(function(){r.show=!1}))),r}return l(n,t),n}(ct),ce=function(){function n(t){e(this,n),this.art=t,this.name="artplayer_settings";var r=t.option,i=this.get("volume");i&&(r.volume=i)}return r(n,[{key:"get",value:function(t){var e=JSON.parse(window.localStorage.getItem(this.name))||{};return t?e[t]:{}}},{key:"set",value:function(e,n){var r=Object.assign({},this.get(),t({},e,n));window.localStorage.setItem(this.name,JSON.stringify(r))}},{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)}}]),n}();function se(t){var e=t.i18n,n=t.subtitle,r=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'\n
\n '.concat(e.get("Subtitle offset time"),': 0s\n
\n
\n \n
\n '),mounted:function(e){var i=d(".art-setting-range input",e),o=d(".art-subtitle-value",e);r(i,"change",(function(){var e=i.value;o.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){i.value=0,o.innerText=0})),t.on("subtitleOffset",(function(t){n.update(),i.value!==t&&(i.value=t,o.innerText=t)}))}}}function ue(t){var e=t.constructor.utils.clamp,n=t.setting,r=t.notice,i=t.template,o=t.i18n,a=t.player;n.add(se);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(n){if(i.$track&&i.$track.track){var s=Array.from(i.$track.track.cues),u=e(n,-5,5);s.forEach((function(t,n){c[n]||(c[n]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[n].startTime+u,0,a.duration),t.endTime=e(c[n].endTime+u,0,a.duration)})),r.show("".concat(o.get("Subtitle offset time"),": ").concat(n,"s")),t.emit("subtitleOffset",n)}else r.show("".concat(o.get("No subtitles found"))),t.emit("subtitleOffset",0)}}}function le(t){var e=t.events.proxy,n=t.template,r=t.player,i=t.option,o=t.setting,a=t.i18n;function c(e){if(e){var o=n.$video.canPlayType(e.type);if("maybe"===o||"probably"===o){var a=URL.createObjectURL(e);i.title=e.name,r.switchUrl(a,e.name),t.emit("localVideo",e)}else $(!1,"Playback of this file format is not supported")}}function s(t){var n=g(t,'');b(t,"position","relative"),w(n,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(n,"change",(function(){c(n.files[0])}))}return e(n.$player,"dragover",(function(t){t.preventDefault()})),e(n.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.on("ready",(function(){o.add({title:"Local Video",name:"localVideo",index:30,html:'\n
\n '.concat(a.get("Local Video"),'\n
\n
\n
').concat(a.get("Open"),'
\n
\n
\n '),mounted:function(e){var n=d(".art-upload-btn",e),r=d(".art-upload-value",e);t.on("localVideo",(function(t){r.textContent=t.name,r.title=t.name})),s(n)}})})),{name:"localVideo",attach:s}}function fe(t){var e=t.events.proxy,n=t.subtitle,r=t.setting,i=t.i18n;function o(r){var i=g(r,'');b(r,"position","relative"),w(i,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(i,"change",(function(){!function(r){if(r){var i=C(r.name);if(["ass","vtt","srt"].includes(i)){var o=new FileReader;e(o,"load",(function(e){var o=e.target.result;switch(i){case"srt":var a=D(R(o));n.switch(a,r.name);break;case"ass":var c=D(T(o));n.switch(c,r.name);break;case"vtt":var s=D(o);n.switch(s,r.name)}t.emit("localSubtitle",r)})),o.readAsText(r)}else $(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(i.files[0])}))}return t.on("ready",(function(){r.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'\n
\n '.concat(i.get("Local Subtitle"),'\n
\n
\n
').concat(i.get("Open"),'
\n
\n
\n '),mounted:function(e){var n=d(".art-upload-btn",e),r=d(".art-upload-value",e);t.on("localSubtitle",(function(t){r.textContent=t.name,r.title=t.name})),o(n)}})})),{name:"localSubtitle",attach:o}}function pe(t){var e=t.layers,n=t.player,r=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:r},mounted:function(e){t.on("control:toggle",(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*n.played,"%")}))}}),{name:"miniProgressBar"}}function de(t){var e=1e4,n=0,r=0,i=0,o=null;function a(){n=0,r=0,i=0,cancelAnimationFrame(o),o=null}function c(){o||function a(){t.isDestroy||(o=requestAnimationFrame((function(){var o=Date.now();if(i){var c=o-i;r+=c,t.player.playing||(n+=c)}i=o,t.emit("networkMonitor",n/r),r>=e&&(n=0,r=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function he(t){var e=t.events,n=t.player,r=t.template,i=I((function(){var e=r.$player.getBoundingClientRect();e.top+e.height<=0&&!n.pip?(n.pip=!0,t.emit("autoPip",!0)):n.pip&&(n.pip=!1,t.emit("autoPip",!1))}),300);return e.proxy(window,"scroll",i),{name:"autoPip"}}var ye=function(){function t(n){var r=this;e(this,t),this.art=n,this.id=0;var i=n.option;i.subtitle.url&&i.subtitleOffset&&this.add(ue),!i.isLive&&i.miniProgressBar&&this.add(pe),i.localVideo&&this.add(le),i.localSubtitle&&this.add(fe),i.networkMonitor&&this.add(de),i.autoPip&&this.add(he),n.option.plugins.forEach((function(t){r.add(t)}))}return r(t,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),n="";return $(!V(this,n=e&&e.name?e.name:t.name?t.name:"plugin".concat(this.id)),"Cannot add a plugin that already has the same name: ".concat(n)),Object.defineProperty(this,n,{value:e}),this.art.emit("plugin:add",t),this}}]),t}(),ve=function t(n){e(this,t);var r=n.option,i=n.events.proxy,o=n.template.$video;J.video.events.forEach((function(t){i(o,t,(function(t){n.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=U(r.volume,0,1)),r.poster&&(o.poster=r.poster),r.autoplay&&(o.autoplay=r.autoplay),o.controls=!0;var a=r.type||C(r.url),c=r.customType[a];a&&c?(n.emit("beforeCustomType",a),c(o,r.url,n),n.emit("afterCustomType",a)):(n.emit("beforeAttachUrl",r.url),o.src=r.url,n.emit("afterAttachUrl",o.src))},me=0,ge=function(t){function n(t){var r;return e(this,n),(r=c(this,s(n).call(this))).option=f(H(n.option,t),Z),r.isFocus=!1,r.isDestroy=!1,r.whitelist=new G(a(r)),r.template=new Q(a(r)),r.events=new Xt(a(r)),r.whitelist.state?(r.storage=new ce(a(r)),r.icons=new Kt(a(r)),r.i18n=new et(a(r)),r.notice=new Gt(a(r)),r.player=new it(a(r)),r.layers=new Zt(a(r)),r.controls=new Lt(a(r)),r.contextmenu=new Nt(a(r)),r.subtitle=new _t(a(r)),r.info=new Ut(a(r)),r.loading=new Jt(a(r)),r.hotkey=new Yt(a(r)),r.mask=new Qt(a(r)),r.setting=new ae(a(r)),r.plugins=new ye(a(r))):r.mobile=new ve(a(r)),me+=1,r.id=me,n.instances.push(a(r)),r}return l(n,t),r(n,[{key:"destroy",value:function(){var t=!(arguments.length>0&&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.19"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return J}},{key:"utils",get:function(){return X}},{key:"scheme",get:function(){return Z}},{key:"Emitter",get:function(){return p}},{key:"validator",get:function(){return f}},{key:"kindOf",get:function(){return f.kindOf}},{key:"option",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,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,autoPip:!1,networkMonitor:!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:"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),n}(p);function be(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}return Object.defineProperty(ge,"instances",{value:[]}),console.log("%c ArtPlayer %c 3.1.19 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),{data:function(){return{instance:null}},props:{option:{type:Object,required:!0},getInstance:Function},mounted:function(){this.instance=new ge(function(e){for(var n=1;nobject{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}} -.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} -.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} -.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} -.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} -.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-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} -.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,.8);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} -.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,.8);-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} -.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,.7)}.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} -.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-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0} -.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} -.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)} -: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%)} \ No newline at end of file diff --git a/dist/artplayer.js b/dist/artplayer.js deleted file mode 100644 index cc4b5a243..000000000 --- a/dist/artplayer.js +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * artplayer.js v3.1.19 - * 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 t=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};function e(t,e){for(var n=0;n1?n-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:document).querySelector(t)}function d(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return Array.from(e.querySelectorAll(t))}function h(t,e){return t.classList.add(e)}function y(t,e){return t.classList.remove(e)}function v(t,e){return t.classList.contains(e)}function m(t,e){return e instanceof Element?t.appendChild(e):t.insertAdjacentHTML("beforeend",String(e)),t.lastElementChild||t.lastChild}function g(t,e,n){return t.style[e]=n,t}function b(t,e){return Object.keys(e).forEach((function(n){g(t,n,e[n])})),t}function w(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=window.getComputedStyle(t,null).getPropertyValue(e);return n?parseFloat(r):r}function O(t){return Array.from(t.parentElement.children).filter((function(e){return e!==t}))}function j(t,e){O(t).forEach((function(t){return y(t,e)})),h(t,e)}function P(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"up";t.setAttribute("aria-label",e),t.setAttribute("data-balloon-pos",n)}var x=function(t){return-1!==Function.toString.call(t).indexOf("[native code]")},k=r((function(t){function e(n,r,i){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}}()?t.exports=e=function(t,e,n){var r=[null];r.push.apply(r,e);var i=new(Function.bind.apply(t,r));return n&&s(i,n.prototype),i}:t.exports=e=Reflect.construct,e.apply(null,arguments)}t.exports=e})),E=function(e){function n(e,r){var i;return t(this,n),i=a(this,c(n).call(this,e)),"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(o(i),r||i.constructor),i.name="ArtPlayerError",i}return u(n,e),n}(r((function(t){function e(n){var r="function"==typeof Map?new Map:void 0;return t.exports=e=function(t){if(null===t||!x(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,e)}function e(){return k(t,arguments,c(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),s(e,t)},e(n)}t.exports=e}))(Error));function S(t,e){if(!t)throw new E(e);return t}function $(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 R(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function D(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 n(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").split(/[:.]/).map((function(t,e,n){if(e===n.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===n.length-1?".".concat(t):":".concat(t)})).join("")}return"WEBVTT\n\n".concat(t.split(/\r?\n/).map((function(t){var r=t.match(e);return r?{start:n(r[1].trim()),end:n(r[2].trim()),text:r[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 T(t){return t.includes("?")?T(t.split("?")[0]):t.includes("#")?T(t.split("#")[0]):t.trim().toLowerCase().split(".").pop()}function C(t,e){var n=document.createElement("a");n.style.display="none",n.href=t,n.download=e,document.body.appendChild(n),n.click(),document.body.removeChild(n)}var L=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e1?e-1:0),r=1;r0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((function(e){return setTimeout(e,t)}))}function N(t,e,n){var r;function i(){for(var i=arguments.length,o=new Array(i),a=0;a0?[e,n,r]:[n,r]).map((function(t){return t<10?"0".concat(t):String(t)})).join(":")}var X=Object.freeze({__proto__:null,query:p,queryAll:d,addClass:h,removeClass:y,hasClass:v,append:m,remove:function(t){return t.parentNode.removeChild(t)},setStyle:g,setStyles:b,getStyle:w,sublings:O,inverseClass:j,tooltip:P,ArtPlayerError:E,errorHandle:S,srtToVtt:$,vttToBlob:R,assToVtt:D,getExt:T,downloadFile:C,hasOwnProperty:W,defineProperty:F,proxyPropertys:H,mergeDeep:B,sleep:I,debounce:N,throttle:U,clamp:_,secondToTime:Y});function Z(t,e,n){return S("string"===e||t instanceof Element,"".concat(n.join(".")," require 'string' or 'Element' type"))}var J={container:Z,url:"string|function",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",subtitleOffset:"boolean",miniProgressBar:"boolean",localVideo:"boolean",localSubtitle:"boolean",autoPip:"boolean",networkMonitor:"boolean",plugins:["function"],whitelist:["string|function|regexp"],layers:[{disable:"boolean|undefined",name:"string|undefined",index:"number|undefined",html:Z,style:"object|undefined",click:"function|undefined",mounted:"function|undefined",tooltip:"string|undefined"}],contextmenu:[{disable:"boolean|undefined",name:"string|undefined",index:"number|undefined",html:Z,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:Z,style:"object|undefined",click:"function|undefined",mounted:"function|undefined",tooltip:"string|undefined",position:function(t,e,n){var r=["top","left","right"];return S(r.includes(t),"".concat(n.join(".")," only accept ").concat(r.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"},G={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"]}},K=function e(n){var r=this;t(this,e);var i=n.constructor.kindOf,o=n.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||o.some((function(t){switch(i(t)){case"string":return r.userAgent.indexOf(t)>-1;case"function":return t(r.userAgent);case"regexp":return t.test(r.userAgent);default:return!1}}))},Q=function(){function e(n){var r=this;t(this,e),this.art=n,n.option.container instanceof Element?this.$container=n.option.container:(this.$container=p(n.option.container),S(this.$container,"No container element found by ".concat(n.option.container))),S(n.constructor.instances.every((function(t){return t.template.$container!==r.$container})),"Cannot mount multiple instances on the same dom element"),S(this.$container.clientWidth&&this.$container.clientHeight,"The width and height of the container cannot be 0"),n.whitelist.state?this.initDesktop():this.initMobile()}return n(e,[{key:"query",value:function(t){return p(t,this.$container)}},{key:"initDesktop",value:function(){this.$container.innerHTML='\n
Player version:
3.1.19
Video url:
Video volume:
Video time:
Video duration:
Video resolution:
x
[x]
×
\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")}},{key:"initMobile",value:function(){this.$container.innerHTML='\n
\n
',this.$player=this.query(".art-video-player"),this.$video=this.query(".art-video")}},{key:"destroy",value:function(t){t?this.$container.innerHTML="":h(this.$player,"art-destroy")}}]),e}(),tt={"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:"正常",Open:"打开","Switch video":"切换","Switch subtitle":"切换字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"网页全屏","Exit web fullscreen":"退出网页全屏","Mini player":"迷你播放器","Does not support fullscreen":"不支持全屏","Local Subtitle":"本地字幕","Local Video":"本地视频","Subtitle offset time":"字幕偏移时间","No subtitles found":"未发现字幕"},et={"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:"正常",Open:"打開","Switch video":"切換","Switch subtitle":"切換字幕",Fullscreen:"全屏","Exit fullscreen":"退出全屏","Web fullscreen":"網頁全屏","Exit web fullscreen":"退出網頁全屏","Mini player":"迷你播放器","Does not support fullscreen":"不支持全屏","Local Subtitle":"本地字幕","Local Video":"本地視頻","Subtitle offset time":"字幕偏移時間","No subtitles found":"未發現字幕"},nt=function(){function e(n){t(this,e),this.art=n,this.languages={"zh-cn":tt,"zh-tw":et},this.init()}return n(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=B(this.languages,t),this.init()}}]),e}();var rt=r((function(t){!function(){var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=t.exports,r="undefined"!=typeof Element&&"ALLOW_KEYBOARD_INPUT"in Element,i=function(){for(var t,n=[["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"]],r=0,i=n.length,o={};rh){var y=h*l/u;g(r,"width","".concat(100*y,"%")),g(r,"height","100%"),g(r,"padding","0 ".concat((f-f*y)/2,"px"))}else{var v=u/h/l;g(r,"width","100%"),g(r,"height","".concat(100*v,"%")),g(r,"padding","".concat((p-p*v)/2,"px 0"))}}i.dataset.aspectRatio=n,a.show("".concat(o.get("Aspect ratio"),": ").concat("default"===n?o.get("Default"):n)),t.emit("aspectRatioChange",n)}else e.aspectRatio&&(g(r,"width",null),g(r,"height",null),g(r,"padding",null),delete i.dataset.aspectRatio,t.emit("aspectRatioRemove"))}}),Object.defineProperty(e,"aspectRatioReset",{set:function(n){if(n&&e.aspectRatio){var r=e.aspectRatio;e.aspectRatio=r,t.emit("aspectRatioReset")}}})}(n,this),function(t,e){var n=t.option,r=t.notice,i=t.template.$video;Object.defineProperty(e,"getScreenshotDataURL",{value:function(){try{var t=document.createElement("canvas");return t.width=i.videoWidth,t.height=i.videoHeight,t.getContext("2d").drawImage(i,0,0),t.toDataURL("image/png")}catch(t){throw r.show(t),t}}}),Object.defineProperty(e,"getScreenshotBlobUrl",{value:function(){return new Promise((function(t,e){try{var n=document.createElement("canvas");n.width=i.videoWidth,n.height=i.videoHeight,n.getContext("2d").drawImage(i,0,0),n.toBlob((function(e){t(URL.createObjectURL(e))}))}catch(t){r.show(t),e(t)}}))}}),Object.defineProperty(e,"screenshot",{value:function(){var r=e.getScreenshotDataURL();r&&(C(r,"".concat(n.title||"artplayer","_").concat(Y(i.currentTime),".png")),t.emit("screenshot",r))}})}(n,this),function(t,e){var n=t.i18n,r=t.notice,i=t.events.destroyEvents,o=t.template.$player,a=function(){t.emit("fullscreenChange",rt.isFullscreen)},c=function(){r.show(n.get("Does not support fullscreen"))};e.fullscreenIsEnabled&&(rt.on("change",a),rt.on("error",c),i.push((function(){rt.off("change",a),rt.off("error",c)}))),Object.defineProperty(e,"fullscreen",{get:function(){return rt.isFullscreen},set:function(n){e.fullscreenIsEnabled?n?(e.fullscreenWeb&&(e.fullscreenWeb=!1),rt.request(o).then((function(){h(o,"art-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenEnabled")}))):(e.fullscreenWeb&&(e.fullscreenWeb=!1),rt.exit().then((function(){y(o,"art-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenExit")}))):c()}}),Object.defineProperty(e,"fullscreenToggle",{set:function(t){t&&(e.fullscreen=!e.fullscreen)}}),Object.defineProperty(e,"fullscreenIsEnabled",{get:function(){return rt.isEnabled}})}(n,this),function(t,e){var n=t.template.$player;Object.defineProperty(e,"fullscreenWeb",{get:function(){return v(n,"art-web-fullscreen")},set:function(r){r?(e.fullscreen&&(e.fullscreen=!1),h(n,"art-web-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenWebEnabled")):(e.fullscreen&&(e.fullscreen=!1),y(n,"art-web-fullscreen"),e.aspectRatioReset=!0,t.emit("fullscreenWebExit"))}}),Object.defineProperty(e,"fullscreenWebToggle",{set:function(t){t&&(e.fullscreenWeb=!e.fullscreenWeb)}})}(n,this),it(n,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}}),Object.defineProperty(e,"loadedTime",{get:function(){return n.buffered.length?n.buffered.end(n.buffered.length-1):0}})}(n,this),function(t,e){Object.defineProperty(e,"played",{get:function(){return t.template.$video.currentTime/t.template.$video.duration}})}(n,this),function(t,e){var n=t.template.$video;Object.defineProperty(e,"playing",{get:function(){return!!(n.currentTime>0&&!n.paused&&!n.ended&&n.readyState>2)}})}(n,this),function(t,e){var n=t.template,r=n.$container,i=n.$player,o=n.$video;Object.defineProperty(e,"autoSize",{get:function(){return v(r,"art-auto-size")},set:function(n){if(n){var a=o.videoWidth,c=o.videoHeight,s=r.getBoundingClientRect(),u=s.width,l=s.height,f=a/c,p=u/l;if(h(r,"art-auto-size"),p>f){g(i,"width","".concat(l*f/u*100,"%")),g(i,"height","100%")}else{var d=u/f/l*100;g(i,"width","100%"),g(i,"height","".concat(d,"%"))}t.emit("autoSizeChange",{width:e.width,height:e.height})}else y(r,"art-auto-size"),g(i,"width",null),g(i,"height",null),t.emit("autoSizeRemove")}})}(n,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}})}(n,this),function(t,e){Object.defineProperty(e,"flip",{get:function(){return t.template.$player.dataset.flip},set:function(e){if(e){var n=["normal","horizontal","vertical"];S(n.includes(e),"'flip' only accept ".concat(n.toString()," as parameters")),t.template.$player.dataset.flip=e,t.emit("flipChange",e)}else delete t.template.$player.dataset.flip,t.emit("flipRemove")}})}(n,this),H(n,this)};var at=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=c(t)););return t},ct=r((function(t){function e(n,r,i){return"undefined"!=typeof Reflect&&Reflect.get?t.exports=e=Reflect.get:t.exports=e=function(t,e,n){var r=at(t,e);if(r){var i=Object.getOwnPropertyDescriptor(r,e);return i.get?i.get.call(n):i.value}},e(n,r,i||n)}t.exports=e})),st=function(){function e(n){t(this,e),this.id=0,this.art=n,this.add=this.add.bind(this),this.name=this.constructor.name.toLowerCase()}return n(e,[{key:"toggle",value:function(){this.show=!this.show}},{key:"add",value:function(t,e){var n=this,r="function"==typeof t?t(this.art):t;if(!this.$parent||r.disable)return{};this.id+=1;var i=r.name||"".concat(this.name).concat(this.id);S(!W(this,i),"Cannot add a component that already has the same name: ".concat(i));var o=document.createElement("div");o.classList.value="art-".concat(this.name," art-").concat(this.name,"-").concat(i),r.html&&m(o,r.html),r.style&&b(o,r.style),r.tooltip&&P(o,r.tooltip);var a=Array.from(this.$parent.children);o.dataset.index=r.index||this.id;var c=a.find((function(t){return Number(t.dataset.index)>=Number(o.dataset.index)}));return c?c.insertAdjacentElement("beforebegin",o):m(this.$parent,o),r.click&&this.art.events.proxy(o,"click",(function(t){t.preventDefault(),r.click.call(n.art,n,t)})),r.mounted&&r.mounted(o,this,this.art),e&&e(o,this,this.art),F(this,i,{value:{get $ref(){return o},set show(t){g(o,"display",t?"block":"none")}}}),this.art.emit("".concat(this.name,":add"),r),this[i]}},{key:"show",get:function(){return v(this.art.template.$player,"art-".concat(this.name,"-show"))},set:function(t){S(!1===t||!0===t,"The show attribute expects a boolean value");var e=this.art.template.$player,n="art-".concat(this.name,"-show");t?h(e,n):y(e,n),this.art.emit("".concat(this.name,":toggle"),t)}}]),e}();var ut=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t};function lt(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 ft(t){return function(e){return function(t){for(var e=1;e
\n'),mounted:function(t){var n=!1,i=p(".art-progress-loaded",t),c=p(".art-progress-played",t),s=p(".art-progress-highlight",t),u=p(".art-progress-indicator",t),l=p(".art-progress-tip",t);function f(t,e){"loaded"===t&&g(i,"width","".concat(100*e,"%")),"played"===t&&(g(c,"width","".concat(100*e,"%")),g(u,"left","calc(".concat(100*e,"% - ").concat(w(u,"width")/2,"px)")))}r.forEach((function(t){var e=_(t.time,0,a.duration)/a.duration*100;m(s,''))})),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)})),o(t,"mousemove",(function(n){g(l,"display","block"),n.composedPath().indexOf(s)>-1?function(n){var r=bt(e,n).width,i=n.target.dataset.text;l.innerHTML=i;var o=l.clientWidth;r<=o/2?g(l,"left",0):r>t.clientWidth-o/2?g(l,"left","".concat(t.clientWidth-o,"px")):g(l,"left","".concat(r-o/2,"px"))}(n):function(n){var r=bt(e,n),i=r.width,o=r.time;l.innerHTML=o;var a=l.clientWidth;i<=a/2?g(l,"left",0):i>t.clientWidth-a/2?g(l,"left","".concat(t.clientWidth-a,"px")):g(l,"left","".concat(i-a/2,"px"))}(n)})),o(t,"mouseout",(function(){g(l,"display","none")})),o(t,"click",(function(t){if(t.target!==u){var n=bt(e,t),r=n.second;f("played",n.percentage),a.seek=r}})),o(u,"mousedown",(function(){n=!0})),o(document,"mousemove",(function(t){if(n){var r=bt(e,t),i=r.second,o=r.percentage;h(u,"art-show-indicator"),f("played",o),a.seek=i}})),o(document,"mouseup",(function(){n&&(n=!1,y(u,"art-show-indicator"))}))}})}}function Ot(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 jt(t){return function(e){return function(t){for(var e=1;e'),l=m(u,'
');function f(t){var e=u.getBoundingClientRect(),n=e.left,r=e.width,i=l.getBoundingClientRect().width;return _(t.pageX-n-i/2,0,r-i/2)/(r-i)}function p(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.7;if(i.muted||0===t)g(c,"display","none"),g(s,"display","flex"),g(l,"left","0");else{var e=((w(u,"width")||60)-w(l,"width"))*t;g(c,"display","flex"),g(s,"display","none"),g(l,"left","".concat(e,"px"))}}P(c,o.get("Mute")),g(s,"display","none"),p(i.volume),e.on("video:volumechange",(function(){p(i.volume)})),n(c,"click",(function(){i.muted=!0})),n(s,"click",(function(){i.muted=!1})),n(u,"click",(function(t){i.muted=!1,i.volume=f(t)})),n(l,"mousedown",(function(){a=!0})),n(document,"mousemove",(function(t){a&&(i.muted=!1,i.volume=f(t))})),n(document,"mouseup",(function(){a&&(a=!1)}))}})}}function St(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 $t(t){return function(e){return function(t){for(var e=1;er.clientWidth-s/2?g(t,"left","".concat(r.clientWidth-s,"px")):g(t,"left","".concat(o-s/2,"px"))}(i))})),o(r,"mouseout",(function(){g(t,"display","none")}))}})}}function Tt(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 Ct(t){return function(e){return function(t){for(var e=1;e'.concat(s.name,"")),l=n.map((function(t,e){return'
').concat(t.name,"
")})).join(""),f=m(t,'
'.concat(l,"
"));o(t,(function(){f.style.left="-".concat(w(f,"width")/2-t.clientWidth/2,"px")})),i(f,"click",(function(t){var e=Number(t.target.dataset.index),r=n[e],i=r.url,o=r.name;i&&o&&c!==e&&(a.switchQuality(i,o),u.innerHTML=o,c=e)}))}})}}var Mt=function(e){function r(e){var n;t(this,r),n=a(this,c(r).call(this,e));var i=e.option;return e.on("ready",(function(){n.add(wt({name:"progress",disable:i.isLive,position:"top",index:10})),n.add(Dt({name:"thumbnails",disable:!i.thumbnails.url||i.isLive,position:"top",index:20})),n.add(mt({name:"playAndPause",disable:!1,position:"left",index:10})),n.add(Et({name:"volume",disable:!1,position:"left",index:20})),n.add(xt({name:"time",disable:i.isLive,position:"left",index:30})),n.add(At({name:"quality",disable:0===i.quality.length,position:"right",index:10})),n.add(Ct({name:"screenshot",disable:!i.screenshot,position:"right",index:20})),n.add(jt({name:"subtitle",disable:!i.subtitle.url,position:"right",index:30})),n.add($t({name:"setting",disable:!i.setting,position:"right",index:40})),n.add(yt({name:"pip",disable:!i.pip,position:"right",index:50})),n.add(dt({name:"fullscreenWeb",disable:!i.fullscreenWeb,position:"right",index:60})),n.add(ft({name:"fullscreen",disable:!i.fullscreen,position:"right",index:70})),i.controls.forEach((function(t){n.add(t)}))})),n}return u(r,e),n(r,[{key:"add",value:function(t,e){var n="function"==typeof t?t(this.art):t;S(n.position,"Controls option.position can not be empty");var i=this.art.template,o=i.$progress,a=i.$controlsLeft,s=i.$controlsRight;switch(n.position){case"top":this.$parent=o;break;case"left":this.$parent=a;break;case"right":this.$parent=s}var u=ct(c(r.prototype),"add",this).call(this,n,e);return n.disable||"top"===n.position||u.$ref.firstElementChild&&"I"===u.$ref.firstElementChild.tagName||h(u.$ref,"art-control-onlyText"),u}}]),r}(st);function zt(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 qt(t){return function(e){var n=e.i18n,r=e.player;return function(t){for(var e=1;e0.5\n0.75\n').concat(n.get("Normal"),'\n1.25\n1.5\n2.0'),click:function(t,e){var n=e.target.dataset.rate;n&&(r.playbackRate=Number(n),t.show=!1)},mounted:function(t){e.on("playbackRateChange",(function(e){var n=d("span",t).find((function(t){return Number(t.dataset.rate)===e}));n&&j(n,"art-current")}))}})}}function Wt(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 Vt(t){return function(e){var n=e.i18n,r=e.player;return function(t){for(var e=1;e').concat(n.get("Default"),'\n4:3\n16:9'),click:function(t,e){var n=e.target.dataset.ratio;n&&(r.aspectRatio=n,t.show=!1)},mounted:function(t){e.on("aspectRatioChange",(function(e){var n=d("span",t).find((function(t){return t.dataset.ratio===e}));n&&j(n,"art-current")}))}})}}function Ft(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 Ht(t){return function(e){return function(t){for(var e=1;eArtPlayer 3.1.19'})}function Nt(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 Ut(t){return function(e){return function(t){for(var e=1;ec+a&&(h=a-d),n+p>l+o&&(y=o-p),g(u,"left","".concat(h,"px")),g(u,"top","".concat(y,"px"))})),l(s,"click",(function(t){t.composedPath().includes(u)||(r.show=!1)})),e.on("blur",(function(){r.show=!1}))})),r}return u(n,e),n}(st),Yt=function(e){function n(e){var r;t(this,n),r=a(this,c(n).call(this,e));var i=e.template,o=i.$infoPanel,s=i.$infoClose,u=i.$video;(0,e.events.proxy)(s,"click",(function(){r.show=!1}));var l=null,f=d("[data-video]",o);return e.on("destroy",(function(){clearTimeout(l)})),e.on("info:toggle",(function(t){clearTimeout(l),t&&function t(){f.forEach((function(t){var e=u[t.dataset.video];t.innerHTML="number"==typeof e?e.toFixed(2):e})),l=setTimeout((function(){t()}),1e3)}()})),r}return u(n,e),n}(st),Xt=function(e){function r(e){var n;t(this,r),n=a(this,c(r).call(this,e));var i=e.events.proxy,s=e.option.subtitle;return b(e.template.$subtitle,s.style),i(n.textTrack,"cuechange",n.update.bind(o(n))),s.url&&n.init(s.url),n}return u(r,e),n(r,[{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(t,"

")})).join(""),this.art.emit("subtitle:update",this.activeCue.text))}},{key:"switch",value:function(t,e){var n=this,r=this.art,i=r.i18n,o=r.notice;return this.init(t).then((function(t){return e&&o.show("".concat(i.get("Switch subtitle"),": ").concat(e)),n.art.emit("subtitle:switch",t),t}))}},{key:"init",value:function(t){var e=this,n=this.art,r=n.notice,i=n.template,o=i.$subtitle,a=i.$track;return fetch(t).then((function(t){return t.text()})).then((function(n){switch(e.art.emit("subtitle:load",t),T(t)){case"srt":return R($(n));case"ass":return R(D(n));case"vtt":return R(n);default:return t}})).then((function(t){return o.innerHTML="",e.url===t?t:(URL.revokeObjectURL(e.url),a.src=t,t)})).catch((function(t){throw r.show(t),e.art.emit("subtitle:err",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]}}]),r}(st);var Zt=function(){function e(n){var r=this;t(this,e),this.destroyEvents=[],this.proxy=this.proxy.bind(this),this.hover=this.hover.bind(this),this.loadImg=this.loadImg.bind(this),n.whitelist.state&&n.once("video:canplay",(function(){!function(t,e){var n=t.template.$player;e.proxy(document,["click","contextmenu"],(function(e){e.composedPath().indexOf(n)>-1?(t.isFocus=!0,t.emit("focus")):(t.isFocus=!1,t.emit("blur"))}))}(n,r),function(t,e){var n=t.template.$player;e.hover(n,(function(){h(n,"art-hover"),t.emit("hoverenter")}),(function(){y(n,"art-hover"),t.emit("hoverleave")}))}(n,r),function(t,e){var n=t.template,r=n.$player,i=n.$video,o=t.player,a=N((function(){h(r,"art-hide-cursor"),y(r,"art-hover"),t.controls.show=!1}),3e3);t.on("hoverleave",(function(){o.playing&&a()})),e.proxy(r,"mousemove",(function(e){a.clearTimeout(),y(r,"art-hide-cursor"),t.controls.show=!0,!t.player.pip&&o.playing&&e.target===i&&a(),t.emit("mousemove")}))}(n,r),function(t,e){var n=t.option,r=t.player,i=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=r.width,c=r.height,s=U((function(){r.width===a&&r.height===c||(a=r.width,c=r.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:r.width,height:r.height}))}),500);e.proxy(o,"load",(function(){e.proxy(o.contentDocument.defaultView,"resize",s)})),i.appendChild(o)}(n,r)}))}return n(e,[{key:"proxy",value:function(t,e,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};Array.isArray(e)?e.forEach((function(e){return r.proxy(t,e,n,i)})):(t.addEventListener(e,n,i),this.destroyEvents.push((function(){t.removeEventListener(e,n,i)})))}},{key:"hover",value:function(t,e,n){e&&this.proxy(t,"mouseenter",e),n&&this.proxy(t,"mouseleave",n)}},{key:"loadImg",value:function(t){var e=this;return new Promise((function(n,r){var i;if(t instanceof HTMLImageElement)i=t;else{if("string"!=typeof t)return r(t);(i=new Image).src=t}return i.complete?n(i):(e.proxy(i,"load",(function(){return n(i)})),e.proxy(i,"error",(function(){return r(i)})),t)}))}},{key:"destroy",value:function(){this.destroyEvents.forEach((function(t){return t()}))}}]),e}(),Jt=function(){function e(n){var r=this;t(this,e),this.keys={};var i=n.option,o=n.player,a=n.events.proxy;i.hotkey&&n.on("ready",(function(){r.add(27,(function(){o.fullscreenWeb&&(o.fullscreenWeb=!1)})),r.add(32,(function(){o.toggle=!0})),r.add(37,(function(){o.seek=o.currentTime-5})),r.add(38,(function(){o.volume+=.1})),r.add(39,(function(){o.seek=o.currentTime+5})),r.add(40,(function(){o.volume-=.1})),a(window,"keydown",(function(t){if(n.isFocus){var e=document.activeElement.tagName.toUpperCase(),i=document.activeElement.getAttribute("contenteditable");if("INPUT"!==e&&"TEXTAREA"!==e&&""!==i&&"true"!==i){var o=r.keys[t.keyCode];o&&(t.preventDefault(),o.forEach((function(t){return t()})),n.emit("hotkey",t))}}}))}))}return n(e,[{key:"add",value:function(t,e){this.keys[t]?this.keys[t].push(e):this.keys[t]=[e]}}]),e}(),Gt=function(e){function n(e){var r;return t(this,n),(r=a(this,c(n).call(this,e))).$parent=e.template.$layer,e.on("ready",(function(){e.option.layers.forEach((function(t){r.add(t)}))})),r}return u(n,e),n}(st),Kt=function(e){function n(e){var r;return t(this,n),r=a(this,c(n).call(this,e)),m(e.template.$loading,e.icons.loading),r}return u(n,e),n}(st),Qt=function(){function e(n){t(this,e),this.art=n,this.timer=null}return n(e,[{key:"show",value:function(t){var e=this,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,i=this.art.template,o=i.$player,a=i.$noticeInner;a.innerHTML=t instanceof Error?t.message.trim():t,clearTimeout(this.timer),n&&(this.timer=setTimeout((function(){e.hide()}),r)),h(o,"art-notice-show"),this.art.emit("notice:toggle",!0)}},{key:"hide",value:function(){var t=this.art.template,e=t.$player;t.$noticeInner.innerHTML="",y(e,"art-notice-show"),this.art.emit("notice:toggle",!0)}}]),e}(),te=function(e){function n(e){var r;return t(this,n),r=a(this,c(n).call(this,e)),m(e.template.$state,e.icons.state),r}return u(n,e),n}(st),ee=function e(n){var r=this;t(this,e);var i=Object.assign({loading:'\n',state:'\n',play:'\n',pause:'\n',volume:'\n',volumeClose:'\n',subtitle:'\n',screenshot:'\n\t\n\n',setting:'\n',fullscreen:'\n\t\n\t\n\t\n\t\n',fullscreenWeb:'\n\t\n',pip:'\n',prev:'\n',next:'\n'},n.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)),m(e,i[t]),r[t]=e}))};function ne(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 re(t){return function(e){var n=e.i18n,r=e.player;return function(t){for(var e=1;e'.concat(n.get("Flip"),'\n
\n
"),click:function(t,e){var n=e.target.dataset.value;n&&(r.flip=n)},mounted:function(t){e.on("flipChange",(function(e){var n=d("button",t).find((function(t){return t.dataset.value===e}));n&&j(n.parentElement,"current")}))}})}}function ie(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 oe(t){return function(e){var n=e.i18n,r=e.player;return function(t){for(var e=1;e'.concat(n.get("Aspect ratio"),'\n
\n
'),click:function(t,e){var n=e.target.dataset.value;n&&(r.aspectRatio=n)},mounted:function(t){e.on("aspectRatioChange",(function(e){var n=d("button",t).find((function(t){return t.dataset.value===e}));n&&j(n.parentElement,"current")}))}})}}function ae(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 ce(t){return function(e){var n=e.i18n,r=e.player,i=e.events.proxy;return function(t){for(var e=1;e'.concat(n.get("Play speed"),': 1.0x\n\n
\n
'),mounted:function(t){var n=p(".art-setting-range input",t),o=p(".art-subtitle-value",t);i(n,"change",(function(){var t=n.value;o.innerText=t,r.playbackRate=Number(t)})),e.on("playbackRateChange",(function(t){n.value!==t&&(n.value=t,o.innerText=t)}))}})}}var se=function(e){function n(e){var r;t(this,n),r=a(this,c(n).call(this,e));var i=e.option,o=e.template,s=o.$setting,u=o.$settingBody,l=e.events.proxy;return r.$parent=u,i.setting&&(e.on("ready",(function(){l(s,"click",(function(t){t.target===s&&(r.show=!1)})),r.add(re({disable:!i.flip,name:"flip"})),r.add(oe({disable:!i.aspectRatio,name:"aspectRatio"})),r.add(ce({disable:!i.playbackRate,name:"playbackRate"}))})),e.on("blur",(function(){r.show=!1}))),r}return u(n,e),n}(st),ue=function(){function e(n){t(this,e),this.art=n,this.name="artplayer_settings";var r=n.option,i=this.get("volume");i&&(r.volume=i)}return n(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(),ut({},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 le(t){var e=t.i18n,n=t.subtitle,r=t.events.proxy;return{title:"Subtitle",name:"subtitleOffset",index:20,html:'\n
'.concat(e.get("Subtitle offset time"),': 0s\n
\n
\n
'),mounted:function(e){var i=p(".art-setting-range input",e),o=p(".art-subtitle-value",e);r(i,"change",(function(){var e=i.value;o.innerText=e,t.plugins.subtitleOffset.offset(Number(e))})),t.on("subtitle:switch",(function(){i.value=0,o.innerText=0})),t.on("subtitleOffset",(function(t){n.update(),i.value!==t&&(i.value=t,o.innerText=t)}))}}}function fe(t){var e=t.constructor.utils.clamp,n=t.setting,r=t.notice,i=t.template,o=t.i18n,a=t.player;n.add(le);var c=[];return t.on("subtitle:switch",(function(){c=[]})),{name:"subtitleOffset",offset:function(n){if(i.$track&&i.$track.track){var s=Array.from(i.$track.track.cues),u=e(n,-5,5);s.forEach((function(t,n){c[n]||(c[n]={startTime:t.startTime,endTime:t.endTime}),t.startTime=e(c[n].startTime+u,0,a.duration),t.endTime=e(c[n].endTime+u,0,a.duration)})),r.show("".concat(o.get("Subtitle offset time"),": ").concat(n,"s")),t.emit("subtitleOffset",n)}else r.show("".concat(o.get("No subtitles found"))),t.emit("subtitleOffset",0)}}}function pe(t){var e=t.events.proxy,n=t.template,r=t.player,i=t.option,o=t.setting,a=t.i18n;function c(e){if(e){var o=n.$video.canPlayType(e.type);if("maybe"===o||"probably"===o){var a=URL.createObjectURL(e);i.title=e.name,r.switchUrl(a,e.name),t.emit("localVideo",e)}else S(!1,"Playback of this file format is not supported")}}function s(t){var n=m(t,'');g(t,"position","relative"),b(n,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(n,"change",(function(){c(n.files[0])}))}return e(n.$player,"dragover",(function(t){t.preventDefault()})),e(n.$player,"drop",(function(t){t.preventDefault(),c(t.dataTransfer.files[0])})),t.on("ready",(function(){o.add({title:"Local Video",name:"localVideo",index:30,html:'\n
'.concat(a.get("Local Video"),'\n
\n
').concat(a.get("Open"),'
\n
'),mounted:function(e){var n=p(".art-upload-btn",e),r=p(".art-upload-value",e);t.on("localVideo",(function(t){r.textContent=t.name,r.title=t.name})),s(n)}})})),{name:"localVideo",attach:s}}function de(t){var e=t.events.proxy,n=t.subtitle,r=t.setting,i=t.i18n;function o(r){var i=m(r,'');g(r,"position","relative"),b(i,{position:"absolute",width:"100%",height:"100%",left:"0",top:"0",opacity:"0"}),e(i,"change",(function(){!function(r){if(r){var i=T(r.name);if(["ass","vtt","srt"].includes(i)){var o=new FileReader;e(o,"load",(function(e){var o=e.target.result;switch(i){case"srt":var a=R($(o));n.switch(a,r.name);break;case"ass":var c=R(D(o));n.switch(c,r.name);break;case"vtt":var s=R(o);n.switch(s,r.name)}t.emit("localSubtitle",r)})),o.readAsText(r)}else S(!1,"Only supports subtitle files in .ass, .vtt and .srt format")}}(i.files[0])}))}return t.on("ready",(function(){r.add({title:"Local Subtitle",name:"localSubtitle",index:40,html:'\n
'.concat(i.get("Local Subtitle"),'\n
\n
').concat(i.get("Open"),'
\n
'),mounted:function(e){var n=p(".art-upload-btn",e),r=p(".art-upload-value",e);t.on("localSubtitle",(function(t){r.textContent=t.name,r.title=t.name})),o(n)}})})),{name:"localSubtitle",attach:o}}function he(t){var e=t.layers,n=t.player,r=t.option.theme;return e.add({name:"miniProgressBar",style:{display:"none",position:"absolute",left:0,right:0,bottom:0,height:"2px",background:r},mounted:function(e){t.on("control:toggle",(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*n.played,"%")}))}}),{name:"miniProgressBar"}}function ye(t){var e=1e4,n=0,r=0,i=0,o=null;function a(){n=0,r=0,i=0,cancelAnimationFrame(o),o=null}function c(){o||function a(){t.isDestroy||(o=requestAnimationFrame((function(){var o=Date.now();if(i){var c=o-i;r+=c,t.player.playing||(n+=c)}i=o,t.emit("networkMonitor",n/r),r>=e&&(n=0,r=0),a()})))}()}return t.on("play",c),t.on("pause",a),{name:"networkMonitor",reset:a,start:c,sample:function(t){e=t}}}function ve(t){var e=t.events,n=t.player,r=t.template,i=N((function(){var e=r.$player.getBoundingClientRect();e.top+e.height<=0&&!n.pip?(n.pip=!0,t.emit("autoPip",!0)):n.pip&&(n.pip=!1,t.emit("autoPip",!1))}),300);return e.proxy(window,"scroll",i),{name:"autoPip"}}var me=function(){function e(n){var r=this;t(this,e),this.art=n,this.id=0;var i=n.option;i.subtitle.url&&i.subtitleOffset&&this.add(fe),!i.isLive&&i.miniProgressBar&&this.add(he),i.localVideo&&this.add(pe),i.localSubtitle&&this.add(de),i.networkMonitor&&this.add(ye),i.autoPip&&this.add(ve),n.option.plugins.forEach((function(t){r.add(t)}))}return n(e,[{key:"add",value:function(t){this.id+=1;var e=t.call(this,this.art),n="";return S(!W(this,n=e&&e.name?e.name:t.name?t.name:"plugin".concat(this.id)),"Cannot add a plugin that already has the same name: ".concat(n)),Object.defineProperty(this,n,{value:e}),this.art.emit("plugin:add",t),this}}]),e}(),ge=function e(n){t(this,e);var r=n.option,i=n.events.proxy,o=n.template.$video;G.video.events.forEach((function(t){i(o,t,(function(t){n.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=_(r.volume,0,1)),r.poster&&(o.poster=r.poster),r.autoplay&&(o.autoplay=r.autoplay),o.controls=!0;var a=r.type||T(r.url),c=r.customType[a];a&&c?(n.emit("beforeCustomType",a),c(o,r.url,n),n.emit("afterCustomType",a)):(n.emit("beforeAttachUrl",r.url),o.src=r.url,n.emit("afterAttachUrl",o.src))},be=0,we=function(e){function r(e){var n;return t(this,r),(n=a(this,c(r).call(this))).option=l(B(r.option,e),J),n.isFocus=!1,n.isDestroy=!1,n.whitelist=new K(o(n)),n.template=new Q(o(n)),n.events=new Zt(o(n)),n.whitelist.state?(n.storage=new ue(o(n)),n.icons=new ee(o(n)),n.i18n=new nt(o(n)),n.notice=new Qt(o(n)),n.player=new ot(o(n)),n.layers=new Gt(o(n)),n.controls=new Mt(o(n)),n.contextmenu=new _t(o(n)),n.subtitle=new Xt(o(n)),n.info=new Yt(o(n)),n.loading=new Kt(o(n)),n.hotkey=new Jt(o(n)),n.mask=new te(o(n)),n.setting=new se(o(n)),n.plugins=new me(o(n))):n.mobile=new ge(o(n)),be+=1,n.id=be,r.instances.push(o(n)),n}return u(r,e),n(r,[{key:"destroy",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.events.destroy(),this.template.destroy(t),r.instances.splice(r.instances.indexOf(this),1),this.isDestroy=!0,this.emit("destroy")}}],[{key:"version",get:function(){return"3.1.19"}},{key:"env",get:function(){return'"production"'}},{key:"config",get:function(){return G}},{key:"utils",get:function(){return X}},{key:"scheme",get:function(){return J}},{key:"Emitter",get:function(){return f}},{key:"validator",get:function(){return l}},{key:"kindOf",get:function(){return l.kindOf}},{key:"option",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,subtitleOffset:!1,miniProgressBar:!1,localVideo:!1,localSubtitle:!1,autoPip:!1,networkMonitor:!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:"metadata"},icons:{},customType:{},lang:navigator.language.toLowerCase()}}}]),r}(f);return Object.defineProperty(we,"instances",{value:[]}),console.log("%c ArtPlayer %c 3.1.19 %c https://artplayer.org","color: #fff; background: #5f5f5f","color: #fff; background: #4bc729",""),we})); diff --git a/docs/uncompiled/artplayer-plugin-backlight.js b/docs/uncompiled/artplayer-plugin-backlight.js index 5feab7f7b..155b41751 100644 --- a/docs/uncompiled/artplayer-plugin-backlight.js +++ b/docs/uncompiled/artplayer-plugin-backlight.js @@ -2,7 +2,7 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.artplayerPluginBacklight = factory()); -}(this, function () { 'use strict'; +}(this, (function () { 'use strict'; function matrixCallback(callback) { var result = []; @@ -138,5 +138,5 @@ return artplayerPluginBacklight; -})); +}))); //# sourceMappingURL=artplayer-plugin-backlight.js.map diff --git a/docs/uncompiled/artplayer-plugin-danmuku.js b/docs/uncompiled/artplayer-plugin-danmuku.js index 2015c3776..7cc9ecc80 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku.js +++ b/docs/uncompiled/artplayer-plugin-danmuku.js @@ -2,7 +2,7 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.artplayerPluginDanmuku = factory()); -}(this, function () { 'use strict'; +}(this, (function () { 'use strict'; function _defineProperty(obj, key, value) { if (key in obj) { @@ -21,27 +21,6 @@ var defineProperty = _defineProperty; - function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } - - return target; - } - - var objectSpread = _objectSpread; - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); @@ -220,6 +199,10 @@ var arrayWithHoles = _arrayWithHoles; function _iterableToArrayLimit(arr, i) { + if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { + return; + } + var _arr = []; var _n = true; var _d = false; @@ -422,6 +405,10 @@ return calculatedTop(danmus); } + 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(source, true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + var Danmuku = /*#__PURE__*/ function () { @@ -493,9 +480,6 @@ danmu.$ref.style.transform = "translateX(".concat(-danmu.$restWidth, "px) translateY(0px) translateZ(0px)"); danmu.$ref.style.transition = "transform ".concat(danmu.$restTime, "s linear 0s"); break; - - default: - break; } }); } @@ -521,9 +505,6 @@ danmu.$ref.style.transition = 'transform 0s linear 0s'; break; } - - default: - break; } }); } @@ -601,9 +582,6 @@ danmu.$ref.style.left = '50%'; danmu.$ref.style.marginLeft = "-".concat(danmuWidth / 2, "px"); break; - - default: - break; } }); } @@ -663,7 +641,7 @@ danmu.time = player.currentTime; } - this.queue.push(objectSpread({ + this.queue.push(_objectSpread({ mode: 'scroll' }, danmu, { $state: 'wait', @@ -719,5 +697,5 @@ return artplayerPluginDanmuku; -})); +}))); //# sourceMappingURL=artplayer-plugin-danmuku.js.map diff --git a/docs/uncompiled/artplayer-plugin-danmuku.js.map b/docs/uncompiled/artplayer-plugin-danmuku.js.map index de156b4c1..e81b189c7 100644 --- a/docs/uncompiled/artplayer-plugin-danmuku.js.map +++ b/docs/uncompiled/artplayer-plugin-danmuku.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer-plugin-danmuku.js","sources":["../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../packages/artplayer-plugin-danmuku/src/i18n.js","../../packages/artplayer-plugin-danmuku/src/setting.js","../../packages/artplayer-plugin-danmuku/src/utils.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../packages/artplayer-plugin-danmuku/src/bilibili.js","../../packages/artplayer-plugin-danmuku/src/getDanmuTop.js","../../packages/artplayer-plugin-danmuku/src/danmuku.js","../../packages/artplayer-plugin-danmuku/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;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","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;","export default {\n 'zh-cn': {\n 'Danmu opacity': '弹幕透明度',\n 'Danmu speed': '弹幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '弹幕文本不能为空',\n 'The length of the danmu does not exceed': '弹幕文本字数不能超过',\n 'Danmu speed synchronous playback multiple': '弹幕速度同步播放倍数',\n },\n 'zh-tw': {\n 'Danmu opacity': '彈幕透明度',\n 'Danmu speed': '彈幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '彈幕文本不能為空',\n 'The length of the danmu does not exceed': '彈幕文本字數不能超過',\n 'Danmu speed synchronous playback multiple': '彈幕速度同步播放倍數',\n },\n};","export function opacity(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-opacity',\n index: 10,\n html: `\n
\n ${i18n.get('Danmu opacity')}: 100%\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = Number(value) * 100;\n\n art.plugins.artplayerPluginDanmuku.config({\n opacity: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.opacity) {\n $range.value = config.opacity;\n $value.innerText = config.opacity * 100;\n }\n });\n },\n };\n}\n\nexport function size(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-size',\n index: 11,\n html: `\n
\n ${i18n.get('Danmu size')}: 25px\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n fontSize: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.fontSize) {\n $range.value = config.fontSize;\n $value.innerText = config.fontSize;\n }\n });\n },\n };\n}\n\nexport function speed(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-speed',\n index: 12,\n html: `\n
\n ${i18n.get('Danmu speed')}: 5s\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n speed: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.speed) {\n $range.value = config.speed;\n $value.innerText = config.speed;\n }\n });\n },\n };\n}\n\nexport function synchronousPlayback(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n return {\n name: 'danmuku-synchronousPlayback',\n index: 13,\n html: `\n \n `,\n mounted: $setting => {\n const $checkbox = $setting.querySelector('input[type=checkbox]');\n proxy($checkbox, 'change', () => {\n art.plugins.artplayerPluginDanmuku.config({\n synchronousPlayback: $checkbox.checked,\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($checkbox.checked !== config.synchronousPlayback) {\n $checkbox.checked = config.synchronousPlayback;\n }\n });\n },\n };\n}\n","export function filter(queue, state, callback) {\n return queue.filter(danmu => danmu.$state === state).map(callback);\n}\n\nexport function getRect(ref, key) {\n const result = ref.getBoundingClientRect();\n return key ? result[key] : result;\n}\n\nexport function getDanmuRef(queue) {\n const result = queue.find(danmu => {\n return danmu.$ref && danmu.$state === 'wait';\n });\n\n if (result) {\n const { $ref } = result;\n result.$ref = null;\n return $ref;\n }\n\n const $ref = document.createElement('div');\n $ref.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 `;\n\n return $ref;\n}","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 'scroll';\n case 4:\n case 5:\n return 'static';\n default:\n return null;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const srtList = xmlString.match(/[\\S ]*?)<\\/d>/gi);\n return srtList.length\n ? srtList.map(item => {\n const [, attrStr, text] = item.match(/(.+)<\\/d>/);\n const attr = attrStr.split(',');\n return attr.length === 8 && text.trim()\n ? {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n }\n : null;\n })\n : [];\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then(res => res.text())\n .then(xmlString => {\n return bilibiliDanmuParseFromXml(xmlString);\n });\n}\n\nexport function bilibiliDanmuParseFromAv(av) {\n const corsUrl = 'https://cors-anywhere.herokuapp.com/';\n return fetch(`${corsUrl}https://api.bilibili.com/x/web-interface/view?aid=${av}`)\n .then(res => res.json())\n .then(res => {\n if (res.code === 0 && res.data && res.data.cid) {\n return bilibiliDanmuParseFromUrl(`${corsUrl}https://api.bilibili.com/x/v1/dm/list.so?oid=${res.data.cid}`);\n }\n throw new Error(`Unable to get data: ${JSON.stringify(res)}`);\n });\n}","import { getRect } from './utils';\n\nfunction calculatedTop(danmus) {\n let top = 0;\n const topMap = {};\n for (let index = 0; index < danmus.length; index += 1) {\n const item = danmus[index];\n if (topMap[item.top]) {\n topMap[item.top].push(item);\n } else {\n topMap[item.top] = [item];\n }\n }\n const topMapKeys = Object.keys(topMap);\n\n let maxDiff = 0;\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevTop = prev.top + prev.height;\n const diff = item.top - prevTop;\n if (diff > maxDiff) {\n top = prevTop;\n maxDiff = diff;\n }\n }\n\n if (top === 0) {\n let maxRight = 0;\n for (let index = 0; index < topMapKeys.length; index += 1) {\n let minRight = danmus[0].width;\n const topKey = topMapKeys[index];\n const danmuArr = topMap[topKey];\n for (let index = 0; index < danmuArr.length; index += 1) {\n const danmu = danmuArr[index];\n if (danmu.right < minRight) {\n minRight = danmu.right;\n }\n }\n\n if (minRight > maxRight) {\n maxRight = minRight;\n [{ top }] = danmuArr;\n }\n }\n }\n\n if (top === 0) {\n [top] = topMapKeys\n .filter((item, index) => {\n return index !== 0 && index !== topMapKeys.length - 1;\n })\n .sort((prev, next) => {\n return topMap[prev].length - topMap[next].length;\n });\n }\n\n return top;\n}\n\nexport default function getDanmuTop(ins, danmu) {\n const [marginTop, marginBottom] = ins.option.margin;\n const playerData = getRect(ins.art.template.$player);\n const danmus = ins.queue\n .filter(\n item =>\n item.mode === danmu.mode &&\n item.$state === 'emit' &&\n item.$ref &&\n item.$ref.style.fontSize === danmu.$ref.style.fontSize &&\n parseFloat(item.$ref.style.top) <= playerData.height - marginBottom,\n )\n .map(item => {\n const danmuData = getRect(item.$ref);\n const { width, height } = danmuData;\n const top = danmuData.top - playerData.top;\n const left = danmuData.left - playerData.left;\n const right = playerData.width - left - width;\n return { top, left, height, width, right };\n })\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: playerData.width,\n });\n\n danmus.push({\n top: playerData.height - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: playerData.width,\n });\n\n return calculatedTop(danmus);\n}\n","import i18n from './i18n';\nimport { opacity, size, speed, synchronousPlayback } from './setting';\nimport { filter, getRect, getDanmuRef } from './utils';\nimport { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\n\nexport default class Danmuku {\n constructor(art, option) {\n art.i18n.update(i18n);\n art.setting.add(opacity);\n art.setting.add(size);\n art.setting.add(speed);\n art.setting.add(synchronousPlayback);\n this.art = art;\n this.queue = [];\n this.option = {};\n this.config(option);\n this.isStop = false;\n this.animationFrameTimer = null;\n this.$danmuku = art.template.$danmuku;\n art.on('video:play', this.start.bind(this));\n art.on('video:playing', this.start.bind(this));\n art.on('video:pause', this.stop.bind(this));\n art.on('video:waiting', this.stop.bind(this));\n art.on('resize', this.resize.bind(this));\n art.on('destroy', this.stop.bind(this));\n if (typeof this.option.danmuku === 'function') {\n this.option.danmuku().then(danmus => {\n danmus.forEach(this.emit.bind(this));\n art.emit('artplayerPluginDanmuku:loaded');\n });\n } else if (typeof this.option.danmuku === 'string') {\n bilibiliDanmuParseFromUrl(this.option.danmuku).then(danmus => {\n danmus.forEach(this.emit.bind(this));\n art.emit('artplayerPluginDanmuku:loaded');\n });\n } else {\n this.option.danmuku.forEach(this.emit.bind(this));\n art.emit('artplayerPluginDanmuku:loaded');\n }\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n maxlength: 50,\n margin: [10, 100],\n opacity: 1,\n fontSize: 25,\n synchronousPlayback: false,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n maxlength: 'number',\n margin: 'array',\n opacity: 'number',\n fontSize: 'number',\n synchronousPlayback: 'boolean',\n };\n }\n\n config(option) {\n const {\n utils: { clamp },\n validator,\n } = this.art.constructor;\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n validator(this.option, Danmuku.scheme);\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.maxlength = clamp(this.option.maxlength, 10, 100);\n this.option.margin[0] = clamp(this.option.margin[0], 0, 100);\n this.option.margin[1] = clamp(this.option.margin[1], 0, 100);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.fontSize = clamp(this.option.fontSize, 12, 30);\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n }\n\n continue() {\n filter(this.queue, 'stop', danmu => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 'scroll':\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n default:\n break;\n }\n });\n }\n\n suspend() {\n const { $player } = this.art.template;\n filter(this.queue, 'emit', danmu => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 'scroll': {\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const { left: danmuLeft } = getRect(danmu.$ref);\n const translateX = playerWidth - (danmuLeft - playerLeft) + 5;\n danmu.$ref.style.transform = `translateX(${-translateX}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n }\n\n resize() {\n const { $player } = this.art.template;\n const danmuLeft = getRect($player, 'width');\n filter(this.queue, 'wait', danmu => {\n if (danmu.$ref) {\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n }\n\n update() {\n const {\n player,\n template: { $player },\n } = this.art;\n this.animationFrameTimer = window.requestAnimationFrame(() => {\n if (player.playing) {\n const danmuLeft = getRect($player, 'width');\n\n filter(this.queue, 'emit', danmu => {\n danmu.$restTime -= (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n danmu.$state = 'wait';\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n\n this.queue\n .filter(\n danmu =>\n player.currentTime + 0.1 >= danmu.time &&\n danmu.time >= player.currentTime - 0.1 &&\n danmu.$state === 'wait',\n )\n .forEach(danmu => {\n danmu.$ref = getDanmuRef(this.queue);\n this.$danmuku.appendChild(danmu.$ref);\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.innerText = danmu.text;\n danmu.$ref.style.color = danmu.color;\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : 'none';\n danmu.$restTime =\n this.option.synchronousPlayback && player.playbackRate\n ? this.option.speed / Number(player.playbackRate)\n : this.option.speed;\n danmu.$lastStartTime = Date.now();\n const danmuWidth = getRect(danmu.$ref, 'width');\n const danmuTop = getDanmuTop(this, danmu);\n danmu.$state = 'emit';\n switch (danmu.mode) {\n case 'scroll': {\n danmu.$restWidth = danmuLeft + danmuWidth + 5;\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 'static':\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.marginLeft = `-${danmuWidth / 2}px`;\n break;\n default:\n break;\n }\n });\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.animationFrameTimer);\n this.art.emit('artplayerPluginDanmuku:stop');\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n }\n\n show() {\n this.$danmuku.style = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n }\n\n hide() {\n this.$danmuku.style = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n }\n\n emit(danmu) {\n const { notice, player, i18n } = this.art;\n if (!danmu.text.trim()) {\n notice.show(i18n.get('Danmu text cannot be empty'));\n return;\n }\n\n if (danmu.text.length > this.option.maxlength) {\n notice.show(`${i18n.get('The length of the danmu does not exceed')} ${this.option.maxlength}`);\n return;\n }\n\n if (typeof danmu.time !== 'number') {\n danmu.time = player.currentTime;\n }\n\n this.queue.push({\n mode: 'scroll',\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n $restWidth: 0,\n });\n }\n}\n","import Danmuku from './danmuku';\n\nexport default function artplayerPluginDanmuku(option) {\n return art => {\n const danmuku = new Danmuku(art, option);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n };\n };\n}"],"names":["opacity","art","i18n","proxy","events","name","index","html","get","mounted","$setting","$range","querySelector","$value","value","innerText","Number","plugins","artplayerPluginDanmuku","config","on","size","fontSize","speed","synchronousPlayback","$checkbox","checked","filter","queue","state","callback","danmu","$state","map","getRect","ref","key","result","getBoundingClientRect","getDanmuRef","find","$ref","document","createElement","style","cssText","getMode","bilibiliDanmuParseFromXml","xmlString","srtList","match","length","item","attrStr","text","attr","split","trim","time","mode","color","toString","timestamp","pool","userID","rowID","bilibiliDanmuParseFromUrl","url","fetch","then","res","calculatedTop","danmus","top","topMap","push","topMapKeys","Object","keys","maxDiff","prev","prevTop","height","diff","maxRight","minRight","width","topKey","danmuArr","right","sort","next","getDanmuTop","ins","option","margin","marginTop","marginBottom","playerData","template","$player","parseFloat","danmuData","left","unshift","Danmuku","update","setting","add","isStop","animationFrameTimer","$danmuku","start","bind","stop","resize","danmuku","forEach","emit","constructor","clamp","utils","validator","assign","scheme","maxlength","$lastStartTime","Date","now","transform","$restWidth","transition","$restTime","playerLeft","playerWidth","danmuLeft","translateX","border","marginLeft","player","window","requestAnimationFrame","playing","currentTime","appendChild","playbackRate","danmuWidth","danmuTop","suspend","cancelAnimationFrame","continue","notice","show","hide"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"artplayer-plugin-danmuku.js","sources":["../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/classCallCheck.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../packages/artplayer-plugin-danmuku/src/i18n.js","../../packages/artplayer-plugin-danmuku/src/setting.js","../../packages/artplayer-plugin-danmuku/src/utils.js","../../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../node_modules/@babel/runtime/helpers/nonIterableRest.js","../../node_modules/@babel/runtime/helpers/slicedToArray.js","../../packages/artplayer-plugin-danmuku/src/bilibili.js","../../packages/artplayer-plugin-danmuku/src/getDanmuTop.js","../../packages/artplayer-plugin-danmuku/src/danmuku.js","../../packages/artplayer-plugin-danmuku/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;","export default {\n 'zh-cn': {\n 'Danmu opacity': '弹幕透明度',\n 'Danmu speed': '弹幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '弹幕文本不能为空',\n 'The length of the danmu does not exceed': '弹幕文本字数不能超过',\n 'Danmu speed synchronous playback multiple': '弹幕速度同步播放倍数',\n },\n 'zh-tw': {\n 'Danmu opacity': '彈幕透明度',\n 'Danmu speed': '彈幕速度',\n 'Danmu size': '弹幕大小',\n 'Danmu text cannot be empty': '彈幕文本不能為空',\n 'The length of the danmu does not exceed': '彈幕文本字數不能超過',\n 'Danmu speed synchronous playback multiple': '彈幕速度同步播放倍數',\n },\n};","export function opacity(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-opacity',\n index: 10,\n html: `\n
\n ${i18n.get('Danmu opacity')}: 100%\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = Number(value) * 100;\n\n art.plugins.artplayerPluginDanmuku.config({\n opacity: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.opacity) {\n $range.value = config.opacity;\n $value.innerText = config.opacity * 100;\n }\n });\n },\n };\n}\n\nexport function size(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-size',\n index: 11,\n html: `\n
\n ${i18n.get('Danmu size')}: 25px\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n fontSize: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.fontSize) {\n $range.value = config.fontSize;\n $value.innerText = config.fontSize;\n }\n });\n },\n };\n}\n\nexport function speed(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n\n return {\n name: 'danmuku-speed',\n index: 12,\n html: `\n
\n ${i18n.get('Danmu speed')}: 5s\n
\n
\n \n
\n `,\n mounted: $setting => {\n const $range = $setting.querySelector('input[type=range]');\n const $value = $setting.querySelector('.art-value');\n proxy($range, 'change', () => {\n const { value } = $range;\n $value.innerText = value;\n\n art.plugins.artplayerPluginDanmuku.config({\n speed: Number(value),\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($range.value !== config.speed) {\n $range.value = config.speed;\n $value.innerText = config.speed;\n }\n });\n },\n };\n}\n\nexport function synchronousPlayback(art) {\n const {\n i18n,\n events: { proxy },\n } = art;\n return {\n name: 'danmuku-synchronousPlayback',\n index: 13,\n html: `\n \n `,\n mounted: $setting => {\n const $checkbox = $setting.querySelector('input[type=checkbox]');\n proxy($checkbox, 'change', () => {\n art.plugins.artplayerPluginDanmuku.config({\n synchronousPlayback: $checkbox.checked,\n });\n });\n\n art.on('artplayerPluginDanmuku:config', config => {\n if ($checkbox.checked !== config.synchronousPlayback) {\n $checkbox.checked = config.synchronousPlayback;\n }\n });\n },\n };\n}\n","export function filter(queue, state, callback) {\n return queue.filter(danmu => danmu.$state === state).map(callback);\n}\n\nexport function getRect(ref, key) {\n const result = ref.getBoundingClientRect();\n return key ? result[key] : result;\n}\n\nexport function getDanmuRef(queue) {\n const result = queue.find(danmu => {\n return danmu.$ref && danmu.$state === 'wait';\n });\n\n if (result) {\n const { $ref } = result;\n result.$ref = null;\n return $ref;\n }\n\n const $ref = document.createElement('div');\n $ref.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 `;\n\n return $ref;\n}","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","export function getMode(key) {\n switch (key) {\n case 1:\n case 2:\n case 3:\n return 'scroll';\n case 4:\n case 5:\n return 'static';\n default:\n return null;\n }\n}\n\nexport function bilibiliDanmuParseFromXml(xmlString) {\n if (typeof xmlString !== 'string') return [];\n const srtList = xmlString.match(/[\\S ]*?)<\\/d>/gi);\n return srtList.length\n ? srtList.map(item => {\n const [, attrStr, text] = item.match(/(.+)<\\/d>/);\n const attr = attrStr.split(',');\n return attr.length === 8 && text.trim()\n ? {\n text,\n time: Number(attr[0]),\n mode: getMode(Number(attr[1])),\n fontSize: Number(attr[2]),\n color: `#${Number(attr[3]).toString(16)}`,\n timestamp: Number(attr[4]),\n pool: Number(attr[5]),\n userID: attr[6],\n rowID: Number(attr[7]),\n }\n : null;\n })\n : [];\n}\n\nexport function bilibiliDanmuParseFromUrl(url) {\n return fetch(url)\n .then(res => res.text())\n .then(xmlString => {\n return bilibiliDanmuParseFromXml(xmlString);\n });\n}\n\nexport function bilibiliDanmuParseFromAv(av) {\n const corsUrl = 'https://cors-anywhere.herokuapp.com/';\n return fetch(`${corsUrl}https://api.bilibili.com/x/web-interface/view?aid=${av}`)\n .then(res => res.json())\n .then(res => {\n if (res.code === 0 && res.data && res.data.cid) {\n return bilibiliDanmuParseFromUrl(`${corsUrl}https://api.bilibili.com/x/v1/dm/list.so?oid=${res.data.cid}`);\n }\n throw new Error(`Unable to get data: ${JSON.stringify(res)}`);\n });\n}","import { getRect } from './utils';\n\nfunction calculatedTop(danmus) {\n let top = 0;\n const topMap = {};\n for (let index = 0; index < danmus.length; index += 1) {\n const item = danmus[index];\n if (topMap[item.top]) {\n topMap[item.top].push(item);\n } else {\n topMap[item.top] = [item];\n }\n }\n const topMapKeys = Object.keys(topMap);\n\n let maxDiff = 0;\n for (let index = 1; index < danmus.length; index += 1) {\n const item = danmus[index];\n const prev = danmus[index - 1];\n const prevTop = prev.top + prev.height;\n const diff = item.top - prevTop;\n if (diff > maxDiff) {\n top = prevTop;\n maxDiff = diff;\n }\n }\n\n if (top === 0) {\n let maxRight = 0;\n for (let index = 0; index < topMapKeys.length; index += 1) {\n let minRight = danmus[0].width;\n const topKey = topMapKeys[index];\n const danmuArr = topMap[topKey];\n for (let index = 0; index < danmuArr.length; index += 1) {\n const danmu = danmuArr[index];\n if (danmu.right < minRight) {\n minRight = danmu.right;\n }\n }\n\n if (minRight > maxRight) {\n maxRight = minRight;\n [{ top }] = danmuArr;\n }\n }\n }\n\n if (top === 0) {\n [top] = topMapKeys\n .filter((item, index) => {\n return index !== 0 && index !== topMapKeys.length - 1;\n })\n .sort((prev, next) => {\n return topMap[prev].length - topMap[next].length;\n });\n }\n\n return top;\n}\n\nexport default function getDanmuTop(ins, danmu) {\n const [marginTop, marginBottom] = ins.option.margin;\n const playerData = getRect(ins.art.template.$player);\n const danmus = ins.queue\n .filter(\n item =>\n item.mode === danmu.mode &&\n item.$state === 'emit' &&\n item.$ref &&\n item.$ref.style.fontSize === danmu.$ref.style.fontSize &&\n parseFloat(item.$ref.style.top) <= playerData.height - marginBottom,\n )\n .map(item => {\n const danmuData = getRect(item.$ref);\n const { width, height } = danmuData;\n const top = danmuData.top - playerData.top;\n const left = danmuData.left - playerData.left;\n const right = playerData.width - left - width;\n return { top, left, height, width, right };\n })\n .sort((prev, next) => prev.top - next.top);\n\n if (danmus.length === 0) {\n return marginTop;\n }\n\n danmus.unshift({\n top: 0,\n left: 0,\n right: 0,\n height: marginTop,\n width: playerData.width,\n });\n\n danmus.push({\n top: playerData.height - marginBottom,\n left: 0,\n right: 0,\n height: marginBottom,\n width: playerData.width,\n });\n\n return calculatedTop(danmus);\n}\n","import i18n from './i18n';\nimport { opacity, size, speed, synchronousPlayback } from './setting';\nimport { filter, getRect, getDanmuRef } from './utils';\nimport { bilibiliDanmuParseFromUrl } from './bilibili';\nimport getDanmuTop from './getDanmuTop';\n\nexport default class Danmuku {\n constructor(art, option) {\n art.i18n.update(i18n);\n art.setting.add(opacity);\n art.setting.add(size);\n art.setting.add(speed);\n art.setting.add(synchronousPlayback);\n this.art = art;\n this.queue = [];\n this.option = {};\n this.config(option);\n this.isStop = false;\n this.animationFrameTimer = null;\n this.$danmuku = art.template.$danmuku;\n art.on('video:play', this.start.bind(this));\n art.on('video:playing', this.start.bind(this));\n art.on('video:pause', this.stop.bind(this));\n art.on('video:waiting', this.stop.bind(this));\n art.on('resize', this.resize.bind(this));\n art.on('destroy', this.stop.bind(this));\n if (typeof this.option.danmuku === 'function') {\n this.option.danmuku().then(danmus => {\n danmus.forEach(this.emit.bind(this));\n art.emit('artplayerPluginDanmuku:loaded');\n });\n } else if (typeof this.option.danmuku === 'string') {\n bilibiliDanmuParseFromUrl(this.option.danmuku).then(danmus => {\n danmus.forEach(this.emit.bind(this));\n art.emit('artplayerPluginDanmuku:loaded');\n });\n } else {\n this.option.danmuku.forEach(this.emit.bind(this));\n art.emit('artplayerPluginDanmuku:loaded');\n }\n }\n\n static get option() {\n return {\n danmuku: [],\n speed: 5,\n maxlength: 50,\n margin: [10, 100],\n opacity: 1,\n fontSize: 25,\n synchronousPlayback: false,\n };\n }\n\n static get scheme() {\n return {\n danmuku: 'array|function|string',\n speed: 'number',\n maxlength: 'number',\n margin: 'array',\n opacity: 'number',\n fontSize: 'number',\n synchronousPlayback: 'boolean',\n };\n }\n\n config(option) {\n const {\n utils: { clamp },\n validator,\n } = this.art.constructor;\n this.option = Object.assign({}, Danmuku.option, this.option, option);\n validator(this.option, Danmuku.scheme);\n this.option.speed = clamp(this.option.speed, 1, 10);\n this.option.maxlength = clamp(this.option.maxlength, 10, 100);\n this.option.margin[0] = clamp(this.option.margin[0], 0, 100);\n this.option.margin[1] = clamp(this.option.margin[1], 0, 100);\n this.option.opacity = clamp(this.option.opacity, 0, 1);\n this.option.fontSize = clamp(this.option.fontSize, 12, 30);\n this.art.emit('artplayerPluginDanmuku:config', this.option);\n }\n\n continue() {\n filter(this.queue, 'stop', danmu => {\n danmu.$state = 'emit';\n danmu.$lastStartTime = Date.now();\n switch (danmu.mode) {\n case 'scroll':\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n default:\n break;\n }\n });\n }\n\n suspend() {\n const { $player } = this.art.template;\n filter(this.queue, 'emit', danmu => {\n danmu.$state = 'stop';\n switch (danmu.mode) {\n case 'scroll': {\n const { left: playerLeft, width: playerWidth } = getRect($player);\n const { left: danmuLeft } = getRect(danmu.$ref);\n const translateX = playerWidth - (danmuLeft - playerLeft) + 5;\n danmu.$ref.style.transform = `translateX(${-translateX}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n break;\n }\n default:\n break;\n }\n });\n }\n\n resize() {\n const { $player } = this.art.template;\n const danmuLeft = getRect($player, 'width');\n filter(this.queue, 'wait', danmu => {\n if (danmu.$ref) {\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n }\n\n update() {\n const {\n player,\n template: { $player },\n } = this.art;\n this.animationFrameTimer = window.requestAnimationFrame(() => {\n if (player.playing) {\n const danmuLeft = getRect($player, 'width');\n\n filter(this.queue, 'emit', danmu => {\n danmu.$restTime -= (Date.now() - danmu.$lastStartTime) / 1000;\n danmu.$lastStartTime = Date.now();\n if (danmu.$restTime <= 0) {\n danmu.$state = 'wait';\n danmu.$ref.style.border = 'none';\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.marginLeft = '0px';\n danmu.$ref.style.transform = 'translateX(0px) translateY(0px) translateZ(0px)';\n danmu.$ref.style.transition = 'transform 0s linear 0s';\n }\n });\n\n this.queue\n .filter(\n danmu =>\n player.currentTime + 0.1 >= danmu.time &&\n danmu.time >= player.currentTime - 0.1 &&\n danmu.$state === 'wait',\n )\n .forEach(danmu => {\n danmu.$ref = getDanmuRef(this.queue);\n this.$danmuku.appendChild(danmu.$ref);\n danmu.$ref.style.opacity = this.option.opacity;\n danmu.$ref.style.fontSize = `${this.option.fontSize}px`;\n danmu.$ref.innerText = danmu.text;\n danmu.$ref.style.color = danmu.color;\n danmu.$ref.style.border = danmu.border ? `1px solid ${danmu.color}` : 'none';\n danmu.$restTime =\n this.option.synchronousPlayback && player.playbackRate\n ? this.option.speed / Number(player.playbackRate)\n : this.option.speed;\n danmu.$lastStartTime = Date.now();\n const danmuWidth = getRect(danmu.$ref, 'width');\n const danmuTop = getDanmuTop(this, danmu);\n danmu.$state = 'emit';\n switch (danmu.mode) {\n case 'scroll': {\n danmu.$restWidth = danmuLeft + danmuWidth + 5;\n danmu.$ref.style.left = `${danmuLeft}px`;\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.transform = `translateX(${-danmu.$restWidth}px) translateY(0px) translateZ(0px)`;\n danmu.$ref.style.transition = `transform ${danmu.$restTime}s linear 0s`;\n break;\n }\n case 'static':\n danmu.$ref.style.top = `${danmuTop}px`;\n danmu.$ref.style.left = '50%';\n danmu.$ref.style.marginLeft = `-${danmuWidth / 2}px`;\n break;\n default:\n break;\n }\n });\n }\n\n if (!this.isStop) {\n this.update();\n }\n });\n }\n\n stop() {\n this.isStop = true;\n this.suspend();\n window.cancelAnimationFrame(this.animationFrameTimer);\n this.art.emit('artplayerPluginDanmuku:stop');\n }\n\n start() {\n this.isStop = false;\n this.continue();\n this.update();\n this.art.emit('artplayerPluginDanmuku:start');\n }\n\n show() {\n this.$danmuku.style = 'block';\n this.art.emit('artplayerPluginDanmuku:show');\n }\n\n hide() {\n this.$danmuku.style = 'none';\n this.art.emit('artplayerPluginDanmuku:hide');\n }\n\n emit(danmu) {\n const { notice, player, i18n } = this.art;\n if (!danmu.text.trim()) {\n notice.show(i18n.get('Danmu text cannot be empty'));\n return;\n }\n\n if (danmu.text.length > this.option.maxlength) {\n notice.show(`${i18n.get('The length of the danmu does not exceed')} ${this.option.maxlength}`);\n return;\n }\n\n if (typeof danmu.time !== 'number') {\n danmu.time = player.currentTime;\n }\n\n this.queue.push({\n mode: 'scroll',\n ...danmu,\n $state: 'wait',\n $ref: null,\n $restTime: 0,\n $lastStartTime: 0,\n $restWidth: 0,\n });\n }\n}\n","import Danmuku from './danmuku';\n\nexport default function artplayerPluginDanmuku(option) {\n return art => {\n const danmuku = new Danmuku(art, option);\n return {\n name: 'artplayerPluginDanmuku',\n emit: danmuku.emit.bind(danmuku),\n config: danmuku.config.bind(danmuku),\n hide: danmuku.hide.bind(danmuku),\n show: danmuku.show.bind(danmuku),\n };\n };\n}"],"names":["opacity","art","i18n","proxy","events","name","index","html","get","mounted","$setting","$range","querySelector","$value","value","innerText","Number","plugins","artplayerPluginDanmuku","config","on","size","fontSize","speed","synchronousPlayback","$checkbox","checked","filter","queue","state","callback","danmu","$state","map","getRect","ref","key","result","getBoundingClientRect","getDanmuRef","find","$ref","document","createElement","style","cssText","getMode","bilibiliDanmuParseFromXml","xmlString","srtList","match","length","item","attrStr","text","attr","split","trim","time","mode","color","toString","timestamp","pool","userID","rowID","bilibiliDanmuParseFromUrl","url","fetch","then","res","calculatedTop","danmus","top","topMap","push","topMapKeys","Object","keys","maxDiff","prev","prevTop","height","diff","maxRight","minRight","width","topKey","danmuArr","right","sort","next","getDanmuTop","ins","option","margin","marginTop","marginBottom","playerData","template","$player","parseFloat","danmuData","left","unshift","Danmuku","update","setting","add","isStop","animationFrameTimer","$danmuku","start","bind","stop","resize","danmuku","forEach","emit","constructor","clamp","utils","validator","assign","scheme","maxlength","$lastStartTime","Date","now","transform","$restWidth","transition","$restTime","playerLeft","playerWidth","danmuLeft","translateX","border","marginLeft","player","window","requestAnimationFrame","playing","currentTime","appendChild","playbackRate","danmuWidth","danmuTop","suspend","cancelAnimationFrame","continue","notice","show","hide"],"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 index 4eaa6966c..6ce94491e 100644 --- a/docs/uncompiled/artplayer-plugin-gif.js +++ b/docs/uncompiled/artplayer-plugin-gif.js @@ -2,7 +2,7 @@ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.artplayerPluginGif = factory()); -}(this, function () { 'use strict'; +}(this, (function () { 'use strict'; function _defineProperty(obj, key, value) { if (key in obj) { @@ -21,27 +21,6 @@ var defineProperty = _defineProperty; - function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } - - return target; - } - - var objectSpread = _objectSpread; - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; function createCommonjsModule(fn, module) { @@ -2860,7 +2839,7 @@ var b64toBlob = createCommonjsModule(function (module) { (function(root, globalName, factory) { - if (module.exports) { + if ( module.exports) { // Node: module.exports = factory(); // Use module export as simulated ES6 default export: @@ -2897,6 +2876,10 @@ })); }); + 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(source, true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(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, @@ -3021,7 +3004,7 @@ loading.show = true; art.emit('artplayerPluginGif:start'); notice.show(i18n.get('Start creating gif...'), false); - gifshot.createGIF(objectSpread({}, config, { + gifshot.createGIF(_objectSpread({}, config, { video: [$video.src], crossOrigin: 'anonymous' }), function (obj) { @@ -3047,5 +3030,5 @@ 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 index 70a094131..3cb3026e4 100644 --- a/docs/uncompiled/artplayer-plugin-gif.js.map +++ b/docs/uncompiled/artplayer-plugin-gif.js.map @@ -1 +1 @@ -{"version":3,"file":"artplayer-plugin-gif.js","sources":["../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/objectSpread.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;","var defineProperty = require(\"./defineProperty\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;","/*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 const layer = layers.add({\n name: 'artplayer-plugin-gif-progress',\n style: {\n position: 'absolute',\n top: '0',\n left: '0',\n height: '3px',\n width: '0%',\n 'background-color': theme,\n },\n });\n\n const $progress = layer.$ref;\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...'), false);\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","layer","add","name","style","position","top","left","height","width","$progress","$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 +{"version":3,"file":"artplayer-plugin-gif.js","sources":["../../node_modules/@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 const layer = layers.add({\n name: 'artplayer-plugin-gif-progress',\n style: {\n position: 'absolute',\n top: '0',\n left: '0',\n height: '3px',\n width: '0%',\n 'background-color': theme,\n },\n });\n\n const $progress = layer.$ref;\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...'), false);\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","layer","add","name","style","position","top","left","height","width","$progress","$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.css b/docs/uncompiled/artplayer-react.css index 0c04156bd..cc2acea05 100644 --- a/docs/uncompiled/artplayer-react.css +++ b/docs/uncompiled/artplayer-react.css @@ -1,2 +1,20 @@ -.artplayer-video-player{position:relative;width:100%;height:100%;overflow:hidden;outline:0;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}.artplayer-video-player *{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.artplayer-video-player .art-icon{display:inline-block;line-height:1.5}.artplayer-video-player .art-icon svg{fill:#fff}.artplayer-video-player .artplayer-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;outline:0;cursor:pointer}.artplayer-video-player .artplayer-subtitle{position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;pointer-events:none}.artplayer-video-player .artplayer-subtitle p{margin:5px 0}.artplayer-video-player .artplayer-layers{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.artplayer-video-player .artplayer-layers .art-layer{pointer-events:all}.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.artplayer-video-player .artplayer-mask .art-playBig{position:absolute;right:30px;bottom:65px;opacity:.6}.artplayer-video-player .artplayer-loading{display:none;position:absolute;z-index:60;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}.artplayer-video-player .artplayer-bottom{position:absolute;z-index:50;left:0;right:0;bottom:0;height:100px;padding:60px 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}.artplayer-video-player .artplayer-bottom .artplayer-progress{position:relative;pointer-events:all}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress{position:relative;height:5px;padding:1px 0;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner{position:relative;height:100%;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-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)}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-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:0}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:3px;background:#fff;border-radius:3px}.artplayer-video-player .artplayer-bottom .artplayer-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%}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-indicator,.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-tip{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-bottom .artplayer-controls{position:relative;pointer-events:all;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:36px}.artplayer-video-player .artplayer-bottom .artplayer-controls .artplayer-controls-left,.artplayer-video-player .artplayer-bottom .artplayer-controls .artplayer-controls-right{display:-webkit-box;display:-ms-flexbox;display:flex}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control{opacity:.9;font-size:12px;height:36px;min-width:36px;line-height:36px;text-align:center;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control:hover{opacity:1}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{left:-54px;background:#fff}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{left:6px;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume:hover .art-volume-panel{width:60px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-time{padding:0 10px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality{position:relative;z-index:30;padding:0 10px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality .art-qualitys{display:none;position:absolute;left:-15px;bottom:35px;width:100px;padding:5px 0;text-align:center;color:#fff;background:rgba(0,0,0,.7);border-radius:3px}.artplayer-video-player .artplayer-bottom .artplayer-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)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality:hover .art-qualitys{display:block}.artplayer-video-player.artplayer-controls-show .artplayer-bottom,.artplayer-video-player.artplayer-hover .artplayer-bottom{opacity:1;visibility:visible}.artplayer-video-player.artplayer-destroy .art-progress-indicator,.artplayer-video-player.artplayer-destroy .art-progress-tip,.artplayer-video-player.artplayer-error .art-progress-indicator,.artplayer-video-player.artplayer-error .art-progress-tip{display:none!important}.artplayer-video-player .artplayer-notice{display:none;font-size:14px;position:absolute;z-index:70;left:0;top:0;padding:10px;width:100%;pointer-events:none}.artplayer-video-player .artplayer-notice .artplayer-notice-inner{display:inline-block;padding:5px 10px;color:#fff;background:rgba(0,0,0,.6);border-radius:3px}.artplayer-video-player .artplayer-contextmenu{display:none;position:absolute;z-index:110;left:0;top:0;min-width:200px;padding:5px 0;background:rgba(0,0,0,.8);border-radius:3px}.artplayer-video-player .artplayer-contextmenu .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)}.artplayer-video-player .artplayer-contextmenu .art-contextmenu a{color:#fff;text-decoration:none}.artplayer-video-player .artplayer-contextmenu .art-contextmenu span{display:inline-block;padding:0 7px}.artplayer-video-player .artplayer-contextmenu .art-contextmenu span.current,.artplayer-video-player .artplayer-contextmenu .art-contextmenu span:hover{color:#00c9ff}.artplayer-video-player .artplayer-contextmenu .art-contextmenu:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-video-player .artplayer-contextmenu .art-contextmenu:last-child{border-bottom:none}.artplayer-video-player .artplayer-setting{display:none;position:absolute;z-index:80;left:0;top:0;height:100%;width: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}.artplayer-video-player .artplayer-setting .artplayer-setting-inner{position:relative;width:300px;height:250px;font-size:12px;background:rgba(0,0,0,.8);border-radius:3px;pointer-events:all;overflow:hidden}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body{overflow-y:auto;width:100%;height:100%}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:12px 20px}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting .art-setting-header{color:#fff;margin-bottom:10px}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting .art-setting-body{color:hsla(0,0%,100%,.8)}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-close{position:absolute;top:0;right:0;width:20px;height:20px;line-height:20px;text-align:center;color:hsla(0,0%,100%,.8);background:rgba(0,0,0,.5);font-size:20px;cursor:pointer}.artplayer-video-player .artplayer-setting .art-setting-btns{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:-4px;margin-right:-4px}.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 4px}.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn span{display:block;height:20px;line-height:20px;text-align:center;color:#fff;background:hsla(0,0%,100%,.3);border-radius:2px;cursor:pointer}.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn.current span,.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn:hover span{color:#fff;background:#00a1d6}.artplayer-video-player .artplayer-info{display:none;position:absolute;left:10px;top:10px;z-index:90;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,.7)}.artplayer-video-player .artplayer-info .art-info-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:5px}.artplayer-video-player .artplayer-info .art-info-item .art-info-title{width:100px;text-align:right}.artplayer-video-player .artplayer-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}.artplayer-video-player .artplayer-info .artplayer-info-close{position:absolute;top:5px;right:5px;cursor:pointer}.artplayer-video-player.artplayer-hide-cursor *{cursor:none!important}.artplayer-video-player[data-aspect-ratio] video{-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:fill;object-fit:fill}.artplayer-video-player.artplayer-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0}.artplayer-video-player .artplayer-pip-header{display:none;position:absolute;z-index:100;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}.artplayer-video-player .artplayer-pip-header .artplayer-pip-title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:move}.artplayer-video-player .artplayer-pip-header .artplayer-pip-close{width:35px;text-align:center;font-size:22px;cursor:pointer}.artplayer-video-player.is-dragging{opacity:.7}.artplayer-video-player.artplayer-pip{position:fixed;z-index:9999;right:20px;bottom:20px;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)}.artplayer-video-player.artplayer-pip .artplayer-pip-header{display:-webkit-box;display:-ms-flexbox;display:flex}.artplayer-video-player.artplayer-pip.artplayer-hover .artplayer-pip-header{opacity:1;visibility:visible}.artplayer-video-player.artplayer-pip .artplayer-mask{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}.artplayer-video-player.artplayer-pip .artplayer-mask .art-playBig{position:static}.artplayer-video-player.artplayer-pip .artplayer-bottom,.artplayer-video-player.artplayer-pip .artplayer-contextmenu,.artplayer-video-player.artplayer-pip .artplayer-danmu,.artplayer-video-player.artplayer-pip .artplayer-info,.artplayer-video-player.artplayer-pip .artplayer-layers,.artplayer-video-player.artplayer-pip .artplayer-notice,.artplayer-video-player.artplayer-pip .artplayer-setting,.artplayer-video-player.artplayer-pip .artplayer-subtitle{display:none!important}.artplayer-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}.artplayer-video-player[data-flip=horizontal] .artplayer-video{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.artplayer-video-player[data-flip=vertical] .artplayer-video{-webkit-transform:scaleY(-1);transform:scaleY(-1)}button[data-balloon]{overflow:visible}[data-balloon]{position:relative;cursor:pointer}[data-balloon]:after{font-family:sans-serif!important;font-weight:400!important;font-style:normal!important;text-shadow:none!important;font-size:12px!important;background:rgba(17,17,17,.9);border-radius:4px;color:#fff;content:attr(data-balloon);padding:.5em 1em;white-space:nowrap}[data-balloon]:after,[data-balloon]:before{filter:alpha(opactiy=0);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";-moz-opacity:0;-khtml-opacity:0;opacity:0;pointer-events:none;-webkit-transition:all .18s ease-out .18s;transition:all .18s ease-out .18s;position:absolute;z-index:10}[data-balloon]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M2.658 0h32.004c-6 0-11.627 12.002-16.002 12.002C14.285 12.002 8.594 0 2.658 0z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;content:""}[data-balloon]:hover:after,[data-balloon]:hover:before,[data-balloon][data-balloon-visible]:after,[data-balloon][data-balloon-visible]:before{filter:alpha(opactiy=100);-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";-moz-opacity:1;-khtml-opacity:1;opacity:1;pointer-events:auto}[data-balloon].font-awesome:after{font-family:FontAwesome}[data-balloon][data-balloon-break]:after{white-space:pre}[data-balloon][data-balloon-blunt]:after,[data-balloon][data-balloon-blunt]:before{-webkit-transition:none;transition:none}[data-balloon][data-balloon-pos=up]:after{margin-bottom:11px}[data-balloon][data-balloon-pos=up]:after,[data-balloon][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up]:before{margin-bottom:5px}[data-balloon][data-balloon-pos=up]:hover:after,[data-balloon][data-balloon-pos=up]:hover:before,[data-balloon][data-balloon-pos=up][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=up-left]:after{left:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-left]:after,[data-balloon][data-balloon-pos=up-left]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-left]:before{left:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-left]:hover:after,[data-balloon][data-balloon-pos=up-left]:hover:before,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=up-right]:after{right:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-right]:after,[data-balloon][data-balloon-pos=up-right]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-right]:before{right:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-right]:hover:after,[data-balloon][data-balloon-pos=up-right]:hover:before,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down]:after{margin-top:11px}[data-balloon][data-balloon-pos=down]:after,[data-balloon][data-balloon-pos=down]:before{left:50%;top:100%;-webkit-transform:translate(-50%,-10px);transform:translate(-50%,-10px)}[data-balloon][data-balloon-pos=down]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;margin-top:5px}[data-balloon][data-balloon-pos=down]:hover:after,[data-balloon][data-balloon-pos=down]:hover:before,[data-balloon][data-balloon-pos=down][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=down-left]:after{left:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;left:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:hover:after,[data-balloon][data-balloon-pos=down-left]:hover:before,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down-right]:after{right:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E");background-size:100% auto;width:18px;height:6px;right:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:hover:after,[data-balloon][data-balloon-pos=down-right]:hover:before,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=left]:after{margin-right:11px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M0 33.342V1.338c0 6 12.002 11.627 12.002 16.002C12.002 21.715 0 27.406 0 33.342z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:hover:after,[data-balloon][data-balloon-pos=left]:hover:before,[data-balloon][data-balloon-pos=left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=left][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-pos=right]:after{left:100%;margin-left:11px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:before{background:no-repeat url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M12 2.658v32.004c0-6-12.002-11.627-12.002-16.002C-.002 14.285 12 8.594 12 2.658z'/%3E%3C/svg%3E");background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:hover:after,[data-balloon][data-balloon-pos=right]:hover:before,[data-balloon][data-balloon-pos=right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=right][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-length=small]:after{white-space:normal;width:80px}[data-balloon][data-balloon-length=medium]:after{white-space:normal;width:150px}[data-balloon][data-balloon-length=large]:after{white-space:normal;width:260px}[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[data-balloon][data-balloon-length=fit]:after{white-space:normal;width:100%} +.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>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}} +.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} +.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} +.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} +.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} +.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-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} +.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,.8);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} +.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,.8);-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} +.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,.7)}.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} +.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-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0} +.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} +.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)} +: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%)} /*# sourceMappingURL=artplayer-react.css.map */ \ No newline at end of file diff --git a/docs/uncompiled/artplayer-react.css.map b/docs/uncompiled/artplayer-react.css.map index a60f6e2f4..8302dcf66 100644 --- a/docs/uncompiled/artplayer-react.css.map +++ b/docs/uncompiled/artplayer-react.css.map @@ -1 +1 @@ -{"version":3,"sources":["artplayer.css"],"names":[],"mappings":"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","file":"artplayer-react.css","sourcesContent":[".artplayer-video-player{position:relative;width:100%;height:100%;overflow:hidden;outline:0;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}.artplayer-video-player *{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.artplayer-video-player .art-icon{display:inline-block;line-height:1.5}.artplayer-video-player .art-icon svg{fill:#fff}\n.artplayer-video-player .artplayer-video{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;width:100%;height:100%;background-color:#000;outline:0;cursor:pointer}\n.artplayer-video-player .artplayer-subtitle{position:absolute;z-index:20;bottom:40px;width:100%;padding:0 20px;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px;pointer-events:none}.artplayer-video-player .artplayer-subtitle p{margin:5px 0}\n.artplayer-video-player .artplayer-layers{position:absolute;z-index:30;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.artplayer-video-player .artplayer-layers .art-layer{pointer-events:all}\n.artplayer-video-player .artplayer-mask{display:none;position:absolute;z-index:40;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.artplayer-video-player .artplayer-mask .art-playBig{position:absolute;right:30px;bottom:65px;opacity:.6}\n.artplayer-video-player .artplayer-loading{display:none;position:absolute;z-index:60;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}\n.artplayer-video-player .artplayer-bottom{position:absolute;z-index:50;left:0;right:0;bottom:0;height:100px;padding:60px 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}.artplayer-video-player .artplayer-bottom .artplayer-progress{position:relative;pointer-events:all}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress{position:relative;height:5px;padding:1px 0;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner{position:relative;height:100%;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-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)}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-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:0}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span{display:inline-block;position:absolute;left:0;top:0;width:7px;height:3px;background:#fff;border-radius:3px}.artplayer-video-player .artplayer-bottom .artplayer-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%}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator{display:block}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-indicator,.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-progress:hover .art-progress-tip{display:block}.artplayer-video-player .artplayer-bottom .artplayer-progress .art-control-thumbnails{display:none;position:absolute;bottom:8px;left:0;pointer-events:none;background-color:rgba(0,0,0,.7)}.artplayer-video-player .artplayer-bottom .artplayer-controls{position:relative;pointer-events:all;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:36px}.artplayer-video-player .artplayer-bottom .artplayer-controls .artplayer-controls-left,.artplayer-video-player .artplayer-bottom .artplayer-controls .artplayer-controls-right{display:-webkit-box;display:-ms-flexbox;display:flex}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control{opacity:.9;font-size:12px;height:36px;min-width:36px;line-height:36px;text-align:center;cursor:pointer}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control:hover{opacity:1}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:before{left:-54px;background:#fff}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after{left:6px;background:hsla(0,0%,100%,.2)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume .art-volume-panel .art-volume-slider-handle:after,.artplayer-video-player .artplayer-bottom .artplayer-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}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-volume:hover .art-volume-panel{width:60px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-time{padding:0 10px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality{position:relative;z-index:30;padding:0 10px}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality .art-qualitys{display:none;position:absolute;left:-15px;bottom:35px;width:100px;padding:5px 0;text-align:center;color:#fff;background:rgba(0,0,0,.7);border-radius:3px}.artplayer-video-player .artplayer-bottom .artplayer-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)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality .art-qualitys .art-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-video-player .artplayer-bottom .artplayer-controls .art-control-quality:hover .art-qualitys{display:block}.artplayer-video-player.artplayer-controls-show .artplayer-bottom,.artplayer-video-player.artplayer-hover .artplayer-bottom{opacity:1;visibility:visible}.artplayer-video-player.artplayer-destroy .art-progress-indicator,.artplayer-video-player.artplayer-destroy .art-progress-tip,.artplayer-video-player.artplayer-error .art-progress-indicator,.artplayer-video-player.artplayer-error .art-progress-tip{display:none!important}\n.artplayer-video-player .artplayer-notice{display:none;font-size:14px;position:absolute;z-index:70;left:0;top:0;padding:10px;width:100%;pointer-events:none}.artplayer-video-player .artplayer-notice .artplayer-notice-inner{display:inline-block;padding:5px 10px;color:#fff;background:rgba(0,0,0,.6);border-radius:3px}\n.artplayer-video-player .artplayer-contextmenu{display:none;position:absolute;z-index:110;left:0;top:0;min-width:200px;padding:5px 0;background:rgba(0,0,0,.8);border-radius:3px}.artplayer-video-player .artplayer-contextmenu .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)}.artplayer-video-player .artplayer-contextmenu .art-contextmenu a{color:#fff;text-decoration:none}.artplayer-video-player .artplayer-contextmenu .art-contextmenu span{display:inline-block;padding:0 7px}.artplayer-video-player .artplayer-contextmenu .art-contextmenu span.current,.artplayer-video-player .artplayer-contextmenu .art-contextmenu span:hover{color:#00c9ff}.artplayer-video-player .artplayer-contextmenu .art-contextmenu:hover{background-color:hsla(0,0%,100%,.1)}.artplayer-video-player .artplayer-contextmenu .art-contextmenu:last-child{border-bottom:none}\n.artplayer-video-player .artplayer-setting{display:none;position:absolute;z-index:80;left:0;top:0;height:100%;width: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}.artplayer-video-player .artplayer-setting .artplayer-setting-inner{position:relative;width:300px;height:250px;font-size:12px;background:rgba(0,0,0,.8);border-radius:3px;pointer-events:all;overflow:hidden}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body{overflow-y:auto;width:100%;height:100%}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting{border-bottom:1px solid hsla(0,0%,100%,.1);padding:12px 20px}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting .art-setting-header{color:#fff;margin-bottom:10px}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-body .art-setting .art-setting-body{color:hsla(0,0%,100%,.8)}.artplayer-video-player .artplayer-setting .artplayer-setting-inner .artplayer-setting-close{position:absolute;top:0;right:0;width:20px;height:20px;line-height:20px;text-align:center;color:hsla(0,0%,100%,.8);background:rgba(0,0,0,.5);font-size:20px;cursor:pointer}.artplayer-video-player .artplayer-setting .art-setting-btns{display:-webkit-box;display:-ms-flexbox;display:flex;margin-left:-4px;margin-right:-4px}.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 4px}.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn span{display:block;height:20px;line-height:20px;text-align:center;color:#fff;background:hsla(0,0%,100%,.3);border-radius:2px;cursor:pointer}.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn.current span,.artplayer-video-player .artplayer-setting .art-setting-btns .art-setting-btn:hover span{color:#fff;background:#00a1d6}\n.artplayer-video-player .artplayer-info{display:none;position:absolute;left:10px;top:10px;z-index:90;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,.7)}.artplayer-video-player .artplayer-info .art-info-item{display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:5px}.artplayer-video-player .artplayer-info .art-info-item .art-info-title{width:100px;text-align:right}.artplayer-video-player .artplayer-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}.artplayer-video-player .artplayer-info .artplayer-info-close{position:absolute;top:5px;right:5px;cursor:pointer}\n.artplayer-video-player.artplayer-hide-cursor *{cursor:none!important}\n.artplayer-video-player[data-aspect-ratio] video{-webkit-box-sizing:content-box;box-sizing:content-box;-o-object-fit:fill;object-fit:fill}\n.artplayer-video-player.artplayer-web-fullscreen{position:fixed;z-index:9999;width:100%;height:100%;left:0;top:0;right:0;bottom:0}\n.artplayer-video-player .artplayer-pip-header{display:none;position:absolute;z-index:100;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}.artplayer-video-player .artplayer-pip-header .artplayer-pip-title{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:move}.artplayer-video-player .artplayer-pip-header .artplayer-pip-close{width:35px;text-align:center;font-size:22px;cursor:pointer}.artplayer-video-player.is-dragging{opacity:.7}.artplayer-video-player.artplayer-pip{position:fixed;z-index:9999;right:20px;bottom:20px;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)}.artplayer-video-player.artplayer-pip .artplayer-pip-header{display:-webkit-box;display:-ms-flexbox;display:flex}.artplayer-video-player.artplayer-pip.artplayer-hover .artplayer-pip-header{opacity:1;visibility:visible}.artplayer-video-player.artplayer-pip .artplayer-mask{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}.artplayer-video-player.artplayer-pip .artplayer-mask .art-playBig{position:static}.artplayer-video-player.artplayer-pip .artplayer-bottom,.artplayer-video-player.artplayer-pip .artplayer-contextmenu,.artplayer-video-player.artplayer-pip .artplayer-danmu,.artplayer-video-player.artplayer-pip .artplayer-info,.artplayer-video-player.artplayer-pip .artplayer-layers,.artplayer-video-player.artplayer-pip .artplayer-notice,.artplayer-video-player.artplayer-pip .artplayer-setting,.artplayer-video-player.artplayer-pip .artplayer-subtitle{display:none!important}\n.artplayer-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.artplayer-video-player[data-flip=horizontal] .artplayer-video{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.artplayer-video-player[data-flip=vertical] .artplayer-video{-webkit-transform:scaleY(-1);transform:scaleY(-1)}\nbutton[data-balloon]{overflow:visible}[data-balloon]{position:relative;cursor:pointer}[data-balloon]:after{font-family:sans-serif!important;font-weight:400!important;font-style:normal!important;text-shadow:none!important;font-size:12px!important;background:rgba(17,17,17,.9);border-radius:4px;color:#fff;content:attr(data-balloon);padding:.5em 1em;white-space:nowrap}[data-balloon]:after,[data-balloon]:before{filter:alpha(opactiy=0);-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)\";-moz-opacity:0;-khtml-opacity:0;opacity:0;pointer-events:none;-webkit-transition:all .18s ease-out .18s;transition:all .18s ease-out .18s;position:absolute;z-index:10}[data-balloon]:before{background:no-repeat url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M2.658 0h32.004c-6 0-11.627 12.002-16.002 12.002C14.285 12.002 8.594 0 2.658 0z'/%3E%3C/svg%3E\");background-size:100% auto;width:18px;height:6px;content:\"\"}[data-balloon]:hover:after,[data-balloon]:hover:before,[data-balloon][data-balloon-visible]:after,[data-balloon][data-balloon-visible]:before{filter:alpha(opactiy=100);-ms-filter:\"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)\";-moz-opacity:1;-khtml-opacity:1;opacity:1;pointer-events:auto}[data-balloon].font-awesome:after{font-family:FontAwesome}[data-balloon][data-balloon-break]:after{white-space:pre}[data-balloon][data-balloon-blunt]:after,[data-balloon][data-balloon-blunt]:before{-webkit-transition:none;transition:none}[data-balloon][data-balloon-pos=up]:after{margin-bottom:11px}[data-balloon][data-balloon-pos=up]:after,[data-balloon][data-balloon-pos=up]:before{bottom:100%;left:50%;-webkit-transform:translate(-50%,10px);transform:translate(-50%,10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up]:before{margin-bottom:5px}[data-balloon][data-balloon-pos=up]:hover:after,[data-balloon][data-balloon-pos=up]:hover:before,[data-balloon][data-balloon-pos=up][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=up-left]:after{left:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-left]:after,[data-balloon][data-balloon-pos=up-left]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-left]:before{left:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-left]:hover:after,[data-balloon][data-balloon-pos=up-left]:hover:before,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=up-right]:after{right:0;margin-bottom:11px}[data-balloon][data-balloon-pos=up-right]:after,[data-balloon][data-balloon-pos=up-right]:before{bottom:100%;-webkit-transform:translateY(10px);transform:translateY(10px);-webkit-transform-origin:top;transform-origin:top}[data-balloon][data-balloon-pos=up-right]:before{right:5px;margin-bottom:5px}[data-balloon][data-balloon-pos=up-right]:hover:after,[data-balloon][data-balloon-pos=up-right]:hover:before,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=up-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down]:after{margin-top:11px}[data-balloon][data-balloon-pos=down]:after,[data-balloon][data-balloon-pos=down]:before{left:50%;top:100%;-webkit-transform:translate(-50%,-10px);transform:translate(-50%,-10px)}[data-balloon][data-balloon-pos=down]:before{background:no-repeat url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E\");background-size:100% auto;width:18px;height:6px;margin-top:5px}[data-balloon][data-balloon-pos=down]:hover:after,[data-balloon][data-balloon-pos=down]:hover:before,[data-balloon][data-balloon-pos=down][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down][data-balloon-visible]:before{-webkit-transform:translate(-50%);transform:translate(-50%)}[data-balloon][data-balloon-pos=down-left]:after{left:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:before{background:no-repeat url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E\");background-size:100% auto;width:18px;height:6px;left:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-left]:hover:after,[data-balloon][data-balloon-pos=down-left]:hover:before,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-left][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=down-right]:after{right:0;margin-top:11px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:before{background:no-repeat url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='12'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M33.342 12H1.338c6 0 11.627-12.002 16.002-12.002C21.715-.002 27.406 12 33.342 12z'/%3E%3C/svg%3E\");background-size:100% auto;width:18px;height:6px;right:5px;margin-top:5px;top:100%;-webkit-transform:translateY(-10px);transform:translateY(-10px)}[data-balloon][data-balloon-pos=down-right]:hover:after,[data-balloon][data-balloon-pos=down-right]:hover:before,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=down-right][data-balloon-visible]:before{-webkit-transform:translate(0);transform:translate(0)}[data-balloon][data-balloon-pos=left]:after{margin-right:11px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:before{background:no-repeat url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M0 33.342V1.338c0 6 12.002 11.627 12.002 16.002C12.002 21.715 0 27.406 0 33.342z'/%3E%3C/svg%3E\");background-size:100% auto;width:6px;height:18px;margin-right:5px;right:100%;top:50%;-webkit-transform:translate(10px,-50%);transform:translate(10px,-50%)}[data-balloon][data-balloon-pos=left]:hover:after,[data-balloon][data-balloon-pos=left]:hover:before,[data-balloon][data-balloon-pos=left][data-balloon-visible]:after,[data-balloon][data-balloon-pos=left][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-pos=right]:after{left:100%;margin-left:11px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:before{background:no-repeat url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='36'%3E%3Cpath fill='rgba(17,17,17,0.9)' d='M12 2.658v32.004c0-6-12.002-11.627-12.002-16.002C-.002 14.285 12 8.594 12 2.658z'/%3E%3C/svg%3E\");background-size:100% auto;width:6px;height:18px;left:100%;margin-left:5px;top:50%;-webkit-transform:translate(-10px,-50%);transform:translate(-10px,-50%)}[data-balloon][data-balloon-pos=right]:hover:after,[data-balloon][data-balloon-pos=right]:hover:before,[data-balloon][data-balloon-pos=right][data-balloon-visible]:after,[data-balloon][data-balloon-pos=right][data-balloon-visible]:before{-webkit-transform:translateY(-50%);transform:translateY(-50%)}[data-balloon][data-balloon-length=small]:after{white-space:normal;width:80px}[data-balloon][data-balloon-length=medium]:after{white-space:normal;width:150px}[data-balloon][data-balloon-length=large]:after{white-space:normal;width:260px}[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[data-balloon][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[data-balloon][data-balloon-length=fit]:after{white-space:normal;width:100%}"]} \ No newline at end of file +{"version":3,"sources":["artplayer.scss","video.scss","subtitle.scss","danmuku.scss","layers.scss","mask.scss","loading.scss","bottom.scss","notice.scss","contextmenu.scss","setting.scss","info.scss","hideCursor.scss","aspectRatio.scss","fullscreenWeb.scss","pip.scss","autoSize.scss","flip.scss","balloon.scss"],"names":[],"mappings":"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","file":"artplayer-react.css","sourcesContent":[".art-video-player {\n display: flex;\n position: relative;\n margin: 0 auto;\n z-index: 10;\n width: 100%;\n height: 100%;\n outline: 0;\n zoom: 1;\n font-family: Roboto, Arial, Helvetica, sans-serif;\n color: #eee;\n text-align: left;\n direction: ltr;\n font-size: 14px;\n line-height: 1.3;\n user-select: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n touch-action: manipulation;\n -ms-high-contrast-adjust: none; }\n .art-video-player * {\n margin: 0;\n padding: 0;\n box-sizing: border-box; }\n .art-video-player ::-webkit-scrollbar {\n width: 5px; }\n .art-video-player ::-webkit-scrollbar-thumb {\n background-color: #666; }\n .art-video-player ::-webkit-scrollbar-thumb:hover {\n background-color: #ccc; }\n .art-video-player .art-icon {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n line-height: 1.5; }\n .art-video-player .art-icon svg {\n fill: #fff; }\n .art-video-player > > > object {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n pointer-events: none;\n z-index: -1; }\n @supports (-webkit-backdrop-filter: initial) or (backdrop-filter: initial) {\n .art-video-player .art-backdrop-filter {\n -webkit-backdrop-filter: saturate(180%) blur(20px);\n backdrop-filter: saturate(180%) blur(20px);\n background-color: rgba(0, 0, 0, 0.7) !important; } }\n",".art-video-player .art-video {\n position: absolute;\n z-index: 10;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n background-color: #000;\n cursor: pointer; }\n",".art-video-player .art-subtitle {\n display: none;\n position: absolute;\n z-index: 20;\n bottom: 40px;\n width: 100%;\n padding: 0 20px;\n text-align: center;\n color: #fff;\n font-size: 20px;\n pointer-events: none;\n text-shadow: 0.5px 0.5px 0.5px rgba(0, 0, 0, 0.5); }\n .art-video-player .art-subtitle p {\n margin: 5px 0; }\n\n.art-video-player.art-subtitle-show .art-subtitle {\n display: block; }\n",".art-video-player .art-danmuku {\n position: absolute;\n z-index: 30;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n pointer-events: none; }\n",".art-video-player .art-layers {\n display: none;\n position: absolute;\n z-index: 40;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n pointer-events: none; }\n .art-video-player .art-layers .art-layer {\n pointer-events: auto; }\n\n.art-video-player.art-layer-show .art-layers {\n display: block; }\n",".art-video-player .art-mask {\n display: none;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 50;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n pointer-events: none; }\n .art-video-player .art-mask .art-state {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n right: 30px;\n bottom: 55px;\n width: 60px;\n height: 60px;\n opacity: 0.6; }\n\n.art-video-player.art-mask-show .art-mask {\n display: flex; }\n",".art-video-player .art-loading {\n display: none;\n position: absolute;\n z-index: 70;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n pointer-events: none; }\n\n.art-video-player.art-loading-show .art-loading {\n display: flex; }\n",".art-video-player .art-bottom {\n position: absolute;\n z-index: 60;\n left: 0;\n right: 0;\n bottom: 0;\n height: 100px;\n padding: 55px 10px 0;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease-in-out;\n pointer-events: none;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom; }\n .art-video-player .art-bottom .art-progress {\n position: relative;\n pointer-events: auto; }\n .art-video-player .art-bottom .art-progress .art-control-progress {\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 4px;\n cursor: pointer; }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner {\n position: relative;\n height: 50%;\n width: 100%;\n background: rgba(255, 255, 255, 0.2); }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-loaded {\n position: absolute;\n z-index: 10;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n height: 100%;\n width: 0;\n background: rgba(255, 255, 255, 0.4); }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-played {\n position: absolute;\n z-index: 20;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n height: 100%;\n width: 0; }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight {\n position: absolute;\n z-index: 30;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n height: 100%;\n pointer-events: none; }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-highlight span {\n display: inline-block;\n position: absolute;\n left: 0;\n top: 0;\n width: 7px;\n height: 100%;\n background: #fff;\n pointer-events: auto; }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator {\n display: none;\n position: absolute;\n z-index: 40;\n top: -5px;\n left: -6.5px;\n width: 13px;\n height: 13px;\n border-radius: 50%; }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-indicator.art-show-indicator {\n display: block; }\n .art-video-player .art-bottom .art-progress .art-control-progress .art-control-progress-inner .art-progress-tip {\n display: none;\n position: absolute;\n z-index: 50;\n top: -25px;\n left: 0;\n height: 20px;\n padding: 0 5px;\n line-height: 20px;\n color: #fff;\n font-size: 12px;\n text-align: center;\n background: rgba(0, 0, 0, 0.7);\n border-radius: 3px;\n font-weight: bold;\n white-space: nowrap; }\n .art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner {\n height: 100%; }\n .art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-indicator,\n .art-video-player .art-bottom .art-progress .art-control-progress:hover .art-control-progress-inner .art-progress-tip {\n display: block; }\n .art-video-player .art-bottom .art-progress .art-control-thumbnails {\n display: none;\n position: absolute;\n bottom: 8px;\n left: 0;\n pointer-events: none;\n background-color: rgba(0, 0, 0, 0.7); }\n .art-video-player .art-bottom .art-controls {\n position: relative;\n pointer-events: auto;\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 40px;\n padding: 5px 0; }\n .art-video-player .art-bottom .art-controls .art-controls-left,\n .art-video-player .art-bottom .art-controls .art-controls-right {\n display: flex; }\n .art-video-player .art-bottom .art-controls .art-control {\n opacity: 0.9;\n font-size: 12px;\n height: 36px;\n min-width: 36px;\n line-height: 36px;\n text-align: center;\n cursor: pointer; }\n .art-video-player .art-bottom .art-controls .art-control .art-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n float: left;\n height: 36px;\n width: 36px; }\n .art-video-player .art-bottom .art-controls .art-control:hover {\n opacity: 1; }\n .art-video-player .art-bottom .art-controls .art-control-onlyText {\n padding: 0 10px; }\n .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel {\n position: relative;\n float: left;\n width: 0;\n height: 100%;\n transition: margin 0.2s cubic-bezier(0.4, 0, 1, 1), width 0.2s cubic-bezier(0.4, 0, 1, 1);\n overflow: hidden; }\n .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle {\n position: absolute;\n top: 50%;\n left: 0;\n width: 12px;\n height: 12px;\n border-radius: 12px;\n margin-top: -6px;\n background: #fff; }\n .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle::before {\n left: -54px;\n background: #fff; }\n .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle::after {\n left: 6px;\n background: rgba(255, 255, 255, 0.2); }\n .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle::before, .art-video-player .art-bottom .art-controls .art-control-volume .art-volume-panel .art-volume-slider-handle::after {\n content: '';\n position: absolute;\n display: block;\n top: 50%;\n height: 3px;\n margin-top: -2px;\n width: 60px; }\n .art-video-player .art-bottom .art-controls .art-control-volume:hover .art-volume-panel {\n width: 60px; }\n .art-video-player .art-bottom .art-controls .art-control-quality {\n position: relative;\n z-index: 30; }\n .art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys {\n display: none;\n position: absolute;\n bottom: 35px;\n width: 100px;\n padding: 5px 0;\n text-align: center;\n color: #fff;\n background: rgba(0, 0, 0, 0.8);\n border-radius: 3px; }\n .art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item {\n height: 30px;\n line-height: 30px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.5); }\n .art-video-player .art-bottom .art-controls .art-control-quality .art-qualitys .art-quality-item:hover {\n background-color: rgba(255, 255, 255, 0.1); }\n .art-video-player .art-bottom .art-controls .art-control-quality:hover .art-qualitys {\n display: block; }\n\n.art-video-player.art-control-show .art-bottom, .art-video-player.art-hover .art-bottom {\n opacity: 1;\n visibility: visible; }\n\n.art-video-player.art-error .art-progress-indicator,\n.art-video-player.art-error .art-progress-tip, .art-video-player.art-destroy .art-progress-indicator,\n.art-video-player.art-destroy .art-progress-tip {\n display: none !important; }\n",".art-video-player .art-notice {\n display: none;\n font-size: 14px;\n position: absolute;\n z-index: 80;\n left: 0;\n top: 0;\n padding: 10px;\n width: 100%;\n pointer-events: none; }\n .art-video-player .art-notice .art-notice-inner {\n display: inline-block;\n padding: 5px 10px;\n color: #fff;\n background: rgba(0, 0, 0, 0.6);\n border-radius: 3px; }\n\n.art-video-player.art-notice-show .art-notice {\n display: flex; }\n",".art-video-player .art-contextmenus {\n display: none;\n flex-direction: column;\n position: absolute;\n z-index: 120;\n left: 0;\n top: 0;\n min-width: 200px;\n padding: 5px 0;\n background: rgba(0, 0, 0, 0.8);\n border-radius: 3px; }\n .art-video-player .art-contextmenus .art-contextmenu {\n cursor: pointer;\n font-size: 13px;\n display: block;\n color: #fff;\n padding: 7px 10px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n text-shadow: 0 0 2px rgba(0, 0, 0, 0.5);\n border-bottom: 1px solid rgba(255, 255, 255, 0.1); }\n .art-video-player .art-contextmenus .art-contextmenu a {\n color: #fff;\n text-decoration: none; }\n .art-video-player .art-contextmenus .art-contextmenu span {\n display: inline-block;\n padding: 0 7px; }\n .art-video-player .art-contextmenus .art-contextmenu span:hover, .art-video-player .art-contextmenus .art-contextmenu span.art-current {\n color: #00c9ff; }\n .art-video-player .art-contextmenus .art-contextmenu:hover {\n background-color: rgba(255, 255, 255, 0.1); }\n .art-video-player .art-contextmenus .art-contextmenu:last-child {\n border-bottom: none; }\n\n.art-video-player.art-contextmenu-show .art-contextmenus {\n display: flex; }\n",".art-video-player .art-settings {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 90;\n left: 0;\n top: 0;\n height: 100%;\n width: 100%;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n overflow: hidden; }\n .art-video-player .art-settings .art-setting-inner {\n position: absolute;\n top: 0;\n right: -300px;\n bottom: 0;\n width: 300px;\n height: 100%;\n font-size: 12px;\n background: rgba(0, 0, 0, 0.8);\n transition: all 0.2s ease-in-out;\n overflow: auto; }\n .art-video-player .art-settings .art-setting-inner .art-setting-body {\n overflow-y: auto;\n width: 100%;\n height: 100%; }\n .art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting {\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n padding: 10px 15px; }\n .art-video-player .art-settings .art-setting-inner .art-setting-body .art-setting .art-setting-header {\n margin-bottom: 5px; }\n .art-video-player .art-settings .art-setting-radio {\n display: flex; }\n .art-video-player .art-settings .art-setting-radio .art-radio-item {\n flex: 1;\n padding: 0 2px; }\n .art-video-player .art-settings .art-setting-radio .art-radio-item button {\n height: 22px;\n width: 100%;\n border: none;\n outline: none;\n color: #fff;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 2px; }\n .art-video-player .art-settings .art-setting-radio .art-radio-item.current button {\n background-color: #00a1d6; }\n .art-video-player .art-settings .art-setting-range input {\n width: 100%;\n height: 3px;\n outline: none;\n appearance: none;\n background-color: rgba(255, 255, 255, 0.5); }\n .art-video-player .art-settings .art-setting-checkbox input {\n height: 14px;\n width: 14px;\n margin-right: 5px; }\n .art-video-player .art-settings .art-setting-upload {\n display: flex; }\n .art-video-player .art-settings .art-setting-upload .art-upload-btn {\n width: 80px;\n height: 22px;\n line-height: 22px;\n border: none;\n outline: none;\n color: #fff;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 2px;\n text-align: center; }\n .art-video-player .art-settings .art-setting-upload .art-upload-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n height: 22px;\n line-height: 22px;\n padding-left: 10px; }\n\n.art-video-player.art-setting-show .art-settings {\n opacity: 1;\n visibility: visible;\n pointer-events: auto; }\n .art-video-player.art-setting-show .art-settings .art-setting-inner {\n right: 0; }\n",".art-video-player .art-info {\n display: none;\n flex-direction: column;\n position: absolute;\n left: 10px;\n top: 10px;\n z-index: 100;\n width: 350px;\n min-height: 150px;\n padding: 10px;\n color: #fff;\n font-size: 12px;\n font-family: Noto Sans CJK SC DemiLight,Roboto,Segoe UI,Tahoma,Arial,Helvetica,sans-serif;\n -webkit-font-smoothing: antialiased;\n background: rgba(0, 0, 0, 0.7); }\n .art-video-player .art-info .art-info-item {\n display: flex;\n margin-bottom: 5px; }\n .art-video-player .art-info .art-info-item .art-info-title {\n width: 100px;\n text-align: right; }\n .art-video-player .art-info .art-info-item .art-info-content {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding-left: 5px; }\n .art-video-player .art-info .art-info-close {\n position: absolute;\n top: 5px;\n right: 5px;\n cursor: pointer; }\n\n.art-video-player.art-info-show .art-info {\n display: flex; }\n",".art-video-player.art-hide-cursor * {\n cursor: none !important; }\n",".art-video-player[data-aspect-ratio] video {\n box-sizing: content-box;\n object-fit: fill; }\n",".art-video-player.art-web-fullscreen {\n position: fixed;\n z-index: 9999;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0; }\n",".art-video-player .art-pip-header {\n display: none;\n position: absolute;\n z-index: 110;\n left: 0;\n top: 0;\n right: 0;\n height: 35px;\n line-height: 35px;\n color: #fff;\n background: rgba(0, 0, 0, 0.5);\n align-items: center;\n justify-content: space-between;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease-in-out; }\n .art-video-player .art-pip-header .art-pip-title {\n flex: 1;\n padding: 0 10px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: move; }\n .art-video-player .art-pip-header .art-pip-close {\n width: 35px;\n text-align: center;\n font-size: 22px;\n cursor: pointer; }\n\n.art-video-player.art-is-dragging {\n opacity: 0.7; }\n\n.art-video-player.art-pip {\n position: fixed;\n z-index: 9999;\n width: 400px;\n height: 225px;\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 3px 6px 0 rgba(0, 0, 0, 0.2); }\n .art-video-player.art-pip .art-pip-header {\n display: flex;\n user-select: none; }\n .art-video-player.art-pip.art-hover .art-pip-header {\n opacity: 1;\n visibility: visible; }\n .art-video-player.art-pip .art-mask .art-state {\n position: static; }\n .art-video-player.art-pip .art-contextmenu,\n .art-video-player.art-pip .art-bottom,\n .art-video-player.art-pip .art-danmu,\n .art-video-player.art-pip .art-info,\n .art-video-player.art-pip .art-layers,\n .art-video-player.art-pip .art-notice,\n .art-video-player.art-pip .art-setting,\n .art-video-player.art-pip .art-subtitle {\n display: none !important; }\n",".art-auto-size {\n display: flex;\n align-items: center;\n justify-content: center; }\n",".art-video-player[data-flip=\"horizontal\"] .art-video {\n transform: scaleX(-1); }\n\n.art-video-player[data-flip=\"vertical\"] .art-video {\n transform: scaleY(-1); }\n",":root {\n --balloon-color: rgba(16, 16, 16, 0.95);\n --balloon-font-size: 12px;\n --balloon-move: 4px; }\n\nbutton[aria-label][data-balloon-pos] {\n overflow: visible; }\n\n[aria-label][data-balloon-pos] {\n position: relative;\n cursor: pointer; }\n [aria-label][data-balloon-pos]:after {\n opacity: 0;\n pointer-events: none;\n transition: all 0.18s ease-out 0.18s;\n text-indent: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n font-weight: normal;\n font-style: normal;\n text-shadow: none;\n font-size: var(--balloon-font-size);\n background: var(--balloon-color);\n border-radius: 2px;\n color: #fff;\n content: attr(aria-label);\n padding: 0.5em 1em;\n position: absolute;\n white-space: nowrap;\n line-height: 1.2;\n z-index: 10; }\n [aria-label][data-balloon-pos]:before {\n width: 0;\n height: 0;\n border: 5px solid transparent;\n border-top-color: var(--balloon-color);\n opacity: 0;\n pointer-events: none;\n transition: all 0.18s ease-out 0.18s;\n content: '';\n position: absolute;\n z-index: 10; }\n [aria-label][data-balloon-pos]:hover:before, [aria-label][data-balloon-pos]:hover:after {\n opacity: 1;\n pointer-events: none; }\n [aria-label][data-balloon-pos][data-balloon-pos='up']:after {\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translate(-50%, var(--balloon-move));\n transform-origin: top; }\n [aria-label][data-balloon-pos][data-balloon-pos='up']:before {\n bottom: 100%;\n left: 50%;\n transform: translate(-50%, var(--balloon-move));\n transform-origin: top; }\n [aria-label][data-balloon-pos][data-balloon-pos='up']:hover:after {\n transform: translate(-50%, 0); }\n [aria-label][data-balloon-pos][data-balloon-pos='up']:hover:before {\n transform: translate(-50%, 0); }\n"]} \ No newline at end of file diff --git a/docs/uncompiled/artplayer-react.js b/docs/uncompiled/artplayer-react.js index 9c138aa3d..7823d45a1 100644 --- a/docs/uncompiled/artplayer-react.js +++ b/docs/uncompiled/artplayer-react.js @@ -2,7 +2,7 @@ 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'; +}(this, (function () { 'use strict'; function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; @@ -59,33 +59,8 @@ var defineProperty = _defineProperty; - function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } - - return target; - } - - var objectSpread = _objectSpread; - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; - function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } @@ -286,22 +261,22 @@ 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.concurrent_mode"):60111,y=n?Symbol.for("react.forward_ref"):60112,z=n?Symbol.for("react.suspense"):60113,aa=n?Symbol.for("react.memo"): - 60115,ba=n?Symbol.for("react.lazy"):60116,A="function"===typeof Symbol&&Symbol.iterator;function ca(a,b,d,c,e,g,h,f){if(!a){a=void 0;if(void 0===b)a=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[d,c,e,g,h,f],m=0;a=Error(b.replace(/%s/g,function(){return l[m++]}));a.name="Invariant Violation";}a.framesToPop=1;throw a;}} - function B(a){for(var b=arguments.length-1,d="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=0;cP.length&&P.push(a);} - function S(a,b,d,c){var e=typeof a;if("undefined"===e||"boolean"===e)a=null;var g=!1;if(null===a)g=!0;else switch(e){case "string":case "number":g=!0;break;case "object":switch(a.$$typeof){case p:case q:g=!0;}}if(g)return d(c,a,""===b?"."+T(a,0):b),1;g=0;b=""===b?".":b+":";if(Array.isArray(a))for(var h=0;h=Number(n)});return r?r.insertAdjacentElement("beforebegin",e):O(t,e),e}function L(t,e,n){return t.style[e]=n,t}function _(e,n){return Object.keys(n).forEach(function(t){L(e,t,n[t]);}),e}function j(t,e){var n=!(2").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 D(t){return URL.createObjectURL(new Blob([t],{type:"text/vtt"}))}function q(t,e){var n=document.createElement("a");L(n,"display","none"),n.href=t,n.download=e,document.body.appendChild(n),n.click(),document.body.removeChild(n);}var H=Object.freeze({ArtPlayerError:b,errorHandle:w,clamp:x,getExt:k,secondToTime:E,sleep:S,debounce:$,isObject:P,isElement:T,mergeDeep:R,append:O,remove:function(t){return t.parentNode.removeChild(t)},insertByIndex:C,setStyle:L,setStyles:_,getStyle:j,sublings:M,inverseClass:A,tooltip:z,srtToVtt:W,vttToBlob:D,downloadImage:q});function B(t,e,n){if("string"===n){if(""===e.trim())throw new b("".concat(t.join(".")," can not be empty"));return !0}if(e instanceof Element)return !0;throw new b("".concat(t.join(".")," require 'string' or 'Element' type, but got '").concat(n,"'"))}var F={container:{validator:B,required:!0},url:{type:"string|function",required:!0},poster:"string",title:"string",type:{type:"string"},mimeCodec:"string",theme:"string",volume:"number",isLive:"boolean",muted:"boolean",autoplay:"boolean",autoSize:"boolean",loop:"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:B,style:"object",click:"function"}},contextmenu:{type:"array",child:{type:"object|function",disable:"boolean",name:"string",index:"number",html:B,style:"object",click:"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:B,style:"object",click:"function",position:function(t,e){return ["top","left","right"].includes(e)}}},highlight:{type:"array",child:{type:"object",time:"number",text:"string"}},thumbnails:{type:"object",child:{type:"object",url:"string",number:"number",width:"number",height:"number",column:"number"}},subtitle:{type:"object",child:{type:"object",url:"string",style:"object"}},moreVideoAttr:"object",icons:"object",customType:"object",lang:"string"},I={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 t(e){var n=this;a(this,t);var i=e.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){var e=!1;switch(v.kindOf(t)){case"string":e=-1\n \n \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}(),V={"zh-cn":{"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":"迷你播放器"},"zh-tw":{"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":"迷你播放器"}},Q=function(){function e(t){a(this,e),this.art=t,this.init();}return r(e,[{key:"init",value:function(){this.language=V[this.art.option.lang.toLowerCase()]||{};}},{key:"get",value:function(t){return this.language[t]||t}},{key:"update",value:function(t){V=R(V,t),this.init();}}]),e}();function Y(e,t){var n=e.option,i=e.notice,r=e.template.$video;Object.defineProperty(t,"screenshot",{value:function(){try{var t=function(){var t=document.createElement("canvas");t.width=r.videoWidth,t.height=r.videoHeight,t.getContext("2d").drawImage(r,0,0);var e=t.toDataURL("image/png");return q(e,"".concat(n.title||"artplayer","_").concat(E(r.currentTime),".png")),e}();e.emit("screenshot",t);}catch(t){i.show(t),console.warn(t);}}});}var J=e(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