/*! * artplayer-plugin-ass.js v3.5.26 * Github: https://github.com/zhw2590582/ArtPlayer#readme * (c) 2017-2020 Harvey Zack * Released under the MIT License. */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).artplayerPluginAss=e()}(this,(function(){"use strict";function t(t){var e=t.toLowerCase().trim().split(/\s*;\s*/);return"banner"===e[0]?{name:e[0],delay:1*e[1]||0,leftToRight:1*e[2]||0,fadeAwayWidth:1*e[3]||0}:/^scroll\s/.test(e[0])?{name:e[0],y1:Math.min(1*e[1],1*e[2]),y2:Math.max(1*e[1],1*e[2]),delay:1*e[3]||0,fadeAwayHeight:1*e[4]||0}:null}function e(t){return t.toLowerCase().replace(/([+-]?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?)/g," $1 ").replace(/([mnlbspc])/g," $1 ").trim().replace(/\s+/g," ").split(/\s(?=[mnlbspc])/).map((function(t){return t.split(" ").filter((function(t,e){return!(e&&Number.isNaN(1*t))}))}))}var i=["b","i","u","s","fsp","k","K","kf","ko","kt","fe","q","p","pbo","a","an","fscx","fscy","fax","fay","frx","fry","frz","fr","be","blur","bord","xbord","ybord","shad","xshad","yshad"].map((function(t){return{name:t,regex:new RegExp("^"+t+"-?\\d")}}));function a(t){for(var n,r={},s=0;si.length){var n=a.slice(i.length-1).join();(a=a.slice(0,i.length-1)).push(n)}for(var s,o={},l=0;l0;)e[i]=arguments[i+1];for(var a=0;a-10?1+s/10:1)*i.fs:1*s};if("t"===e){var w=s.t1,S=s.accel,_=s.tags,C=s.t2||1e3*(i.end-i.start),$={};return _.forEach((function(t){var e=Object.keys(t)[0];~u.indexOf(e)&&("clip"!==e||t[e].dots)&&h($,g(t,e,i))})),{t:{t1:w,t2:C,accel:S,tag:$}}}return(r={})[e]=s,r}var m=[null,1,2,3,null,7,8,9,null,4,5,6],v=["r","a","an","pos","org","move","fade","fad","clip"];function y(t,e){return{name:t,borderStyle:e[t].style.BorderStyle,tag:e[t].tag,fragments:[]}}function x(t){for(var e,i,a,n,r,s,o=t.styles,l=t.name,c=t.parsed,d=t.start,f=t.end,u=[],x=y(l,o),b={},w=0;w=s.End)){e[s.Style]||(s.Style="Default");var o=e[s.Style].style,l=x({styles:e,name:s.Style,parsed:s.Text.parsed,start:s.Start,end:s.End}),c=l.alignment||o.Alignment;a=Math.min(a,s.Layer),n.push(h({layer:s.Layer,start:s.Start,end:s.End,margin:{left:s.MarginL||o.MarginL,right:s.MarginR||o.MarginR,vertical:s.MarginV||o.MarginV},effect:s.Effect},l,{alignment:c}))}}for(var d=0;d0?1:-1,g=l>0?1:-1;o=Math.abs(o),l=Math.abs(l);for(var m=Math.max(n,o-n);m/g,">").replace(/\s/g," ").replace(/\\h/g," ").replace(/\\N/g,"
").replace(/\\n/g,2===e?"
":" ")})(o,d.q).split("
").forEach((function(i,r){var s=document.createElement("span");if(s.dataset.hasRotate=m,l){var o=D.call(e,n,t.tag);s.style.cssText=o.cssText,s.appendChild(o.$svg)}else{if(r&&a.appendChild(document.createElement("br")),!i)return;s.innerHTML=i}s.style.cssText+=f,a.appendChild(s)}))}))})),i.appendChild(a),i}function X(t){var e=t.layer,i=t.margin,a=t.width,n=t.height,r=t.alignment,s=t.end,o=this.width-(this.scale*(i.left+i.right)|0),l=this.height,h=this.scale*i.vertical|0,c=100*this.video.currentTime;this._.space[e]=this._.space[e]||{left:{width:new Uint16Array(l+1),end:new Uint16Array(l+1)},center:{width:new Uint16Array(l+1),end:new Uint16Array(l+1)},right:{width:new Uint16Array(l+1),end:new Uint16Array(l+1)}};var d=this._.space[e],f=["right","left","center"][r%3],p=0,u=0,g=function(t){return(p=function(t){var e=d.left.width[t],i=d.center.width[t],n=d.right.width[t],r=d.left.end[t],s=d.center.end[t],l=d.right.end[t];return"left"===f&&(r>c&&e||s>c&&i&&2*a+i>o||l>c&&n&&a+n>o)||"center"===f&&(r>c&&e&&2*e+a>o||s>c&&i||l>c&&n&&2*n+a>o)||"right"===f&&(r>c&&e&&e+a>o||s>c&&i&&2*a+i>o||l>c&&n)}(t)?0:p+1)>=n&&(u=t,!0)};if(r<=3)for(var m=l-h-1;m>h&&!g(m);m--);else if(r>=7)for(var v=h+1;v>1;y3&&(u-=n-1);for(var x=u;x=4&&a<=6&&(h=(this.height-r)/2),a>=7&&(h=s.vertical),l=e.lefttoright?-n:this.width);else if(t.pos||i){var c=t.pos||{x:0,y:0};a%3==1&&(l=this.scale*c.x),a%3==2&&(l=this.scale*c.x-n/2),a%3==0&&(l=this.scale*c.x-n),a<=3&&(h=this.scale*c.y-r),a>=4&&a<=6&&(h=this.scale*c.y-r/2),a>=7&&(h=this.scale*c.y)}else{a%3==1&&(l=0),a%3==2&&(l=(this.width-n)/2),a%3==0&&(l=this.width-n-this.scale*s.right),o.some((function(t){return t.fragments.some((function(t){return t.animationName}))}))?(a<=3&&(h=this.height-r-s.vertical),a>=4&&a<=6&&(h=(this.height-r)/2),a>=7&&(h=s.vertical)):h=X.call(this,t)}return{x:l,y:h}}function V(t){var e=t.layer,i=t.start,a=t.end,n=t.alignment,r=t.effect,s=t.pos,o=t.margin,l=t.animationName,h=t.width,c=t.height,d=t.x,f=t.y,p=this.video.currentTime,u="";(e&&(u+="z-index:"+e+";"),l&&(u+=Y(l,a-i,Math.min(0,i-p))),u+="text-align:"+["right","left","center"][n%3]+";",r)||(u+="max-width:"+(this.width-this.scale*(o.left+o.right))+"px;",s||(n%3==1&&(u+="margin-left:"+this.scale*o.left+"px;"),n%3==0&&(u+="margin-right:"+this.scale*o.right+"px;"),h>this.width-this.scale*(o.left+o.right)&&(u+="margin-left:"+this.scale*o.left+"px;",u+="margin-right:"+this.scale*o.right+"px;")));return u+="width:"+h+"px;height:"+c+"px;left:"+d+"px;top:"+f+"px;"}function J(t){var e=G.call(this,t);h(t,{$div:e}),this._.$stage.appendChild(e);var i=e.getBoundingClientRect(),a=i.width,n=i.height;return h(t,{width:a,height:n}),h(t,W.call(this,t)),e.style.cssText=V.call(this,t),function(t){var e=t.alignment,i=t.width,a=t.height,n=t.x,r=t.y,s=t.$div,o=t.org;o||(o={x:0,y:0},e%3==1&&(o.x=n),e%3==2&&(o.x=n+i/2),e%3==0&&(o.x=n+i),e<=3&&(o.y=r+a),e>=4&&e<=6&&(o.y=r+a/2),e>=7&&(o.y=r));for(var l=s.childNodes.length-1;l>=0;l--){var h=s.childNodes[l];if("true"===h.dataset.hasRotate){var c=o.x-n-h.offsetLeft,d=o.y-r-h.offsetTop;h.style.cssText+=T.transform+"transform-origin:"+c+"px "+d+"px;"}}}(t),B.call(this,t),t}function Z(){for(var t=this.video.currentTime,e=this._.stagings.length-1;e>=0;e--){var i=this._.stagings[e],a=i.end;if(i.effect&&/scroll/.test(i.effect.name)){var n=i.effect,r=n.y1,s=n.y2,o=n.delay,l=((s||this._.resampledRes.height)-r)/(1e3/o);a=Math.min(a,i.start+l)}a=h[this._.index].start;){if(te[a+i>>1].end;)i=a+i>>1;if(!i)return 0;for(var n=i;nt&&t>=e[n].start||n&&e[n-1].end