@leafer-ui/draw 2.0.9 → 2.1.1
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 +19 -8
- package/lib/draw.esm.js +19 -8
- package/lib/draw.esm.min.js +1 -1
- package/lib/draw.esm.min.js.map +1 -1
- package/lib/draw.min.cjs +1 -1
- package/lib/draw.min.cjs.map +1 -1
- package/package.json +6 -6
package/lib/draw.cjs
CHANGED
|
@@ -143,8 +143,8 @@ class UIData extends core.LeafData {
|
|
|
143
143
|
return this.__getRealStrokeWidth();
|
|
144
144
|
}
|
|
145
145
|
get __maxStrokeWidth() {
|
|
146
|
-
const t = this;
|
|
147
|
-
return t.__hasMultiStrokeStyle ? Math.max(t.__hasMultiStrokeStyle,
|
|
146
|
+
const t = this, strokeWidth = t.__hasStrokeSides || t.strokeWidth;
|
|
147
|
+
return t.__hasMultiStrokeStyle ? Math.max(t.__hasMultiStrokeStyle, strokeWidth) : strokeWidth;
|
|
148
148
|
}
|
|
149
149
|
get __hasMultiPaint() {
|
|
150
150
|
const t = this;
|
|
@@ -212,7 +212,7 @@ class UIData extends core.LeafData {
|
|
|
212
212
|
const isStr = core.isString(value);
|
|
213
213
|
if (isStr || value && core.isObject(value[0])) {
|
|
214
214
|
this.__setInput("path", value);
|
|
215
|
-
this._path = isStr ? parse(value) : objectToCanvasData(value);
|
|
215
|
+
this._path = isStr ? parse(value, this.__useArrow) : objectToCanvasData(value);
|
|
216
216
|
} else {
|
|
217
217
|
if (this.__input) this.__removeInput("path");
|
|
218
218
|
this._path = value;
|
|
@@ -245,6 +245,10 @@ class UIData extends core.LeafData {
|
|
|
245
245
|
}
|
|
246
246
|
return strokeWidth;
|
|
247
247
|
}
|
|
248
|
+
__checkComplex() {
|
|
249
|
+
const t = this;
|
|
250
|
+
stintSet$2(t, "__complex", t.__isFills || t.__isStrokes || t.cornerRadius || t.__useEffect);
|
|
251
|
+
}
|
|
248
252
|
__setPaint(attrName, value) {
|
|
249
253
|
this.__setInput(attrName, value);
|
|
250
254
|
const layout = this.__leaf.__layout;
|
|
@@ -323,7 +327,11 @@ class EllipseData extends UIData {
|
|
|
323
327
|
}
|
|
324
328
|
}
|
|
325
329
|
|
|
326
|
-
class PolygonData extends
|
|
330
|
+
class PolygonData extends UIData {
|
|
331
|
+
get __usePathBox() {
|
|
332
|
+
return this.points || this.__pathInputed;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
327
335
|
|
|
328
336
|
class StarData extends UIData {
|
|
329
337
|
get __boxStroke() {
|
|
@@ -434,7 +442,7 @@ const UIBounds = {
|
|
|
434
442
|
if ((data.stroke || data.hitStroke === "all") && strokeWidth && strokeAlign !== "inside") {
|
|
435
443
|
boxSpread = spread = strokeAlign === "center" ? strokeWidth / 2 : strokeWidth;
|
|
436
444
|
if (!data.__boxStroke || data.__useArrow) {
|
|
437
|
-
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * spread;
|
|
445
|
+
const miterLimitAddWidth = data.__isLinePath ? 0 : (data.strokeJoin === "miter" ? 10 : 1) * spread;
|
|
438
446
|
const storkeCapAddWidth = data.strokeCap === "none" ? 0 : strokeWidth;
|
|
439
447
|
spread += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
440
448
|
}
|
|
@@ -479,7 +487,7 @@ const UIRender = {
|
|
|
479
487
|
data.__useEffect = !!(shadow || otherEffect);
|
|
480
488
|
}
|
|
481
489
|
data.__checkSingle();
|
|
482
|
-
|
|
490
|
+
data.__checkComplex();
|
|
483
491
|
},
|
|
484
492
|
__drawFast(canvas, options) {
|
|
485
493
|
drawFast(this, canvas, options);
|
|
@@ -1738,7 +1746,7 @@ __decorate([ resizeType() ], exports.Canvas.prototype, "contextSettings", void 0
|
|
|
1738
1746
|
|
|
1739
1747
|
exports.Canvas = __decorate([ core.registerUI() ], exports.Canvas);
|
|
1740
1748
|
|
|
1741
|
-
const {copyAndSpread: copyAndSpread, includes: includes,
|
|
1749
|
+
const {copyAndSpread: copyAndSpread, includes: includes, setList: setList} = core.BoundsHelper, {stintSet: stintSet} = core.DataHelper;
|
|
1742
1750
|
|
|
1743
1751
|
exports.Text = class Text extends exports.UI {
|
|
1744
1752
|
get __tag() {
|
|
@@ -1766,9 +1774,10 @@ exports.Text = class Text extends exports.UI {
|
|
|
1766
1774
|
const {fontSize: fontSize, italic: italic, padding: padding, __autoWidth: autoWidth, __autoHeight: autoHeight} = data;
|
|
1767
1775
|
this.__updateTextDrawData();
|
|
1768
1776
|
const {bounds: contentBounds} = data.__textDrawData;
|
|
1777
|
+
console.log(contentBounds);
|
|
1769
1778
|
const b = layout.boxBounds;
|
|
1770
1779
|
layout.contentBounds = contentBounds;
|
|
1771
|
-
if (data.__lineHeight < fontSize)
|
|
1780
|
+
if (data.__lineHeight < fontSize) layout.renderChanged = true;
|
|
1772
1781
|
if (autoWidth || autoHeight) {
|
|
1773
1782
|
b.x = autoWidth ? contentBounds.x : 0;
|
|
1774
1783
|
b.y = autoHeight ? contentBounds.y : 0;
|
|
@@ -1788,6 +1797,8 @@ exports.Text = class Text extends exports.UI {
|
|
|
1788
1797
|
__updateRenderSpread() {
|
|
1789
1798
|
let spread = super.__updateRenderSpread();
|
|
1790
1799
|
if (!spread) spread = this.isOverflow ? 1 : 0;
|
|
1800
|
+
const {__lineHeight: __lineHeight, fontSize: fontSize} = this.__;
|
|
1801
|
+
if (__lineHeight < fontSize) spread = core.FourNumberHelper.max(spread, (fontSize - __lineHeight) / 2);
|
|
1791
1802
|
return spread;
|
|
1792
1803
|
}
|
|
1793
1804
|
__updateRenderBounds() {
|
package/lib/draw.esm.js
CHANGED
|
@@ -143,8 +143,8 @@ class UIData extends LeafData {
|
|
|
143
143
|
return this.__getRealStrokeWidth();
|
|
144
144
|
}
|
|
145
145
|
get __maxStrokeWidth() {
|
|
146
|
-
const t = this;
|
|
147
|
-
return t.__hasMultiStrokeStyle ? Math.max(t.__hasMultiStrokeStyle,
|
|
146
|
+
const t = this, strokeWidth = t.__hasStrokeSides || t.strokeWidth;
|
|
147
|
+
return t.__hasMultiStrokeStyle ? Math.max(t.__hasMultiStrokeStyle, strokeWidth) : strokeWidth;
|
|
148
148
|
}
|
|
149
149
|
get __hasMultiPaint() {
|
|
150
150
|
const t = this;
|
|
@@ -212,7 +212,7 @@ class UIData extends LeafData {
|
|
|
212
212
|
const isStr = isString(value);
|
|
213
213
|
if (isStr || value && isObject(value[0])) {
|
|
214
214
|
this.__setInput("path", value);
|
|
215
|
-
this._path = isStr ? parse(value) : objectToCanvasData(value);
|
|
215
|
+
this._path = isStr ? parse(value, this.__useArrow) : objectToCanvasData(value);
|
|
216
216
|
} else {
|
|
217
217
|
if (this.__input) this.__removeInput("path");
|
|
218
218
|
this._path = value;
|
|
@@ -245,6 +245,10 @@ class UIData extends LeafData {
|
|
|
245
245
|
}
|
|
246
246
|
return strokeWidth;
|
|
247
247
|
}
|
|
248
|
+
__checkComplex() {
|
|
249
|
+
const t = this;
|
|
250
|
+
stintSet$2(t, "__complex", t.__isFills || t.__isStrokes || t.cornerRadius || t.__useEffect);
|
|
251
|
+
}
|
|
248
252
|
__setPaint(attrName, value) {
|
|
249
253
|
this.__setInput(attrName, value);
|
|
250
254
|
const layout = this.__leaf.__layout;
|
|
@@ -323,7 +327,11 @@ class EllipseData extends UIData {
|
|
|
323
327
|
}
|
|
324
328
|
}
|
|
325
329
|
|
|
326
|
-
class PolygonData extends
|
|
330
|
+
class PolygonData extends UIData {
|
|
331
|
+
get __usePathBox() {
|
|
332
|
+
return this.points || this.__pathInputed;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
327
335
|
|
|
328
336
|
class StarData extends UIData {
|
|
329
337
|
get __boxStroke() {
|
|
@@ -434,7 +442,7 @@ const UIBounds = {
|
|
|
434
442
|
if ((data.stroke || data.hitStroke === "all") && strokeWidth && strokeAlign !== "inside") {
|
|
435
443
|
boxSpread = spread = strokeAlign === "center" ? strokeWidth / 2 : strokeWidth;
|
|
436
444
|
if (!data.__boxStroke || data.__useArrow) {
|
|
437
|
-
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * spread;
|
|
445
|
+
const miterLimitAddWidth = data.__isLinePath ? 0 : (data.strokeJoin === "miter" ? 10 : 1) * spread;
|
|
438
446
|
const storkeCapAddWidth = data.strokeCap === "none" ? 0 : strokeWidth;
|
|
439
447
|
spread += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
440
448
|
}
|
|
@@ -479,7 +487,7 @@ const UIRender = {
|
|
|
479
487
|
data.__useEffect = !!(shadow || otherEffect);
|
|
480
488
|
}
|
|
481
489
|
data.__checkSingle();
|
|
482
|
-
|
|
490
|
+
data.__checkComplex();
|
|
483
491
|
},
|
|
484
492
|
__drawFast(canvas, options) {
|
|
485
493
|
drawFast(this, canvas, options);
|
|
@@ -1738,7 +1746,7 @@ __decorate([ resizeType() ], Canvas.prototype, "contextSettings", void 0);
|
|
|
1738
1746
|
|
|
1739
1747
|
Canvas = __decorate([ registerUI() ], Canvas);
|
|
1740
1748
|
|
|
1741
|
-
const {copyAndSpread: copyAndSpread, includes: includes,
|
|
1749
|
+
const {copyAndSpread: copyAndSpread, includes: includes, setList: setList} = BoundsHelper, {stintSet: stintSet} = DataHelper;
|
|
1742
1750
|
|
|
1743
1751
|
let Text = class Text extends UI {
|
|
1744
1752
|
get __tag() {
|
|
@@ -1766,9 +1774,10 @@ let Text = class Text extends UI {
|
|
|
1766
1774
|
const {fontSize: fontSize, italic: italic, padding: padding, __autoWidth: autoWidth, __autoHeight: autoHeight} = data;
|
|
1767
1775
|
this.__updateTextDrawData();
|
|
1768
1776
|
const {bounds: contentBounds} = data.__textDrawData;
|
|
1777
|
+
console.log(contentBounds);
|
|
1769
1778
|
const b = layout.boxBounds;
|
|
1770
1779
|
layout.contentBounds = contentBounds;
|
|
1771
|
-
if (data.__lineHeight < fontSize)
|
|
1780
|
+
if (data.__lineHeight < fontSize) layout.renderChanged = true;
|
|
1772
1781
|
if (autoWidth || autoHeight) {
|
|
1773
1782
|
b.x = autoWidth ? contentBounds.x : 0;
|
|
1774
1783
|
b.y = autoHeight ? contentBounds.y : 0;
|
|
@@ -1788,6 +1797,8 @@ let Text = class Text extends UI {
|
|
|
1788
1797
|
__updateRenderSpread() {
|
|
1789
1798
|
let spread = super.__updateRenderSpread();
|
|
1790
1799
|
if (!spread) spread = this.isOverflow ? 1 : 0;
|
|
1800
|
+
const {__lineHeight: __lineHeight, fontSize: fontSize} = this.__;
|
|
1801
|
+
if (__lineHeight < fontSize) spread = FourNumberHelper.max(spread, (fontSize - __lineHeight) / 2);
|
|
1791
1802
|
return spread;
|
|
1792
1803
|
}
|
|
1793
1804
|
__updateRenderBounds() {
|
package/lib/draw.esm.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineKey as t,decorateLeafAttr as e,attr as i,createDescriptor as s,Plugin as o,UnitConvertHelper as r,PathConvert as a,DataHelper as n,Debug as _,LeafData as h,isString as d,isObject as l,isUndefined as p,isArray as u,canvasSizeAttrs as c,UICreator as g,FourNumberHelper as y,dataProcessor as v,dataType as f,surfaceType as w,opacityType as x,visibleType as S,dimType as m,sortType as k,maskType as R,eraserType as A,positionType as B,boundsType as b,scaleType as C,rotationType as P,scrollType as F,autoLayoutType as W,naturalBoundsType as D,affectRenderBoundsType as T,pathInputType as E,pathType as I,hitType as L,strokeType as z,cursorType as M,rewrite as O,Leaf as N,useModule as V,rewriteAble as H,MathHelper as Y,pen as U,PathCorner as X,PathDrawer as j,isNumber as J,registerUI as q,Branch as G,LeafList as $,Resource as K,getBoundsData as Q,Creator as Z,CanvasManager as tt,WaitHelper as et,LeaferEvent as it,Bounds as st,ResizeEvent as ot,AutoBounds as rt,Run as at,LayoutEvent as nt,RenderEvent as _t,WatchEvent as ht,ImageManager as dt,BoundsHelper as lt,PathCommandDataHelper as pt,Platform as ut,OneRadian as ct,PointHelper as gt,affectStrokeBoundsType as yt,getPointData as vt,LeaferImage as ft,ImageEvent as wt,Matrix as xt,PathCreator as St}from"@leafer/core";export*from"@leafer/core";function mt(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 kt(t){return e(t,t=>i({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0);const i=this.__layout;i.renderChanged||i.renderChange(),i.surfaceChange()}}))}function Rt(t){return e(t,t=>i({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}}))}function At(){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 Bt(e){return(i,o)=>{t(i,o,s(o,e))}}"function"==typeof SuppressedError&&SuppressedError;const bt={},Ct={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}},Pt=r,Ft={},Wt={},Dt={},Tt={},Et={},It={apply(){o.need("filter")}},Lt={},zt={setStyleName:()=>o.need("state"),set:()=>o.need("state")},Mt={list:{},register(t,e){Mt.list[t]=e},get:t=>Mt.list[t]},{parse:Ot,objectToCanvasData:Nt}=a,{stintSet:Vt}=n,{hasTransparent:Ht}=Ct,Yt={originPaint:{}},Ut=_.get("UIData");class Xt 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 null==this._width}get __autoHeight(){return null==this._height}get __autoSide(){return null==this._width||null==this._height}get __autoSize(){return null==this._width&&null==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,Ut.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,Ut.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),d(t)||!t?(Vt(this,"__isTransparentFill",Ht(t)),this.__isFills&&this.__removePaint("fill",!0),this._fill=t):l(t)&&this.__setPaint("fill",t)}setStroke(t){d(t)||!t?(Vt(this,"__isTransparentStroke",Ht(t)),this.__isStrokes&&this.__removePaint("stroke",!0),this._stroke=t):l(t)&&this.__setPaint("stroke",t)}setPath(t){const e=d(t);e||t&&l(t[0])?(this.__setInput("path",t),this._path=e?Ot(t):Nt(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){jt(this,"shadow",t)}setInnerShadow(t){jt(this,"innerShadow",t)}setFilter(t){jt(this,"filter",t)}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&Wt.compute("fill",this.__leaf),e&&Wt.compute("stroke",this.__leaf),this.__needComputePaint=void 0}__getRealStrokeWidth(t){let{strokeWidth:e,strokeScaleFixed:i}=this;if(t&&(t.strokeWidth&&(e=t.strokeWidth),p(t.strokeScaleFixed)||(i=t.strokeScaleFixed)),i){const{scaleX:t}=this.__leaf.getRenderScaleData(!0,i,!1);if(1!==t)return e*t}return e}__setPaint(t,e){this.__setInput(t,e);const i=this.__leaf.__layout;i.boxChanged||i.boxChange(),u(e)&&!e.length?this.__removePaint(t):"fill"===t?(this.__isFills=!0,this._fill||(this._fill=Yt)):(this.__isStrokes=!0,this._stroke||(this._stroke=Yt))}__removePaint(t,e){e&&this.__removeInput(t),Dt.recycleImage(t,this),"fill"===t?(Vt(this,"__isAlphaPixelFill",void 0),this._fill=this.__isFills=void 0):(Vt(this,"__isAlphaPixelStroke",void 0),Vt(this,"__hasMultiStrokeStyle",void 0),this._stroke=this.__isStrokes=void 0)}}function jt(t,e,i){t.__setInput(e,i),u(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 Jt extends Xt{}class qt extends Jt{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 Gt extends Jt{__getInputData(t,e){const i=super.__getInputData(t,e);return c.forEach(t=>delete i[t]),i}}class $t extends qt{}class Kt extends Xt{get __usePathBox(){return this.points||this.__pathInputed}}class Qt extends Xt{get __boxStroke(){return!this.__pathInputed}}class Zt extends Xt{get __boxStroke(){return!this.__pathInputed}}class te extends Kt{}class ee extends Xt{get __boxStroke(){return!this.__pathInputed}}class ie extends Xt{get __pathInputed(){return 2}}class se extends Jt{}const oe={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class re extends Xt{get __useNaturalRatio(){return!1}setFontWeight(t){d(t)?(this.__setInput("fontWeight",t),t=oe[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=g.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 ae extends Qt{get __urlType(){return"image"}setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.fill=t?{type:this.__urlType,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 ne extends Qt{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:_e,add:he}=y,de={__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||i.__useArrow)){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=_e(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=_e(t,s)),r&&(t=he(t,It.getSpread(r))),a&&(t=he(t,a)),n&&(t=he(t,n));let h=t;return i&&(h=_e(h,Et.getInnerShadowSpread(this,i))),o&&(h=_e(h,o)),this.__layout.renderShapeSpread=h,_?_e(_.__updateRenderSpread(),t):t}},{stintSet:le}=n,pe={__updateChange(){const t=this.__;if(t.__useStroke){const e=t.__useStroke=!(!t.stroke||!t.strokeWidth);le(this.__world,"half",e&&"center"===t.strokeAlign&&t.strokeWidth%2),le(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;le(t,"__isFastShadow",e&&!o&&e.length<2&&!e[0].spread&&!Et.isTransformShadow(e[0])&&i&&!t.__isTransparentFill&&!(u(i)&&i.length>1)&&(this.useFastShadow||!s||s&&"inside"===t.strokeAlign)),t.__useEffect=!(!e&&!o)}t.__checkSingle(),le(t,"__complex",t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect)},__drawFast(t,e){ue(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 _=Wt.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?Wt.strokes(r,this,t,e):Wt.stroke(r,this,t,e)),o&&(s.__isFills?Wt.fills(o,this,t,e):Wt.fill(o,this,t,e)),a&&this.__drawAfterFill(t,e),d&&Et.innerShadow(this,t,_),r&&!n&&(s.__isStrokes?Wt.strokes(r,this,t,e):Wt.stroke(r,this,t,e)),l&&It.apply(l,this,this.__nowWorld,t,i,_),_.worldCanvas&&_.worldCanvas.recycle(),_.canvas.recycle()}else{if(n&&(s.__isStrokes?Wt.strokes(r,this,t,e):Wt.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,Ct.string(e.color))}o&&(s.__isFills?Wt.fills(o,this,t,e):Wt.fill(o,this,t,e)),_&&t.restore(),a&&this.__drawAfterFill(t,e),r&&!n&&(s.__isStrokes?Wt.strokes(r,this,t,e):Wt.stroke(r,this,t,e))}}else s.__pathForRender?ue(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?Wt.fills(s,this,t,e):Wt.fill("#000000",this,t,e)),i.__isCanvas&&this.__drawAfterFill(t,e),o&&!e.ignoreStroke&&(i.__isAlphaPixelStroke?Wt.strokes(o,this,t,e):Wt.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 ue(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r,__fillAfterStroke:a}=t.__;t.__drawRenderPath(e),a&&Wt.stroke(o,t,e,i),s&&Wt.fill(s,t,e,i),r&&t.__drawAfterFill(e,i),o&&!a&&Wt.stroke(o,t,e,i)}const ce={__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 ge;let ye=ge=class extends N{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set strokeWidthFixed(t){this.strokeScaleFixed=t}get strokeWidthFixed(){return this.strokeScaleFixed}set scale(t){Y.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 U.set(this.path=t||[]),t||this.__drawPathByBox(U),U}reset(t){}set(t,e){t&&Object.assign(this,t)}get(t){return d(t)?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}clearProxyData(){}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||(U.set(i=[]),this.__drawPathByBox(U,!e)),t?a.toCanvasData(i,!0):i}getPathString(t,e,i){return a.stringify(this.getPath(t,e),i)}asPath(t,e){this.path=this.getPath(t,e)}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||Lt.running?t.__computePaint():t.__needComputePaint=!0}}__updateRenderPath(t){const e=this.__;e.path?(e.__pathForRender=e.cornerRadius||e.path.radius?X.smooth(e.path,e.cornerRadius,e.cornerSmoothing):e.path,e.__useArrow&&Ft.addArrows(this,t)):e.__pathForRender&&(e.__pathForRender=void 0)}__drawRenderPath(t){const e=this.__;t.beginPath(),e.__useArrow&&Ft.updateArrow(this),this.__drawPathByData(t,e.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path,!0)}__drawPathByData(t,e,i){e?j.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){Wt.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),ge.one(e)}static one(t,e,i,s,o){return g.get(t.tag||this.prototype.__tag,t,e,i,s,o)}static registerUI(){q()(this)}static registerData(t){v(t)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.__.__willDestroy=!0,this.fill=this.stroke=null,this.__animate&&this.killAnimate(),super.destroy()}};mt([v(Xt)],ye.prototype,"__",void 0),mt([At()],ye.prototype,"zoomLayer",void 0),mt([f("")],ye.prototype,"id",void 0),mt([f("")],ye.prototype,"name",void 0),mt([f("")],ye.prototype,"className",void 0),mt([w("pass-through")],ye.prototype,"blendMode",void 0),mt([x(1)],ye.prototype,"opacity",void 0),mt([S(!0)],ye.prototype,"visible",void 0),mt([w(!1)],ye.prototype,"locked",void 0),mt([m(!1)],ye.prototype,"dim",void 0),mt([m(!1)],ye.prototype,"dimskip",void 0),mt([k(0)],ye.prototype,"zIndex",void 0),mt([R(!1)],ye.prototype,"mask",void 0),mt([A(!1)],ye.prototype,"eraser",void 0),mt([B(0,!0)],ye.prototype,"x",void 0),mt([B(0,!0)],ye.prototype,"y",void 0),mt([b(100,!0)],ye.prototype,"width",void 0),mt([b(100,!0)],ye.prototype,"height",void 0),mt([C(1,!0)],ye.prototype,"scaleX",void 0),mt([C(1,!0)],ye.prototype,"scaleY",void 0),mt([P(0,!0)],ye.prototype,"rotation",void 0),mt([P(0,!0)],ye.prototype,"skewX",void 0),mt([P(0,!0)],ye.prototype,"skewY",void 0),mt([B(0,!0)],ye.prototype,"offsetX",void 0),mt([B(0,!0)],ye.prototype,"offsetY",void 0),mt([F(0,!0)],ye.prototype,"scrollX",void 0),mt([F(0,!0)],ye.prototype,"scrollY",void 0),mt([W()],ye.prototype,"origin",void 0),mt([W()],ye.prototype,"around",void 0),mt([f(!1)],ye.prototype,"lazy",void 0),mt([D(1)],ye.prototype,"pixelRatio",void 0),mt([T(0)],ye.prototype,"renderSpread",void 0),mt([E()],ye.prototype,"path",void 0),mt([I()],ye.prototype,"windingRule",void 0),mt([I(!0)],ye.prototype,"closed",void 0),mt([b(0)],ye.prototype,"padding",void 0),mt([b(!1)],ye.prototype,"lockRatio",void 0),mt([b()],ye.prototype,"widthRange",void 0),mt([b()],ye.prototype,"heightRange",void 0),mt([f(!1)],ye.prototype,"draggable",void 0),mt([f()],ye.prototype,"dragBounds",void 0),mt([f("auto")],ye.prototype,"dragBoundsType",void 0),mt([f(!1)],ye.prototype,"editable",void 0),mt([L(!0)],ye.prototype,"hittable",void 0),mt([L("path")],ye.prototype,"hitFill",void 0),mt([z("path")],ye.prototype,"hitStroke",void 0),mt([L(!1)],ye.prototype,"hitBox",void 0),mt([L(!0)],ye.prototype,"hitChildren",void 0),mt([L(!0)],ye.prototype,"hitSelf",void 0),mt([L()],ye.prototype,"hitRadius",void 0),mt([M("")],ye.prototype,"cursor",void 0),mt([w()],ye.prototype,"fill",void 0),mt([z(void 0,!0)],ye.prototype,"stroke",void 0),mt([z("inside")],ye.prototype,"strokeAlign",void 0),mt([z(1,!0)],ye.prototype,"strokeWidth",void 0),mt([z(!1)],ye.prototype,"strokeScaleFixed",void 0),mt([z("none")],ye.prototype,"strokeCap",void 0),mt([z("miter")],ye.prototype,"strokeJoin",void 0),mt([z()],ye.prototype,"dashPattern",void 0),mt([z(0)],ye.prototype,"dashOffset",void 0),mt([z(10)],ye.prototype,"miterLimit",void 0),mt([I(0)],ye.prototype,"cornerRadius",void 0),mt([I()],ye.prototype,"cornerSmoothing",void 0),mt([kt()],ye.prototype,"shadow",void 0),mt([kt()],ye.prototype,"innerShadow",void 0),mt([kt()],ye.prototype,"blur",void 0),mt([kt()],ye.prototype,"backgroundBlur",void 0),mt([kt()],ye.prototype,"grayscale",void 0),mt([kt()],ye.prototype,"filter",void 0),mt([w()],ye.prototype,"placeholderColor",void 0),mt([f(100)],ye.prototype,"placeholderDelay",void 0),mt([f({})],ye.prototype,"data",void 0),mt([O(N.prototype.reset)],ye.prototype,"reset",null),ye=ge=mt([V(de),V(pe),H()],ye);let ve=class extends ye{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);if(!this.childlessJSON){const i=e.children=[];this.children.forEach(e=>e.skipJSON||i.push(e.toJSON(t)))}return 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 fe;mt([v(Jt)],ve.prototype,"__",void 0),mt([b(0)],ve.prototype,"width",void 0),mt([b(0)],ve.prototype,"height",void 0),ve=mt([V(G),q()],ve);const we=_.get("Leafer");let xe=fe=class extends ve{get __tag(){return"Leafer"}get isApp(){return!1}get app(){return this.parent||this}get isLeafer(){return!0}get imageReady(){return this.viewReady&&K.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)||Q()}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),fe.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=Z.canvas(s);this.__controllers.push(this.renderer=Z.renderer(this,o,s),this.watcher=Z.watcher(this,s),this.layouter=Z.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(),e||(this.selector=Z.selector(this),this.interaction=Z.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=Z.hitCanvasManager()),this.canvasManager=new tt,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))),et.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(it.RESTART):this.emitLeafer(it.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(it.STOP))}unlockLayout(t=!0){this.layouter.start(),t&&this.updateLayout()}lockLayout(t=!0){t&&this.updateLayout(),this.layouter.stop()}resize(t){const e=n.copyAttrs({},t,c);Object.keys(e).forEach(t=>this[t]=e[t])}forceRender(t,e){const{renderer:i}=this;i&&(i.addBlock(t?new st(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,c);e.resize(t),this.updateLazyBounds(),this.__onResize(new ot(t,i))}__onResize(t){this.emitEvent(t),n.copyAttrs(this.__,t,c),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 rt(t)),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(c.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(it.UPDATE_MODE,{mode:e})),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&c.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const{config:i,canvas:s}=this,o=n.copyAttrs({},s,c);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(it.BEFORE_READY),this.emitLeafer(it.READY),this.emitLeafer(it.AFTER_READY),et.run(this.__readyWait)}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(it.VIEW_READY),et.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){et.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(it.VIEW_COMPLETED),et.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 it(t,this))}__listenEvents(){const t=at.start("FirstCreate "+this.innerName);this.once([[it.START,()=>at.end(t)],[nt.START,this.updateLazyBounds,this],[_t.START,this.__onCreated,this],[_t.END,this.__onViewReady,this]]),this.__eventIds.push(this.on_([[ht.DATA,this.__onWatchData,this],[nt.END,this.__onLayoutEnd,this],[_t.NEXT,this.__onNextRender,this]]))}__removeListenEvents(){this.off_(this.__eventIds)}destroy(t){const e=()=>{if(!this.destroyed){fe.list.remove(this);try{this.stop(),this.emitLeafer(it.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(()=>{dt.clearRecycled()},100)}catch(t){we.error(t)}}};t?e():setTimeout(e)}};xe.list=new $,mt([v(Gt)],xe.prototype,"__",void 0),mt([b()],xe.prototype,"pixelRatio",void 0),mt([f("normal")],xe.prototype,"mode",void 0),xe=fe=mt([q()],xe);let Se=class extends ye{get __tag(){return"Rect"}};mt([v(Qt)],Se.prototype,"__",void 0),Se=mt([V(ce),H(),q()],Se);const{add:me,includes:ke,scroll:Re}=lt,Ae=Se.prototype,Be=ve.prototype;let be=class extends ve{get __tag(){return"Box"}get isBranchLeaf(){return!0}get __useSelfBox(){return this.pathInputed}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.__useSelfBox){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=Q());super.__updateRenderBounds(n),(e=a&&a.includes("scroll"))&&(me(n,r),Re(n,i)),this.__updateRectRenderBounds(),t=!ke(r,n),t&&"show"===a&&me(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))}};mt([v(qt)],be.prototype,"__",void 0),mt([b(100)],be.prototype,"width",void 0),mt([b(100)],be.prototype,"height",void 0),mt([f(!1)],be.prototype,"resizeChildren",void 0),mt([T("show")],be.prototype,"overflow",void 0),mt([O(Ae.__updateStrokeSpread)],be.prototype,"__updateStrokeSpread",null),mt([O(Ae.__updateRenderSpread)],be.prototype,"__updateRectRenderSpread",null),mt([O(Ae.__updateBoxBounds)],be.prototype,"__updateRectBoxBounds",null),mt([O(Ae.__updateStrokeBounds)],be.prototype,"__updateStrokeBounds",null),mt([O(Ae.__updateRenderBounds)],be.prototype,"__updateRectRenderBounds",null),mt([O(Ae.__updateChange)],be.prototype,"__updateRectChange",null),mt([O(Ae.__render)],be.prototype,"__renderRect",null),mt([O(Be.__render)],be.prototype,"__renderGroup",null),be=mt([H(),q()],be);let Ce=class extends be{get __tag(){return"Frame"}get isFrame(){return!0}};mt([v($t)],Ce.prototype,"__",void 0),mt([w("#FFFFFF")],Ce.prototype,"fill",void 0),mt([T("hide")],Ce.prototype,"overflow",void 0),Ce=mt([q()],Ce);const{moveTo:Pe,closePath:Fe,ellipse:We}=pt;let De=class extends ye{get __tag(){return"Ellipse"}__updatePath(){const t=this.__,{width:e,height:i,innerRadius:s,startAngle:o,endAngle:r}=t,a=e/2,n=i/2,_=t.path=[];let h;s?o||r?(s<1?We(_,a,n,a*s,n*s,0,o,r,!1):h=!0,We(_,a,n,a,n,0,r,o,!0)):(s<1&&(We(_,a,n,a*s,n*s),Pe(_,e,n)),We(_,a,n,a,n,0,360,0,!0)):o||r?(Pe(_,a,n),We(_,a,n,a,n,0,o,r,!1)):We(_,a,n,a,n),h||Fe(_),(ut.ellipseToCurve||t.__useArrow||t.cornerRadius)&&(t.path=this.getPath(!0))}};mt([v(Zt)],De.prototype,"__",void 0),mt([I(0)],De.prototype,"innerRadius",void 0),mt([I(0)],De.prototype,"startAngle",void 0),mt([I(0)],De.prototype,"endAngle",void 0),De=mt([q()],De);const{sin:Te,cos:Ee,PI:Ie}=Math,{moveTo:Le,lineTo:ze,closePath:Me,drawPoints:Oe}=pt;let Ne=class extends ye{get __tag(){return"Polygon"}__updatePath(){const t=this.__,e=t.path=[];if(t.points)Oe(e,t.points,t.curve,t.closed);else{const{width:i,height:s,sides:o,startAngle:r}=t,a=i/2,n=s/2;let _,h=0;r?(h=r*ct,Le(e,a+a*Te(h),n-n*Ee(h))):Le(e,a,0);for(let t=1;t<o;t++)_=2*t*Ie/o+h,ze(e,a+a*Te(_),n-n*Ee(_));Me(e)}}};mt([v(te)],Ne.prototype,"__",void 0),mt([I(3)],Ne.prototype,"sides",void 0),mt([I(0)],Ne.prototype,"startAngle",void 0),mt([I()],Ne.prototype,"points",void 0),mt([I(0)],Ne.prototype,"curve",void 0),Ne=mt([H(),q()],Ne);const{sin:Ve,cos:He,PI:Ye}=Math,{moveTo:Ue,lineTo:Xe,closePath:je}=pt;let Je=class extends ye{get __tag(){return"Star"}__updatePath(){const{width:t,height:e,corners:i,innerRadius:s,startAngle:o}=this.__,r=t/2,a=e/2,n=this.__.path=[];let _,h=0;o?(h=o*ct,Ue(n,r+r*Ve(h),a-a*He(h))):Ue(n,r,0);for(let t=1;t<2*i;t++)_=t*Ye/i+h,Xe(n,r+(t%2==0?r:r*s)*Ve(_),a-(t%2==0?a:a*s)*He(_));je(n)}};mt([v(ee)],Je.prototype,"__",void 0),mt([I(5)],Je.prototype,"corners",void 0),mt([I(.382)],Je.prototype,"innerRadius",void 0),mt([I(0)],Je.prototype,"startAngle",void 0),Je=mt([q()],Je);const{moveTo:qe,lineTo:Ge,drawPoints:$e}=pt,{rotate:Ke,getAngle:Qe,getDistance:Ze,defaultPoint:ti}=gt;let ei=class extends ye{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=vt();return t&&(i.x=t),e&&Ke(i,e),i}set toPoint(t){this.width=Ze(ti,t),this.rotation=Qe(ti,t),this.height&&(this.height=0)}__updatePath(){const t=this.__,e=t.path=[];t.points?$e(e,t.points,t.curve,t.closed):(qe(e,0,0),Ge(e,this.width,0))}};mt([v(Kt)],ei.prototype,"__",void 0),mt([yt("center")],ei.prototype,"strokeAlign",void 0),mt([b(0)],ei.prototype,"height",void 0),mt([I()],ei.prototype,"points",void 0),mt([I(0)],ei.prototype,"curve",void 0),mt([I(!1)],ei.prototype,"closed",void 0),ei=mt([q()],ei);let ii=class extends Se{get __tag(){return"Image"}get ready(){const{image:t}=this;return t&&t.ready}get image(){const{fill:t}=this.__;return u(t)&&t[0].image}};mt([v(ae)],ii.prototype,"__",void 0),mt([b("")],ii.prototype,"url",void 0),ii=mt([q()],ii);const si=ii;let oi=class extends Se{get __tag(){return"Canvas"}get context(){return this.canvas.context}get ready(){return!this.url}constructor(t){super(t),this.canvas=Z.canvas(this.__),t&&t.url&&this.drawImage(t.url)}drawImage(t){new ft({url:t}).load(t=>{this.context.drawImage(t.view,0,0),this.url=void 0,this.paint(),this.emitEvent(new wt(wt.LOADED,{image:t}))})}draw(t,e,i,s){const o=new xt(t.worldTransform).invert(),r=new xt;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()}};mt([v(ne)],oi.prototype,"__",void 0),mt([Rt(100)],oi.prototype,"width",void 0),mt([Rt(100)],oi.prototype,"height",void 0),mt([Rt(1)],oi.prototype,"pixelRatio",void 0),mt([Rt(!0)],oi.prototype,"smooth",void 0),mt([f(!1)],oi.prototype,"safeResize",void 0),mt([Rt()],oi.prototype,"contextSettings",void 0),oi=mt([q()],oi);const{copyAndSpread:ri,includes:ai,spread:ni,setList:_i}=lt,{stintSet:hi}=n;let di=class extends ye{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=Pt.number(e,o),t.__letterSpacing=Pt.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"}`,hi(t,"__padding",h&&Y.fourNumber(h)),hi(t,"__clipText","show"!==_&&!t.__autoSize),hi(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&&ni(_,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",!ai(h,_)),this.isOverflow?(_i(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;ri(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()}};mt([v(re)],di.prototype,"__",void 0),mt([b(0)],di.prototype,"width",void 0),mt([b(0)],di.prototype,"height",void 0),mt([w()],di.prototype,"boxStyle",void 0),mt([f(!1)],di.prototype,"resizeFontSize",void 0),mt([w("#000000")],di.prototype,"fill",void 0),mt([yt("outside")],di.prototype,"strokeAlign",void 0),mt([L("all")],di.prototype,"hitFill",void 0),mt([b("")],di.prototype,"text",void 0),mt([b("")],di.prototype,"placeholder",void 0),mt([b("caption")],di.prototype,"fontFamily",void 0),mt([b(12)],di.prototype,"fontSize",void 0),mt([b("normal")],di.prototype,"fontWeight",void 0),mt([b(!1)],di.prototype,"italic",void 0),mt([b("none")],di.prototype,"textCase",void 0),mt([b("none")],di.prototype,"textDecoration",void 0),mt([b(0)],di.prototype,"letterSpacing",void 0),mt([b({type:"percent",value:1.5})],di.prototype,"lineHeight",void 0),mt([b(0)],di.prototype,"paraIndent",void 0),mt([b(0)],di.prototype,"paraSpacing",void 0),mt([b("x")],di.prototype,"writingMode",void 0),mt([b("left")],di.prototype,"textAlign",void 0),mt([b("top")],di.prototype,"verticalAlign",void 0),mt([b(!0)],di.prototype,"autoSizeAlign",void 0),mt([b("normal")],di.prototype,"textWrap",void 0),mt([b("show")],di.prototype,"textOverflow",void 0),mt([w(!1)],di.prototype,"textEditing",void 0),di=mt([q()],di);let li=class extends ye{get __tag(){return"Path"}};mt([v(ie)],li.prototype,"__",void 0),mt([yt("center")],li.prototype,"strokeAlign",void 0),li=mt([q()],li);let pi=class extends ve{get __tag(){return"Pen"}setStyle(t){const e=this.pathElement=new li(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(){const{pathElement:t}=this;t.__layout.boxChanged||t.forceUpdate("path")}};mt([v(se)],pi.prototype,"__",void 0),mt([(e,i)=>{t(e,i,{get(){return this.__path}})}],pi.prototype,"path",void 0),pi=mt([V(St,["set","path","paint"]),q()],pi);export{be as Box,qt as BoxData,oi as Canvas,ne as CanvasData,Ct as ColorConvert,Et as Effect,De as Ellipse,Zt as EllipseData,Lt as Export,It as Filter,Ce as Frame,$t as FrameData,ve as Group,Jt as GroupData,ii as Image,ae as ImageData,xe as Leafer,Gt as LeaferData,ei as Line,Kt as LineData,si as MyImage,Wt as Paint,Tt as PaintGradient,Dt as PaintImage,li as Path,Ft as PathArrow,ie as PathData,pi as Pen,se as PenData,Ne as Polygon,te as PolygonData,Se as Rect,Qt as RectData,ce as RectRender,Je as Star,ee as StarData,zt as State,di as Text,bt as TextConvert,re as TextData,Mt as Transition,ye as UI,de as UIBounds,Xt as UIData,pe as UIRender,Pt as UnitConvert,Bt as createAttr,kt as effectType,Rt as resizeType,At as zoomLayerType};
|
|
1
|
+
import{defineKey as t,decorateLeafAttr as e,attr as i,createDescriptor as s,Plugin as o,UnitConvertHelper as r,PathConvert as a,DataHelper as n,Debug as _,LeafData as h,isString as d,isObject as l,isUndefined as p,isArray as u,canvasSizeAttrs as c,UICreator as g,FourNumberHelper as y,dataProcessor as v,dataType as f,surfaceType as w,opacityType as x,visibleType as S,dimType as m,sortType as k,maskType as R,eraserType as A,positionType as B,boundsType as C,scaleType as b,rotationType as P,scrollType as F,autoLayoutType as W,naturalBoundsType as D,affectRenderBoundsType as I,pathInputType as T,pathType as E,hitType as L,strokeType as z,cursorType as M,rewrite as O,Leaf as N,useModule as H,rewriteAble as V,MathHelper as Y,pen as U,PathCorner as X,PathDrawer as J,isNumber as j,registerUI as q,Branch as G,LeafList as $,Resource as K,getBoundsData as Q,Creator as Z,CanvasManager as tt,WaitHelper as et,LeaferEvent as it,Bounds as st,ResizeEvent as ot,AutoBounds as rt,Run as at,LayoutEvent as nt,RenderEvent as _t,WatchEvent as ht,ImageManager as dt,BoundsHelper as lt,PathCommandDataHelper as pt,Platform as ut,OneRadian as ct,PointHelper as gt,affectStrokeBoundsType as yt,getPointData as vt,LeaferImage as ft,ImageEvent as wt,Matrix as xt,PathCreator as St}from"@leafer/core";export*from"@leafer/core";function mt(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 kt(t){return e(t,t=>i({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0);const i=this.__layout;i.renderChanged||i.renderChange(),i.surfaceChange()}}))}function Rt(t){return e(t,t=>i({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}}))}function At(){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 Bt(e){return(i,o)=>{t(i,o,s(o,e))}}"function"==typeof SuppressedError&&SuppressedError;const Ct={},bt={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}},Pt=r,Ft={},Wt={},Dt={},It={},Tt={},Et={apply(){o.need("filter")}},Lt={},zt={setStyleName:()=>o.need("state"),set:()=>o.need("state")},Mt={list:{},register(t,e){Mt.list[t]=e},get:t=>Mt.list[t]},{parse:Ot,objectToCanvasData:Nt}=a,{stintSet:Ht}=n,{hasTransparent:Vt}=bt,Yt={originPaint:{}},Ut=_.get("UIData");class Xt 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,e=t.__hasStrokeSides||t.strokeWidth;return t.__hasMultiStrokeStyle?Math.max(t.__hasMultiStrokeStyle,e):e}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 null==this._width}get __autoHeight(){return null==this._height}get __autoSide(){return null==this._width||null==this._height}get __autoSize(){return null==this._width&&null==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,Ut.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,Ut.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),d(t)||!t?(Ht(this,"__isTransparentFill",Vt(t)),this.__isFills&&this.__removePaint("fill",!0),this._fill=t):l(t)&&this.__setPaint("fill",t)}setStroke(t){d(t)||!t?(Ht(this,"__isTransparentStroke",Vt(t)),this.__isStrokes&&this.__removePaint("stroke",!0),this._stroke=t):l(t)&&this.__setPaint("stroke",t)}setPath(t){const e=d(t);e||t&&l(t[0])?(this.__setInput("path",t),this._path=e?Ot(t,this.__useArrow):Nt(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){Jt(this,"shadow",t)}setInnerShadow(t){Jt(this,"innerShadow",t)}setFilter(t){Jt(this,"filter",t)}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&Wt.compute("fill",this.__leaf),e&&Wt.compute("stroke",this.__leaf),this.__needComputePaint=void 0}__getRealStrokeWidth(t){let{strokeWidth:e,strokeScaleFixed:i}=this;if(t&&(t.strokeWidth&&(e=t.strokeWidth),p(t.strokeScaleFixed)||(i=t.strokeScaleFixed)),i){const{scaleX:t}=this.__leaf.getRenderScaleData(!0,i,!1);if(1!==t)return e*t}return e}__checkComplex(){const t=this;Ht(t,"__complex",t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect)}__setPaint(t,e){this.__setInput(t,e);const i=this.__leaf.__layout;i.boxChanged||i.boxChange(),u(e)&&!e.length?this.__removePaint(t):"fill"===t?(this.__isFills=!0,this._fill||(this._fill=Yt)):(this.__isStrokes=!0,this._stroke||(this._stroke=Yt))}__removePaint(t,e){e&&this.__removeInput(t),Dt.recycleImage(t,this),"fill"===t?(Ht(this,"__isAlphaPixelFill",void 0),this._fill=this.__isFills=void 0):(Ht(this,"__isAlphaPixelStroke",void 0),Ht(this,"__hasMultiStrokeStyle",void 0),this._stroke=this.__isStrokes=void 0)}}function Jt(t,e,i){t.__setInput(e,i),u(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 jt extends Xt{}class qt extends jt{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 Gt extends jt{__getInputData(t,e){const i=super.__getInputData(t,e);return c.forEach(t=>delete i[t]),i}}class $t extends qt{}class Kt extends Xt{get __usePathBox(){return this.points||this.__pathInputed}}class Qt extends Xt{get __boxStroke(){return!this.__pathInputed}}class Zt extends Xt{get __boxStroke(){return!this.__pathInputed}}class te extends Xt{get __usePathBox(){return this.points||this.__pathInputed}}class ee extends Xt{get __boxStroke(){return!this.__pathInputed}}class ie extends Xt{get __pathInputed(){return 2}}class se extends jt{}const oe={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class re extends Xt{get __useNaturalRatio(){return!1}setFontWeight(t){d(t)?(this.__setInput("fontWeight",t),t=oe[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=g.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 ae extends Qt{get __urlType(){return"image"}setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.fill=t?{type:this.__urlType,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 ne extends Qt{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:_e,add:he}=y,de={__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||i.__useArrow)){const e=i.__isLinePath?0:("miter"===i.strokeJoin?10:1)*t,s="none"===i.strokeCap?0:o;t+=Math.max(e,s)}return i.__useArrow&&(t+=5*o),r&&(t=_e(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=Tt.getShadowRenderSpread(this,e)),s&&(t=_e(t,s)),r&&(t=he(t,Et.getSpread(r))),a&&(t=he(t,a)),n&&(t=he(t,n));let h=t;return i&&(h=_e(h,Tt.getInnerShadowSpread(this,i))),o&&(h=_e(h,o)),this.__layout.renderShapeSpread=h,_?_e(_.__updateRenderSpread(),t):t}},{stintSet:le}=n,pe={__updateChange(){const t=this.__;if(t.__useStroke){const e=t.__useStroke=!(!t.stroke||!t.strokeWidth);le(this.__world,"half",e&&"center"===t.strokeAlign&&t.strokeWidth%2),le(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;le(t,"__isFastShadow",e&&!o&&e.length<2&&!e[0].spread&&!Tt.isTransformShadow(e[0])&&i&&!t.__isTransparentFill&&!(u(i)&&i.length>1)&&(this.useFastShadow||!s||s&&"inside"===t.strokeAlign)),t.__useEffect=!(!e&&!o)}t.__checkSingle(),t.__checkComplex()},__drawFast(t,e){ue(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 _=Wt.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:h,innerShadow:d,filter:l}=s;h&&Tt.shadow(this,t,_),n&&(s.__isStrokes?Wt.strokes(r,this,t,e):Wt.stroke(r,this,t,e)),o&&(s.__isFills?Wt.fills(o,this,t,e):Wt.fill(o,this,t,e)),a&&this.__drawAfterFill(t,e),d&&Tt.innerShadow(this,t,_),r&&!n&&(s.__isStrokes?Wt.strokes(r,this,t,e):Wt.stroke(r,this,t,e)),l&&Et.apply(l,this,this.__nowWorld,t,i,_),_.worldCanvas&&_.worldCanvas.recycle(),_.canvas.recycle()}else{if(n&&(s.__isStrokes?Wt.strokes(r,this,t,e):Wt.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,bt.string(e.color))}o&&(s.__isFills?Wt.fills(o,this,t,e):Wt.fill(o,this,t,e)),_&&t.restore(),a&&this.__drawAfterFill(t,e),r&&!n&&(s.__isStrokes?Wt.strokes(r,this,t,e):Wt.stroke(r,this,t,e))}}else s.__pathForRender?ue(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?Wt.fills(s,this,t,e):Wt.fill("#000000",this,t,e)),i.__isCanvas&&this.__drawAfterFill(t,e),o&&!e.ignoreStroke&&(i.__isAlphaPixelStroke?Wt.strokes(o,this,t,e):Wt.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 ue(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r,__fillAfterStroke:a}=t.__;t.__drawRenderPath(e),a&&Wt.stroke(o,t,e,i),s&&Wt.fill(s,t,e,i),r&&t.__drawAfterFill(e,i),o&&!a&&Wt.stroke(o,t,e,i)}const ce={__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 ge;let ye=ge=class extends N{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set strokeWidthFixed(t){this.strokeScaleFixed=t}get strokeWidthFixed(){return this.strokeScaleFixed}set scale(t){Y.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 U.set(this.path=t||[]),t||this.__drawPathByBox(U),U}reset(t){}set(t,e){t&&Object.assign(this,t)}get(t){return d(t)?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}clearProxyData(){}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||(U.set(i=[]),this.__drawPathByBox(U,!e)),t?a.toCanvasData(i,!0):i}getPathString(t,e,i){return a.stringify(this.getPath(t,e),i)}asPath(t,e){this.path=this.getPath(t,e)}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||Lt.running?t.__computePaint():t.__needComputePaint=!0}}__updateRenderPath(t){const e=this.__;e.path?(e.__pathForRender=e.cornerRadius||e.path.radius?X.smooth(e.path,e.cornerRadius,e.cornerSmoothing):e.path,e.__useArrow&&Ft.addArrows(this,t)):e.__pathForRender&&(e.__pathForRender=void 0)}__drawRenderPath(t){const e=this.__;t.beginPath(),e.__useArrow&&Ft.updateArrow(this),this.__drawPathByData(t,e.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path,!0)}__drawPathByData(t,e,i){e?J.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){Wt.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),ge.one(e)}static one(t,e,i,s,o){return g.get(t.tag||this.prototype.__tag,t,e,i,s,o)}static registerUI(){q()(this)}static registerData(t){v(t)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.__.__willDestroy=!0,this.fill=this.stroke=null,this.__animate&&this.killAnimate(),super.destroy()}};mt([v(Xt)],ye.prototype,"__",void 0),mt([At()],ye.prototype,"zoomLayer",void 0),mt([f("")],ye.prototype,"id",void 0),mt([f("")],ye.prototype,"name",void 0),mt([f("")],ye.prototype,"className",void 0),mt([w("pass-through")],ye.prototype,"blendMode",void 0),mt([x(1)],ye.prototype,"opacity",void 0),mt([S(!0)],ye.prototype,"visible",void 0),mt([w(!1)],ye.prototype,"locked",void 0),mt([m(!1)],ye.prototype,"dim",void 0),mt([m(!1)],ye.prototype,"dimskip",void 0),mt([k(0)],ye.prototype,"zIndex",void 0),mt([R(!1)],ye.prototype,"mask",void 0),mt([A(!1)],ye.prototype,"eraser",void 0),mt([B(0,!0)],ye.prototype,"x",void 0),mt([B(0,!0)],ye.prototype,"y",void 0),mt([C(100,!0)],ye.prototype,"width",void 0),mt([C(100,!0)],ye.prototype,"height",void 0),mt([b(1,!0)],ye.prototype,"scaleX",void 0),mt([b(1,!0)],ye.prototype,"scaleY",void 0),mt([P(0,!0)],ye.prototype,"rotation",void 0),mt([P(0,!0)],ye.prototype,"skewX",void 0),mt([P(0,!0)],ye.prototype,"skewY",void 0),mt([B(0,!0)],ye.prototype,"offsetX",void 0),mt([B(0,!0)],ye.prototype,"offsetY",void 0),mt([F(0,!0)],ye.prototype,"scrollX",void 0),mt([F(0,!0)],ye.prototype,"scrollY",void 0),mt([W()],ye.prototype,"origin",void 0),mt([W()],ye.prototype,"around",void 0),mt([f(!1)],ye.prototype,"lazy",void 0),mt([D(1)],ye.prototype,"pixelRatio",void 0),mt([I(0)],ye.prototype,"renderSpread",void 0),mt([T()],ye.prototype,"path",void 0),mt([E()],ye.prototype,"windingRule",void 0),mt([E(!0)],ye.prototype,"closed",void 0),mt([C(0)],ye.prototype,"padding",void 0),mt([C(!1)],ye.prototype,"lockRatio",void 0),mt([C()],ye.prototype,"widthRange",void 0),mt([C()],ye.prototype,"heightRange",void 0),mt([f(!1)],ye.prototype,"draggable",void 0),mt([f()],ye.prototype,"dragBounds",void 0),mt([f("auto")],ye.prototype,"dragBoundsType",void 0),mt([f(!1)],ye.prototype,"editable",void 0),mt([L(!0)],ye.prototype,"hittable",void 0),mt([L("path")],ye.prototype,"hitFill",void 0),mt([z("path")],ye.prototype,"hitStroke",void 0),mt([L(!1)],ye.prototype,"hitBox",void 0),mt([L(!0)],ye.prototype,"hitChildren",void 0),mt([L(!0)],ye.prototype,"hitSelf",void 0),mt([L()],ye.prototype,"hitRadius",void 0),mt([M("")],ye.prototype,"cursor",void 0),mt([w()],ye.prototype,"fill",void 0),mt([z(void 0,!0)],ye.prototype,"stroke",void 0),mt([z("inside")],ye.prototype,"strokeAlign",void 0),mt([z(1,!0)],ye.prototype,"strokeWidth",void 0),mt([z(!1)],ye.prototype,"strokeScaleFixed",void 0),mt([z("none")],ye.prototype,"strokeCap",void 0),mt([z("miter")],ye.prototype,"strokeJoin",void 0),mt([z()],ye.prototype,"dashPattern",void 0),mt([z(0)],ye.prototype,"dashOffset",void 0),mt([z(10)],ye.prototype,"miterLimit",void 0),mt([E(0)],ye.prototype,"cornerRadius",void 0),mt([E()],ye.prototype,"cornerSmoothing",void 0),mt([kt()],ye.prototype,"shadow",void 0),mt([kt()],ye.prototype,"innerShadow",void 0),mt([kt()],ye.prototype,"blur",void 0),mt([kt()],ye.prototype,"backgroundBlur",void 0),mt([kt()],ye.prototype,"grayscale",void 0),mt([kt()],ye.prototype,"filter",void 0),mt([w()],ye.prototype,"placeholderColor",void 0),mt([f(100)],ye.prototype,"placeholderDelay",void 0),mt([f({})],ye.prototype,"data",void 0),mt([O(N.prototype.reset)],ye.prototype,"reset",null),ye=ge=mt([H(de),H(pe),V()],ye);let ve=class extends ye{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);if(!this.childlessJSON){const i=e.children=[];this.children.forEach(e=>e.skipJSON||i.push(e.toJSON(t)))}return 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 fe;mt([v(jt)],ve.prototype,"__",void 0),mt([C(0)],ve.prototype,"width",void 0),mt([C(0)],ve.prototype,"height",void 0),ve=mt([H(G),q()],ve);const we=_.get("Leafer");let xe=fe=class extends ve{get __tag(){return"Leafer"}get isApp(){return!1}get app(){return this.parent||this}get isLeafer(){return!0}get imageReady(){return this.viewReady&&K.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)||Q()}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),fe.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=Z.canvas(s);this.__controllers.push(this.renderer=Z.renderer(this,o,s),this.watcher=Z.watcher(this,s),this.layouter=Z.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(),e||(this.selector=Z.selector(this),this.interaction=Z.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=Z.hitCanvasManager()),this.canvasManager=new tt,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))),et.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(it.RESTART):this.emitLeafer(it.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(it.STOP))}unlockLayout(t=!0){this.layouter.start(),t&&this.updateLayout()}lockLayout(t=!0){t&&this.updateLayout(),this.layouter.stop()}resize(t){const e=n.copyAttrs({},t,c);Object.keys(e).forEach(t=>this[t]=e[t])}forceRender(t,e){const{renderer:i}=this;i&&(i.addBlock(t?new st(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,c);e.resize(t),this.updateLazyBounds(),this.__onResize(new ot(t,i))}__onResize(t){this.emitEvent(t),n.copyAttrs(this.__,t,c),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 rt(t)),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(c.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(it.UPDATE_MODE,{mode:e})),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&c.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const{config:i,canvas:s}=this,o=n.copyAttrs({},s,c);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(it.BEFORE_READY),this.emitLeafer(it.READY),this.emitLeafer(it.AFTER_READY),et.run(this.__readyWait)}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(it.VIEW_READY),et.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){et.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(it.VIEW_COMPLETED),et.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 it(t,this))}__listenEvents(){const t=at.start("FirstCreate "+this.innerName);this.once([[it.START,()=>at.end(t)],[nt.START,this.updateLazyBounds,this],[_t.START,this.__onCreated,this],[_t.END,this.__onViewReady,this]]),this.__eventIds.push(this.on_([[ht.DATA,this.__onWatchData,this],[nt.END,this.__onLayoutEnd,this],[_t.NEXT,this.__onNextRender,this]]))}__removeListenEvents(){this.off_(this.__eventIds)}destroy(t){const e=()=>{if(!this.destroyed){fe.list.remove(this);try{this.stop(),this.emitLeafer(it.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(()=>{dt.clearRecycled()},100)}catch(t){we.error(t)}}};t?e():setTimeout(e)}};xe.list=new $,mt([v(Gt)],xe.prototype,"__",void 0),mt([C()],xe.prototype,"pixelRatio",void 0),mt([f("normal")],xe.prototype,"mode",void 0),xe=fe=mt([q()],xe);let Se=class extends ye{get __tag(){return"Rect"}};mt([v(Qt)],Se.prototype,"__",void 0),Se=mt([H(ce),V(),q()],Se);const{add:me,includes:ke,scroll:Re}=lt,Ae=Se.prototype,Be=ve.prototype;let Ce=class extends ve{get __tag(){return"Box"}get isBranchLeaf(){return!0}get __useSelfBox(){return this.pathInputed}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.__useSelfBox){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=Q());super.__updateRenderBounds(n),(e=a&&a.includes("scroll"))&&(me(n,r),Re(n,i)),this.__updateRectRenderBounds(),t=!ke(r,n),t&&"show"===a&&me(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))}};mt([v(qt)],Ce.prototype,"__",void 0),mt([C(100)],Ce.prototype,"width",void 0),mt([C(100)],Ce.prototype,"height",void 0),mt([f(!1)],Ce.prototype,"resizeChildren",void 0),mt([I("show")],Ce.prototype,"overflow",void 0),mt([O(Ae.__updateStrokeSpread)],Ce.prototype,"__updateStrokeSpread",null),mt([O(Ae.__updateRenderSpread)],Ce.prototype,"__updateRectRenderSpread",null),mt([O(Ae.__updateBoxBounds)],Ce.prototype,"__updateRectBoxBounds",null),mt([O(Ae.__updateStrokeBounds)],Ce.prototype,"__updateStrokeBounds",null),mt([O(Ae.__updateRenderBounds)],Ce.prototype,"__updateRectRenderBounds",null),mt([O(Ae.__updateChange)],Ce.prototype,"__updateRectChange",null),mt([O(Ae.__render)],Ce.prototype,"__renderRect",null),mt([O(Be.__render)],Ce.prototype,"__renderGroup",null),Ce=mt([V(),q()],Ce);let be=class extends Ce{get __tag(){return"Frame"}get isFrame(){return!0}};mt([v($t)],be.prototype,"__",void 0),mt([w("#FFFFFF")],be.prototype,"fill",void 0),mt([I("hide")],be.prototype,"overflow",void 0),be=mt([q()],be);const{moveTo:Pe,closePath:Fe,ellipse:We}=pt;let De=class extends ye{get __tag(){return"Ellipse"}__updatePath(){const t=this.__,{width:e,height:i,innerRadius:s,startAngle:o,endAngle:r}=t,a=e/2,n=i/2,_=t.path=[];let h;s?o||r?(s<1?We(_,a,n,a*s,n*s,0,o,r,!1):h=!0,We(_,a,n,a,n,0,r,o,!0)):(s<1&&(We(_,a,n,a*s,n*s),Pe(_,e,n)),We(_,a,n,a,n,0,360,0,!0)):o||r?(Pe(_,a,n),We(_,a,n,a,n,0,o,r,!1)):We(_,a,n,a,n),h||Fe(_),(ut.ellipseToCurve||t.__useArrow||t.cornerRadius)&&(t.path=this.getPath(!0))}};mt([v(Zt)],De.prototype,"__",void 0),mt([E(0)],De.prototype,"innerRadius",void 0),mt([E(0)],De.prototype,"startAngle",void 0),mt([E(0)],De.prototype,"endAngle",void 0),De=mt([q()],De);const{sin:Ie,cos:Te,PI:Ee}=Math,{moveTo:Le,lineTo:ze,closePath:Me,drawPoints:Oe}=pt;let Ne=class extends ye{get __tag(){return"Polygon"}__updatePath(){const t=this.__,e=t.path=[];if(t.points)Oe(e,t.points,t.curve,t.closed);else{const{width:i,height:s,sides:o,startAngle:r}=t,a=i/2,n=s/2;let _,h=0;r?(h=r*ct,Le(e,a+a*Ie(h),n-n*Te(h))):Le(e,a,0);for(let t=1;t<o;t++)_=2*t*Ee/o+h,ze(e,a+a*Ie(_),n-n*Te(_));Me(e)}}};mt([v(te)],Ne.prototype,"__",void 0),mt([E(3)],Ne.prototype,"sides",void 0),mt([E(0)],Ne.prototype,"startAngle",void 0),mt([E()],Ne.prototype,"points",void 0),mt([E(0)],Ne.prototype,"curve",void 0),Ne=mt([V(),q()],Ne);const{sin:He,cos:Ve,PI:Ye}=Math,{moveTo:Ue,lineTo:Xe,closePath:Je}=pt;let je=class extends ye{get __tag(){return"Star"}__updatePath(){const{width:t,height:e,corners:i,innerRadius:s,startAngle:o}=this.__,r=t/2,a=e/2,n=this.__.path=[];let _,h=0;o?(h=o*ct,Ue(n,r+r*He(h),a-a*Ve(h))):Ue(n,r,0);for(let t=1;t<2*i;t++)_=t*Ye/i+h,Xe(n,r+(t%2==0?r:r*s)*He(_),a-(t%2==0?a:a*s)*Ve(_));Je(n)}};mt([v(ee)],je.prototype,"__",void 0),mt([E(5)],je.prototype,"corners",void 0),mt([E(.382)],je.prototype,"innerRadius",void 0),mt([E(0)],je.prototype,"startAngle",void 0),je=mt([q()],je);const{moveTo:qe,lineTo:Ge,drawPoints:$e}=pt,{rotate:Ke,getAngle:Qe,getDistance:Ze,defaultPoint:ti}=gt;let ei=class extends ye{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=vt();return t&&(i.x=t),e&&Ke(i,e),i}set toPoint(t){this.width=Ze(ti,t),this.rotation=Qe(ti,t),this.height&&(this.height=0)}__updatePath(){const t=this.__,e=t.path=[];t.points?$e(e,t.points,t.curve,t.closed):(qe(e,0,0),Ge(e,this.width,0))}};mt([v(Kt)],ei.prototype,"__",void 0),mt([yt("center")],ei.prototype,"strokeAlign",void 0),mt([C(0)],ei.prototype,"height",void 0),mt([E()],ei.prototype,"points",void 0),mt([E(0)],ei.prototype,"curve",void 0),mt([E(!1)],ei.prototype,"closed",void 0),ei=mt([q()],ei);let ii=class extends Se{get __tag(){return"Image"}get ready(){const{image:t}=this;return t&&t.ready}get image(){const{fill:t}=this.__;return u(t)&&t[0].image}};mt([v(ae)],ii.prototype,"__",void 0),mt([C("")],ii.prototype,"url",void 0),ii=mt([q()],ii);const si=ii;let oi=class extends Se{get __tag(){return"Canvas"}get context(){return this.canvas.context}get ready(){return!this.url}constructor(t){super(t),this.canvas=Z.canvas(this.__),t&&t.url&&this.drawImage(t.url)}drawImage(t){new ft({url:t}).load(t=>{this.context.drawImage(t.view,0,0),this.url=void 0,this.paint(),this.emitEvent(new wt(wt.LOADED,{image:t}))})}draw(t,e,i,s){const o=new xt(t.worldTransform).invert(),r=new xt;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()}};mt([v(ne)],oi.prototype,"__",void 0),mt([Rt(100)],oi.prototype,"width",void 0),mt([Rt(100)],oi.prototype,"height",void 0),mt([Rt(1)],oi.prototype,"pixelRatio",void 0),mt([Rt(!0)],oi.prototype,"smooth",void 0),mt([f(!1)],oi.prototype,"safeResize",void 0),mt([Rt()],oi.prototype,"contextSettings",void 0),oi=mt([q()],oi);const{copyAndSpread:ri,includes:ai,setList:ni}=lt,{stintSet:_i}=n;let hi=class extends ye{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=Pt.number(e,o),t.__letterSpacing=Pt.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"}`,_i(t,"__padding",h&&Y.fourNumber(h)),_i(t,"__clipText","show"!==_&&!t.__autoSize),_i(t,"__isCharMode",d||l||t.__letterSpacing||"none"!==n),t.__textDrawData=Ct.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;console.log(_);const h=e.boxBounds;if(e.contentBounds=_,t.__lineHeight<i&&(e.renderChanged=!0),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",!ai(h,_)),this.isOverflow?(ni(t.__textBoxBounds={},[h,_]),e.renderChanged=!0):t.__textBoxBounds=h}__updateRenderSpread(){let t=super.__updateRenderSpread();t||(t=this.isOverflow?1:0);const{__lineHeight:e,fontSize:i}=this.__;return e<i&&(t=y.max(t,(i-e)/2)),t}__updateRenderBounds(){const{renderBounds:t,renderSpread:e}=this.__layout;ri(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()}};mt([v(re)],hi.prototype,"__",void 0),mt([C(0)],hi.prototype,"width",void 0),mt([C(0)],hi.prototype,"height",void 0),mt([w()],hi.prototype,"boxStyle",void 0),mt([f(!1)],hi.prototype,"resizeFontSize",void 0),mt([w("#000000")],hi.prototype,"fill",void 0),mt([yt("outside")],hi.prototype,"strokeAlign",void 0),mt([L("all")],hi.prototype,"hitFill",void 0),mt([C("")],hi.prototype,"text",void 0),mt([C("")],hi.prototype,"placeholder",void 0),mt([C("caption")],hi.prototype,"fontFamily",void 0),mt([C(12)],hi.prototype,"fontSize",void 0),mt([C("normal")],hi.prototype,"fontWeight",void 0),mt([C(!1)],hi.prototype,"italic",void 0),mt([C("none")],hi.prototype,"textCase",void 0),mt([C("none")],hi.prototype,"textDecoration",void 0),mt([C(0)],hi.prototype,"letterSpacing",void 0),mt([C({type:"percent",value:1.5})],hi.prototype,"lineHeight",void 0),mt([C(0)],hi.prototype,"paraIndent",void 0),mt([C(0)],hi.prototype,"paraSpacing",void 0),mt([C("x")],hi.prototype,"writingMode",void 0),mt([C("left")],hi.prototype,"textAlign",void 0),mt([C("top")],hi.prototype,"verticalAlign",void 0),mt([C(!0)],hi.prototype,"autoSizeAlign",void 0),mt([C("normal")],hi.prototype,"textWrap",void 0),mt([C("show")],hi.prototype,"textOverflow",void 0),mt([w(!1)],hi.prototype,"textEditing",void 0),hi=mt([q()],hi);let di=class extends ye{get __tag(){return"Path"}};mt([v(ie)],di.prototype,"__",void 0),mt([yt("center")],di.prototype,"strokeAlign",void 0),di=mt([q()],di);let li=class extends ve{get __tag(){return"Pen"}setStyle(t){const e=this.pathElement=new di(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(){const{pathElement:t}=this;t.__layout.boxChanged||t.forceUpdate("path")}};mt([v(se)],li.prototype,"__",void 0),mt([(e,i)=>{t(e,i,{get(){return this.__path}})}],li.prototype,"path",void 0),li=mt([H(St,["set","path","paint"]),q()],li);export{Ce as Box,qt as BoxData,oi as Canvas,ne as CanvasData,bt as ColorConvert,Tt as Effect,De as Ellipse,Zt as EllipseData,Lt as Export,Et as Filter,be as Frame,$t as FrameData,ve as Group,jt as GroupData,ii as Image,ae as ImageData,xe as Leafer,Gt as LeaferData,ei as Line,Kt as LineData,si as MyImage,Wt as Paint,It as PaintGradient,Dt as PaintImage,di as Path,Ft as PathArrow,ie as PathData,li as Pen,se as PenData,Ne as Polygon,te as PolygonData,Se as Rect,Qt as RectData,ce as RectRender,je as Star,ee as StarData,zt as State,hi as Text,Ct as TextConvert,re as TextData,Mt as Transition,ye as UI,de as UIBounds,Xt as UIData,pe as UIRender,Pt as UnitConvert,Bt as createAttr,kt as effectType,Rt as resizeType,At as zoomLayerType};
|
|
2
2
|
//# sourceMappingURL=draw.esm.min.js.map
|