@leafer-ui/draw 1.12.1 → 1.12.2

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/lib/draw.cjs CHANGED
@@ -509,7 +509,7 @@ const UIRender = {
509
509
  if (stroke && !__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke, this, canvas, options) : Paint.stroke(stroke, this, canvas, options);
510
510
  }
511
511
  } else {
512
- if (data.__pathInputed) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
512
+ if (data.__pathForRender) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
513
513
  }
514
514
  },
515
515
  __drawShape(canvas, options) {
@@ -633,7 +633,7 @@ exports.UI = UI_1 = class UI extends core.Leaf {
633
633
  getPath(curve, pathForRender) {
634
634
  this.__layout.update();
635
635
  let path = pathForRender ? this.__.__pathForRender : this.__.path;
636
- if (!path) core.pen.set(path = []), this.__drawPathByBox(core.pen);
636
+ if (!path) core.pen.set(path = []), this.__drawPathByBox(core.pen, !pathForRender);
637
637
  return curve ? core.PathConvert.toCanvasData(path, true) : path;
638
638
  }
639
639
  getPathString(curve, pathForRender, floatLength) {
@@ -661,17 +661,18 @@ exports.UI = UI_1 = class UI extends core.Leaf {
661
661
  }
662
662
  __drawPath(canvas) {
663
663
  canvas.beginPath();
664
- this.__drawPathByData(canvas, this.__.path);
664
+ this.__drawPathByData(canvas, this.__.path, true);
665
665
  }
666
- __drawPathByData(drawer, data) {
667
- data ? core.PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer);
666
+ __drawPathByData(drawer, data, ignoreCornerRadius) {
667
+ data ? core.PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer, ignoreCornerRadius);
668
668
  }
669
- __drawPathByBox(drawer) {
669
+ __drawPathByBox(drawer, ignoreCornerRadius) {
670
670
  const {x: x, y: y, width: width, height: height} = this.__layout.boxBounds;
671
- if (this.__.cornerRadius) {
671
+ if (this.__.cornerRadius && !ignoreCornerRadius) {
672
672
  const {cornerRadius: cornerRadius} = this.__;
673
673
  drawer.roundRect(x, y, width, height, core.isNumber(cornerRadius) ? [ cornerRadius ] : cornerRadius);
674
674
  } else drawer.rect(x, y, width, height);
675
+ drawer.closePath();
675
676
  }
676
677
  drawImagePlaceholder(_paint, canvas, renderOptions) {
677
678
  Paint.fill(this.__.placeholderColor, this, canvas, renderOptions);
@@ -940,6 +941,9 @@ exports.Leafer = Leafer_1 = class Leafer extends exports.Group {
940
941
  get layoutLocked() {
941
942
  return !this.layouter.running;
942
943
  }
944
+ get view() {
945
+ return this.canvas && this.canvas.view;
946
+ }
943
947
  get FPS() {
944
948
  return this.renderer ? this.renderer.FPS : 60;
945
949
  }
@@ -991,7 +995,6 @@ exports.Leafer = Leafer_1 = class Leafer extends exports.Group {
991
995
  this.__controllers.push(this.renderer = core.Creator.renderer(this, canvas, config), this.watcher = core.Creator.watcher(this, config), this.layouter = core.Creator.layouter(this, config));
992
996
  if (this.isApp) this.__setApp();
993
997
  this.__checkAutoLayout();
994
- this.view = canvas.view;
995
998
  if (!parentApp) {
996
999
  this.selector = core.Creator.selector(this);
997
1000
  this.interaction = core.Creator.interaction(this, canvas, this.selector, config);
@@ -1271,7 +1274,7 @@ exports.Leafer = Leafer_1 = class Leafer extends exports.Group {
1271
1274
  if (this.canvasManager) this.canvasManager.destroy();
1272
1275
  }
1273
1276
  if (this.canvas) this.canvas.destroy();
1274
- this.config.view = this.view = this.parentApp = null;
1277
+ this.config.view = this.parentApp = null;
1275
1278
  if (this.userConfig) this.userConfig.view = null;
1276
1279
  super.destroy();
1277
1280
  setTimeout(() => {
@@ -1455,7 +1458,6 @@ exports.Ellipse = class Ellipse extends exports.UI {
1455
1458
  if (startAngle || endAngle) {
1456
1459
  if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
1457
1460
  ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
1458
- if (innerRadius < 1) closePath$2(path);
1459
1461
  } else {
1460
1462
  if (innerRadius < 1) {
1461
1463
  ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius);
@@ -1463,16 +1465,16 @@ exports.Ellipse = class Ellipse extends exports.UI {
1463
1465
  }
1464
1466
  ellipse(path, rx, ry, rx, ry, 0, 360, 0, true);
1465
1467
  }
1466
- if (core.Platform.ellipseToCurve) this.__.path = this.getPath(true);
1467
1468
  } else {
1468
1469
  if (startAngle || endAngle) {
1469
1470
  moveTo$3(path, rx, ry);
1470
1471
  ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle, false);
1471
- closePath$2(path);
1472
1472
  } else {
1473
1473
  ellipse(path, rx, ry, rx, ry);
1474
1474
  }
1475
1475
  }
1476
+ closePath$2(path);
1477
+ if (core.Platform.ellipseToCurve) this.__.path = this.getPath(true);
1476
1478
  }
1477
1479
  };
1478
1480
 
package/lib/draw.esm.js CHANGED
@@ -509,7 +509,7 @@ const UIRender = {
509
509
  if (stroke && !__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke, this, canvas, options) : Paint.stroke(stroke, this, canvas, options);
510
510
  }
511
511
  } else {
512
- if (data.__pathInputed) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
512
+ if (data.__pathForRender) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
513
513
  }
514
514
  },
515
515
  __drawShape(canvas, options) {
@@ -633,7 +633,7 @@ let UI = UI_1 = class UI extends Leaf {
633
633
  getPath(curve, pathForRender) {
634
634
  this.__layout.update();
635
635
  let path = pathForRender ? this.__.__pathForRender : this.__.path;
636
- if (!path) pen.set(path = []), this.__drawPathByBox(pen);
636
+ if (!path) pen.set(path = []), this.__drawPathByBox(pen, !pathForRender);
637
637
  return curve ? PathConvert.toCanvasData(path, true) : path;
638
638
  }
639
639
  getPathString(curve, pathForRender, floatLength) {
@@ -661,17 +661,18 @@ let UI = UI_1 = class UI extends Leaf {
661
661
  }
662
662
  __drawPath(canvas) {
663
663
  canvas.beginPath();
664
- this.__drawPathByData(canvas, this.__.path);
664
+ this.__drawPathByData(canvas, this.__.path, true);
665
665
  }
666
- __drawPathByData(drawer, data) {
667
- data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer);
666
+ __drawPathByData(drawer, data, ignoreCornerRadius) {
667
+ data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer, ignoreCornerRadius);
668
668
  }
669
- __drawPathByBox(drawer) {
669
+ __drawPathByBox(drawer, ignoreCornerRadius) {
670
670
  const {x: x, y: y, width: width, height: height} = this.__layout.boxBounds;
671
- if (this.__.cornerRadius) {
671
+ if (this.__.cornerRadius && !ignoreCornerRadius) {
672
672
  const {cornerRadius: cornerRadius} = this.__;
673
673
  drawer.roundRect(x, y, width, height, isNumber(cornerRadius) ? [ cornerRadius ] : cornerRadius);
674
674
  } else drawer.rect(x, y, width, height);
675
+ drawer.closePath();
675
676
  }
676
677
  drawImagePlaceholder(_paint, canvas, renderOptions) {
677
678
  Paint.fill(this.__.placeholderColor, this, canvas, renderOptions);
@@ -940,6 +941,9 @@ let Leafer = Leafer_1 = class Leafer extends Group {
940
941
  get layoutLocked() {
941
942
  return !this.layouter.running;
942
943
  }
944
+ get view() {
945
+ return this.canvas && this.canvas.view;
946
+ }
943
947
  get FPS() {
944
948
  return this.renderer ? this.renderer.FPS : 60;
945
949
  }
@@ -991,7 +995,6 @@ let Leafer = Leafer_1 = class Leafer extends Group {
991
995
  this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
992
996
  if (this.isApp) this.__setApp();
993
997
  this.__checkAutoLayout();
994
- this.view = canvas.view;
995
998
  if (!parentApp) {
996
999
  this.selector = Creator.selector(this);
997
1000
  this.interaction = Creator.interaction(this, canvas, this.selector, config);
@@ -1271,7 +1274,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
1271
1274
  if (this.canvasManager) this.canvasManager.destroy();
1272
1275
  }
1273
1276
  if (this.canvas) this.canvas.destroy();
1274
- this.config.view = this.view = this.parentApp = null;
1277
+ this.config.view = this.parentApp = null;
1275
1278
  if (this.userConfig) this.userConfig.view = null;
1276
1279
  super.destroy();
1277
1280
  setTimeout(() => {
@@ -1455,7 +1458,6 @@ let Ellipse = class Ellipse extends UI {
1455
1458
  if (startAngle || endAngle) {
1456
1459
  if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
1457
1460
  ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
1458
- if (innerRadius < 1) closePath$2(path);
1459
1461
  } else {
1460
1462
  if (innerRadius < 1) {
1461
1463
  ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius);
@@ -1463,16 +1465,16 @@ let Ellipse = class Ellipse extends UI {
1463
1465
  }
1464
1466
  ellipse(path, rx, ry, rx, ry, 0, 360, 0, true);
1465
1467
  }
1466
- if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
1467
1468
  } else {
1468
1469
  if (startAngle || endAngle) {
1469
1470
  moveTo$3(path, rx, ry);
1470
1471
  ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle, false);
1471
- closePath$2(path);
1472
1472
  } else {
1473
1473
  ellipse(path, rx, ry, rx, ry);
1474
1474
  }
1475
1475
  }
1476
+ closePath$2(path);
1477
+ if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
1476
1478
  }
1477
1479
  };
1478
1480
 
@@ -1,2 +1,2 @@
1
- import{defineKey as t,decorateLeafAttr as e,attr as i,createDescriptor as s,Plugin as o,isObject as r,PathConvert as a,DataHelper as n,Debug as _,LeafData as h,isString as d,isUndefined as l,isArray as p,canvasSizeAttrs as u,UICreator as c,FourNumberHelper as g,dataProcessor as y,dataType as v,surfaceType as f,opacityType as w,visibleType as x,dimType as S,sortType as m,maskType as R,eraserType as k,positionType as B,boundsType as A,scaleType as b,rotationType as C,scrollType as P,autoLayoutType as F,naturalBoundsType as W,affectRenderBoundsType as E,pathInputType as I,pathType as D,hitType as T,strokeType as L,cursorType as z,rewrite as M,Leaf as O,useModule as N,rewriteAble as V,MathHelper as H,pen as Y,PathCorner as U,PathDrawer as X,isNumber as j,registerUI as J,Branch as q,LeafList as G,Resource as $,getBoundsData as K,Creator as Q,CanvasManager as Z,WaitHelper as tt,LeaferEvent as et,Bounds as it,ResizeEvent as st,AutoBounds as ot,Run as rt,LayoutEvent as at,RenderEvent as nt,WatchEvent as _t,ImageManager as ht,BoundsHelper as dt,PathCommandDataHelper as lt,Platform as pt,PointHelper as ut,affectStrokeBoundsType as ct,getPointData as gt,LeaferImage as yt,ImageEvent as vt,Matrix as ft,PathCreator as wt}from"@leafer/core";export*from"@leafer/core";function xt(t,e,i,s){var o,r=arguments.length,a=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,s);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a}function St(t){return e(t,t=>i({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0),this.__layout.renderChanged||this.__layout.renderChange()}}))}function mt(t){return e(t,t=>i({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}}))}function Rt(){return(e,i)=>{const s="_"+i;t(e,i,{set(t){this.isLeafer&&(this[s]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[s]||this:this.leafer&&this.leafer.zoomLayer}})}}function kt(e){return(i,o)=>{t(i,o,s(o,e))}}"function"==typeof SuppressedError&&SuppressedError;const Bt={},At={hasTransparent:function(t){if(!t||7===t.length||4===t.length)return!1;if("transparent"===t)return!0;const e=t[0];if("#"===e)switch(t.length){case 5:return"f"!==t[4]&&"F"!==t[4];case 9:return"f"!==t[7]&&"F"!==t[7]||"f"!==t[8]&&"F"!==t[8]}else if(("r"===e||"h"===e)&&"a"===t[3]){const e=t.lastIndexOf(",");if(e>-1)return parseFloat(t.slice(e+1))<1}return!1}},bt={number:(t,e)=>r(t)?"percent"===t.type?t.value*e:t.value:t},Ct={},Pt={},Ft={},Wt={},Et={},It={apply(){o.need("filter")}},Dt={},Tt={setStyleName:()=>o.need("state"),set:()=>o.need("state")},Lt={list:{},register(t,e){Lt.list[t]=e},get:t=>Lt.list[t]},{parse:zt,objectToCanvasData:Mt}=a,{stintSet:Ot}=n,{hasTransparent:Nt}=At,Vt={originPaint:{}},Ht=_.get("UIData");class Yt extends h{get scale(){const{scaleX:t,scaleY:e}=this;return t!==e?{x:t,y:e}:t}get __strokeWidth(){return this.__getRealStrokeWidth()}get __maxStrokeWidth(){const t=this;return t.__hasMultiStrokeStyle?Math.max(t.__hasMultiStrokeStyle,t.strokeWidth):t.strokeWidth}get __hasMultiPaint(){const t=this;return t.fill&&this.__useStroke||t.__isFills&&t.fill.length>1||t.__isStrokes&&t.stroke.length>1||t.__useEffect}get __clipAfterFill(){const t=this;return t.cornerRadius||t.innerShadow||t.__pathInputed}get __hasSurface(){return this.fill||this.stroke}get __autoWidth(){return!this._width}get __autoHeight(){return!this._height}get __autoSide(){return!this._width||!this._height}get __autoSize(){return!this._width&&!this._height}setVisible(t){this._visible=t;const{leafer:e}=this.__leaf;e&&(e.watcher.hasVisible=!0)}setWidth(t){t<0?(this._width=-t,this.__leaf.scaleX*=-1,Ht.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,Ht.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),d(t)||!t?(Ot(this,"__isTransparentFill",Nt(t)),this.__isFills&&this.__removePaint("fill",!0),this._fill=t):r(t)&&this.__setPaint("fill",t)}setStroke(t){d(t)||!t?(Ot(this,"__isTransparentStroke",Nt(t)),this.__isStrokes&&this.__removePaint("stroke",!0),this._stroke=t):r(t)&&this.__setPaint("stroke",t)}setPath(t){const e=d(t);e||t&&r(t[0])?(this.__setInput("path",t),this._path=e?zt(t):Mt(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){Ut(this,"shadow",t)}setInnerShadow(t){Ut(this,"innerShadow",t)}setFilter(t){Ut(this,"filter",t)}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&Pt.compute("fill",this.__leaf),e&&Pt.compute("stroke",this.__leaf),this.__needComputePaint=void 0}__getRealStrokeWidth(t){let{strokeWidth:e,strokeWidthFixed:i}=this;if(t&&(t.strokeWidth&&(e=t.strokeWidth),l(t.strokeWidthFixed)||(i=t.strokeWidthFixed)),i){const t=this.__leaf.getClampRenderScale();return t>1?e/t:e}return e}__setPaint(t,e){this.__setInput(t,e);const i=this.__leaf.__layout;i.boxChanged||i.boxChange(),p(e)&&!e.length?this.__removePaint(t):"fill"===t?(this.__isFills=!0,this._fill||(this._fill=Vt)):(this.__isStrokes=!0,this._stroke||(this._stroke=Vt))}__removePaint(t,e){e&&this.__removeInput(t),Ft.recycleImage(t,this),"fill"===t?(Ot(this,"__isAlphaPixelFill",void 0),this._fill=this.__isFills=void 0):(Ot(this,"__isAlphaPixelStroke",void 0),Ot(this,"__hasMultiStrokeStyle",void 0),this._stroke=this.__isStrokes=void 0)}}function Ut(t,e,i){t.__setInput(e,i),p(i)?(i.some(t=>!1===t.visible)&&(i=i.filter(t=>!1!==t.visible)),i.length||(i=void 0)):i=i&&!1!==i.visible?[i]:void 0,t["_"+e]=i}class Xt extends Yt{}class jt extends Xt{get __boxStroke(){return!this.__pathInputed}get __drawAfterFill(){return this.__single||this.__clipAfterFill}get __clipAfterFill(){const t=this;return"show"!==t.overflow&&t.__leaf.children.length&&(t.__leaf.isOverflow||super.__clipAfterFill)}}class Jt extends Xt{__getInputData(t,e){const i=super.__getInputData(t,e);return u.forEach(t=>delete i[t]),i}}class qt extends jt{}class Gt extends Yt{get __usePathBox(){return this.points||this.__pathInputed}}class $t extends Yt{get __boxStroke(){return!this.__pathInputed}}class Kt extends Yt{get __boxStroke(){return!this.__pathInputed}}class Qt extends Gt{}class Zt extends Yt{}class te extends Yt{get __pathInputed(){return 2}}class ee extends Xt{}const ie={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class se extends Yt{get __useNaturalRatio(){return!1}setFontWeight(t){d(t)?(this.__setInput("fontWeight",t),t=ie[t]||400):this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t}setBoxStyle(t){let e=this.__leaf,i=e.__box;if(t){const{boxStyle:s}=this;if(i)for(let t in s)i[t]=void 0;else i=e.__box=c.get("Rect",0);const o=e.__layout,r=i.__layout;s||(i.parent=e,i.__world=e.__world,r.boxBounds=o.boxBounds),i.set(t),r.strokeChanged&&o.strokeChange()}else i&&(e.__box=i.parent=null,i.destroy());this._boxStyle=t}__getInputData(t,e){const i=super.__getInputData(t,e);return i.textEditing&&delete i.textEditing,i}}class oe extends $t{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.fill=t?{type:"image",mode:"stretch",url:t}:void 0}__getData(){const t=super.__getData();return t.url&&delete t.fill,t}__getInputData(t,e){const i=super.__getInputData(t,e);return i.url&&delete i.fill,i}}class re extends $t{get __isCanvas(){return!0}get __drawAfterFill(){return!0}__getInputData(t,e){const i=super.__getInputData(t,e);return i.url=this.__leaf.canvas.toDataURL("image/png"),i}}const{max:ae,add:ne}=g,_e={__updateStrokeSpread(){let t=0,e=0;const i=this.__,{strokeAlign:s,__maxStrokeWidth:o}=i,r=this.__box;if((i.stroke||"all"===i.hitStroke)&&o&&"inside"!==s&&(e=t="center"===s?o/2:o,!i.__boxStroke)){const e=i.__isLinePath?0:10*t,s="none"===i.strokeCap?0:o;t+=Math.max(e,s)}return i.__useArrow&&(t+=5*o),r&&(t=ae(t,r.__layout.strokeSpread=r.__updateStrokeSpread()),e=Math.max(e,r.__layout.strokeBoxSpread)),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:i,blur:s,backgroundBlur:o,filter:r,renderSpread:a}=this.__,{strokeSpread:n}=this.__layout,_=this.__box;e&&(t=Et.getShadowRenderSpread(this,e)),s&&(t=ae(t,s)),r&&(t=ne(t,It.getSpread(r))),a&&(t=ne(t,a)),n&&(t=ne(t,n));let h=t;return i&&(h=ae(h,Et.getInnerShadowSpread(this,i))),o&&(h=ae(h,o)),this.__layout.renderShapeSpread=h,_?ae(_.__updateRenderSpread(),t):t}},{stintSet:he}=n,de={__updateChange(){const t=this.__;if(t.__useStroke){const e=t.__useStroke=!(!t.stroke||!t.strokeWidth);he(this.__world,"half",e&&"center"===t.strokeAlign&&t.strokeWidth%2),he(t,"__fillAfterStroke",e&&"outside"===t.strokeAlign&&t.fill&&!t.__isTransparentFill)}if(t.__useEffect){const{shadow:e,fill:i,stroke:s}=t,o=t.innerShadow||t.blur||t.backgroundBlur||t.filter;he(t,"__isFastShadow",e&&!o&&e.length<2&&!e[0].spread&&!Et.isTransformShadow(e[0])&&i&&!t.__isTransparentFill&&!(p(i)&&i.length>1)&&(this.useFastShadow||!s||s&&"inside"===t.strokeAlign)),t.__useEffect=!(!e&&!o)}t.__checkSingle(),he(t,"__complex",t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect)},__drawFast(t,e){le(this,t,e)},__draw(t,e,i){const s=this.__;if(s.__complex){s.__needComputePaint&&s.__computePaint();const{fill:o,stroke:r,__drawAfterFill:a,__fillAfterStroke:n,__isFastShadow:_}=s;if(this.__drawRenderPath(t),s.__useEffect&&!_){const _=Pt.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:h,innerShadow:d,filter:l}=s;h&&Et.shadow(this,t,_),n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e)),o&&(s.__isFills?Pt.fills(o,this,t,e):Pt.fill(o,this,t,e)),a&&this.__drawAfterFill(t,e),d&&Et.innerShadow(this,t,_),r&&!n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e)),l&&It.apply(l,this,this.__nowWorld,t,i,_),_.worldCanvas&&_.worldCanvas.recycle(),_.canvas.recycle()}else{if(n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e)),_){const e=s.shadow[0],{scaleX:i,scaleY:o}=this.getRenderScaleData(!0,e.scaleFixed);t.save(),t.setWorldShadow(e.x*i,e.y*o,e.blur*i,At.string(e.color))}o&&(s.__isFills?Pt.fills(o,this,t,e):Pt.fill(o,this,t,e)),_&&t.restore(),a&&this.__drawAfterFill(t,e),r&&!n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e))}}else s.__pathInputed?le(this,t,e):this.__drawFast(t,e)},__drawShape(t,e){this.__drawRenderPath(t);const i=this.__,{fill:s,stroke:o}=i;s&&!e.ignoreFill&&(i.__isAlphaPixelFill?Pt.fills(s,this,t,e):Pt.fill("#000000",this,t,e)),i.__isCanvas&&this.__drawAfterFill(t,e),o&&!e.ignoreStroke&&(i.__isAlphaPixelStroke?Pt.strokes(o,this,t,e):Pt.stroke("#000000",this,t,e))},__drawAfterFill(t,e){this.__.__clipAfterFill?(t.save(),t.clipUI(this),this.__drawContent(t,e),t.restore()):this.__drawContent(t,e)}};function le(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r,__fillAfterStroke:a}=t.__;t.__drawRenderPath(e),a&&Pt.stroke(o,t,e,i),s&&Pt.fill(s,t,e,i),r&&t.__drawAfterFill(e,i),o&&!a&&Pt.stroke(o,t,e,i)}const pe={__drawFast(t,e){let{x:i,y:s,width:o,height:r}=this.__layout.boxBounds;const{fill:a,stroke:n,__drawAfterFill:_}=this.__;if(a&&(t.fillStyle=a,t.fillRect(i,s,o,r)),_&&this.__drawAfterFill(t,e),n){const{strokeAlign:a,__strokeWidth:_}=this.__;if(!_)return;t.setStroke(n,_,this.__);const h=_/2;switch(a){case"center":t.strokeRect(0,0,o,r);break;case"inside":o-=_,r-=_,o<0||r<0?(t.save(),this.__clip(t,e),t.strokeRect(i+h,s+h,o,r),t.restore()):t.strokeRect(i+h,s+h,o,r);break;case"outside":t.strokeRect(i-h,s-h,o+_,r+_)}}}};var ue;let ce=ue=class extends O{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(t){H.assignScale(this,t)}get scale(){return this.__.scale}get isAutoWidth(){const t=this.__;return t.__autoWidth||t.autoWidth}get isAutoHeight(){const t=this.__;return t.__autoHeight||t.autoHeight}get pen(){const{path:t}=this.__;return Y.set(this.path=t||[]),t||this.__drawPathByBox(Y),Y}reset(t){}set(t,e){t&&Object.assign(this,t)}get(t){return d(t)?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}find(t,e){return o.need("find")}findTag(t){return this.find({tag:t})}findOne(t,e){return o.need("find")}findId(t){return this.findOne({id:t})}getPath(t,e){this.__layout.update();let i=e?this.__.__pathForRender:this.__.path;return i||(Y.set(i=[]),this.__drawPathByBox(Y)),t?a.toCanvasData(i,!0):i}getPathString(t,e,i){return a.stringify(this.getPath(t,e),i)}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||Dt.running?t.__computePaint():t.__needComputePaint=!0}}__updateRenderPath(){const t=this.__;t.path?(t.__pathForRender=t.cornerRadius?U.smooth(t.path,t.cornerRadius,t.cornerSmoothing):t.path,t.__useArrow&&Ct.addArrows(this)):t.__pathForRender&&(t.__pathForRender=void 0)}__drawRenderPath(t){t.beginPath(),this.__drawPathByData(t,this.__.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path)}__drawPathByData(t,e){e?X.drawPathByData(t,e):this.__drawPathByBox(t)}__drawPathByBox(t){const{x:e,y:i,width:s,height:o}=this.__layout.boxBounds;if(this.__.cornerRadius){const{cornerRadius:r}=this.__;t.roundRect(e,i,s,o,j(r)?[r]:r)}else t.rect(e,i,s,o)}drawImagePlaceholder(t,e,i){Pt.fill(this.__.placeholderColor,this,e,i)}animate(t,e,i,s){return this.set(t),o.need("animate")}killAnimate(t,e){}export(t,e){return o.need("export")}syncExport(t,e){return o.need("export")}clone(t){const e=n.clone(this.toJSON());return t&&Object.assign(e,t),ue.one(e)}static one(t,e,i,s,o){return c.get(t.tag||this.prototype.__tag,t,e,i,s,o)}static registerUI(){J()(this)}static registerData(t){y(t)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.fill=this.stroke=null,this.__animate&&this.killAnimate(),super.destroy()}};xt([y(Yt)],ce.prototype,"__",void 0),xt([Rt()],ce.prototype,"zoomLayer",void 0),xt([v("")],ce.prototype,"id",void 0),xt([v("")],ce.prototype,"name",void 0),xt([v("")],ce.prototype,"className",void 0),xt([f("pass-through")],ce.prototype,"blendMode",void 0),xt([w(1)],ce.prototype,"opacity",void 0),xt([x(!0)],ce.prototype,"visible",void 0),xt([f(!1)],ce.prototype,"locked",void 0),xt([S(!1)],ce.prototype,"dim",void 0),xt([S(!1)],ce.prototype,"dimskip",void 0),xt([m(0)],ce.prototype,"zIndex",void 0),xt([R(!1)],ce.prototype,"mask",void 0),xt([k(!1)],ce.prototype,"eraser",void 0),xt([B(0,!0)],ce.prototype,"x",void 0),xt([B(0,!0)],ce.prototype,"y",void 0),xt([A(100,!0)],ce.prototype,"width",void 0),xt([A(100,!0)],ce.prototype,"height",void 0),xt([b(1,!0)],ce.prototype,"scaleX",void 0),xt([b(1,!0)],ce.prototype,"scaleY",void 0),xt([C(0,!0)],ce.prototype,"rotation",void 0),xt([C(0,!0)],ce.prototype,"skewX",void 0),xt([C(0,!0)],ce.prototype,"skewY",void 0),xt([B(0,!0)],ce.prototype,"offsetX",void 0),xt([B(0,!0)],ce.prototype,"offsetY",void 0),xt([P(0,!0)],ce.prototype,"scrollX",void 0),xt([P(0,!0)],ce.prototype,"scrollY",void 0),xt([F()],ce.prototype,"origin",void 0),xt([F()],ce.prototype,"around",void 0),xt([v(!1)],ce.prototype,"lazy",void 0),xt([W(1)],ce.prototype,"pixelRatio",void 0),xt([E(0)],ce.prototype,"renderSpread",void 0),xt([I()],ce.prototype,"path",void 0),xt([D()],ce.prototype,"windingRule",void 0),xt([D(!0)],ce.prototype,"closed",void 0),xt([A(0)],ce.prototype,"padding",void 0),xt([A(!1)],ce.prototype,"lockRatio",void 0),xt([A()],ce.prototype,"widthRange",void 0),xt([A()],ce.prototype,"heightRange",void 0),xt([v(!1)],ce.prototype,"draggable",void 0),xt([v()],ce.prototype,"dragBounds",void 0),xt([v("auto")],ce.prototype,"dragBoundsType",void 0),xt([v(!1)],ce.prototype,"editable",void 0),xt([T(!0)],ce.prototype,"hittable",void 0),xt([T("path")],ce.prototype,"hitFill",void 0),xt([L("path")],ce.prototype,"hitStroke",void 0),xt([T(!1)],ce.prototype,"hitBox",void 0),xt([T(!0)],ce.prototype,"hitChildren",void 0),xt([T(!0)],ce.prototype,"hitSelf",void 0),xt([T()],ce.prototype,"hitRadius",void 0),xt([z("")],ce.prototype,"cursor",void 0),xt([f()],ce.prototype,"fill",void 0),xt([L(void 0,!0)],ce.prototype,"stroke",void 0),xt([L("inside")],ce.prototype,"strokeAlign",void 0),xt([L(1,!0)],ce.prototype,"strokeWidth",void 0),xt([L(!1)],ce.prototype,"strokeWidthFixed",void 0),xt([L("none")],ce.prototype,"strokeCap",void 0),xt([L("miter")],ce.prototype,"strokeJoin",void 0),xt([L()],ce.prototype,"dashPattern",void 0),xt([L(0)],ce.prototype,"dashOffset",void 0),xt([L(10)],ce.prototype,"miterLimit",void 0),xt([D(0)],ce.prototype,"cornerRadius",void 0),xt([D()],ce.prototype,"cornerSmoothing",void 0),xt([St()],ce.prototype,"shadow",void 0),xt([St()],ce.prototype,"innerShadow",void 0),xt([St()],ce.prototype,"blur",void 0),xt([St()],ce.prototype,"backgroundBlur",void 0),xt([St()],ce.prototype,"grayscale",void 0),xt([St()],ce.prototype,"filter",void 0),xt([f()],ce.prototype,"placeholderColor",void 0),xt([v(100)],ce.prototype,"placeholderDelay",void 0),xt([v({})],ce.prototype,"data",void 0),xt([M(O.prototype.reset)],ce.prototype,"reset",null),ce=ue=xt([N(_e),N(de),V()],ce);let ge=class extends ce{get __tag(){return"Group"}get isBranch(){return!0}reset(t){this.__setBranch(),super.reset(t)}__setBranch(){this.children||(this.children=[])}set(t,e){if(t)if(t.children){const{children:i}=t;delete t.children,this.children?this.clear():this.__setBranch(),super.set(t,e),i.forEach(t=>this.add(t)),t.children=i}else super.set(t,e)}toJSON(t){const e=super.toJSON(t);return this.childlessJSON||(e.children=this.children.map(e=>e.toJSON(t))),e}pick(t,e){}addAt(t,e){this.add(t,e)}addAfter(t,e){this.add(t,this.children.indexOf(e)+1)}addBefore(t,e){this.add(t,this.children.indexOf(e))}add(t,e){}addMany(...t){}remove(t,e){}removeAll(t){}clear(){}};var ye;xt([y(Xt)],ge.prototype,"__",void 0),xt([A(0)],ge.prototype,"width",void 0),xt([A(0)],ge.prototype,"height",void 0),ge=xt([N(q),J()],ge);const ve=_.get("Leafer");let fe=ye=class extends ge{get __tag(){return"Leafer"}get isApp(){return!1}get app(){return this.parent||this}get isLeafer(){return!0}get imageReady(){return this.viewReady&&$.isComplete}get layoutLocked(){return!this.layouter.running}get FPS(){return this.renderer?this.renderer.FPS:60}get cursorPoint(){return this.interaction&&this.interaction.hoverData||{x:this.width/2,y:this.height/2}}get clientBounds(){return this.canvas&&this.canvas.getClientBounds(!0)||K()}constructor(t,e){super(e),this.config={start:!0,hittable:!0,smooth:!0,lazySpeard:100},this.leafs=0,this.__eventIds=[],this.__controllers=[],this.__readyWait=[],this.__viewReadyWait=[],this.__viewCompletedWait=[],this.__nextRenderWait=[],this.userConfig=t,t&&(t.view||t.width)&&this.init(t),ye.list.add(this)}init(t,e){if(this.canvas)return;let i;const{config:s}=this;this.__setLeafer(this),e&&(this.parentApp=e,this.__bindApp(e),i=e.running),t&&(this.parent=e,this.initType(t.type),this.parent=void 0,n.assign(s,t));const o=this.canvas=Q.canvas(s);this.__controllers.push(this.renderer=Q.renderer(this,o,s),this.watcher=Q.watcher(this,s),this.layouter=Q.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(),this.view=o.view,e||(this.selector=Q.selector(this),this.interaction=Q.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=Q.hitCanvasManager()),this.canvasManager=new Z,i=s.start),this.hittable=s.hittable,this.fill=s.fill,this.canvasManager.add(o),this.__listenEvents(),i&&(this.__startTimer=setTimeout(this.start.bind(this))),tt.run(this.__initWait),this.onInit()}onInit(){}initType(t){}set(t,e){this.waitInit(()=>{super.set(t,e)})}start(){clearTimeout(this.__startTimer),!this.running&&this.canvas&&(this.running=!0,this.ready?this.emitLeafer(et.RESTART):this.emitLeafer(et.START),this.__controllers.forEach(t=>t.start()),this.isApp||this.renderer.render())}stop(){clearTimeout(this.__startTimer),this.running&&this.canvas&&(this.__controllers.forEach(t=>t.stop()),this.running=!1,this.emitLeafer(et.STOP))}unlockLayout(){this.layouter.start(),this.updateLayout()}lockLayout(){this.updateLayout(),this.layouter.stop()}resize(t){const e=n.copyAttrs({},t,u);Object.keys(e).forEach(t=>this[t]=e[t])}forceRender(t,e){const{renderer:i}=this;i&&(i.addBlock(t?new it(t):this.canvas.bounds),this.viewReady&&(e?i.render():i.update()))}requestRender(t=!1){this.renderer&&this.renderer.update(t)}updateCursor(t){const e=this.interaction;e&&(t?e.setCursor(t):e.updateCursor())}updateLazyBounds(){this.lazyBounds=this.canvas.bounds.clone().spread(this.config.lazySpeard)}__doResize(t){const{canvas:e}=this;if(!e||e.isSameSize(t))return;const i=n.copyAttrs({},this.canvas,u);e.resize(t),this.updateLazyBounds(),this.__onResize(new st(t,i))}__onResize(t){this.emitEvent(t),n.copyAttrs(this.__,t,u),setTimeout(()=>{this.canvasManager&&this.canvasManager.clearRecycled()},0)}__setApp(){}__bindApp(t){this.selector=t.selector,this.interaction=t.interaction,this.canvasManager=t.canvasManager,this.hitCanvasManager=t.hitCanvasManager}__setLeafer(t){this.leafer=t,this.__level=1}__checkAutoLayout(){const{config:t,parentApp:e}=this;e||(t.width&&t.height||(this.autoLayout=new ot(t)),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(u.includes(t)?this.__changeCanvasSize(t,e):"fill"===t?this.__changeFill(e):"hittable"===t?this.parent||(this.canvas.hittable=e):"zIndex"===t?(this.canvas.zIndex=e,setTimeout(()=>this.parent&&this.parent.__updateSortChildren())):"mode"===t&&this.emit(et.UPDATE_MODE,{mode:e})),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&u.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const{config:i,canvas:s}=this,o=n.copyAttrs({},s,u);o[t]=i[t]=e,i.width&&i.height?s.stopAutoLayout():this.__checkAutoLayout(),this.__doResize(o)}__changeFill(t){this.config.fill=t,this.canvas.allowBackgroundColor?this.canvas.backgroundColor=t:this.forceRender()}__onCreated(){this.created=!0}__onReady(){this.ready=!0,this.emitLeafer(et.BEFORE_READY),this.emitLeafer(et.READY),this.emitLeafer(et.AFTER_READY),tt.run(this.__readyWait)}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(et.VIEW_READY),tt.run(this.__viewReadyWait))}__onLayoutEnd(){const{grow:t,width:e,height:i}=this.config;if(t){let{width:s,height:o,pixelRatio:r}=this;const a="box"===t?this.worldBoxBounds:this.__world;e||(s=Math.max(1,a.x+a.width)),i||(o=Math.max(1,a.y+a.height)),this.__doResize({width:s,height:o,pixelRatio:r})}this.ready||this.__onReady()}__onNextRender(){if(this.viewReady){tt.run(this.__nextRenderWait);const{imageReady:t}=this;t&&!this.viewCompleted&&this.__checkViewCompleted(),t||(this.viewCompleted=!1,this.requestRender())}else this.requestRender()}__checkViewCompleted(t=!0){this.nextRender(()=>{this.imageReady&&(t&&this.emitLeafer(et.VIEW_COMPLETED),tt.run(this.__viewCompletedWait),this.viewCompleted=!0)})}__onWatchData(){this.watcher.childrenChanged&&this.interaction&&this.nextRender(()=>this.interaction.updateCursor())}waitInit(t,e){e&&(t=t.bind(e)),this.__initWait||(this.__initWait=[]),this.canvas?t():this.__initWait.push(t)}waitReady(t,e){e&&(t=t.bind(e)),this.ready?t():this.__readyWait.push(t)}waitViewReady(t,e){e&&(t=t.bind(e)),this.viewReady?t():this.__viewReadyWait.push(t)}waitViewCompleted(t,e){e&&(t=t.bind(e)),this.__viewCompletedWait.push(t),this.viewCompleted?this.__checkViewCompleted(!1):this.running||this.start()}nextRender(t,e,i){e&&(t=t.bind(e));const s=this.__nextRenderWait;if(i){for(let e=0;e<s.length;e++)if(s[e]===t){s.splice(e,1);break}}else s.push(t);this.requestRender()}zoom(t,e,i,s){return o.need("view")}getValidMove(t,e,i){return{x:t,y:e}}getValidScale(t){return t}getWorldPointByClient(t,e){return this.interaction&&this.interaction.getLocal(t,e)}getPagePointByClient(t,e){return this.getPagePoint(this.getWorldPointByClient(t,e))}getClientPointByWorld(t){const{x:e,y:i}=this.clientBounds;return{x:e+t.x,y:i+t.y}}updateClientBounds(){this.canvas&&this.canvas.updateClientBounds()}receiveEvent(t){}emitLeafer(t){this.emitEvent(new et(t,this))}__listenEvents(){const t=rt.start("FirstCreate "+this.innerName);this.once([[et.START,()=>rt.end(t)],[at.START,this.updateLazyBounds,this],[nt.START,this.__onCreated,this],[nt.END,this.__onViewReady,this]]),this.__eventIds.push(this.on_([[_t.DATA,this.__onWatchData,this],[at.END,this.__onLayoutEnd,this],[nt.NEXT,this.__onNextRender,this]]))}__removeListenEvents(){this.off_(this.__eventIds)}destroy(t){const e=()=>{if(!this.destroyed){ye.list.remove(this);try{this.stop(),this.emitLeafer(et.END),this.__removeListenEvents(),this.__controllers.forEach(t=>!(this.parent&&t===this.interaction)&&t.destroy()),this.__controllers.length=0,this.parent||(this.selector&&this.selector.destroy(),this.hitCanvasManager&&this.hitCanvasManager.destroy(),this.canvasManager&&this.canvasManager.destroy()),this.canvas&&this.canvas.destroy(),this.config.view=this.view=this.parentApp=null,this.userConfig&&(this.userConfig.view=null),super.destroy(),setTimeout(()=>{ht.clearRecycled()},100)}catch(t){ve.error(t)}}};t?e():setTimeout(e)}};fe.list=new G,xt([y(Jt)],fe.prototype,"__",void 0),xt([A()],fe.prototype,"pixelRatio",void 0),xt([v("normal")],fe.prototype,"mode",void 0),fe=ye=xt([J()],fe);let we=class extends ce{get __tag(){return"Rect"}};xt([y($t)],we.prototype,"__",void 0),we=xt([N(pe),V(),J()],we);const{add:xe,includes:Se,scroll:me}=dt,Re=we.prototype,ke=ge.prototype;let Be=class extends ge{get __tag(){return"Box"}get isBranchLeaf(){return!0}constructor(t){super(t),this.__layout.renderChanged||this.__layout.renderChange()}__updateStrokeSpread(){return 0}__updateRectRenderSpread(){return 0}__updateRenderSpread(){return this.__updateRectRenderSpread()||-1}__updateRectBoxBounds(){}__updateBoxBounds(t){if(this.children.length&&!this.pathInputed){const t=this.__;if(t.__autoSide){t.__hasSurface&&this.__extraUpdate(),super.__updateBoxBounds();const{boxBounds:e}=this.__layout;t.__autoSize||(t.__autoWidth?(e.width+=e.x,e.x=0,e.height=t.height,e.y=0):(e.height+=e.y,e.y=0,e.width=t.width,e.x=0)),this.__updateNaturalSize()}else this.__updateRectBoxBounds()}else this.__updateRectBoxBounds()}__updateStrokeBounds(){}__updateRenderBounds(){let t,e;if(this.children.length){const i=this.__,s=this.__layout,{renderBounds:o,boxBounds:r}=s,{overflow:a}=i,n=s.childrenRenderBounds||(s.childrenRenderBounds=K());super.__updateRenderBounds(n),(e=a&&a.includes("scroll"))&&(xe(n,r),me(n,i)),this.__updateRectRenderBounds(),t=!Se(r,n),t&&"show"===a&&xe(o,n)}else this.__updateRectRenderBounds();n.stintSet(this,"isOverflow",t),this.__checkScroll(e)}__updateRectRenderBounds(){}__checkScroll(t){}__updateRectChange(){}__updateChange(){super.__updateChange(),this.__updateRectChange()}__renderRect(t,e){}__renderGroup(t,e){}__render(t,e){this.__.__drawAfterFill?this.__renderRect(t,e):(this.__renderRect(t,e),this.children.length&&this.__renderGroup(t,e)),this.hasScroller&&this.scroller.__render(t,e)}__drawContent(t,e){this.__renderGroup(t,e),(this.__.__useStroke||this.__.__useEffect)&&(t.setWorld(this.__nowWorld),this.__drawRenderPath(t))}};xt([y(jt)],Be.prototype,"__",void 0),xt([A(100)],Be.prototype,"width",void 0),xt([A(100)],Be.prototype,"height",void 0),xt([v(!1)],Be.prototype,"resizeChildren",void 0),xt([E("show")],Be.prototype,"overflow",void 0),xt([M(Re.__updateStrokeSpread)],Be.prototype,"__updateStrokeSpread",null),xt([M(Re.__updateRenderSpread)],Be.prototype,"__updateRectRenderSpread",null),xt([M(Re.__updateBoxBounds)],Be.prototype,"__updateRectBoxBounds",null),xt([M(Re.__updateStrokeBounds)],Be.prototype,"__updateStrokeBounds",null),xt([M(Re.__updateRenderBounds)],Be.prototype,"__updateRectRenderBounds",null),xt([M(Re.__updateChange)],Be.prototype,"__updateRectChange",null),xt([M(Re.__render)],Be.prototype,"__renderRect",null),xt([M(ke.__render)],Be.prototype,"__renderGroup",null),Be=xt([V(),J()],Be);let Ae=class extends Be{get __tag(){return"Frame"}get isFrame(){return!0}};xt([y(qt)],Ae.prototype,"__",void 0),xt([f("#FFFFFF")],Ae.prototype,"fill",void 0),xt([E("hide")],Ae.prototype,"overflow",void 0),Ae=xt([J()],Ae);const{moveTo:be,closePath:Ce,ellipse:Pe}=lt;let Fe=class extends ce{get __tag(){return"Ellipse"}__updatePath(){const{width:t,height:e,innerRadius:i,startAngle:s,endAngle:o}=this.__,r=t/2,a=e/2,n=this.__.path=[];i?(s||o?(i<1&&Pe(n,r,a,r*i,a*i,0,s,o,!1),Pe(n,r,a,r,a,0,o,s,!0),i<1&&Ce(n)):(i<1&&(Pe(n,r,a,r*i,a*i),be(n,t,a)),Pe(n,r,a,r,a,0,360,0,!0)),pt.ellipseToCurve&&(this.__.path=this.getPath(!0))):s||o?(be(n,r,a),Pe(n,r,a,r,a,0,s,o,!1),Ce(n)):Pe(n,r,a,r,a)}};xt([y(Kt)],Fe.prototype,"__",void 0),xt([D(0)],Fe.prototype,"innerRadius",void 0),xt([D(0)],Fe.prototype,"startAngle",void 0),xt([D(0)],Fe.prototype,"endAngle",void 0),Fe=xt([J()],Fe);const{sin:We,cos:Ee,PI:Ie}=Math,{moveTo:De,lineTo:Te,closePath:Le,drawPoints:ze}=lt;let Me=class extends ce{get __tag(){return"Polygon"}__updatePath(){const t=this.__,e=t.path=[];if(t.points)ze(e,t.points,t.curve,!0);else{const{width:i,height:s,sides:o}=t,r=i/2,a=s/2;De(e,r,0);for(let t=1;t<o;t++)Te(e,r+r*We(2*t*Ie/o),a-a*Ee(2*t*Ie/o));Le(e)}}};xt([y(Qt)],Me.prototype,"__",void 0),xt([D(3)],Me.prototype,"sides",void 0),xt([D()],Me.prototype,"points",void 0),xt([D(0)],Me.prototype,"curve",void 0),Me=xt([V(),J()],Me);const{sin:Oe,cos:Ne,PI:Ve}=Math,{moveTo:He,lineTo:Ye,closePath:Ue}=lt;let Xe=class extends ce{get __tag(){return"Star"}__updatePath(){const{width:t,height:e,corners:i,innerRadius:s}=this.__,o=t/2,r=e/2,a=this.__.path=[];He(a,o,0);for(let t=1;t<2*i;t++)Ye(a,o+(t%2==0?o:o*s)*Oe(t*Ve/i),r-(t%2==0?r:r*s)*Ne(t*Ve/i));Ue(a)}};xt([y(Zt)],Xe.prototype,"__",void 0),xt([D(5)],Xe.prototype,"corners",void 0),xt([D(.382)],Xe.prototype,"innerRadius",void 0),Xe=xt([J()],Xe);const{moveTo:je,lineTo:Je,drawPoints:qe}=lt,{rotate:Ge,getAngle:$e,getDistance:Ke,defaultPoint:Qe}=ut;let Ze=class extends ce{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=gt();return t&&(i.x=t),e&&Ge(i,e),i}set toPoint(t){this.width=Ke(Qe,t),this.rotation=$e(Qe,t),this.height&&(this.height=0)}__updatePath(){const t=this.__,e=t.path=[];t.points?qe(e,t.points,t.curve,t.closed):(je(e,0,0),Je(e,this.width,0))}};xt([y(Gt)],Ze.prototype,"__",void 0),xt([ct("center")],Ze.prototype,"strokeAlign",void 0),xt([A(0)],Ze.prototype,"height",void 0),xt([D()],Ze.prototype,"points",void 0),xt([D(0)],Ze.prototype,"curve",void 0),xt([D(!1)],Ze.prototype,"closed",void 0),Ze=xt([J()],Ze);let ti=class extends we{get __tag(){return"Image"}get ready(){const{image:t}=this;return t&&t.ready}get image(){const{fill:t}=this.__;return p(t)&&t[0].image}};xt([y(oe)],ti.prototype,"__",void 0),xt([A("")],ti.prototype,"url",void 0),ti=xt([J()],ti);const ei=ti;let ii=class extends we{get __tag(){return"Canvas"}get context(){return this.canvas.context}get ready(){return!this.url}constructor(t){super(t),this.canvas=Q.canvas(this.__),t&&t.url&&this.drawImage(t.url)}drawImage(t){new yt({url:t}).load(t=>{this.context.drawImage(t.view,0,0),this.url=void 0,this.paint(),this.emitEvent(new vt(vt.LOADED,{image:t}))})}draw(t,e,i,s){const o=new ft(t.worldTransform).invert(),r=new ft;e&&r.translate(e.x,e.y),i&&(j(i)?r.scale(i):r.scale(i.x,i.y)),s&&r.rotate(s),o.multiplyParent(r),t.__render(this.canvas,{matrix:o.withScale()}),this.paint()}paint(){this.forceRender()}__drawContent(t,e){const{width:i,height:s}=this.__,{view:o}=this.canvas;t.drawImage(o,0,0,o.width,o.height,0,0,i,s)}__updateSize(){const{canvas:t}=this;if(t){const{smooth:e,safeResize:i}=this.__;t.resize(this.__,i),t.smooth!==e&&(t.smooth=e)}}destroy(){this.canvas&&(this.canvas.destroy(),this.canvas=null),super.destroy()}};xt([y(re)],ii.prototype,"__",void 0),xt([mt(100)],ii.prototype,"width",void 0),xt([mt(100)],ii.prototype,"height",void 0),xt([mt(1)],ii.prototype,"pixelRatio",void 0),xt([mt(!0)],ii.prototype,"smooth",void 0),xt([v(!1)],ii.prototype,"safeResize",void 0),xt([mt()],ii.prototype,"contextSettings",void 0),ii=xt([J()],ii);const{copyAndSpread:si,includes:oi,spread:ri,setList:ai}=dt,{stintSet:ni}=n;let _i=class extends ce{get __tag(){return"Text"}get textDrawData(){return this.updateLayout(),this.__.__textDrawData}__updateTextDrawData(){const t=this.__,{lineHeight:e,letterSpacing:i,fontFamily:s,fontSize:o,fontWeight:r,italic:a,textCase:n,textOverflow:_,padding:h,width:d,height:l}=t;t.__lineHeight=bt.number(e,o),t.__letterSpacing=bt.number(i,o),t.__baseLine=t.__lineHeight-(t.__lineHeight-.7*o)/2,t.__font=`${a?"italic ":""}${"small-caps"===n?"small-caps ":""}${"normal"!==r?r+" ":""}${o||12}px ${s||"caption"}`,ni(t,"__padding",h&&H.fourNumber(h)),ni(t,"__clipText","show"!==_&&!t.__autoSize),ni(t,"__isCharMode",d||l||t.__letterSpacing||"none"!==n),t.__textDrawData=Bt.getDrawData((t.__isPlacehold=t.placeholder&&""===t.text)?t.placeholder:t.text,this.__)}__updateBoxBounds(){const t=this.__,e=this.__layout,{fontSize:i,italic:s,padding:o,__autoWidth:r,__autoHeight:a}=t;this.__updateTextDrawData();const{bounds:_}=t.__textDrawData,h=e.boxBounds;if(e.contentBounds=_,t.__lineHeight<i&&ri(_,i/2),r||a){if(h.x=r?_.x:0,h.y=a?_.y:0,h.width=r?_.width:t.width,h.height=a?_.height:t.height,o){const[e,i,s,o]=t.__padding;r&&(h.x-=o,h.width+=i+o),a&&(h.y-=e,h.height+=s+e)}this.__updateNaturalSize()}else super.__updateBoxBounds();s&&(h.width+=.16*i),n.stintSet(this,"isOverflow",!oi(h,_)),this.isOverflow?(ai(t.__textBoxBounds={},[h,_]),e.renderChanged=!0):t.__textBoxBounds=h}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.isOverflow?1:0),t}__updateRenderBounds(){const{renderBounds:t,renderSpread:e}=this.__layout;si(t,this.__.__textBoxBounds,e),this.__box&&(this.__box.__layout.renderBounds=t)}__updateChange(){super.__updateChange();const t=this.__box;t&&(t.__onUpdateSize(),t.__updateChange())}__drawRenderPath(t){t.font=this.__.__font}__draw(t,e,i){const s=this.__box;s&&(s.__nowWorld=this.__nowWorld,s.__draw(t,e,i)),this.textEditing&&!e.exporting||super.__draw(t,e,i)}__drawShape(t,e){e.shape&&this.__box&&this.__box.__drawShape(t,e),super.__drawShape(t,e)}destroy(){this.boxStyle&&(this.boxStyle=null),super.destroy()}};xt([y(se)],_i.prototype,"__",void 0),xt([A(0)],_i.prototype,"width",void 0),xt([A(0)],_i.prototype,"height",void 0),xt([f()],_i.prototype,"boxStyle",void 0),xt([v(!1)],_i.prototype,"resizeFontSize",void 0),xt([f("#000000")],_i.prototype,"fill",void 0),xt([ct("outside")],_i.prototype,"strokeAlign",void 0),xt([T("all")],_i.prototype,"hitFill",void 0),xt([A("")],_i.prototype,"text",void 0),xt([A("")],_i.prototype,"placeholder",void 0),xt([A("caption")],_i.prototype,"fontFamily",void 0),xt([A(12)],_i.prototype,"fontSize",void 0),xt([A("normal")],_i.prototype,"fontWeight",void 0),xt([A(!1)],_i.prototype,"italic",void 0),xt([A("none")],_i.prototype,"textCase",void 0),xt([A("none")],_i.prototype,"textDecoration",void 0),xt([A(0)],_i.prototype,"letterSpacing",void 0),xt([A({type:"percent",value:1.5})],_i.prototype,"lineHeight",void 0),xt([A(0)],_i.prototype,"paraIndent",void 0),xt([A(0)],_i.prototype,"paraSpacing",void 0),xt([A("x")],_i.prototype,"writingMode",void 0),xt([A("left")],_i.prototype,"textAlign",void 0),xt([A("top")],_i.prototype,"verticalAlign",void 0),xt([A(!0)],_i.prototype,"autoSizeAlign",void 0),xt([A("normal")],_i.prototype,"textWrap",void 0),xt([A("show")],_i.prototype,"textOverflow",void 0),xt([f(!1)],_i.prototype,"textEditing",void 0),_i=xt([J()],_i);let hi=class extends ce{get __tag(){return"Path"}};xt([y(te)],hi.prototype,"__",void 0),xt([ct("center")],hi.prototype,"strokeAlign",void 0),hi=xt([J()],hi);let di=class extends ge{get __tag(){return"Pen"}setStyle(t){const e=this.pathElement=new hi(t);return this.pathStyle=t,this.__path=e.path||(e.path=[]),this.add(e),this}beginPath(){return this}moveTo(t,e){return this}lineTo(t,e){return this}bezierCurveTo(t,e,i,s,o,r){return this}quadraticCurveTo(t,e,i,s){return this}closePath(){return this}rect(t,e,i,s){return this}roundRect(t,e,i,s,o){return this}ellipse(t,e,i,s,o,r,a,n){return this}arc(t,e,i,s,o,r){return this}arcTo(t,e,i,s,o){return this}drawEllipse(t,e,i,s,o,r,a,n){return this}drawArc(t,e,i,s,o,r){return this}drawPoints(t,e,i){return this}clearPath(){return this}paint(){this.pathElement.__layout.boxChanged||this.pathElement.forceUpdate("path")}};xt([y(ee)],di.prototype,"__",void 0),xt([(e,i)=>{t(e,i,{get(){return this.__path}})}],di.prototype,"path",void 0),di=xt([N(wt,["set","path","paint"]),J()],di);export{Be as Box,jt as BoxData,ii as Canvas,re as CanvasData,At as ColorConvert,Et as Effect,Fe as Ellipse,Kt as EllipseData,Dt as Export,It as Filter,Ae as Frame,qt as FrameData,ge as Group,Xt as GroupData,ti as Image,oe as ImageData,fe as Leafer,Jt as LeaferData,Ze as Line,Gt as LineData,ei as MyImage,Pt as Paint,Wt as PaintGradient,Ft as PaintImage,hi as Path,Ct as PathArrow,te as PathData,di as Pen,ee as PenData,Me as Polygon,Qt as PolygonData,we as Rect,$t as RectData,pe as RectRender,Xe as Star,Zt as StarData,Tt as State,_i as Text,Bt as TextConvert,se as TextData,Lt as Transition,ce as UI,_e as UIBounds,Yt as UIData,de as UIRender,bt as UnitConvert,kt as createAttr,St as effectType,mt as resizeType,Rt as zoomLayerType};
1
+ import{defineKey as t,decorateLeafAttr as e,attr as i,createDescriptor as s,Plugin as o,isObject as r,PathConvert as a,DataHelper as n,Debug as _,LeafData as h,isString as d,isUndefined as l,isArray as p,canvasSizeAttrs as u,UICreator as c,FourNumberHelper as g,dataProcessor as y,dataType as v,surfaceType as f,opacityType as w,visibleType as x,dimType as S,sortType as m,maskType as R,eraserType as k,positionType as B,boundsType as A,scaleType as b,rotationType as C,scrollType as P,autoLayoutType as F,naturalBoundsType as W,affectRenderBoundsType as E,pathInputType as D,pathType as I,hitType as T,strokeType as L,cursorType as z,rewrite as M,Leaf as O,useModule as N,rewriteAble as V,MathHelper as H,pen as Y,PathCorner as U,PathDrawer as X,isNumber as j,registerUI as J,Branch as q,LeafList as G,Resource as $,getBoundsData as K,Creator as Q,CanvasManager as Z,WaitHelper as tt,LeaferEvent as et,Bounds as it,ResizeEvent as st,AutoBounds as ot,Run as rt,LayoutEvent as at,RenderEvent as nt,WatchEvent as _t,ImageManager as ht,BoundsHelper as dt,PathCommandDataHelper as lt,Platform as pt,PointHelper as ut,affectStrokeBoundsType as ct,getPointData as gt,LeaferImage as yt,ImageEvent as vt,Matrix as ft,PathCreator as wt}from"@leafer/core";export*from"@leafer/core";function xt(t,e,i,s){var o,r=arguments.length,a=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,s);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a}function St(t){return e(t,t=>i({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0),this.__layout.renderChanged||this.__layout.renderChange()}}))}function mt(t){return e(t,t=>i({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}}))}function Rt(){return(e,i)=>{const s="_"+i;t(e,i,{set(t){this.isLeafer&&(this[s]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[s]||this:this.leafer&&this.leafer.zoomLayer}})}}function kt(e){return(i,o)=>{t(i,o,s(o,e))}}"function"==typeof SuppressedError&&SuppressedError;const Bt={},At={hasTransparent:function(t){if(!t||7===t.length||4===t.length)return!1;if("transparent"===t)return!0;const e=t[0];if("#"===e)switch(t.length){case 5:return"f"!==t[4]&&"F"!==t[4];case 9:return"f"!==t[7]&&"F"!==t[7]||"f"!==t[8]&&"F"!==t[8]}else if(("r"===e||"h"===e)&&"a"===t[3]){const e=t.lastIndexOf(",");if(e>-1)return parseFloat(t.slice(e+1))<1}return!1}},bt={number:(t,e)=>r(t)?"percent"===t.type?t.value*e:t.value:t},Ct={},Pt={},Ft={},Wt={},Et={},Dt={apply(){o.need("filter")}},It={},Tt={setStyleName:()=>o.need("state"),set:()=>o.need("state")},Lt={list:{},register(t,e){Lt.list[t]=e},get:t=>Lt.list[t]},{parse:zt,objectToCanvasData:Mt}=a,{stintSet:Ot}=n,{hasTransparent:Nt}=At,Vt={originPaint:{}},Ht=_.get("UIData");class Yt extends h{get scale(){const{scaleX:t,scaleY:e}=this;return t!==e?{x:t,y:e}:t}get __strokeWidth(){return this.__getRealStrokeWidth()}get __maxStrokeWidth(){const t=this;return t.__hasMultiStrokeStyle?Math.max(t.__hasMultiStrokeStyle,t.strokeWidth):t.strokeWidth}get __hasMultiPaint(){const t=this;return t.fill&&this.__useStroke||t.__isFills&&t.fill.length>1||t.__isStrokes&&t.stroke.length>1||t.__useEffect}get __clipAfterFill(){const t=this;return t.cornerRadius||t.innerShadow||t.__pathInputed}get __hasSurface(){return this.fill||this.stroke}get __autoWidth(){return!this._width}get __autoHeight(){return!this._height}get __autoSide(){return!this._width||!this._height}get __autoSize(){return!this._width&&!this._height}setVisible(t){this._visible=t;const{leafer:e}=this.__leaf;e&&(e.watcher.hasVisible=!0)}setWidth(t){t<0?(this._width=-t,this.__leaf.scaleX*=-1,Ht.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,Ht.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),d(t)||!t?(Ot(this,"__isTransparentFill",Nt(t)),this.__isFills&&this.__removePaint("fill",!0),this._fill=t):r(t)&&this.__setPaint("fill",t)}setStroke(t){d(t)||!t?(Ot(this,"__isTransparentStroke",Nt(t)),this.__isStrokes&&this.__removePaint("stroke",!0),this._stroke=t):r(t)&&this.__setPaint("stroke",t)}setPath(t){const e=d(t);e||t&&r(t[0])?(this.__setInput("path",t),this._path=e?zt(t):Mt(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){Ut(this,"shadow",t)}setInnerShadow(t){Ut(this,"innerShadow",t)}setFilter(t){Ut(this,"filter",t)}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&Pt.compute("fill",this.__leaf),e&&Pt.compute("stroke",this.__leaf),this.__needComputePaint=void 0}__getRealStrokeWidth(t){let{strokeWidth:e,strokeWidthFixed:i}=this;if(t&&(t.strokeWidth&&(e=t.strokeWidth),l(t.strokeWidthFixed)||(i=t.strokeWidthFixed)),i){const t=this.__leaf.getClampRenderScale();return t>1?e/t:e}return e}__setPaint(t,e){this.__setInput(t,e);const i=this.__leaf.__layout;i.boxChanged||i.boxChange(),p(e)&&!e.length?this.__removePaint(t):"fill"===t?(this.__isFills=!0,this._fill||(this._fill=Vt)):(this.__isStrokes=!0,this._stroke||(this._stroke=Vt))}__removePaint(t,e){e&&this.__removeInput(t),Ft.recycleImage(t,this),"fill"===t?(Ot(this,"__isAlphaPixelFill",void 0),this._fill=this.__isFills=void 0):(Ot(this,"__isAlphaPixelStroke",void 0),Ot(this,"__hasMultiStrokeStyle",void 0),this._stroke=this.__isStrokes=void 0)}}function Ut(t,e,i){t.__setInput(e,i),p(i)?(i.some(t=>!1===t.visible)&&(i=i.filter(t=>!1!==t.visible)),i.length||(i=void 0)):i=i&&!1!==i.visible?[i]:void 0,t["_"+e]=i}class Xt extends Yt{}class jt extends Xt{get __boxStroke(){return!this.__pathInputed}get __drawAfterFill(){return this.__single||this.__clipAfterFill}get __clipAfterFill(){const t=this;return"show"!==t.overflow&&t.__leaf.children.length&&(t.__leaf.isOverflow||super.__clipAfterFill)}}class Jt extends Xt{__getInputData(t,e){const i=super.__getInputData(t,e);return u.forEach(t=>delete i[t]),i}}class qt extends jt{}class Gt extends Yt{get __usePathBox(){return this.points||this.__pathInputed}}class $t extends Yt{get __boxStroke(){return!this.__pathInputed}}class Kt extends Yt{get __boxStroke(){return!this.__pathInputed}}class Qt extends Gt{}class Zt extends Yt{}class te extends Yt{get __pathInputed(){return 2}}class ee extends Xt{}const ie={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class se extends Yt{get __useNaturalRatio(){return!1}setFontWeight(t){d(t)?(this.__setInput("fontWeight",t),t=ie[t]||400):this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t}setBoxStyle(t){let e=this.__leaf,i=e.__box;if(t){const{boxStyle:s}=this;if(i)for(let t in s)i[t]=void 0;else i=e.__box=c.get("Rect",0);const o=e.__layout,r=i.__layout;s||(i.parent=e,i.__world=e.__world,r.boxBounds=o.boxBounds),i.set(t),r.strokeChanged&&o.strokeChange()}else i&&(e.__box=i.parent=null,i.destroy());this._boxStyle=t}__getInputData(t,e){const i=super.__getInputData(t,e);return i.textEditing&&delete i.textEditing,i}}class oe extends $t{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.fill=t?{type:"image",mode:"stretch",url:t}:void 0}__getData(){const t=super.__getData();return t.url&&delete t.fill,t}__getInputData(t,e){const i=super.__getInputData(t,e);return i.url&&delete i.fill,i}}class re extends $t{get __isCanvas(){return!0}get __drawAfterFill(){return!0}__getInputData(t,e){const i=super.__getInputData(t,e);return i.url=this.__leaf.canvas.toDataURL("image/png"),i}}const{max:ae,add:ne}=g,_e={__updateStrokeSpread(){let t=0,e=0;const i=this.__,{strokeAlign:s,__maxStrokeWidth:o}=i,r=this.__box;if((i.stroke||"all"===i.hitStroke)&&o&&"inside"!==s&&(e=t="center"===s?o/2:o,!i.__boxStroke)){const e=i.__isLinePath?0:10*t,s="none"===i.strokeCap?0:o;t+=Math.max(e,s)}return i.__useArrow&&(t+=5*o),r&&(t=ae(t,r.__layout.strokeSpread=r.__updateStrokeSpread()),e=Math.max(e,r.__layout.strokeBoxSpread)),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:i,blur:s,backgroundBlur:o,filter:r,renderSpread:a}=this.__,{strokeSpread:n}=this.__layout,_=this.__box;e&&(t=Et.getShadowRenderSpread(this,e)),s&&(t=ae(t,s)),r&&(t=ne(t,Dt.getSpread(r))),a&&(t=ne(t,a)),n&&(t=ne(t,n));let h=t;return i&&(h=ae(h,Et.getInnerShadowSpread(this,i))),o&&(h=ae(h,o)),this.__layout.renderShapeSpread=h,_?ae(_.__updateRenderSpread(),t):t}},{stintSet:he}=n,de={__updateChange(){const t=this.__;if(t.__useStroke){const e=t.__useStroke=!(!t.stroke||!t.strokeWidth);he(this.__world,"half",e&&"center"===t.strokeAlign&&t.strokeWidth%2),he(t,"__fillAfterStroke",e&&"outside"===t.strokeAlign&&t.fill&&!t.__isTransparentFill)}if(t.__useEffect){const{shadow:e,fill:i,stroke:s}=t,o=t.innerShadow||t.blur||t.backgroundBlur||t.filter;he(t,"__isFastShadow",e&&!o&&e.length<2&&!e[0].spread&&!Et.isTransformShadow(e[0])&&i&&!t.__isTransparentFill&&!(p(i)&&i.length>1)&&(this.useFastShadow||!s||s&&"inside"===t.strokeAlign)),t.__useEffect=!(!e&&!o)}t.__checkSingle(),he(t,"__complex",t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect)},__drawFast(t,e){le(this,t,e)},__draw(t,e,i){const s=this.__;if(s.__complex){s.__needComputePaint&&s.__computePaint();const{fill:o,stroke:r,__drawAfterFill:a,__fillAfterStroke:n,__isFastShadow:_}=s;if(this.__drawRenderPath(t),s.__useEffect&&!_){const _=Pt.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:h,innerShadow:d,filter:l}=s;h&&Et.shadow(this,t,_),n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e)),o&&(s.__isFills?Pt.fills(o,this,t,e):Pt.fill(o,this,t,e)),a&&this.__drawAfterFill(t,e),d&&Et.innerShadow(this,t,_),r&&!n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e)),l&&Dt.apply(l,this,this.__nowWorld,t,i,_),_.worldCanvas&&_.worldCanvas.recycle(),_.canvas.recycle()}else{if(n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e)),_){const e=s.shadow[0],{scaleX:i,scaleY:o}=this.getRenderScaleData(!0,e.scaleFixed);t.save(),t.setWorldShadow(e.x*i,e.y*o,e.blur*i,At.string(e.color))}o&&(s.__isFills?Pt.fills(o,this,t,e):Pt.fill(o,this,t,e)),_&&t.restore(),a&&this.__drawAfterFill(t,e),r&&!n&&(s.__isStrokes?Pt.strokes(r,this,t,e):Pt.stroke(r,this,t,e))}}else s.__pathForRender?le(this,t,e):this.__drawFast(t,e)},__drawShape(t,e){this.__drawRenderPath(t);const i=this.__,{fill:s,stroke:o}=i;s&&!e.ignoreFill&&(i.__isAlphaPixelFill?Pt.fills(s,this,t,e):Pt.fill("#000000",this,t,e)),i.__isCanvas&&this.__drawAfterFill(t,e),o&&!e.ignoreStroke&&(i.__isAlphaPixelStroke?Pt.strokes(o,this,t,e):Pt.stroke("#000000",this,t,e))},__drawAfterFill(t,e){this.__.__clipAfterFill?(t.save(),t.clipUI(this),this.__drawContent(t,e),t.restore()):this.__drawContent(t,e)}};function le(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r,__fillAfterStroke:a}=t.__;t.__drawRenderPath(e),a&&Pt.stroke(o,t,e,i),s&&Pt.fill(s,t,e,i),r&&t.__drawAfterFill(e,i),o&&!a&&Pt.stroke(o,t,e,i)}const pe={__drawFast(t,e){let{x:i,y:s,width:o,height:r}=this.__layout.boxBounds;const{fill:a,stroke:n,__drawAfterFill:_}=this.__;if(a&&(t.fillStyle=a,t.fillRect(i,s,o,r)),_&&this.__drawAfterFill(t,e),n){const{strokeAlign:a,__strokeWidth:_}=this.__;if(!_)return;t.setStroke(n,_,this.__);const h=_/2;switch(a){case"center":t.strokeRect(0,0,o,r);break;case"inside":o-=_,r-=_,o<0||r<0?(t.save(),this.__clip(t,e),t.strokeRect(i+h,s+h,o,r),t.restore()):t.strokeRect(i+h,s+h,o,r);break;case"outside":t.strokeRect(i-h,s-h,o+_,r+_)}}}};var ue;let ce=ue=class extends O{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(t){H.assignScale(this,t)}get scale(){return this.__.scale}get isAutoWidth(){const t=this.__;return t.__autoWidth||t.autoWidth}get isAutoHeight(){const t=this.__;return t.__autoHeight||t.autoHeight}get pen(){const{path:t}=this.__;return Y.set(this.path=t||[]),t||this.__drawPathByBox(Y),Y}reset(t){}set(t,e){t&&Object.assign(this,t)}get(t){return d(t)?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}find(t,e){return o.need("find")}findTag(t){return this.find({tag:t})}findOne(t,e){return o.need("find")}findId(t){return this.findOne({id:t})}getPath(t,e){this.__layout.update();let i=e?this.__.__pathForRender:this.__.path;return i||(Y.set(i=[]),this.__drawPathByBox(Y,!e)),t?a.toCanvasData(i,!0):i}getPathString(t,e,i){return a.stringify(this.getPath(t,e),i)}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||It.running?t.__computePaint():t.__needComputePaint=!0}}__updateRenderPath(){const t=this.__;t.path?(t.__pathForRender=t.cornerRadius?U.smooth(t.path,t.cornerRadius,t.cornerSmoothing):t.path,t.__useArrow&&Ct.addArrows(this)):t.__pathForRender&&(t.__pathForRender=void 0)}__drawRenderPath(t){t.beginPath(),this.__drawPathByData(t,this.__.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path,!0)}__drawPathByData(t,e,i){e?X.drawPathByData(t,e):this.__drawPathByBox(t,i)}__drawPathByBox(t,e){const{x:i,y:s,width:o,height:r}=this.__layout.boxBounds;if(this.__.cornerRadius&&!e){const{cornerRadius:e}=this.__;t.roundRect(i,s,o,r,j(e)?[e]:e)}else t.rect(i,s,o,r);t.closePath()}drawImagePlaceholder(t,e,i){Pt.fill(this.__.placeholderColor,this,e,i)}animate(t,e,i,s){return this.set(t),o.need("animate")}killAnimate(t,e){}export(t,e){return o.need("export")}syncExport(t,e){return o.need("export")}clone(t){const e=n.clone(this.toJSON());return t&&Object.assign(e,t),ue.one(e)}static one(t,e,i,s,o){return c.get(t.tag||this.prototype.__tag,t,e,i,s,o)}static registerUI(){J()(this)}static registerData(t){y(t)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.fill=this.stroke=null,this.__animate&&this.killAnimate(),super.destroy()}};xt([y(Yt)],ce.prototype,"__",void 0),xt([Rt()],ce.prototype,"zoomLayer",void 0),xt([v("")],ce.prototype,"id",void 0),xt([v("")],ce.prototype,"name",void 0),xt([v("")],ce.prototype,"className",void 0),xt([f("pass-through")],ce.prototype,"blendMode",void 0),xt([w(1)],ce.prototype,"opacity",void 0),xt([x(!0)],ce.prototype,"visible",void 0),xt([f(!1)],ce.prototype,"locked",void 0),xt([S(!1)],ce.prototype,"dim",void 0),xt([S(!1)],ce.prototype,"dimskip",void 0),xt([m(0)],ce.prototype,"zIndex",void 0),xt([R(!1)],ce.prototype,"mask",void 0),xt([k(!1)],ce.prototype,"eraser",void 0),xt([B(0,!0)],ce.prototype,"x",void 0),xt([B(0,!0)],ce.prototype,"y",void 0),xt([A(100,!0)],ce.prototype,"width",void 0),xt([A(100,!0)],ce.prototype,"height",void 0),xt([b(1,!0)],ce.prototype,"scaleX",void 0),xt([b(1,!0)],ce.prototype,"scaleY",void 0),xt([C(0,!0)],ce.prototype,"rotation",void 0),xt([C(0,!0)],ce.prototype,"skewX",void 0),xt([C(0,!0)],ce.prototype,"skewY",void 0),xt([B(0,!0)],ce.prototype,"offsetX",void 0),xt([B(0,!0)],ce.prototype,"offsetY",void 0),xt([P(0,!0)],ce.prototype,"scrollX",void 0),xt([P(0,!0)],ce.prototype,"scrollY",void 0),xt([F()],ce.prototype,"origin",void 0),xt([F()],ce.prototype,"around",void 0),xt([v(!1)],ce.prototype,"lazy",void 0),xt([W(1)],ce.prototype,"pixelRatio",void 0),xt([E(0)],ce.prototype,"renderSpread",void 0),xt([D()],ce.prototype,"path",void 0),xt([I()],ce.prototype,"windingRule",void 0),xt([I(!0)],ce.prototype,"closed",void 0),xt([A(0)],ce.prototype,"padding",void 0),xt([A(!1)],ce.prototype,"lockRatio",void 0),xt([A()],ce.prototype,"widthRange",void 0),xt([A()],ce.prototype,"heightRange",void 0),xt([v(!1)],ce.prototype,"draggable",void 0),xt([v()],ce.prototype,"dragBounds",void 0),xt([v("auto")],ce.prototype,"dragBoundsType",void 0),xt([v(!1)],ce.prototype,"editable",void 0),xt([T(!0)],ce.prototype,"hittable",void 0),xt([T("path")],ce.prototype,"hitFill",void 0),xt([L("path")],ce.prototype,"hitStroke",void 0),xt([T(!1)],ce.prototype,"hitBox",void 0),xt([T(!0)],ce.prototype,"hitChildren",void 0),xt([T(!0)],ce.prototype,"hitSelf",void 0),xt([T()],ce.prototype,"hitRadius",void 0),xt([z("")],ce.prototype,"cursor",void 0),xt([f()],ce.prototype,"fill",void 0),xt([L(void 0,!0)],ce.prototype,"stroke",void 0),xt([L("inside")],ce.prototype,"strokeAlign",void 0),xt([L(1,!0)],ce.prototype,"strokeWidth",void 0),xt([L(!1)],ce.prototype,"strokeWidthFixed",void 0),xt([L("none")],ce.prototype,"strokeCap",void 0),xt([L("miter")],ce.prototype,"strokeJoin",void 0),xt([L()],ce.prototype,"dashPattern",void 0),xt([L(0)],ce.prototype,"dashOffset",void 0),xt([L(10)],ce.prototype,"miterLimit",void 0),xt([I(0)],ce.prototype,"cornerRadius",void 0),xt([I()],ce.prototype,"cornerSmoothing",void 0),xt([St()],ce.prototype,"shadow",void 0),xt([St()],ce.prototype,"innerShadow",void 0),xt([St()],ce.prototype,"blur",void 0),xt([St()],ce.prototype,"backgroundBlur",void 0),xt([St()],ce.prototype,"grayscale",void 0),xt([St()],ce.prototype,"filter",void 0),xt([f()],ce.prototype,"placeholderColor",void 0),xt([v(100)],ce.prototype,"placeholderDelay",void 0),xt([v({})],ce.prototype,"data",void 0),xt([M(O.prototype.reset)],ce.prototype,"reset",null),ce=ue=xt([N(_e),N(de),V()],ce);let ge=class extends ce{get __tag(){return"Group"}get isBranch(){return!0}reset(t){this.__setBranch(),super.reset(t)}__setBranch(){this.children||(this.children=[])}set(t,e){if(t)if(t.children){const{children:i}=t;delete t.children,this.children?this.clear():this.__setBranch(),super.set(t,e),i.forEach(t=>this.add(t)),t.children=i}else super.set(t,e)}toJSON(t){const e=super.toJSON(t);return this.childlessJSON||(e.children=this.children.map(e=>e.toJSON(t))),e}pick(t,e){}addAt(t,e){this.add(t,e)}addAfter(t,e){this.add(t,this.children.indexOf(e)+1)}addBefore(t,e){this.add(t,this.children.indexOf(e))}add(t,e){}addMany(...t){}remove(t,e){}removeAll(t){}clear(){}};var ye;xt([y(Xt)],ge.prototype,"__",void 0),xt([A(0)],ge.prototype,"width",void 0),xt([A(0)],ge.prototype,"height",void 0),ge=xt([N(q),J()],ge);const ve=_.get("Leafer");let fe=ye=class extends ge{get __tag(){return"Leafer"}get isApp(){return!1}get app(){return this.parent||this}get isLeafer(){return!0}get imageReady(){return this.viewReady&&$.isComplete}get layoutLocked(){return!this.layouter.running}get view(){return this.canvas&&this.canvas.view}get FPS(){return this.renderer?this.renderer.FPS:60}get cursorPoint(){return this.interaction&&this.interaction.hoverData||{x:this.width/2,y:this.height/2}}get clientBounds(){return this.canvas&&this.canvas.getClientBounds(!0)||K()}constructor(t,e){super(e),this.config={start:!0,hittable:!0,smooth:!0,lazySpeard:100},this.leafs=0,this.__eventIds=[],this.__controllers=[],this.__readyWait=[],this.__viewReadyWait=[],this.__viewCompletedWait=[],this.__nextRenderWait=[],this.userConfig=t,t&&(t.view||t.width)&&this.init(t),ye.list.add(this)}init(t,e){if(this.canvas)return;let i;const{config:s}=this;this.__setLeafer(this),e&&(this.parentApp=e,this.__bindApp(e),i=e.running),t&&(this.parent=e,this.initType(t.type),this.parent=void 0,n.assign(s,t));const o=this.canvas=Q.canvas(s);this.__controllers.push(this.renderer=Q.renderer(this,o,s),this.watcher=Q.watcher(this,s),this.layouter=Q.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(),e||(this.selector=Q.selector(this),this.interaction=Q.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=Q.hitCanvasManager()),this.canvasManager=new Z,i=s.start),this.hittable=s.hittable,this.fill=s.fill,this.canvasManager.add(o),this.__listenEvents(),i&&(this.__startTimer=setTimeout(this.start.bind(this))),tt.run(this.__initWait),this.onInit()}onInit(){}initType(t){}set(t,e){this.waitInit(()=>{super.set(t,e)})}start(){clearTimeout(this.__startTimer),!this.running&&this.canvas&&(this.running=!0,this.ready?this.emitLeafer(et.RESTART):this.emitLeafer(et.START),this.__controllers.forEach(t=>t.start()),this.isApp||this.renderer.render())}stop(){clearTimeout(this.__startTimer),this.running&&this.canvas&&(this.__controllers.forEach(t=>t.stop()),this.running=!1,this.emitLeafer(et.STOP))}unlockLayout(){this.layouter.start(),this.updateLayout()}lockLayout(){this.updateLayout(),this.layouter.stop()}resize(t){const e=n.copyAttrs({},t,u);Object.keys(e).forEach(t=>this[t]=e[t])}forceRender(t,e){const{renderer:i}=this;i&&(i.addBlock(t?new it(t):this.canvas.bounds),this.viewReady&&(e?i.render():i.update()))}requestRender(t=!1){this.renderer&&this.renderer.update(t)}updateCursor(t){const e=this.interaction;e&&(t?e.setCursor(t):e.updateCursor())}updateLazyBounds(){this.lazyBounds=this.canvas.bounds.clone().spread(this.config.lazySpeard)}__doResize(t){const{canvas:e}=this;if(!e||e.isSameSize(t))return;const i=n.copyAttrs({},this.canvas,u);e.resize(t),this.updateLazyBounds(),this.__onResize(new st(t,i))}__onResize(t){this.emitEvent(t),n.copyAttrs(this.__,t,u),setTimeout(()=>{this.canvasManager&&this.canvasManager.clearRecycled()},0)}__setApp(){}__bindApp(t){this.selector=t.selector,this.interaction=t.interaction,this.canvasManager=t.canvasManager,this.hitCanvasManager=t.hitCanvasManager}__setLeafer(t){this.leafer=t,this.__level=1}__checkAutoLayout(){const{config:t,parentApp:e}=this;e||(t.width&&t.height||(this.autoLayout=new ot(t)),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(u.includes(t)?this.__changeCanvasSize(t,e):"fill"===t?this.__changeFill(e):"hittable"===t?this.parent||(this.canvas.hittable=e):"zIndex"===t?(this.canvas.zIndex=e,setTimeout(()=>this.parent&&this.parent.__updateSortChildren())):"mode"===t&&this.emit(et.UPDATE_MODE,{mode:e})),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&u.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const{config:i,canvas:s}=this,o=n.copyAttrs({},s,u);o[t]=i[t]=e,i.width&&i.height?s.stopAutoLayout():this.__checkAutoLayout(),this.__doResize(o)}__changeFill(t){this.config.fill=t,this.canvas.allowBackgroundColor?this.canvas.backgroundColor=t:this.forceRender()}__onCreated(){this.created=!0}__onReady(){this.ready=!0,this.emitLeafer(et.BEFORE_READY),this.emitLeafer(et.READY),this.emitLeafer(et.AFTER_READY),tt.run(this.__readyWait)}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(et.VIEW_READY),tt.run(this.__viewReadyWait))}__onLayoutEnd(){const{grow:t,width:e,height:i}=this.config;if(t){let{width:s,height:o,pixelRatio:r}=this;const a="box"===t?this.worldBoxBounds:this.__world;e||(s=Math.max(1,a.x+a.width)),i||(o=Math.max(1,a.y+a.height)),this.__doResize({width:s,height:o,pixelRatio:r})}this.ready||this.__onReady()}__onNextRender(){if(this.viewReady){tt.run(this.__nextRenderWait);const{imageReady:t}=this;t&&!this.viewCompleted&&this.__checkViewCompleted(),t||(this.viewCompleted=!1,this.requestRender())}else this.requestRender()}__checkViewCompleted(t=!0){this.nextRender(()=>{this.imageReady&&(t&&this.emitLeafer(et.VIEW_COMPLETED),tt.run(this.__viewCompletedWait),this.viewCompleted=!0)})}__onWatchData(){this.watcher.childrenChanged&&this.interaction&&this.nextRender(()=>this.interaction.updateCursor())}waitInit(t,e){e&&(t=t.bind(e)),this.__initWait||(this.__initWait=[]),this.canvas?t():this.__initWait.push(t)}waitReady(t,e){e&&(t=t.bind(e)),this.ready?t():this.__readyWait.push(t)}waitViewReady(t,e){e&&(t=t.bind(e)),this.viewReady?t():this.__viewReadyWait.push(t)}waitViewCompleted(t,e){e&&(t=t.bind(e)),this.__viewCompletedWait.push(t),this.viewCompleted?this.__checkViewCompleted(!1):this.running||this.start()}nextRender(t,e,i){e&&(t=t.bind(e));const s=this.__nextRenderWait;if(i){for(let e=0;e<s.length;e++)if(s[e]===t){s.splice(e,1);break}}else s.push(t);this.requestRender()}zoom(t,e,i,s){return o.need("view")}getValidMove(t,e,i){return{x:t,y:e}}getValidScale(t){return t}getWorldPointByClient(t,e){return this.interaction&&this.interaction.getLocal(t,e)}getPagePointByClient(t,e){return this.getPagePoint(this.getWorldPointByClient(t,e))}getClientPointByWorld(t){const{x:e,y:i}=this.clientBounds;return{x:e+t.x,y:i+t.y}}updateClientBounds(){this.canvas&&this.canvas.updateClientBounds()}receiveEvent(t){}emitLeafer(t){this.emitEvent(new et(t,this))}__listenEvents(){const t=rt.start("FirstCreate "+this.innerName);this.once([[et.START,()=>rt.end(t)],[at.START,this.updateLazyBounds,this],[nt.START,this.__onCreated,this],[nt.END,this.__onViewReady,this]]),this.__eventIds.push(this.on_([[_t.DATA,this.__onWatchData,this],[at.END,this.__onLayoutEnd,this],[nt.NEXT,this.__onNextRender,this]]))}__removeListenEvents(){this.off_(this.__eventIds)}destroy(t){const e=()=>{if(!this.destroyed){ye.list.remove(this);try{this.stop(),this.emitLeafer(et.END),this.__removeListenEvents(),this.__controllers.forEach(t=>!(this.parent&&t===this.interaction)&&t.destroy()),this.__controllers.length=0,this.parent||(this.selector&&this.selector.destroy(),this.hitCanvasManager&&this.hitCanvasManager.destroy(),this.canvasManager&&this.canvasManager.destroy()),this.canvas&&this.canvas.destroy(),this.config.view=this.parentApp=null,this.userConfig&&(this.userConfig.view=null),super.destroy(),setTimeout(()=>{ht.clearRecycled()},100)}catch(t){ve.error(t)}}};t?e():setTimeout(e)}};fe.list=new G,xt([y(Jt)],fe.prototype,"__",void 0),xt([A()],fe.prototype,"pixelRatio",void 0),xt([v("normal")],fe.prototype,"mode",void 0),fe=ye=xt([J()],fe);let we=class extends ce{get __tag(){return"Rect"}};xt([y($t)],we.prototype,"__",void 0),we=xt([N(pe),V(),J()],we);const{add:xe,includes:Se,scroll:me}=dt,Re=we.prototype,ke=ge.prototype;let Be=class extends ge{get __tag(){return"Box"}get isBranchLeaf(){return!0}constructor(t){super(t),this.__layout.renderChanged||this.__layout.renderChange()}__updateStrokeSpread(){return 0}__updateRectRenderSpread(){return 0}__updateRenderSpread(){return this.__updateRectRenderSpread()||-1}__updateRectBoxBounds(){}__updateBoxBounds(t){if(this.children.length&&!this.pathInputed){const t=this.__;if(t.__autoSide){t.__hasSurface&&this.__extraUpdate(),super.__updateBoxBounds();const{boxBounds:e}=this.__layout;t.__autoSize||(t.__autoWidth?(e.width+=e.x,e.x=0,e.height=t.height,e.y=0):(e.height+=e.y,e.y=0,e.width=t.width,e.x=0)),this.__updateNaturalSize()}else this.__updateRectBoxBounds()}else this.__updateRectBoxBounds()}__updateStrokeBounds(){}__updateRenderBounds(){let t,e;if(this.children.length){const i=this.__,s=this.__layout,{renderBounds:o,boxBounds:r}=s,{overflow:a}=i,n=s.childrenRenderBounds||(s.childrenRenderBounds=K());super.__updateRenderBounds(n),(e=a&&a.includes("scroll"))&&(xe(n,r),me(n,i)),this.__updateRectRenderBounds(),t=!Se(r,n),t&&"show"===a&&xe(o,n)}else this.__updateRectRenderBounds();n.stintSet(this,"isOverflow",t),this.__checkScroll(e)}__updateRectRenderBounds(){}__checkScroll(t){}__updateRectChange(){}__updateChange(){super.__updateChange(),this.__updateRectChange()}__renderRect(t,e){}__renderGroup(t,e){}__render(t,e){this.__.__drawAfterFill?this.__renderRect(t,e):(this.__renderRect(t,e),this.children.length&&this.__renderGroup(t,e)),this.hasScroller&&this.scroller.__render(t,e)}__drawContent(t,e){this.__renderGroup(t,e),(this.__.__useStroke||this.__.__useEffect)&&(t.setWorld(this.__nowWorld),this.__drawRenderPath(t))}};xt([y(jt)],Be.prototype,"__",void 0),xt([A(100)],Be.prototype,"width",void 0),xt([A(100)],Be.prototype,"height",void 0),xt([v(!1)],Be.prototype,"resizeChildren",void 0),xt([E("show")],Be.prototype,"overflow",void 0),xt([M(Re.__updateStrokeSpread)],Be.prototype,"__updateStrokeSpread",null),xt([M(Re.__updateRenderSpread)],Be.prototype,"__updateRectRenderSpread",null),xt([M(Re.__updateBoxBounds)],Be.prototype,"__updateRectBoxBounds",null),xt([M(Re.__updateStrokeBounds)],Be.prototype,"__updateStrokeBounds",null),xt([M(Re.__updateRenderBounds)],Be.prototype,"__updateRectRenderBounds",null),xt([M(Re.__updateChange)],Be.prototype,"__updateRectChange",null),xt([M(Re.__render)],Be.prototype,"__renderRect",null),xt([M(ke.__render)],Be.prototype,"__renderGroup",null),Be=xt([V(),J()],Be);let Ae=class extends Be{get __tag(){return"Frame"}get isFrame(){return!0}};xt([y(qt)],Ae.prototype,"__",void 0),xt([f("#FFFFFF")],Ae.prototype,"fill",void 0),xt([E("hide")],Ae.prototype,"overflow",void 0),Ae=xt([J()],Ae);const{moveTo:be,closePath:Ce,ellipse:Pe}=lt;let Fe=class extends ce{get __tag(){return"Ellipse"}__updatePath(){const{width:t,height:e,innerRadius:i,startAngle:s,endAngle:o}=this.__,r=t/2,a=e/2,n=this.__.path=[];i?s||o?(i<1&&Pe(n,r,a,r*i,a*i,0,s,o,!1),Pe(n,r,a,r,a,0,o,s,!0)):(i<1&&(Pe(n,r,a,r*i,a*i),be(n,t,a)),Pe(n,r,a,r,a,0,360,0,!0)):s||o?(be(n,r,a),Pe(n,r,a,r,a,0,s,o,!1)):Pe(n,r,a,r,a),Ce(n),pt.ellipseToCurve&&(this.__.path=this.getPath(!0))}};xt([y(Kt)],Fe.prototype,"__",void 0),xt([I(0)],Fe.prototype,"innerRadius",void 0),xt([I(0)],Fe.prototype,"startAngle",void 0),xt([I(0)],Fe.prototype,"endAngle",void 0),Fe=xt([J()],Fe);const{sin:We,cos:Ee,PI:De}=Math,{moveTo:Ie,lineTo:Te,closePath:Le,drawPoints:ze}=lt;let Me=class extends ce{get __tag(){return"Polygon"}__updatePath(){const t=this.__,e=t.path=[];if(t.points)ze(e,t.points,t.curve,!0);else{const{width:i,height:s,sides:o}=t,r=i/2,a=s/2;Ie(e,r,0);for(let t=1;t<o;t++)Te(e,r+r*We(2*t*De/o),a-a*Ee(2*t*De/o));Le(e)}}};xt([y(Qt)],Me.prototype,"__",void 0),xt([I(3)],Me.prototype,"sides",void 0),xt([I()],Me.prototype,"points",void 0),xt([I(0)],Me.prototype,"curve",void 0),Me=xt([V(),J()],Me);const{sin:Oe,cos:Ne,PI:Ve}=Math,{moveTo:He,lineTo:Ye,closePath:Ue}=lt;let Xe=class extends ce{get __tag(){return"Star"}__updatePath(){const{width:t,height:e,corners:i,innerRadius:s}=this.__,o=t/2,r=e/2,a=this.__.path=[];He(a,o,0);for(let t=1;t<2*i;t++)Ye(a,o+(t%2==0?o:o*s)*Oe(t*Ve/i),r-(t%2==0?r:r*s)*Ne(t*Ve/i));Ue(a)}};xt([y(Zt)],Xe.prototype,"__",void 0),xt([I(5)],Xe.prototype,"corners",void 0),xt([I(.382)],Xe.prototype,"innerRadius",void 0),Xe=xt([J()],Xe);const{moveTo:je,lineTo:Je,drawPoints:qe}=lt,{rotate:Ge,getAngle:$e,getDistance:Ke,defaultPoint:Qe}=ut;let Ze=class extends ce{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=gt();return t&&(i.x=t),e&&Ge(i,e),i}set toPoint(t){this.width=Ke(Qe,t),this.rotation=$e(Qe,t),this.height&&(this.height=0)}__updatePath(){const t=this.__,e=t.path=[];t.points?qe(e,t.points,t.curve,t.closed):(je(e,0,0),Je(e,this.width,0))}};xt([y(Gt)],Ze.prototype,"__",void 0),xt([ct("center")],Ze.prototype,"strokeAlign",void 0),xt([A(0)],Ze.prototype,"height",void 0),xt([I()],Ze.prototype,"points",void 0),xt([I(0)],Ze.prototype,"curve",void 0),xt([I(!1)],Ze.prototype,"closed",void 0),Ze=xt([J()],Ze);let ti=class extends we{get __tag(){return"Image"}get ready(){const{image:t}=this;return t&&t.ready}get image(){const{fill:t}=this.__;return p(t)&&t[0].image}};xt([y(oe)],ti.prototype,"__",void 0),xt([A("")],ti.prototype,"url",void 0),ti=xt([J()],ti);const ei=ti;let ii=class extends we{get __tag(){return"Canvas"}get context(){return this.canvas.context}get ready(){return!this.url}constructor(t){super(t),this.canvas=Q.canvas(this.__),t&&t.url&&this.drawImage(t.url)}drawImage(t){new yt({url:t}).load(t=>{this.context.drawImage(t.view,0,0),this.url=void 0,this.paint(),this.emitEvent(new vt(vt.LOADED,{image:t}))})}draw(t,e,i,s){const o=new ft(t.worldTransform).invert(),r=new ft;e&&r.translate(e.x,e.y),i&&(j(i)?r.scale(i):r.scale(i.x,i.y)),s&&r.rotate(s),o.multiplyParent(r),t.__render(this.canvas,{matrix:o.withScale()}),this.paint()}paint(){this.forceRender()}__drawContent(t,e){const{width:i,height:s}=this.__,{view:o}=this.canvas;t.drawImage(o,0,0,o.width,o.height,0,0,i,s)}__updateSize(){const{canvas:t}=this;if(t){const{smooth:e,safeResize:i}=this.__;t.resize(this.__,i),t.smooth!==e&&(t.smooth=e)}}destroy(){this.canvas&&(this.canvas.destroy(),this.canvas=null),super.destroy()}};xt([y(re)],ii.prototype,"__",void 0),xt([mt(100)],ii.prototype,"width",void 0),xt([mt(100)],ii.prototype,"height",void 0),xt([mt(1)],ii.prototype,"pixelRatio",void 0),xt([mt(!0)],ii.prototype,"smooth",void 0),xt([v(!1)],ii.prototype,"safeResize",void 0),xt([mt()],ii.prototype,"contextSettings",void 0),ii=xt([J()],ii);const{copyAndSpread:si,includes:oi,spread:ri,setList:ai}=dt,{stintSet:ni}=n;let _i=class extends ce{get __tag(){return"Text"}get textDrawData(){return this.updateLayout(),this.__.__textDrawData}__updateTextDrawData(){const t=this.__,{lineHeight:e,letterSpacing:i,fontFamily:s,fontSize:o,fontWeight:r,italic:a,textCase:n,textOverflow:_,padding:h,width:d,height:l}=t;t.__lineHeight=bt.number(e,o),t.__letterSpacing=bt.number(i,o),t.__baseLine=t.__lineHeight-(t.__lineHeight-.7*o)/2,t.__font=`${a?"italic ":""}${"small-caps"===n?"small-caps ":""}${"normal"!==r?r+" ":""}${o||12}px ${s||"caption"}`,ni(t,"__padding",h&&H.fourNumber(h)),ni(t,"__clipText","show"!==_&&!t.__autoSize),ni(t,"__isCharMode",d||l||t.__letterSpacing||"none"!==n),t.__textDrawData=Bt.getDrawData((t.__isPlacehold=t.placeholder&&""===t.text)?t.placeholder:t.text,this.__)}__updateBoxBounds(){const t=this.__,e=this.__layout,{fontSize:i,italic:s,padding:o,__autoWidth:r,__autoHeight:a}=t;this.__updateTextDrawData();const{bounds:_}=t.__textDrawData,h=e.boxBounds;if(e.contentBounds=_,t.__lineHeight<i&&ri(_,i/2),r||a){if(h.x=r?_.x:0,h.y=a?_.y:0,h.width=r?_.width:t.width,h.height=a?_.height:t.height,o){const[e,i,s,o]=t.__padding;r&&(h.x-=o,h.width+=i+o),a&&(h.y-=e,h.height+=s+e)}this.__updateNaturalSize()}else super.__updateBoxBounds();s&&(h.width+=.16*i),n.stintSet(this,"isOverflow",!oi(h,_)),this.isOverflow?(ai(t.__textBoxBounds={},[h,_]),e.renderChanged=!0):t.__textBoxBounds=h}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.isOverflow?1:0),t}__updateRenderBounds(){const{renderBounds:t,renderSpread:e}=this.__layout;si(t,this.__.__textBoxBounds,e),this.__box&&(this.__box.__layout.renderBounds=t)}__updateChange(){super.__updateChange();const t=this.__box;t&&(t.__onUpdateSize(),t.__updateChange())}__drawRenderPath(t){t.font=this.__.__font}__draw(t,e,i){const s=this.__box;s&&(s.__nowWorld=this.__nowWorld,s.__draw(t,e,i)),this.textEditing&&!e.exporting||super.__draw(t,e,i)}__drawShape(t,e){e.shape&&this.__box&&this.__box.__drawShape(t,e),super.__drawShape(t,e)}destroy(){this.boxStyle&&(this.boxStyle=null),super.destroy()}};xt([y(se)],_i.prototype,"__",void 0),xt([A(0)],_i.prototype,"width",void 0),xt([A(0)],_i.prototype,"height",void 0),xt([f()],_i.prototype,"boxStyle",void 0),xt([v(!1)],_i.prototype,"resizeFontSize",void 0),xt([f("#000000")],_i.prototype,"fill",void 0),xt([ct("outside")],_i.prototype,"strokeAlign",void 0),xt([T("all")],_i.prototype,"hitFill",void 0),xt([A("")],_i.prototype,"text",void 0),xt([A("")],_i.prototype,"placeholder",void 0),xt([A("caption")],_i.prototype,"fontFamily",void 0),xt([A(12)],_i.prototype,"fontSize",void 0),xt([A("normal")],_i.prototype,"fontWeight",void 0),xt([A(!1)],_i.prototype,"italic",void 0),xt([A("none")],_i.prototype,"textCase",void 0),xt([A("none")],_i.prototype,"textDecoration",void 0),xt([A(0)],_i.prototype,"letterSpacing",void 0),xt([A({type:"percent",value:1.5})],_i.prototype,"lineHeight",void 0),xt([A(0)],_i.prototype,"paraIndent",void 0),xt([A(0)],_i.prototype,"paraSpacing",void 0),xt([A("x")],_i.prototype,"writingMode",void 0),xt([A("left")],_i.prototype,"textAlign",void 0),xt([A("top")],_i.prototype,"verticalAlign",void 0),xt([A(!0)],_i.prototype,"autoSizeAlign",void 0),xt([A("normal")],_i.prototype,"textWrap",void 0),xt([A("show")],_i.prototype,"textOverflow",void 0),xt([f(!1)],_i.prototype,"textEditing",void 0),_i=xt([J()],_i);let hi=class extends ce{get __tag(){return"Path"}};xt([y(te)],hi.prototype,"__",void 0),xt([ct("center")],hi.prototype,"strokeAlign",void 0),hi=xt([J()],hi);let di=class extends ge{get __tag(){return"Pen"}setStyle(t){const e=this.pathElement=new hi(t);return this.pathStyle=t,this.__path=e.path||(e.path=[]),this.add(e),this}beginPath(){return this}moveTo(t,e){return this}lineTo(t,e){return this}bezierCurveTo(t,e,i,s,o,r){return this}quadraticCurveTo(t,e,i,s){return this}closePath(){return this}rect(t,e,i,s){return this}roundRect(t,e,i,s,o){return this}ellipse(t,e,i,s,o,r,a,n){return this}arc(t,e,i,s,o,r){return this}arcTo(t,e,i,s,o){return this}drawEllipse(t,e,i,s,o,r,a,n){return this}drawArc(t,e,i,s,o,r){return this}drawPoints(t,e,i){return this}clearPath(){return this}paint(){this.pathElement.__layout.boxChanged||this.pathElement.forceUpdate("path")}};xt([y(ee)],di.prototype,"__",void 0),xt([(e,i)=>{t(e,i,{get(){return this.__path}})}],di.prototype,"path",void 0),di=xt([N(wt,["set","path","paint"]),J()],di);export{Be as Box,jt as BoxData,ii as Canvas,re as CanvasData,At as ColorConvert,Et as Effect,Fe as Ellipse,Kt as EllipseData,It as Export,Dt as Filter,Ae as Frame,qt as FrameData,ge as Group,Xt as GroupData,ti as Image,oe as ImageData,fe as Leafer,Jt as LeaferData,Ze as Line,Gt as LineData,ei as MyImage,Pt as Paint,Wt as PaintGradient,Ft as PaintImage,hi as Path,Ct as PathArrow,te as PathData,di as Pen,ee as PenData,Me as Polygon,Qt as PolygonData,we as Rect,$t as RectData,pe as RectRender,Xe as Star,Zt as StarData,Tt as State,_i as Text,Bt as TextConvert,se as TextData,Lt as Transition,ce as UI,_e as UIBounds,Yt as UIData,de as UIRender,bt as UnitConvert,kt as createAttr,St as effectType,mt as resizeType,Rt as zoomLayerType};
2
2
  //# sourceMappingURL=draw.esm.min.js.map