@leafer/core 1.0.0-rc.3 → 1.0.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.min.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const t={imageSuffix:"leaf"},e={},s={RUNTIME:"runtime",LEAF:"leaf",TASK:"task",CNAVAS:"canvas",IMAGE:"image",types:{},create(t){const{types:e}=r;return e[t]?e[t]++:(e[t]=1,0)}},r=s,i={within:(t,e,s)=>(t<e&&(t=e),t>s&&(t=s),t),fourNumber(t){let e,s,r,i;if(t instanceof Array)switch(t.length){case 4:return t;case 2:e=r=t[0],s=i=t[1];break;case 3:e=t[0],s=i=t[1],r=t[2];break;case 1:t=t[0];break;default:t=0}return void 0===e?[t,t,t,t]:[e,s,r,i]},formatRotation:(t,e)=>(t%=360,e?t<0&&(t+=360):(t>180&&(t-=360),t<-180&&(t+=360)),t),getGapRotation(t,e){if(e>1){const s=Math.abs(t%e);(s<1||s>e-1)&&(t=Math.round(t/e)*e)}return t},formatSkew:t=>i.within(t,-90,90)},o=Math.PI/180,n=2*Math.PI,a=Math.PI/2,{sin:h,cos:l,acos:d,atan:c,sqrt:u,PI:p}=Math,_={};function g(){return{a:1,b:0,c:0,d:1,e:0,f:0}}const f={defaultMatrix:{a:1,b:0,c:0,d:1,e:0,f:0},tempMatrix:{},set(t,e=1,s=0,r=0,i=1,o=0,n=0){t.a=e,t.b=s,t.c=r,t.d=i,t.e=o,t.f=n},get:g,copy(t,e){t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t.e=e.e,t.f=e.f},translate(t,e,s){t.e+=e,t.f+=s},translateInner(t,e,s){t.e+=t.a*e+t.c*s,t.f+=t.b*e+t.d*s},scale(t,e,s=e){t.a*=e,t.b*=e,t.c*=s,t.d*=s},scaleOfOuter(t,e,s,r=s){m.toInnerPoint(t,e,_),m.scaleOfInner(t,_,s,r)},scaleOfInner(t,e,s,r=s){m.translateInner(t,e.x,e.y),m.scale(t,s,r),m.translateInner(t,-e.x,-e.y)},rotate(t,e){const s=l(e*=o),r=h(e),{a:i,b:n,c:a,d:d}=t;t.a=i*s-n*r,t.b=i*r+n*s,t.c=a*s-d*r,t.d=a*r+d*s},rotateOfOuter(t,e,s){m.toInnerPoint(t,e,_),m.rotateOfInner(t,_,s)},rotateOfInner(t,e,s){m.translateInner(t,e.x,e.y),m.rotate(t,s),m.translateInner(t,-e.x,-e.y)},skew(t,e,s){const{a:r,b:i,c:n,d:a}=t;s&&(s*=o,t.a=r+n*s,t.b=i+a*s),e&&(e*=o,t.c=n+r*e,t.d=a+i*e)},skewOfOuter(t,e,s,r){m.toInnerPoint(t,e,_),m.skewOfInner(t,_,s,r)},skewOfInner(t,e,s,r){m.translateInner(t,e.x,e.y),m.skew(t,s,r),m.translateInner(t,-e.x,-e.y)},multiply(t,e){const{a:s,b:r,c:i,d:o,e:n,f:a}=t;t.a=e.a*s+e.b*i,t.b=e.a*r+e.b*o,t.c=e.c*s+e.d*i,t.d=e.c*r+e.d*o,t.e=e.e*s+e.f*i+n,t.f=e.e*r+e.f*o+a},preMultiply(t,e){const{a:s,b:r,c:i,d:o,e:n,f:a}=t;1===e.a&&0===e.b&&0===e.c&&1===e.d||(t.a=s*e.a+r*e.c,t.b=s*e.b+r*e.d,t.c=i*e.a+o*e.c,t.d=i*e.b+o*e.d),t.e=n*e.a+a*e.c+e.e,t.f=n*e.b+a*e.d+e.f},divide(t,e){m.preMultiply(t,m.tempInvert(e))},tempInvert(t){const{tempMatrix:e}=m;return m.copy(e,t),m.invert(e),e},invert(t){const{a:e,b:s,c:r,d:i,e:o,f:n}=t,a=1/(e*i-s*r);t.a=i*a,t.b=-s*a,t.c=-r*a,t.d=e*a,t.e=-(o*i-n*r)*a,t.f=-(n*e-o*s)*a},toOuterPoint(t,e,s,r){const{x:i,y:o}=e;s||(s=e),s.x=i*t.a+o*t.c,s.y=i*t.b+o*t.d,r||(s.x+=t.e,s.y+=t.f)},toInnerPoint(t,e,s,r){const{x:i,y:o}=e,{a:n,b:a,c:h,d:l}=t,d=1/(n*l-a*h);if(s||(s=e),s.x=(i*l-o*h)*d,s.y=(o*n-i*a)*d,!r){const{e:e,f:r}=t;s.x-=(e*l-r*h)*d,s.y-=(r*n-e*a)*d}},decompose(t){const{a:e,b:s,c:r,d:i}=t;let n=e,a=i,h=0,l=0,_=0;if(s||r){const t=e*i-s*r,g=e*r+s*i;if(s){const r=e*e+s*s;n=u(r),a=t/n;const i=e/n;h=s>0?d(i):-d(i),l=c(g/r)/o}else{const e=r*r+i*i;a=u(e),n=t/a;const s=r/a;h=p/2-(i>0?d(-s):-d(s)),_=c(g/e)/o}h/=o}return{x:t.e,y:t.f,scaleX:n,scaleY:a,rotation:h,skewX:l,skewY:_}},reset(t){m.set(t)}},m=f,{toInnerPoint:y,toOuterPoint:x}=f,{sin:v,cos:E,abs:w,sqrt:b,atan2:C}=Math,T={defaultPoint:{x:0,y:0},tempPoint:{},tempRadiusPoint:{},set(t,e=0,s=0){t.x=e,t.y=s},setRadius(t,e,s){t.radiusX=e,t.radiusY=void 0===s?e:s},copy(t,e){t.x=e.x,t.y=e.y},move(t,e,s){t.x+=e,t.y+=s},rotate(t,e,s){s||(s=O.defaultPoint);const r=E(e*o),i=v(e*o),n=t.x-s.x,a=t.y-s.y;t.x=s.x+n*r-a*i,t.y=s.y+n*i+a*r},tempToInnerOf(t,e){const{tempPoint:s}=O;return O.copy(s,t),y(e,s,s),s},tempToOuterOf(t,e){const{tempPoint:s}=O;return O.copy(s,t),x(e,s,s),s},tempToInnerRadiusPointOf(t,e){const{tempRadiusPoint:s}=O;return O.copy(s,t),O.toInnerRadiusPointOf(t,e,s),s},toInnerRadiusPointOf(t,e,s){s||(s=t),y(e,t,s),s.radiusX=Math.abs(t.radiusX/e.scaleX),s.radiusY=Math.abs(t.radiusY/e.scaleY)},toInnerOf(t,e,s){y(e,t,s)},toOuterOf(t,e,s){x(e,t,s)},getCenter:(t,e)=>({x:t.x+(e.x-t.x)/2,y:t.y+(e.y-t.y)/2}),getDistance(t,e){const s=w(e.x-t.x),r=w(e.y-t.y);return b(s*s+r*r)},getAngle:(t,e)=>O.getAtan2(t,e)/o,getChangeAngle(t,e,s,r){r||(r=e);let i=O.getAngle(t,e);const o=O.getAngle(s,r)-i;return o<-180?o+360:o},getAtan2:(t,e)=>C(e.y-t.y,e.x-t.x),getDistancePoint(t,e,s){const r=O.getAtan2(t,e);return{x:t.x+E(r)*s,y:t.y+v(r)*s}},reset(t){O.reset(t)}},O=T;class P{constructor(t,e){"object"==typeof t?T.copy(this,t):T.set(this,t,e)}set(t,e){T.set(this,t,e)}copy(t){return T.copy(this,t),this}clone(){return new P(this)}rotate(t,e){return T.rotate(this,t,e),this}toInnerOf(t,e){return T.toInnerOf(this,t,e),this}toOuterOf(t,e){return T.toOuterOf(this,t,e),this}getCenter(t){return T.getCenter(this,t)}getDistance(t){return T.getDistance(this,t)}getAngle(t){return T.getAngle(this,t)}getAtan2(t){return T.getAtan2(this,t)}reset(){T.reset(this)}}class B{constructor(t,e,s,r,i,o){"object"==typeof t?f.copy(this,t):f.set(this,t,e,s,r,i,o)}set(t,e,s,r,i,o){f.set(this,t,e,s,r,i,o)}copy(t){return f.copy(this,t),this}clone(){return new B(this)}translate(t,e){return f.translate(this,t,e),this}translateInner(t,e){return f.translateInner(this,t,e),this}scale(t,e){return f.scale(this,t,e),this}scaleOfOuter(t,e,s){return f.scaleOfOuter(this,t,e,s),this}scaleOfInner(t,e,s){return f.scaleOfInner(this,t,e,s),this}rotate(t){return f.rotate(this,t),this}rotateOfOuter(t,e){return f.rotateOfOuter(this,t,e),this}rotateOfInner(t,e){return f.rotateOfInner(this,t,e),this}skew(t,e){return f.skew(this,t,e),this}skewOfOuter(t,e,s){return f.skewOfOuter(this,t,e,s),this}skewOfInner(t,e,s){return f.skewOfInner(this,t,e,s),this}multiply(t){return f.multiply(this,t),this}preMultiply(t){return f.preMultiply(this,t),this}divide(t){return f.divide(this,t),this}invert(){return f.invert(this),this}toOuterPoint(t,e,s){f.toOuterPoint(this,t,e,s)}toInnerPoint(t,e,s){f.toInnerPoint(this,t,e,s)}decompose(){return f.decompose(this)}reset(){f.reset(this)}}const k={tempPointBounds:{},setPoint(t,e,s){t.minX=t.maxX=e,t.minY=t.maxY=s},addPoint(t,e,s){t.minX=e<t.minX?e:t.minX,t.minY=s<t.minY?s:t.minY,t.maxX=e>t.maxX?e:t.maxX,t.maxY=s>t.maxY?s:t.maxY},addBounds(t,e,s,r,i){D(t,e,s),D(t,e+r,s+i)},copy(t,e){t.minX=e.minX,t.minY=e.minY,t.maxX=e.maxX,t.maxY=e.maxY},add(t,e){t.minX=e.minX<t.minX?e.minX:t.minX,t.minY=e.minY<t.minY?e.minY:t.minY,t.maxX=e.maxX>t.maxX?e.maxX:t.maxX,t.maxY=e.maxY>t.maxY?e.maxY:t.maxY},toBounds(t,e){e.x=t.minX,e.y=t.minY,e.width=t.maxX-t.minX,e.height=t.maxY-t.minY}},{addPoint:D}=k,{tempPointBounds:R,setPoint:L,addPoint:M,toBounds:S}=k,{toOuterPoint:I}=f;let A,W,N,X;const Y={},H={},j={tempBounds:{},set(t,e=0,s=0,r=0,i=0){t.x=e,t.y=s,t.width=r,t.height=i},copy(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},copyAndSpread(t,e,s,r){r||(r=s),U.set(t,e.x-s,e.y-r,e.width+2*s,e.height+2*r)},right:t=>t.x+t.width,bottom:t=>t.y+t.height,move(t,e,s){t.x+=e,t.y+=s},getByMove:(t,e,s)=>(t=Object.assign({},t),U.move(t,e,s),t),toOffsetOutBounds(t,e,s){e?F(e,t):e=t,s?(e.offsetX=-(U.right(s)-t.x),e.offsetY=-(U.bottom(s)-t.y)):(e.offsetX=t.x+t.width,e.offsetY=t.y+t.height),U.move(e,-e.offsetX,-e.offsetY)},scale(t,e,s){s||(s=e),t.x&&(t.x*=e),t.y&&(t.y*=s),t.width*=e,t.height*=s},tempToOuterOf:(t,e)=>(U.copy(U.tempBounds,t),U.toOuterOf(U.tempBounds,e),U.tempBounds),getOuterOf:(t,e)=>(t=Object.assign({},t),U.toOuterOf(t,e),t),toOuterOf(t,e,s){if(s||(s=t),0===e.b&&0===e.c){const{a:r,d:i}=e;r>0?(s.width=t.width*r,s.x=e.e+t.x*r):(s.width=t.width*-r,s.x=e.e+t.x*r-s.width),i>0?(s.height=t.height*i,s.y=e.f+t.y*i):(s.height=t.height*-i,s.y=e.f+t.y*i-s.height)}else Y.x=t.x,Y.y=t.y,I(e,Y,H),L(R,H.x,H.y),Y.x=t.x+t.width,I(e,Y,H),M(R,H.x,H.y),Y.y=t.y+t.height,I(e,Y,H),M(R,H.x,H.y),Y.x=t.x,I(e,Y,H),M(R,H.x,H.y),S(R,s)},getFitMatrix(t,e){const s=Math.min(1,Math.min(t.width/e.width,t.height/e.height));return new B(s,0,0,s,-e.x*s,-e.y*s)},getSpread(t,e,s){const r={};return U.copyAndSpread(r,t,e,s),r},spread(t,e,s){U.copyAndSpread(t,t,e,s)},ceil(t){t.x=Math.floor(t.x),t.y=Math.floor(t.y),t.width=Math.ceil(t.width),t.height=Math.ceil(t.height)},unsign(t){t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height)},add(t,e){A=t.x+t.width,W=t.y+t.height,N=e.x+e.width,X=e.y+e.height,A=A>N?A:N,W=W>X?W:X,t.x=t.x<e.x?t.x:e.x,t.y=t.y<e.y?t.y:e.y,t.width=A-t.x,t.height=W-t.y},addList(t,e){U.setByListWithHandle(t,e,void 0,!0)},setByList(t,e,s=!1){U.setByListWithHandle(t,e,void 0,s)},addListWithHandle(t,e,s){U.setByListWithHandle(t,e,s,!0)},setByListWithHandle(t,e,s,r=!1){let i,o=!0;for(let n=0,a=e.length;n<a;n++)i=s?s(e[n]):e[n],i&&(i.width||i.height)&&(o?(o=!1,r||F(t,i)):z(t,i));o&&U.reset(t)},setByPoints(t,e){e.forEach(((t,e)=>{0===e?L(R,t.x,t.y):M(R,t.x,t.y)})),S(R,t)},hitRadiusPoint:(t,e,s)=>(s&&(e=T.tempToInnerRadiusPointOf(e,s)),e.x>=t.x-e.radiusX&&e.x<=t.x+t.width+e.radiusX&&e.y>=t.y-e.radiusY&&e.y<=t.y+t.height+e.radiusY),hitPoint:(t,e,s)=>(s&&(e=T.tempToInnerOf(e,s)),e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height),hit:(t,e,s)=>(s&&(e=U.tempToOuterOf(e,s)),!(t.y+t.height<e.y||e.y+e.height<t.y||t.x+t.width<e.x||e.x+e.width<t.x)),includes:(t,e,s)=>(s&&(e=U.tempToOuterOf(e,s)),t.x<=e.x&&t.y<=e.y&&t.x+t.width>=e.x+e.width&&t.y+t.height>=e.y+e.height),getIntersectData(t,e,s){s&&(e=U.tempToOuterOf(e,s));let{x:r,y:i,width:o,height:n}=e;return A=r+o,W=i+n,N=t.x+t.width,X=t.y+t.height,r=r>t.x?r:t.x,i=i>t.y?i:t.y,A=A<N?A:N,W=W<X?W:X,o=A-r,n=W-i,{x:r,y:i,width:o,height:n}},intersect(t,e,s){U.copy(t,U.getIntersectData(t,e,s))},isSame:(t,e)=>t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height,isEmpty:t=>0===t.x&&0===t.y&&0===t.width&&0===t.height,reset(t){U.set(t)}},U=j,{add:z,copy:F}=U;class V{constructor(t,e,s,r){"object"==typeof t?j.copy(this,t):j.set(this,t,e,s,r)}set(t,e,s,r){j.set(this,t,e,s,r)}copy(t){return j.copy(this,t),this}clone(){return new V(this)}scale(t,e){return j.scale(this,t,e),this}toOuterOf(t,e){return j.toOuterOf(this,t,e),this}getFitMatrix(t){return j.getFitMatrix(this,t)}spread(t){return j.spread(this,t),this}ceil(){return j.ceil(this),this}unsign(){return j.unsign(this),this}add(t){return j.add(this,t),this}addList(t){return j.setByList(this,t,!0),this}setByList(t,e){return j.setByList(this,t,e),this}addListWithHandle(t,e){return j.setByListWithHandle(this,t,e,!0),this}setByListWithHandle(t,e,s){return j.setByListWithHandle(this,t,e,s),this}setByPoints(t){return j.setByPoints(this,t),this}hitPoint(t,e){return j.hitPoint(this,t,e)}hitRadiusPoint(t,e){return j.hitRadiusPoint(this,t,e)}hit(t,e){return j.hit(this,t,e)}includes(t,e){return j.includes(this,t,e)}intersect(t,e){return j.intersect(this,t,e),this}getIntersect(t,e){return new V(j.getIntersectData(this,t,e))}isSame(t){return j.isSame(this,t)}isEmpty(){return j.isEmpty(this)}reset(){j.reset(this)}}const G={0:1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,".":1,e:1,E:1};class K{constructor(t){this.repeatMap={},this.name=t}static get(t){return new K(t)}static set filter(t){t?"string"==typeof t&&(t=[t]):t=[],this.filterList=t}static set exclude(t){t?"string"==typeof t&&(t=[t]):t=[],this.excludeList=t}log(...t){if(Z.enable){if(Z.filterList.length&&Z.filterList.every((t=>t!==this.name)))return;if(Z.excludeList.length&&Z.excludeList.some((t=>t===this.name)))return;console.log("%c"+this.name,"color:#21ae62",...t)}}warn(...t){Z.enable&&console.warn(this.name,...t)}repeat(t,...e){this.repeatMap[t]||(this.warn("repeat:"+t,...e),this.repeatMap[t]=!0)}error(...t){try{throw new Error}catch(e){console.error(this.name,...t,e)}}}K.filterList=[],K.excludeList=[];const Z=K,q=K.get("RunTime");class Q{static start(t,e){const r=s.create(s.RUNTIME);return J.currentId=J.idMap[r]=e?performance.now():Date.now(),J.currentName=J.nameMap[r]=t,J.nameToIdMap[t]=r,r}static end(t,e){const s=J.idMap[t],r=J.nameMap[t];J.idMap[t]=J.nameMap[t]=J.nameToIdMap[r]=void 0,e?q.log(r,performance.now()-s,"µs"):q.log(r,Date.now()-s,"ms")}static endOfName(t,e){const s=J.nameToIdMap[t];void 0!==s&&J.end(s,e)}}Q.idMap={},Q.nameMap={},Q.nameToIdMap={};const J=Q,$=K.get("UICreator"),tt={list:{},register(t){const{__tag:e}=t.prototype;et[e]?$.repeat(e):et[e]=t},get(t,e,s,r,i,o){const n=new et[t](e);return void 0!==s&&(n.x=s,r&&(n.y=r),i&&(n.width=i),o&&(n.height=o)),n}},{list:et}=tt,st=K.get("EventCreator"),rt={nameList:{},register(t){let e;Object.keys(t).forEach((s=>{e=t[s],"string"==typeof e&&(it[e]?st.repeat(e):it[e]=t)}))},changeName(t,e){const s=it[t];if(s){const r=Object.keys(s).find((e=>s[e]===t));r&&(s[r]=e,it[e]=s)}},has(t){return!!this.nameList[t]},get:(t,...e)=>new it[t](...e)},{nameList:it}=rt;class ot{constructor(){this.list=[]}add(t){t.manager=this,this.list.push(t)}get(t){let s;const{list:r}=this;for(let e=0,i=r.length;e<i;e++)if(s=r[e],s.recycled&&s.isSameSize(t))return s.recycled=!1,s.manager||(s.manager=this),s;const i=e.canvas(t);return this.add(i),i}recycle(t){t.recycled||(t.clear(),t.recycled=!0)}clearRecycled(){let t;const e=[];for(let s=0,r=this.list.length;s<r;s++)t=this.list[s],t.recycled?t.destroy():e.push(t);this.list=e}clear(){this.list.forEach((t=>{t.destroy()})),this.list.length=0}destroy(){this.clear()}}class nt{get length(){return this.list.length}constructor(t){this.reset(),t&&(t instanceof Array?this.pushList(t):this.push(t))}has(t){return t&&void 0!==this.keys[t.innerId]}indexAt(t){return this.list[t]}indexOf(t){const e=this.keys[t.innerId];return void 0===e?-1:e}pushList(t){t.forEach((t=>{this.push(t)}))}unshift(t){const{keys:e}=this;void 0===e[t.innerId]&&(this.list.unshift(t),Object.keys(e).forEach((t=>{void 0!==e[t]&&e[t]++})),e[t.innerId]=0)}push(t){const{list:e,keys:s}=this;void 0===s[t.innerId]&&(e.push(t),s[t.innerId]=e.length-1)}sort(t){const{list:e}=this;t?e.sort(((t,e)=>e.__level-t.__level)):e.sort(((t,e)=>t.__level-e.__level))}remove(t){const{list:e}=this;let s;for(let r=0,i=e.length;r<i;r++)void 0!==s?this.keys[e[r].innerId]=r-1:e[r].innerId===t.innerId&&(s=r,delete this.keys[t.innerId]);void 0!==s&&e.splice(s,1)}forEach(t){this.list.forEach(t)}clone(){const t=new nt;return this.list.forEach((e=>{t.push(e)})),t}reset(){this.list=[],this.keys={}}destroy(){this.list=null}}const at={default:(t,e)=>(ht(e,t),ht(t,e),t),assign(t,e){let s;Object.keys(e).forEach((r=>{var i;s=e[r],(null==s?void 0:s.constructor)===Object&&(null===(i=t[r])||void 0===i?void 0:i.constructor)===Object?ht(t[r],e[r]):t[r]=e[r]}))},copyAttrs:(t,e,s)=>(s.forEach((s=>{void 0!==e[s]&&(t[s]=e[s])})),t),clone:t=>JSON.parse(JSON.stringify(t))},{assign:ht}=at;class lt{constructor(t){this.__leaf=t}__get(t){if(this.__input){const e=this.__input[t];if(void 0!==e)return e}return this[t]}__setInput(t,e){this.__input||(this.__input={}),this.__input[t]=e}__getInput(t){if(this.__input){const e=this.__input[t];if(void 0!==e)return e}return this["_"+t]}__removeInput(t){this.__input&&void 0!==this.__input[t]&&(this.__input[t]=void 0)}__getInputData(){const t={tag:this.__leaf.tag},{__input:e}=this;let s,r;for(let i in this)s=i.substring(1),void 0!==this[s]&&(r=e?e[s]:void 0,t[s]=void 0===r?this[i]:r);return t}__setMiddle(t,e){this.__middle||(this.__middle={}),this.__middle[t]=e}__getMiddle(t){return this.__middle&&this.__middle[t]}__checkSingle(){"pass-through"===this.blendMode?this.__leaf.__hasEraser||this.isEraser?this.__single=!0:this.__single&&(this.__single=!1):this.__single=!0}destroy(){this.__input=this.__middle=null}}const dt={mineType:t=>!t||t.startsWith("image")?t:("jpg"===t&&(t="jpeg"),"image/"+t),fileType(t){const e=t.split(".");return e[e.length-1]}};function ct(t,e,s,r){var i,o=arguments.length,n=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,s,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(n=(o<3?i(n):o>3?i(e,s,n):i(e,s))||n);return o>3&&n&&Object.defineProperty(e,s,n),n}function ut(t,e,s,r){return new(s||(s=Promise))((function(i,o){function n(t){try{h(r.next(t))}catch(t){o(t)}}function a(t){try{h(r.throw(t))}catch(t){o(t)}}function h(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(n,a)}h((r=r.apply(t,e||[])).next())}))}function pt(t){return(e,s)=>{t||(t=s);const r={get(){return this.context[t]},set(e){this.context[t]=e}};Object.defineProperty(e,s,r)}}"function"==typeof SuppressedError&&SuppressedError;const _t=[];function gt(){return(t,e)=>{_t.push(e)}}const ft=[];class mt{set blendMode(t){"normal"===t&&(t="source-over"),this.context.globalCompositeOperation=t}get blendMode(){return this.context.globalCompositeOperation}set dashPattern(t){this.context.setLineDash(t||ft)}get dashPattern(){return this.context.getLineDash()}__bindContext(){let t;_t.forEach((e=>{t=this.context[e],t&&(this[e]=t.bind(this.context))})),this.textBaseline="alphabetic"}setTransform(t,e,s,r,i,o){}resetTransform(){}getTransform(){}save(){}restore(){}transform(t,e,s,r,i,o){"object"==typeof t?this.context.transform(t.a,t.b,t.c,t.d,t.e,t.f):this.context.transform(t,e,s,r,i,o)}translate(t,e){}scale(t,e){}rotate(t){}fill(t,e){}stroke(t){}clip(t,e){}fillRect(t,e,s,r){}strokeRect(t,e,s,r){}clearRect(t,e,s,r){}drawImage(t,e,s,r,i,o,n,a,h){switch(arguments.length){case 9:if(e<0){const t=-e/r*a;r+=e,e=0,o+=t,a-=t}if(s<0){const t=-s/i*h;i+=s,s=0,n+=t,h-=t}this.context.drawImage(t,e,s,r,i,o,n,a,h);break;case 5:this.context.drawImage(t,e,s,r,i);break;case 3:this.context.drawImage(t,e,s)}}beginPath(){}moveTo(t,e){}lineTo(t,e){}bezierCurveTo(t,e,s,r,i,o){}quadraticCurveTo(t,e,s,r){}closePath(){}arc(t,e,s,r,i,o){}arcTo(t,e,s,r,i){}ellipse(t,e,s,r,i,o,n,a){}rect(t,e,s,r){}roundRect(t,e,s,r,i){}createConicGradient(t,e,s){}createLinearGradient(t,e,s,r){}createPattern(t,e){}createRadialGradient(t,e,s,r,i,o){}fillText(t,e,s,r){}measureText(t){}strokeText(t,e,s,r){}destroy(){this.context=null}}ct([pt("imageSmoothingEnabled")],mt.prototype,"smooth",void 0),ct([pt("imageSmoothingQuality")],mt.prototype,"smoothLevel",void 0),ct([pt("globalAlpha")],mt.prototype,"opacity",void 0),ct([pt()],mt.prototype,"fillStyle",void 0),ct([pt()],mt.prototype,"strokeStyle",void 0),ct([pt("lineWidth")],mt.prototype,"strokeWidth",void 0),ct([pt("lineCap")],mt.prototype,"strokeCap",void 0),ct([pt("lineJoin")],mt.prototype,"strokeJoin",void 0),ct([pt("lineDashOffset")],mt.prototype,"dashOffset",void 0),ct([pt()],mt.prototype,"miterLimit",void 0),ct([pt()],mt.prototype,"shadowBlur",void 0),ct([pt()],mt.prototype,"shadowColor",void 0),ct([pt()],mt.prototype,"shadowOffsetX",void 0),ct([pt()],mt.prototype,"shadowOffsetY",void 0),ct([pt()],mt.prototype,"filter",void 0),ct([pt()],mt.prototype,"font",void 0),ct([pt()],mt.prototype,"fontKerning",void 0),ct([pt()],mt.prototype,"fontStretch",void 0),ct([pt()],mt.prototype,"fontVariantCaps",void 0),ct([pt()],mt.prototype,"textAlign",void 0),ct([pt()],mt.prototype,"textBaseline",void 0),ct([pt()],mt.prototype,"textRendering",void 0),ct([pt()],mt.prototype,"wordSpacing",void 0),ct([pt()],mt.prototype,"letterSpacing",void 0),ct([pt()],mt.prototype,"direction",void 0),ct([gt()],mt.prototype,"setTransform",null),ct([gt()],mt.prototype,"resetTransform",null),ct([gt()],mt.prototype,"getTransform",null),ct([gt()],mt.prototype,"save",null),ct([gt()],mt.prototype,"restore",null),ct([gt()],mt.prototype,"translate",null),ct([gt()],mt.prototype,"scale",null),ct([gt()],mt.prototype,"rotate",null),ct([gt()],mt.prototype,"fill",null),ct([gt()],mt.prototype,"stroke",null),ct([gt()],mt.prototype,"clip",null),ct([gt()],mt.prototype,"fillRect",null),ct([gt()],mt.prototype,"strokeRect",null),ct([gt()],mt.prototype,"clearRect",null),ct([gt()],mt.prototype,"beginPath",null),ct([gt()],mt.prototype,"moveTo",null),ct([gt()],mt.prototype,"lineTo",null),ct([gt()],mt.prototype,"bezierCurveTo",null),ct([gt()],mt.prototype,"quadraticCurveTo",null),ct([gt()],mt.prototype,"closePath",null),ct([gt()],mt.prototype,"arc",null),ct([gt()],mt.prototype,"arcTo",null),ct([gt()],mt.prototype,"ellipse",null),ct([gt()],mt.prototype,"rect",null),ct([gt()],mt.prototype,"roundRect",null),ct([gt()],mt.prototype,"createConicGradient",null),ct([gt()],mt.prototype,"createLinearGradient",null),ct([gt()],mt.prototype,"createPattern",null),ct([gt()],mt.prototype,"createRadialGradient",null),ct([gt()],mt.prototype,"fillText",null),ct([gt()],mt.prototype,"measureText",null),ct([gt()],mt.prototype,"strokeText",null);const yt=new V,xt={width:1,height:1,pixelRatio:1},vt=K.get("LeaferCanvasBase"),Et=["width","height","pixelRatio"];const wt={creator:{},parse(t,e){},convertToCanvasData(t,e){}},bt={N:21,D:22,X:23,G:24,F:25,O:26,P:27,U:28},Ct=Object.assign({M:1,m:10,L:2,l:20,H:3,h:30,V:4,v:40,C:5,c:50,S:6,s:60,Q:7,q:70,T:8,t:80,A:9,a:90,Z:11,z:11,R:12},bt),Tt={M:3,m:3,L:3,l:3,H:2,h:2,V:2,v:2,C:7,c:7,S:5,s:5,Q:5,q:5,T:3,t:3,A:8,a:8,Z:1,z:1,N:5,D:9,X:6,G:9,F:5,O:7,P:4,U:6},Ot={m:10,l:20,H:3,h:30,V:4,v:40,c:50,S:6,s:60,q:70,T:8,t:80,A:9,a:90},Pt=Object.assign(Object.assign({},Ot),bt),Bt=Ct,kt={};for(let t in Bt)kt[Bt[t]]=t;const Dt={};for(let t in Bt)Dt[Bt[t]]=Tt[t];const Rt={drawRoundRect(t,e,s,r,o,n){let[a,h,l,d]=i.fourNumber(n);const c=Math.min(r/2,o/2);a>c&&(a=c),h>c&&(h=c),l>c&&(l=c),d>c&&(d=c),a?t.moveTo(e+a,s):t.moveTo(e,s),h?t.arcTo(e+r,s,e+r,s+o,h):t.lineTo(e+r,s),l?t.arcTo(e+r,s+o,e,s+o,l):t.lineTo(e+r,s+o),d?t.arcTo(e,s+o,e,s,d):t.lineTo(e,s+o),a?t.arcTo(e,s,e+r,s,a):t.lineTo(e,s)}},{sin:Lt,cos:Mt,atan2:St,ceil:It,abs:At,PI:Wt,sqrt:Nt,pow:Xt}=Math,{setPoint:Yt,addPoint:Ht}=k,{set:jt}=T,{M:Ut,L:zt,C:Ft,Q:Vt,Z:Gt}=Ct,Kt={},Zt={points(t,e,s,r){if(t.push(Ut,e[0],e[1]),s&&e.length>5){let i,o,n,a,h,l,d,c,u,p,_,g,f,m=e.length;const y=!0===s?.5:s;r&&(m=(e=[e[m-2],e[m-1],...e,e[0],e[1],e[2],e[3]]).length);for(let s=2;s<m-2;s+=2)i=e[s-2],o=e[s-1],n=e[s],a=e[s+1],h=e[s+2],l=e[s+3],_=Nt(Xt(n-i,2)+Xt(a-o,2)),g=Nt(Xt(h-n,2)+Xt(l-a,2)),f=_+g,_=y*_/f,g=y*g/f,h-=i,l-=o,d=n-_*h,c=a-_*l,2===s?r||t.push(Vt,d,c,n,a):t.push(Ft,u,p,d,c,n,a),u=n+g*h,p=a+g*l;r||t.push(Vt,u,p,e[m-2],e[m-1])}else for(let s=2,r=e.length;s<r;s+=2)t.push(zt,e[s],e[s+1]);r&&t.push(Gt)},rect(t,e,s,r,i){wt.creator.path=t,wt.creator.moveTo(e,s).lineTo(e+r,s).lineTo(e+r,s+i).lineTo(e,s+i).lineTo(e,s)},roundRect(t,e,s,r,i,o){wt.creator.path=[],Rt.drawRoundRect(wt.creator,e,s,r,i,o),t.push(...wt.convertToCanvasData(wt.creator.path,!0))},arcTo(t,e,s,r,i,h,l,d,c,u,p){const _=r-e,g=i-s,f=h-r,m=l-i;let y=St(g,_),x=St(m,f),v=x-y;if(v<0&&(v+=n),v===Wt||At(_+g)<1e-12||At(f+m)<1e-12)return t&&t.push(zt,r,i),c&&(Yt(c,e,s),Ht(c,r,i)),p&&jt(p,e,s),void(u&&jt(u,r,i));const E=_*m-f*g<0,w=E?-1:1,b=d/Mt(v/2),C=r+b*Mt(y+v/2+a*w),T=i+b*Lt(y+v/2+a*w);return y-=a*w,x-=a*w,Jt(t,C,T,d,d,0,y/o,x/o,E,c,u,p)},arc:(t,e,s,r,i,o,n,a,h,l)=>Jt(t,e,s,r,r,0,i,o,n,a,h,l),ellipse(t,e,s,r,i,h,l,d,c,u,p,_){const g=h*o,f=Lt(g),m=Mt(g);let y=l*o,x=d*o;y>Wt&&(y-=n),x<0&&(x+=n);let v=x-y;v<0?v+=n:v>n&&(v-=n),c&&(v-=n);const E=It(At(v/a)),w=v/E,b=Lt(w/4),C=8/3*b*b/Lt(w/2);x=y+w;let T,O,P,B,k,D,R,L,M=Mt(y),S=Lt(y),I=P=m*r*M-f*i*S,A=B=f*r*M+m*i*S,W=e+P,N=s+B;t&&t.push(zt,W,N),u&&Yt(u,W,N),_&&jt(_,W,N);for(let o=0;o<E;o++)T=Mt(x),O=Lt(x),P=m*r*T-f*i*O,B=f*r*T+m*i*O,k=e+I-C*(m*r*S+f*i*M),D=s+A-C*(f*r*S-m*i*M),R=e+P+C*(m*r*O+f*i*T),L=s+B+C*(f*r*O-m*i*T),t&&t.push(Ft,k,D,R,L,e+P,s+B),u&&Qt(e+I,s+A,k,D,R,L,e+P,s+B,u,!0),I=P,A=B,M=T,S=O,y=x,x+=w;p&&jt(p,e+P,s+B)},quadraticCurveTo(t,e,s,r,i,o,n){t.push(Ft,(e+2*r)/3,(s+2*i)/3,(o+2*r)/3,(n+2*i)/3,o,n)},toTwoPointBoundsByQuadraticCurve(t,e,s,r,i,o,n,a){Qt(t,e,(t+2*s)/3,(e+2*r)/3,(i+2*s)/3,(o+2*r)/3,i,o,n,a)},toTwoPointBounds(t,e,s,r,i,o,n,a,h,l){const d=[];let c,u,p,_,g,f,m,y,x=t,v=s,E=i,w=n;for(let t=0;t<2;++t)if(1==t&&(x=e,v=r,E=o,w=a),c=-3*x+9*v-9*E+3*w,u=6*x-12*v+6*E,p=3*v-3*x,Math.abs(c)<1e-12){if(Math.abs(u)<1e-12)continue;_=-p/u,0<_&&_<1&&d.push(_)}else m=u*u-4*p*c,y=Math.sqrt(m),m<0||(g=(-u+y)/(2*c),0<g&&g<1&&d.push(g),f=(-u-y)/(2*c),0<f&&f<1&&d.push(f));l?Ht(h,t,e):Yt(h,t,e),Ht(h,n,a);for(let l=0,c=d.length;l<c;l++)qt(d[l],t,e,s,r,i,o,n,a,Kt),Ht(h,Kt.x,Kt.y)},getPointAndSet(t,e,s,r,i,o,n,a,h,l){const d=1-t,c=d*d*d,u=3*d*d*t,p=3*d*t*t,_=t*t*t;l.x=c*e+u*r+p*o+_*a,l.y=c*s+u*i+p*n+_*h},getPoint(t,e,s,r,i,o,n,a,h){const l={};return qt(t,e,s,r,i,o,n,a,h,l),l}},{getPointAndSet:qt,toTwoPointBounds:Qt,ellipse:Jt}=Zt,{sin:$t,cos:te,sqrt:ee,atan2:se}=Math,{ellipse:re}=Zt,ie={ellipticalArc(t,e,s,r,i,a,h,l,d,c,u){const p=(d-e)/2,_=(c-s)/2,g=a*o,f=$t(g),m=te(g),y=-m*p-f*_,x=-m*_+f*p,v=r*r,E=i*i,w=x*x,b=y*y,C=v*E-v*w-E*b;let T=0;if(C<0){const t=ee(1-C/(v*E));r*=t,i*=t}else T=(h===l?-1:1)*ee(C/(v*w+E*b));const O=T*r*x/i,P=-T*i*y/r,B=se((x-P)/i,(y-O)/r),k=se((-x-P)/i,(-y-O)/r);let D=k-B;0===l&&D>0?D-=n:1===l&&D<0&&(D+=n);const R=e+p+m*O-f*P,L=s+_+f*O+m*P,M=D<0?1:0;u?re(t,R,L,r,i,a,B/o,k/o,M):r!==i||a?t.push(Ct.G,R,L,r,i,a,B/o,k/o,M):t.push(Ct.O,R,L,r,B/o,k/o,M)}},{M:oe,m:ne,L:ae,l:he,H:le,h:de,V:ce,v:ue,C:pe,c:_e,S:ge,s:fe,Q:me,q:ye,T:xe,t:ve,A:Ee,a:we,Z:be,z:Ce,N:Te,D:Oe,X:Pe,G:Be,F:ke,O:De,P:Re,U:Le}=Ct,{rect:Me,roundRect:Se,arcTo:Ie,arc:Ae,ellipse:We,quadraticCurveTo:Ne}=Zt,{ellipticalArc:Xe}=ie,Ye=K.get("PathConvert"),He={},je={current:{dot:0},stringify(t){let e,s,r,i=0,o=t.length,n="";for(;i<o;){s=t[i],e=Dt[s],n+=s===r?" ":kt[s];for(let s=1;s<e;s++)n+=t[i+s],s===e-1||(n+=" ");r=s,i+=e}return n},parse(t,e){let s,r,i,o="";const n=[],a=e?Pt:Ot;for(let e=0,h=t.length;e<h;e++)r=t[e],G[r]?("."===r&&(Ue.dot++,Ue.dot>1&&(ze(n,o),o="")),o+=r):Ct[r]?(o&&(ze(n,o),o=""),Ue.name=Ct[r],Ue.length=Tt[r],Ue.index=0,ze(n,Ue.name),!s&&a[r]&&(s=!0)):"-"===r||"+"===r?"e"===i||"E"===i?o+=r:(o&&ze(n,o),o=r):o&&(ze(n,o),o=""),i=r;return o&&ze(n,o),s?je.toCanvasData(n,e):n},toCanvasData(t,e){let s,r,i,o,n,a=0,h=0,l=0,d=0,c=0,u=t.length;const p=[];for(;c<u;){switch(i=t[c],i){case ne:t[c+1]+=a,t[c+2]+=h;case oe:a=t[c+1],h=t[c+2],p.push(oe,a,h),c+=3;break;case de:t[c+1]+=a;case le:a=t[c+1],p.push(ae,a,h),c+=2;break;case ue:t[c+1]+=h;case ce:h=t[c+1],p.push(ae,a,h),c+=2;break;case he:t[c+1]+=a,t[c+2]+=h;case ae:a=t[c+1],h=t[c+2],p.push(ae,a,h),c+=3;break;case fe:t[c+1]+=a,t[c+2]+=h,t[c+3]+=a,t[c+4]+=h,i=ge;case ge:n=o===pe||o===ge,l=n?2*a-s:t[c+1],d=n?2*h-r:t[c+2],s=t[c+1],r=t[c+2],a=t[c+3],h=t[c+4],p.push(pe,l,d,s,r,a,h),c+=5;break;case _e:t[c+1]+=a,t[c+2]+=h,t[c+3]+=a,t[c+4]+=h,t[c+5]+=a,t[c+6]+=h,i=pe;case pe:s=t[c+3],r=t[c+4],a=t[c+5],h=t[c+6],p.push(pe,t[c+1],t[c+2],s,r,a,h),c+=7;break;case ve:t[c+1]+=a,t[c+2]+=h,i=xe;case xe:n=o===me||o===xe,s=n?2*a-s:t[c+1],r=n?2*h-r:t[c+2],e?Ne(p,a,h,s,r,t[c+1],t[c+2]):p.push(me,s,r,t[c+1],t[c+2]),a=t[c+1],h=t[c+2],c+=3;break;case ye:t[c+1]+=a,t[c+2]+=h,t[c+3]+=a,t[c+4]+=h,i=me;case me:s=t[c+1],r=t[c+2],e?Ne(p,a,h,s,r,t[c+3],t[c+4]):p.push(me,s,r,t[c+3],t[c+4]),a=t[c+3],h=t[c+4],c+=5;break;case we:t[c+6]+=a,t[c+7]+=h;case Ee:Xe(p,a,h,t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],t[c+6],t[c+7],e),a=t[c+6],h=t[c+7],c+=8;break;case Ce:case be:p.push(be),c++;break;case Te:a=t[c+1],h=t[c+2],e?Me(p,a,h,t[c+3],t[c+4]):Fe(p,t,c,5),c+=5;break;case Oe:a=t[c+1],h=t[c+2],e?Se(p,a,h,t[c+3],t[c+4],[t[c+5],t[c+6],t[c+7],t[c+8]]):Fe(p,t,c,9),c+=9;break;case Pe:a=t[c+1],h=t[c+2],e?Se(p,a,h,t[c+3],t[c+4],t[c+5]):Fe(p,t,c,6),c+=6;break;case Be:We(e?p:Fe(p,t,c,9),t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],t[c+6],t[c+7],t[c+8],null,He),a=He.x,h=He.y,c+=9;break;case ke:e?We(p,t[c+1],t[c+2],t[c+3],t[c+4],0,0,360,!1):Fe(p,t,c,5),a=t[c+1]+t[c+3],h=t[c+2],c+=5;break;case De:Ae(e?p:Fe(p,t,c,7),t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],t[c+6],null,He),a=He.x,h=He.y,c+=7;break;case Re:e?Ae(p,t[c+1],t[c+2],t[c+3],0,360,!1):Fe(p,t,c,4),a=t[c+1]+t[c+3],h=t[c+2],c+=4;break;case Le:Ie(e?p:Fe(p,t,c,6),a,h,t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],null,He),a=He.x,h=He.y,c+=6;break;default:return Ye.error(`command: ${i} [index:${c}]`,t),p}o=i}return p},copyData(t,e,s,r){for(let i=s,o=s+r;i<o;i++)t.push(e[i])},pushData(t,e){Ue.index===Ue.length&&(Ue.index=1,t.push(Ue.name)),t.push(Number(e)),Ue.index++,Ue.dot=0}},{current:Ue,pushData:ze,copyData:Fe}=je,{M:Ve,L:Ge,C:Ke,Q:Ze,Z:qe,N:Qe,D:Je,X:$e,G:ts,F:es,O:ss,P:rs,U:is}=Ct,os={},ns={beginPath(t){t.length=0},moveTo(t,e,s){t.push(Ve,e,s)},lineTo(t,e,s){t.push(Ge,e,s)},bezierCurveTo(t,e,s,r,i,o,n){t.push(Ke,e,s,r,i,o,n)},quadraticCurveTo(t,e,s,r,i){t.push(Ze,e,s,r,i)},closePath(t){t.push(qe)},rect(t,e,s,r,i){t.push(Qe,e,s,r,i)},roundRect(t,e,s,r,o,n){if("number"==typeof n)t.push($e,e,s,r,o,n);else{const a=i.fourNumber(n);a?t.push(Je,e,s,r,o,...a):t.push(Qe,e,s,r,o)}},ellipse(t,e,s,r,i,o,n,a,h){void 0===o?t.push(es,e,s,r,i):(void 0===n&&(n=0),void 0===a&&(a=360),t.push(ts,e,s,r,i,o,n,a,h?1:0))},arc(t,e,s,r,i,o,n){void 0===i?t.push(rs,e,s,r):(void 0===o&&(o=360),t.push(ss,e,s,r,i,o,n?1:0))},arcTo(t,e,s,r,i,o){t.push(is,e,s,r,i,o)},drawEllipse(t,e,s,r,i,o,n,a,h){void 0===o&&(o=0),void 0===n&&(n=0),void 0===a&&(a=360),Zt.ellipse(null,e,s,r,i,o,n,a,h,null,null,os),t.push(Ve,os.x,os.y),as(t,e,s,r,i,o,n,a,h)},drawArc(t,e,s,r,i,o,n){void 0===i&&(i=0),void 0===o&&(o=360),Zt.arc(null,e,s,r,i,o,n,null,null,os),t.push(Ve,os.x,os.y),hs(t,e,s,r,i,o,n)},drawPoints(t,e,s,r){Zt.points(t,e,s,r)}},{ellipse:as,arc:hs}=ns,{moveTo:ls,lineTo:ds,quadraticCurveTo:cs,bezierCurveTo:us,closePath:ps,beginPath:_s,rect:gs,roundRect:fs,ellipse:ms,arc:ys,arcTo:xs,drawEllipse:vs,drawArc:Es,drawPoints:ws}=ns;class bs{constructor(t){this.path=t?"string"==typeof t?wt.parse(t):t:[]}beginPath(){return _s(this.path),this}moveTo(t,e){return ls(this.path,t,e),this}lineTo(t,e){return ds(this.path,t,e),this}bezierCurveTo(t,e,s,r,i,o){return us(this.path,t,e,s,r,i,o),this}quadraticCurveTo(t,e,s,r){return cs(this.path,t,e,s,r),this}closePath(){return ps(this.path),this}rect(t,e,s,r){return gs(this.path,t,e,s,r),this}roundRect(t,e,s,r,i){return fs(this.path,t,e,s,r,i),this}ellipse(t,e,s,r,i,o,n,a){return ms(this.path,t,e,s,r,i,o,n,a),this}arc(t,e,s,r,i,o){return ys(this.path,t,e,s,r,i,o),this}arcTo(t,e,s,r,i){return xs(this.path,t,e,s,r,i),this}drawEllipse(t,e,s,r,i,o,n,a){return vs(this.path,t,e,s,r,i,o,n,a),this}drawArc(t,e,s,r,i,o){return Es(this.path,t,e,s,r,i,o),this}drawPoints(t,e,s){return ws(this.path,t,e,s),this}}const{M:Cs,L:Ts,C:Os,Q:Ps,Z:Bs,N:ks,D:Ds,X:Rs,G:Ls,F:Ms,O:Ss,P:Is,U:As}=Ct,Ws=K.get("PathDrawer"),Ns={drawPathByData(t,e){if(!e)return;let s,r=0,i=e.length;for(;r<i;)switch(s=e[r],s){case Cs:t.moveTo(e[r+1],e[r+2]),r+=3;break;case Ts:t.lineTo(e[r+1],e[r+2]),r+=3;break;case Os:t.bezierCurveTo(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5],e[r+6]),r+=7;break;case Ps:t.quadraticCurveTo(e[r+1],e[r+2],e[r+3],e[r+4]),r+=5;break;case Bs:t.closePath(),r+=1;break;case ks:t.rect(e[r+1],e[r+2],e[r+3],e[r+4]),r+=5;break;case Ds:t.roundRect(e[r+1],e[r+2],e[r+3],e[r+4],[e[r+5],e[r+6],e[r+7],e[r+8]]),r+=9;break;case Rs:t.roundRect(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5]),r+=6;break;case Ls:t.ellipse(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5]*o,e[r+6]*o,e[r+7]*o,e[r+8]),r+=9;break;case Ms:t.ellipse(e[r+1],e[r+2],e[r+3],e[r+4],0,0,n,!1),r+=5;break;case Ss:t.arc(e[r+1],e[r+2],e[r+3],e[r+4]*o,e[r+5]*o,e[r+6]),r+=7;break;case Is:t.arc(e[r+1],e[r+2],e[r+3],0,n,!1),r+=4;break;case As:t.arcTo(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5]),r+=6;break;default:return void Ws.error(`command: ${s} [index:${r}]`,e)}}},{M:Xs,L:Ys,C:Hs,Q:js,Z:Us,N:zs,D:Fs,X:Vs,G:Gs,F:Ks,O:Zs,P:qs,U:Qs}=Ct,{toTwoPointBounds:Js,toTwoPointBoundsByQuadraticCurve:$s,arcTo:tr,arc:er,ellipse:sr}=Zt,{add:rr,copy:ir,addPoint:or,setPoint:nr,addBounds:ar,toBounds:hr}=k,lr=K.get("PathBounds");let dr,cr,ur;const pr={},_r={},gr={},fr={toBounds(t,e){fr.toTwoPointBounds(t,_r),hr(_r,e)},toTwoPointBounds(t,e){if(!t||!t.length)return nr(e,0,0);let s,r,i,o,n,a=0,h=0,l=0;const d=t.length;for(;a<d;)switch(s=t[a],0===a&&(s===Us||s===Hs||s===js?nr(e,h,l):nr(e,t[a+1],t[a+2])),s){case Xs:case Ys:h=t[a+1],l=t[a+2],or(e,h,l),a+=3;break;case Hs:o=t[a+5],n=t[a+6],Js(h,l,t[a+1],t[a+2],t[a+3],t[a+4],o,n,pr),rr(e,pr),h=o,l=n,a+=7;break;case js:r=t[a+1],i=t[a+2],o=t[a+3],n=t[a+4],$s(h,l,r,i,o,n,pr),rr(e,pr),h=o,l=n,a+=5;break;case Us:a+=1;break;case zs:h=t[a+1],l=t[a+2],ar(e,h,l,t[a+3],t[a+4]),a+=5;break;case Fs:case Vs:h=t[a+1],l=t[a+2],ar(e,h,l,t[a+3],t[a+4]),a+=s===Fs?9:6;break;case Gs:sr(null,t[a+1],t[a+2],t[a+3],t[a+4],t[a+5],t[a+6],t[a+7],t[a+8],pr,gr),0===a?ir(e,pr):rr(e,pr),h=gr.x,l=gr.y,a+=9;break;case Ks:h=t[a+1],l=t[a+2],cr=t[a+3],ur=t[a+4],ar(e,h-cr,l-ur,2*cr,2*ur),h+=cr,a+=5;break;case Zs:er(null,t[a+1],t[a+2],t[a+3],t[a+4],t[a+5],t[a+6],pr,gr),0===a?ir(e,pr):rr(e,pr),h=gr.x,l=gr.y,a+=7;break;case qs:h=t[a+1],l=t[a+2],dr=t[a+3],ar(e,h-dr,l-dr,2*dr,2*dr),h+=dr,a+=4;break;case Qs:tr(null,h,l,t[a+1],t[a+2],t[a+3],t[a+4],t[a+5],pr,gr),0===a?ir(e,pr):rr(e,pr),h=gr.x,l=gr.y,a+=6;break;default:return void lr.error(`command: ${s} [index:${a}]`,t)}}},mr={smooth:(t,e,s)=>t};wt.creator=new bs,wt.parse=je.parse,wt.convertToCanvasData=je.toCanvasData;const{drawRoundRect:yr}=Rt;const xr=K.get("TaskProcessor");class vr{constructor(t){this.parallel=!0,this.time=1,this.id=s.create(s.TASK),this.task=t}run(){return ut(this,void 0,void 0,(function*(){try{this.task&&!this.isComplete&&this.parent.running&&(yield this.task())}catch(t){xr.error(t)}}))}complete(){this.isComplete=!0,this.parent=null,this.task=null}cancel(){this.isCancel=!0,this.complete()}}class Er{get total(){return this.list.length+this.delayNumber}get finishedIndex(){return this.isComplete?0:this.index+this.parallelSuccessNumber}get remain(){return this.isComplete?this.total:this.total-this.finishedIndex}get percent(){const{total:t}=this;let e=0,s=0;for(let r=0;r<t;r++)r<=this.finishedIndex?(s+=this.list[r].time,r===this.finishedIndex&&(e=s)):e+=this.list[r].time;return this.isComplete?1:s/e}constructor(t){this.config={parallel:6},this.list=[],this.running=!1,this.isComplete=!0,this.index=0,this.delayNumber=0,t&&at.assign(this.config,t),this.empty()}add(t,e){let s,r,i,o;const n=new vr(t);return n.parent=this,"number"==typeof e?o=e:e&&(r=e.parallel,s=e.start,i=e.time,o=e.delay),i&&(n.time=i),!1===r&&(n.parallel=!1),void 0===o?this.push(n,s):(this.delayNumber++,setTimeout((()=>{this.delayNumber--,this.push(n,s)}),o)),this.isComplete=!1,n}push(t,e){this.list.push(t),!1===e||this.timer||(this.timer=setTimeout((()=>this.start())))}empty(){this.index=0,this.parallelSuccessNumber=0,this.list=[],this.parallelList=[]}start(){this.running||(this.running=!0,this.isComplete=!1,this.run())}pause(){clearTimeout(this.timer),this.timer=null,this.running=!1}resume(){this.start()}skip(){this.index++,this.resume()}stop(){this.isComplete=!0,this.list.forEach((t=>{t.isComplete||t.cancel()})),this.pause(),this.empty()}run(){this.running&&(this.setParallelList(),this.parallelList.length>1?this.runParallelTasks():this.remain?this.runTask():this.onComplete())}runTask(){const t=this.list[this.index];t?t.run().then((()=>{this.onTask(t),this.index++,this.nextTask()})).catch((t=>{this.onError(t)})):this.nextTask()}runParallelTasks(){this.parallelList.forEach((t=>this.runParallelTask(t)))}runParallelTask(t){t.run().then((()=>{this.onTask(t),this.fillParallelTask()})).catch((t=>{this.onParallelError(t)}))}nextTask(){this.total===this.finishedIndex?this.onComplete():this.timer=setTimeout((()=>this.run()))}setParallelList(){let t;this.parallelList=[],this.parallelSuccessNumber=0;let e=this.index+this.config.parallel;e>this.list.length&&(e=this.list.length);for(let s=this.index;s<e&&(t=this.list[s],t.parallel);s++)this.parallelList.push(t)}fillParallelTask(){let t;const e=this.parallelList;this.parallelSuccessNumber++,e.pop();const s=e.length,r=this.finishedIndex+s;if(e.length){if(!this.running)return;r<this.total&&(t=this.list[r],t&&t.parallel&&(e.push(t),this.runParallelTask(t)))}else this.index+=this.parallelSuccessNumber,this.parallelSuccessNumber=0,this.nextTask()}onComplete(){this.stop(),this.config.onComplete&&this.config.onComplete()}onTask(t){t.complete(),this.config.onTask&&this.config.onTask()}onParallelError(t){this.parallelList.forEach((t=>{t.parallel=!1})),this.parallelList.length=0,this.parallelSuccessNumber=0,this.onError(t)}onError(t){this.pause(),this.config.onError&&this.config.onError(t)}destroy(){this.stop()}}const wr={map:{},recycledList:[],tasker:new Er,patternTasker:new Er,get isComplete(){return br.tasker.isComplete&&br.patternTasker.isComplete},get(t){let s=br.map[t.url];return s||(s=e.image(t),br.map[t.url]=s),s.use++,s},recycle(t){t.use--,setTimeout((()=>{t.use||br.recycledList.push(t)}))},clearRecycled(){const t=br.recycledList;t.length&&(t.forEach((t=>{!t.use&&t.url&&(delete br.map[t.url],t.destroy())})),t.length=0)},destroy(){br.map={}}},br=wr,{IMAGE:Cr,create:Tr}=s;class Or{constructor(t,e){this.bubbles=!1,this.type=t,e&&(this.target=e)}stopDefault(){this.isStopDefault=!0}stopNow(){this.isStopNow=!0,this.isStop=!0}stop(){this.isStop=!0}}class Pr extends Or{constructor(t,e,s){super(t,e),this.parent=s,this.child=e}}Pr.ADD="child.add",Pr.REMOVE="child.remove";class Br extends Or{constructor(t,e,s,r,i){super(t,e),this.attrName=s,this.oldValue=r,this.newValue=i}}Br.CHANGE="property.change";class kr extends Or{constructor(t,e){super(t),Object.assign(this,e)}}kr.LOAD="image.load",kr.LOADED="image.loaded",kr.ERROR="image.error";class Dr extends Or{get bigger(){if(!this.old)return!0;const{width:t,height:e}=this.old;return this.width>=t&&this.height>=e}get smaller(){return!this.bigger}get samePixelRatio(){return!this.old||this.pixelRatio===this.old.pixelRatio}constructor(t,e){"object"==typeof t?(super(Dr.RESIZE),Object.assign(this,t)):super(t),this.old=e}}Dr.RESIZE="resize";class Rr extends Or{constructor(t,e){super(t),e&&Object.assign(this,e)}}Rr.START="transform.start",Rr.CHANGE="transform.change",Rr.END="transform.end",Rr.BEFORE_START="transform.before_start",Rr.BEFORE_CHANGE="transform.before_change",Rr.BEFORE_END="transform.before_end";class Lr extends Or{constructor(t,e){super(t),this.data=e}}Lr.REQUEST="watch.request",Lr.DATA="watch.data";class Mr extends Or{constructor(t,e,s){super(t),e&&(this.data=e,this.times=s)}}Mr.CHECK_UPDATE="layout.check_update",Mr.REQUEST="layout.request",Mr.START="layout.start",Mr.BEFORE="layout.before",Mr.LAYOUT="layout.layout",Mr.AFTER="layout.after",Mr.AGAIN="layout.again",Mr.END="layout.end";class Sr extends Or{}Sr.FRAME="animate.frame";class Ir extends Or{constructor(t,e,s,r){super(t),e&&(this.times=e),s&&(this.renderBounds=s,this.renderOptions=r)}}Ir.REQUEST="render.request",Ir.START="render.start",Ir.BEFORE="render.before",Ir.RENDER="render",Ir.AFTER="render.after",Ir.AGAIN="render.again",Ir.END="render.end";class Ar extends Or{}Ar.START="leafer.start",Ar.BEFORE_READY="leafer.before_ready",Ar.READY="leafer.ready",Ar.AFTER_READY="leafer.after_ready",Ar.VIEW_READY="leafer.view_ready",Ar.VIEW_COMPLETED="leafer.view_completed",Ar.STOP="leafer.stop",Ar.RESTART="leafer.restart",Ar.END="leafer.end";const Wr={},Nr={isHoldSpaceKey:()=>Nr.isHold("Space"),isHold:t=>Wr[t],setDownCode(t){Wr[t]||(Wr[t]=!0)},setUpCode(t){Wr[t]=!1}},Xr={LEFT:1,RIGHT:2,MIDDLE:4,defaultLeft(t){t.buttons||(t.buttons=1)},left:t=>1===t.buttons,right:t=>2===t.buttons,middle:t=>4===t.buttons};class Yr extends Or{get spaceKey(){return Nr.isHoldSpaceKey()}get left(){return Xr.left(this)}get right(){return Xr.right(this)}get middle(){return Xr.middle(this)}constructor(t){super(t.type),this.bubbles=!0,Object.assign(this,t)}getInner(t){return t||(t=this.current),t.getInnerPoint(this)}getLocal(t){return t||(t=this.current),t.getLocalPoint(this)}static changeName(t,e){rt.changeName(t,e)}}function Hr(t,e,s){Object.defineProperty(t,e,s)}function jr(t,e){return Object.getOwnPropertyDescriptor(t,e)}function Ur(t,e,s,r){const i={get(){return this.__getAttr(e)},set(t){this.__setAttr(e,t)},configurable:!0,enumerable:!0};Hr(t,e,Object.assign(i,r||{})),Kr(t,e,s)}function zr(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.boxChanged||this.__layout.boxChange(),this.__.around&&(this.__layout.positionChanged||this.__layout.positionChange())}})}}const Fr=zr;function Vr(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.strokeChanged||this.__layout.strokeChange()}})}}const Gr=Vr;function Kr(t,e,s){const r=t.__DataProcessor.prototype,i="_"+e,o=function(t){return"set"+t.charAt(0).toUpperCase()+t.slice(1)}(e),n={get(){const t=this[i];return void 0===t?s:t},set(t){this[i]=t},configurable:!0,enumerable:!0};void 0===s?n.get=function(){return this[i]}:"width"===e?n.get=function(){const t=this[i];return void 0===t?this.__naturalWidth||s:t}:"height"===e&&(n.get=function(){const t=this[i];return void 0===t?this.__naturalHeight||s:t});const a=jr(r,e);a&&a.set&&(n.set=a.set),r[o]&&(n.set=r[o],delete r[o]),Object.defineProperty(r,e,n)}const Zr=new K("rewrite"),qr=[],Qr=["destroy","constructor"];function Jr(t){qr.length&&(qr.forEach((e=>{t&&Zr.error(e.name,"需在Class上装饰@rewriteAble()"),e.run()})),qr.length=0)}function $r(t,e){return s=>{var r;(t.prototype?(r=t.prototype,Object.getOwnPropertyNames(r)):Object.keys(t)).forEach((r=>{if(!(Qr.includes(r)||e&&e.includes(r)))if(t.prototype){jr(t.prototype,r).writable&&(s.prototype[r]=t.prototype[r])}else s.prototype[r]=t[r]}))}}function ti(){return t=>{rt.register(t)}}setTimeout((()=>Jr(!0))),exports.PointerEvent=class extends Yr{},exports.PointerEvent.POINTER="pointer",exports.PointerEvent.BEFORE_DOWN="pointer.before_down",exports.PointerEvent.BEFORE_MOVE="pointer.before_move",exports.PointerEvent.BEFORE_UP="pointer.before_up",exports.PointerEvent.DOWN="pointer.down",exports.PointerEvent.MOVE="pointer.move",exports.PointerEvent.UP="pointer.up",exports.PointerEvent.OVER="pointer.over",exports.PointerEvent.OUT="pointer.out",exports.PointerEvent.ENTER="pointer.enter",exports.PointerEvent.LEAVE="pointer.leave",exports.PointerEvent.TAP="tap",exports.PointerEvent.DOUBLE_TAP="double_tap",exports.PointerEvent.CLICK="click",exports.PointerEvent.DOUBLE_CLICK="double_click",exports.PointerEvent.LONG_PRESS="long_press",exports.PointerEvent.LONG_TAP="long_tap",exports.PointerEvent=ct([ti()],exports.PointerEvent);const ei={};var si;exports.DragEvent=class extends exports.PointerEvent{getInnerMove(t,e){return t||(t=this.current),this.assignMove(e),t.getInnerPoint(ei,null,!0)}getLocalMove(t,e){return t||(t=this.current),this.assignMove(e),t.getLocalPoint(ei,null,!0)}getInnerTotal(t){return this.getInnerMove(t,!0)}getLocalTotal(t){return this.getLocalMove(t,!0)}assignMove(t){ei.x=t?this.totalX:this.moveX,ei.y=t?this.totalY:this.moveY}},exports.DragEvent.BEFORE_DRAG="drag.before_drag",exports.DragEvent.START="drag.start",exports.DragEvent.DRAG="drag",exports.DragEvent.END="drag.end",exports.DragEvent.OVER="drag.over",exports.DragEvent.OUT="drag.out",exports.DragEvent.ENTER="drag.enter",exports.DragEvent.LEAVE="drag.leave",exports.DragEvent=ct([ti()],exports.DragEvent),exports.DropEvent=si=class extends exports.PointerEvent{static setList(t){si.dragList=t instanceof nt?t:new nt(t)}static setData(t){this.dragData=t}},exports.DropEvent.DROP="drop",exports.DropEvent=si=ct([ti()],exports.DropEvent),exports.MoveEvent=class extends exports.DragEvent{},exports.MoveEvent.BEFORE_MOVE="move.before_move",exports.MoveEvent.START="move.start",exports.MoveEvent.MOVE="move",exports.MoveEvent.END="move.end",exports.MoveEvent=ct([ti()],exports.MoveEvent),exports.RotateEvent=class extends Yr{},exports.RotateEvent.BEFORE_ROTATE="rotate.before_rotate",exports.RotateEvent.START="rotate.start",exports.RotateEvent.ROTATE="rotate",exports.RotateEvent.END="rotate.end",exports.RotateEvent=ct([ti()],exports.RotateEvent),exports.SwipeEvent=class extends exports.DragEvent{},exports.SwipeEvent.SWIPE="swipe",exports.SwipeEvent.LEFT="swipe.left",exports.SwipeEvent.RIGHT="swipe.right",exports.SwipeEvent.UP="swipe.up",exports.SwipeEvent.DOWN="swipe.down",exports.SwipeEvent=ct([ti()],exports.SwipeEvent),exports.ZoomEvent=class extends Yr{},exports.ZoomEvent.BEFORE_ZOOM="zoom.before_zoom",exports.ZoomEvent.START="zoom.start",exports.ZoomEvent.ZOOM="zoom",exports.ZoomEvent.END="zoom.end",exports.ZoomEvent=ct([ti()],exports.ZoomEvent),exports.KeyEvent=class extends Yr{},exports.KeyEvent.DOWN="key.down",exports.KeyEvent.HOLD="key.hold",exports.KeyEvent.UP="key.up",exports.KeyEvent=ct([ti()],exports.KeyEvent);class ri{constructor(t){this.interaction=t}move(t){const{interaction:e}=this;if(!this.moveData){const{path:s}=e.selector.getByPoint(t,e.hitRadius);t.path=s,this.moveData=Object.assign(Object.assign({},t),{moveX:0,moveY:0}),e.emit(exports.MoveEvent.START,this.moveData)}t.path=this.moveData.path,e.emit(exports.MoveEvent.BEFORE_MOVE,t),e.emit(exports.MoveEvent.MOVE,t),this.transformEndWait()}zoom(t){const{interaction:e}=this;if(!this.zoomData){const{path:s}=e.selector.getByPoint(t,e.hitRadius);t.path=s,this.zoomData=Object.assign(Object.assign({},t),{scale:1}),e.emit(exports.ZoomEvent.START,this.zoomData)}t.path=this.zoomData.path,e.emit(exports.ZoomEvent.BEFORE_ZOOM,t),e.emit(exports.ZoomEvent.ZOOM,t),this.transformEndWait()}rotate(t){const{interaction:e}=this;if(!this.rotateData){const{path:s}=e.selector.getByPoint(t,e.hitRadius);t.path=s,this.rotateData=Object.assign(Object.assign({},t),{rotation:0}),e.emit(exports.RotateEvent.START,this.rotateData)}t.path=this.rotateData.path,e.emit(exports.RotateEvent.BEFORE_ROTATE,t),e.emit(exports.RotateEvent.ROTATE,t),this.transformEndWait()}transformEndWait(){clearTimeout(this.transformTimer),this.transformTimer=setTimeout((()=>{this.transformEnd()}),this.interaction.config.pointer.transformTime)}transformEnd(){this.moveEnd(),this.zoomEnd(),this.rotateEnd(),this.transformMode=null}moveEnd(){this.moveData&&(this.interaction.emit(exports.MoveEvent.END,this.moveData),this.moveData=null)}zoomEnd(){this.zoomData&&(this.interaction.emit(exports.ZoomEvent.END,this.zoomData),this.zoomData=null)}rotateEnd(){this.rotateData&&(this.interaction.emit(exports.RotateEvent.END,this.rotateData),this.rotateData=null)}destroy(){this.zoomData=this.moveData=this.rotateData=null}}const{copy:ii,translate:oi,toInnerPoint:ni,scaleOfOuter:ai,rotateOfOuter:hi,skewOfOuter:li}=f,di={},ci={updateAllWorldMatrix(t){if(t.__updateWorldMatrix(),t.isBranch){const{children:e}=t;for(let t=0,s=e.length;t<s;t++)pi(e[t])}},updateAllWorldOpacity(t){if(t.__updateWorldOpacity(),t.isBranch){const{children:e}=t;for(let t=0,s=e.length;t<s;t++)_i(e[t])}},updateAllChange(t){if(_i(t),t.__updateChange(),t.isBranch){const{children:e}=t;for(let t=0,s=e.length;t<s;t++)gi(e[t])}},worldHittable(t){if(!t.__.hittable)return!1;let{parent:e}=t;for(;e;){if(!e.__.hittable||!e.__.hitChildren)return!1;e=e.parent}return!0},moveWorld(t,e,s){t.__layout.checkUpdate();const r={x:e,y:s};t.parent&&ni(t.parent.__world,r,r,!0),ui.moveLocal(t,r.x,r.y)},moveLocal(t,e,s=0){t.x+=e,t.y+=s},zoomOfWorld(t,e,s,r,i){t.__layout.checkUpdate();const o=t.parent?T.tempToInnerOf(e,t.parent.__world):e;this.zoomOfLocal(t,o,s,r,i)},zoomOfLocal(t,e,s,r=s,i){ii(di,t.__local),i&&oi(di,i.x,i.y),ai(di,e,s,r),i||(i=t),i.x+=di.e-t.__local.e,i.y+=di.f-t.__local.f,t.scaleX*=s,t.scaleY*=r},rotateOfWorld(t,e,s,r){t.__layout.checkUpdate();const i=t.parent?T.tempToInnerOf(e,t.parent.__world):e;this.rotateOfLocal(t,i,s,r)},rotateOfLocal(t,e,s,r){ii(di,t.__local),r&&oi(di,r.x,r.y),hi(di,e,s),r||(r=t),r.x+=di.e-t.__local.e,r.y+=di.f-t.__local.f,t.rotation=i.formatRotation(t.rotation+s)},skewOfWorld(t,e,s,r,i){t.__layout.checkUpdate();const o=t.parent?T.tempToInnerOf(e,t.parent.__world):e;this.skewOfLocal(t,o,s,r,i)},skewOfLocal(t,e,s,r,o){ii(di,t.__local),o&&oi(di,o.x,o.y),li(di,e,s,r),o||(o=t),o.x=di.e-t.__local.e,o.y=di.f-t.__local.f,t.skewX=i.formatSkew(t.skewX+s),t.skewY=i.formatSkew(t.skewY+r)},drop(t,e){const s={x:t.x,y:t.y};t.localToWorld(s),e.worldToInner(s),t.set(s),e.add(t)}},ui=ci,{updateAllWorldMatrix:pi,updateAllWorldOpacity:_i,updateAllChange:gi}=ui,fi={worldBounds:t=>t.__world,localBoxBounds:t=>t.__.isEraser?null:t.__local,localEventBounds:t=>t.__.isEraser?null:t.__layout.localStrokeBounds,localRenderBounds:t=>t.__.isEraser?null:t.__layout.localRenderBounds,maskLocalBoxBounds:t=>t.__.isMask?t.__local:null,maskLocalEventBounds:t=>t.__.isMask?t.__layout.localStrokeBounds:null,maskLocalRenderBounds:t=>t.__.isMask?t.__layout.localRenderBounds:null},mi={sort:(t,e)=>t.__.zIndex===e.__.zIndex?t.__tempNumber-e.__tempNumber:t.__.zIndex-e.__.zIndex,pushAllChildBranch(t,e){if(t.__tempNumber=1,t.__.__childBranchNumber){const{children:s}=t;for(let r=0,i=s.length;r<i;r++)(t=s[r]).isBranch&&(t.__tempNumber=1,e.push(t),yi(t,e))}},pushAllParent(t,e){const{keys:s}=e;if(s)for(;t.parent&&void 0===s[t.parent.innerId];)e.push(t.parent),t=t.parent;else for(;t.parent;)e.push(t.parent),t=t.parent},pushAllBranchStack(t,e){let s=e.length;const{children:r}=t;for(let t=0,s=r.length;t<s;t++)r[t].isBranch&&e.push(r[t]);for(let t=s,r=e.length;t<r;t++)xi(e[t],e)},updateWorldBoundsByBranchStack(t){let e;for(let s=t.length-1;s>-1;s--){e=t[s];for(let t=0,s=e.children.length;t<s;t++)e.children[t].__updateWorldBounds()}e.__updateWorldBounds()}},{pushAllChildBranch:yi,pushAllBranchStack:xi}=mi,vi={run(t){for(let e=0,s=t.length;e<s;e++)t[e]();t.length=0}},Ei={getMoveEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:t.x,y:t.y,moveX:e.x,moveY:e.y}),getRotateEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:t.x,y:t.y,rotation:e}),getZoomEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:t.x,y:t.y,scale:e}),getDragEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:s.x,y:s.y,moveX:s.x-e.x,moveY:s.y-e.y,totalX:s.x-t.x,totalY:s.y-t.y}),getDropEventData:(t,e,s)=>Object.assign(Object.assign({},t),{list:e,data:s}),getSwipeDirection:t=>t<-45&&t>-135?exports.SwipeEvent.UP:t>45&&t<135?exports.SwipeEvent.DOWN:t<=45&&t>=-45?exports.SwipeEvent.RIGHT:exports.SwipeEvent.LEFT,getSwipeEventData:(t,e,s)=>Object.assign(Object.assign({},s),{moveX:e.moveX,moveY:e.moveY,totalX:s.x-t.x,totalY:s.y-t.y,type:wi.getSwipeDirection(T.getAngle(t,s))}),getBase:t=>({altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,buttons:void 0===t.buttons?1:t.buttons,origin:t}),pathHasEventType(t,e){const{list:s}=t;for(let t=0,r=s.length;t<r;t++)if(s[t].hasEvent(e))return!0;return!1},filterPathByEventType(t,e){const s=new nt,{list:r}=t;for(let t=0,i=r.length;t<i;t++)r[t].hasEvent(e)&&s.push(r[t]);return s}},wi=Ei,{getDragEventData:bi,getDropEventData:Ci,getSwipeEventData:Ti,filterPathByEventType:Oi}=Ei;class Pi{constructor(t){this.interaction=t}setDragData(t){this.dragData=bi(t,t,t)}getDragList(){return this.dragging?exports.DropEvent.dragList||this.dragList:null}checkDrag(t,e){const{interaction:s}=this,{downData:r}=s;if(this.moving&&!Xr.middle(t)&&!Xr.left(t))return void s.pointerCancel();const{dragData:i}=this;if(!this.moving){const o=s.config.move.dragEmpty&&r.target.isLeafer;this.moving=(Xr.middle(t)||s.moveMode||o)&&e,this.moving&&s.emit(exports.MoveEvent.START,i)}this.moving||this.dragStart(t,e);const{path:o,throughPath:n}=r;this.dragData=bi(r,i,t),n&&(this.dragData.throughPath=n),this.dragData.path=o,this.moving?(s.emit(exports.MoveEvent.BEFORE_MOVE,this.dragData),s.emit(exports.MoveEvent.MOVE,this.dragData)):this.dragging&&(this.dragDragableList(),s.emit(exports.DragEvent.BEFORE_DRAG,this.dragData),s.emit(exports.DragEvent.DRAG,this.dragData))}dragStart(t,e){this.dragging||(this.dragging=Xr.left(t)&&e,this.dragging&&(this.interaction.emit(exports.DragEvent.START,this.dragData),this.getDragableList(this.dragData.path),this.dragList=Oi(this.dragData.path,exports.DragEvent.DRAG),!this.dragList.length&&this.dragableList&&this.dragList.pushList(this.dragableList)))}getDragableList(t){let e;for(let s=0,r=t.length;s<r;s++)if(e=t.list[s],e.__.draggable&&e.__.hitSelf){this.dragableList=[e];break}}dragDragableList(){const{running:t}=this.interaction;if(this.dragableList&&t){const{moveX:t,moveY:e}=this.dragData;this.dragableList.forEach((s=>{ci.moveWorld(s,t,e)}))}}dragOverOrOut(t){const{interaction:e}=this,{dragOverPath:s}=this,{path:r}=t;s?r.indexAt(0)!==s.indexAt(0)&&(e.emit(exports.DragEvent.OUT,t,s),e.emit(exports.DragEvent.OVER,t,r)):e.emit(exports.DragEvent.OVER,t,r),this.dragOverPath=r}dragEnterOrLeave(t){const{interaction:e}=this,{dragEnterPath:s}=this,{path:r}=t;e.emit(exports.DragEvent.LEAVE,t,s,r),e.emit(exports.DragEvent.ENTER,t,r,s),this.dragEnterPath=r}dragEnd(t){const{interaction:e}=this,{downData:s}=e;if(!s)return;const{path:r,throughPath:i}=s,o=bi(s,t,t);i&&(o.throughPath=i),o.path=r,this.moving&&e.emit(exports.MoveEvent.END,o),this.dragging&&(e.emit(exports.DragEvent.END,o),this.swipe(t,o),this.drop(t)),this.autoMoveCancel(),this.dragReset()}swipe(t,e){const{interaction:s}=this,{downData:r}=s;if(T.getDistance(r,t)>s.config.pointer.swipeDistance){const t=Ti(r,this.dragData,e);this.interaction.emit(t.type,t)}}drop(t){const e=Ci(t,this.getDragList(),exports.DropEvent.dragData);e.path=this.dragEnterPath,this.interaction.emit(exports.DropEvent.DROP,e),this.interaction.emit(exports.DragEvent.LEAVE,t,this.dragEnterPath)}dragReset(){exports.DropEvent.dragList=null,this.dragList=null,this.dragableList=null,this.dragData=null,this.dragOverPath=null,this.dragEnterPath=null,this.dragging=null,this.moving=null}checkDragOut(t){const{interaction:e}=this;this.autoMoveCancel(),this.dragging&&!e.shrinkCanvasBounds.hitPoint(t)&&this.autoMoveOnDragOut(t)}autoMoveOnDragOut(t){const{interaction:e}=this,{downData:s}=e,{autoDistance:r,dragOut:i}=e.config.move;if(!i||!r)return;const o=e.shrinkCanvasBounds,{x:n,y:a}=o,h=j.right(o),l=j.bottom(o),d=t.x<n?r:h<t.x?-r:0,c=t.y<a?r:l<t.y?-r:0;let u=0,p=0;this.autoMoveTimer=setInterval((()=>{u+=d,p+=c,T.move(s,d,c),T.move(this.dragData,d,c),e.move(Object.assign(Object.assign({},t),{moveX:d,moveY:c,totalX:u,totalY:p})),e.pointerMoveReal(t)}),10)}autoMoveCancel(){this.autoMoveTimer&&(clearInterval(this.autoMoveTimer),this.autoMoveTimer=0)}destroy(){this.dragReset()}}const Bi=["move","zoom","rotate","key"];function ki(t,e,s,r,i){if(Bi.some((t=>e.startsWith(t)))&&t.__.hitChildren&&!Ri(t,i)){let o;for(let n=0,a=t.children.length;n<a;n++)o=t.children[n],!s.path.has(o)&&o.__.hittable&&Di(o,e,s,r,i)}}function Di(t,e,s,r,i){if(t.destroyed)return!0;if(t.__.hitSelf&&t.hasEvent(e,r)&&!Ri(t,i)){s.phase=r?1:t===s.target?2:3;const i=rt.get(e,s);if(t.emitEvent(i,r),i.isStop)return!0}return!1}function Ri(t,e){return e&&e.has(t)}const Li={getData(t){const e=t[0],s=t[1],r=T.getCenter(e.from,s.from),i=T.getCenter(e.to,s.to),o={x:i.x-r.x,y:i.y-r.y},n=T.getDistance(e.from,s.from);return{move:o,scale:T.getDistance(e.to,s.to)/n,angle:T.getChangeAngle(e.from,s.from,e.to,s.to),center:i}}},{pathHasEventType:Mi,getMoveEventData:Si,getZoomEventData:Ii,getRotateEventData:Ai}=Ei;class Wi{static set(t,e){this.custom[t]=e}static get(t){return this.custom[t]}}Wi.custom={};const{toOuterOf:Ni}=j;class Xi{constructor(t){this.leaf=t,this.renderBounds=this.strokeBounds=this.boxBounds={x:0,y:0,width:0,height:0},this.localRenderBounds=this.localStrokeBounds=t.__local,this.boxChange(),this.positionChange()}checkUpdate(e){const{leafer:s}=this.leaf;if(s)s.ready?(t.realtimeLayout||e)&&s.watcher.changed&&s.layouter.layout():s.start();else{let e=this.leaf;for(;e.parent;)e=e.parent;t.layout(e)}}getTransform(t){return this.checkUpdate(),"world"===t?this.leaf.__world:this.leaf.__local}getBounds(t,e){if(this.checkUpdate(),"world"===e)switch(t){case"render":return this.leaf.__world;case"content":if(this.contentBounds)return this.getWorldContentBounds();case"margin":case"box":return this.getWorldBoxBounds();case"margin":case"stroke":return this.getWorldStrokeBounds()}else if("inner"===e)switch(t){case"render":return this.renderBounds;case"content":if(this.contentBounds)return this.contentBounds;case"margin":case"box":return this.boxBounds;case"stroke":return this.strokeBounds}else switch(t){case"render":return this.localRenderBounds;case"margin":case"content":case"box":return this.leaf.__local;case"stroke":return this.localStrokeBounds}}getWorldContentBounds(){return this._worldContentBounds||(this._worldContentBounds={}),Ni(this.contentBounds,this.leaf.__world,this._worldContentBounds),this._worldContentBounds}getWorldBoxBounds(){return this._worldBoxBounds||(this._worldBoxBounds={}),Ni(this.boxBounds,this.leaf.__world,this._worldBoxBounds),this._worldBoxBounds}getWorldStrokeBounds(){return this._worldStrokeBounds||(this._worldStrokeBounds={}),Ni(this.strokeBounds,this.leaf.__world,this._worldStrokeBounds),this._worldStrokeBounds}spreadStrokeCancel(){const t=this.renderBounds===this.strokeBounds;this.strokeBounds=this.boxBounds,this.localStrokeBounds=this.leaf.__local,t&&this.spreadRenderCancel()}spreadRenderCancel(){this.renderBounds=this.strokeBounds,this.localRenderBounds=this.localStrokeBounds}spreadStroke(){const{x:t,y:e,width:s,height:r}=this.strokeBounds;this.strokeBounds={x:t,y:e,width:s,height:r},this.localStrokeBounds={x:t,y:e,width:s,height:r},this.renderSpread||this.spreadRenderCancel()}spreadRender(){const{x:t,y:e,width:s,height:r}=this.renderBounds;this.renderBounds={x:t,y:e,width:s,height:r},this.localRenderBounds={x:t,y:e,width:s,height:r}}boxChange(){this.boxChanged=!0,this.localBoxChanged||this.localBoxChange(),this.hitCanvasChanged=!0}localBoxChange(){this.localBoxChanged=!0,this.boundsChanged=!0}strokeChange(){this.strokeChanged=!0,this.strokeSpread||(this.strokeSpread=1),this.boundsChanged=!0,this.hitCanvasChanged=!0}renderChange(){this.renderChanged=!0,this.renderSpread||(this.renderSpread=1),this.boundsChanged=!0}positionChange(){this.positionChanged=!0,this.matrixChanged=!0,this.localBoxChanged||this.localBoxChange()}scaleChange(){this.scaleChanged=!0,this._scaleOrRotationChange()}rotationChange(){this.rotationChanged=!0,this.affectRotation=!0,this._scaleOrRotationChange()}_scaleOrRotationChange(){this.affectScaleOrRotation=!0,this.matrixChanged=!0,this.localBoxChanged||this.localBoxChange()}surfaceChange(){this.surfaceChanged=!0}opacityChange(){this.opacityChanged=!0,this.surfaceChanged||this.surfaceChange()}childrenSortChange(){this.childrenSortChanged||(this.childrenSortChanged=!0,this.leaf.forceUpdate("surface"))}destroy(){}}const Yi={},Hi={on(t,e,s){let r,i,o;s&&("boolean"==typeof s?r=s:(r=s.capture,i=s.once));const n=ji(this,r,!0),a="string"==typeof t?t.split(" "):t,h=i?{listener:e,once:i}:{listener:e};a.forEach((t=>{t&&(o=n[t],o?-1===o.findIndex((t=>t.listener===e))&&o.push(h):n[t]=[h])}))},off(t,e,s){let r,i,o;s&&(r="boolean"==typeof s?s:s.capture);const n=ji(this,r);("string"==typeof t?t.split(" "):t).forEach((t=>{t&&(i=n[t],i&&(o=i.findIndex((t=>t.listener===e)),o>-1&&i.splice(o,1),i.length||delete n[t]))}))},on_(t,e,s,r){return s&&(e=e.bind(s)),this.on(t,e,r),{type:t,listener:e,options:r}},off_(t){if(!t)return;const e=t instanceof Array?t:[t];e.forEach((t=>this.off(t.type,t.listener,t.options))),e.length=0},once(t,e,s){this.on(t,e,{once:!0,capture:s})},emit(t,e,s){!e&&rt.has(t)&&(e=rt.get(t,{type:t,target:this,current:this}));const r=ji(this,s)[t];if(r){let i;for(let o=0,n=r.length;o<n&&(i=r[o],i.listener(e),i.once&&(this.off(t,i.listener,s),o--,n--),!e||!e.isStopNow);o++);}},emitEvent(t,e){t.current=this,this.emit(t.type,t,e)},hasEvent(t,e){const{__bubbleMap:s,__captureMap:r}=this;return void 0===e?!!(r&&r[t]||s&&s[t]):!!(e?r&&r[t]:s&&s[t])}};function ji(t,e,s){if(e){const{__captureMap:e}=t;return e||(s?t.__captureMap={}:Yi)}{const{__bubbleMap:e}=t;return e||(s?t.__bubbleMap={}:Yi)}}const Ui={__setAttr(t,e){if(this.leafer&&this.leafer.created){if("object"==typeof e||this.__.__getInput(t)!==e){this.__[t]=e;const{CHANGE:s}=Br,r=new Br(s,this,t,this.__.__get(t),e);this.hasEvent(s)&&!this.isLeafer&&this.emitEvent(r),this.leafer.emitEvent(r)}}else this.__[t]=e},__getAttr(t){return this.__.__get(t)}},{sin:zi,cos:Fi}=Math,Vi=Object.assign(Object.assign({},f.defaultMatrix),{scaleX:1,scaleY:1,rotation:0,skewX:0,skewY:0}),Gi={x:.5,y:.5},Ki={__updateWorldMatrix(){const t=this.parent?this.parent.__world:Vi,e=this.__local,s=this.__world;if(this.__layout.matrixChanged&&this.__updateLocalMatrix(),this.__layout.affectScaleOrRotation){s.a=e.a*t.a+e.b*t.c,s.b=e.a*t.b+e.b*t.d,s.c=e.c*t.a+e.d*t.c,s.d=e.c*t.b+e.d*t.d,s.e=e.e*t.a+e.f*t.c+t.e,s.f=e.e*t.b+e.f*t.d+t.f;const r=this.__;s.scaleX=t.scaleX*r.scaleX,s.scaleY=t.scaleY*r.scaleY,s.rotation=t.rotation+r.rotation,s.skewX=t.skewX+r.skewX,s.skewY=t.skewY+r.skewY}else s.a=t.a,s.b=t.b,s.c=t.c,s.d=t.d,s.e=e.e*t.a+e.f*t.c+t.e,s.f=e.e*t.b+e.f*t.d+t.f,s.scaleX=t.scaleX,s.scaleY=t.scaleY,s.rotation=t.rotation,s.skewX=t.skewX,s.skewY=t.skewY},__updateLocalMatrix(){const t=this.__local,e=this.__layout;if(e.affectScaleOrRotation){const{scaleX:s,scaleY:r}=this.__;if(e.affectRotation){if(e.scaleChanged||e.rotationChanged){let{rotation:i,skewX:n,skewY:a}=this.__;i||n||a?(i*=o,n&&(n*=o),a&&(a*=o),t.a=s*Fi(i+a),t.b=s*zi(i+a),t.c=r*-zi(i-n),t.d=r*Fi(i-n)):(t.a=s,t.b=0,t.c=0,t.d=r,e.affectRotation=!1),e.scaleChanged=!1,e.rotationChanged=!1}}else e.scaleChanged&&(t.a=s,t.d=r,e.scaleChanged=!1)}if(e.positionChanged){t.e=this.__.x,t.f=this.__.y;const{width:s,height:r,around:i}=this.__;if(i&&s&&r){const e="center"===i?Gi:i,o=s*e.x,n=r*e.y;t.e-=o*t.a+n*t.c,t.f-=o*t.b+n*t.d}e.positionChanged=!1}this.__layout.matrixChanged=!1}},{toOuterOf:Zi,copyAndSpread:qi}=j,Qi={__updateWorldBounds(){var t;if(this.__layout.boundsChanged){let e;const s=this.__layout;s.boxChanged&&(this.__updatePath(),this.__updateRenderPath(),this.__updateBoxBounds(),s.boxChanged=!1,e=!0),s.localBoxChanged&&(this.__updateLocalBoxBounds(),s.localBoxChanged=!1,s.strokeSpread&&(s.strokeChanged=!0),s.renderSpread&&(s.renderChanged=!0),null===(t=this.parent)||void 0===t||t.__layout.boxChange()),s.strokeChanged&&(s.strokeSpread=this.__updateStrokeSpread(),s.strokeSpread?(s.strokeBounds===s.boxBounds&&s.spreadStroke(),this.__updateStrokeBounds(),this.__updateLocalStrokeBounds()):s.spreadStrokeCancel(),s.strokeChanged=!1,s.renderSpread&&(s.renderChanged=!0),this.parent&&this.parent.__layout.strokeChange(),e||(e=!0)),s.renderChanged&&(s.renderSpread=this.__updateRenderSpread(),s.renderSpread?(s.renderBounds!==s.boxBounds&&s.renderBounds!==s.strokeBounds||s.spreadRender(),this.__updateRenderBounds(),this.__updateLocalRenderBounds()):s.spreadRenderCancel(),s.renderChanged=!1,this.parent&&this.parent.__layout.renderChange()),s.boundsChanged=!1,Zi(this.__layout.renderBounds,this.__world,this.__world),e&&this.__onUpdateSize()}else Zi(this.__layout.renderBounds,this.__world,this.__world)},__updateLocalBoxBounds(){Zi(this.__layout.boxBounds,this.__local,this.__local)},__updateLocalStrokeBounds(){Zi(this.__layout.strokeBounds,this.__local,this.__layout.localStrokeBounds)},__updateLocalRenderBounds(){Zi(this.__layout.renderBounds,this.__local,this.__layout.localRenderBounds)},__updateBoxBounds(){const t=this.__layout.boxBounds,{width:e,height:s}=this.__;t.x=0,t.y=0,t.width=e,t.height=s},__updateNaturalSize(){const{__:t,__layout:e}=this;t.__naturalWidth=e.boxBounds.width,t.__naturalHeight=e.boxBounds.height,this.around&&(e.positionChanged=e.matrixChanged=!0,this.__updateWorldMatrix())},__updateStrokeBounds(){qi(this.__layout.strokeBounds,this.__layout.boxBounds,this.__layout.strokeSpread)},__updateRenderBounds(){qi(this.__layout.renderBounds,this.__layout.strokeBounds,this.__layout.renderSpread)}},{toInnerRadiusPointOf:Ji,copy:$i,setRadius:to}=T,eo={},so={__hitWorld(t){return!this.__layout.hitCanvasChanged&&this.__hitCanvas||(this.__updateHitCanvas(),this.__layout.hitCanvasChanged=!1),this.__.hitRadius&&($i(eo,t),to(t=eo,this.__.hitRadius)),Ji(t,this.__world,eo),this.__hit(eo)},__drawHitPath(t){this.__drawRenderPath(t)}},ro={__render(t,e){if(this.__worldOpacity)if(t.setWorld(this.__world,e.matrix),t.opacity=this.__worldOpacity,this.__.__single){const s=t.getSameCanvas(!0);this.__draw(s,e);const r=this.__.isEraser?"destination-out":this.__.blendMode;e.matrix||this.__hasMirror?t.copyWorldByReset(s,null,null,r):t.copyWorldToInner(s,this.__world,this.__layout.renderBounds,r),s.recycle()}else this.__draw(t,e)},__updateWorldOpacity(){this.__worldOpacity=this.__.visible?this.parent?this.parent.__worldOpacity*this.__.opacity:this.__.opacity:0,this.__layout.opacityChanged&&(this.__layout.opacityChanged=!1)}},io={__updateEraser(t){this.__hasEraser=!!t||this.children.some((t=>t.__.isEraser))},__updateMask(t){this.__hasMask=!!t||this.children.some((t=>t.__.isMask))},__renderMask(t,e,s){e.resetTransform(),e.useMask(s),t.resetTransform(),t.opacity=this.__worldOpacity,t.copyWorld(e)},__removeMask(t){if(t)t.isMask=!1,this.remove(t);else{const{children:e}=this;for(let s=0,r=e.length;s<r;s++)(t=e[s]).isMask&&(this.__removeMask(t),r--,s--)}}},oo={__updateChange(){const{__layout:t}=this;t.childrenSortChanged&&(this.__updateSortChildren(),t.childrenSortChanged=!1),this.__.__checkSingle()},__render(t,e){if(this.__worldOpacity)if(this.__.__single){t.resetTransform();const s=t.getSameCanvas();this.__renderBranch(s,e),t.opacity=this.__worldOpacity;const r=this.__.isEraser?"destination-out":this.__.blendMode;e.matrix?t.copyWorld(s,null,null,r):t.copyWorld(s,this.__world,this.__world,r),s.recycle()}else this.__renderBranch(t,e)},__renderBranch(t,e){let s;const{children:r}=this;if(this.__hasMask&&r.length>1){let i,o=t.getSameCanvas(),n=t.getSameCanvas();for(let a=0,h=r.length;a<h;a++)s=r[a],s.isMask?(i?(this.__renderMask(t,n,o),o.clear(),n.clear()):i=!0,s.__render(o,e)):s.__render(n,e);this.__renderMask(t,n,o),o.recycle(),n.recycle()}else{const{bounds:i,hideBounds:o}=e;for(let n=0,a=r.length;n<a;n++)s=r[n],i&&!i.hit(s.__world,e.matrix)||o&&o.includes(s.__world,e.matrix)||s.__render(t,e)}}},{LEAF:no,create:ao}=s,{toInnerPoint:ho,toOuterPoint:lo}=f,{tempToOuterOf:co,copy:uo}=T,{moveLocal:po,zoomOfLocal:_o,rotateOfLocal:go,skewOfLocal:fo}=ci;exports.Leaf=class{get tag(){return this.__tag}set tag(t){}get __tag(){return"Leaf"}get innerName(){return this.__.name||this.tag+this.innerId}get __DataProcessor(){return lt}get __LayoutProcessor(){return Xi}get worldTransform(){return this.__layout.getTransform("world")}get localTransform(){return this.__layout.getTransform("local")}get boxBounds(){return this.getBounds("box","inner")}get worldBoxBounds(){return this.getBounds("box")}get worldStrokeBounds(){return this.getBounds("stroke")}get worldRenderBounds(){return this.getBounds("render")}get worldOpacity(){return this.__layout.checkUpdate(),this.__worldOpacity}get resizeable(){return!0}get __hasMirror(){return this.__world.scaleX<0||this.__world.scaleY<0}get __onlyHitMask(){return this.__hasMask&&!this.__.hitChildren}get __ignoreHitWorld(){return(this.__hasMask||this.__hasEraser)&&this.__.hitChildren}constructor(t){this.innerId=ao(no),this.__world={a:1,b:0,c:0,d:1,e:0,f:0,x:0,y:0,width:0,height:0,scaleX:1,scaleY:1,rotation:0,skewX:0,skewY:0},this.__local={a:1,b:0,c:0,d:1,e:0,f:0,x:0,y:0,width:0,height:0},this.__worldOpacity=1,this.__=new this.__DataProcessor(this),this.__layout=new this.__LayoutProcessor(this),t&&(t.children?this.set(t):Object.assign(this,t))}waitParent(t){this.parent?t():this.__parentWait?this.__parentWait.push(t):this.__parentWait=[t]}waitLeafer(t){this.leafer?t():this.__leaferWait?this.__leaferWait.push(t):this.__leaferWait=[t]}nextRender(t){this.leafer?this.leafer.nextRender(t):this.waitLeafer((()=>this.leafer.nextRender(t)))}__bindLeafer(t){if(this.isLeafer&&null!==t&&(t=this),this.leafer=t,t&&(this.__level=this.parent?this.parent.__level+1:1,this.__leaferWait&&vi.run(this.__leaferWait)),this.isBranch){const{children:e}=this;for(let s=0,r=e.length;s<r;s++)e[s].__bindLeafer(t)}}set(t){}toJSON(){return this.__.__getInputData()}toString(){return JSON.stringify(this.toJSON())}__setAttr(t,e){}__getAttr(t){}forceUpdate(t){void 0===t?t="scaleX":"surface"===t&&(t="blendMode");const e=this.__.__getInput(t);this.__[t]=void 0===e?null:void 0,this[t]=e}__updateWorldMatrix(){}__updateLocalMatrix(){}__updateWorldBounds(){}__updateLocalBoxBounds(){}__updateLocalStrokeBounds(){}__updateLocalRenderBounds(){}__updateBoxBounds(){}__updateStrokeBounds(){}__updateRenderBounds(){}__updateNaturalSize(){}__updateStrokeSpread(){return 0}__updateRenderSpread(){return 0}__onUpdateSize(){}__updateEraser(t){}__updateMask(t){}__renderMask(t,e,s){}__removeMask(t){}getWorld(t){return this.__layout.checkUpdate(),"x"===t?this.__world.e:"y"===t?this.__world.f:this.__world[t]}getBounds(t,e="world"){return this.__layout.getBounds(t,e)}worldToLocal(t,e,s,r){this.parent?this.parent.worldToInner(t,e,s,r):e&&uo(e,t)}localToWorld(t,e,s,r){this.parent?this.parent.innerToWorld(t,e,s,r):e&&uo(e,t)}worldToInner(t,e,s,r){r&&(r.innerToWorld(t,e,s),t=e||t),ho(this.worldTransform,t,e,s)}innerToWorld(t,e,s,r){lo(this.worldTransform,t,e,s),r&&r.worldToInner(e||t,null,s)}getInnerPoint(t,e,s,r){const i=r?t:{};return this.worldToInner(t,i,s,e),i}getInnerPointByLocal(t,e,s,r){return this.getInnerPoint(t,this.parent,s,r)}getLocalPoint(t,e,s,r){const i=r?t:{};return this.worldToLocal(t,i,s,e),i}getLocalPointByInner(t,e,s,r){return this.getWorldPoint(t,this.parent,s,r)}getWorldPoint(t,e,s,r){const i=r?t:{};return this.innerToWorld(t,i,s,e),i}getWorldPointByLocal(t,e,s,r){const i=r?t:{};return this.localToWorld(t,i,s,e),i}move(t,e){po(this,t,e)}scaleOf(t,e,s){_o(this,co(t,this.localTransform),e,s)}rotateOf(t,e){go(this,co(t,this.localTransform),e)}skewOf(t,e,s){fo(this,co(t,this.localTransform),e,s)}__hitWorld(t){return!0}__hit(t){return!0}__drawHitPath(t){}__updateHitCanvas(){}__render(t,e){}__drawFast(t,e){}__draw(t,e){}__renderShape(t,e){}__updateWorldOpacity(){}__updateChange(){}__drawPath(t){}__drawRenderPath(t){}__updatePath(){}__updateRenderPath(){}__updateSortChildren(){}add(t,e){}remove(t,e){this.parent&&this.parent.remove(this,e)}on(t,e,s){}off(t,e,s){}on_(t,e,s,r){}off_(t){}once(t,e,s){}emit(t,e,s){}emitEvent(t,e){}hasEvent(t,e){return!1}destroy(){this.destroyed||(this.parent&&this.remove(),this.children&&this.removeAll(!0),this.__.destroy(),this.__layout.destroy(),this.__captureMap=this.__bubbleMap=this.__parentWait=this.__leaferWait=null,this.destroyed=!0)}},exports.Leaf=ct([$r(Ui),$r(Ki),$r(Qi),$r(so),$r(Hi),$r(ro)],exports.Leaf);const{setByListWithHandle:mo}=j,{sort:yo}=mi,{localBoxBounds:xo,localEventBounds:vo,localRenderBounds:Eo,maskLocalBoxBounds:wo,maskLocalEventBounds:bo,maskLocalRenderBounds:Co}=fi;exports.Branch=class extends exports.Leaf{constructor(){super(),this.isBranch=!0,this.children=[]}__updateStrokeSpread(){const{children:t}=this;for(let e=0,s=t.length;e<s;e++)if(t[e].__layout.strokeSpread)return 1;return 0}__updateRenderSpread(){const{children:t}=this;for(let e=0,s=t.length;e<s;e++)if(t[e].__layout.renderSpread)return 1;return 0}__updateBoxBounds(){mo(this.__layout.boxBounds,this.children,this.__hasMask?wo:xo)}__updateStrokeBounds(){mo(this.__layout.strokeBounds,this.children,this.__hasMask?bo:vo)}__updateRenderBounds(){mo(this.__layout.renderBounds,this.children,this.__hasMask?Co:Eo)}__updateSortChildren(){let t;const{children:e}=this;if(e.length>1){for(let s=0,r=e.length;s<r;s++)e[s].__tempNumber=s,e[s].__.zIndex&&(t=!0);e.sort(yo),this.__layout.affectChildrenSort=t}}add(t,e){t.parent&&t.parent.remove(t),t.parent=this,void 0===e?this.children.push(t):this.children.splice(e,0,t),t.isBranch&&(this.__.__childBranchNumber=(this.__.__childBranchNumber||0)+1),t.__layout.boundsChanged||t.__layout.positionChange(),t.__parentWait&&vi.run(t.__parentWait),this.leafer&&(t.__bindLeafer(this.leafer),this.leafer.created&&this.__emitChildEvent(Pr.ADD,t)),this.__layout.affectChildrenSort&&this.__layout.childrenSortChange()}addMany(...t){t.forEach((t=>this.add(t)))}remove(t,e){if(t){const s=this.children.indexOf(t);s>-1&&(this.children.splice(s,1),t.isBranch&&(this.__.__childBranchNumber=(this.__.__childBranchNumber||1)-1),this.__preRemove(),this.__realRemoveChild(t),e&&t.destroy())}else void 0===t&&super.remove(null,e)}removeAll(t){const{children:e}=this;e.length&&(this.children=[],this.__preRemove(),this.__.__childBranchNumber=0,e.forEach((e=>{this.__realRemoveChild(e),t&&e.destroy()})))}__preRemove(){this.__hasMask&&this.__updateMask(),this.__hasEraser&&this.__updateEraser(),this.__layout.boxChange(),this.__layout.affectChildrenSort&&this.__layout.childrenSortChange()}__realRemoveChild(t){t.parent=null,this.leafer&&(t.__bindLeafer(null),this.leafer.created&&(this.__emitChildEvent(Pr.REMOVE,t),this.leafer.hitCanvasManager&&this.leafer.hitCanvasManager.clear()))}__emitChildEvent(t,e){const s=new Pr(t,e,this);e.hasEvent(t)&&e.emitEvent(s),this.hasEvent(t)&&!this.isLeafer&&this.emitEvent(s),this.leafer.emitEvent(s)}},exports.Branch=ct([$r(oo),$r(io)],exports.Branch);const To=K.get("plugin"),Oo={power:{},list:[],onLeafer(t){Oo.list.forEach((e=>{e.onLeafer&&e.onLeafer(t)}))}};exports.AnimateEvent=Sr,exports.AutoBounds=class{constructor(t,e,s,r,i,o){"object"==typeof t?this.copy(t):this.set(t,e,s,r,i,o)}set(t=0,e=0,s=0,r=0,i=0,o=0){this.top=t,this.right=e,this.bottom=s,this.left=r,this.width=i,this.height=o}copy(t){const{top:e,right:s,bottom:r,left:i,width:o,height:n}=t;this.set(e,s,r,i,o,n)}getBoundsFrom(t){const{top:e,right:s,bottom:r,left:i,width:o,height:n}=this;return new V(i,e,o||t.width-i-s,n||t.height-e-r)}},exports.BezierHelper=Zt,exports.Bounds=V,exports.BoundsHelper=j,exports.BranchHelper=mi,exports.BranchRender=oo,exports.CanvasManager=ot,exports.ChildEvent=Pr,exports.Creator=e,exports.Cursor=Wi,exports.DataHelper=at,exports.Debug=K,exports.EllipseHelper=ie,exports.Event=Or,exports.EventCreator=rt,exports.FileHelper=dt,exports.HitCanvasManager=class extends ot{constructor(){super(...arguments),this.pathTypeList=new nt,this.imageTypeList=new nt}getImageType(t,s){return this.imageTypeList.push(t),e.hitCanvas(s)}getPathType(t){return this.pathTypeList.push(t),e.hitCanvas()}clearImageType(){this.__clearLeafList(this.imageTypeList)}clearPathType(){this.__clearLeafList(this.pathTypeList)}__clearLeafList(t){t.length&&(t.forEach((t=>{t.__hitCanvas&&(t.__hitCanvas.destroy(),t.__hitCanvas=null)})),t.reset())}clear(){this.clearPathType(),this.clearImageType()}},exports.ImageEvent=kr,exports.ImageManager=wr,exports.IncrementId=s,exports.InteractionBase=class{get dragging(){return this.dragger.dragging}get moveMode(){return Nr.isHoldSpaceKey()&&this.config.move.holdSpaceKey||this.downData&&Xr.middle(this.downData)}get hitRadius(){return this.config.pointer.hitRadius}constructor(e,s,r,i){this.config={wheel:{zoomMode:!1,zoomSpeed:.5,moveSpeed:.5,rotateSpeed:.5,delta:"Windows"===t.os?{x:37.5,y:37.5}:{x:20,y:8},preventDefault:!0},pointer:{hitRadius:5,through:!1,tapTime:120,longPressTime:800,transformTime:500,dragHover:!0,dragDistance:2,swipeDistance:20,ignoreMove:!1}},this.tapCount=0,this.downKeyMap={},this.target=e,this.canvas=s,this.selector=r,this.defaultPath=new nt(e),this.transformer=new ri(this),this.dragger=new Pi(this),i&&(this.config=at.default(i,this.config)),this.__listenEvents()}start(){this.running=!0}stop(){this.running=!1}receive(t){}pointerDown(t,e){t||(t=this.hoverData),t&&(Xr.defaultLeft(t),this.emit(exports.PointerEvent.BEFORE_DOWN,t,this.defaultPath),this.updateDownData(t),e&&(t.path=this.defaultPath),this.emit(exports.PointerEvent.DOWN,t),this.downTime=Date.now(),this.dragger.setDragData(t),Xr.left(t)&&(this.tapWait(),this.longPressWait(t)),this.updateCursor(t))}pointerMove(t){if(t||(t=this.hoverData),!t)return;this.downData&&Xr.defaultLeft(t);const e=this.canvas.bounds.hitPoint(t);(e||this.downData)&&(e&&!this.downData&&Xr.left(t)&&this.pointerDown(t,!0),this.pointerMoveReal(t),this.dragger.checkDragOut(t))}pointerMoveReal(t){if(this.emit(exports.PointerEvent.BEFORE_MOVE,t,this.defaultPath),this.downData){const e=T.getDistance(this.downData,t)>this.config.pointer.dragDistance;this.waitTap&&e&&this.pointerWaitCancel(),this.dragger.checkDrag(t,e)}this.dragger.moving||this.config.pointer.ignoreMove||(this.updateHoverData(t),this.emit(exports.PointerEvent.MOVE,t),this.pointerOverOrOut(t),this.pointerEnterOrLeave(t),this.dragger.dragging&&(this.dragger.dragOverOrOut(t),this.dragger.dragEnterOrLeave(t)),this.updateCursor(t))}pointerUp(t){t||(t=this.downData),this.downData&&(Xr.defaultLeft(t),this.emit(exports.PointerEvent.BEFORE_UP,t,this.defaultPath),this.findPath(t),this.emit(exports.PointerEvent.UP,t),this.emit(exports.PointerEvent.UP,this.downData,void 0,t.path),this.touchLeave(t),this.tap(t),this.dragger.dragEnd(t),this.downData=null,this.updateCursor(t))}pointerCancel(){this.pointerUp(this.dragger.dragData)}multiTouch(t,e){const{move:s,angle:r,scale:i,center:o}=Li.getData(e);this.rotate(Ai(o,r,t)),this.zoom(Ii(o,i,t)),this.move(Si(o,s,t))}move(t){this.transformer.move(t)}zoom(t){this.transformer.zoom(t)}rotate(t){this.transformer.rotate(t)}transformEnd(){this.transformer.transformEnd()}keyDown(t){const{code:e}=t;this.downKeyMap[e]||(this.downKeyMap[e]=!0,Nr.setDownCode(e),this.emit(exports.KeyEvent.HOLD,t,this.defaultPath),this.moveMode&&this.updateCursor()),this.emit(exports.KeyEvent.DOWN,t,this.defaultPath)}keyUp(t){const{code:e}=t;this.downKeyMap[e]=!1,Nr.setUpCode(e),this.emit(exports.KeyEvent.UP,t,this.defaultPath),"grab"===this.cursor&&this.updateCursor()}pointerOverOrOut(t){if(this.dragger.moving)return;if(this.dragging&&!this.config.pointer.dragHover)return;const{path:e}=t;this.overPath?e.indexAt(0)!==this.overPath.indexAt(0)&&(this.emit(exports.PointerEvent.OUT,t,this.overPath),this.emit(exports.PointerEvent.OVER,t,e)):this.emit(exports.PointerEvent.OVER,t,e),this.overPath=e}pointerEnterOrLeave(t){if(this.dragger.moving)return;if(this.dragging&&!this.config.pointer.dragHover)return;const{path:e}=t;this.emit(exports.PointerEvent.LEAVE,t,this.enterPath,e),this.emit(exports.PointerEvent.ENTER,t,e,this.enterPath),this.enterPath=e}touchLeave(t){"touch"===t.pointerType&&this.enterPath&&(this.emit(exports.PointerEvent.LEAVE,t),this.dragger.dragging&&this.emit(exports.DropEvent.LEAVE,t))}tap(t){const{pointer:e}=this.config,s=this.longTap(t);if(!e.tapMore&&s)return;if(!this.waitTap)return;e.tapMore&&this.emitTap(t);const r=Date.now()-this.downTime,i=[exports.PointerEvent.DOUBLE_TAP,exports.PointerEvent.DOUBLE_CLICK].some((e=>Mi(t.path,e)));r<e.tapTime+50&&i?(this.tapCount++,2===this.tapCount?(this.tapWaitCancel(),this.emitDoubleTap(t)):(clearTimeout(this.tapTimer),this.tapTimer=setTimeout((()=>{e.tapMore||(this.tapWaitCancel(),this.emitTap(t))}),e.tapTime))):e.tapMore||(this.tapWaitCancel(),this.emitTap(t))}findPath(t,e){const{hitRadius:s,through:r}=this.config.pointer,i=this.selector.getByPoint(t,s,e||{through:r});return i.throughPath&&(t.throughPath=i.throughPath),t.path=i.path,i.path}updateDownData(t){t||(t=this.downData),t&&(this.findPath(t),this.downData=t)}updateHoverData(t){t||(t=this.hoverData),t&&(this.findPath(t,{exclude:this.dragger.getDragList(),name:exports.PointerEvent.MOVE}),this.hoverData=t)}updateCursor(t){if(t||(this.updateHoverData(),t=this.hoverData),this.dragger.moving)return this.setCursor("grabbing");if(this.moveMode)return this.setCursor(this.downData?"grabbing":"grab");if(!t||this.dragger.dragging)return;const e=t.path;let s;for(let t=0,r=e.length;t<r;t++)if(s=e.list[t],s.cursor){const{cursor:t}=s;return void this.setCursor("grab"===t&&this.downData?"grabbing":t)}this.setCursor("default")}setCursor(t){this.cursor=t,this.canvas.setCursor(t)}emitTap(t){this.emit(exports.PointerEvent.TAP,t),this.emit(exports.PointerEvent.CLICK,t)}emitDoubleTap(t){this.emit(exports.PointerEvent.DOUBLE_TAP,t),this.emit(exports.PointerEvent.DOUBLE_CLICK,t)}pointerWaitCancel(){this.tapWaitCancel(),this.longPressWaitCancel()}tapWait(){clearTimeout(this.tapTimer),this.waitTap=!0}tapWaitCancel(){clearTimeout(this.tapTimer),this.waitTap=!1,this.tapCount=0}longPressWait(t){clearTimeout(this.longPressTimer),this.longPressTimer=setTimeout((()=>{this.longPressed=!0,this.emit(exports.PointerEvent.LONG_PRESS,t)}),this.config.pointer.longPressTime)}longTap(t){let e;return this.longPressed&&(this.emit(exports.PointerEvent.LONG_TAP,t),Mi(t.path,exports.PointerEvent.LONG_TAP)&&(e=!0)),this.longPressWaitCancel(),e}longPressWaitCancel(){clearTimeout(this.longPressTimer),this.longPressed=!1}__onResize(){this.shrinkCanvasBounds=new V(this.canvas.bounds),this.shrinkCanvasBounds.spread(-2)}__listenEvents(){const{target:t}=this;this.__eventIds=[t.on_(Dr.RESIZE,this.__onResize,this)],t.once(Ar.READY,(()=>this.__onResize()))}__removeListenEvents(){this.target.off_(this.__eventIds),this.__eventIds.length=0}emit(t,e,s,r){this.running&&function(t,e,s,r){if(!s&&!e.path)return;let i;e.type=t,s?e=Object.assign(Object.assign({},e),{path:s}):s=e.path,e.target=s.indexAt(0);for(let o=s.length-1;o>-1;o--){if(i=s.list[o],Di(i,t,e,!0,r))return;i.isApp&&ki(i,t,e,!0,r)}for(let o=0,n=s.length;o<n;o++)if(i=s.list[o],i.isApp&&ki(i,t,e,!1,r),Di(i,t,e,!1,r))return}(t,e,s,r)}destroy(){this.__eventIds.length&&(this.stop(),this.__removeListenEvents(),this.dragger.destroy(),this.transformer.destroy(),this.downData=this.overPath=this.enterPath=null)}},exports.InteractionHelper=Ei,exports.Keyboard=Nr,exports.LayoutEvent=Mr,exports.LeafBounds=Qi,exports.LeafBoundsHelper=fi,exports.LeafData=lt,exports.LeafDataProxy=Ui,exports.LeafEventer=Hi,exports.LeafHelper=ci,exports.LeafHit=so,exports.LeafLayout=Xi,exports.LeafLevelList=class{get length(){return this._length}constructor(t){this._length=0,this.reset(),t&&(t instanceof Array?this.pushList(t):this.push(t))}has(t){return void 0!==this.keys[t.innerId]}without(t){return void 0===this.keys[t.innerId]}sort(t){const{levels:e}=this;t?e.sort(((t,e)=>e-t)):e.sort(((t,e)=>t-e))}pushList(t){t.forEach((t=>{this.push(t)}))}push(t){const{keys:e,levelMap:s}=this;e[t.innerId]||(e[t.innerId]=1,s[t.__level]?s[t.__level].push(t):(s[t.__level]=[t],this.levels.push(t.__level)),this._length++)}forEach(t){let e;this.levels.forEach((s=>{e=this.levelMap[s];for(let s=0,r=e.length;s<r;s++)t(e[s])}))}reset(){this.levelMap={},this.keys={},this.levels=[],this._length=0}destroy(){this.levelMap=null}},exports.LeafList=nt,exports.LeafMask=io,exports.LeafMatrix=Ki,exports.LeafRender=ro,exports.LeaferCanvasBase=class extends mt{get pixelWidth(){return this.width*this.pixelRatio}get pixelHeight(){return this.height*this.pixelRatio}get allowBackgroundColor(){return this.view&&this.parentView}constructor(e,r){super(),this.worldTransform={},e||(e=xt),e.pixelRatio||(e.pixelRatio=t.devicePixelRatio),this.manager=r,this.innerId=s.create(s.CNAVAS);const{width:i,height:o,pixelRatio:n}=e;this.autoLayout=!i||!o,this.pixelRatio=n,this.config=e,this.init()}init(){}__createContext(){this.context=this.view.getContext("2d"),this.__bindContext()}toBlob(e,s){return new Promise((r=>{const i=this.getSaveCanvas(e);t.origin.canvasToBolb(i.view,e,s).then((t=>{i.recycle(),r(t)})).catch((t=>{vt.error(t),r(null)}))}))}toDataURL(e,s){const r=this.getSaveCanvas(e),i=t.origin.canvasToDataURL(r.view,e,s);return r.recycle(),i}saveAs(e,s){return new Promise((r=>{const i=this.getSaveCanvas(dt.fileType(e));t.origin.canvasSaveAs(i.view,e,s).then((()=>{i.recycle(),r(!0)})).catch((t=>{vt.error(t),r(!1)}))}))}getSaveCanvas(t){const{backgroundColor:e,bounds:s}=this,r=this.getSameCanvas();return["jpg","jpeg"].includes(t)&&r.fillWorld(s,"#FFFFFF"),e&&r.fillWorld(s,e),r.copyWorld(this),r}resize(t){if(this.isSameSize(t))return;let e;this.context&&!this.unreal&&this.width&&(e=this.getSameCanvas(),e.copyWorld(this)),at.copyAttrs(this,t,Et),this.bounds=new V(0,0,this.width,this.height),this.pixelRatio||(this.pixelRatio=1),this.unreal||(this.updateViewSize(),this.smooth=this.config.smooth),this.updateClientBounds(),this.context&&!this.unreal&&e&&(this.clearWorld(e.bounds),this.copyWorld(e),e.recycle())}updateViewSize(){}updateClientBounds(){}startAutoLayout(t,e){}stopAutoLayout(){}setCursor(t){}setWorld(t,e,s){const{pixelRatio:r}=this,i=this.worldTransform;if(e)if(s)this.setTransform(i.a=t.a*r,i.b=t.b*r,i.c=t.c*r,i.d=t.d*r,i.e=(t.e+e.e)*r,i.f=(t.f+e.f)*r);else{const{a:s,b:o,c:n,d:a,e:h,f:l}=e;this.setTransform(i.a=(t.a*s+t.b*n)*r,i.b=(t.a*o+t.b*a)*r,i.c=(t.c*s+t.d*n)*r,i.d=(t.c*o+t.d*a)*r,i.e=(t.e*s+t.f*n+h)*r,i.f=(t.e*o+t.f*a+l)*r)}else this.setTransform(i.a=t.a*r,i.b=t.b*r,i.c=t.c*r,i.d=t.d*r,i.e=t.e*r,i.f=t.f*r)}useWorldTransform(t){t&&(this.worldTransform=t);const e=this.worldTransform;e&&this.setTransform(e.a,e.b,e.c,e.d,e.e,e.f)}setStroke(t,e,s){e&&(this.strokeWidth=e),t&&(this.strokeStyle=t),s&&this.setStrokeOptions(s)}setStrokeOptions(t){this.strokeCap=t.strokeCap,this.strokeJoin=t.strokeJoin,this.dashPattern=t.dashPattern,this.dashOffset=t.dashOffset,this.miterLimit=t.miterLimit}saveBlendMode(t){this.savedBlendMode=this.blendMode,this.blendMode=t}restoreBlendMode(){this.blendMode=this.savedBlendMode}hitFill(t,e){return e?this.context.isPointInPath(t.x,t.y,e):this.context.isPointInPath(t.x,t.y)}hitStroke(t,e){return this.strokeWidth=e,this.context.isPointInStroke(t.x,t.y)}setWorldShadow(t,e,s,r){const{pixelRatio:i}=this;this.shadowOffsetX=t*i,this.shadowOffsetY=e*i,this.shadowBlur=s*i,this.shadowColor=r||"black"}setWorldBlur(t){const{pixelRatio:e}=this;this.filter=`blur(${t*e}px)`}copyWorld(t,e,s,r){if(r&&(this.blendMode=r),e){const{pixelRatio:r}=this;s||(s=e),this.drawImage(t.view,e.x*r,e.y*r,e.width*r,e.height*r,s.x*r,s.y*r,s.width*r,s.height*r)}else this.drawImage(t.view,0,0);r&&(this.blendMode="source-over")}copyWorldToInner(t,e,s,r){if(r&&(this.blendMode=r),e.b||e.c)this.save(),this.resetTransform(),this.copyWorld(t,e,j.tempToOuterOf(s,e)),this.restore();else{const{pixelRatio:r}=this;this.drawImage(t.view,e.x*r,e.y*r,e.width*r,e.height*r,s.x,s.y,s.width,s.height)}r&&(this.blendMode="source-over")}copyWorldByReset(t,e,s,r){this.resetTransform(),this.copyWorld(t,e,s,r),this.useWorldTransform()}useMask(t,e,s){this.copyWorld(t,e,s,"destination-in")}useEraser(t,e,s){this.copyWorld(t,e,s,"destination-out")}fillWorld(t,e,s){s&&(this.blendMode=s),this.fillStyle=e,yt.copy(t).scale(this.pixelRatio),this.fillRect(yt.x,yt.y,yt.width,yt.height),s&&(this.blendMode="source-over")}strokeWorld(t,e,s){s&&(this.blendMode=s),this.strokeStyle=e,yt.copy(t).scale(this.pixelRatio),this.strokeRect(yt.x,yt.y,yt.width,yt.height),s&&(this.blendMode="source-over")}clearWorld(t,e){yt.copy(t).scale(this.pixelRatio),e&&yt.ceil(),this.clearRect(yt.x,yt.y,yt.width,yt.height)}clipWorld(t,e){this.beginPath(),yt.copy(t).scale(this.pixelRatio),e&&yt.ceil(),this.rect(yt.x,yt.y,yt.width,yt.height),this.clip()}clear(){const{pixelRatio:t}=this;this.clearRect(0,0,this.width*t,this.height*t)}isSameSize(t){return this.width===t.width&&this.height===t.height&&this.pixelRatio===t.pixelRatio}getSameCanvas(t){const{width:s,height:r,pixelRatio:i}=this,o={width:s,height:r,pixelRatio:i},n=this.manager?this.manager.get(o):e.canvas(o);return n.save(),t&&n.useWorldTransform(Object.assign({},this.worldTransform)),n}getBiggerCanvas(t,s){let{width:r,height:i,pixelRatio:o}=this;t&&(r+=t),s&&(i+=s);const n={width:r,height:i,pixelRatio:o},a=this.manager?this.manager.get(n):e.canvas(n);return a.save(),a}recycle(){this.recycled||(this.restore(),this.manager?this.manager.recycle(this):this.destroy())}updateRender(){}unrealCanvas(){}destroy(){this.manager=this.view=this.parentView=null}},exports.LeaferEvent=Ar,exports.LeaferImage=class{get url(){return this.config.url}get completed(){return this.ready||!!this.error}constructor(t){this.use=0,this.waitComplete=[],this.innerId=Tr(Cr),this.config=t||{url:""};const{url:e}=t;e.startsWith("data:")?e.startsWith("data:image/svg")&&(this.isSVG=!0):e.includes(".svg")&&(this.isSVG=!0),"svg"===this.config.format&&(this.isSVG=!0)}load(e,s){return this.loading||(this.loading=!0,wr.tasker.add((()=>ut(this,void 0,void 0,(function*(){return yield t.origin.loadImage(this.url).then((t=>{this.ready=!0,this.width=t.naturalWidth||t.width,this.height=t.naturalHeight||t.height,this.view=t,this.onComplete(!0)})).catch((t=>{this.error=t,this.onComplete(!1)}))}))))),this.waitComplete.push(e,s),this.waitComplete.length-2}unload(t,e){const s=this.waitComplete;if(e){const e=s[t+1];e&&e({type:"stop"})}s[t]=s[t+1]=void 0}onComplete(t){let e;this.waitComplete.forEach(((s,r)=>{e=r%2,s&&(t?e||s(this):e&&s(this.error))})),this.waitComplete.length=0,this.loading=!1}getCanvas(e,s,r,i){e||(e=this.width),s||(s=this.height);const o=t.origin.createCanvas(e,s),n=o.getContext("2d");return r&&(n.globalAlpha=r),n.drawImage(this.view,0,0,e,s),o}destroy(){this.config={url:""},this.waitComplete.length=0}},exports.MathHelper=i,exports.Matrix=B,exports.MatrixHelper=f,exports.MultiTouchHelper=Li,exports.NeedConvertToCanvasCommandMap=Ot,exports.OneRadian=o,exports.PI2=n,exports.PI_2=a,exports.PathBounds=fr,exports.PathCommandDataHelper=ns,exports.PathCommandMap=Ct,exports.PathConvert=je,exports.PathCorner=mr,exports.PathCreator=bs,exports.PathDrawer=Ns,exports.PathHelper=wt,exports.PathNumberCommandLengthMap=Dt,exports.PathNumberCommandMap=kt,exports.Platform=t,exports.PluginManager=Oo,exports.Point=P,exports.PointHelper=T,exports.PointerButton=Xr,exports.PropertyEvent=Br,exports.RectHelper=Rt,exports.RenderEvent=Ir,exports.ResizeEvent=Dr,exports.Run=Q,exports.StringNumberMap=G,exports.TaskItem=vr,exports.TaskProcessor=Er,exports.TransformEvent=Rr,exports.TwoPointBounds=class{constructor(t,e){k.setPoint(this,t,e)}addPoint(t,e){k.addPoint(this,t,e)}addBounds(t,e,s,r){k.addBounds(this,t,e,s,r)}add(t){k.add(this,t)}},exports.TwoPointBoundsHelper=k,exports.UICreator=tt,exports.UIEvent=Yr,exports.WaitHelper=vi,exports.WatchEvent=Lr,exports.affectRenderBoundsType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.renderChanged||this.__layout.renderChange()}})}},exports.affectStrokeBoundsType=Vr,exports.aliasType=function(t){return(e,s)=>{Hr(e,s,{get(){return this.__getAttr(t)},set(e){this.__setAttr(t,e)}})}},exports.boundsType=zr,exports.canvasPatch=function(t){!function(t){t&&!t.roundRect&&(t.roundRect=function(t,e,s,r,i){yr(this,t,e,s,r,i)})}(t)},exports.canvasSizeAttrs=Et,exports.cursorType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.leafer&&this.leafer.updateCursor()}})}},exports.dataProcessor=function(t){return(e,s)=>{Hr(e,"__DataProcessor",{get:()=>t})}},exports.dataType=function(t){return(e,s)=>{Ur(e,s,t)}},exports.defineDataProcessor=Kr,exports.defineKey=Hr,exports.defineLeafAttr=Ur,exports.eraserType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.waitParent((()=>{this.parent.__updateEraser(t)}))}})}},exports.getDescriptor=jr,exports.hitType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),K.showHitView&&(this.__layout.surfaceChanged||this.__layout.surfaceChange()),this.leafer&&this.leafer.updateCursor()}})}},exports.layoutProcessor=function(t){return(e,s)=>{Hr(e,"__LayoutProcessor",{get:()=>t})}},exports.maskType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.boxChanged||this.__layout.boxChange(),this.waitParent((()=>{this.parent.__updateMask(t)}))}})}},exports.opacityType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.opacityChanged||this.__layout.opacityChange()}})}},exports.pathType=Fr,exports.positionType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.positionChanged||this.__layout.positionChange()}})}},exports.registerUI=function(){return t=>{tt.register(t)}},exports.registerUIEvent=ti,exports.rewrite=function(t){return(e,s)=>{qr.push({name:e.constructor.name+"."+s,run:()=>{e[s]=t}})}},exports.rewriteAble=function(){return t=>{Jr()}},exports.rotationType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.rotationChanged||this.__layout.rotationChange()}})}},exports.scaleType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.scaleChanged||this.__layout.scaleChange()}})}},exports.setDefaultValue=function(t,e,s){Kr(t.prototype,e,s)},exports.sortType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.surfaceChanged||this.__layout.surfaceChange(),this.waitParent((()=>{this.parent.__layout.childrenSortChange()}))}})}},exports.strokeType=Gr,exports.surfaceType=function(t){return(e,s)=>{Ur(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.surfaceChanged||this.__layout.surfaceChange()}})}},exports.useModule=$r,exports.usePlugin=function(t,e){const s={},{power:r,list:i}=Oo;if(r||To.error("need add PluginManager.power = LeaferUI"),i.includes(t))To.warn("repeat run",t.name);else{i.push(t),t.import?t.import.forEach((t=>{r[t]?s[t]=r[t]:To.error(t+" non-existent")})):To.warn("no import");try{t.run(s,e)}catch(t){To.error(t)}}};
1
+ "use strict";const t={imageSuffix:"leaf"},e={},s={RUNTIME:"runtime",LEAF:"leaf",TASK:"task",CNAVAS:"canvas",IMAGE:"image",types:{},create(t){const{types:e}=r;return e[t]?e[t]++:(e[t]=1,0)}},r=s,i={within:(t,e,s)=>(t<e&&(t=e),t>s&&(t=s),t),fourNumber(t){let e,s,r,i;if(t instanceof Array)switch(t.length){case 4:return t;case 2:e=r=t[0],s=i=t[1];break;case 3:e=t[0],s=i=t[1],r=t[2];break;case 1:t=t[0];break;default:t=0}return void 0===e?[t,t,t,t]:[e,s,r,i]},formatRotation:(t,e)=>(t%=360,e?t<0&&(t+=360):(t>180&&(t-=360),t<-180&&(t+=360)),t),getGapRotation(t,e){if(e>1){const s=Math.abs(t%e);(s<1||s>e-1)&&(t=Math.round(t/e)*e)}return t},formatSkew:t=>i.within(t,-90,90)},o=Math.PI/180,n=2*Math.PI,a=Math.PI/2,{sin:h,cos:l,acos:d,atan:c,sqrt:u,PI:p}=Math,_={};function g(){return{a:1,b:0,c:0,d:1,e:0,f:0}}const f={defaultMatrix:{a:1,b:0,c:0,d:1,e:0,f:0},tempMatrix:{},set(t,e=1,s=0,r=0,i=1,o=0,n=0){t.a=e,t.b=s,t.c=r,t.d=i,t.e=o,t.f=n},get:g,copy(t,e){t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t.e=e.e,t.f=e.f},translate(t,e,s){t.e+=e,t.f+=s},translateInner(t,e,s){t.e+=t.a*e+t.c*s,t.f+=t.b*e+t.d*s},scale(t,e,s=e){t.a*=e,t.b*=e,t.c*=s,t.d*=s},scaleOfOuter(t,e,s,r=s){m.toInnerPoint(t,e,_),m.scaleOfInner(t,_,s,r)},scaleOfInner(t,e,s,r=s){m.translateInner(t,e.x,e.y),m.scale(t,s,r),m.translateInner(t,-e.x,-e.y)},rotate(t,e){const s=l(e*=o),r=h(e),{a:i,b:n,c:a,d:d}=t;t.a=i*s-n*r,t.b=i*r+n*s,t.c=a*s-d*r,t.d=a*r+d*s},rotateOfOuter(t,e,s){m.toInnerPoint(t,e,_),m.rotateOfInner(t,_,s)},rotateOfInner(t,e,s){m.translateInner(t,e.x,e.y),m.rotate(t,s),m.translateInner(t,-e.x,-e.y)},skew(t,e,s){const{a:r,b:i,c:n,d:a}=t;s&&(s*=o,t.a=r+n*s,t.b=i+a*s),e&&(e*=o,t.c=n+r*e,t.d=a+i*e)},skewOfOuter(t,e,s,r){m.toInnerPoint(t,e,_),m.skewOfInner(t,_,s,r)},skewOfInner(t,e,s,r){m.translateInner(t,e.x,e.y),m.skew(t,s,r),m.translateInner(t,-e.x,-e.y)},multiply(t,e){const{a:s,b:r,c:i,d:o,e:n,f:a}=t;t.a=e.a*s+e.b*i,t.b=e.a*r+e.b*o,t.c=e.c*s+e.d*i,t.d=e.c*r+e.d*o,t.e=e.e*s+e.f*i+n,t.f=e.e*r+e.f*o+a},preMultiply(t,e){const{a:s,b:r,c:i,d:o,e:n,f:a}=t;1===e.a&&0===e.b&&0===e.c&&1===e.d||(t.a=s*e.a+r*e.c,t.b=s*e.b+r*e.d,t.c=i*e.a+o*e.c,t.d=i*e.b+o*e.d),t.e=n*e.a+a*e.c+e.e,t.f=n*e.b+a*e.d+e.f},divide(t,e){m.preMultiply(t,m.tempInvert(e))},tempInvert(t){const{tempMatrix:e}=m;return m.copy(e,t),m.invert(e),e},invert(t){const{a:e,b:s,c:r,d:i,e:o,f:n}=t,a=1/(e*i-s*r);t.a=i*a,t.b=-s*a,t.c=-r*a,t.d=e*a,t.e=-(o*i-n*r)*a,t.f=-(n*e-o*s)*a},toOuterPoint(t,e,s,r){const{x:i,y:o}=e;s||(s=e),s.x=i*t.a+o*t.c,s.y=i*t.b+o*t.d,r||(s.x+=t.e,s.y+=t.f)},toInnerPoint(t,e,s,r){const{x:i,y:o}=e,{a:n,b:a,c:h,d:l}=t,d=1/(n*l-a*h);if(s||(s=e),s.x=(i*l-o*h)*d,s.y=(o*n-i*a)*d,!r){const{e:e,f:r}=t;s.x-=(e*l-r*h)*d,s.y-=(r*n-e*a)*d}},decompose(t){const{a:e,b:s,c:r,d:i}=t;let n=e,a=i,h=0,l=0,_=0;if(s||r){const t=e*i-s*r,g=e*r+s*i;if(s){const r=e*e+s*s;n=u(r),a=t/n;const i=e/n;h=s>0?d(i):-d(i),l=c(g/r)/o}else{const e=r*r+i*i;a=u(e),n=t/a;const s=r/a;h=p/2-(i>0?d(-s):-d(s)),_=c(g/e)/o}h/=o}return{x:t.e,y:t.f,scaleX:n,scaleY:a,rotation:h,skewX:l,skewY:_}},reset(t){m.set(t)}},m=f,{toInnerPoint:y,toOuterPoint:x}=f,{sin:v,cos:E,abs:w,sqrt:b,atan2:C}=Math,T={defaultPoint:{x:0,y:0},tempPoint:{},tempRadiusPoint:{},set(t,e=0,s=0){t.x=e,t.y=s},setRadius(t,e,s){t.radiusX=e,t.radiusY=void 0===s?e:s},copy(t,e){t.x=e.x,t.y=e.y},move(t,e,s){t.x+=e,t.y+=s},rotate(t,e,s){s||(s=P.defaultPoint);const r=E(e*o),i=v(e*o),n=t.x-s.x,a=t.y-s.y;t.x=s.x+n*r-a*i,t.y=s.y+n*i+a*r},tempToInnerOf(t,e){const{tempPoint:s}=P;return P.copy(s,t),y(e,s,s),s},tempToOuterOf(t,e){const{tempPoint:s}=P;return P.copy(s,t),x(e,s,s),s},tempToInnerRadiusPointOf(t,e){const{tempRadiusPoint:s}=P;return P.copy(s,t),P.toInnerRadiusPointOf(t,e,s),s},toInnerRadiusPointOf(t,e,s){s||(s=t),y(e,t,s),s.radiusX=Math.abs(t.radiusX/e.scaleX),s.radiusY=Math.abs(t.radiusY/e.scaleY)},toInnerOf(t,e,s){y(e,t,s)},toOuterOf(t,e,s){x(e,t,s)},getCenter:(t,e)=>({x:t.x+(e.x-t.x)/2,y:t.y+(e.y-t.y)/2}),getDistance(t,e){const s=w(e.x-t.x),r=w(e.y-t.y);return b(s*s+r*r)},getAngle:(t,e)=>P.getAtan2(t,e)/o,getChangeAngle(t,e,s,r){r||(r=e);let i=P.getAngle(t,e);const o=P.getAngle(s,r)-i;return o<-180?o+360:o},getAtan2:(t,e)=>C(e.y-t.y,e.x-t.x),getDistancePoint(t,e,s){const r=P.getAtan2(t,e);return{x:t.x+E(r)*s,y:t.y+v(r)*s}},reset(t){P.reset(t)}},P=T;class O{constructor(t,e){"object"==typeof t?T.copy(this,t):T.set(this,t,e)}set(t,e){T.set(this,t,e)}copy(t){return T.copy(this,t),this}clone(){return new O(this)}rotate(t,e){return T.rotate(this,t,e),this}toInnerOf(t,e){return T.toInnerOf(this,t,e),this}toOuterOf(t,e){return T.toOuterOf(this,t,e),this}getCenter(t){return T.getCenter(this,t)}getDistance(t){return T.getDistance(this,t)}getAngle(t){return T.getAngle(this,t)}getAtan2(t){return T.getAtan2(this,t)}reset(){T.reset(this)}}class k{constructor(t,e,s,r,i,o){"object"==typeof t?f.copy(this,t):f.set(this,t,e,s,r,i,o)}set(t,e,s,r,i,o){f.set(this,t,e,s,r,i,o)}copy(t){return f.copy(this,t),this}clone(){return new k(this)}translate(t,e){return f.translate(this,t,e),this}translateInner(t,e){return f.translateInner(this,t,e),this}scale(t,e){return f.scale(this,t,e),this}scaleOfOuter(t,e,s){return f.scaleOfOuter(this,t,e,s),this}scaleOfInner(t,e,s){return f.scaleOfInner(this,t,e,s),this}rotate(t){return f.rotate(this,t),this}rotateOfOuter(t,e){return f.rotateOfOuter(this,t,e),this}rotateOfInner(t,e){return f.rotateOfInner(this,t,e),this}skew(t,e){return f.skew(this,t,e),this}skewOfOuter(t,e,s){return f.skewOfOuter(this,t,e,s),this}skewOfInner(t,e,s){return f.skewOfInner(this,t,e,s),this}multiply(t){return f.multiply(this,t),this}preMultiply(t){return f.preMultiply(this,t),this}divide(t){return f.divide(this,t),this}invert(){return f.invert(this),this}toOuterPoint(t,e,s){f.toOuterPoint(this,t,e,s)}toInnerPoint(t,e,s){f.toInnerPoint(this,t,e,s)}decompose(){return f.decompose(this)}reset(){f.reset(this)}}const B={tempPointBounds:{},setPoint(t,e,s){t.minX=t.maxX=e,t.minY=t.maxY=s},addPoint(t,e,s){t.minX=e<t.minX?e:t.minX,t.minY=s<t.minY?s:t.minY,t.maxX=e>t.maxX?e:t.maxX,t.maxY=s>t.maxY?s:t.maxY},addBounds(t,e,s,r,i){D(t,e,s),D(t,e+r,s+i)},copy(t,e){t.minX=e.minX,t.minY=e.minY,t.maxX=e.maxX,t.maxY=e.maxY},add(t,e){t.minX=e.minX<t.minX?e.minX:t.minX,t.minY=e.minY<t.minY?e.minY:t.minY,t.maxX=e.maxX>t.maxX?e.maxX:t.maxX,t.maxY=e.maxY>t.maxY?e.maxY:t.maxY},toBounds(t,e){e.x=t.minX,e.y=t.minY,e.width=t.maxX-t.minX,e.height=t.maxY-t.minY}},{addPoint:D}=B,{tempPointBounds:R,setPoint:M,addPoint:L,toBounds:S}=B,{toOuterPoint:I}=f;let A,W,N,X;const Y={},H={},j={tempBounds:{},set(t,e=0,s=0,r=0,i=0){t.x=e,t.y=s,t.width=r,t.height=i},copy(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},copyAndSpread(t,e,s,r){r||(r=s),U.set(t,e.x-s,e.y-r,e.width+2*s,e.height+2*r)},right:t=>t.x+t.width,bottom:t=>t.y+t.height,move(t,e,s){t.x+=e,t.y+=s},getByMove:(t,e,s)=>(t=Object.assign({},t),U.move(t,e,s),t),toOffsetOutBounds(t,e,s){e?F(e,t):e=t,s?(e.offsetX=-(U.right(s)-t.x),e.offsetY=-(U.bottom(s)-t.y)):(e.offsetX=t.x+t.width,e.offsetY=t.y+t.height),U.move(e,-e.offsetX,-e.offsetY)},scale(t,e,s){s||(s=e),t.x&&(t.x*=e),t.y&&(t.y*=s),t.width*=e,t.height*=s},tempToOuterOf:(t,e)=>(U.copy(U.tempBounds,t),U.toOuterOf(U.tempBounds,e),U.tempBounds),getOuterOf:(t,e)=>(t=Object.assign({},t),U.toOuterOf(t,e),t),toOuterOf(t,e,s){if(s||(s=t),0===e.b&&0===e.c){const{a:r,d:i}=e;r>0?(s.width=t.width*r,s.x=e.e+t.x*r):(s.width=t.width*-r,s.x=e.e+t.x*r-s.width),i>0?(s.height=t.height*i,s.y=e.f+t.y*i):(s.height=t.height*-i,s.y=e.f+t.y*i-s.height)}else Y.x=t.x,Y.y=t.y,I(e,Y,H),M(R,H.x,H.y),Y.x=t.x+t.width,I(e,Y,H),L(R,H.x,H.y),Y.y=t.y+t.height,I(e,Y,H),L(R,H.x,H.y),Y.x=t.x,I(e,Y,H),L(R,H.x,H.y),S(R,s)},getFitMatrix(t,e){const s=Math.min(1,Math.min(t.width/e.width,t.height/e.height));return new k(s,0,0,s,-e.x*s,-e.y*s)},getSpread(t,e,s){const r={};return U.copyAndSpread(r,t,e,s),r},spread(t,e,s=e){U.copyAndSpread(t,t,e,s)},ceil(t){t.x=Math.floor(t.x),t.y=Math.floor(t.y),t.width=Math.ceil(t.width),t.height=Math.ceil(t.height)},unsign(t){t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height)},add(t,e){A=t.x+t.width,W=t.y+t.height,N=e.x+e.width,X=e.y+e.height,A=A>N?A:N,W=W>X?W:X,t.x=t.x<e.x?t.x:e.x,t.y=t.y<e.y?t.y:e.y,t.width=A-t.x,t.height=W-t.y},addList(t,e){U.setByListWithHandle(t,e,void 0,!0)},setByList(t,e,s=!1){U.setByListWithHandle(t,e,void 0,s)},addListWithHandle(t,e,s){U.setByListWithHandle(t,e,s,!0)},setByListWithHandle(t,e,s,r=!1){let i,o=!0;for(let n=0,a=e.length;n<a;n++)i=s?s(e[n]):e[n],i&&(i.width||i.height)&&(o?(o=!1,r||F(t,i)):z(t,i));o&&U.reset(t)},setByPoints(t,e){e.forEach(((t,e)=>{0===e?M(R,t.x,t.y):L(R,t.x,t.y)})),S(R,t)},hitRadiusPoint:(t,e,s)=>(s&&(e=T.tempToInnerRadiusPointOf(e,s)),e.x>=t.x-e.radiusX&&e.x<=t.x+t.width+e.radiusX&&e.y>=t.y-e.radiusY&&e.y<=t.y+t.height+e.radiusY),hitPoint:(t,e,s)=>(s&&(e=T.tempToInnerOf(e,s)),e.x>=t.x&&e.x<=t.x+t.width&&e.y>=t.y&&e.y<=t.y+t.height),hit:(t,e,s)=>(s&&(e=U.tempToOuterOf(e,s)),!(t.y+t.height<e.y||e.y+e.height<t.y||t.x+t.width<e.x||e.x+e.width<t.x)),includes:(t,e,s)=>(s&&(e=U.tempToOuterOf(e,s)),t.x<=e.x&&t.y<=e.y&&t.x+t.width>=e.x+e.width&&t.y+t.height>=e.y+e.height),getIntersectData(t,e,s){s&&(e=U.tempToOuterOf(e,s));let{x:r,y:i,width:o,height:n}=e;return A=r+o,W=i+n,N=t.x+t.width,X=t.y+t.height,r=r>t.x?r:t.x,i=i>t.y?i:t.y,A=A<N?A:N,W=W<X?W:X,o=A-r,n=W-i,{x:r,y:i,width:o,height:n}},intersect(t,e,s){U.copy(t,U.getIntersectData(t,e,s))},isSame:(t,e)=>t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height,isEmpty:t=>0===t.x&&0===t.y&&0===t.width&&0===t.height,reset(t){U.set(t)}},U=j,{add:z,copy:F}=U;class V{constructor(t,e,s,r){"object"==typeof t?j.copy(this,t):j.set(this,t,e,s,r)}set(t,e,s,r){j.set(this,t,e,s,r)}copy(t){return j.copy(this,t),this}clone(){return new V(this)}scale(t,e){return j.scale(this,t,e),this}toOuterOf(t,e){return j.toOuterOf(this,t,e),this}getFitMatrix(t){return j.getFitMatrix(this,t)}spread(t,e){return j.spread(this,t,e),this}ceil(){return j.ceil(this),this}unsign(){return j.unsign(this),this}add(t){return j.add(this,t),this}addList(t){return j.setByList(this,t,!0),this}setByList(t,e){return j.setByList(this,t,e),this}addListWithHandle(t,e){return j.setByListWithHandle(this,t,e,!0),this}setByListWithHandle(t,e,s){return j.setByListWithHandle(this,t,e,s),this}setByPoints(t){return j.setByPoints(this,t),this}hitPoint(t,e){return j.hitPoint(this,t,e)}hitRadiusPoint(t,e){return j.hitRadiusPoint(this,t,e)}hit(t,e){return j.hit(this,t,e)}includes(t,e){return j.includes(this,t,e)}intersect(t,e){return j.intersect(this,t,e),this}getIntersect(t,e){return new V(j.getIntersectData(this,t,e))}isSame(t){return j.isSame(this,t)}isEmpty(){return j.isEmpty(this)}reset(){j.reset(this)}}const K={0:1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,".":1,e:1,E:1};class G{constructor(t){this.repeatMap={},this.name=t}static get(t){return new G(t)}static set filter(t){t?"string"==typeof t&&(t=[t]):t=[],this.filterList=t}static set exclude(t){t?"string"==typeof t&&(t=[t]):t=[],this.excludeList=t}log(...t){if(Z.enable){if(Z.filterList.length&&Z.filterList.every((t=>t!==this.name)))return;if(Z.excludeList.length&&Z.excludeList.some((t=>t===this.name)))return;console.log("%c"+this.name,"color:#21ae62",...t)}}warn(...t){Z.enable&&console.warn(this.name,...t)}repeat(t,...e){this.repeatMap[t]||(this.warn("repeat:"+t,...e),this.repeatMap[t]=!0)}error(...t){try{throw new Error}catch(e){console.error(this.name,...t,e)}}}G.filterList=[],G.excludeList=[];const Z=G,q=G.get("RunTime");class Q{static start(t,e){const r=s.create(s.RUNTIME);return J.currentId=J.idMap[r]=e?performance.now():Date.now(),J.currentName=J.nameMap[r]=t,J.nameToIdMap[t]=r,r}static end(t,e){const s=J.idMap[t],r=J.nameMap[t];J.idMap[t]=J.nameMap[t]=J.nameToIdMap[r]=void 0,e?q.log(r,performance.now()-s,"µs"):q.log(r,Date.now()-s,"ms")}static endOfName(t,e){const s=J.nameToIdMap[t];void 0!==s&&J.end(s,e)}}Q.idMap={},Q.nameMap={},Q.nameToIdMap={};const J=Q,$=G.get("UICreator"),tt={list:{},register(t){const{__tag:e}=t.prototype;et[e]?$.repeat(e):et[e]=t},get(t,e,s,r,i,o){const n=new et[t](e);return void 0!==s&&(n.x=s,r&&(n.y=r),i&&(n.width=i),o&&(n.height=o)),n}},{list:et}=tt,st=G.get("EventCreator"),rt={nameList:{},register(t){let e;Object.keys(t).forEach((s=>{e=t[s],"string"==typeof e&&(it[e]?st.repeat(e):it[e]=t)}))},changeName(t,e){const s=it[t];if(s){const r=Object.keys(s).find((e=>s[e]===t));r&&(s[r]=e,it[e]=s)}},has(t){return!!this.nameList[t]},get:(t,...e)=>new it[t](...e)},{nameList:it}=rt;class ot{constructor(){this.list=[]}add(t){t.manager=this,this.list.push(t)}get(t){let s;const{list:r}=this;for(let e=0,i=r.length;e<i;e++)if(s=r[e],s.recycled&&s.isSameSize(t))return s.recycled=!1,s.manager||(s.manager=this),s;const i=e.canvas(t);return this.add(i),i}recycle(t){t.recycled||(t.clear(),t.recycled=!0)}clearRecycled(){let t;const e=[];for(let s=0,r=this.list.length;s<r;s++)t=this.list[s],t.recycled?t.destroy():e.push(t);this.list=e}clear(){this.list.forEach((t=>{t.destroy()})),this.list.length=0}destroy(){this.clear()}}class nt{get length(){return this.list.length}constructor(t){this.reset(),t&&(t instanceof Array?this.pushList(t):this.push(t))}has(t){return t&&void 0!==this.keys[t.innerId]}indexAt(t){return this.list[t]}indexOf(t){const e=this.keys[t.innerId];return void 0===e?-1:e}pushList(t){t.forEach((t=>{this.push(t)}))}unshift(t){const{keys:e}=this;void 0===e[t.innerId]&&(this.list.unshift(t),Object.keys(e).forEach((t=>{void 0!==e[t]&&e[t]++})),e[t.innerId]=0)}push(t){const{list:e,keys:s}=this;void 0===s[t.innerId]&&(e.push(t),s[t.innerId]=e.length-1)}sort(t){const{list:e}=this;t?e.sort(((t,e)=>e.__level-t.__level)):e.sort(((t,e)=>t.__level-e.__level))}remove(t){const{list:e}=this;let s;for(let r=0,i=e.length;r<i;r++)void 0!==s?this.keys[e[r].innerId]=r-1:e[r].innerId===t.innerId&&(s=r,delete this.keys[t.innerId]);void 0!==s&&e.splice(s,1)}forEach(t){this.list.forEach(t)}clone(){const t=new nt;return this.list.forEach((e=>{t.push(e)})),t}reset(){this.list=[],this.keys={}}destroy(){this.list=null}}const at={default:(t,e)=>(ht(e,t),ht(t,e),t),assign(t,e){let s;Object.keys(e).forEach((r=>{var i;s=e[r],(null==s?void 0:s.constructor)===Object&&(null===(i=t[r])||void 0===i?void 0:i.constructor)===Object?ht(t[r],e[r]):t[r]=e[r]}))},copyAttrs:(t,e,s)=>(s.forEach((s=>{void 0!==e[s]&&(t[s]=e[s])})),t),clone:t=>JSON.parse(JSON.stringify(t))},{assign:ht}=at;class lt{constructor(t){this.__leaf=t}__get(t){if(this.__input){const e=this.__input[t];if(void 0!==e)return e}return this[t]}__setInput(t,e){this.__input||(this.__input={}),this.__input[t]=e}__getInput(t){if(this.__input){const e=this.__input[t];if(void 0!==e)return e}return this["_"+t]}__removeInput(t){this.__input&&void 0!==this.__input[t]&&(this.__input[t]=void 0)}__getInputData(){const t={tag:this.__leaf.tag},{__input:e}=this;let s,r;for(let i in this)s=i.substring(1),void 0!==this[s]&&(r=e?e[s]:void 0,t[s]=void 0===r?this[i]:r);return t}__setMiddle(t,e){this.__middle||(this.__middle={}),this.__middle[t]=e}__getMiddle(t){return this.__middle&&this.__middle[t]}__checkSingle(){"pass-through"===this.blendMode?this.__leaf.__hasEraser||this.isEraser?this.__single=!0:this.__single&&(this.__single=!1):this.__single=!0}destroy(){this.__input=this.__middle=null}}const dt={opacityTypes:["png","webp","svg"],upperCaseTypeMap:{},mineType:t=>!t||t.startsWith("image")?t:("jpg"===t&&(t="jpeg"),"image/"+t),fileType(t){const e=t.split(".");return e[e.length-1]}};function ct(t,e,s,r){var i,o=arguments.length,n=o<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,s,r);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(n=(o<3?i(n):o>3?i(e,s,n):i(e,s))||n);return o>3&&n&&Object.defineProperty(e,s,n),n}function ut(t,e,s,r){return new(s||(s=Promise))((function(i,o){function n(t){try{h(r.next(t))}catch(t){o(t)}}function a(t){try{h(r.throw(t))}catch(t){o(t)}}function h(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(n,a)}h((r=r.apply(t,e||[])).next())}))}function pt(t){return(e,s)=>{t||(t=s);const r={get(){return this.context[t]},set(e){this.context[t]=e}};Object.defineProperty(e,s,r)}}dt.opacityTypes.forEach((t=>dt.upperCaseTypeMap[t]=t.toUpperCase())),"function"==typeof SuppressedError&&SuppressedError;const _t=[];function gt(){return(t,e)=>{_t.push(e)}}const ft=[];class mt{set blendMode(t){"normal"===t&&(t="source-over"),this.context.globalCompositeOperation=t}get blendMode(){return this.context.globalCompositeOperation}set dashPattern(t){this.context.setLineDash(t||ft)}get dashPattern(){return this.context.getLineDash()}__bindContext(){let t;_t.forEach((e=>{t=this.context[e],t&&(this[e]=t.bind(this.context))})),this.textBaseline="alphabetic"}setTransform(t,e,s,r,i,o){}resetTransform(){}getTransform(){}save(){}restore(){}transform(t,e,s,r,i,o){"object"==typeof t?this.context.transform(t.a,t.b,t.c,t.d,t.e,t.f):this.context.transform(t,e,s,r,i,o)}translate(t,e){}scale(t,e){}rotate(t){}fill(t,e){}stroke(t){}clip(t,e){}fillRect(t,e,s,r){}strokeRect(t,e,s,r){}clearRect(t,e,s,r){}drawImage(t,e,s,r,i,o,n,a,h){switch(arguments.length){case 9:if(e<0){const t=-e/r*a;r+=e,e=0,o+=t,a-=t}if(s<0){const t=-s/i*h;i+=s,s=0,n+=t,h-=t}this.context.drawImage(t,e,s,r,i,o,n,a,h);break;case 5:this.context.drawImage(t,e,s,r,i);break;case 3:this.context.drawImage(t,e,s)}}beginPath(){}moveTo(t,e){}lineTo(t,e){}bezierCurveTo(t,e,s,r,i,o){}quadraticCurveTo(t,e,s,r){}closePath(){}arc(t,e,s,r,i,o){}arcTo(t,e,s,r,i){}ellipse(t,e,s,r,i,o,n,a){}rect(t,e,s,r){}roundRect(t,e,s,r,i){}createConicGradient(t,e,s){}createLinearGradient(t,e,s,r){}createPattern(t,e){}createRadialGradient(t,e,s,r,i,o){}fillText(t,e,s,r){}measureText(t){}strokeText(t,e,s,r){}destroy(){this.context=null}}ct([pt("imageSmoothingEnabled")],mt.prototype,"smooth",void 0),ct([pt("imageSmoothingQuality")],mt.prototype,"smoothLevel",void 0),ct([pt("globalAlpha")],mt.prototype,"opacity",void 0),ct([pt()],mt.prototype,"fillStyle",void 0),ct([pt()],mt.prototype,"strokeStyle",void 0),ct([pt("lineWidth")],mt.prototype,"strokeWidth",void 0),ct([pt("lineCap")],mt.prototype,"strokeCap",void 0),ct([pt("lineJoin")],mt.prototype,"strokeJoin",void 0),ct([pt("lineDashOffset")],mt.prototype,"dashOffset",void 0),ct([pt()],mt.prototype,"miterLimit",void 0),ct([pt()],mt.prototype,"shadowBlur",void 0),ct([pt()],mt.prototype,"shadowColor",void 0),ct([pt()],mt.prototype,"shadowOffsetX",void 0),ct([pt()],mt.prototype,"shadowOffsetY",void 0),ct([pt()],mt.prototype,"filter",void 0),ct([pt()],mt.prototype,"font",void 0),ct([pt()],mt.prototype,"fontKerning",void 0),ct([pt()],mt.prototype,"fontStretch",void 0),ct([pt()],mt.prototype,"fontVariantCaps",void 0),ct([pt()],mt.prototype,"textAlign",void 0),ct([pt()],mt.prototype,"textBaseline",void 0),ct([pt()],mt.prototype,"textRendering",void 0),ct([pt()],mt.prototype,"wordSpacing",void 0),ct([pt()],mt.prototype,"letterSpacing",void 0),ct([pt()],mt.prototype,"direction",void 0),ct([gt()],mt.prototype,"setTransform",null),ct([gt()],mt.prototype,"resetTransform",null),ct([gt()],mt.prototype,"getTransform",null),ct([gt()],mt.prototype,"save",null),ct([gt()],mt.prototype,"restore",null),ct([gt()],mt.prototype,"translate",null),ct([gt()],mt.prototype,"scale",null),ct([gt()],mt.prototype,"rotate",null),ct([gt()],mt.prototype,"fill",null),ct([gt()],mt.prototype,"stroke",null),ct([gt()],mt.prototype,"clip",null),ct([gt()],mt.prototype,"fillRect",null),ct([gt()],mt.prototype,"strokeRect",null),ct([gt()],mt.prototype,"clearRect",null),ct([gt()],mt.prototype,"beginPath",null),ct([gt()],mt.prototype,"moveTo",null),ct([gt()],mt.prototype,"lineTo",null),ct([gt()],mt.prototype,"bezierCurveTo",null),ct([gt()],mt.prototype,"quadraticCurveTo",null),ct([gt()],mt.prototype,"closePath",null),ct([gt()],mt.prototype,"arc",null),ct([gt()],mt.prototype,"arcTo",null),ct([gt()],mt.prototype,"ellipse",null),ct([gt()],mt.prototype,"rect",null),ct([gt()],mt.prototype,"roundRect",null),ct([gt()],mt.prototype,"createConicGradient",null),ct([gt()],mt.prototype,"createLinearGradient",null),ct([gt()],mt.prototype,"createPattern",null),ct([gt()],mt.prototype,"createRadialGradient",null),ct([gt()],mt.prototype,"fillText",null),ct([gt()],mt.prototype,"measureText",null),ct([gt()],mt.prototype,"strokeText",null);const yt=new V,xt={width:1,height:1,pixelRatio:1},vt=G.get("LeaferCanvasBase"),Et=["width","height","pixelRatio"];const wt={creator:{},parse(t,e){},convertToCanvasData(t,e){}},bt={N:21,D:22,X:23,G:24,F:25,O:26,P:27,U:28},Ct=Object.assign({M:1,m:10,L:2,l:20,H:3,h:30,V:4,v:40,C:5,c:50,S:6,s:60,Q:7,q:70,T:8,t:80,A:9,a:90,Z:11,z:11,R:12},bt),Tt={M:3,m:3,L:3,l:3,H:2,h:2,V:2,v:2,C:7,c:7,S:5,s:5,Q:5,q:5,T:3,t:3,A:8,a:8,Z:1,z:1,N:5,D:9,X:6,G:9,F:5,O:7,P:4,U:6},Pt={m:10,l:20,H:3,h:30,V:4,v:40,c:50,S:6,s:60,q:70,T:8,t:80,A:9,a:90},Ot=Object.assign(Object.assign({},Pt),bt),kt=Ct,Bt={};for(let t in kt)Bt[kt[t]]=t;const Dt={};for(let t in kt)Dt[kt[t]]=Tt[t];const Rt={drawRoundRect(t,e,s,r,o,n){let[a,h,l,d]=i.fourNumber(n);const c=Math.min(r/2,o/2);a>c&&(a=c),h>c&&(h=c),l>c&&(l=c),d>c&&(d=c),a?t.moveTo(e+a,s):t.moveTo(e,s),h?t.arcTo(e+r,s,e+r,s+o,h):t.lineTo(e+r,s),l?t.arcTo(e+r,s+o,e,s+o,l):t.lineTo(e+r,s+o),d?t.arcTo(e,s+o,e,s,d):t.lineTo(e,s+o),a?t.arcTo(e,s,e+r,s,a):t.lineTo(e,s)}},{sin:Mt,cos:Lt,atan2:St,ceil:It,abs:At,PI:Wt,sqrt:Nt,pow:Xt}=Math,{setPoint:Yt,addPoint:Ht}=B,{set:jt}=T,{M:Ut,L:zt,C:Ft,Q:Vt,Z:Kt}=Ct,Gt={},Zt={points(t,e,s,r){if(t.push(Ut,e[0],e[1]),s&&e.length>5){let i,o,n,a,h,l,d,c,u,p,_,g,f,m=e.length;const y=!0===s?.5:s;r&&(m=(e=[e[m-2],e[m-1],...e,e[0],e[1],e[2],e[3]]).length);for(let s=2;s<m-2;s+=2)i=e[s-2],o=e[s-1],n=e[s],a=e[s+1],h=e[s+2],l=e[s+3],_=Nt(Xt(n-i,2)+Xt(a-o,2)),g=Nt(Xt(h-n,2)+Xt(l-a,2)),f=_+g,_=y*_/f,g=y*g/f,h-=i,l-=o,d=n-_*h,c=a-_*l,2===s?r||t.push(Vt,d,c,n,a):t.push(Ft,u,p,d,c,n,a),u=n+g*h,p=a+g*l;r||t.push(Vt,u,p,e[m-2],e[m-1])}else for(let s=2,r=e.length;s<r;s+=2)t.push(zt,e[s],e[s+1]);r&&t.push(Kt)},rect(t,e,s,r,i){wt.creator.path=t,wt.creator.moveTo(e,s).lineTo(e+r,s).lineTo(e+r,s+i).lineTo(e,s+i).lineTo(e,s)},roundRect(t,e,s,r,i,o){wt.creator.path=[],Rt.drawRoundRect(wt.creator,e,s,r,i,o),t.push(...wt.convertToCanvasData(wt.creator.path,!0))},arcTo(t,e,s,r,i,h,l,d,c,u,p){const _=r-e,g=i-s,f=h-r,m=l-i;let y=St(g,_),x=St(m,f),v=x-y;if(v<0&&(v+=n),v===Wt||At(_+g)<1e-12||At(f+m)<1e-12)return t&&t.push(zt,r,i),c&&(Yt(c,e,s),Ht(c,r,i)),p&&jt(p,e,s),void(u&&jt(u,r,i));const E=_*m-f*g<0,w=E?-1:1,b=d/Lt(v/2),C=r+b*Lt(y+v/2+a*w),T=i+b*Mt(y+v/2+a*w);return y-=a*w,x-=a*w,Jt(t,C,T,d,d,0,y/o,x/o,E,c,u,p)},arc:(t,e,s,r,i,o,n,a,h,l)=>Jt(t,e,s,r,r,0,i,o,n,a,h,l),ellipse(t,e,s,r,i,h,l,d,c,u,p,_){const g=h*o,f=Mt(g),m=Lt(g);let y=l*o,x=d*o;y>Wt&&(y-=n),x<0&&(x+=n);let v=x-y;v<0?v+=n:v>n&&(v-=n),c&&(v-=n);const E=It(At(v/a)),w=v/E,b=Mt(w/4),C=8/3*b*b/Mt(w/2);x=y+w;let T,P,O,k,B,D,R,M,L=Lt(y),S=Mt(y),I=O=m*r*L-f*i*S,A=k=f*r*L+m*i*S,W=e+O,N=s+k;t&&t.push(zt,W,N),u&&Yt(u,W,N),_&&jt(_,W,N);for(let o=0;o<E;o++)T=Lt(x),P=Mt(x),O=m*r*T-f*i*P,k=f*r*T+m*i*P,B=e+I-C*(m*r*S+f*i*L),D=s+A-C*(f*r*S-m*i*L),R=e+O+C*(m*r*P+f*i*T),M=s+k+C*(f*r*P-m*i*T),t&&t.push(Ft,B,D,R,M,e+O,s+k),u&&Qt(e+I,s+A,B,D,R,M,e+O,s+k,u,!0),I=O,A=k,L=T,S=P,y=x,x+=w;p&&jt(p,e+O,s+k)},quadraticCurveTo(t,e,s,r,i,o,n){t.push(Ft,(e+2*r)/3,(s+2*i)/3,(o+2*r)/3,(n+2*i)/3,o,n)},toTwoPointBoundsByQuadraticCurve(t,e,s,r,i,o,n,a){Qt(t,e,(t+2*s)/3,(e+2*r)/3,(i+2*s)/3,(o+2*r)/3,i,o,n,a)},toTwoPointBounds(t,e,s,r,i,o,n,a,h,l){const d=[];let c,u,p,_,g,f,m,y,x=t,v=s,E=i,w=n;for(let t=0;t<2;++t)if(1==t&&(x=e,v=r,E=o,w=a),c=-3*x+9*v-9*E+3*w,u=6*x-12*v+6*E,p=3*v-3*x,Math.abs(c)<1e-12){if(Math.abs(u)<1e-12)continue;_=-p/u,0<_&&_<1&&d.push(_)}else m=u*u-4*p*c,y=Math.sqrt(m),m<0||(g=(-u+y)/(2*c),0<g&&g<1&&d.push(g),f=(-u-y)/(2*c),0<f&&f<1&&d.push(f));l?Ht(h,t,e):Yt(h,t,e),Ht(h,n,a);for(let l=0,c=d.length;l<c;l++)qt(d[l],t,e,s,r,i,o,n,a,Gt),Ht(h,Gt.x,Gt.y)},getPointAndSet(t,e,s,r,i,o,n,a,h,l){const d=1-t,c=d*d*d,u=3*d*d*t,p=3*d*t*t,_=t*t*t;l.x=c*e+u*r+p*o+_*a,l.y=c*s+u*i+p*n+_*h},getPoint(t,e,s,r,i,o,n,a,h){const l={};return qt(t,e,s,r,i,o,n,a,h,l),l}},{getPointAndSet:qt,toTwoPointBounds:Qt,ellipse:Jt}=Zt,{sin:$t,cos:te,sqrt:ee,atan2:se}=Math,{ellipse:re}=Zt,ie={ellipticalArc(e,s,r,i,a,h,l,d,c,u,p){const _=(c-s)/2,g=(u-r)/2,f=h*o,m=$t(f),y=te(f),x=-y*_-m*g,v=-y*g+m*_,E=i*i,w=a*a,b=v*v,C=x*x,T=E*w-E*b-w*C;let P=0;if(T<0){const t=ee(1-T/(E*w));i*=t,a*=t}else P=(l===d?-1:1)*ee(T/(E*b+w*C));const O=P*i*v/a,k=-P*a*x/i,B=se((v-k)/a,(x-O)/i),D=se((-v-k)/a,(-x-O)/i);let R=D-B;0===d&&R>0?R-=n:1===d&&R<0&&(R+=n);const M=s+_+y*O-m*k,L=r+g+m*O+y*k,S=R<0?1:0;p||"node"===t.name?re(e,M,L,i,a,h,B/o,D/o,S):i!==a||h?e.push(Ct.G,M,L,i,a,h,B/o,D/o,S):e.push(Ct.O,M,L,i,B/o,D/o,S)}},{M:oe,m:ne,L:ae,l:he,H:le,h:de,V:ce,v:ue,C:pe,c:_e,S:ge,s:fe,Q:me,q:ye,T:xe,t:ve,A:Ee,a:we,Z:be,z:Ce,N:Te,D:Pe,X:Oe,G:ke,F:Be,O:De,P:Re,U:Me}=Ct,{rect:Le,roundRect:Se,arcTo:Ie,arc:Ae,ellipse:We,quadraticCurveTo:Ne}=Zt,{ellipticalArc:Xe}=ie,Ye=G.get("PathConvert"),He={},je={current:{dot:0},stringify(t){let e,s,r,i=0,o=t.length,n="";for(;i<o;){s=t[i],e=Dt[s],n+=s===r?" ":Bt[s];for(let s=1;s<e;s++)n+=t[i+s],s===e-1||(n+=" ");r=s,i+=e}return n},parse(t,e){let s,r,i,o="";const n=[],a=e?Ot:Pt;for(let e=0,h=t.length;e<h;e++)r=t[e],K[r]?("."===r&&(Ue.dot++,Ue.dot>1&&(ze(n,o),o="")),o+=r):Ct[r]?(o&&(ze(n,o),o=""),Ue.name=Ct[r],Ue.length=Tt[r],Ue.index=0,ze(n,Ue.name),!s&&a[r]&&(s=!0)):"-"===r||"+"===r?"e"===i||"E"===i?o+=r:(o&&ze(n,o),o=r):o&&(ze(n,o),o=""),i=r;return o&&ze(n,o),s?je.toCanvasData(n,e):n},toCanvasData(t,e){let s,r,i,o,n,a=0,h=0,l=0,d=0,c=0,u=t.length;const p=[];for(;c<u;){switch(i=t[c],i){case ne:t[c+1]+=a,t[c+2]+=h;case oe:a=t[c+1],h=t[c+2],p.push(oe,a,h),c+=3;break;case de:t[c+1]+=a;case le:a=t[c+1],p.push(ae,a,h),c+=2;break;case ue:t[c+1]+=h;case ce:h=t[c+1],p.push(ae,a,h),c+=2;break;case he:t[c+1]+=a,t[c+2]+=h;case ae:a=t[c+1],h=t[c+2],p.push(ae,a,h),c+=3;break;case fe:t[c+1]+=a,t[c+2]+=h,t[c+3]+=a,t[c+4]+=h,i=ge;case ge:n=o===pe||o===ge,l=n?2*a-s:t[c+1],d=n?2*h-r:t[c+2],s=t[c+1],r=t[c+2],a=t[c+3],h=t[c+4],p.push(pe,l,d,s,r,a,h),c+=5;break;case _e:t[c+1]+=a,t[c+2]+=h,t[c+3]+=a,t[c+4]+=h,t[c+5]+=a,t[c+6]+=h,i=pe;case pe:s=t[c+3],r=t[c+4],a=t[c+5],h=t[c+6],p.push(pe,t[c+1],t[c+2],s,r,a,h),c+=7;break;case ve:t[c+1]+=a,t[c+2]+=h,i=xe;case xe:n=o===me||o===xe,s=n?2*a-s:t[c+1],r=n?2*h-r:t[c+2],e?Ne(p,a,h,s,r,t[c+1],t[c+2]):p.push(me,s,r,t[c+1],t[c+2]),a=t[c+1],h=t[c+2],c+=3;break;case ye:t[c+1]+=a,t[c+2]+=h,t[c+3]+=a,t[c+4]+=h,i=me;case me:s=t[c+1],r=t[c+2],e?Ne(p,a,h,s,r,t[c+3],t[c+4]):p.push(me,s,r,t[c+3],t[c+4]),a=t[c+3],h=t[c+4],c+=5;break;case we:t[c+6]+=a,t[c+7]+=h;case Ee:Xe(p,a,h,t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],t[c+6],t[c+7],e),a=t[c+6],h=t[c+7],c+=8;break;case Ce:case be:p.push(be),c++;break;case Te:a=t[c+1],h=t[c+2],e?Le(p,a,h,t[c+3],t[c+4]):Fe(p,t,c,5),c+=5;break;case Pe:a=t[c+1],h=t[c+2],e?Se(p,a,h,t[c+3],t[c+4],[t[c+5],t[c+6],t[c+7],t[c+8]]):Fe(p,t,c,9),c+=9;break;case Oe:a=t[c+1],h=t[c+2],e?Se(p,a,h,t[c+3],t[c+4],t[c+5]):Fe(p,t,c,6),c+=6;break;case ke:We(e?p:Fe(p,t,c,9),t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],t[c+6],t[c+7],t[c+8],null,He),a=He.x,h=He.y,c+=9;break;case Be:e?We(p,t[c+1],t[c+2],t[c+3],t[c+4],0,0,360,!1):Fe(p,t,c,5),a=t[c+1]+t[c+3],h=t[c+2],c+=5;break;case De:Ae(e?p:Fe(p,t,c,7),t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],t[c+6],null,He),a=He.x,h=He.y,c+=7;break;case Re:e?Ae(p,t[c+1],t[c+2],t[c+3],0,360,!1):Fe(p,t,c,4),a=t[c+1]+t[c+3],h=t[c+2],c+=4;break;case Me:Ie(e?p:Fe(p,t,c,6),a,h,t[c+1],t[c+2],t[c+3],t[c+4],t[c+5],null,He),a=He.x,h=He.y,c+=6;break;default:return Ye.error(`command: ${i} [index:${c}]`,t),p}o=i}return p},copyData(t,e,s,r){for(let i=s,o=s+r;i<o;i++)t.push(e[i])},pushData(t,e){Ue.index===Ue.length&&(Ue.index=1,t.push(Ue.name)),t.push(Number(e)),Ue.index++,Ue.dot=0}},{current:Ue,pushData:ze,copyData:Fe}=je,{M:Ve,L:Ke,C:Ge,Q:Ze,Z:qe,N:Qe,D:Je,X:$e,G:ts,F:es,O:ss,P:rs,U:is}=Ct,os={},ns={beginPath(t){t.length=0},moveTo(t,e,s){t.push(Ve,e,s)},lineTo(t,e,s){t.push(Ke,e,s)},bezierCurveTo(t,e,s,r,i,o,n){t.push(Ge,e,s,r,i,o,n)},quadraticCurveTo(t,e,s,r,i){t.push(Ze,e,s,r,i)},closePath(t){t.push(qe)},rect(t,e,s,r,i){t.push(Qe,e,s,r,i)},roundRect(t,e,s,r,o,n){if("number"==typeof n)t.push($e,e,s,r,o,n);else{const a=i.fourNumber(n);a?t.push(Je,e,s,r,o,...a):t.push(Qe,e,s,r,o)}},ellipse(t,e,s,r,i,o,n,a,h){void 0===o?t.push(es,e,s,r,i):(void 0===n&&(n=0),void 0===a&&(a=360),t.push(ts,e,s,r,i,o,n,a,h?1:0))},arc(t,e,s,r,i,o,n){void 0===i?t.push(rs,e,s,r):(void 0===o&&(o=360),t.push(ss,e,s,r,i,o,n?1:0))},arcTo(t,e,s,r,i,o){t.push(is,e,s,r,i,o)},drawEllipse(t,e,s,r,i,o,n,a,h){void 0===o&&(o=0),void 0===n&&(n=0),void 0===a&&(a=360),Zt.ellipse(null,e,s,r,i,o,n,a,h,null,null,os),t.push(Ve,os.x,os.y),as(t,e,s,r,i,o,n,a,h)},drawArc(t,e,s,r,i,o,n){void 0===i&&(i=0),void 0===o&&(o=360),Zt.arc(null,e,s,r,i,o,n,null,null,os),t.push(Ve,os.x,os.y),hs(t,e,s,r,i,o,n)},drawPoints(t,e,s,r){Zt.points(t,e,s,r)}},{ellipse:as,arc:hs}=ns,{moveTo:ls,lineTo:ds,quadraticCurveTo:cs,bezierCurveTo:us,closePath:ps,beginPath:_s,rect:gs,roundRect:fs,ellipse:ms,arc:ys,arcTo:xs,drawEllipse:vs,drawArc:Es,drawPoints:ws}=ns;class bs{constructor(t){this.path=t?"string"==typeof t?wt.parse(t):t:[]}beginPath(){return _s(this.path),this}moveTo(t,e){return ls(this.path,t,e),this}lineTo(t,e){return ds(this.path,t,e),this}bezierCurveTo(t,e,s,r,i,o){return us(this.path,t,e,s,r,i,o),this}quadraticCurveTo(t,e,s,r){return cs(this.path,t,e,s,r),this}closePath(){return ps(this.path),this}rect(t,e,s,r){return gs(this.path,t,e,s,r),this}roundRect(t,e,s,r,i){return fs(this.path,t,e,s,r,i),this}ellipse(t,e,s,r,i,o,n,a){return ms(this.path,t,e,s,r,i,o,n,a),this}arc(t,e,s,r,i,o){return ys(this.path,t,e,s,r,i,o),this}arcTo(t,e,s,r,i){return xs(this.path,t,e,s,r,i),this}drawEllipse(t,e,s,r,i,o,n,a){return vs(this.path,t,e,s,r,i,o,n,a),this}drawArc(t,e,s,r,i,o){return Es(this.path,t,e,s,r,i,o),this}drawPoints(t,e,s){return ws(this.path,t,e,s),this}}const{M:Cs,L:Ts,C:Ps,Q:Os,Z:ks,N:Bs,D:Ds,X:Rs,G:Ms,F:Ls,O:Ss,P:Is,U:As}=Ct,Ws=G.get("PathDrawer"),Ns={drawPathByData(t,e){if(!e)return;let s,r=0,i=e.length;for(;r<i;)switch(s=e[r],s){case Cs:t.moveTo(e[r+1],e[r+2]),r+=3;break;case Ts:t.lineTo(e[r+1],e[r+2]),r+=3;break;case Ps:t.bezierCurveTo(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5],e[r+6]),r+=7;break;case Os:t.quadraticCurveTo(e[r+1],e[r+2],e[r+3],e[r+4]),r+=5;break;case ks:t.closePath(),r+=1;break;case Bs:t.rect(e[r+1],e[r+2],e[r+3],e[r+4]),r+=5;break;case Ds:t.roundRect(e[r+1],e[r+2],e[r+3],e[r+4],[e[r+5],e[r+6],e[r+7],e[r+8]]),r+=9;break;case Rs:t.roundRect(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5]),r+=6;break;case Ms:t.ellipse(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5]*o,e[r+6]*o,e[r+7]*o,e[r+8]),r+=9;break;case Ls:t.ellipse(e[r+1],e[r+2],e[r+3],e[r+4],0,0,n,!1),r+=5;break;case Ss:t.arc(e[r+1],e[r+2],e[r+3],e[r+4]*o,e[r+5]*o,e[r+6]),r+=7;break;case Is:t.arc(e[r+1],e[r+2],e[r+3],0,n,!1),r+=4;break;case As:t.arcTo(e[r+1],e[r+2],e[r+3],e[r+4],e[r+5]),r+=6;break;default:return void Ws.error(`command: ${s} [index:${r}]`,e)}}},{M:Xs,L:Ys,C:Hs,Q:js,Z:Us,N:zs,D:Fs,X:Vs,G:Ks,F:Gs,O:Zs,P:qs,U:Qs}=Ct,{toTwoPointBounds:Js,toTwoPointBoundsByQuadraticCurve:$s,arcTo:tr,arc:er,ellipse:sr}=Zt,{add:rr,copy:ir,addPoint:or,setPoint:nr,addBounds:ar,toBounds:hr}=B,lr=G.get("PathBounds");let dr,cr,ur;const pr={},_r={},gr={},fr={toBounds(t,e){fr.toTwoPointBounds(t,_r),hr(_r,e)},toTwoPointBounds(t,e){if(!t||!t.length)return nr(e,0,0);let s,r,i,o,n,a=0,h=0,l=0;const d=t.length;for(;a<d;)switch(s=t[a],0===a&&(s===Us||s===Hs||s===js?nr(e,h,l):nr(e,t[a+1],t[a+2])),s){case Xs:case Ys:h=t[a+1],l=t[a+2],or(e,h,l),a+=3;break;case Hs:o=t[a+5],n=t[a+6],Js(h,l,t[a+1],t[a+2],t[a+3],t[a+4],o,n,pr),rr(e,pr),h=o,l=n,a+=7;break;case js:r=t[a+1],i=t[a+2],o=t[a+3],n=t[a+4],$s(h,l,r,i,o,n,pr),rr(e,pr),h=o,l=n,a+=5;break;case Us:a+=1;break;case zs:h=t[a+1],l=t[a+2],ar(e,h,l,t[a+3],t[a+4]),a+=5;break;case Fs:case Vs:h=t[a+1],l=t[a+2],ar(e,h,l,t[a+3],t[a+4]),a+=s===Fs?9:6;break;case Ks:sr(null,t[a+1],t[a+2],t[a+3],t[a+4],t[a+5],t[a+6],t[a+7],t[a+8],pr,gr),0===a?ir(e,pr):rr(e,pr),h=gr.x,l=gr.y,a+=9;break;case Gs:h=t[a+1],l=t[a+2],cr=t[a+3],ur=t[a+4],ar(e,h-cr,l-ur,2*cr,2*ur),h+=cr,a+=5;break;case Zs:er(null,t[a+1],t[a+2],t[a+3],t[a+4],t[a+5],t[a+6],pr,gr),0===a?ir(e,pr):rr(e,pr),h=gr.x,l=gr.y,a+=7;break;case qs:h=t[a+1],l=t[a+2],dr=t[a+3],ar(e,h-dr,l-dr,2*dr,2*dr),h+=dr,a+=4;break;case Qs:tr(null,h,l,t[a+1],t[a+2],t[a+3],t[a+4],t[a+5],pr,gr),0===a?ir(e,pr):rr(e,pr),h=gr.x,l=gr.y,a+=6;break;default:return void lr.error(`command: ${s} [index:${a}]`,t)}}},mr={smooth:(t,e,s)=>t};wt.creator=new bs,wt.parse=je.parse,wt.convertToCanvasData=je.toCanvasData;const{drawRoundRect:yr}=Rt;const xr=G.get("TaskProcessor");class vr{constructor(t){this.parallel=!0,this.time=1,this.id=s.create(s.TASK),this.task=t}run(){return ut(this,void 0,void 0,(function*(){try{this.task&&!this.isComplete&&this.parent.running&&(yield this.task())}catch(t){xr.error(t)}}))}complete(){this.isComplete=!0,this.parent=null,this.task=null}cancel(){this.isCancel=!0,this.complete()}}class Er{get total(){return this.list.length+this.delayNumber}get finishedIndex(){return this.isComplete?0:this.index+this.parallelSuccessNumber}get remain(){return this.isComplete?this.total:this.total-this.finishedIndex}get percent(){const{total:t}=this;let e=0,s=0;for(let r=0;r<t;r++)r<=this.finishedIndex?(s+=this.list[r].time,r===this.finishedIndex&&(e=s)):e+=this.list[r].time;return this.isComplete?1:s/e}constructor(t){this.config={parallel:6},this.list=[],this.running=!1,this.isComplete=!0,this.index=0,this.delayNumber=0,t&&at.assign(this.config,t),this.empty()}add(t,e){let s,r,i,o;const n=new vr(t);return n.parent=this,"number"==typeof e?o=e:e&&(r=e.parallel,s=e.start,i=e.time,o=e.delay),i&&(n.time=i),!1===r&&(n.parallel=!1),void 0===o?this.push(n,s):(this.delayNumber++,setTimeout((()=>{this.delayNumber--,this.push(n,s)}),o)),this.isComplete=!1,n}push(t,e){this.list.push(t),!1===e||this.timer||(this.timer=setTimeout((()=>this.start())))}empty(){this.index=0,this.parallelSuccessNumber=0,this.list=[],this.parallelList=[]}start(){this.running||(this.running=!0,this.isComplete=!1,this.run())}pause(){clearTimeout(this.timer),this.timer=null,this.running=!1}resume(){this.start()}skip(){this.index++,this.resume()}stop(){this.isComplete=!0,this.list.forEach((t=>{t.isComplete||t.cancel()})),this.pause(),this.empty()}run(){this.running&&(this.setParallelList(),this.parallelList.length>1?this.runParallelTasks():this.remain?this.runTask():this.onComplete())}runTask(){const t=this.list[this.index];t?t.run().then((()=>{this.onTask(t),this.index++,this.nextTask()})).catch((t=>{this.onError(t)})):this.nextTask()}runParallelTasks(){this.parallelList.forEach((t=>this.runParallelTask(t)))}runParallelTask(t){t.run().then((()=>{this.onTask(t),this.fillParallelTask()})).catch((t=>{this.onParallelError(t)}))}nextTask(){this.total===this.finishedIndex?this.onComplete():this.timer=setTimeout((()=>this.run()))}setParallelList(){let t;this.parallelList=[],this.parallelSuccessNumber=0;let e=this.index+this.config.parallel;e>this.list.length&&(e=this.list.length);for(let s=this.index;s<e&&(t=this.list[s],t.parallel);s++)this.parallelList.push(t)}fillParallelTask(){let t;const e=this.parallelList;this.parallelSuccessNumber++,e.pop();const s=e.length,r=this.finishedIndex+s;if(e.length){if(!this.running)return;r<this.total&&(t=this.list[r],t&&t.parallel&&(e.push(t),this.runParallelTask(t)))}else this.index+=this.parallelSuccessNumber,this.parallelSuccessNumber=0,this.nextTask()}onComplete(){this.stop(),this.config.onComplete&&this.config.onComplete()}onTask(t){t.complete(),this.config.onTask&&this.config.onTask()}onParallelError(t){this.parallelList.forEach((t=>{t.parallel=!1})),this.parallelList.length=0,this.parallelSuccessNumber=0,this.onError(t)}onError(t){this.pause(),this.config.onError&&this.config.onError(t)}destroy(){this.stop()}}const wr={map:{},recycledList:[],tasker:new Er,patternTasker:new Er,get isComplete(){return br.tasker.isComplete&&br.patternTasker.isComplete},get(t){let s=br.map[t.url];return s||(s=e.image(t),br.map[t.url]=s),s.use++,s},recycle(t){t.use--,setTimeout((()=>{t.use||br.recycledList.push(t)}))},clearRecycled(){const t=br.recycledList;t.length&&(t.forEach((t=>{!t.use&&t.url&&(delete br.map[t.url],t.destroy())})),t.length=0)},isPixel:t=>dt.opacityTypes.some((e=>br.isFormat(e,t))),isFormat(t,e){if(e.format===t)return!0;const{url:s}=e;if(s.startsWith("data:")){if(s.startsWith("data:"+dt.mineType(t)))return!0}else if(s.includes("."+t)||s.includes("."+dt.upperCaseTypeMap[t]))return!0;return!1},destroy(){br.map={}}},br=wr,{IMAGE:Cr,create:Tr}=s;class Pr{constructor(t,e){this.bubbles=!1,this.type=t,e&&(this.target=e)}stopDefault(){this.isStopDefault=!0,this.origin&&t.event.stopDefault(this.origin)}stopNow(){this.isStopNow=!0,this.isStop=!0,this.origin&&t.event.stopNow(this.origin)}stop(){this.isStop=!0,this.origin&&t.event.stop(this.origin)}}class Or extends Pr{constructor(t,e,s){super(t,e),this.parent=s,this.child=e}}Or.ADD="child.add",Or.REMOVE="child.remove";class kr extends Pr{constructor(t,e,s,r,i){super(t,e),this.attrName=s,this.oldValue=r,this.newValue=i}}kr.CHANGE="property.change";class Br extends Pr{constructor(t,e){super(t),Object.assign(this,e)}}Br.LOAD="image.load",Br.LOADED="image.loaded",Br.ERROR="image.error";class Dr extends Pr{get bigger(){if(!this.old)return!0;const{width:t,height:e}=this.old;return this.width>=t&&this.height>=e}get smaller(){return!this.bigger}get samePixelRatio(){return!this.old||this.pixelRatio===this.old.pixelRatio}constructor(t,e){"object"==typeof t?(super(Dr.RESIZE),Object.assign(this,t)):super(t),this.old=e}}Dr.RESIZE="resize";class Rr extends Pr{constructor(t,e){super(t),this.data=e}}Rr.REQUEST="watch.request",Rr.DATA="watch.data";class Mr extends Pr{constructor(t,e,s){super(t),e&&(this.data=e,this.times=s)}}Mr.CHECK_UPDATE="layout.check_update",Mr.REQUEST="layout.request",Mr.START="layout.start",Mr.BEFORE="layout.before",Mr.LAYOUT="layout.layout",Mr.AFTER="layout.after",Mr.AGAIN="layout.again",Mr.END="layout.end";class Lr extends Pr{}Lr.FRAME="animate.frame";class Sr extends Pr{constructor(t,e,s,r){super(t),e&&(this.times=e),s&&(this.renderBounds=s,this.renderOptions=r)}}Sr.REQUEST="render.request",Sr.START="render.start",Sr.BEFORE="render.before",Sr.RENDER="render",Sr.AFTER="render.after",Sr.AGAIN="render.again",Sr.END="render.end";class Ir extends Pr{}Ir.START="leafer.start",Ir.BEFORE_READY="leafer.before_ready",Ir.READY="leafer.ready",Ir.AFTER_READY="leafer.after_ready",Ir.VIEW_READY="leafer.view_ready",Ir.VIEW_COMPLETED="leafer.view_completed",Ir.STOP="leafer.stop",Ir.RESTART="leafer.restart",Ir.END="leafer.end";const Ar={},Wr={isHoldSpaceKey:()=>Wr.isHold("Space"),isHold:t=>Ar[t],setDownCode(t){Ar[t]||(Ar[t]=!0)},setUpCode(t){Ar[t]=!1}},Nr={LEFT:1,RIGHT:2,MIDDLE:4,defaultLeft(t){t.buttons||(t.buttons=1)},left:t=>1===t.buttons,right:t=>2===t.buttons,middle:t=>4===t.buttons};class Xr extends Pr{get spaceKey(){return Wr.isHoldSpaceKey()}get left(){return Nr.left(this)}get right(){return Nr.right(this)}get middle(){return Nr.middle(this)}constructor(t){super(t.type),this.bubbles=!0,Object.assign(this,t)}getInner(t){return t||(t=this.current),t.getInnerPoint(this)}getLocal(t){return t||(t=this.current),t.getLocalPoint(this)}static changeName(t,e){rt.changeName(t,e)}}function Yr(t,e,s){Object.defineProperty(t,e,s)}function Hr(t,e){return Object.getOwnPropertyDescriptor(t,e)}function jr(t,e,s,r){const i={get(){return this.__getAttr(e)},set(t){this.__setAttr(e,t)},configurable:!0,enumerable:!0};Yr(t,e,Object.assign(i,r||{})),Kr(t,e,s)}function Ur(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.boxChanged||this.__layout.boxChange(),this.__.around&&(this.__layout.matrixChanged||this.__layout.matrixChange())}})}}const zr=Ur;function Fr(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.strokeChanged||this.__layout.strokeChange()}})}}const Vr=Fr;function Kr(t,e,s){const r=t.__DataProcessor.prototype,i="_"+e,o=function(t){return"set"+t.charAt(0).toUpperCase()+t.slice(1)}(e),n={get(){const t=this[i];return void 0===t?s:t},set(t){this[i]=t},configurable:!0,enumerable:!0};void 0===s?n.get=function(){return this[i]}:"width"===e?n.get=function(){const t=this[i];return void 0===t?this.__naturalWidth||s:t}:"height"===e&&(n.get=function(){const t=this[i];return void 0===t?this.__naturalHeight||s:t});const a=Hr(r,e);a&&a.set&&(n.set=a.set),r[o]&&(n.set=r[o],delete r[o]),Object.defineProperty(r,e,n)}const Gr=new G("rewrite"),Zr=[],qr=["destroy","constructor"];function Qr(t){Zr.length&&(Zr.forEach((e=>{t&&Gr.error(e.name,"需在Class上装饰@rewriteAble()"),e.run()})),Zr.length=0)}function Jr(t,e){return s=>{var r;(t.prototype?(r=t.prototype,Object.getOwnPropertyNames(r)):Object.keys(t)).forEach((r=>{if(!(qr.includes(r)||e&&e.includes(r)))if(t.prototype){Hr(t.prototype,r).writable&&(s.prototype[r]=t.prototype[r])}else s.prototype[r]=t[r]}))}}function $r(){return t=>{rt.register(t)}}setTimeout((()=>Qr(!0))),exports.PointerEvent=class extends Xr{},exports.PointerEvent.POINTER="pointer",exports.PointerEvent.BEFORE_DOWN="pointer.before_down",exports.PointerEvent.BEFORE_MOVE="pointer.before_move",exports.PointerEvent.BEFORE_UP="pointer.before_up",exports.PointerEvent.DOWN="pointer.down",exports.PointerEvent.MOVE="pointer.move",exports.PointerEvent.UP="pointer.up",exports.PointerEvent.OVER="pointer.over",exports.PointerEvent.OUT="pointer.out",exports.PointerEvent.ENTER="pointer.enter",exports.PointerEvent.LEAVE="pointer.leave",exports.PointerEvent.TAP="tap",exports.PointerEvent.DOUBLE_TAP="double_tap",exports.PointerEvent.CLICK="click",exports.PointerEvent.DOUBLE_CLICK="double_click",exports.PointerEvent.LONG_PRESS="long_press",exports.PointerEvent.LONG_TAP="long_tap",exports.PointerEvent.MENU="pointer.menu",exports.PointerEvent=ct([$r()],exports.PointerEvent);const ti={};exports.DragEvent=class extends exports.PointerEvent{static setList(t){this.list=t instanceof nt?t:new nt(t)}static setData(t){this.data=t}getInnerMove(t,e){return t||(t=this.current),this.assignMove(e),t.getInnerPoint(ti,null,!0)}getLocalMove(t,e){return t||(t=this.current),this.assignMove(e),t.getLocalPoint(ti,null,!0)}getInnerTotal(t){return this.getInnerMove(t,!0)}getLocalTotal(t){return this.getLocalMove(t,!0)}assignMove(t){ti.x=t?this.totalX:this.moveX,ti.y=t?this.totalY:this.moveY}},exports.DragEvent.BEFORE_DRAG="drag.before_drag",exports.DragEvent.START="drag.start",exports.DragEvent.DRAG="drag",exports.DragEvent.END="drag.end",exports.DragEvent.OVER="drag.over",exports.DragEvent.OUT="drag.out",exports.DragEvent.ENTER="drag.enter",exports.DragEvent.LEAVE="drag.leave",exports.DragEvent=ct([$r()],exports.DragEvent),exports.DropEvent=class extends exports.PointerEvent{static setList(t){exports.DragEvent.setList(t)}static setData(t){exports.DragEvent.setData(t)}},exports.DropEvent.DROP="drop",exports.DropEvent=ct([$r()],exports.DropEvent),exports.MoveEvent=class extends exports.DragEvent{},exports.MoveEvent.BEFORE_MOVE="move.before_move",exports.MoveEvent.START="move.start",exports.MoveEvent.MOVE="move",exports.MoveEvent.END="move.end",exports.MoveEvent=ct([$r()],exports.MoveEvent),exports.RotateEvent=class extends Xr{},exports.RotateEvent.BEFORE_ROTATE="rotate.before_rotate",exports.RotateEvent.START="rotate.start",exports.RotateEvent.ROTATE="rotate",exports.RotateEvent.END="rotate.end",exports.RotateEvent=ct([$r()],exports.RotateEvent),exports.SwipeEvent=class extends exports.DragEvent{},exports.SwipeEvent.SWIPE="swipe",exports.SwipeEvent.LEFT="swipe.left",exports.SwipeEvent.RIGHT="swipe.right",exports.SwipeEvent.UP="swipe.up",exports.SwipeEvent.DOWN="swipe.down",exports.SwipeEvent=ct([$r()],exports.SwipeEvent),exports.ZoomEvent=class extends Xr{},exports.ZoomEvent.BEFORE_ZOOM="zoom.before_zoom",exports.ZoomEvent.START="zoom.start",exports.ZoomEvent.ZOOM="zoom",exports.ZoomEvent.END="zoom.end",exports.ZoomEvent=ct([$r()],exports.ZoomEvent),exports.KeyEvent=class extends Xr{},exports.KeyEvent.DOWN="key.down",exports.KeyEvent.HOLD="key.hold",exports.KeyEvent.UP="key.up",exports.KeyEvent=ct([$r()],exports.KeyEvent);class ei{constructor(t){this.interaction=t}move(t){const{interaction:e}=this;if(!this.moveData){const{path:s}=e.selector.getByPoint(t,e.hitRadius);t.path=s,this.moveData=Object.assign(Object.assign({},t),{moveX:0,moveY:0}),e.emit(exports.MoveEvent.START,this.moveData)}t.path=this.moveData.path,e.emit(exports.MoveEvent.BEFORE_MOVE,t),e.emit(exports.MoveEvent.MOVE,t),this.transformEndWait()}zoom(t){const{interaction:e}=this;if(!this.zoomData){const{path:s}=e.selector.getByPoint(t,e.hitRadius);t.path=s,this.zoomData=Object.assign(Object.assign({},t),{scale:1}),e.emit(exports.ZoomEvent.START,this.zoomData)}t.path=this.zoomData.path,e.emit(exports.ZoomEvent.BEFORE_ZOOM,t),e.emit(exports.ZoomEvent.ZOOM,t),this.transformEndWait()}rotate(t){const{interaction:e}=this;if(!this.rotateData){const{path:s}=e.selector.getByPoint(t,e.hitRadius);t.path=s,this.rotateData=Object.assign(Object.assign({},t),{rotation:0}),e.emit(exports.RotateEvent.START,this.rotateData)}t.path=this.rotateData.path,e.emit(exports.RotateEvent.BEFORE_ROTATE,t),e.emit(exports.RotateEvent.ROTATE,t),this.transformEndWait()}transformEndWait(){clearTimeout(this.transformTimer),this.transformTimer=setTimeout((()=>{this.transformEnd()}),this.interaction.config.pointer.transformTime)}transformEnd(){this.moveEnd(),this.zoomEnd(),this.rotateEnd()}moveEnd(){this.moveData&&(this.interaction.emit(exports.MoveEvent.END,this.moveData),this.moveData=null)}zoomEnd(){this.zoomData&&(this.interaction.emit(exports.ZoomEvent.END,this.zoomData),this.zoomData=null)}rotateEnd(){this.rotateData&&(this.interaction.emit(exports.RotateEvent.END,this.rotateData),this.rotateData=null)}destroy(){this.zoomData=this.moveData=this.rotateData=null}}const{copy:si,toInnerPoint:ri,scaleOfOuter:ii,rotateOfOuter:oi,skewOfOuter:ni}=f,ai={},hi={updateAllWorldMatrix(t){if(t.__updateWorldMatrix(),t.isBranch){const{children:e}=t;for(let t=0,s=e.length;t<s;t++)di(e[t])}},updateAllWorldOpacity(t){if(t.__updateWorldOpacity(),t.isBranch){const{children:e}=t;for(let t=0,s=e.length;t<s;t++)ci(e[t])}},updateAllChange(t){if(ci(t),t.__updateChange(),t.isBranch){const{children:e}=t;for(let t=0,s=e.length;t<s;t++)ui(e[t])}},worldHittable(t){if(!t.__.hittable)return!1;let{parent:e}=t;for(;e;){if(!e.__.hittable||!e.__.hitChildren)return!1;e=e.parent}return!0},moveWorld(t,e,s){const r={x:e,y:s};t.parent&&ri(t.parent.worldTransform,r,r,!0),li.moveLocal(t,r.x,r.y)},moveLocal(t,e,s=0){t.x+=e,t.y+=s},zoomOfWorld(t,e,s,r){this.zoomOfLocal(t,_i(t,e),s,r)},zoomOfLocal(t,e,s,r=s){si(ai,t.__local),ii(ai,e,s,r),pi(t,ai),t.scaleX*=s,t.scaleY*=r},rotateOfWorld(t,e,s){this.rotateOfLocal(t,_i(t,e),s)},rotateOfLocal(t,e,s){si(ai,t.__local),oi(ai,e,s),pi(t,ai),t.rotation=i.formatRotation(t.rotation+s)},skewOfWorld(t,e,s,r){this.skewOfLocal(t,_i(t,e),s,r)},skewOfLocal(t,e,s,r){si(ai,t.__local),ni(ai,e,s,r),pi(t,ai),t.skewX=i.formatSkew(t.skewX+s),t.skewY=i.formatSkew(t.skewY+r)},drop(t,e){const s={x:t.x,y:t.y};t.localToWorld(s),e.worldToInner(s),t.set(s),e.add(t)}},li=hi,{updateAllWorldMatrix:di,updateAllWorldOpacity:ci,updateAllChange:ui}=li;function pi(t,e){t.x+=e.e-t.__local.e,t.y+=e.f-t.__local.f}function _i(t,e){return t.__layout.checkUpdate(),t.parent?T.tempToInnerOf(e,t.parent.__world):e}const gi={worldBounds:t=>t.__world,localBoxBounds:t=>t.__.isEraser?null:t.__local,localEventBounds:t=>t.__.isEraser?null:t.__layout.localStrokeBounds,localRenderBounds:t=>t.__.isEraser?null:t.__layout.localRenderBounds,maskLocalBoxBounds:t=>t.__.isMask?t.__local:null,maskLocalEventBounds:t=>t.__.isMask?t.__layout.localStrokeBounds:null,maskLocalRenderBounds:t=>t.__.isMask?t.__layout.localRenderBounds:null},fi={sort:(t,e)=>t.__.zIndex===e.__.zIndex?t.__tempNumber-e.__tempNumber:t.__.zIndex-e.__.zIndex,pushAllChildBranch(t,e){if(t.__tempNumber=1,t.__.__childBranchNumber){const{children:s}=t;for(let r=0,i=s.length;r<i;r++)(t=s[r]).isBranch&&(t.__tempNumber=1,e.push(t),mi(t,e))}},pushAllParent(t,e){const{keys:s}=e;if(s)for(;t.parent&&void 0===s[t.parent.innerId];)e.push(t.parent),t=t.parent;else for(;t.parent;)e.push(t.parent),t=t.parent},pushAllBranchStack(t,e){let s=e.length;const{children:r}=t;for(let t=0,s=r.length;t<s;t++)r[t].isBranch&&e.push(r[t]);for(let t=s,r=e.length;t<r;t++)yi(e[t],e)},updateWorldBoundsByBranchStack(t){let e;for(let s=t.length-1;s>-1;s--){e=t[s];for(let t=0,s=e.children.length;t<s;t++)e.children[t].__updateWorldBounds()}e.__updateWorldBounds()}},{pushAllChildBranch:mi,pushAllBranchStack:yi}=fi,xi={run(t){for(let e=0,s=t.length;e<s;e++)t[e]();t.length=0}},vi={getMoveEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:t.x,y:t.y,moveX:e.x,moveY:e.y}),getRotateEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:t.x,y:t.y,rotation:e}),getZoomEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:t.x,y:t.y,scale:e}),getDragEventData:(t,e,s)=>Object.assign(Object.assign({},s),{x:s.x,y:s.y,moveX:s.x-e.x,moveY:s.y-e.y,totalX:s.x-t.x,totalY:s.y-t.y}),getDropEventData:(t,e,s)=>Object.assign(Object.assign({},t),{list:e,data:s}),getSwipeDirection:t=>t<-45&&t>-135?exports.SwipeEvent.UP:t>45&&t<135?exports.SwipeEvent.DOWN:t<=45&&t>=-45?exports.SwipeEvent.RIGHT:exports.SwipeEvent.LEFT,getSwipeEventData:(t,e,s)=>Object.assign(Object.assign({},s),{moveX:e.moveX,moveY:e.moveY,totalX:s.x-t.x,totalY:s.y-t.y,type:Ei.getSwipeDirection(T.getAngle(t,s))}),getBase:t=>({altKey:t.altKey,ctrlKey:t.ctrlKey,shiftKey:t.shiftKey,metaKey:t.metaKey,buttons:void 0===t.buttons?1:t.buttons,origin:t}),pathHasEventType(t,e){const{list:s}=t;for(let t=0,r=s.length;t<r;t++)if(s[t].hasEvent(e))return!0;return!1},filterPathByEventType(t,e){const s=new nt,{list:r}=t;for(let t=0,i=r.length;t<i;t++)r[t].hasEvent(e)&&s.push(r[t]);return s}},Ei=vi,wi=new nt,{getDragEventData:bi,getDropEventData:Ci,getSwipeEventData:Ti}=vi;class Pi{constructor(t){this.interaction=t}setDragData(t){this.dragData=bi(t,t,t)}getList(){return this.dragging&&(exports.DragEvent.list||this.interaction.selector.list||this.dragableList)||wi}checkDrag(t,e){const{interaction:s}=this,{downData:r}=s;if(this.moving&&!Nr.middle(t)&&!Nr.left(t))return void s.pointerCancel();const{dragData:i}=this;if(!this.moving){const o=s.config.move.dragEmpty&&r.target.isLeafer;this.moving=(Nr.middle(t)||s.moveMode||o)&&e,this.moving&&s.emit(exports.MoveEvent.START,i)}this.moving||this.dragStart(t,e);const{path:o,throughPath:n}=r;this.dragData=bi(r,i,t),n&&(this.dragData.throughPath=n),this.dragData.path=o,this.moving?(s.emit(exports.MoveEvent.BEFORE_MOVE,this.dragData),s.emit(exports.MoveEvent.MOVE,this.dragData)):this.dragging&&(this.realDrag(),s.emit(exports.DragEvent.BEFORE_DRAG,this.dragData),s.emit(exports.DragEvent.DRAG,this.dragData))}dragStart(t,e){this.dragging||(this.dragging=Nr.left(t)&&e,this.dragging&&(this.interaction.emit(exports.DragEvent.START,this.dragData),this.getDragableList(this.dragData.path)))}getDragableList(t){let e;for(let s=0,r=t.length;s<r;s++)if(e=t.list[s],e.__.draggable&&e.__.hitSelf){this.dragableList=new nt(e);break}}realDrag(){const{running:t}=this.interaction,e=this.getList();if(e.length&&t){const{moveX:t,moveY:s}=this.dragData;e.forEach((e=>{hi.moveWorld(e,t,s)}))}}dragOverOrOut(t){const{interaction:e}=this,{dragOverPath:s}=this,{path:r}=t;s?r.indexAt(0)!==s.indexAt(0)&&(e.emit(exports.DragEvent.OUT,t,s),e.emit(exports.DragEvent.OVER,t,r)):e.emit(exports.DragEvent.OVER,t,r),this.dragOverPath=r}dragEnterOrLeave(t){const{interaction:e}=this,{dragEnterPath:s}=this,{path:r}=t;e.emit(exports.DragEvent.LEAVE,t,s,r),e.emit(exports.DragEvent.ENTER,t,r,s),this.dragEnterPath=r}dragEnd(t){const{interaction:e}=this,{downData:s}=e;if(!s)return;const{path:r,throughPath:i}=s,o=bi(s,t,t);i&&(o.throughPath=i),o.path=r,this.moving&&e.emit(exports.MoveEvent.END,o),this.dragging&&(e.emit(exports.DragEvent.END,o),this.swipe(t,o),this.drop(t)),this.autoMoveCancel(),this.dragReset()}swipe(t,e){const{interaction:s}=this,{downData:r}=s;if(T.getDistance(r,t)>s.config.pointer.swipeDistance){const t=Ti(r,this.dragData,e);this.interaction.emit(t.type,t)}}drop(t){const e=Ci(t,this.getList(),exports.DragEvent.data);e.path=this.dragEnterPath,this.interaction.emit(exports.DropEvent.DROP,e),this.interaction.emit(exports.DragEvent.LEAVE,t,this.dragEnterPath)}dragReset(){exports.DragEvent.list=exports.DragEvent.data=this.dragableList=this.dragData=this.dragOverPath=this.dragEnterPath=null,this.dragging=this.moving=!1}checkDragOut(t){const{interaction:e}=this;this.autoMoveCancel(),this.dragging&&!e.shrinkCanvasBounds.hitPoint(t)&&this.autoMoveOnDragOut(t)}autoMoveOnDragOut(t){const{interaction:e}=this,{downData:s}=e,{autoDistance:r,dragOut:i}=e.config.move;if(!i||!r)return;const o=e.shrinkCanvasBounds,{x:n,y:a}=o,h=j.right(o),l=j.bottom(o),d=t.x<n?r:h<t.x?-r:0,c=t.y<a?r:l<t.y?-r:0;let u=0,p=0;this.autoMoveTimer=setInterval((()=>{u+=d,p+=c,T.move(s,d,c),T.move(this.dragData,d,c),e.move(Object.assign(Object.assign({},t),{moveX:d,moveY:c,totalX:u,totalY:p})),e.pointerMoveReal(t)}),10)}autoMoveCancel(){this.autoMoveTimer&&(clearInterval(this.autoMoveTimer),this.autoMoveTimer=0)}destroy(){this.dragReset()}}const Oi=["move","zoom","rotate","key"];function ki(t,e,s,r,i){if(Oi.some((t=>e.startsWith(t)))&&t.__.hitChildren&&!Di(t,i)){let o;for(let n=0,a=t.children.length;n<a;n++)o=t.children[n],!s.path.has(o)&&o.__.hittable&&Bi(o,e,s,r,i)}}function Bi(t,e,s,r,i){if(t.destroyed)return!0;if(t.__.hitSelf&&t.hasEvent(e,r)&&!Di(t,i)){s.phase=r?1:t===s.target?2:3;const i=rt.get(e,s);if(t.emitEvent(i,r),i.isStop)return!0}return!1}function Di(t,e){return e&&e.has(t)}const Ri={getData(t){const e=t[0],s=t[1],r=T.getCenter(e.from,s.from),i=T.getCenter(e.to,s.to),o={x:i.x-r.x,y:i.y-r.y},n=T.getDistance(e.from,s.from);return{move:o,scale:T.getDistance(e.to,s.to)/n,angle:T.getChangeAngle(e.from,s.from,e.to,s.to),center:i}}},{pathHasEventType:Mi,getMoveEventData:Li,getZoomEventData:Si,getRotateEventData:Ii}=vi;class Ai{static set(t,e){this.custom[t]=e}static get(t){return this.custom[t]}}Ai.custom={};const{toOuterOf:Wi}=j;class Ni{constructor(t){this.leaf=t,this.renderBounds=this.strokeBounds=this.boxBounds={x:0,y:0,width:0,height:0},this.localRenderBounds=this.localStrokeBounds=t.__local,this.boxChange(),this.matrixChange()}checkUpdate(e){const{leafer:s}=this.leaf;if(s)s.ready?(t.realtimeLayout||e)&&s.watcher.changed&&s.layouter.layout():s.start();else{let e=this.leaf;for(;e.parent;)e=e.parent;t.layout(e)}}getTransform(t){return this.checkUpdate(),"world"===t?this.leaf.__world:this.leaf.__local}getBounds(t,e){if(this.checkUpdate(),"world"===e)switch(t){case"render":return this.leaf.__world;case"content":if(this.contentBounds)return this.getWorldContentBounds();case"margin":case"box":return this.getWorldBoxBounds();case"margin":case"stroke":return this.getWorldStrokeBounds()}else if("inner"===e)switch(t){case"render":return this.renderBounds;case"content":if(this.contentBounds)return this.contentBounds;case"margin":case"box":return this.boxBounds;case"stroke":return this.strokeBounds}else switch(t){case"render":return this.localRenderBounds;case"margin":case"content":case"box":return this.leaf.__local;case"stroke":return this.localStrokeBounds}}getWorldContentBounds(){return this._worldContentBounds||(this._worldContentBounds={}),Wi(this.contentBounds,this.leaf.__world,this._worldContentBounds),this._worldContentBounds}getWorldBoxBounds(){return this._worldBoxBounds||(this._worldBoxBounds={}),Wi(this.boxBounds,this.leaf.__world,this._worldBoxBounds),this._worldBoxBounds}getWorldStrokeBounds(){return this._worldStrokeBounds||(this._worldStrokeBounds={}),Wi(this.strokeBounds,this.leaf.__world,this._worldStrokeBounds),this._worldStrokeBounds}spreadStrokeCancel(){const t=this.renderBounds===this.strokeBounds;this.strokeBounds=this.boxBounds,this.localStrokeBounds=this.leaf.__local,t&&this.spreadRenderCancel()}spreadRenderCancel(){this.renderBounds=this.strokeBounds,this.localRenderBounds=this.localStrokeBounds}spreadStroke(){const{x:t,y:e,width:s,height:r}=this.strokeBounds;this.strokeBounds={x:t,y:e,width:s,height:r},this.localStrokeBounds={x:t,y:e,width:s,height:r},this.renderSpread||this.spreadRenderCancel()}spreadRender(){const{x:t,y:e,width:s,height:r}=this.renderBounds;this.renderBounds={x:t,y:e,width:s,height:r},this.localRenderBounds={x:t,y:e,width:s,height:r}}boxChange(){this.boxChanged=!0,this.localBoxChanged||this.localBoxChange(),this.hitCanvasChanged=!0}localBoxChange(){this.localBoxChanged=!0,this.boundsChanged=!0}strokeChange(){this.strokeChanged=!0,this.strokeSpread||(this.strokeSpread=1),this.boundsChanged=!0,this.hitCanvasChanged=!0}renderChange(){this.renderChanged=!0,this.renderSpread||(this.renderSpread=1),this.boundsChanged=!0}scaleChange(){this.scaleChanged=!0,this._scaleOrRotationChange()}rotationChange(){this.rotationChanged=!0,this.affectRotation=!0,this._scaleOrRotationChange()}_scaleOrRotationChange(){this.affectScaleOrRotation=!0,this.matrixChange()}matrixChange(){this.matrixChanged=!0,this.localBoxChanged||this.localBoxChange()}surfaceChange(){this.surfaceChanged=!0}opacityChange(){this.opacityChanged=!0,this.surfaceChanged||this.surfaceChange()}childrenSortChange(){this.childrenSortChanged||(this.childrenSortChanged=!0,this.leaf.forceUpdate("surface"))}destroy(){}}const Xi={},Yi={on(t,e,s){let r,i,o;s&&("boolean"==typeof s?r=s:(r=s.capture,i=s.once));const n=Hi(this,r,!0),a="string"==typeof t?t.split(" "):t,h=i?{listener:e,once:i}:{listener:e};a.forEach((t=>{t&&(o=n[t],o?-1===o.findIndex((t=>t.listener===e))&&o.push(h):n[t]=[h])}))},off(t,e,s){let r,i,o;s&&(r="boolean"==typeof s?s:s.capture);const n=Hi(this,r);("string"==typeof t?t.split(" "):t).forEach((t=>{t&&(i=n[t],i&&(o=i.findIndex((t=>t.listener===e)),o>-1&&i.splice(o,1),i.length||delete n[t]))}))},on_(t,e,s,r){return s&&(e=e.bind(s)),this.on(t,e,r),{type:t,listener:e,options:r}},off_(t){if(!t)return;const e=t instanceof Array?t:[t];e.forEach((t=>this.off(t.type,t.listener,t.options))),e.length=0},once(t,e,s){this.on(t,e,{once:!0,capture:s})},emit(t,e,s){!e&&rt.has(t)&&(e=rt.get(t,{type:t,target:this,current:this}));const r=Hi(this,s)[t];if(r){let i;for(let o=0,n=r.length;o<n&&(i=r[o],i.listener(e),i.once&&(this.off(t,i.listener,s),o--,n--),!e||!e.isStopNow);o++);}},emitEvent(t,e){t.current=this,this.emit(t.type,t,e)},hasEvent(t,e){const{__bubbleMap:s,__captureMap:r}=this;return void 0===e?!!(r&&r[t]||s&&s[t]):!!(e?r&&r[t]:s&&s[t])}};function Hi(t,e,s){if(e){const{__captureMap:e}=t;return e||(s?t.__captureMap={}:Xi)}{const{__bubbleMap:e}=t;return e||(s?t.__bubbleMap={}:Xi)}}const ji={__setAttr(t,e){if(this.leafer&&this.leafer.created){const s=this.__.__getInput(t);if("object"==typeof e||s!==e){this.__[t]=e;const{CHANGE:r}=kr,i=new kr(r,this,t,s,e);this.hasEvent(r)&&!this.isLeafer&&this.emitEvent(i),this.leafer.emitEvent(i)}}else this.__[t]=e},__getAttr(t){return this.__.__get(t)}},{sin:Ui,cos:zi}=Math,Fi=Object.assign(Object.assign({},f.defaultMatrix),{scaleX:1,scaleY:1,rotation:0,skewX:0,skewY:0}),Vi={x:.5,y:.5},Ki={__updateWorldMatrix(){const t=this.parent?this.parent.__world:Fi,e=this.__local,s=this.__world;if(this.__layout.matrixChanged&&this.__updateLocalMatrix(),this.__layout.affectScaleOrRotation){s.a=e.a*t.a+e.b*t.c,s.b=e.a*t.b+e.b*t.d,s.c=e.c*t.a+e.d*t.c,s.d=e.c*t.b+e.d*t.d,s.e=e.e*t.a+e.f*t.c+t.e,s.f=e.e*t.b+e.f*t.d+t.f;const r=this.__;s.scaleX=t.scaleX*r.scaleX,s.scaleY=t.scaleY*r.scaleY,s.rotation=t.rotation+r.rotation,s.skewX=t.skewX+r.skewX,s.skewY=t.skewY+r.skewY}else s.a=t.a,s.b=t.b,s.c=t.c,s.d=t.d,s.e=e.e*t.a+e.f*t.c+t.e,s.f=e.e*t.b+e.f*t.d+t.f,s.scaleX=t.scaleX,s.scaleY=t.scaleY,s.rotation=t.rotation,s.skewX=t.skewX,s.skewY=t.skewY},__updateLocalMatrix(){const t=this.__local,e=this.__layout;if(e.affectScaleOrRotation){const{scaleX:s,scaleY:r}=this.__;if(e.affectRotation){if(e.scaleChanged||e.rotationChanged){let{rotation:i,skewX:n,skewY:a}=this.__;i||n||a?(i*=o,n&&(n*=o),a&&(a*=o),t.a=s*zi(i+a),t.b=s*Ui(i+a),t.c=r*-Ui(i-n),t.d=r*zi(i-n)):(t.a=s,t.b=0,t.c=0,t.d=r,e.affectRotation=!1),e.scaleChanged=!1,e.rotationChanged=!1}}else e.scaleChanged&&(t.a=s,t.d=r,e.scaleChanged=!1)}const{x:s,y:r,around:i}=this.__;if(t.e=s,t.f=r,i){const{width:e,height:s}=this.__;if(e&&s){const r="center"===i?Vi:i,o=e*r.x,n=s*r.y;t.e-=o*t.a+n*t.c,t.f-=o*t.b+n*t.d}}this.__layout.matrixChanged=!1}},{toOuterOf:Gi,copyAndSpread:Zi}=j,qi={__updateWorldBounds(){var t;if(this.__layout.boundsChanged){let e;const s=this.__layout;s.boxChanged&&(this.__updatePath(),this.__updateRenderPath(),this.__updateBoxBounds(),s.boxChanged=!1,e=!0),s.localBoxChanged&&(this.__updateLocalBoxBounds(),s.localBoxChanged=!1,s.strokeSpread&&(s.strokeChanged=!0),s.renderSpread&&(s.renderChanged=!0),null===(t=this.parent)||void 0===t||t.__layout.boxChange()),s.strokeChanged&&(s.strokeSpread=this.__updateStrokeSpread(),s.strokeSpread?(s.strokeBounds===s.boxBounds&&s.spreadStroke(),this.__updateStrokeBounds(),this.__updateLocalStrokeBounds()):s.spreadStrokeCancel(),s.strokeChanged=!1,s.renderSpread&&(s.renderChanged=!0),this.parent&&this.parent.__layout.strokeChange(),e||(e=!0)),s.renderChanged&&(s.renderSpread=this.__updateRenderSpread(),s.renderSpread?(s.renderBounds!==s.boxBounds&&s.renderBounds!==s.strokeBounds||s.spreadRender(),this.__updateRenderBounds(),this.__updateLocalRenderBounds()):s.spreadRenderCancel(),s.renderChanged=!1,this.parent&&this.parent.__layout.renderChange()),s.boundsChanged=!1,Gi(this.__layout.renderBounds,this.__world,this.__world),e&&this.__onUpdateSize()}else Gi(this.__layout.renderBounds,this.__world,this.__world)},__updateLocalBoxBounds(){Gi(this.__layout.boxBounds,this.__local,this.__local)},__updateLocalStrokeBounds(){Gi(this.__layout.strokeBounds,this.__local,this.__layout.localStrokeBounds)},__updateLocalRenderBounds(){Gi(this.__layout.renderBounds,this.__local,this.__layout.localRenderBounds)},__updateBoxBounds(){const t=this.__layout.boxBounds,{width:e,height:s}=this.__;t.x=0,t.y=0,t.width=e,t.height=s},__updateNaturalSize(){const{__:t,__layout:e}=this;t.__naturalWidth=e.boxBounds.width,t.__naturalHeight=e.boxBounds.height,this.around&&(e.matrixChanged=!0,this.__updateWorldMatrix())},__updateStrokeBounds(){Zi(this.__layout.strokeBounds,this.__layout.boxBounds,this.__layout.strokeSpread)},__updateRenderBounds(){Zi(this.__layout.renderBounds,this.__layout.strokeBounds,this.__layout.renderSpread)}},{toInnerRadiusPointOf:Qi,copy:Ji,setRadius:$i}=T,to={},eo={__hitWorld(t){return!this.__layout.hitCanvasChanged&&this.__hitCanvas||(this.__updateHitCanvas(),this.__layout.hitCanvasChanged=!1),this.__.hitRadius&&(Ji(to,t),$i(t=to,this.__.hitRadius)),Qi(t,this.__world,to),this.__hit(to)},__drawHitPath(t){this.__drawRenderPath(t)}},so={__render(t,e){if(this.__worldOpacity)if(t.setWorld(this.__world,e.matrix),t.opacity=this.__worldOpacity,this.__.__single){const s=t.getSameCanvas(!0);this.__draw(s,e);const r=this.__.isEraser?"destination-out":this.__.blendMode;this.__hasMirror||e.matrix?t.copyWorldByReset(s,null,null,r):t.copyWorldToInner(s,this.__world,this.__layout.renderBounds,r),s.recycle()}else this.__draw(t,e)},__updateWorldOpacity(){this.__worldOpacity=this.__.visible?this.parent?this.parent.__worldOpacity*this.__.opacity:this.__.opacity:0,this.__layout.opacityChanged&&(this.__layout.opacityChanged=!1)}},ro={__updateEraser(t){this.__hasEraser=!!t||this.children.some((t=>t.__.isEraser))},__updateMask(t){this.__hasMask=!!t||this.children.some((t=>t.__.isMask))},__renderMask(t,e,s){e.resetTransform(),e.useMask(s),t.resetTransform(),t.opacity=this.__worldOpacity,t.copyWorld(e)},__removeMask(t){if(t)t.isMask=!1,this.remove(t);else{const{children:e}=this;for(let s=0,r=e.length;s<r;s++)(t=e[s]).isMask&&(this.__removeMask(t),r--,s--)}}},io={__updateChange(){const{__layout:t}=this;t.childrenSortChanged&&(this.__updateSortChildren(),t.childrenSortChanged=!1),this.__.__checkSingle()},__render(t,e){if(this.__worldOpacity)if(this.__.__single){t.resetTransform();const s=t.getSameCanvas();this.__renderBranch(s,e),t.opacity=this.__worldOpacity;const r=this.__.isEraser?"destination-out":this.__.blendMode;this.__hasMirror||e.matrix?t.copyWorld(s,null,null,r):t.copyWorld(s,this.__world,this.__world,r),s.recycle()}else this.__renderBranch(t,e)},__renderBranch(t,e){let s;const{children:r}=this;if(this.__hasMask&&r.length>1){let i,o=t.getSameCanvas(),n=t.getSameCanvas();for(let a=0,h=r.length;a<h;a++)s=r[a],s.isMask?(i?(this.__renderMask(t,n,o),o.clear(),n.clear()):i=!0,s.__render(o,e)):s.__render(n,e);this.__renderMask(t,n,o),o.recycle(),n.recycle()}else{const{bounds:i,hideBounds:o}=e;for(let n=0,a=r.length;n<a;n++)s=r[n],i&&!i.hit(s.__world,e.matrix)||o&&o.includes(s.__world,e.matrix)||s.__render(t,e)}}},{LEAF:oo,create:no}=s,{toInnerPoint:ao,toOuterPoint:ho}=f,{tempToOuterOf:lo,copy:co}=T,{moveLocal:uo,zoomOfLocal:po,rotateOfLocal:_o,skewOfLocal:go}=hi;exports.Leaf=class{get tag(){return this.__tag}set tag(t){}get __tag(){return"Leaf"}get innerName(){return this.__.name||this.tag+this.innerId}get __DataProcessor(){return lt}get __LayoutProcessor(){return Ni}get worldTransform(){return this.__layout.getTransform("world")}get localTransform(){return this.__layout.getTransform("local")}get boxBounds(){return this.getBounds("box","inner")}get worldBoxBounds(){return this.getBounds("box")}get worldStrokeBounds(){return this.getBounds("stroke")}get worldRenderBounds(){return this.getBounds("render")}get worldOpacity(){return this.__layout.checkUpdate(),this.__worldOpacity}get resizeable(){return!0}get __hasMirror(){return this.__world.scaleX<0||this.__world.scaleY<0}get __onlyHitMask(){return this.__hasMask&&!this.__.hitChildren}get __ignoreHitWorld(){return(this.__hasMask||this.__hasEraser)&&this.__.hitChildren}constructor(t){this.innerId=no(oo),this.reset(t)}reset(t){this.__world={a:1,b:0,c:0,d:1,e:0,f:0,x:0,y:0,width:0,height:0,scaleX:1,scaleY:1,rotation:0,skewX:0,skewY:0},this.__local={a:1,b:0,c:0,d:1,e:0,f:0,x:0,y:0,width:0,height:0},this.__worldOpacity=1,this.__=new this.__DataProcessor(this),this.__layout=new this.__LayoutProcessor(this),this.__level&&this.resetCustom(),t&&(t.children?this.set(t):Object.assign(this,t))}resetCustom(){this.__hasMask=this.__hasEraser=null,this.forceUpdate()}waitParent(t){this.parent?t():this.__parentWait?this.__parentWait.push(t):this.__parentWait=[t]}waitLeafer(t){this.leafer?t():this.__leaferWait?this.__leaferWait.push(t):this.__leaferWait=[t]}nextRender(t){this.leafer?this.leafer.nextRender(t):this.waitLeafer((()=>this.leafer.nextRender(t)))}__bindLeafer(t){if(this.isLeafer&&null!==t&&(t=this),this.leafer&&!t&&this.leafer.leafs--,this.leafer=t,t&&(t.leafs++,this.__level=this.parent?this.parent.__level+1:1,this.__leaferWait&&xi.run(this.__leaferWait)),this.isBranch){const{children:e}=this;for(let s=0,r=e.length;s<r;s++)e[s].__bindLeafer(t)}}set(t){}toJSON(){return this.__.__getInputData()}toString(){return JSON.stringify(this.toJSON())}__setAttr(t,e){}__getAttr(t){}forceUpdate(t){void 0===t?t="width":"surface"===t&&(t="blendMode");const e=this.__.__getInput(t);this.__[t]=void 0===e?null:void 0,this[t]=e}__updateWorldMatrix(){}__updateLocalMatrix(){}__updateWorldBounds(){}__updateLocalBoxBounds(){}__updateLocalStrokeBounds(){}__updateLocalRenderBounds(){}__updateBoxBounds(){}__updateStrokeBounds(){}__updateRenderBounds(){}__updateNaturalSize(){}__updateStrokeSpread(){return 0}__updateRenderSpread(){return 0}__onUpdateSize(){}__updateEraser(t){}__updateMask(t){}__renderMask(t,e,s){}__removeMask(t){}getWorld(t){return this.__layout.checkUpdate(),"x"===t?this.__world.e:"y"===t?this.__world.f:this.__world[t]}getBounds(t,e="world"){return this.__layout.getBounds(t,e)}worldToLocal(t,e,s,r){this.parent?this.parent.worldToInner(t,e,s,r):e&&co(e,t)}localToWorld(t,e,s,r){this.parent?this.parent.innerToWorld(t,e,s,r):e&&co(e,t)}worldToInner(t,e,s,r){r&&(r.innerToWorld(t,e,s),t=e||t),ao(this.worldTransform,t,e,s)}innerToWorld(t,e,s,r){ho(this.worldTransform,t,e,s),r&&r.worldToInner(e||t,null,s)}getInnerPoint(t,e,s,r){const i=r?t:{};return this.worldToInner(t,i,s,e),i}getInnerPointByLocal(t,e,s,r){return this.getInnerPoint(t,this.parent,s,r)}getLocalPoint(t,e,s,r){const i=r?t:{};return this.worldToLocal(t,i,s,e),i}getLocalPointByInner(t,e,s,r){return this.getWorldPoint(t,this.parent,s,r)}getWorldPoint(t,e,s,r){const i=r?t:{};return this.innerToWorld(t,i,s,e),i}getWorldPointByLocal(t,e,s,r){const i=r?t:{};return this.localToWorld(t,i,s,e),i}move(t,e){uo(this,t,e)}scaleOf(t,e,s){po(this,lo(t,this.localTransform),e,s)}rotateOf(t,e){_o(this,lo(t,this.localTransform),e)}skewOf(t,e,s){go(this,lo(t,this.localTransform),e,s)}__hitWorld(t){return!0}__hit(t){return!0}__drawHitPath(t){}__updateHitCanvas(){}__render(t,e){}__drawFast(t,e){}__draw(t,e){}__renderShape(t,e){}__updateWorldOpacity(){}__updateChange(){}__drawPath(t){}__drawRenderPath(t){}__updatePath(){}__updateRenderPath(){}__updateSortChildren(){}add(t,e){}remove(t,e){this.parent&&this.parent.remove(this,e)}on(t,e,s){}off(t,e,s){}on_(t,e,s,r){}off_(t){}once(t,e,s){}emit(t,e,s){}emitEvent(t,e){}hasEvent(t,e){return!1}destroy(){this.destroyed||(this.parent&&this.remove(),this.children&&this.removeAll(!0),this.__.destroy(),this.__layout.destroy(),this.__captureMap=this.__bubbleMap=this.__parentWait=this.__leaferWait=null,this.destroyed=!0)}},exports.Leaf=ct([Jr(ji),Jr(Ki),Jr(qi),Jr(eo),Jr(Yi),Jr(so)],exports.Leaf);const{setByListWithHandle:fo}=j,{sort:mo}=fi,{localBoxBounds:yo,localEventBounds:xo,localRenderBounds:vo,maskLocalBoxBounds:Eo,maskLocalEventBounds:wo,maskLocalRenderBounds:bo}=gi;exports.Branch=class extends exports.Leaf{constructor(){super(),this.isBranch=!0,this.children=[]}__updateStrokeSpread(){const{children:t}=this;for(let e=0,s=t.length;e<s;e++)if(t[e].__layout.strokeSpread)return 1;return 0}__updateRenderSpread(){const{children:t}=this;for(let e=0,s=t.length;e<s;e++)if(t[e].__layout.renderSpread)return 1;return 0}__updateBoxBounds(){fo(this.__layout.boxBounds,this.children,this.__hasMask?Eo:yo)}__updateStrokeBounds(){fo(this.__layout.strokeBounds,this.children,this.__hasMask?wo:xo)}__updateRenderBounds(){fo(this.__layout.renderBounds,this.children,this.__hasMask?bo:vo)}__updateSortChildren(){let t;const{children:e}=this;if(e.length>1){for(let s=0,r=e.length;s<r;s++)e[s].__tempNumber=s,e[s].__.zIndex&&(t=!0);e.sort(mo),this.__layout.affectChildrenSort=t}}add(t,e){t.parent&&t.parent.remove(t),t.parent=this,void 0===e?this.children.push(t):this.children.splice(e,0,t),t.isBranch&&(this.__.__childBranchNumber=(this.__.__childBranchNumber||0)+1),t.__layout.boundsChanged||t.__layout.matrixChange(),t.__parentWait&&xi.run(t.__parentWait),this.leafer&&(t.__bindLeafer(this.leafer),this.leafer.created&&this.__emitChildEvent(Or.ADD,t)),this.__layout.affectChildrenSort&&this.__layout.childrenSortChange()}addMany(...t){t.forEach((t=>this.add(t)))}remove(t,e){if(t){const s=this.children.indexOf(t);s>-1&&(this.children.splice(s,1),t.isBranch&&(this.__.__childBranchNumber=(this.__.__childBranchNumber||1)-1),this.__preRemove(),this.__realRemoveChild(t),e&&t.destroy())}else void 0===t&&super.remove(null,e)}removeAll(t){const{children:e}=this;e.length&&(this.children=[],this.__preRemove(),this.__.__childBranchNumber=0,e.forEach((e=>{this.__realRemoveChild(e),t&&e.destroy()})))}__preRemove(){this.__hasMask&&this.__updateMask(),this.__hasEraser&&this.__updateEraser(),this.__layout.boxChange(),this.__layout.affectChildrenSort&&this.__layout.childrenSortChange()}__realRemoveChild(t){t.parent=null,this.leafer&&(t.__bindLeafer(null),this.leafer.created&&(this.__emitChildEvent(Or.REMOVE,t),this.leafer.hitCanvasManager&&this.leafer.hitCanvasManager.clear()))}__emitChildEvent(t,e){const s=new Or(t,e,this);e.hasEvent(t)&&e.emitEvent(s),this.hasEvent(t)&&!this.isLeafer&&this.emitEvent(s),this.leafer.emitEvent(s)}},exports.Branch=ct([Jr(io),Jr(ro)],exports.Branch);const Co=G.get("plugin"),To={power:{},list:[],onLeafer(t){To.list.forEach((e=>{e.onLeafer&&e.onLeafer(t)}))}};exports.AnimateEvent=Lr,exports.AutoBounds=class{constructor(t,e,s,r,i,o){"object"==typeof t?this.copy(t):this.set(t,e,s,r,i,o)}set(t=0,e=0,s=0,r=0,i=0,o=0){this.top=t,this.right=e,this.bottom=s,this.left=r,this.width=i,this.height=o}copy(t){const{top:e,right:s,bottom:r,left:i,width:o,height:n}=t;this.set(e,s,r,i,o,n)}getBoundsFrom(t){const{top:e,right:s,bottom:r,left:i,width:o,height:n}=this;return new V(i,e,o||t.width-i-s,n||t.height-e-r)}},exports.BezierHelper=Zt,exports.Bounds=V,exports.BoundsHelper=j,exports.BranchHelper=fi,exports.BranchRender=io,exports.CanvasManager=ot,exports.ChildEvent=Or,exports.Creator=e,exports.Cursor=Ai,exports.DataHelper=at,exports.Debug=G,exports.EllipseHelper=ie,exports.Event=Pr,exports.EventCreator=rt,exports.FileHelper=dt,exports.HitCanvasManager=class extends ot{constructor(){super(...arguments),this.pathTypeList=new nt,this.imageTypeList=new nt}getImageType(t,s){return this.imageTypeList.push(t),e.hitCanvas(s)}getPathType(t){return this.pathTypeList.push(t),e.hitCanvas()}clearImageType(){this.__clearLeafList(this.imageTypeList)}clearPathType(){this.__clearLeafList(this.pathTypeList)}__clearLeafList(t){t.length&&(t.forEach((t=>{t.__hitCanvas&&(t.__hitCanvas.destroy(),t.__hitCanvas=null)})),t.reset())}clear(){this.clearPathType(),this.clearImageType()}},exports.ImageEvent=Br,exports.ImageManager=wr,exports.IncrementId=s,exports.InteractionBase=class{get dragging(){return this.dragger.dragging}get moveMode(){return Wr.isHoldSpaceKey()&&this.config.move.holdSpaceKey||this.downData&&Nr.middle(this.downData)}get hitRadius(){return this.config.pointer.hitRadius}constructor(e,s,r,i){this.config={wheel:{zoomMode:!1,zoomSpeed:.5,moveSpeed:.5,rotateSpeed:.5,delta:"Windows"===t.os?{x:37.5,y:37.5}:{x:20,y:8},preventDefault:!0},pointer:{hitRadius:5,through:!1,tapTime:120,longPressTime:800,transformTime:500,dragHover:!0,dragDistance:2,swipeDistance:20,ignoreMove:!1},cursor:{}},this.tapCount=0,this.downKeyMap={},this.target=e,this.canvas=s,this.selector=r,this.defaultPath=new nt(e),this.transformer=new ei(this),this.dragger=new Pi(this),i&&(this.config=at.default(i,this.config)),this.__listenEvents()}start(){this.running=!0}stop(){this.running=!1}receive(t){}pointerDown(t,e){t||(t=this.hoverData),t&&(Nr.defaultLeft(t),this.emit(exports.PointerEvent.BEFORE_DOWN,t,this.defaultPath),this.updateDownData(t),e&&(t.path=this.defaultPath),this.emit(exports.PointerEvent.DOWN,t),this.downTime=Date.now(),this.dragger.setDragData(t),Nr.left(t)&&(this.tapWait(),this.longPressWait(t)),this.updateCursor(t))}pointerMove(t){if(t||(t=this.hoverData),!t)return;this.downData&&Nr.defaultLeft(t);const e=this.canvas.bounds.hitPoint(t);(e||this.downData)&&(e&&!this.downData&&Nr.left(t)&&this.pointerDown(t,!0),this.pointerMoveReal(t),this.dragger.checkDragOut(t))}pointerMoveReal(t){if(this.emit(exports.PointerEvent.BEFORE_MOVE,t,this.defaultPath),this.downData){const e=T.getDistance(this.downData,t)>this.config.pointer.dragDistance;this.waitTap&&e&&this.pointerWaitCancel(),this.dragger.checkDrag(t,e)}this.dragger.moving||this.config.pointer.ignoreMove||(this.updateHoverData(t),this.emit(exports.PointerEvent.MOVE,t),this.pointerOverOrOut(t),this.pointerEnterOrLeave(t),this.dragger.dragging&&(this.dragger.dragOverOrOut(t),this.dragger.dragEnterOrLeave(t)),this.updateCursor(t))}pointerUp(t){t||(t=this.downData),this.downData&&(Nr.defaultLeft(t),this.emit(exports.PointerEvent.BEFORE_UP,t,this.defaultPath),this.findPath(t),this.emit(exports.PointerEvent.UP,t),this.emit(exports.PointerEvent.UP,this.downData,void 0,t.path),this.touchLeave(t),this.tap(t),this.dragger.dragEnd(t),this.downData=null,this.updateCursor(t))}pointerCancel(){this.pointerUp(this.dragger.dragData)}multiTouch(t,e){const{move:s,angle:r,scale:i,center:o}=Ri.getData(e);this.rotate(Ii(o,r,t)),this.zoom(Si(o,i,t)),this.move(Li(o,s,t))}menu(t){this.findPath(t),this.emit(exports.PointerEvent.MENU,t)}move(t){this.transformer.move(t)}zoom(t){this.transformer.zoom(t)}rotate(t){this.transformer.rotate(t)}transformEnd(){this.transformer.transformEnd()}keyDown(t){const{code:e}=t;this.downKeyMap[e]||(this.downKeyMap[e]=!0,Wr.setDownCode(e),this.emit(exports.KeyEvent.HOLD,t,this.defaultPath),this.moveMode&&this.updateCursor()),this.emit(exports.KeyEvent.DOWN,t,this.defaultPath)}keyUp(t){const{code:e}=t;this.downKeyMap[e]=!1,Wr.setUpCode(e),this.emit(exports.KeyEvent.UP,t,this.defaultPath),"grab"===this.cursor&&this.updateCursor()}pointerOverOrOut(t){if(this.dragger.moving)return;if(this.dragging&&!this.config.pointer.dragHover)return;const{path:e}=t;this.overPath?e.indexAt(0)!==this.overPath.indexAt(0)&&(this.emit(exports.PointerEvent.OUT,t,this.overPath),this.emit(exports.PointerEvent.OVER,t,e)):this.emit(exports.PointerEvent.OVER,t,e),this.overPath=e}pointerEnterOrLeave(t){if(this.dragger.moving)return;if(this.dragging&&!this.config.pointer.dragHover)return;const{path:e}=t;this.emit(exports.PointerEvent.LEAVE,t,this.enterPath,e),this.emit(exports.PointerEvent.ENTER,t,e,this.enterPath),this.enterPath=e}touchLeave(t){"touch"===t.pointerType&&this.enterPath&&(this.emit(exports.PointerEvent.LEAVE,t),this.dragger.dragging&&this.emit(exports.DropEvent.LEAVE,t))}tap(t){const{pointer:e}=this.config,s=this.longTap(t);if(!e.tapMore&&s)return;if(!this.waitTap)return;e.tapMore&&this.emitTap(t);const r=Date.now()-this.downTime,i=[exports.PointerEvent.DOUBLE_TAP,exports.PointerEvent.DOUBLE_CLICK].some((e=>Mi(t.path,e)));r<e.tapTime+50&&i?(this.tapCount++,2===this.tapCount?(this.tapWaitCancel(),this.emitDoubleTap(t)):(clearTimeout(this.tapTimer),this.tapTimer=setTimeout((()=>{e.tapMore||(this.tapWaitCancel(),this.emitTap(t))}),e.tapTime))):e.tapMore||(this.tapWaitCancel(),this.emitTap(t))}findPath(t,e){const{hitRadius:s,through:r}=this.config.pointer,i=this.selector.getByPoint(t,s,e||{through:r});return i.throughPath&&(t.throughPath=i.throughPath),t.path=i.path,i.path}isDrag(t){return this.dragger.getList().has(t)}updateDownData(t){t||(t=this.downData),t&&(this.findPath(t),this.downData=t)}updateHoverData(t){t||(t=this.hoverData),t&&(this.findPath(t,{exclude:this.dragger.getList(),name:exports.PointerEvent.MOVE}),this.hoverData=t)}updateCursor(t){if(this.config.cursor.stop)return;if(t||(this.updateHoverData(),t=this.hoverData),this.dragger.moving)return this.setCursor("grabbing");if(this.moveMode)return this.setCursor(this.downData?"grabbing":"grab");if(!t||this.dragger.dragging)return;let e,s;const{path:r}=t;for(let t=0,i=r.length;t<i&&(e=r.list[t],s=e.cursor,!s);t++);this.setCursor(s)}setCursor(t){this.cursor=t,this.canvas.setCursor(t)}emitTap(t){this.emit(exports.PointerEvent.TAP,t),this.emit(exports.PointerEvent.CLICK,t)}emitDoubleTap(t){this.emit(exports.PointerEvent.DOUBLE_TAP,t),this.emit(exports.PointerEvent.DOUBLE_CLICK,t)}pointerWaitCancel(){this.tapWaitCancel(),this.longPressWaitCancel()}tapWait(){clearTimeout(this.tapTimer),this.waitTap=!0}tapWaitCancel(){clearTimeout(this.tapTimer),this.waitTap=!1,this.tapCount=0}longPressWait(t){clearTimeout(this.longPressTimer),this.longPressTimer=setTimeout((()=>{this.longPressed=!0,this.emit(exports.PointerEvent.LONG_PRESS,t)}),this.config.pointer.longPressTime)}longTap(t){let e;return this.longPressed&&(this.emit(exports.PointerEvent.LONG_TAP,t),Mi(t.path,exports.PointerEvent.LONG_TAP)&&(e=!0)),this.longPressWaitCancel(),e}longPressWaitCancel(){clearTimeout(this.longPressTimer),this.longPressed=!1}__onResize(){this.shrinkCanvasBounds=new V(this.canvas.bounds),this.shrinkCanvasBounds.spread(-2)}__listenEvents(){const{target:t}=this;this.__eventIds=[t.on_(Dr.RESIZE,this.__onResize,this)],t.once(Ir.READY,(()=>this.__onResize()))}__removeListenEvents(){this.target.off_(this.__eventIds),this.__eventIds.length=0}emit(t,e,s,r){this.running&&function(t,e,s,r){if(!s&&!e.path)return;let i;e.type=t,s?e=Object.assign(Object.assign({},e),{path:s}):s=e.path,e.target=s.indexAt(0);for(let o=s.length-1;o>-1;o--){if(i=s.list[o],Bi(i,t,e,!0,r))return;i.isApp&&ki(i,t,e,!0,r)}for(let o=0,n=s.length;o<n;o++)if(i=s.list[o],i.isApp&&ki(i,t,e,!1,r),Bi(i,t,e,!1,r))return}(t,e,s,r)}destroy(){this.__eventIds.length&&(this.stop(),this.__removeListenEvents(),this.dragger.destroy(),this.transformer.destroy(),this.downData=this.overPath=this.enterPath=null)}},exports.InteractionHelper=vi,exports.Keyboard=Wr,exports.LayoutEvent=Mr,exports.LeafBounds=qi,exports.LeafBoundsHelper=gi,exports.LeafData=lt,exports.LeafDataProxy=ji,exports.LeafEventer=Yi,exports.LeafHelper=hi,exports.LeafHit=eo,exports.LeafLayout=Ni,exports.LeafLevelList=class{get length(){return this._length}constructor(t){this._length=0,this.reset(),t&&(t instanceof Array?this.pushList(t):this.push(t))}has(t){return void 0!==this.keys[t.innerId]}without(t){return void 0===this.keys[t.innerId]}sort(t){const{levels:e}=this;t?e.sort(((t,e)=>e-t)):e.sort(((t,e)=>t-e))}pushList(t){t.forEach((t=>{this.push(t)}))}push(t){const{keys:e,levelMap:s}=this;e[t.innerId]||(e[t.innerId]=1,s[t.__level]?s[t.__level].push(t):(s[t.__level]=[t],this.levels.push(t.__level)),this._length++)}forEach(t){let e;this.levels.forEach((s=>{e=this.levelMap[s];for(let s=0,r=e.length;s<r;s++)t(e[s])}))}reset(){this.levelMap={},this.keys={},this.levels=[],this._length=0}destroy(){this.levelMap=null}},exports.LeafList=nt,exports.LeafMask=ro,exports.LeafMatrix=Ki,exports.LeafRender=so,exports.LeaferCanvasBase=class extends mt{get pixelWidth(){return this.width*this.pixelRatio}get pixelHeight(){return this.height*this.pixelRatio}get allowBackgroundColor(){return this.view&&this.parentView}constructor(e,r){super(),this.worldTransform={},e||(e=xt),e.pixelRatio||(e.pixelRatio=t.devicePixelRatio),this.manager=r,this.innerId=s.create(s.CNAVAS);const{width:i,height:o,pixelRatio:n}=e;this.autoLayout=!i||!o,this.pixelRatio=n,this.config=e,this.init()}init(){}__createContext(){this.context=this.view.getContext("2d"),this.__bindContext()}toBlob(e,s){return new Promise((r=>{const i=this.getSaveCanvas(e);t.origin.canvasToBolb(i.view,e,s).then((t=>{i.recycle(),r(t)})).catch((t=>{vt.error(t),r(null)}))}))}toDataURL(e,s){const r=this.getSaveCanvas(e),i=t.origin.canvasToDataURL(r.view,e,s);return r.recycle(),i}saveAs(e,s){return new Promise((r=>{const i=this.getSaveCanvas(dt.fileType(e));t.origin.canvasSaveAs(i.view,e,s).then((()=>{i.recycle(),r(!0)})).catch((t=>{vt.error(t),r(!1)}))}))}getSaveCanvas(t){const{backgroundColor:e,bounds:s}=this,r=this.getSameCanvas();return["jpg","jpeg"].includes(t)&&r.fillWorld(s,"#FFFFFF"),e&&r.fillWorld(s,e),r.copyWorld(this),r}resize(t){if(this.isSameSize(t))return;let e;this.context&&!this.unreal&&this.width&&(e=this.getSameCanvas(),e.copyWorld(this)),at.copyAttrs(this,t,Et),this.bounds=new V(0,0,this.width,this.height),this.pixelRatio||(this.pixelRatio=1),this.unreal||(this.updateViewSize(),this.smooth=this.config.smooth),this.updateClientBounds(),this.context&&!this.unreal&&e&&(this.clearWorld(e.bounds),this.copyWorld(e),e.recycle())}updateViewSize(){}updateClientBounds(){}startAutoLayout(t,e){}stopAutoLayout(){}setCursor(t){}setWorld(t,e,s){const{pixelRatio:r}=this,i=this.worldTransform;if(e)if(s)this.setTransform(i.a=t.a*r,i.b=t.b*r,i.c=t.c*r,i.d=t.d*r,i.e=(t.e+e.e)*r,i.f=(t.f+e.f)*r);else{const{a:s,b:o,c:n,d:a,e:h,f:l}=e;this.setTransform(i.a=(t.a*s+t.b*n)*r,i.b=(t.a*o+t.b*a)*r,i.c=(t.c*s+t.d*n)*r,i.d=(t.c*o+t.d*a)*r,i.e=(t.e*s+t.f*n+h)*r,i.f=(t.e*o+t.f*a+l)*r)}else this.setTransform(i.a=t.a*r,i.b=t.b*r,i.c=t.c*r,i.d=t.d*r,i.e=t.e*r,i.f=t.f*r)}useWorldTransform(t){t&&(this.worldTransform=t);const e=this.worldTransform;e&&this.setTransform(e.a,e.b,e.c,e.d,e.e,e.f)}setStroke(t,e,s){e&&(this.strokeWidth=e),t&&(this.strokeStyle=t),s&&this.setStrokeOptions(s)}setStrokeOptions(t){this.strokeCap=t.strokeCap,this.strokeJoin=t.strokeJoin,this.dashPattern=t.dashPattern,this.dashOffset=t.dashOffset,this.miterLimit=t.miterLimit}saveBlendMode(t){this.savedBlendMode=this.blendMode,this.blendMode=t}restoreBlendMode(){this.blendMode=this.savedBlendMode}hitFill(t,e){return e?this.context.isPointInPath(t.x,t.y,e):this.context.isPointInPath(t.x,t.y)}hitStroke(t,e){return this.strokeWidth=e,this.context.isPointInStroke(t.x,t.y)}setWorldShadow(t,e,s,r){const{pixelRatio:i}=this;this.shadowOffsetX=t*i,this.shadowOffsetY=e*i,this.shadowBlur=s*i,this.shadowColor=r||"black"}setWorldBlur(t){const{pixelRatio:e}=this;this.filter=`blur(${t*e}px)`}copyWorld(t,e,s,r){if(r&&(this.blendMode=r),e){const{pixelRatio:r}=this;s||(s=e),this.drawImage(t.view,e.x*r,e.y*r,e.width*r,e.height*r,s.x*r,s.y*r,s.width*r,s.height*r)}else this.drawImage(t.view,0,0);r&&(this.blendMode="source-over")}copyWorldToInner(t,e,s,r){if(r&&(this.blendMode=r),e.b||e.c)this.save(),this.resetTransform(),this.copyWorld(t,e,j.tempToOuterOf(s,e)),this.restore();else{const{pixelRatio:r}=this;this.drawImage(t.view,e.x*r,e.y*r,e.width*r,e.height*r,s.x,s.y,s.width,s.height)}r&&(this.blendMode="source-over")}copyWorldByReset(t,e,s,r){this.resetTransform(),this.copyWorld(t,e,s,r),this.useWorldTransform()}useMask(t,e,s){this.copyWorld(t,e,s,"destination-in")}useEraser(t,e,s){this.copyWorld(t,e,s,"destination-out")}fillWorld(t,e,s){s&&(this.blendMode=s),this.fillStyle=e,yt.copy(t).scale(this.pixelRatio),this.fillRect(yt.x,yt.y,yt.width,yt.height),s&&(this.blendMode="source-over")}strokeWorld(t,e,s){s&&(this.blendMode=s),this.strokeStyle=e,yt.copy(t).scale(this.pixelRatio),this.strokeRect(yt.x,yt.y,yt.width,yt.height),s&&(this.blendMode="source-over")}clearWorld(t,e){yt.copy(t).scale(this.pixelRatio),e&&yt.ceil(),this.clearRect(yt.x,yt.y,yt.width,yt.height)}clipWorld(t,e){this.beginPath(),yt.copy(t).scale(this.pixelRatio),e&&yt.ceil(),this.rect(yt.x,yt.y,yt.width,yt.height),this.clip()}clear(){const{pixelRatio:t}=this;this.clearRect(0,0,this.width*t,this.height*t)}isSameSize(t){return this.width===t.width&&this.height===t.height&&this.pixelRatio===t.pixelRatio}getSameCanvas(t){const{width:s,height:r,pixelRatio:i}=this,o={width:s,height:r,pixelRatio:i},n=this.manager?this.manager.get(o):e.canvas(o);return n.save(),t&&n.useWorldTransform(Object.assign({},this.worldTransform)),n}getBiggerCanvas(t,s){let{width:r,height:i,pixelRatio:o}=this;t&&(r+=t),s&&(i+=s);const n={width:r,height:i,pixelRatio:o},a=this.manager?this.manager.get(n):e.canvas(n);return a.save(),a}recycle(){this.recycled||(this.restore(),this.manager?this.manager.recycle(this):this.destroy())}updateRender(){}unrealCanvas(){}destroy(){this.manager=this.view=this.parentView=null}},exports.LeaferEvent=Ir,exports.LeaferImage=class{get url(){return this.config.url}get completed(){return this.ready||!!this.error}constructor(t){this.use=0,this.waitComplete=[],this.innerId=Tr(Cr),this.config=t||{url:""},this.isSVG=wr.isFormat("svg",t)}load(e,s){return this.loading||(this.loading=!0,wr.tasker.add((()=>ut(this,void 0,void 0,(function*(){return yield t.origin.loadImage(this.url).then((t=>{this.ready=!0,this.width=t.naturalWidth||t.width,this.height=t.naturalHeight||t.height,this.view=t,this.onComplete(!0)})).catch((t=>{this.error=t,this.onComplete(!1)}))}))))),this.waitComplete.push(e,s),this.waitComplete.length-2}unload(t,e){const s=this.waitComplete;if(e){const e=s[t+1];e&&e({type:"stop"})}s[t]=s[t+1]=void 0}onComplete(t){let e;this.waitComplete.forEach(((s,r)=>{e=r%2,s&&(t?e||s(this):e&&s(this.error))})),this.waitComplete.length=0,this.loading=!1}getCanvas(e,s,r,i){e||(e=this.width),s||(s=this.height);const o=t.origin.createCanvas(e,s),n=o.getContext("2d");return r&&(n.globalAlpha=r),n.drawImage(this.view,0,0,e,s),o}destroy(){this.config={url:""},this.waitComplete.length=0}},exports.MathHelper=i,exports.Matrix=k,exports.MatrixHelper=f,exports.MultiTouchHelper=Ri,exports.NeedConvertToCanvasCommandMap=Pt,exports.OneRadian=o,exports.PI2=n,exports.PI_2=a,exports.PathBounds=fr,exports.PathCommandDataHelper=ns,exports.PathCommandMap=Ct,exports.PathConvert=je,exports.PathCorner=mr,exports.PathCreator=bs,exports.PathDrawer=Ns,exports.PathHelper=wt,exports.PathNumberCommandLengthMap=Dt,exports.PathNumberCommandMap=Bt,exports.Platform=t,exports.PluginManager=To,exports.Point=O,exports.PointHelper=T,exports.PointerButton=Nr,exports.PropertyEvent=kr,exports.RectHelper=Rt,exports.RenderEvent=Sr,exports.ResizeEvent=Dr,exports.Run=Q,exports.StringNumberMap=K,exports.TaskItem=vr,exports.TaskProcessor=Er,exports.TwoPointBounds=class{constructor(t,e){B.setPoint(this,t,e)}addPoint(t,e){B.addPoint(this,t,e)}addBounds(t,e,s,r){B.addBounds(this,t,e,s,r)}add(t){B.add(this,t)}},exports.TwoPointBoundsHelper=B,exports.UICreator=tt,exports.UIEvent=Xr,exports.WaitHelper=xi,exports.WatchEvent=Rr,exports.affectRenderBoundsType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.renderChanged||this.__layout.renderChange()}})}},exports.affectStrokeBoundsType=Fr,exports.aliasType=function(t){return(e,s)=>{Yr(e,s,{get(){return this.__getAttr(t)},set(e){this.__setAttr(t,e)}})}},exports.boundsType=Ur,exports.canvasPatch=function(t){!function(t){t&&!t.roundRect&&(t.roundRect=function(t,e,s,r,i){yr(this,t,e,s,r,i)})}(t)},exports.canvasSizeAttrs=Et,exports.cursorType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.leafer&&this.leafer.updateCursor()}})}},exports.dataProcessor=function(t){return(e,s)=>{Yr(e,"__DataProcessor",{get:()=>t})}},exports.dataType=function(t){return(e,s)=>{jr(e,s,t)}},exports.defineDataProcessor=Kr,exports.defineKey=Yr,exports.defineLeafAttr=jr,exports.eraserType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.waitParent((()=>{this.parent.__updateEraser(t)}))}})}},exports.getDescriptor=Hr,exports.hitType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),G.showHitView&&(this.__layout.surfaceChanged||this.__layout.surfaceChange()),this.leafer&&this.leafer.updateCursor()}})}},exports.layoutProcessor=function(t){return(e,s)=>{Yr(e,"__LayoutProcessor",{get:()=>t})}},exports.maskType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.boxChanged||this.__layout.boxChange(),this.waitParent((()=>{this.parent.__updateMask(t)}))}})}},exports.opacityType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.opacityChanged||this.__layout.opacityChange()}})}},exports.pathType=zr,exports.positionType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.matrixChanged||this.__layout.matrixChange()}})}},exports.registerUI=function(){return t=>{tt.register(t)}},exports.registerUIEvent=$r,exports.rewrite=function(t){return(e,s)=>{Zr.push({name:e.constructor.name+"."+s,run:()=>{e[s]=t}})}},exports.rewriteAble=function(){return t=>{Qr()}},exports.rotationType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.rotationChanged||this.__layout.rotationChange()}})}},exports.scaleType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.scaleChanged||this.__layout.scaleChange()}})}},exports.setDefaultValue=function(t,e,s){Kr(t.prototype,e,s)},exports.sortType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.surfaceChanged||this.__layout.surfaceChange(),this.waitParent((()=>{this.parent.__layout.childrenSortChange()}))}})}},exports.strokeType=Vr,exports.surfaceType=function(t){return(e,s)=>{jr(e,s,t,{set(t){this.__setAttr(s,t),this.__layout.surfaceChanged||this.__layout.surfaceChange()}})}},exports.useModule=Jr,exports.usePlugin=function(t,e){const s={},{power:r,list:i}=To;if(r||Co.error("need add PluginManager.power = LeaferUI"),i.includes(t))Co.warn("repeat run",t.name);else{i.push(t),t.import?t.import.forEach((t=>{r[t]?s[t]=r[t]:Co.error(t+" non-existent")})):Co.warn("no import");try{t.run(s,e)}catch(t){Co.error(t)}}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer/core",
3
- "version": "1.0.0-rc.3",
3
+ "version": "1.0.0-rc.5",
4
4
  "description": "@leafer/core",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -28,25 +28,25 @@
28
28
  "leaferjs"
29
29
  ],
30
30
  "dependencies": {
31
- "@leafer/interaction": "1.0.0-rc.3",
32
- "@leafer/canvas": "1.0.0-rc.3",
33
- "@leafer/image": "1.0.0-rc.3",
34
- "@leafer/data": "1.0.0-rc.3",
35
- "@leafer/debug": "1.0.0-rc.3",
36
- "@leafer/decorator": "1.0.0-rc.3",
37
- "@leafer/display": "1.0.0-rc.3",
38
- "@leafer/display-module": "1.0.0-rc.3",
39
- "@leafer/event": "1.0.0-rc.3",
40
- "@leafer/event-ui": "1.0.0-rc.3",
41
- "@leafer/file": "1.0.0-rc.3",
42
- "@leafer/helper": "1.0.0-rc.3",
43
- "@leafer/layout": "1.0.0-rc.3",
44
- "@leafer/list": "1.0.0-rc.3",
45
- "@leafer/math": "1.0.0-rc.3",
46
- "@leafer/path": "1.0.0-rc.3",
47
- "@leafer/platform": "1.0.0-rc.3",
48
- "@leafer/plugin": "1.0.0-rc.3",
49
- "@leafer/task": "1.0.0-rc.3",
50
- "@leafer/interface": "1.0.0-rc.3"
31
+ "@leafer/interaction": "1.0.0-rc.5",
32
+ "@leafer/canvas": "1.0.0-rc.5",
33
+ "@leafer/image": "1.0.0-rc.5",
34
+ "@leafer/data": "1.0.0-rc.5",
35
+ "@leafer/debug": "1.0.0-rc.5",
36
+ "@leafer/decorator": "1.0.0-rc.5",
37
+ "@leafer/display": "1.0.0-rc.5",
38
+ "@leafer/display-module": "1.0.0-rc.5",
39
+ "@leafer/event": "1.0.0-rc.5",
40
+ "@leafer/event-ui": "1.0.0-rc.5",
41
+ "@leafer/file": "1.0.0-rc.5",
42
+ "@leafer/helper": "1.0.0-rc.5",
43
+ "@leafer/layout": "1.0.0-rc.5",
44
+ "@leafer/list": "1.0.0-rc.5",
45
+ "@leafer/math": "1.0.0-rc.5",
46
+ "@leafer/path": "1.0.0-rc.5",
47
+ "@leafer/platform": "1.0.0-rc.5",
48
+ "@leafer/plugin": "1.0.0-rc.5",
49
+ "@leafer/task": "1.0.0-rc.5",
50
+ "@leafer/interface": "1.0.0-rc.5"
51
51
  }
52
52
  }