this.fillEnabled()&&!!(this.fill()||this.fillPatternImage()||this.fillLinearGradientColorStops()||this.fillRadialGradientColorStops()))}hasStroke(){return this._calculate("hasStroke",["strokeEnabled","strokeWidth","stroke","strokeLinearGradientColorStops"],()=>this.strokeEnabled()&&this.strokeWidth()&&!!(this.stroke()||this.strokeLinearGradientColorStops()))}hasHitStroke(){const t=this.hitStrokeWidth();return t==="auto"?this.hasStroke():this.strokeEnabled()&&!!t}intersects(t){var n=this.getStage(),r=n.bufferHitCanvas,i;return r.getContext().clear(),this.drawHit(r,null,!0),i=r.context.getImageData(Math.round(t.x),Math.round(t.y),1,1).data,i[3]>0}destroy(){return ze.prototype.destroy.call(this),delete lm[this.colorKey],delete this.colorKey,this}_useBufferCanvas(t){var n;if(!this.getStage()||!((n=this.attrs.perfectDrawEnabled)!==null&&n!==void 0?n:!0))return!1;const i=t||this.hasFill(),o=this.hasStroke(),a=this.getAbsoluteOpacity()!==1;if(i&&o&&a)return!0;const s=this.hasShadow(),l=this.shadowForStrokeEnabled();return!!(i&&o&&s&&l)}setStrokeHitEnabled(t){se.warn("strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead."),t?this.hitStrokeWidth("auto"):this.hitStrokeWidth(0)}getStrokeHitEnabled(){return this.hitStrokeWidth()!==0}getSelfRect(){var t=this.size();return{x:this._centroid?-t.width/2:0,y:this._centroid?-t.height/2:0,width:t.width,height:t.height}}getClientRect(t={}){const n=t.skipTransform,r=t.relativeTo,i=this.getSelfRect(),a=!t.skipStroke&&this.hasStroke()&&this.strokeWidth()||0,s=i.width+a,l=i.height+a,d=!t.skipShadow&&this.hasShadow(),p=d?this.shadowOffsetX():0,g=d?this.shadowOffsetY():0,m=s+Math.abs(p),y=l+Math.abs(g),b=d&&this.shadowBlur()||0,S=m+b*2,E=y+b*2,P={width:S,height:E,x:-(a/2+b)+Math.min(p,0)+i.x,y:-(a/2+b)+Math.min(g,0)+i.y};return n?P:this._transformedRect(P,r)}drawScene(t,n){var r=this.getLayer(),i=t||r.getCanvas(),o=i.getContext(),a=this._getCanvasCache(),s=this.getSceneFunc(),l=this.hasShadow(),d,p,g,m=i.isCache,y=n===this;if(!this.isVisible()&&!y)return this;if(a){o.save();var b=this.getAbsoluteTransform(n).getMatrix();return o.transform(b[0],b[1],b[2],b[3],b[4],b[5]),this._drawCachedSceneCanvas(o),o.restore(),this}if(!s)return this;if(o.save(),this._useBufferCanvas()&&!m){d=this.getStage(),p=d.bufferCanvas,g=p.getContext(),g.clear(),g.save(),g._applyLineJoin(this);var S=this.getAbsoluteTransform(n).getMatrix();g.transform(S[0],S[1],S[2],S[3],S[4],S[5]),s.call(this,g,this),g.restore();var E=p.pixelRatio;l&&o._applyShadow(this),o._applyOpacity(this),o._applyGlobalCompositeOperation(this),o.drawImage(p._canvas,0,0,p.width/E,p.height/E)}else{if(o._applyLineJoin(this),!y){var S=this.getAbsoluteTransform(n).getMatrix();o.transform(S[0],S[1],S[2],S[3],S[4],S[5]),o._applyOpacity(this),o._applyGlobalCompositeOperation(this)}l&&o._applyShadow(this),s.call(this,o,this)}return o.restore(),this}drawHit(t,n,r=!1){if(!this.shouldDrawHit(n,r))return this;var i=this.getLayer(),o=t||i.hitCanvas,a=o&&o.getContext(),s=this.hitFunc()||this.sceneFunc(),l=this._getCanvasCache(),d=l&&l.hit;if(this.colorKey||se.warn("Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. If you want to reuse shape you should call remove() instead of destroy()"),d){a.save();var p=this.getAbsoluteTransform(n).getMatrix();return a.transform(p[0],p[1],p[2],p[3],p[4],p[5]),this._drawCachedHitCanvas(a),a.restore(),this}if(!s)return this;if(a.save(),a._applyLineJoin(this),!(this===n)){var m=this.getAbsoluteTransform(n).getMatrix();a.transform(m[0],m[1],m[2],m[3],m[4],m[5])}return s.call(this,a,this),a.restore(),this}drawHitFromCache(t=0){var n=this._getCanvasCache(),r=this._getCachedSceneCanvas(),i=n.hit,o=i.getContext(),a=i.getWidth(),s=i.getHeight(),l,d,p,g,m,y;o.clear(),o.drawImage(r._canvas,0,0,a,s);try{for(l=o.getImageData(0,0,a,s),d=l.data,p=d.length,g=se._hexToRgb(this.colorKey),m=0;mt?(d[m]=g.r,d[m+1]=g.g,d[m+2]=g.b,d[m+3]=255):d[m+3]=0;o.putImageData(l,0,0)}catch(b){se.error("Unable to draw hit graph from cached scene canvas. "+b.message)}return this}hasPointerCapture(t){return S$(t,this)}setPointerCapture(t){w$(t,this)}releaseCapture(t){sm(t)}}Ae.prototype._fillFunc=Pxe;Ae.prototype._strokeFunc=Txe;Ae.prototype._fillFuncHit=Lxe;Ae.prototype._strokeFuncHit=Axe;Ae.prototype._centroid=!1;Ae.prototype.nodeType="Shape";hr(Ae);Ae.prototype.eventListeners={};Ae.prototype.on.call(Ae.prototype,"shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",Ixe);Ae.prototype.on.call(Ae.prototype,"shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva",Mxe);Ae.prototype.on.call(Ae.prototype,"fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva fillPatternOffsetXChange.konva fillPatternOffsetYChange.konva fillPatternXChange.konva fillPatternYChange.konva fillPatternRotationChange.konva",Rxe);Ae.prototype.on.call(Ae.prototype,"fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva",Oxe);Ae.prototype.on.call(Ae.prototype,"fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva",Nxe);j.addGetterSetter(Ae,"stroke",void 0,x$());j.addGetterSetter(Ae,"strokeWidth",2,De());j.addGetterSetter(Ae,"fillAfterStrokeEnabled",!1);j.addGetterSetter(Ae,"hitStrokeWidth","auto",e_());j.addGetterSetter(Ae,"strokeHitEnabled",!0,ks());j.addGetterSetter(Ae,"perfectDrawEnabled",!0,ks());j.addGetterSetter(Ae,"shadowForStrokeEnabled",!0,ks());j.addGetterSetter(Ae,"lineJoin");j.addGetterSetter(Ae,"lineCap");j.addGetterSetter(Ae,"sceneFunc");j.addGetterSetter(Ae,"hitFunc");j.addGetterSetter(Ae,"dash");j.addGetterSetter(Ae,"dashOffset",0,De());j.addGetterSetter(Ae,"shadowColor",void 0,B0());j.addGetterSetter(Ae,"shadowBlur",0,De());j.addGetterSetter(Ae,"shadowOpacity",1,De());j.addComponentsGetterSetter(Ae,"shadowOffset",["x","y"]);j.addGetterSetter(Ae,"shadowOffsetX",0,De());j.addGetterSetter(Ae,"shadowOffsetY",0,De());j.addGetterSetter(Ae,"fillPatternImage");j.addGetterSetter(Ae,"fill",void 0,x$());j.addGetterSetter(Ae,"fillPatternX",0,De());j.addGetterSetter(Ae,"fillPatternY",0,De());j.addGetterSetter(Ae,"fillLinearGradientColorStops");j.addGetterSetter(Ae,"strokeLinearGradientColorStops");j.addGetterSetter(Ae,"fillRadialGradientStartRadius",0);j.addGetterSetter(Ae,"fillRadialGradientEndRadius",0);j.addGetterSetter(Ae,"fillRadialGradientColorStops");j.addGetterSetter(Ae,"fillPatternRepeat","repeat");j.addGetterSetter(Ae,"fillEnabled",!0);j.addGetterSetter(Ae,"strokeEnabled",!0);j.addGetterSetter(Ae,"shadowEnabled",!0);j.addGetterSetter(Ae,"dashEnabled",!0);j.addGetterSetter(Ae,"strokeScaleEnabled",!0);j.addGetterSetter(Ae,"fillPriority","color");j.addComponentsGetterSetter(Ae,"fillPatternOffset",["x","y"]);j.addGetterSetter(Ae,"fillPatternOffsetX",0,De());j.addGetterSetter(Ae,"fillPatternOffsetY",0,De());j.addComponentsGetterSetter(Ae,"fillPatternScale",["x","y"]);j.addGetterSetter(Ae,"fillPatternScaleX",1,De());j.addGetterSetter(Ae,"fillPatternScaleY",1,De());j.addComponentsGetterSetter(Ae,"fillLinearGradientStartPoint",["x","y"]);j.addComponentsGetterSetter(Ae,"strokeLinearGradientStartPoint",["x","y"]);j.addGetterSetter(Ae,"fillLinearGradientStartPointX",0);j.addGetterSetter(Ae,"strokeLinearGradientStartPointX",0);j.addGetterSetter(Ae,"fillLinearGradientStartPointY",0);j.addGetterSetter(Ae,"strokeLinearGradientStartPointY",0);j.addComponentsGetterSetter(Ae,"fillLinearGradientEndPoint",["x","y"]);j.addComponentsGetterSetter(Ae,"strokeLinearGradientEndPoint",["x","y"]);j.addGetterSetter(Ae,"fillLinearGradientEndPointX",0);j.addGetterSetter(Ae,"strokeLinearGradientEndPointX",0);j.addGetterSetter(Ae,"fillLinearGradientEndPointY",0);j.addGetterSetter(Ae,"strokeLinearGradientEndPointY",0);j.addComponentsGetterSetter(Ae,"fillRadialGradientStartPoint",["x","y"]);j.addGetterSetter(Ae,"fillRadialGradientStartPointX",0);j.addGetterSetter(Ae,"fillRadialGradientStartPointY",0);j.addComponentsGetterSetter(Ae,"fillRadialGradientEndPoint",["x","y"]);j.addGetterSetter(Ae,"fillRadialGradientEndPointX",0);j.addGetterSetter(Ae,"fillRadialGradientEndPointY",0);j.addGetterSetter(Ae,"fillPatternRotation",0);j.backCompat(Ae,{dashArray:"dash",getDashArray:"getDash",setDashArray:"getDash",drawFunc:"sceneFunc",getDrawFunc:"getSceneFunc",setDrawFunc:"setSceneFunc",drawHitFunc:"hitFunc",getDrawHitFunc:"getHitFunc",setDrawHitFunc:"setHitFunc"});var Dxe="#",zxe="beforeDraw",Fxe="draw",F$=[{x:0,y:0},{x:-1,y:-1},{x:1,y:-1},{x:1,y:1},{x:-1,y:1}],Bxe=F$.length;class Xf extends ia{constructor(t){super(t),this.canvas=new t0,this.hitCanvas=new t_({pixelRatio:1}),this._waitingForDraw=!1,this.on("visibleChange.konva",this._checkVisibility),this._checkVisibility(),this.on("imageSmoothingEnabledChange.konva",this._setSmoothEnabled),this._setSmoothEnabled()}createPNGStream(){return this.canvas._canvas.createPNGStream()}getCanvas(){return this.canvas}getNativeCanvasElement(){return this.canvas._canvas}getHitCanvas(){return this.hitCanvas}getContext(){return this.getCanvas().getContext()}clear(t){return this.getContext().clear(t),this.getHitCanvas().getContext().clear(t),this}setZIndex(t){super.setZIndex(t);var n=this.getStage();return n&&n.content&&(n.content.removeChild(this.getNativeCanvasElement()),t{this.draw(),this._waitingForDraw=!1})),this}getIntersection(t){if(!this.isListening()||!this.isVisible())return null;for(var n=1,r=!1;;){for(let i=0;i0)return{antialiased:!0};return{}}drawScene(t,n){var r=this.getLayer(),i=t||r&&r.getCanvas();return this._fire(zxe,{node:this}),this.clearBeforeDraw()&&i.getContext().clear(),ia.prototype.drawScene.call(this,i,n),this._fire(Fxe,{node:this}),this}drawHit(t,n){var r=this.getLayer(),i=t||r&&r.hitCanvas;return r&&r.clearBeforeDraw()&&r.getHitCanvas().getContext().clear(),ia.prototype.drawHit.call(this,i,n),this}enableHitGraph(){return this.hitGraphEnabled(!0),this}disableHitGraph(){return this.hitGraphEnabled(!1),this}setHitGraphEnabled(t){se.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening(t)}getHitGraphEnabled(t){return se.warn("hitGraphEnabled method is deprecated. Please use layer.listening() instead."),this.listening()}toggleHitCanvas(){if(!(!this.parent||!this.parent.content)){var t=this.parent,n=!!this.hitCanvas._canvas.parentNode;n?t.content.removeChild(this.hitCanvas._canvas):t.content.appendChild(this.hitCanvas._canvas)}}}Xf.prototype.nodeType="Layer";hr(Xf);j.addGetterSetter(Xf,"imageSmoothingEnabled",!0);j.addGetterSetter(Xf,"clearBeforeDraw",!0);j.addGetterSetter(Xf,"hitGraphEnabled",!0,ks());class r_ extends Xf{constructor(t){super(t),this.listening(!1),se.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.')}}r_.prototype.nodeType="FastLayer";hr(r_);class b0 extends ia{_validateAdd(t){var n=t.getType();n!=="Group"&&n!=="Shape"&&se.throw("You may only add groups and shapes to groups.")}}b0.prototype.nodeType="Group";hr(b0);var DS=function(){return e0.performance&&e0.performance.now?function(){return e0.performance.now()}:function(){return new Date().getTime()}}();class Ia{constructor(t,n){this.id=Ia.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:DS(),frameRate:0},this.func=t,this.setLayers(n)}setLayers(t){var n=[];return t?t.length>0?n=t:n=[t]:n=[],this.layers=n,this}getLayers(){return this.layers}addLayer(t){var n=this.layers,r=n.length,i;for(i=0;ithis.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():t<0?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=t,this.update())}getTime(){return this._time}setPosition(t){this.prevPos=this._pos,this.propFunc(t),this._pos=t}getPosition(t){return t===void 0&&(t=this._time),this.func(t,this.begin,this._change,this.duration)}play(){this.state=kA,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onPlay")}reverse(){this.state=EA,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire("onReverse")}seek(t){this.pause(),this._time=t,this.update(),this.fire("onSeek")}reset(){this.pause(),this._time=0,this.update(),this.fire("onReset")}finish(){this.pause(),this._time=this.duration,this.update(),this.fire("onFinish")}update(){this.setPosition(this.getPosition(this._time)),this.fire("onUpdate")}onEnterFrame(){var t=this.getTimer()-this._startTime;this.state===kA?this.setTime(t):this.state===EA&&this.setTime(this.duration-t)}pause(){this.state=Hxe,this.fire("onPause")}getTimer(){return new Date().getTime()}}class Ir{constructor(t){var n=this,r=t.node,i=r._id,o,a=t.easing||um.Linear,s=!!t.yoyo,l;typeof t.duration>"u"?o=.3:t.duration===0?o=.001:o=t.duration,this.node=r,this._id=Wxe++;var d=r.getLayer()||(r instanceof Je.Stage?r.getLayers():null);d||se.error("Tween constructor have `node` that is not in a layer. Please add node into layer first."),this.anim=new Ia(function(){n.tween.onEnterFrame()},d),this.tween=new Vxe(l,function(p){n._tweenFunc(p)},a,0,1,o*1e3,s),this._addListeners(),Ir.attrs[i]||(Ir.attrs[i]={}),Ir.attrs[i][this._id]||(Ir.attrs[i][this._id]={}),Ir.tweens[i]||(Ir.tweens[i]={});for(l in t)$xe[l]===void 0&&this._addAttr(l,t[l]);this.reset(),this.onFinish=t.onFinish,this.onReset=t.onReset,this.onUpdate=t.onUpdate}_addAttr(t,n){var r=this.node,i=r._id,o,a,s,l,d,p,g,m;if(s=Ir.tweens[i][t],s&&delete Ir.attrs[i][s][t],o=r.getAttr(t),se._isArray(n))if(a=[],d=Math.max(n.length,o.length),t==="points"&&n.length!==o.length&&(n.length>o.length?(g=o,o=se._prepareArrayForTween(o,n,r.closed())):(p=n,n=se._prepareArrayForTween(n,o,r.closed()))),t.indexOf("fill")===0)for(l=0;l{this.anim.start()},this.tween.onReverse=()=>{this.anim.start()},this.tween.onPause=()=>{this.anim.stop()},this.tween.onFinish=()=>{var t=this.node,n=Ir.attrs[t._id][this._id];n.points&&n.points.trueEnd&&t.setAttr("points",n.points.trueEnd),this.onFinish&&this.onFinish.call(this)},this.tween.onReset=()=>{var t=this.node,n=Ir.attrs[t._id][this._id];n.points&&n.points.trueStart&&t.points(n.points.trueStart),this.onReset&&this.onReset()},this.tween.onUpdate=()=>{this.onUpdate&&this.onUpdate.call(this)}}play(){return this.tween.play(),this}reverse(){return this.tween.reverse(),this}reset(){return this.tween.reset(),this}seek(t){return this.tween.seek(t*1e3),this}pause(){return this.tween.pause(),this}finish(){return this.tween.finish(),this}destroy(){var t=this.node._id,n=this._id,r=Ir.tweens[t],i;this.pause();for(i in r)delete Ir.tweens[t][i];delete Ir.attrs[t][n]}}Ir.attrs={};Ir.tweens={};ze.prototype.to=function(e){var t=e.onFinish;e.node=this,e.onFinish=function(){this.destroy(),t&&t()};var n=new Ir(e);n.play()};const um={BackEaseIn(e,t,n,r){var i=1.70158;return n*(e/=r)*e*((i+1)*e-i)+t},BackEaseOut(e,t,n,r){var i=1.70158;return n*((e=e/r-1)*e*((i+1)*e+i)+1)+t},BackEaseInOut(e,t,n,r){var i=1.70158;return(e/=r/2)<1?n/2*(e*e*(((i*=1.525)+1)*e-i))+t:n/2*((e-=2)*e*(((i*=1.525)+1)*e+i)+2)+t},ElasticEaseIn(e,t,n,r,i,o){var a=0;return e===0?t:(e/=r)===1?t+n:(o||(o=r*.3),!i||i0?t:n),p=a*n,g=s*(s>0?t:n),m=l*(l>0?n:t);return{x:d,y:r?-1*m:g,width:p-d,height:m-g}}}_u.prototype._centroid=!0;_u.prototype.className="Arc";_u.prototype._attrsAffectingSize=["innerRadius","outerRadius"];hr(_u);j.addGetterSetter(_u,"innerRadius",0,De());j.addGetterSetter(_u,"outerRadius",0,De());j.addGetterSetter(_u,"angle",0,De());j.addGetterSetter(_u,"clockwise",!1,ks());function yC(e,t,n,r,i,o,a){var s=Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2)),l=Math.sqrt(Math.pow(i-n,2)+Math.pow(o-r,2)),d=a*s/(s+l),p=a*l/(s+l),g=n-d*(i-e),m=r-d*(o-t),y=n+p*(i-e),b=r+p*(o-t);return[g,m,y,b]}function TA(e,t){var n=e.length,r=[],i,o;for(i=2;i4){for(s=this.getTensionPoints(),l=s.length,d=o?0:4,o||t.quadraticCurveTo(s[0],s[1],s[2],s[3]);dp?d:p,E=d>p?1:d/p,P=d>p?p/d:1;t.translate(s,l),t.rotate(y),t.scale(E,P),t.arc(0,0,S,g,g+m,1-b),t.scale(1/E,1/P),t.rotate(-y),t.translate(-s,-l);break;case"z":r=!0,t.closePath();break}}!r&&!this.hasFill()?t.strokeShape(this):t.fillStrokeShape(this)}getSelfRect(){var t=[];this.dataArray.forEach(function(d){if(d.command==="A"){var p=d.points[4],g=d.points[5],m=d.points[4]+g,y=Math.PI/180;if(Math.abs(p-m)m;b-=y){const S=In.getPointOnEllipticalArc(d.points[0],d.points[1],d.points[2],d.points[3],b,0);t.push(S.x,S.y)}else for(let b=p+y;bthis.dataArray[r].pathLength;)t-=this.dataArray[r].pathLength,++r;if(r===i)return n=this.dataArray[r-1].points.slice(-2),{x:n[0],y:n[1]};if(t<.01)return n=this.dataArray[r].points.slice(0,2),{x:n[0],y:n[1]};var o=this.dataArray[r],a=o.points;switch(o.command){case"L":return In.getPointOnLine(t,o.start.x,o.start.y,a[0],a[1]);case"C":return In.getPointOnCubicBezier(t/o.pathLength,o.start.x,o.start.y,a[0],a[1],a[2],a[3],a[4],a[5]);case"Q":return In.getPointOnQuadraticBezier(t/o.pathLength,o.start.x,o.start.y,a[0],a[1],a[2],a[3]);case"A":var s=a[0],l=a[1],d=a[2],p=a[3],g=a[4],m=a[5],y=a[6];return g+=m*t/o.pathLength,In.getPointOnEllipticalArc(s,l,d,p,g,y)}return null}static getLineLength(t,n,r,i){return Math.sqrt((r-t)*(r-t)+(i-n)*(i-n))}static getPointOnLine(t,n,r,i,o,a,s){a===void 0&&(a=n),s===void 0&&(s=r);var l=(o-r)/(i-n+1e-8),d=Math.sqrt(t*t/(1+l*l));i0&&!isNaN(b[0]);){var k=null,L=[],I=l,O=d,N,D,F,U,W,q,pe,fe,ye,Pe;switch(y){case"l":l+=b.shift(),d+=b.shift(),k="L",L.push(l,d);break;case"L":l=b.shift(),d=b.shift(),L.push(l,d);break;case"m":var xe=b.shift(),Y=b.shift();if(l+=xe,d+=Y,k="M",a.length>2&&a[a.length-1].command==="z"){for(var V=a.length-2;V>=0;V--)if(a[V].command==="M"){l=a[V].points[0]+xe,d=a[V].points[1]+Y;break}}L.push(l,d),y="l";break;case"M":l=b.shift(),d=b.shift(),k="M",L.push(l,d),y="L";break;case"h":l+=b.shift(),k="L",L.push(l,d);break;case"H":l=b.shift(),k="L",L.push(l,d);break;case"v":d+=b.shift(),k="L",L.push(l,d);break;case"V":d=b.shift(),k="L",L.push(l,d);break;case"C":L.push(b.shift(),b.shift(),b.shift(),b.shift()),l=b.shift(),d=b.shift(),L.push(l,d);break;case"c":L.push(l+b.shift(),d+b.shift(),l+b.shift(),d+b.shift()),l+=b.shift(),d+=b.shift(),k="C",L.push(l,d);break;case"S":D=l,F=d,N=a[a.length-1],N.command==="C"&&(D=l+(l-N.points[2]),F=d+(d-N.points[3])),L.push(D,F,b.shift(),b.shift()),l=b.shift(),d=b.shift(),k="C",L.push(l,d);break;case"s":D=l,F=d,N=a[a.length-1],N.command==="C"&&(D=l+(l-N.points[2]),F=d+(d-N.points[3])),L.push(D,F,l+b.shift(),d+b.shift()),l+=b.shift(),d+=b.shift(),k="C",L.push(l,d);break;case"Q":L.push(b.shift(),b.shift()),l=b.shift(),d=b.shift(),L.push(l,d);break;case"q":L.push(l+b.shift(),d+b.shift()),l+=b.shift(),d+=b.shift(),k="Q",L.push(l,d);break;case"T":D=l,F=d,N=a[a.length-1],N.command==="Q"&&(D=l+(l-N.points[0]),F=d+(d-N.points[1])),l=b.shift(),d=b.shift(),k="Q",L.push(D,F,l,d);break;case"t":D=l,F=d,N=a[a.length-1],N.command==="Q"&&(D=l+(l-N.points[0]),F=d+(d-N.points[1])),l+=b.shift(),d+=b.shift(),k="Q",L.push(D,F,l,d);break;case"A":U=b.shift(),W=b.shift(),q=b.shift(),pe=b.shift(),fe=b.shift(),ye=l,Pe=d,l=b.shift(),d=b.shift(),k="A",L=this.convertEndpointToCenterParameterization(ye,Pe,l,d,pe,fe,U,W,q);break;case"a":U=b.shift(),W=b.shift(),q=b.shift(),pe=b.shift(),fe=b.shift(),ye=l,Pe=d,l+=b.shift(),d+=b.shift(),k="A",L=this.convertEndpointToCenterParameterization(ye,Pe,l,d,pe,fe,U,W,q);break}a.push({command:k||y,points:L,start:{x:I,y:O},pathLength:this.calcLength(I,O,k||y,L)})}(y==="z"||y==="Z")&&a.push({command:"z",points:[],start:void 0,pathLength:0})}return a}static calcLength(t,n,r,i){var o,a,s,l,d=In;switch(r){case"L":return d.getLineLength(t,n,i[0],i[1]);case"C":for(o=0,a=d.getPointOnCubicBezier(0,t,n,i[0],i[1],i[2],i[3],i[4],i[5]),l=.01;l<=1;l+=.01)s=d.getPointOnCubicBezier(l,t,n,i[0],i[1],i[2],i[3],i[4],i[5]),o+=d.getLineLength(a.x,a.y,s.x,s.y),a=s;return o;case"Q":for(o=0,a=d.getPointOnQuadraticBezier(0,t,n,i[0],i[1],i[2],i[3]),l=.01;l<=1;l+=.01)s=d.getPointOnQuadraticBezier(l,t,n,i[0],i[1],i[2],i[3]),o+=d.getLineLength(a.x,a.y,s.x,s.y),a=s;return o;case"A":o=0;var p=i[4],g=i[5],m=i[4]+g,y=Math.PI/180;if(Math.abs(p-m)m;l-=y)s=d.getPointOnEllipticalArc(i[0],i[1],i[2],i[3],l,0),o+=d.getLineLength(a.x,a.y,s.x,s.y),a=s;else for(l=p+y;l1&&(s*=Math.sqrt(y),l*=Math.sqrt(y));var b=Math.sqrt((s*s*(l*l)-s*s*(m*m)-l*l*(g*g))/(s*s*(m*m)+l*l*(g*g)));o===a&&(b*=-1),isNaN(b)&&(b=0);var S=b*s*m/l,E=b*-l*g/s,P=(t+r)/2+Math.cos(p)*S-Math.sin(p)*E,k=(n+i)/2+Math.sin(p)*S+Math.cos(p)*E,L=function(W){return Math.sqrt(W[0]*W[0]+W[1]*W[1])},I=function(W,q){return(W[0]*q[0]+W[1]*q[1])/(L(W)*L(q))},O=function(W,q){return(W[0]*q[1]=1&&(U=0),a===0&&U>0&&(U=U-2*Math.PI),a===1&&U<0&&(U=U+2*Math.PI),[P,k,s,l,N,U,p,a]}}In.prototype.className="Path";In.prototype._attrsAffectingSize=["data"];hr(In);j.addGetterSetter(In,"data");class Qf extends ku{_sceneFunc(t){super._sceneFunc(t);var n=Math.PI*2,r=this.points(),i=r,o=this.tension()!==0&&r.length>4;o&&(i=this.getTensionPoints());var a=this.pointerLength(),s=r.length,l,d;if(o){const m=[i[i.length-4],i[i.length-3],i[i.length-2],i[i.length-1],r[s-2],r[s-1]],y=In.calcLength(i[i.length-4],i[i.length-3],"C",m),b=In.getPointOnQuadraticBezier(Math.min(1,1-a/y),m[0],m[1],m[2],m[3],m[4],m[5]);l=r[s-2]-b.x,d=r[s-1]-b.y}else l=r[s-2]-r[s-4],d=r[s-1]-r[s-3];var p=(Math.atan2(d,l)+n)%n,g=this.pointerWidth();this.pointerAtEnding()&&(t.save(),t.beginPath(),t.translate(r[s-2],r[s-1]),t.rotate(p),t.moveTo(0,0),t.lineTo(-a,g/2),t.lineTo(-a,-g/2),t.closePath(),t.restore(),this.__fillStroke(t)),this.pointerAtBeginning()&&(t.save(),t.beginPath(),t.translate(r[0],r[1]),o?(l=(i[0]+i[2])/2-r[0],d=(i[1]+i[3])/2-r[1]):(l=r[2]-r[0],d=r[3]-r[1]),t.rotate((Math.atan2(-d,-l)+n)%n),t.moveTo(0,0),t.lineTo(-a,g/2),t.lineTo(-a,-g/2),t.closePath(),t.restore(),this.__fillStroke(t))}__fillStroke(t){var n=this.dashEnabled();n&&(this.attrs.dashEnabled=!1,t.setLineDash([])),t.fillStrokeShape(this),n&&(this.attrs.dashEnabled=!0)}getSelfRect(){const t=super.getSelfRect(),n=this.pointerWidth()/2;return{x:t.x-n,y:t.y-n,width:t.width+n*2,height:t.height+n*2}}}Qf.prototype.className="Arrow";hr(Qf);j.addGetterSetter(Qf,"pointerLength",10,De());j.addGetterSetter(Qf,"pointerWidth",10,De());j.addGetterSetter(Qf,"pointerAtBeginning",!1);j.addGetterSetter(Qf,"pointerAtEnding",!0);class $0 extends Ae{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.attrs.radius||0,0,Math.PI*2,!1),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius()!==t/2&&this.radius(t/2)}setHeight(t){this.radius()!==t/2&&this.radius(t/2)}}$0.prototype._centroid=!0;$0.prototype.className="Circle";$0.prototype._attrsAffectingSize=["radius"];hr($0);j.addGetterSetter($0,"radius",0,De());class ld extends Ae{_sceneFunc(t){var n=this.radiusX(),r=this.radiusY();t.beginPath(),t.save(),n!==r&&t.scale(1,r/n),t.arc(0,0,n,0,Math.PI*2,!1),t.restore(),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radiusX()*2}getHeight(){return this.radiusY()*2}setWidth(t){this.radiusX(t/2)}setHeight(t){this.radiusY(t/2)}}ld.prototype.className="Ellipse";ld.prototype._centroid=!0;ld.prototype._attrsAffectingSize=["radiusX","radiusY"];hr(ld);j.addComponentsGetterSetter(ld,"radius",["x","y"]);j.addGetterSetter(ld,"radiusX",0,De());j.addGetterSetter(ld,"radiusY",0,De());class Es extends Ae{constructor(t){super(t),this.on("imageChange.konva",()=>{this._setImageLoad()}),this._setImageLoad()}_setImageLoad(){const t=this.image();t&&t.complete||t&&t.readyState===4||t&&t.addEventListener&&t.addEventListener("load",()=>{this._requestDraw()})}_useBufferCanvas(){return super._useBufferCanvas(!0)}_sceneFunc(t){const n=this.getWidth(),r=this.getHeight(),i=this.attrs.image;let o;if(i){const a=this.attrs.cropWidth,s=this.attrs.cropHeight;a&&s?o=[i,this.cropX(),this.cropY(),a,s,0,0,n,r]:o=[i,0,0,n,r]}(this.hasFill()||this.hasStroke())&&(t.beginPath(),t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)),i&&t.drawImage.apply(t,o)}_hitFunc(t){var n=this.width(),r=this.height();t.beginPath(),t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)}getWidth(){var t,n;return(t=this.attrs.width)!==null&&t!==void 0?t:(n=this.image())===null||n===void 0?void 0:n.width}getHeight(){var t,n;return(t=this.attrs.height)!==null&&t!==void 0?t:(n=this.image())===null||n===void 0?void 0:n.height}static fromURL(t,n,r=null){var i=se.createImageElement();i.onload=function(){var o=new Es({image:i});n(o)},i.onerror=r,i.crossOrigin="Anonymous",i.src=t}}Es.prototype.className="Image";hr(Es);j.addGetterSetter(Es,"image");j.addComponentsGetterSetter(Es,"crop",["x","y","width","height"]);j.addGetterSetter(Es,"cropX",0,De());j.addGetterSetter(Es,"cropY",0,De());j.addGetterSetter(Es,"cropWidth",0,De());j.addGetterSetter(Es,"cropHeight",0,De());var B$=["fontFamily","fontSize","fontStyle","padding","lineHeight","text","width","height","pointerDirection","pointerWidth","pointerHeight"],Uxe="Change.konva",Gxe="none",xC="up",bC="right",SC="down",wC="left",jxe=B$.length;class i_ extends b0{constructor(t){super(t),this.on("add.konva",function(n){this._addListeners(n.child),this._sync()})}getText(){return this.find("Text")[0]}getTag(){return this.find("Tag")[0]}_addListeners(t){var n=this,r,i=function(){n._sync()};for(r=0;r{n=Math.min(n,a.x),r=Math.max(r,a.x),i=Math.min(i,a.y),o=Math.max(o,a.y)}),{x:n,y:i,width:r-n,height:o-i}}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}eh.prototype.className="RegularPolygon";eh.prototype._centroid=!0;eh.prototype._attrsAffectingSize=["radius"];hr(eh);j.addGetterSetter(eh,"radius",0,De());j.addGetterSetter(eh,"sides",0,De());var LA=Math.PI*2;class th extends Ae{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.innerRadius(),0,LA,!1),t.moveTo(this.outerRadius(),0),t.arc(0,0,this.outerRadius(),LA,0,!0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.outerRadius()*2}getHeight(){return this.outerRadius()*2}setWidth(t){this.outerRadius(t/2)}setHeight(t){this.outerRadius(t/2)}}th.prototype.className="Ring";th.prototype._centroid=!0;th.prototype._attrsAffectingSize=["innerRadius","outerRadius"];hr(th);j.addGetterSetter(th,"innerRadius",0,De());j.addGetterSetter(th,"outerRadius",0,De());class Ll extends Ae{constructor(t){super(t),this._updated=!0,this.anim=new Ia(()=>{var n=this._updated;return this._updated=!1,n}),this.on("animationChange.konva",function(){this.frameIndex(0)}),this.on("frameIndexChange.konva",function(){this._updated=!0}),this.on("frameRateChange.konva",function(){!this.anim.isRunning()||(clearInterval(this.interval),this._setInterval())})}_sceneFunc(t){var n=this.animation(),r=this.frameIndex(),i=r*4,o=this.animations()[n],a=this.frameOffsets(),s=o[i+0],l=o[i+1],d=o[i+2],p=o[i+3],g=this.image();if((this.hasFill()||this.hasStroke())&&(t.beginPath(),t.rect(0,0,d,p),t.closePath(),t.fillStrokeShape(this)),g)if(a){var m=a[n],y=r*2;t.drawImage(g,s,l,d,p,m[y+0],m[y+1],d,p)}else t.drawImage(g,s,l,d,p,0,0,d,p)}_hitFunc(t){var n=this.animation(),r=this.frameIndex(),i=r*4,o=this.animations()[n],a=this.frameOffsets(),s=o[i+2],l=o[i+3];if(t.beginPath(),a){var d=a[n],p=r*2;t.rect(d[p+0],d[p+1],s,l)}else t.rect(0,0,s,l);t.closePath(),t.fillShape(this)}_useBufferCanvas(){return super._useBufferCanvas(!0)}_setInterval(){var t=this;this.interval=setInterval(function(){t._updateIndex()},1e3/this.frameRate())}start(){if(!this.isRunning()){var t=this.getLayer();this.anim.setLayers(t),this._setInterval(),this.anim.start()}}stop(){this.anim.stop(),clearInterval(this.interval)}isRunning(){return this.anim.isRunning()}_updateIndex(){var t=this.frameIndex(),n=this.animation(),r=this.animations(),i=r[n],o=i.length/4;t{t=t.trim();const n=t.indexOf(" ")>=0,r=t.indexOf('"')>=0||t.indexOf("'")>=0;return n&&!r&&(t=`"${t}"`),t}).join(", ")}var Cy;function FS(){return Cy||(Cy=se.createCanvasElement().getContext(Zxe),Cy)}function abe(e){e.fillText(this._partialText,this._partialTextX,this._partialTextY)}function sbe(e){e.strokeText(this._partialText,this._partialTextX,this._partialTextY)}function lbe(e){return e=e||{},!e.fillLinearGradientColorStops&&!e.fillRadialGradientColorStops&&!e.fillPatternImage&&(e.fill=e.fill||"black"),e}class fr extends Ae{constructor(t){super(lbe(t)),this._partialTextX=0,this._partialTextY=0;for(var n=0;n1&&(P+=a)}}}_hitFunc(t){var n=this.getWidth(),r=this.getHeight();t.beginPath(),t.rect(0,0,n,r),t.closePath(),t.fillStrokeShape(this)}setText(t){var n=se._isString(t)?t:t==null?"":t+"";return this._setAttr(Yxe,n),this}getWidth(){var t=this.attrs.width===dp||this.attrs.width===void 0;return t?this.getTextWidth()+this.padding()*2:this.attrs.width}getHeight(){var t=this.attrs.height===dp||this.attrs.height===void 0;return t?this.fontSize()*this.textArr.length*this.lineHeight()+this.padding()*2:this.attrs.height}getTextWidth(){return this.textWidth}getTextHeight(){return se.warn("text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height."),this.textHeight}measureSize(t){var n=FS(),r=this.fontSize(),i;return n.save(),n.font=this._getContextFont(),i=n.measureText(t),n.restore(),{width:i.width,height:r}}_getContextFont(){return this.fontStyle()+wy+this.fontVariant()+wy+(this.fontSize()+ebe)+obe(this.fontFamily())}_addTextLine(t){this.align()===fg&&(t=t.trim());var n=this._getTextWidth(t);return this.textArr.push({text:t,width:n,lastInParagraph:!1})}_getTextWidth(t){var n=this.letterSpacing(),r=t.length;return FS().measureText(t).width+(r?n*(r-1):0)}_setTextData(){var t=this.text().split(`
+`),n=+this.fontSize(),r=0,i=this.lineHeight()*n,o=this.attrs.width,a=this.attrs.height,s=o!==dp&&o!==void 0,l=a!==dp&&a!==void 0,d=this.padding(),p=o-d*2,g=a-d*2,m=0,y=this.wrap(),b=y!==MA,S=y!==rbe&&b,E=this.ellipsis();this.textArr=[],FS().font=this._getContextFont();for(var P=E?this._getTextWidth(zS):0,k=0,L=t.length;kp)for(;I.length>0;){for(var N=0,D=I.length,F="",U=0;N>>1,q=I.slice(0,W+1),pe=this._getTextWidth(q)+P;pe<=p?(N=W+1,F=q,U=pe):D=W}if(F){if(S){var fe,ye=I[F.length],Pe=ye===wy||ye===AA;Pe&&U<=p?fe=F.length:fe=Math.max(F.lastIndexOf(wy),F.lastIndexOf(AA))+1,fe>0&&(N=fe,F=F.slice(0,N),U=this._getTextWidth(F))}F=F.trimRight(),this._addTextLine(F),r=Math.max(r,U),m+=i;var xe=this._shouldHandleEllipsis(m);if(xe){this._tryToAddEllipsisToLastLine();break}if(I=I.slice(N),I=I.trimLeft(),I.length>0&&(O=this._getTextWidth(I),O<=p)){this._addTextLine(I),m+=i,r=Math.max(r,O);break}}else break}else this._addTextLine(I),m+=i,r=Math.max(r,O),this._shouldHandleEllipsis(m)&&kg)break;this.textArr[this.textArr.length-1]&&(this.textArr[this.textArr.length-1].lastInParagraph=!0)}this.textHeight=n,this.textWidth=r}_shouldHandleEllipsis(t){var n=+this.fontSize(),r=this.lineHeight()*n,i=this.attrs.height,o=i!==dp&&i!==void 0,a=this.padding(),s=i-a*2,l=this.wrap(),d=l!==MA;return!d||o&&t+r>s}_tryToAddEllipsisToLastLine(){var t=this.attrs.width,n=t!==dp&&t!==void 0,r=this.padding(),i=t-r*2,o=this.ellipsis(),a=this.textArr[this.textArr.length-1];if(!(!a||!o)){if(n){var s=this._getTextWidth(a.text+zS)=1){var r=n[0].p0;t.moveTo(r.x,r.y)}for(var i=0;i0&&(s+=t.dataArray[l].pathLength);var d=0;i==="center"&&(d=Math.max(0,s/2-a/2)),i==="right"&&(d=Math.max(0,s-a));for(var p=$$(this.text()),g=this.text().split(" ").length-1,m,y,b,S=-1,E=0,P=function(){E=0;for(var pe=t.dataArray,fe=S+1;fe0)return S=fe,pe[fe];pe[fe].command==="M"&&(m={x:pe[fe].points[0],y:pe[fe].points[1]})}return{}},k=function(pe){var fe=t._getTextSize(pe).width+r;pe===" "&&i==="justify"&&(fe+=(s-a)/g);var ye=0,Pe=0;for(y=void 0;Math.abs(fe-ye)/fe>.01&&Pe<20;){Pe++;for(var xe=ye;b===void 0;)b=P(),b&&xe+b.pathLengthfe?y=In.getPointOnLine(fe,m.x,m.y,b.points[0],b.points[1],m.x,m.y):b=void 0;break;case"A":var V=b.points[4],ae=b.points[5],oe=b.points[4]+ae;E===0?E=V+1e-8:fe>ye?E+=Math.PI/180*ae/Math.abs(ae):E-=Math.PI/360*ae/Math.abs(ae),(ae<0&&E=0&&E>oe)&&(E=oe,Y=!0),y=In.getPointOnEllipticalArc(b.points[0],b.points[1],b.points[2],b.points[3],E,b.points[6]);break;case"C":E===0?fe>b.pathLength?E=1e-8:E=fe/b.pathLength:fe>ye?E+=(fe-ye)/b.pathLength/2:E=Math.max(E-(ye-fe)/b.pathLength/2,0),E>1&&(E=1,Y=!0),y=In.getPointOnCubicBezier(E,b.start.x,b.start.y,b.points[0],b.points[1],b.points[2],b.points[3],b.points[4],b.points[5]);break;case"Q":E===0?E=fe/b.pathLength:fe>ye?E+=(fe-ye)/b.pathLength:E-=(ye-fe)/b.pathLength,E>1&&(E=1,Y=!0),y=In.getPointOnQuadraticBezier(E,b.start.x,b.start.y,b.points[0],b.points[1],b.points[2],b.points[3]);break}y!==void 0&&(ye=In.getLineLength(m.x,m.y,y.x,y.y)),Y&&(Y=!1,b=void 0)}},L="C",I=t._getTextSize(L).width+r,O=d/I-1,N=0;Ne+`.${q$}`).join(" "),RA="nodesRect",dbe=["widthChange","heightChange","scaleXChange","scaleYChange","skewXChange","skewYChange","rotationChange","offsetXChange","offsetYChange","transformsEnabledChange","strokeWidthChange"],fbe={"top-left":-45,"top-center":0,"top-right":45,"middle-right":-90,"middle-left":90,"bottom-left":-135,"bottom-center":180,"bottom-right":135};const hbe="ontouchstart"in Je._global;function pbe(e,t){if(e==="rotater")return"crosshair";t+=se.degToRad(fbe[e]||0);var n=(se.radToDeg(t)%360+360)%360;return se._inRange(n,315+22.5,360)||se._inRange(n,0,22.5)?"ns-resize":se._inRange(n,45-22.5,45+22.5)?"nesw-resize":se._inRange(n,90-22.5,90+22.5)?"ew-resize":se._inRange(n,135-22.5,135+22.5)?"nwse-resize":se._inRange(n,180-22.5,180+22.5)?"ns-resize":se._inRange(n,225-22.5,225+22.5)?"nesw-resize":se._inRange(n,270-22.5,270+22.5)?"ew-resize":se._inRange(n,315-22.5,315+22.5)?"nwse-resize":(se.error("Transformer has unknown angle for cursor detection: "+n),"pointer")}var O5=["top-left","top-center","top-right","middle-right","middle-left","bottom-left","bottom-center","bottom-right"],OA=1e8;function gbe(e){return{x:e.x+e.width/2*Math.cos(e.rotation)+e.height/2*Math.sin(-e.rotation),y:e.y+e.height/2*Math.cos(e.rotation)+e.width/2*Math.sin(e.rotation)}}function K$(e,t,n){const r=n.x+(e.x-n.x)*Math.cos(t)-(e.y-n.y)*Math.sin(t),i=n.y+(e.x-n.x)*Math.sin(t)+(e.y-n.y)*Math.cos(t);return Object.assign(Object.assign({},e),{rotation:e.rotation+t,x:r,y:i})}function mbe(e,t){const n=gbe(e);return K$(e,t,n)}function vbe(e,t,n){let r=t;for(let i=0;i{const i=()=>{this.nodes().length===1&&this.useSingleNodeRotation()&&this.rotation(this.nodes()[0].getAbsoluteRotation()),this._resetTransformCache(),!this._transforming&&!this.isDragging()&&this.update()},o=r._attrsAffectingSize.map(a=>a+"Change."+this._getEventNamespace()).join(" ");r.on(o,i),r.on(dbe.map(a=>a+`.${this._getEventNamespace()}`).join(" "),i),r.on(`absoluteTransformChange.${this._getEventNamespace()}`,i),this._proxyDrag(r)}),this._resetTransformCache();var n=!!this.findOne(".top-left");return n&&this.update(),this}_proxyDrag(t){let n;t.on(`dragstart.${this._getEventNamespace()}`,r=>{n=t.getAbsolutePosition(),!this.isDragging()&&t!==this.findOne(".back")&&this.startDrag(r,!1)}),t.on(`dragmove.${this._getEventNamespace()}`,r=>{if(!n)return;const i=t.getAbsolutePosition(),o=i.x-n.x,a=i.y-n.y;this.nodes().forEach(s=>{if(s===t||s.isDragging())return;const l=s.getAbsolutePosition();s.setAbsolutePosition({x:l.x+o,y:l.y+a}),s.startDrag(r)}),n=null})}getNodes(){return this._nodes||[]}getActiveAnchor(){return this._movingAnchorName}detach(){this._nodes&&this._nodes.forEach(t=>{t.off("."+this._getEventNamespace())}),this._nodes=[],this._resetTransformCache()}_resetTransformCache(){this._clearCache(RA),this._clearCache("transform"),this._clearSelfAndDescendantCache("absoluteTransform")}_getNodeRect(){return this._getCache(RA,this.__getNodeRect)}__getNodeShape(t,n=this.rotation(),r){var i=t.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()}),o=t.getAbsoluteScale(r),a=t.getAbsolutePosition(r),s=i.x*o.x-t.offsetX()*o.x,l=i.y*o.y-t.offsetY()*o.y;const d=(Je.getAngle(t.getAbsoluteRotation())+Math.PI*2)%(Math.PI*2),p={x:a.x+s*Math.cos(d)+l*Math.sin(-d),y:a.y+l*Math.cos(d)+s*Math.sin(d),width:i.width*o.x,height:i.height*o.y,rotation:d};return K$(p,-Je.getAngle(n),{x:0,y:0})}__getNodeRect(){var t=this.getNode();if(!t)return{x:-OA,y:-OA,width:0,height:0,rotation:0};const n=[];this.nodes().map(d=>{const p=d.getClientRect({skipTransform:!0,skipShadow:!0,skipStroke:this.ignoreStroke()});var g=[{x:p.x,y:p.y},{x:p.x+p.width,y:p.y},{x:p.x+p.width,y:p.y+p.height},{x:p.x,y:p.y+p.height}],m=d.getAbsoluteTransform();g.forEach(function(y){var b=m.point(y);n.push(b)})});const r=new Qo;r.rotate(-Je.getAngle(this.rotation()));var i,o,a,s;n.forEach(function(d){var p=r.point(d);i===void 0&&(i=a=p.x,o=s=p.y),i=Math.min(i,p.x),o=Math.min(o,p.y),a=Math.max(a,p.x),s=Math.max(s,p.y)}),r.invert();const l=r.point({x:i,y:o});return{x:l.x,y:l.y,width:a-i,height:s-o,rotation:Je.getAngle(this.rotation())}}getX(){return this._getNodeRect().x}getY(){return this._getNodeRect().y}getWidth(){return this._getNodeRect().width}getHeight(){return this._getNodeRect().height}_createElements(){this._createBack(),O5.forEach(function(t){this._createAnchor(t)}.bind(this)),this._createAnchor("rotater")}_createAnchor(t){var n=new Lv({stroke:"rgb(0, 161, 255)",fill:"white",strokeWidth:1,name:t+" _anchor",dragDistance:0,draggable:!0,hitStrokeWidth:hbe?10:"auto"}),r=this;n.on("mousedown touchstart",function(i){r._handleMouseDown(i)}),n.on("dragstart",i=>{n.stopDrag(),i.cancelBubble=!0}),n.on("dragend",i=>{i.cancelBubble=!0}),n.on("mouseenter",()=>{var i=Je.getAngle(this.rotation()),o=pbe(t,i);n.getStage().content&&(n.getStage().content.style.cursor=o),this._cursorChange=!0}),n.on("mouseout",()=>{n.getStage().content&&(n.getStage().content.style.cursor=""),this._cursorChange=!1}),this.add(n)}_createBack(){var t=new Ae({name:"back",width:0,height:0,draggable:!0,sceneFunc(n){var r=this.getParent(),i=r.padding();n.beginPath(),n.rect(-i,-i,this.width()+i*2,this.height()+i*2),n.moveTo(this.width()/2,-i),r.rotateEnabled()&&n.lineTo(this.width()/2,-r.rotateAnchorOffset()*se._sign(this.height())-i),n.fillStrokeShape(this)},hitFunc:(n,r)=>{if(!!this.shouldOverdrawWholeArea()){var i=this.padding();n.beginPath(),n.rect(-i,-i,r.width()+i*2,r.height()+i*2),n.fillStrokeShape(r)}}});this.add(t),this._proxyDrag(t),t.on("dragstart",n=>{n.cancelBubble=!0}),t.on("dragmove",n=>{n.cancelBubble=!0}),t.on("dragend",n=>{n.cancelBubble=!0}),this.on("dragmove",n=>{this.update()})}_handleMouseDown(t){this._movingAnchorName=t.target.name().split(" ")[0];var n=this._getNodeRect(),r=n.width,i=n.height,o=Math.sqrt(Math.pow(r,2)+Math.pow(i,2));this.sin=Math.abs(i/o),this.cos=Math.abs(r/o),typeof window<"u"&&(window.addEventListener("mousemove",this._handleMouseMove),window.addEventListener("touchmove",this._handleMouseMove),window.addEventListener("mouseup",this._handleMouseUp,!0),window.addEventListener("touchend",this._handleMouseUp,!0)),this._transforming=!0;var a=t.target.getAbsolutePosition(),s=t.target.getStage().getPointerPosition();this._anchorDragOffset={x:s.x-a.x,y:s.y-a.y},this._fire("transformstart",{evt:t.evt,target:this.getNode()}),this._nodes.forEach(l=>{l._fire("transformstart",{evt:t.evt,target:l})})}_handleMouseMove(t){var n,r,i,o=this.findOne("."+this._movingAnchorName),a=o.getStage();a.setPointersPositions(t);const s=a.getPointerPosition();let l={x:s.x-this._anchorDragOffset.x,y:s.y-this._anchorDragOffset.y};const d=o.getAbsolutePosition();this.anchorDragBoundFunc()&&(l=this.anchorDragBoundFunc()(d,l,t)),o.setAbsolutePosition(l);const p=o.getAbsolutePosition();if(!(d.x===p.x&&d.y===p.y)){if(this._movingAnchorName==="rotater"){var g=this._getNodeRect();n=o.x()-g.width/2,r=-o.y()+g.height/2;let pe=Math.atan2(-r,n)+Math.PI/2;g.height<0&&(pe-=Math.PI);var m=Je.getAngle(this.rotation());const fe=m+pe,ye=Je.getAngle(this.rotationSnapTolerance()),xe=vbe(this.rotationSnaps(),fe,ye)-g.rotation,Y=mbe(g,xe);this._fitNodesInto(Y,t);return}var y=this.keepRatio()||t.shiftKey,k=this.centeredScaling()||t.altKey;if(this._movingAnchorName==="top-left"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-right").x(),y:this.findOne(".bottom-right").y()};i=Math.sqrt(Math.pow(b.x-o.x(),2)+Math.pow(b.y-o.y(),2));var S=this.findOne(".top-left").x()>b.x?-1:1,E=this.findOne(".top-left").y()>b.y?-1:1;n=i*this.cos*S,r=i*this.sin*E,this.findOne(".top-left").x(b.x-n),this.findOne(".top-left").y(b.y-r)}}else if(this._movingAnchorName==="top-center")this.findOne(".top-left").y(o.y());else if(this._movingAnchorName==="top-right"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".bottom-left").x(),y:this.findOne(".bottom-left").y()};i=Math.sqrt(Math.pow(o.x()-b.x,2)+Math.pow(b.y-o.y(),2));var S=this.findOne(".top-right").x()b.y?-1:1;n=i*this.cos*S,r=i*this.sin*E,this.findOne(".top-right").x(b.x+n),this.findOne(".top-right").y(b.y-r)}var P=o.position();this.findOne(".top-left").y(P.y),this.findOne(".bottom-right").x(P.x)}else if(this._movingAnchorName==="middle-left")this.findOne(".top-left").x(o.x());else if(this._movingAnchorName==="middle-right")this.findOne(".bottom-right").x(o.x());else if(this._movingAnchorName==="bottom-left"){if(y){var b=k?{x:this.width()/2,y:this.height()/2}:{x:this.findOne(".top-right").x(),y:this.findOne(".top-right").y()};i=Math.sqrt(Math.pow(b.x-o.x(),2)+Math.pow(o.y()-b.y,2));var S=b.x{r._fire("transformend",{evt:t,target:r})}),this._movingAnchorName=null}}_fitNodesInto(t,n){var r=this._getNodeRect();const i=1;if(se._inRange(t.width,-this.padding()*2-i,i)){this.update();return}if(se._inRange(t.height,-this.padding()*2-i,i)){this.update();return}const o=this.flipEnabled();var a=new Qo;if(a.rotate(Je.getAngle(this.rotation())),this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("left")>=0){const g=a.point({x:-this.padding()*2,y:0});if(t.x+=g.x,t.y+=g.y,t.width+=this.padding()*2,this._movingAnchorName=this._movingAnchorName.replace("left","right"),this._anchorDragOffset.x-=g.x,this._anchorDragOffset.y-=g.y,!o){this.update();return}}else if(this._movingAnchorName&&t.width<0&&this._movingAnchorName.indexOf("right")>=0){const g=a.point({x:this.padding()*2,y:0});if(this._movingAnchorName=this._movingAnchorName.replace("right","left"),this._anchorDragOffset.x-=g.x,this._anchorDragOffset.y-=g.y,t.width+=this.padding()*2,!o){this.update();return}}if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("top")>=0){const g=a.point({x:0,y:-this.padding()*2});if(t.x+=g.x,t.y+=g.y,this._movingAnchorName=this._movingAnchorName.replace("top","bottom"),this._anchorDragOffset.x-=g.x,this._anchorDragOffset.y-=g.y,t.height+=this.padding()*2,!o){this.update();return}}else if(this._movingAnchorName&&t.height<0&&this._movingAnchorName.indexOf("bottom")>=0){const g=a.point({x:0,y:this.padding()*2});if(this._movingAnchorName=this._movingAnchorName.replace("bottom","top"),this._anchorDragOffset.x-=g.x,this._anchorDragOffset.y-=g.y,t.height+=this.padding()*2,!o){this.update();return}}if(this.boundBoxFunc()){const g=this.boundBoxFunc()(r,t);g?t=g:se.warn("boundBoxFunc returned falsy. You should return new bound rect from it!")}const s=1e7,l=new Qo;l.translate(r.x,r.y),l.rotate(r.rotation),l.scale(r.width/s,r.height/s);const d=new Qo;d.translate(t.x,t.y),d.rotate(t.rotation),d.scale(t.width/s,t.height/s);const p=d.multiply(l.invert());this._nodes.forEach(g=>{var m;const y=g.getParent().getAbsoluteTransform(),b=g.getTransform().copy();b.translate(g.offsetX(),g.offsetY());const S=new Qo;S.multiply(y.copy().invert()).multiply(p).multiply(y).multiply(b);const E=S.decompose();g.setAttrs(E),this._fire("transform",{evt:n,target:g}),g._fire("transform",{evt:n,target:g}),(m=g.getLayer())===null||m===void 0||m.batchDraw()}),this.rotation(se._getRotation(t.rotation)),this._resetTransformCache(),this.update(),this.getLayer().batchDraw()}forceUpdate(){this._resetTransformCache(),this.update()}_batchChangeChild(t,n){this.findOne(t).setAttrs(n)}update(){var t,n=this._getNodeRect();this.rotation(se._getRotation(n.rotation));var r=n.width,i=n.height,o=this.enabledAnchors(),a=this.resizeEnabled(),s=this.padding(),l=this.anchorSize();this.find("._anchor").forEach(d=>{d.setAttrs({width:l,height:l,offsetX:l/2,offsetY:l/2,stroke:this.anchorStroke(),strokeWidth:this.anchorStrokeWidth(),fill:this.anchorFill(),cornerRadius:this.anchorCornerRadius()})}),this._batchChangeChild(".top-left",{x:0,y:0,offsetX:l/2+s,offsetY:l/2+s,visible:a&&o.indexOf("top-left")>=0}),this._batchChangeChild(".top-center",{x:r/2,y:0,offsetY:l/2+s,visible:a&&o.indexOf("top-center")>=0}),this._batchChangeChild(".top-right",{x:r,y:0,offsetX:l/2-s,offsetY:l/2+s,visible:a&&o.indexOf("top-right")>=0}),this._batchChangeChild(".middle-left",{x:0,y:i/2,offsetX:l/2+s,visible:a&&o.indexOf("middle-left")>=0}),this._batchChangeChild(".middle-right",{x:r,y:i/2,offsetX:l/2-s,visible:a&&o.indexOf("middle-right")>=0}),this._batchChangeChild(".bottom-left",{x:0,y:i,offsetX:l/2+s,offsetY:l/2-s,visible:a&&o.indexOf("bottom-left")>=0}),this._batchChangeChild(".bottom-center",{x:r/2,y:i,offsetY:l/2-s,visible:a&&o.indexOf("bottom-center")>=0}),this._batchChangeChild(".bottom-right",{x:r,y:i,offsetX:l/2-s,offsetY:l/2-s,visible:a&&o.indexOf("bottom-right")>=0}),this._batchChangeChild(".rotater",{x:r/2,y:-this.rotateAnchorOffset()*se._sign(i)-s,visible:this.rotateEnabled()}),this._batchChangeChild(".back",{width:r,height:i,visible:this.borderEnabled(),stroke:this.borderStroke(),strokeWidth:this.borderStrokeWidth(),dash:this.borderDash(),x:0,y:0}),(t=this.getLayer())===null||t===void 0||t.batchDraw()}isTransforming(){return this._transforming}stopTransform(){if(this._transforming){this._removeEvents();var t=this.findOne("."+this._movingAnchorName);t&&t.stopDrag()}}destroy(){return this.getStage()&&this._cursorChange&&this.getStage().content&&(this.getStage().content.style.cursor=""),b0.prototype.destroy.call(this),this.detach(),this._removeEvents(),this}toObject(){return ze.prototype.toObject.call(this)}getClientRect(){return this.nodes().length>0?super.getClientRect():{x:0,y:0,width:0,height:0}}}function ybe(e){return e instanceof Array||se.warn("enabledAnchors value should be an array"),e instanceof Array&&e.forEach(function(t){O5.indexOf(t)===-1&&se.warn("Unknown anchor name: "+t+". Available names are: "+O5.join(", "))}),e||[]}bn.prototype.className="Transformer";hr(bn);j.addGetterSetter(bn,"enabledAnchors",O5,ybe);j.addGetterSetter(bn,"flipEnabled",!0,ks());j.addGetterSetter(bn,"resizeEnabled",!0);j.addGetterSetter(bn,"anchorSize",10,De());j.addGetterSetter(bn,"rotateEnabled",!0);j.addGetterSetter(bn,"rotationSnaps",[]);j.addGetterSetter(bn,"rotateAnchorOffset",50,De());j.addGetterSetter(bn,"rotationSnapTolerance",5,De());j.addGetterSetter(bn,"borderEnabled",!0);j.addGetterSetter(bn,"anchorStroke","rgb(0, 161, 255)");j.addGetterSetter(bn,"anchorStrokeWidth",1,De());j.addGetterSetter(bn,"anchorFill","white");j.addGetterSetter(bn,"anchorCornerRadius",0,De());j.addGetterSetter(bn,"borderStroke","rgb(0, 161, 255)");j.addGetterSetter(bn,"borderStrokeWidth",1,De());j.addGetterSetter(bn,"borderDash");j.addGetterSetter(bn,"keepRatio",!0);j.addGetterSetter(bn,"centeredScaling",!1);j.addGetterSetter(bn,"ignoreStroke",!1);j.addGetterSetter(bn,"padding",0,De());j.addGetterSetter(bn,"node");j.addGetterSetter(bn,"nodes");j.addGetterSetter(bn,"boundBoxFunc");j.addGetterSetter(bn,"anchorDragBoundFunc");j.addGetterSetter(bn,"shouldOverdrawWholeArea",!1);j.addGetterSetter(bn,"useSingleNodeRotation",!0);j.backCompat(bn,{lineEnabled:"borderEnabled",rotateHandlerOffset:"rotateAnchorOffset",enabledHandlers:"enabledAnchors"});class Eu extends Ae{_sceneFunc(t){t.beginPath(),t.arc(0,0,this.radius(),0,Je.getAngle(this.angle()),this.clockwise()),t.lineTo(0,0),t.closePath(),t.fillStrokeShape(this)}getWidth(){return this.radius()*2}getHeight(){return this.radius()*2}setWidth(t){this.radius(t/2)}setHeight(t){this.radius(t/2)}}Eu.prototype.className="Wedge";Eu.prototype._centroid=!0;Eu.prototype._attrsAffectingSize=["radius"];hr(Eu);j.addGetterSetter(Eu,"radius",0,De());j.addGetterSetter(Eu,"angle",0,De());j.addGetterSetter(Eu,"clockwise",!1);j.backCompat(Eu,{angleDeg:"angle",getAngleDeg:"getAngle",setAngleDeg:"setAngle"});function NA(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null}var xbe=[512,512,456,512,328,456,335,512,405,328,271,456,388,335,292,512,454,405,364,328,298,271,496,456,420,388,360,335,312,292,273,512,482,454,428,405,383,364,345,328,312,298,284,271,259,496,475,456,437,420,404,388,374,360,347,335,323,312,302,292,282,273,265,512,497,482,468,454,441,428,417,405,394,383,373,364,354,345,337,328,320,312,305,298,291,284,278,271,265,259,507,496,485,475,465,456,446,437,428,420,412,404,396,388,381,374,367,360,354,347,341,335,329,323,318,312,307,302,297,292,287,282,278,273,269,265,261,512,505,497,489,482,475,468,461,454,447,441,435,428,422,417,411,405,399,394,389,383,378,373,368,364,359,354,350,345,341,337,332,328,324,320,316,312,309,305,301,298,294,291,287,284,281,278,274,271,268,265,262,259,257,507,501,496,491,485,480,475,470,465,460,456,451,446,442,437,433,428,424,420,416,412,408,404,400,396,392,388,385,381,377,374,370,367,363,360,357,354,350,347,344,341,338,335,332,329,326,323,320,318,315,312,310,307,304,302,299,297,294,292,289,287,285,282,280,278,275,273,271,269,267,265,263,261,259],bbe=[9,11,12,13,13,14,14,15,15,15,15,16,16,16,16,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24];function Sbe(e,t){var n=e.data,r=e.width,i=e.height,o,a,s,l,d,p,g,m,y,b,S,E,P,k,L,I,O,N,D,F,U,W,q,pe,fe=t+t+1,ye=r-1,Pe=i-1,xe=t+1,Y=xe*(xe+1)/2,V=new NA,ae=null,oe=V,X=null,me=null,ve=xbe[t],Se=bbe[t];for(s=1;s>Se,q!==0?(q=255/q,n[p]=(m*ve>>Se)*q,n[p+1]=(y*ve>>Se)*q,n[p+2]=(b*ve>>Se)*q):n[p]=n[p+1]=n[p+2]=0,m-=E,y-=P,b-=k,S-=L,E-=X.r,P-=X.g,k-=X.b,L-=X.a,l=g+((l=o+t+1)>Se,q>0?(q=255/q,n[l]=(m*ve>>Se)*q,n[l+1]=(y*ve>>Se)*q,n[l+2]=(b*ve>>Se)*q):n[l]=n[l+1]=n[l+2]=0,m-=E,y-=P,b-=k,S-=L,E-=X.r,P-=X.g,k-=X.b,L-=X.a,l=o+((l=a+xe)0&&Sbe(t,n)};j.addGetterSetter(ze,"blurRadius",0,De(),j.afterSetFilter);const Cbe=function(e){var t=this.brightness()*255,n=e.data,r=n.length,i;for(i=0;i255?255:i,o=o<0?0:o>255?255:o,a=a<0?0:a>255?255:a,n[s]=i,n[s+1]=o,n[s+2]=a};j.addGetterSetter(ze,"contrast",0,De(),j.afterSetFilter);const kbe=function(e){var t=this.embossStrength()*10,n=this.embossWhiteLevel()*255,r=this.embossDirection(),i=this.embossBlend(),o=0,a=0,s=e.data,l=e.width,d=e.height,p=l*4,g=d;switch(r){case"top-left":o=-1,a=-1;break;case"top":o=-1,a=0;break;case"top-right":o=-1,a=1;break;case"right":o=0,a=1;break;case"bottom-right":o=1,a=1;break;case"bottom":o=1,a=0;break;case"bottom-left":o=1,a=-1;break;case"left":o=0,a=-1;break;default:se.error("Unknown emboss direction: "+r)}do{var m=(g-1)*p,y=o;g+y<1&&(y=0),g+y>d&&(y=0);var b=(g-1+y)*l*4,S=l;do{var E=m+(S-1)*4,P=a;S+P<1&&(P=0),S+P>l&&(P=0);var k=b+(S-1+P)*4,L=s[E]-s[k],I=s[E+1]-s[k+1],O=s[E+2]-s[k+2],N=L,D=N>0?N:-N,F=I>0?I:-I,U=O>0?O:-O;if(F>D&&(N=I),U>D&&(N=O),N*=t,i){var W=s[E]+N,q=s[E+1]+N,pe=s[E+2]+N;s[E]=W>255?255:W<0?0:W,s[E+1]=q>255?255:q<0?0:q,s[E+2]=pe>255?255:pe<0?0:pe}else{var fe=n-N;fe<0?fe=0:fe>255&&(fe=255),s[E]=s[E+1]=s[E+2]=fe}}while(--S)}while(--g)};j.addGetterSetter(ze,"embossStrength",.5,De(),j.afterSetFilter);j.addGetterSetter(ze,"embossWhiteLevel",.5,De(),j.afterSetFilter);j.addGetterSetter(ze,"embossDirection","top-left",null,j.afterSetFilter);j.addGetterSetter(ze,"embossBlend",!1,null,j.afterSetFilter);function BS(e,t,n,r,i){var o=n-t,a=i-r,s;return o===0?r+a/2:a===0?r:(s=(e-t)/o,s=a*s+r,s)}const Ebe=function(e){var t=e.data,n=t.length,r=t[0],i=r,o,a=t[1],s=a,l,d=t[2],p=d,g,m,y=this.enhance();if(y!==0){for(m=0;mi&&(i=o),l=t[m+1],ls&&(s=l),g=t[m+2],gp&&(p=g);i===r&&(i=255,r=0),s===a&&(s=255,a=0),p===d&&(p=255,d=0);var b,S,E,P,k,L,I,O,N;for(y>0?(S=i+y*(255-i),E=r-y*(r-0),k=s+y*(255-s),L=a-y*(a-0),O=p+y*(255-p),N=d-y*(d-0)):(b=(i+r)*.5,S=i+y*(i-b),E=r+y*(r-b),P=(s+a)*.5,k=s+y*(s-P),L=a+y*(a-P),I=(p+d)*.5,O=p+y*(p-I),N=d+y*(d-I)),m=0;mP?E:P;var k=a,L=o,I,O,N=360/L*Math.PI/180,D,F;for(O=0;OL?k:L;var I=a,O=o,N,D,F=n.polarRotation||0,U,W;for(p=0;p