@leafer-ui/draw 1.6.4 → 1.6.6

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.
@@ -0,0 +1,2 @@
1
+ "use strict";var t=require("@leafer/core");function e(t,e,s,r){var o,i=arguments.length,a=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,s):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,s,r);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(a=(i<3?o(a):i>3?o(e,s,a):o(e,s))||a);return i>3&&a&&Object.defineProperty(e,s,a),a}function s(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),t&&(this.__.__useEffect=!0),this.__layout.renderChanged||this.__layout.renderChange()}})))}function r(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}})))}function o(){return(e,s)=>{const r="_"+s;t.defineKey(e,s,{set(t){this.isLeafer&&(this[r]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[r]||this:this.leafer&&this.leafer.zoomLayer}})}}"function"==typeof SuppressedError&&SuppressedError;const i={},a={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}},n={number:(t,e)=>"object"==typeof t?"percent"===t.type?t.value*e:t.value:t},p={},h={},_={},d={},l={apply(){t.Plugin.need("filter")}},u={},c={setStyleName:()=>t.Plugin.need("state"),set:()=>t.Plugin.need("state")},x={list:{},register(t,e){x.list[t]=e},get:t=>x.list[t]},{parse:y,objectToCanvasData:g}=t.PathConvert,{stintSet:v}=t.DataHelper,{hasTransparent:f}=a,w={},T=t.Debug.get("UIData");class m extends t.LeafData{get scale(){const{scaleX:t,scaleY:e}=this;return t!==e?{x:t,y:e}:t}get __strokeWidth(){const{strokeWidth:t,strokeWidthFixed:e}=this;if(e){const e=this.__leaf;let{scaleX:s}=e.__nowWorld||e.__world;return s<0&&(s=-s),s>1?t/s:t}return t}get __hasStroke(){return this.stroke&&this.strokeWidth}get __hasHalf(){const t=this;return t.stroke&&"center"===t.strokeAlign&&t.strokeWidth%2||void 0}get __hasMultiPaint(){const t=this;return!!(t.__isFills&&t.fill.length>1||t.__isStrokes&&t.stroke.length>1||t.__useEffect)||t.fill&&this.__hasStroke}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,T.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,T.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),"string"!=typeof t&&t?"object"==typeof t&&this.__setPaint("fill",t):(v(this,"__isTransparentFill",f(t)),this.__isFills&&this.__removePaint("fill",!0),this._fill=t)}setStroke(t){"string"!=typeof t&&t?"object"==typeof t&&this.__setPaint("stroke",t):(v(this,"__isTransparentStroke",f(t)),this.__isStrokes&&this.__removePaint("stroke",!0),this._stroke=t)}setPath(t){const e="string"==typeof t;e||t&&"object"==typeof t[0]?(this.__setInput("path",t),this._path=e?y(t):g(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){I(this,"shadow",t)}setInnerShadow(t){I(this,"innerShadow",t)}setFilter(t){I(this,"filter",t)}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&h.compute("fill",this.__leaf),e&&h.compute("stroke",this.__leaf),this.__needComputePaint=void 0}__setPaint(t,e){this.__setInput(t,e);const s=this.__leaf.__layout;s.boxChanged||s.boxChange(),e instanceof Array&&!e.length?this.__removePaint(t):"fill"===t?(this.__isFills=!0,this._fill||(this._fill=w)):(this.__isStrokes=!0,this._stroke||(this._stroke=w))}__removePaint(t,e){e&&this.__removeInput(t),_.recycleImage(t,this),"fill"===t?(v(this,"__isAlphaPixelFill",void 0),this._fill=this.__isFills=void 0):(v(this,"__isAlphaPixelStroke",void 0),this._stroke=this.__isStrokes=void 0)}}function I(t,e,s){t.__setInput(e,s),s instanceof Array?(s.some((t=>!1===t.visible))&&(s=s.filter((t=>!1!==t.visible))),s.length||(s=void 0)):s=s&&!1!==s.visible?[s]:void 0,t["_"+e]=s}class R extends m{}class S extends R{get __boxStroke(){return!this.__pathInputed}get __drawAfterFill(){const t=this;return"hide"===t.overflow&&(t.__clipAfterFill||t.innerShadow)&&t.__leaf.children.length}get __clipAfterFill(){return this.__leaf.isOverflow||super.__clipAfterFill}}class P extends R{__getInputData(e,s){const r=super.__getInputData(e,s);return t.canvasSizeAttrs.forEach((t=>delete r[t])),r}}class b extends S{}class k extends m{}class B extends m{get __boxStroke(){return!this.__pathInputed}}class C extends m{get __boxStroke(){return!this.__pathInputed}}class U extends m{}class A extends m{}class L extends m{get __pathInputed(){return 2}}class E extends R{}const D={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class F extends m{get __useNaturalRatio(){return!1}setFontWeight(t){"string"==typeof t?(this.__setInput("fontWeight",t),t=D[t]||400):this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t}setBoxStyle(e){let s=this.__leaf,r=s.__box;if(e){const{boxStyle:o}=this;if(r)for(let t in o)r[t]=void 0;else r=s.__box=t.UICreator.get("Rect",0);const i=s.__layout,a=r.__layout;o||(r.parent=s,r.__world=s.__world,a.boxBounds=i.boxBounds),r.set(e),a.strokeChanged&&i.strokeChange(),a.renderChanged&&i.renderChange(),r.__updateChange()}else r&&(s.__box=r.parent=null,r.destroy());this._boxStyle=e}}class W extends B{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 delete t.fill,t}__getInputData(t,e){const s=super.__getInputData(t,e);return delete s.fill,s}}class z extends B{get __isCanvas(){return!0}get __drawAfterFill(){return!0}__getInputData(t,e){const s=super.__getInputData(t,e);return s.url=this.__leaf.canvas.toDataURL("image/png"),s}}const M={__updateStrokeSpread(){let t=0,e=0;const s=this.__,{strokeAlign:r,strokeWidth:o}=s,i=this.__box;if((s.stroke||"all"===s.hitStroke)&&o&&"inside"!==r&&(e=t="center"===r?o/2:o,!s.__boxStroke)){const e=s.__isLinePath?0:10*t,r="none"===s.strokeCap?0:o;t+=Math.max(e,r)}return s.__useArrow&&(t+=5*o),i&&(t=Math.max(i.__layout.strokeSpread=i.__updateStrokeSpread(),t),e=i.__layout.strokeBoxSpread),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:s,blur:r,backgroundBlur:o,filter:i}=this.__;e&&e.forEach((e=>t=Math.max(t,Math.max(Math.abs(e.y),Math.abs(e.x))+(e.spread>0?e.spread:0)+1.5*e.blur))),r&&(t=Math.max(t,r)),i&&(t+=l.getSpread(i));let a=t=Math.ceil(t);return s&&s.forEach((t=>a=Math.max(a,Math.max(Math.abs(t.y),Math.abs(t.x))+(t.spread<0?-t.spread:0)+1.5*t.blur))),o&&(a=Math.max(a,o)),this.__layout.renderShapeSpread=a,t+=this.__layout.strokeSpread||0,this.__box?Math.max(this.__box.__updateRenderSpread(),t):t}},{stintSet:H}=t.DataHelper,O={__updateChange(){const t=this.__;if(t.__useEffect){const{shadow:e,fill:s,stroke:r}=t,o=t.innerShadow||t.blur||t.backgroundBlur||t.filter;H(t,"__isFastShadow",e&&!o&&e.length<2&&!e[0].spread&&!(e[0].box&&t.__isTransparentFill)&&s&&!(s instanceof Array&&s.length>1)&&(this.useFastShadow||!r||r&&"inside"===t.strokeAlign)),t.__useEffect=!(!e&&!o)}H(this.__world,"half",t.__hasHalf),H(t,"__fillAfterStroke",t.stroke&&"outside"===t.strokeAlign&&t.fill&&!t.__isTransparentFill),t.__checkSingle(),H(t,"__complex",t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect)},__drawFast(t,e){N(this,t,e)},__draw(t,e,s){const r=this.__;if(r.__complex){r.__needComputePaint&&r.__computePaint();const{fill:o,stroke:i,__drawAfterFill:n,__fillAfterStroke:p,__isFastShadow:_}=r;if(this.__drawRenderPath(t),r.__useEffect&&!_){const a=h.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:_,innerShadow:u,filter:c}=r;_&&d.shadow(this,t,a),p&&(r.__isStrokes?h.strokes(i,this,t):h.stroke(i,this,t)),o&&(r.__isFills?h.fills(o,this,t):h.fill(o,this,t)),n&&this.__drawAfterFill(t,e),u&&d.innerShadow(this,t,a),i&&!p&&(r.__isStrokes?h.strokes(i,this,t):h.stroke(i,this,t)),c&&l.apply(c,this,this.__nowWorld,t,s,a),a.worldCanvas&&a.worldCanvas.recycle(),a.canvas.recycle()}else{if(p&&(r.__isStrokes?h.strokes(i,this,t):h.stroke(i,this,t)),_){const e=r.shadow[0],{scaleX:s,scaleY:o}=this.__nowWorld;t.save(),t.setWorldShadow(e.x*s,e.y*o,e.blur*s,a.string(e.color))}o&&(r.__isFills?h.fills(o,this,t):h.fill(o,this,t)),_&&t.restore(),n&&this.__drawAfterFill(t,e),i&&!p&&(r.__isStrokes?h.strokes(i,this,t):h.stroke(i,this,t))}}else r.__pathInputed?N(this,t,e):this.__drawFast(t,e)},__renderShape(t,e,s,r){if(this.__worldOpacity){t.setWorld(this.__nowWorld=this.__getNowWorld(e));const{fill:o,stroke:i}=this.__;this.__drawRenderPath(t),o&&!s&&(this.__.__isAlphaPixelFill?h.fills(o,this,t):h.fill("#000000",this,t)),this.__.__isCanvas&&this.__drawAfterFill(t,e),i&&!r&&(this.__.__isAlphaPixelStroke?h.strokes(i,this,t):h.stroke("#000000",this,t))}},__drawAfterFill(t,e){this.__.__clipAfterFill?(t.save(),t.clipUI(this),this.__drawContent(t,e),t.restore()):this.__drawContent(t,e)}};function N(t,e,s){const{fill:r,stroke:o,__drawAfterFill:i,__fillAfterStroke:a}=t.__;t.__drawRenderPath(e),a&&h.stroke(o,t,e),r&&h.fill(r,t,e),i&&t.__drawAfterFill(e,s),o&&!a&&h.stroke(o,t,e)}const G={__drawFast(t,e){let{x:s,y:r,width:o,height:i}=this.__layout.boxBounds;const{fill:a,stroke:n,__drawAfterFill:p}=this.__;if(a&&(t.fillStyle=a,t.fillRect(s,r,o,i)),p&&this.__drawAfterFill(t,e),n){const{strokeAlign:a,__strokeWidth:p}=this.__;if(!p)return;t.setStroke(n,p,this.__);const h=p/2;switch(a){case"center":t.strokeRect(0,0,o,i);break;case"inside":o-=p,i-=p,o<0||i<0?(t.save(),this.__clip(t,e),t.strokeRect(s+h,r+h,o,i),t.restore()):t.strokeRect(s+h,r+h,o,i);break;case"outside":t.strokeRect(s-h,r-h,o+p,i+p)}}}};var j,V;exports.UI=j=class extends t.Leaf{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(e){t.MathHelper.assignScale(this,e)}get scale(){return this.__.scale}get pen(){const{path:e}=this.__;return t.pen.set(this.path=e||[]),e||this.__drawPathByBox(t.pen),t.pen}constructor(t){super(t)}reset(t){}set(t,e){t&&(e?"temp"===e?(this.lockNormalStyle=!0,Object.assign(this,t),this.lockNormalStyle=!1):this.animate(t,e):Object.assign(this,t))}get(t){return"string"==typeof t?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}find(e,s){return t.Plugin.need("find")}findTag(t){return this.find({tag:t})}findOne(e,s){return t.Plugin.need("find")}findId(t){return this.findOne({id:t})}getPath(e,s){this.__layout.update();let r=s?this.__.__pathForRender:this.__.path;return r||(t.pen.set(r=[]),this.__drawPathByBox(t.pen)),e?t.PathConvert.toCanvasData(r,!0):r}getPathString(e,s,r){return t.PathConvert.stringify(this.getPath(e,s),r)}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||u.running?t.__computePaint():t.__needComputePaint=!0}}__updateRenderPath(){if(this.__.path){const e=this.__;e.__pathForRender=e.cornerRadius?t.PathCorner.smooth(e.path,e.cornerRadius,e.cornerSmoothing):e.path,e.__useArrow&&p.addArrows(this,!e.cornerRadius)}}__drawRenderPath(t){t.beginPath(),this.__drawPathByData(t,this.__.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path)}__drawPathByData(e,s){s?t.PathDrawer.drawPathByData(e,s):this.__drawPathByBox(e)}__drawPathByBox(t){const{x:e,y:s,width:r,height:o}=this.__layout.boxBounds;if(this.__.cornerRadius){const{cornerRadius:i}=this.__;t.roundRect(e,s,r,o,"number"==typeof i?[i]:i)}else t.rect(e,s,r,o)}drawImagePlaceholder(t,e){h.fill(this.__.placeholderColor,this,t)}animate(e,s,r,o){return t.Plugin.need("animate")}killAnimate(t,e){}export(e,s){return t.Plugin.need("export")}syncExport(e,s){return t.Plugin.need("export")}clone(e){const s=t.DataHelper.clone(this.toJSON());return e&&Object.assign(s,e),j.one(s)}static one(e,s,r,o,i){return t.UICreator.get(e.tag||this.prototype.__tag,e,s,r,o,i)}static registerUI(){t.registerUI()(this)}static registerData(e){t.dataProcessor(e)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.fill=this.stroke=null,this.__animate&&this.killAnimate(),super.destroy()}},e([t.dataProcessor(m)],exports.UI.prototype,"__",void 0),e([o()],exports.UI.prototype,"zoomLayer",void 0),e([t.dataType("")],exports.UI.prototype,"id",void 0),e([t.dataType("")],exports.UI.prototype,"name",void 0),e([t.dataType("")],exports.UI.prototype,"className",void 0),e([t.surfaceType("pass-through")],exports.UI.prototype,"blendMode",void 0),e([t.opacityType(1)],exports.UI.prototype,"opacity",void 0),e([t.visibleType(!0)],exports.UI.prototype,"visible",void 0),e([t.surfaceType(!1)],exports.UI.prototype,"locked",void 0),e([t.surfaceType(!1)],exports.UI.prototype,"dim",void 0),e([t.surfaceType(!1)],exports.UI.prototype,"dimskip",void 0),e([t.sortType(0)],exports.UI.prototype,"zIndex",void 0),e([t.maskType(!1)],exports.UI.prototype,"mask",void 0),e([t.eraserType(!1)],exports.UI.prototype,"eraser",void 0),e([t.positionType(0,!0)],exports.UI.prototype,"x",void 0),e([t.positionType(0,!0)],exports.UI.prototype,"y",void 0),e([t.boundsType(100,!0)],exports.UI.prototype,"width",void 0),e([t.boundsType(100,!0)],exports.UI.prototype,"height",void 0),e([t.scaleType(1,!0)],exports.UI.prototype,"scaleX",void 0),e([t.scaleType(1,!0)],exports.UI.prototype,"scaleY",void 0),e([t.rotationType(0,!0)],exports.UI.prototype,"rotation",void 0),e([t.rotationType(0,!0)],exports.UI.prototype,"skewX",void 0),e([t.rotationType(0,!0)],exports.UI.prototype,"skewY",void 0),e([t.positionType(0,!0)],exports.UI.prototype,"offsetX",void 0),e([t.positionType(0,!0)],exports.UI.prototype,"offsetY",void 0),e([t.positionType(0,!0)],exports.UI.prototype,"scrollX",void 0),e([t.positionType(0,!0)],exports.UI.prototype,"scrollY",void 0),e([t.autoLayoutType()],exports.UI.prototype,"origin",void 0),e([t.autoLayoutType()],exports.UI.prototype,"around",void 0),e([t.dataType(!1)],exports.UI.prototype,"lazy",void 0),e([t.naturalBoundsType(1)],exports.UI.prototype,"pixelRatio",void 0),e([t.pathInputType()],exports.UI.prototype,"path",void 0),e([t.pathType()],exports.UI.prototype,"windingRule",void 0),e([t.pathType(!0)],exports.UI.prototype,"closed",void 0),e([t.boundsType(0)],exports.UI.prototype,"padding",void 0),e([t.boundsType(!1)],exports.UI.prototype,"lockRatio",void 0),e([t.boundsType()],exports.UI.prototype,"widthRange",void 0),e([t.boundsType()],exports.UI.prototype,"heightRange",void 0),e([t.dataType(!1)],exports.UI.prototype,"draggable",void 0),e([t.dataType()],exports.UI.prototype,"dragBounds",void 0),e([t.dataType(!1)],exports.UI.prototype,"editable",void 0),e([t.hitType(!0)],exports.UI.prototype,"hittable",void 0),e([t.hitType("path")],exports.UI.prototype,"hitFill",void 0),e([t.strokeType("path")],exports.UI.prototype,"hitStroke",void 0),e([t.hitType(!1)],exports.UI.prototype,"hitBox",void 0),e([t.hitType(!0)],exports.UI.prototype,"hitChildren",void 0),e([t.hitType(!0)],exports.UI.prototype,"hitSelf",void 0),e([t.hitType()],exports.UI.prototype,"hitRadius",void 0),e([t.cursorType("")],exports.UI.prototype,"cursor",void 0),e([t.surfaceType()],exports.UI.prototype,"fill",void 0),e([t.strokeType()],exports.UI.prototype,"stroke",void 0),e([t.strokeType("inside")],exports.UI.prototype,"strokeAlign",void 0),e([t.strokeType(1)],exports.UI.prototype,"strokeWidth",void 0),e([t.strokeType(!1)],exports.UI.prototype,"strokeWidthFixed",void 0),e([t.strokeType("none")],exports.UI.prototype,"strokeCap",void 0),e([t.strokeType("miter")],exports.UI.prototype,"strokeJoin",void 0),e([t.strokeType()],exports.UI.prototype,"dashPattern",void 0),e([t.strokeType(0)],exports.UI.prototype,"dashOffset",void 0),e([t.strokeType(10)],exports.UI.prototype,"miterLimit",void 0),e([t.pathType(0)],exports.UI.prototype,"cornerRadius",void 0),e([t.pathType()],exports.UI.prototype,"cornerSmoothing",void 0),e([s()],exports.UI.prototype,"shadow",void 0),e([s()],exports.UI.prototype,"innerShadow",void 0),e([s()],exports.UI.prototype,"blur",void 0),e([s()],exports.UI.prototype,"backgroundBlur",void 0),e([s()],exports.UI.prototype,"grayscale",void 0),e([s()],exports.UI.prototype,"filter",void 0),e([t.surfaceType()],exports.UI.prototype,"placeholderColor",void 0),e([t.dataType(100)],exports.UI.prototype,"placeholderDelay",void 0),e([t.dataType({})],exports.UI.prototype,"data",void 0),e([t.rewrite(t.Leaf.prototype.reset)],exports.UI.prototype,"reset",null),exports.UI=j=e([t.useModule(M),t.useModule(O),t.rewriteAble()],exports.UI),exports.Group=class extends exports.UI{get __tag(){return"Group"}get isBranch(){return!0}constructor(t){super(t)}reset(t){this.__setBranch(),super.reset(t)}__setBranch(){this.children||(this.children=[])}set(t,e){if(t)if(t.children){const{children:s}=t;delete t.children,this.children?this.clear():this.__setBranch(),super.set(t,e),s.forEach((t=>this.add(t))),t.children=s}else super.set(t,e)}toJSON(t){const e=super.toJSON(t);return 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(){}},e([t.dataProcessor(R)],exports.Group.prototype,"__",void 0),e([t.boundsType(0)],exports.Group.prototype,"width",void 0),e([t.boundsType(0)],exports.Group.prototype,"height",void 0),exports.Group=e([t.useModule(t.Branch),t.registerUI()],exports.Group);const Y=t.Debug.get("Leafer");exports.Leafer=V=class extends exports.Group{get __tag(){return"Leafer"}get isApp(){return!1}get app(){return this.parent||this}get isLeafer(){return!0}get imageReady(){return this.viewReady&&t.Resource.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)||t.getBoundsData()}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),V.list.add(this)}init(e,s){if(this.canvas)return;let r;const{config:o}=this;this.__setLeafer(this),s&&(this.parentApp=s,this.__bindApp(s),r=s.running),e&&(this.parent=s,this.initType(e.type),this.parent=void 0,t.DataHelper.assign(o,e));const i=this.canvas=t.Creator.canvas(o);this.__controllers.push(this.renderer=t.Creator.renderer(this,i,o),this.watcher=t.Creator.watcher(this,o),this.layouter=t.Creator.layouter(this,o)),this.isApp&&this.__setApp(),this.__checkAutoLayout(o,s),this.view=i.view,s||(this.selector=t.Creator.selector(this),this.interaction=t.Creator.interaction(this,i,this.selector,o),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=t.Creator.hitCanvasManager()),this.canvasManager=new t.CanvasManager,r=o.start),this.hittable=o.hittable,this.fill=o.fill,this.canvasManager.add(i),this.__listenEvents(),r&&(this.__startTimer=setTimeout(this.start.bind(this))),t.WaitHelper.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(t.LeaferEvent.RESTART):this.emitLeafer(t.LeaferEvent.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(t.LeaferEvent.STOP))}unlockLayout(){this.layouter.start(),this.updateLayout()}lockLayout(){this.updateLayout(),this.layouter.stop()}resize(e){const s=t.DataHelper.copyAttrs({},e,t.canvasSizeAttrs);Object.keys(s).forEach((t=>this[t]=s[t]))}forceRender(e,s){const{renderer:r}=this;r&&(r.addBlock(e?new t.Bounds(e):this.canvas.bounds),this.viewReady&&(s?r.render():r.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(e){const{canvas:s}=this;if(!s||s.isSameSize(e))return;const r=t.DataHelper.copyAttrs({},this.canvas,t.canvasSizeAttrs);s.resize(e),this.updateLazyBounds(),this.__onResize(new t.ResizeEvent(e,r))}__onResize(e){this.emitEvent(e),t.DataHelper.copyAttrs(this.__,e,t.canvasSizeAttrs),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(e,s){s||(e.width&&e.height||(this.autoLayout=new t.AutoBounds(e)),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(e,s){return this.canvas&&(t.canvasSizeAttrs.includes(e)?this.__changeCanvasSize(e,s):"fill"===e?this.__changeFill(s):"hittable"===e?this.parent||(this.canvas.hittable=s):"zIndex"===e&&(this.canvas.zIndex=s,setTimeout((()=>this.parent&&this.parent.__updateSortChildren())))),super.__setAttr(e,s)}__getAttr(e){return this.canvas&&t.canvasSizeAttrs.includes(e)?this.canvas[e]:super.__getAttr(e)}__changeCanvasSize(e,s){const r=t.DataHelper.copyAttrs({},this.canvas,t.canvasSizeAttrs);r[e]=this.config[e]=s,s&&this.canvas.stopAutoLayout(),this.__doResize(r)}__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(t.LeaferEvent.BEFORE_READY),this.emitLeafer(t.LeaferEvent.READY),this.emitLeafer(t.LeaferEvent.AFTER_READY),t.WaitHelper.run(this.__readyWait)}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(t.LeaferEvent.VIEW_READY),t.WaitHelper.run(this.__viewReadyWait))}__onLayoutEnd(){const{grow:t,width:e,height:s}=this.config;if(t){let{width:r,height:o,pixelRatio:i}=this;const a="box"===t?this.worldBoxBounds:this.__world;e||(r=Math.max(1,a.x+a.width)),s||(o=Math.max(1,a.y+a.height)),this.__doResize({width:r,height:o,pixelRatio:i})}this.ready||this.__onReady()}__onNextRender(){if(this.viewReady){t.WaitHelper.run(this.__nextRenderWait);const{imageReady:e}=this;e&&!this.viewCompleted&&this.__checkViewCompleted(),e||(this.viewCompleted=!1,this.requestRender())}else this.requestRender()}__checkViewCompleted(e=!0){this.nextRender((()=>{this.imageReady&&(e&&this.emitLeafer(t.LeaferEvent.VIEW_COMPLETED),t.WaitHelper.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,s){e&&(t=t.bind(e));const r=this.__nextRenderWait;if(s){for(let e=0;e<r.length;e++)if(r[e]===t){r.splice(e,1);break}}else r.push(t);this.requestRender()}zoom(e,s,r,o){return t.Plugin.need("view")}getValidMove(t,e){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:s}=this.clientBounds;return{x:e+t.x,y:s+t.y}}updateClientBounds(){this.canvas&&this.canvas.updateClientBounds()}receiveEvent(t){}emitLeafer(e){this.emitEvent(new t.LeaferEvent(e,this))}__listenEvents(){const e=t.Run.start("FirstCreate "+this.innerName);this.once([[t.LeaferEvent.START,()=>t.Run.end(e)],[t.LayoutEvent.START,this.updateLazyBounds,this],[t.RenderEvent.START,this.__onCreated,this],[t.RenderEvent.END,this.__onViewReady,this]]),this.__eventIds.push(this.on_([[t.WatchEvent.DATA,this.__onWatchData,this],[t.LayoutEvent.END,this.__onLayoutEnd,this],[t.RenderEvent.NEXT,this.__onNextRender,this]]))}__removeListenEvents(){this.off_(this.__eventIds)}destroy(e){const s=()=>{if(!this.destroyed){V.list.remove(this);try{this.stop(),this.emitEvent(new t.LeaferEvent(t.LeaferEvent.END,this)),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.destroy()),this.canvas.destroy(),this.config.view=this.view=this.parentApp=null,this.userConfig&&(this.userConfig.view=null),super.destroy(),setTimeout((()=>{t.ImageManager.clearRecycled()}),100)}catch(t){Y.error(t)}}};e?s():setTimeout(s)}},exports.Leafer.list=new t.LeafList,e([t.dataProcessor(P)],exports.Leafer.prototype,"__",void 0),e([t.boundsType()],exports.Leafer.prototype,"pixelRatio",void 0),exports.Leafer=V=e([t.registerUI()],exports.Leafer),exports.Rect=class extends exports.UI{get __tag(){return"Rect"}constructor(t){super(t)}},e([t.dataProcessor(B)],exports.Rect.prototype,"__",void 0),exports.Rect=e([t.useModule(G),t.rewriteAble(),t.registerUI()],exports.Rect);const{copy:X,add:q,includes:J}=t.BoundsHelper,$=exports.Rect.prototype,K=exports.Group.prototype,Q={};exports.Box=class extends exports.Group{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){const e=this.__;if(this.children.length&&!this.pathInputed)if(e.__autoSide){e.__hasSurface&&this.__extraUpdate(),super.__updateBoxBounds();const{boxBounds:t}=this.__layout;e.__autoSize||(e.__autoWidth?(t.width+=t.x,t.x=0,t.height=e.height,t.y=0):(t.height+=t.y,t.y=0,t.width=e.width,t.x=0)),this.__updateNaturalSize()}else this.__updateRectBoxBounds();else this.__updateRectBoxBounds()}__updateStrokeBounds(){}__updateRenderBounds(){let e;const{renderBounds:s}=this.__layout;this.children.length?(super.__updateRenderBounds(),X(Q,s),this.__updateRectRenderBounds(),e=!J(s,Q),e&&"hide"!==this.__.overflow&&q(s,Q)):this.__updateRectRenderBounds(),t.DataHelper.stintSet(this,"isOverflow",e)}__updateRectRenderBounds(){}__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))}__drawContent(t,e){this.__renderGroup(t,e),this.__.__hasStroke&&(t.setWorld(this.__nowWorld),this.__drawRenderPath(t))}},e([t.dataProcessor(S)],exports.Box.prototype,"__",void 0),e([t.boundsType(100)],exports.Box.prototype,"width",void 0),e([t.boundsType(100)],exports.Box.prototype,"height",void 0),e([t.dataType(!1)],exports.Box.prototype,"resizeChildren",void 0),e([t.affectRenderBoundsType("show")],exports.Box.prototype,"overflow",void 0),e([t.rewrite($.__updateStrokeSpread)],exports.Box.prototype,"__updateStrokeSpread",null),e([t.rewrite($.__updateRenderSpread)],exports.Box.prototype,"__updateRectRenderSpread",null),e([t.rewrite($.__updateBoxBounds)],exports.Box.prototype,"__updateRectBoxBounds",null),e([t.rewrite($.__updateStrokeBounds)],exports.Box.prototype,"__updateStrokeBounds",null),e([t.rewrite($.__updateRenderBounds)],exports.Box.prototype,"__updateRectRenderBounds",null),e([t.rewrite($.__updateChange)],exports.Box.prototype,"__updateRectChange",null),e([t.rewrite($.__render)],exports.Box.prototype,"__renderRect",null),e([t.rewrite(K.__render)],exports.Box.prototype,"__renderGroup",null),exports.Box=e([t.rewriteAble(),t.registerUI()],exports.Box),exports.Frame=class extends exports.Box{get __tag(){return"Frame"}get isFrame(){return!0}constructor(t){super(t)}},e([t.dataProcessor(b)],exports.Frame.prototype,"__",void 0),e([t.surfaceType("#FFFFFF")],exports.Frame.prototype,"fill",void 0),e([t.affectRenderBoundsType("hide")],exports.Frame.prototype,"overflow",void 0),exports.Frame=e([t.registerUI()],exports.Frame);const{moveTo:Z,closePath:tt,ellipse:et}=t.PathCommandDataHelper;exports.Ellipse=class extends exports.UI{get __tag(){return"Ellipse"}constructor(t){super(t)}__updatePath(){const{width:e,height:s,innerRadius:r,startAngle:o,endAngle:i}=this.__,a=e/2,n=s/2,p=this.__.path=[];r?(o||i?(r<1&&et(p,a,n,a*r,n*r,0,o,i,!1),et(p,a,n,a,n,0,i,o,!0),r<1&&tt(p)):(r<1&&(et(p,a,n,a*r,n*r),Z(p,e,n)),et(p,a,n,a,n,0,360,0,!0)),t.Platform.ellipseToCurve&&(this.__.path=this.getPath(!0))):o||i?(Z(p,a,n),et(p,a,n,a,n,0,o,i,!1),tt(p)):et(p,a,n,a,n)}},e([t.dataProcessor(C)],exports.Ellipse.prototype,"__",void 0),e([t.pathType(0)],exports.Ellipse.prototype,"innerRadius",void 0),e([t.pathType(0)],exports.Ellipse.prototype,"startAngle",void 0),e([t.pathType(0)],exports.Ellipse.prototype,"endAngle",void 0),exports.Ellipse=e([t.registerUI()],exports.Ellipse);const{moveTo:st,lineTo:rt,drawPoints:ot}=t.PathCommandDataHelper,{rotate:it,getAngle:at,getDistance:nt,defaultPoint:pt}=t.PointHelper,{toBounds:ht}=t.PathBounds;exports.Line=class extends exports.UI{get __tag(){return"Line"}get toPoint(){const{width:e,rotation:s}=this.__,r=t.getPointData();return e&&(r.x=e),s&&it(r,s),r}set toPoint(t){this.width=nt(pt,t),this.rotation=at(pt,t),this.height&&(this.height=0)}constructor(t){super(t)}__updatePath(){const t=this.__,e=t.path=[];t.points?ot(e,t.points,!1,t.closed):(st(e,0,0),rt(e,this.width,0))}__updateRenderPath(){const t=this.__;!this.pathInputed&&t.points&&t.curve?(ot(t.__pathForRender=[],t.points,t.curve,t.closed),t.__useArrow&&p.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?ht(this.__.__pathForRender,this.__layout.boxBounds):super.__updateBoxBounds()}},e([t.dataProcessor(k)],exports.Line.prototype,"__",void 0),e([t.affectStrokeBoundsType("center")],exports.Line.prototype,"strokeAlign",void 0),e([t.boundsType(0)],exports.Line.prototype,"height",void 0),e([t.pathType()],exports.Line.prototype,"points",void 0),e([t.pathType(0)],exports.Line.prototype,"curve",void 0),e([t.pathType(!1)],exports.Line.prototype,"closed",void 0),exports.Line=e([t.registerUI()],exports.Line);const{sin:_t,cos:dt,PI:lt}=Math,{moveTo:ut,lineTo:ct,closePath:xt,drawPoints:yt}=t.PathCommandDataHelper,gt=exports.Line.prototype;exports.Polygon=class extends exports.UI{get __tag(){return"Polygon"}constructor(t){super(t)}__updatePath(){const t=this.__.path=[];if(this.__.points)yt(t,this.__.points,!1,!0);else{const{width:e,height:s,sides:r}=this.__,o=e/2,i=s/2;ut(t,o,0);for(let e=1;e<r;e++)ct(t,o+o*_t(2*e*lt/r),i-i*dt(2*e*lt/r))}xt(t)}__updateRenderPath(){}__updateBoxBounds(){}},e([t.dataProcessor(U)],exports.Polygon.prototype,"__",void 0),e([t.pathType(3)],exports.Polygon.prototype,"sides",void 0),e([t.pathType()],exports.Polygon.prototype,"points",void 0),e([t.pathType(0)],exports.Polygon.prototype,"curve",void 0),e([t.rewrite(gt.__updateRenderPath)],exports.Polygon.prototype,"__updateRenderPath",null),e([t.rewrite(gt.__updateBoxBounds)],exports.Polygon.prototype,"__updateBoxBounds",null),exports.Polygon=e([t.rewriteAble(),t.registerUI()],exports.Polygon);const{sin:vt,cos:ft,PI:wt}=Math,{moveTo:Tt,lineTo:mt,closePath:It}=t.PathCommandDataHelper;exports.Star=class extends exports.UI{get __tag(){return"Star"}constructor(t){super(t)}__updatePath(){const{width:t,height:e,corners:s,innerRadius:r}=this.__,o=t/2,i=e/2,a=this.__.path=[];Tt(a,o,0);for(let t=1;t<2*s;t++)mt(a,o+(t%2==0?o:o*r)*vt(t*wt/s),i-(t%2==0?i:i*r)*ft(t*wt/s));It(a)}},e([t.dataProcessor(A)],exports.Star.prototype,"__",void 0),e([t.pathType(5)],exports.Star.prototype,"corners",void 0),e([t.pathType(.382)],exports.Star.prototype,"innerRadius",void 0),exports.Star=e([t.registerUI()],exports.Star),exports.Image=class extends exports.Rect{get __tag(){return"Image"}get ready(){const{image:t}=this;return t&&t.ready}get image(){const{fill:t}=this.__;return t instanceof Array&&t[0].image}constructor(t){super(t)}},e([t.dataProcessor(W)],exports.Image.prototype,"__",void 0),e([t.boundsType("")],exports.Image.prototype,"url",void 0),exports.Image=e([t.registerUI()],exports.Image);const Rt=exports.Image;exports.Canvas=class extends exports.Rect{get __tag(){return"Canvas"}get context(){return this.canvas.context}get ready(){return!this.url}constructor(e){super(e),this.canvas=t.Creator.canvas(this.__),e&&e.url&&this.drawImage(e.url)}drawImage(e){new t.LeaferImage({url:e}).load((e=>{this.context.drawImage(e.view,0,0),this.url=void 0,this.paint(),this.emitEvent(new t.ImageEvent(t.ImageEvent.LOADED,{image:e}))}))}draw(e,s,r,o){const i=new t.Matrix(e.worldTransform).invert(),a=new t.Matrix;s&&a.translate(s.x,s.y),r&&("number"==typeof r?a.scale(r):a.scale(r.x,r.y)),o&&a.rotate(o),i.multiplyParent(a),e.__render(this.canvas,{matrix:i.withScale()}),this.paint()}paint(){this.forceRender()}__drawContent(t,e){const{width:s,height:r}=this.__,{view:o}=this.canvas;t.drawImage(o,0,0,o.width,o.height,0,0,s,r)}__updateSize(){const{canvas:t}=this;if(t){const{smooth:e,safeResize:s}=this.__;t.resize(this.__,s),t.smooth!==e&&(t.smooth=e)}}destroy(){this.canvas&&(this.canvas.destroy(),this.canvas=null),super.destroy()}},e([t.dataProcessor(z)],exports.Canvas.prototype,"__",void 0),e([r(100)],exports.Canvas.prototype,"width",void 0),e([r(100)],exports.Canvas.prototype,"height",void 0),e([r(1)],exports.Canvas.prototype,"pixelRatio",void 0),e([r(!0)],exports.Canvas.prototype,"smooth",void 0),e([t.dataType(!1)],exports.Canvas.prototype,"safeResize",void 0),e([r()],exports.Canvas.prototype,"contextSettings",void 0),exports.Canvas=e([t.registerUI()],exports.Canvas);const{copyAndSpread:St,includes:Pt,spread:bt,setList:kt}=t.BoundsHelper;exports.Text=class extends exports.UI{get __tag(){return"Text"}get textDrawData(){return this.updateLayout(),this.__.__textDrawData}constructor(t){super(t)}__updateTextDrawData(){const e=this.__,{lineHeight:s,letterSpacing:r,fontFamily:o,fontSize:a,fontWeight:p,italic:h,textCase:_,textOverflow:d,padding:l}=e;e.__lineHeight=n.number(s,a),e.__letterSpacing=n.number(r,a),e.__padding=l?t.MathHelper.fourNumber(l):void 0,e.__baseLine=e.__lineHeight-(e.__lineHeight-.7*a)/2,e.__font=`${h?"italic ":""}${"small-caps"===_?"small-caps ":""}${"normal"!==p?p+" ":""}${a}px ${o}`,e.__clipText="show"!==d&&!e.__autoSize,e.__textDrawData=i.getDrawData((e.__isPlacehold=e.placeholder&&""===e.text)?e.placeholder:e.text,this.__)}__updateBoxBounds(){const e=this.__,s=this.__layout,{fontSize:r,italic:o,padding:i,__autoWidth:a,__autoHeight:n}=e;this.__updateTextDrawData();const{bounds:p}=e.__textDrawData,h=s.boxBounds;if(s.contentBounds=p,e.__lineHeight<r&&bt(p,r/2),a||n){if(h.x=a?p.x:0,h.y=n?p.y:0,h.width=a?p.width:e.width,h.height=n?p.height:e.height,i){const[t,s,r,o]=e.__padding;a&&(h.x-=o,h.width+=s+o),n&&(h.y-=t,h.height+=r+t)}this.__updateNaturalSize()}else super.__updateBoxBounds();o&&(h.width+=.16*r),t.DataHelper.stintSet(this,"isOverflow",!Pt(h,p)),this.isOverflow?(kt(e.__textBoxBounds={},[h,p]),s.renderChanged=!0):e.__textBoxBounds=h}__onUpdateSize(){this.__box&&this.__box.__onUpdateSize(),super.__onUpdateSize()}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.isOverflow?1:0),t}__updateRenderBounds(){const{renderBounds:t,renderSpread:e}=this.__layout;St(t,this.__.__textBoxBounds,e),this.__box&&(this.__box.__layout.renderBounds=t)}__drawRenderPath(t){t.font=this.__.__font}__draw(t,e,s){const r=this.__box;r&&(r.__nowWorld=this.__nowWorld,r.__draw(t,e,s)),this.textEditing&&!u.running||super.__draw(t,e,s)}destroy(){this.boxStyle&&(this.boxStyle=null),super.destroy()}},e([t.dataProcessor(F)],exports.Text.prototype,"__",void 0),e([t.boundsType(0)],exports.Text.prototype,"width",void 0),e([t.boundsType(0)],exports.Text.prototype,"height",void 0),e([t.surfaceType()],exports.Text.prototype,"boxStyle",void 0),e([t.dataType(!1)],exports.Text.prototype,"resizeFontSize",void 0),e([t.surfaceType("#000000")],exports.Text.prototype,"fill",void 0),e([t.affectStrokeBoundsType("outside")],exports.Text.prototype,"strokeAlign",void 0),e([t.hitType("all")],exports.Text.prototype,"hitFill",void 0),e([t.boundsType("")],exports.Text.prototype,"text",void 0),e([t.boundsType("")],exports.Text.prototype,"placeholder",void 0),e([t.boundsType("caption")],exports.Text.prototype,"fontFamily",void 0),e([t.boundsType(12)],exports.Text.prototype,"fontSize",void 0),e([t.boundsType("normal")],exports.Text.prototype,"fontWeight",void 0),e([t.boundsType(!1)],exports.Text.prototype,"italic",void 0),e([t.boundsType("none")],exports.Text.prototype,"textCase",void 0),e([t.boundsType("none")],exports.Text.prototype,"textDecoration",void 0),e([t.boundsType(0)],exports.Text.prototype,"letterSpacing",void 0),e([t.boundsType({type:"percent",value:1.5})],exports.Text.prototype,"lineHeight",void 0),e([t.boundsType(0)],exports.Text.prototype,"paraIndent",void 0),e([t.boundsType(0)],exports.Text.prototype,"paraSpacing",void 0),e([t.boundsType("x")],exports.Text.prototype,"writingMode",void 0),e([t.boundsType("left")],exports.Text.prototype,"textAlign",void 0),e([t.boundsType("top")],exports.Text.prototype,"verticalAlign",void 0),e([t.boundsType(!0)],exports.Text.prototype,"autoSizeAlign",void 0),e([t.boundsType("normal")],exports.Text.prototype,"textWrap",void 0),e([t.boundsType("show")],exports.Text.prototype,"textOverflow",void 0),e([t.surfaceType(!1)],exports.Text.prototype,"textEditing",void 0),exports.Text=e([t.registerUI()],exports.Text),exports.Path=class extends exports.UI{get __tag(){return"Path"}constructor(t){super(t)}},e([t.dataProcessor(L)],exports.Path.prototype,"__",void 0),e([t.affectStrokeBoundsType("center")],exports.Path.prototype,"strokeAlign",void 0),exports.Path=e([t.registerUI()],exports.Path),exports.Pen=class extends exports.Group{get __tag(){return"Pen"}constructor(t){super(t)}setStyle(t){const e=this.pathElement=new exports.Path(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,s,r,o,i){return this}quadraticCurveTo(t,e,s,r){return this}closePath(){return this}rect(t,e,s,r){return this}roundRect(t,e,s,r,o){return this}ellipse(t,e,s,r,o,i,a,n){return this}arc(t,e,s,r,o,i){return this}arcTo(t,e,s,r,o){return this}drawEllipse(t,e,s,r,o,i,a,n){return this}drawArc(t,e,s,r,o,i){return this}drawPoints(t,e,s){return this}clearPath(){return this}paint(){this.pathElement.__layout.boxChanged||this.pathElement.forceUpdate("path")}},e([t.dataProcessor(E)],exports.Pen.prototype,"__",void 0),e([(e,s)=>{t.defineKey(e,s,{get(){return this.__path}})}],exports.Pen.prototype,"path",void 0),exports.Pen=e([t.useModule(t.PathCreator,["set","path","paint"]),t.registerUI()],exports.Pen),exports.BoxData=S,exports.CanvasData=z,exports.ColorConvert=a,exports.Effect=d,exports.EllipseData=C,exports.Export=u,exports.Filter=l,exports.FrameData=b,exports.GroupData=R,exports.ImageData=W,exports.LeaferData=P,exports.LineData=k,exports.MyImage=Rt,exports.Paint=h,exports.PaintGradient={},exports.PaintImage=_,exports.PathArrow=p,exports.PathData=L,exports.PenData=E,exports.PolygonData=U,exports.RectData=B,exports.RectRender=G,exports.StarData=A,exports.State=c,exports.TextConvert=i,exports.TextData=F,exports.Transition=x,exports.UIBounds=M,exports.UIData=m,exports.UIRender=O,exports.UnitConvert=n,exports.effectType=s,exports.resizeType=r,exports.zoomLayerType=o,Object.keys(t).forEach((function(e){"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})}));
2
+ //# sourceMappingURL=draw.min.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draw.min.cjs","sources":["../../../../../../node_modules/.pnpm/@rollup+plugin-typescript@11.1.6_rollup@4.34.6_tslib@2.8.1_typescript@5.7.3/node_modules/tslib/tslib.es6.js","../../../../../../../src/ui/packages/decorator/src/data.ts","../../../../../../../src/ui/packages/external/src/index.ts","../../../../../../../src/ui/packages/external/src/color.ts","../../../../../../../src/ui/packages/display-module/data/src/UIData.ts","../../../../../../../src/ui/packages/display-module/data/src/GroupData.ts","../../../../../../../src/ui/packages/display-module/data/src/BoxData.ts","../../../../../../../src/ui/packages/display-module/data/src/LeaferData.ts","../../../../../../../src/ui/packages/display-module/data/src/FrameData.ts","../../../../../../../src/ui/packages/display-module/data/src/LineData.ts","../../../../../../../src/ui/packages/display-module/data/src/RectData.ts","../../../../../../../src/ui/packages/display-module/data/src/EllipseData.ts","../../../../../../../src/ui/packages/display-module/data/src/PolygonData.ts","../../../../../../../src/ui/packages/display-module/data/src/StarData.ts","../../../../../../../src/ui/packages/display-module/data/src/PathData.ts","../../../../../../../src/ui/packages/display-module/data/src/PenData.ts","../../../../../../../src/ui/packages/display-module/data/src/TextData.ts","../../../../../../../src/ui/packages/display-module/data/src/ImageData.ts","../../../../../../../src/ui/packages/display-module/data/src/CanvasData.ts","../../../../../../../src/ui/packages/display-module/bounds/src/UIBounds.ts","../../../../../../../src/ui/packages/display-module/render/src/UIRender.ts","../../../../../../../src/ui/packages/display-module/render/src/RectRender.ts","../../../../../../../src/ui/packages/display/src/UI.ts","../../../../../../../src/ui/packages/display/src/Group.ts","../../../../../../../src/ui/packages/display/src/Leafer.ts","../../../../../../../src/ui/packages/display/src/Rect.ts","../../../../../../../src/ui/packages/display/src/Box.ts","../../../../../../../src/ui/packages/display/src/Frame.ts","../../../../../../../src/ui/packages/display/src/Ellipse.ts","../../../../../../../src/ui/packages/display/src/Line.ts","../../../../../../../src/ui/packages/display/src/Polygon.ts","../../../../../../../src/ui/packages/display/src/Star.ts","../../../../../../../src/ui/packages/display/src/Image.ts","../../../../../../../src/ui/packages/display/src/Canvas.ts","../../../../../../../src/ui/packages/display/src/Text.ts","../../../../../../../src/ui/packages/display/src/Path.ts","../../../../../../../src/ui/packages/display/src/Pen.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { IValue, IObject } from '@leafer/interface'\nimport { defineKey, decorateLeafAttr, attr } from '@leafer/core'\n\nimport { ICanvas, IUI, IApp } from '@leafer-ui/interface'\n\n\nexport function effectType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: IValue) {\n this.__setAttr(key, value)\n if (value) (this as IUI).__.__useEffect = true\n this.__layout.renderChanged || this.__layout.renderChange()\n }\n }))\n}\n\nexport function resizeType(defaultValue?: IValue) {\n return decorateLeafAttr(defaultValue, (key: string) => attr({\n set(value: IValue) {\n this.__setAttr(key, value)\n this.__layout.boxChanged || this.__layout.boxChange();\n (this as ICanvas).__updateSize()\n }\n }))\n}\n\nexport function zoomLayerType() {\n return (target: IUI, key: string) => {\n const privateKey = '_' + key\n defineKey(target, key, {\n set(value: IUI) { if (this.isLeafer) (this as IObject)[privateKey] = value },\n get() {\n return this.isApp\n ? (this as IApp).tree.zoomLayer\n : (this.isLeafer ? ((this as IObject)[privateKey] || this) : this.leafer && this.leafer.zoomLayer)\n }\n })\n }\n}","// Implemented in partner\nimport { IPaintModule, IPaintImageModule, IPaintGradientModule, IEffectModule, ITextConvertModule, IExportModule, IColorConvertModule, IPathArrowModule, IStateModule, IUnitData, ITransitionModule, ITransitionFunction, IFilterModule } from \"@leafer-ui/interface\"\nimport { Plugin } from '@leafer/core'\nimport { hasTransparent } from './color'\n\n\nexport const TextConvert = {} as ITextConvertModule\n\nexport const ColorConvert = {\n hasTransparent\n} as IColorConvertModule\n\nexport const UnitConvert = {\n number(value: number | IUnitData, percentRefer?: number): number {\n return typeof value === 'object' ? (value.type === 'percent' ? value.value * percentRefer : value.value) : value\n }\n}\n\n\nexport const PathArrow = {} as IPathArrowModule\n\n\nexport const Paint = {} as IPaintModule\n\nexport const PaintImage = {} as IPaintImageModule\n\nexport const PaintGradient = {} as IPaintGradientModule\n\nexport const Effect = {} as IEffectModule\n\nexport const Filter = {\n apply(): void { Plugin.need('filter') }\n} as unknown as IFilterModule\n\nexport const Export = {} as IExportModule\n\nexport const State = {\n setStyleName(): void { return Plugin.need('state') },\n set(): void { return Plugin.need('state') }\n} as unknown as IStateModule\n\nexport const Transition = {\n list: {},\n register(attrName: string, fn: ITransitionFunction): void { Transition.list[attrName] = fn },\n get(attrName: string): ITransitionFunction { return Transition.list[attrName] }\n} as ITransitionModule","export function hasTransparent(color?: string): boolean {\n\n if (!color || color.length === 7 || color.length === 4) return false\n if (color === 'transparent') return true // transparent keyword\n\n const first = color[0]\n\n if (first === '#') {\n\n // hex\n switch (color.length) {\n case 5: return color[4] !== 'f' && color[4] !== 'F' // #RGBA\n case 9: return (color[7] !== 'f' && color[7] !== 'F') || (color[8] !== 'f' && color[8] !== 'F') // #RRGGBBAA\n }\n\n } else if (first === 'r' || first === 'h') {\n\n // rgba(...) or hsla(...)\n if (color[3] === 'a') {\n const i = color.lastIndexOf(',')\n if (i > -1) return parseFloat(color.slice(i + 1)) < 1\n }\n\n }\n\n return false\n\n}","import { INumber, IValue, IBoolean, IPathCommandData, IPathString, IPointData, IPathCommandObject, IObject, IFilter } from '@leafer/interface'\nimport { PathConvert, DataHelper, LeafData, Debug } from '@leafer/core'\n\nimport { IUI, IUIData, ILeafPaint } from '@leafer-ui/interface'\nimport { Paint, PaintImage, ColorConvert } from '@leafer-ui/external'\n\n\nconst { parse, objectToCanvasData } = PathConvert\nconst { stintSet } = DataHelper, { hasTransparent } = ColorConvert\nconst emptyPaint: ILeafPaint = {}\nconst debug = Debug.get('UIData')\nexport class UIData extends LeafData implements IUIData {\n\n declare public __leaf: IUI\n\n public get scale(): INumber | IPointData { const { scaleX, scaleY } = this as IUIData; return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX }\n\n public __blendLayer?: boolean // 非元素属性必须以两个下划线开头\n\n public __isFills?: boolean\n public __isStrokes?: boolean\n\n public get __strokeWidth(): number {\n const { strokeWidth, strokeWidthFixed } = this as IUIData\n if (strokeWidthFixed) {\n const ui = this.__leaf\n let { scaleX } = ui.__nowWorld || ui.__world\n if (scaleX < 0) scaleX = -scaleX\n return scaleX > 1 ? strokeWidth / scaleX : strokeWidth\n } else return strokeWidth\n }\n\n public get __hasStroke(): boolean { return (this as IUIData).stroke && (this as IUIData).strokeWidth as unknown as boolean }\n public get __hasHalf(): number { const t = this as IUIData; return (t.stroke && t.strokeAlign === 'center' && t.strokeWidth % 2) || undefined }\n public get __hasMultiPaint(): boolean { // fix: opacity\n const t = this as IUIData\n if ((t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect) return true\n return t.fill && this.__hasStroke\n }\n\n public __isAlphaPixelFill?: boolean // png / svg / webp\n public __isAlphaPixelStroke?: boolean\n\n public __isTransparentFill?: boolean // 半透明的 \n public __isTransparentStroke?: boolean\n\n public get __clipAfterFill(): boolean { const t = this as IUIData; return (t.cornerRadius || t.innerShadow || t.__pathInputed) as unknown as boolean } // 用于 __drawAfterFill()\n public get __hasSurface(): boolean { const t = this as IUIData; return (t.fill || t.stroke) as unknown as boolean }\n\n public __needComputePaint: boolean\n\n protected _visible?: IBoolean\n\n protected _width?: INumber\n protected _height?: INumber\n\n protected _fill?: IValue\n protected _stroke?: IValue\n\n protected _path: IPathCommandData\n\n protected _shadow?: IValue\n protected _innerShadow?: IValue\n\n public get __autoWidth() { return !this._width }\n public get __autoHeight() { return !this._height }\n public get __autoSide() { return !this._width || !this._height }\n public get __autoSize() { return !this._width && !this._height }\n\n\n protected setVisible(value: IBoolean) {\n this._visible = value\n\n const { leafer } = this.__leaf\n if (leafer) leafer.watcher.hasVisible = true\n }\n\n protected setWidth(value: INumber) {\n if (value < 0) {\n this._width = -value\n this.__leaf.scaleX *= -1\n debug.warn('width < 0, instead -scaleX ', this)\n } else this._width = value\n }\n\n protected setHeight(value: INumber) {\n if (value < 0) {\n this._height = -value\n this.__leaf.scaleY *= -1\n debug.warn('height < 0, instead -scaleY', this)\n } else this._height = value\n }\n\n\n protected setFill(value: IValue) {\n if (this.__naturalWidth) this.__removeNaturalSize()\n if (typeof value === 'string' || !value) {\n stintSet(this, '__isTransparentFill', hasTransparent(value as string))\n this.__isFills && this.__removePaint('fill', true)\n this._fill = value\n } else if (typeof value === 'object') {\n this.__setPaint('fill', value)\n }\n }\n\n protected setStroke(value: IValue) {\n if (typeof value === 'string' || !value) {\n stintSet(this, '__isTransparentStroke', hasTransparent(value as string))\n this.__isStrokes && this.__removePaint('stroke', true)\n this._stroke = value\n } else if (typeof value === 'object') {\n this.__setPaint('stroke', value)\n }\n }\n\n\n protected setPath(value: IPathCommandData | IPathCommandObject[] | IPathString) {\n const isString = typeof value === 'string'\n if (isString || (value && typeof value[0] === 'object')) {\n this.__setInput('path', value)\n this._path = isString ? parse(value) : objectToCanvasData(value as IPathCommandObject[])\n } else {\n if (this.__input) this.__removeInput('path')\n this._path = value as IPathCommandData\n }\n }\n\n\n protected setShadow(value: IValue) {\n setArray(this, 'shadow', value)\n }\n\n protected setInnerShadow(value: IValue) {\n setArray(this, 'innerShadow', value)\n }\n\n protected setFilter(value: IValue) {\n setArray(this, 'filter', value)\n }\n\n\n // custom\n\n public __computePaint(): void {\n const { fill, stroke } = this.__input\n if (fill) Paint.compute('fill', this.__leaf)\n if (stroke) Paint.compute('stroke', this.__leaf)\n this.__needComputePaint = undefined\n }\n\n public __setPaint(attrName: 'fill' | 'stroke', value: IValue): void {\n this.__setInput(attrName, value)\n const layout = this.__leaf.__layout\n layout.boxChanged || layout.boxChange()\n if (value instanceof Array && !value.length) {\n this.__removePaint(attrName)\n } else {\n if (attrName === 'fill') this.__isFills = true, this._fill || (this._fill = emptyPaint)\n else this.__isStrokes = true, this._stroke || (this._stroke = emptyPaint)\n }\n }\n\n public __removePaint(attrName: 'fill' | 'stroke', removeInput?: boolean): void {\n if (removeInput) this.__removeInput(attrName)\n PaintImage.recycleImage(attrName, this)\n if (attrName === 'fill') {\n stintSet(this, '__isAlphaPixelFill', undefined)\n this._fill = this.__isFills = undefined\n } else {\n stintSet(this, '__isAlphaPixelStroke', undefined)\n this._stroke = this.__isStrokes = undefined\n }\n }\n}\n\n\nfunction setArray(data: IUIData, key: string, value: IValue) {\n data.__setInput(key, value)\n if (value instanceof Array) {\n if (value.some((item: IFilter) => item.visible === false)) value = value.filter((item: IFilter) => item.visible !== false)\n value.length || (value = undefined)\n } else value = value && (value as IFilter).visible !== false ? [value] : undefined;\n (data as IObject)['_' + key] = value\n}\n","import { IGroupData } from '@leafer-ui/interface'\n\nimport { UIData } from \"./UIData\"\n\n\nexport class GroupData extends UIData implements IGroupData {\n\n}\n","import { IBoxData } from '@leafer-ui/interface'\n\nimport { GroupData } from \"./GroupData\"\n\n\nexport class BoxData extends GroupData implements IBoxData {\n\n public get __boxStroke(): boolean { return !(this as IBoxData).__pathInputed }\n\n // 路径与圆角直接当溢出处理\n public get __drawAfterFill(): boolean { const t = this as IBoxData; return (t.overflow === 'hide' && (t.__clipAfterFill || t.innerShadow) && t.__leaf.children.length) as unknown as boolean }\n\n public get __clipAfterFill(): boolean { return this.__leaf.isOverflow || super.__clipAfterFill }\n\n}\n","import { canvasSizeAttrs } from '@leafer/core'\n\nimport { ILeaferData, IObject, IJSONOptions } from '@leafer-ui/interface'\n\nimport { GroupData } from './GroupData'\n\nexport class LeaferData extends GroupData implements ILeaferData {\n\n public __getInputData(names?: string[] | IObject, options?: IJSONOptions): IObject {\n const data = super.__getInputData(names, options)\n canvasSizeAttrs.forEach(key => delete (data as IObject)[key])\n return data\n }\n}\n","import { IFrameData } from '@leafer-ui/interface'\n\nimport { BoxData } from './BoxData'\n\n\nexport class FrameData extends BoxData implements IFrameData {\n\n}\n","import { ILineData } from \"@leafer-ui/interface\"\n\nimport { UIData } from \"./UIData\"\n\n\nexport class LineData extends UIData implements ILineData {\n\n}\n","import { IRectData } from \"@leafer-ui/interface\"\n\nimport { UIData } from \"./UIData\"\n\n\nexport class RectData extends UIData implements IRectData {\n get __boxStroke(): boolean { return !(this as IRectData).__pathInputed }\n}","import { IEllipseData } from '@leafer-ui/interface'\n\nimport { UIData } from \"./UIData\"\n\n\nexport class EllipseData extends UIData implements IEllipseData {\n get __boxStroke(): boolean { return !(this as IEllipseData).__pathInputed }\n}","import { IPolygonData } from '@leafer-ui/interface'\n\nimport { UIData } from \"./UIData\"\n\n\nexport class PolygonData extends UIData implements IPolygonData {\n\n}","import { IStarData } from '@leafer-ui/interface'\n\nimport { UIData } from \"./UIData\"\n\n\nexport class StarData extends UIData implements IStarData {\n\n}","import { IPathData } from '@leafer-ui/interface'\n\nimport { UIData } from \"./UIData\"\n\n\nexport class PathData extends UIData implements IPathData {\n public get __pathInputed(): number { return 2 }\n}","import { IPenData } from '@leafer-ui/interface'\n\nimport { GroupData } from './GroupData'\n\n\nexport class PenData extends GroupData implements IPenData {\n\n}\n","import { UICreator } from '@leafer/core'\n\nimport { IFontWeight, ITextData, IUI, IText, IObject, IBackgroundBoxStyle, IFontWeightNumer } from '@leafer-ui/interface'\n\nimport { UIData } from \"./UIData\"\n\n\nconst fontWeightMap = {\n 'thin': 100,\n 'extra-light': 200,\n 'light': 300,\n 'normal': 400,\n 'medium': 500,\n 'semi-bold': 600,\n 'bold': 700,\n 'extra-bold': 800,\n 'black': 900\n}\n\nexport class TextData extends UIData implements ITextData {\n\n public get __useNaturalRatio() { return false }\n\n protected _fontWeight?: number\n protected _boxStyle?: IBackgroundBoxStyle\n\n setFontWeight(value: IFontWeight): void {\n if (typeof value === 'string') {\n this.__setInput('fontWeight', value)\n value = fontWeightMap[value] as IFontWeightNumer || 400\n } else if (this.__input) this.__removeInput('fontWeight')\n this._fontWeight = value\n }\n\n setBoxStyle(value: IUI) {\n let t = this.__leaf as IText, box = t.__box\n\n if (value) {\n\n const { boxStyle } = this as ITextData\n if (box) for (let key in boxStyle) (box as IObject)[key] = undefined\n else box = t.__box = UICreator.get('Rect', 0 as any) as IUI // 传递 0 可以优化内存占用\n\n const layout = t.__layout, boxLayout = box.__layout\n if (!boxStyle) box.parent = t as any, box.__world = t.__world, boxLayout.boxBounds = layout.boxBounds\n\n box.set(value)\n if (boxLayout.strokeChanged) layout.strokeChange()\n if (boxLayout.renderChanged) layout.renderChange()\n box.__updateChange()\n\n } else if (box) {\n t.__box = box.parent = null\n box.destroy()\n }\n\n this._boxStyle = value\n\n }\n\n}","import { IImageData, IImageInputData, IImage, IObject, IJSONOptions } from '@leafer-ui/interface'\n\nimport { RectData } from './RectData'\n\n\nexport class ImageData extends RectData implements IImageData {\n\n declare public __leaf: IImage\n\n protected _url: string\n\n protected setUrl(value: string) {\n this.__setImageFill(value)\n this._url = value\n }\n\n public __setImageFill(value: string): void {\n (this as IImageInputData).fill = value ? { type: 'image', mode: 'stretch', url: value } : undefined\n }\n\n public __getData(): IObject {\n const data = super.__getData()\n delete data.fill\n return data\n }\n\n public __getInputData(names?: string[] | IObject, options?: IJSONOptions): IObject {\n const data = super.__getInputData(names, options)\n delete data.fill\n return data\n }\n}","import { ICanvas, ICanvasData, ICanvasInputData, IObject, IJSONOptions } from '@leafer-ui/interface'\n\nimport { RectData } from './RectData'\n\n\nexport class CanvasData extends RectData implements ICanvasData {\n\n public get __isCanvas(): boolean { return true }\n public get __drawAfterFill(): boolean { return true }\n\n public __getInputData(names?: string[] | IObject, options?: IJSONOptions): IObject {\n const data: ICanvasInputData = super.__getInputData(names, options)\n data.url = (this.__leaf as ICanvas).canvas.toDataURL('image/png') as string\n return data\n }\n}","import { IUIBoundsModule } from \"@leafer-ui/interface\"\n\nimport { Filter } from '@leafer-ui/external'\n\n\nexport const UIBounds: IUIBoundsModule = {\n\n __updateStrokeSpread(): number {\n let width = 0, boxWidth = 0\n const data = this.__, { strokeAlign, strokeWidth } = data, box = this.__box\n\n if ((data.stroke || data.hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {\n boxWidth = width = strokeAlign === 'center' ? strokeWidth / 2 : strokeWidth\n\n if (!data.__boxStroke) {\n const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * width // = Math.sin((miterLimit = 10) * OneRadian / 2) * Math.sqrt(strokeWidth) - width 后期需继续精确优化\n const storkeCapAddWidth = data.strokeCap === 'none' ? 0 : strokeWidth\n width += Math.max(miterLimitAddWidth, storkeCapAddWidth)\n }\n }\n\n if (data.__useArrow) width += strokeWidth * 5 // 后期需要精细化\n\n if (box) {\n width = Math.max(box.__layout.strokeSpread = box.__updateStrokeSpread(), width)\n boxWidth = box.__layout.strokeBoxSpread\n }\n\n this.__layout.strokeBoxSpread = boxWidth\n\n return width\n },\n\n __updateRenderSpread(): number {\n let width: number = 0\n const { shadow, innerShadow, blur, backgroundBlur, filter } = this.__\n\n if (shadow) shadow.forEach(item => width = Math.max(width, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread > 0 ? item.spread : 0) + item.blur * 1.5))\n\n if (blur) width = Math.max(width, blur)\n\n if (filter) width += Filter.getSpread(filter)\n\n let shapeWidth = width = Math.ceil(width)\n\n if (innerShadow) innerShadow.forEach(item => shapeWidth = Math.max(shapeWidth, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread < 0 ? -item.spread : 0) + item.blur * 1.5))\n\n if (backgroundBlur) shapeWidth = Math.max(shapeWidth, backgroundBlur)\n\n this.__layout.renderShapeSpread = shapeWidth\n\n width += this.__layout.strokeSpread || 0\n\n return this.__box ? Math.max(this.__box.__updateRenderSpread(), width) : width\n }\n\n}","import { ILeaferCanvas, IRenderOptions } from '@leafer/interface'\nimport { DataHelper } from '@leafer/core'\n\nimport { IUIRenderModule, ILeafPaint, ILeafStrokePaint, IUI } from '@leafer-ui/interface'\nimport { Paint, Effect, Filter, ColorConvert } from '@leafer-ui/external'\n\nconst { stintSet } = DataHelper\n\nexport const UIRender: IUIRenderModule = {\n\n __updateChange(): void {\n const data = this.__\n\n if (data.__useEffect) {\n const { shadow, fill, stroke } = data, otherEffect = data.innerShadow || data.blur || data.backgroundBlur || data.filter\n stintSet(data, '__isFastShadow', shadow && !otherEffect && shadow.length < 2 && !shadow[0].spread && !(shadow[0].box && data.__isTransparentFill) && fill && !(fill instanceof Array && fill.length > 1) && (this.useFastShadow || !stroke || (stroke && data.strokeAlign === 'inside')))\n data.__useEffect = !!(shadow || otherEffect)\n }\n\n stintSet(this.__world, 'half', data.__hasHalf)\n\n stintSet(data, '__fillAfterStroke', data.stroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill)\n\n data.__checkSingle()\n\n stintSet(data, '__complex', data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect)\n },\n\n __drawFast(canvas: ILeaferCanvas, options: IRenderOptions): void {\n drawFast(this, canvas, options)\n },\n\n __draw(canvas: ILeaferCanvas, options: IRenderOptions, originCanvas?: ILeaferCanvas): void {\n const data = this.__\n\n if (data.__complex) {\n\n if (data.__needComputePaint) data.__computePaint()\n\n const { fill, stroke, __drawAfterFill, __fillAfterStroke, __isFastShadow } = data\n\n this.__drawRenderPath(canvas)\n\n if (data.__useEffect && !__isFastShadow) {\n\n const shape = Paint.shape(this, canvas, options)\n this.__nowWorld = this.__getNowWorld(options) // restore\n\n const { shadow, innerShadow, filter } = data\n\n if (shadow) Effect.shadow(this, canvas, shape)\n\n if (__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke as ILeafStrokePaint[], this, canvas) : Paint.stroke(stroke as string, this, canvas)\n\n if (fill) data.__isFills ? Paint.fills(fill as ILeafPaint[], this, canvas) : Paint.fill(fill as string, this, canvas)\n\n if (__drawAfterFill) this.__drawAfterFill(canvas, options)\n\n if (innerShadow) Effect.innerShadow(this, canvas, shape)\n\n if (stroke && !__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke as ILeafStrokePaint[], this, canvas) : Paint.stroke(stroke as string, this, canvas)\n\n if (filter) Filter.apply(filter, this, this.__nowWorld, canvas, originCanvas, shape)\n\n if (shape.worldCanvas) shape.worldCanvas.recycle()\n shape.canvas.recycle()\n\n } else {\n\n if (__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke as ILeafStrokePaint[], this, canvas) : Paint.stroke(stroke as string, this, canvas)\n\n if (__isFastShadow) {\n const shadow = data.shadow[0], { scaleX, scaleY } = this.__nowWorld\n canvas.save(), canvas.setWorldShadow(shadow.x * scaleX, shadow.y * scaleY, shadow.blur * scaleX, ColorConvert.string(shadow.color))\n }\n\n if (fill) data.__isFills ? Paint.fills(fill as ILeafPaint[], this, canvas) : Paint.fill(fill as string, this, canvas)\n\n if (__isFastShadow) canvas.restore()\n\n if (__drawAfterFill) this.__drawAfterFill(canvas, options)\n\n if (stroke && !__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke as ILeafStrokePaint[], this, canvas) : Paint.stroke(stroke as string, this, canvas)\n\n }\n\n } else {\n\n if (data.__pathInputed) drawFast(this, canvas, options)\n else this.__drawFast(canvas, options)\n\n }\n },\n\n __renderShape(canvas: ILeaferCanvas, options: IRenderOptions, ignoreFill?: boolean, ignoreStroke?: boolean): void {\n if (this.__worldOpacity) {\n canvas.setWorld(this.__nowWorld = this.__getNowWorld(options))\n\n const { fill, stroke } = this.__\n\n this.__drawRenderPath(canvas)\n\n if (fill && !ignoreFill) this.__.__isAlphaPixelFill ? Paint.fills(fill as ILeafPaint[], this, canvas) : Paint.fill('#000000', this, canvas)\n if (this.__.__isCanvas) this.__drawAfterFill(canvas, options)\n if (stroke && !ignoreStroke) this.__.__isAlphaPixelStroke ? Paint.strokes(stroke as ILeafStrokePaint[], this, canvas) : Paint.stroke('#000000', this, canvas)\n }\n },\n\n __drawAfterFill(canvas: ILeaferCanvas, options: IRenderOptions): void {\n if (this.__.__clipAfterFill) {\n canvas.save()\n canvas.clipUI(this)\n this.__drawContent(canvas, options)\n canvas.restore()\n } else this.__drawContent(canvas, options)\n }\n\n}\n\n\nfunction drawFast(ui: IUI, canvas: ILeaferCanvas, options: IRenderOptions): void {\n const { fill, stroke, __drawAfterFill, __fillAfterStroke } = ui.__\n\n ui.__drawRenderPath(canvas)\n\n if (__fillAfterStroke) Paint.stroke(stroke as string, ui, canvas)\n\n if (fill) Paint.fill(fill as string, ui, canvas)\n if (__drawAfterFill) ui.__drawAfterFill(canvas, options)\n\n if (stroke && !__fillAfterStroke) Paint.stroke(stroke as string, ui, canvas)\n}","import { ILeaferCanvas, IRenderOptions } from '@leafer/interface'\n\nimport { IRectRenderModule } from '@leafer-ui/interface'\n\n\nexport const RectRender: IRectRenderModule = {\n\n __drawFast(canvas: ILeaferCanvas, options: IRenderOptions): void {\n\n let { x, y, width, height } = this.__layout.boxBounds\n const { fill, stroke, __drawAfterFill } = this.__\n\n if (fill) {\n canvas.fillStyle = fill\n canvas.fillRect(x, y, width, height)\n }\n\n if (__drawAfterFill) this.__drawAfterFill(canvas, options)\n\n if (stroke) {\n\n const { strokeAlign, __strokeWidth } = this.__\n if (!__strokeWidth) return\n\n canvas.setStroke(stroke, __strokeWidth, this.__)\n const half = __strokeWidth / 2\n\n switch (strokeAlign) {\n case 'center':\n canvas.strokeRect(0, 0, width, height)\n break\n case 'inside':\n width -= __strokeWidth, height -= __strokeWidth\n if (width < 0 || height < 0) {\n canvas.save()\n this.__clip(canvas, options)\n canvas.strokeRect(x + half, y + half, width, height)\n canvas.restore()\n } else canvas.strokeRect(x + half, y + half, width, height)\n break\n case 'outside':\n canvas.strokeRect(x - half, y - half, width + __strokeWidth, height + __strokeWidth)\n break\n }\n\n }\n\n }\n}\n","import { ILeaferCanvas, IPathDrawer, IPathCommandData, IHitType, INumber, IBoolean, IString, IPathString, IExportFileType, IPointData, ICursorType, IMaskType, IEraserType, IValue, IWindingRule, IPathCreator, IFourNumber, IBoundsData, IFlowType, IGap, IFlowWrap, IAxis, IConstraint, IAutoBoxData, IFlowBoxType, IPointGap, IFlowAlign, IFlowAxisAlign, IFindCondition, IAutoSize, IRangeSize, IAlign, IUnitPointData, IObject, IScaleData, IUnitData, IPathCommandObject, ITransition, IFilter, ILeaferImage } from '@leafer/interface'\nimport { Leaf, PathDrawer, surfaceType, dataType, positionType, boundsType, pathType, scaleType, rotationType, opacityType, visibleType, sortType, maskType, dataProcessor, registerUI, useModule, rewrite, rewriteAble, UICreator, PathCorner, hitType, strokeType, PathConvert, eraserType, cursorType, autoLayoutType, pen, naturalBoundsType, pathInputType, MathHelper, Plugin, DataHelper } from '@leafer/core'\n\nimport { IUI, IShadowEffect, IBlurEffect, IStrokeAlign, IStrokeJoin, IStrokeCap, IBlendMode, IDashPatternString, IShadowString, IGrayscaleEffect, IUIData, IGroup, IStrokeWidthString, ICornerRadiusString, IUIInputData, IExportOptions, IExportResult, IFill, IStroke, IArrowType, IFindUIMethod, ILeafer, IEditorConfig, IEditorConfigFunction, IEditToolFunction, IKeyframe, IAnimation, IAnimate, IStates, IStateName, IAnimateType, IStateStyle, IColorString } from '@leafer-ui/interface'\nimport { effectType, zoomLayerType } from '@leafer-ui/decorator'\n\nimport { UIData } from '@leafer-ui/data'\nimport { UIBounds, UIRender } from '@leafer-ui/display-module'\n\nimport { Export, Paint, PathArrow } from '@leafer-ui/external'\n\n\n@useModule(UIBounds)\n@useModule(UIRender)\n@rewriteAble()\nexport class UI extends Leaf implements IUI { // tip: rewrited Box\n\n @dataProcessor(UIData)\n declare public __: IUIData\n\n declare public proxyData?: IUIInputData // need rewrite getter\n declare public __proxyData?: IUIInputData\n\n public get app(): ILeafer { return this.leafer && this.leafer.app }\n\n declare public leafer?: ILeafer\n declare public parent?: IGroup\n\n @zoomLayerType()\n public zoomLayer: IGroup\n\n public get isFrame(): boolean { return false }\n\n declare public children?: IUI[]\n\n // ---\n\n // id\n @dataType('')\n public id?: IString\n\n @dataType('')\n public name?: IString\n\n @dataType('')\n public className?: IString\n\n\n // layer\n @surfaceType('pass-through')\n public blendMode?: IBlendMode\n\n @opacityType(1)\n public opacity?: INumber\n\n @visibleType(true)\n public visible?: IBoolean | 0\n\n\n @surfaceType(false)\n public locked?: IBoolean\n\n\n @surfaceType(false)\n public dim?: IBoolean | INumber // 是否弱化内容,可设置具体透明度\n\n @surfaceType(false)\n public dimskip?: IBoolean // 跳过弱化,突出显示内容,不受dim影响\n\n\n @sortType(0)\n public zIndex?: INumber\n\n\n @maskType(false)\n public mask?: IBoolean | IMaskType\n\n @eraserType(false)\n public eraser?: IBoolean | IEraserType\n\n\n // position\n @positionType(0, true)\n public x?: INumber\n\n @positionType(0, true)\n public y?: INumber\n\n // size\n @boundsType(100, true)\n public width?: INumber\n\n @boundsType(100, true)\n public height?: INumber\n\n // scale\n @scaleType(1, true)\n public scaleX?: INumber\n\n @scaleType(1, true)\n public scaleY?: INumber\n\n // rotate\n @rotationType(0, true)\n public rotation?: INumber\n\n // skew\n @rotationType(0, true)\n public skewX?: INumber\n\n @rotationType(0, true)\n public skewY?: INumber\n\n\n // offset\n @positionType(0, true)\n public offsetX?: INumber\n\n @positionType(0, true)\n public offsetY?: INumber\n\n // scroll\n @positionType(0, true)\n public scrollX?: INumber\n\n @positionType(0, true)\n public scrollY?: INumber\n\n\n // center\n @autoLayoutType()\n public origin?: IAlign | IUnitPointData\n\n @autoLayoutType()\n public around?: IAlign | IUnitPointData\n\n\n // image\n @dataType(false)\n public lazy?: IBoolean // load image / compute paint\n\n @naturalBoundsType(1)\n public pixelRatio?: INumber\n\n\n // path\n @pathInputType()\n public path?: IPathCommandData | IPathCommandObject[] | IPathString\n\n @pathType()\n public windingRule?: IWindingRule\n\n @pathType(true)\n public closed?: boolean\n\n\n // @leafer-in/flow rewrite\n public flow?: IFlowType\n\n @boundsType(0)\n public padding?: IFourNumber\n\n public gap?: IGap | IPointGap\n\n public flowAlign?: IFlowAlign | IFlowAxisAlign\n\n public flowWrap?: IFlowWrap\n\n\n public itemBox?: IFlowBoxType\n\n public inFlow?: IBoolean\n\n\n public autoWidth?: IAutoSize\n\n public autoHeight?: IAutoSize\n\n @boundsType(false)\n public lockRatio?: IBoolean\n\n public autoBox?: IAutoBoxData | IConstraint\n\n @boundsType()\n public widthRange?: IRangeSize\n\n @boundsType()\n public heightRange?: IRangeSize\n\n\n // drag\n @dataType(false)\n public draggable?: IBoolean | IAxis\n\n @dataType()\n public dragBounds?: IBoundsData | 'parent'\n\n\n @dataType(false)\n public editable?: IBoolean\n\n\n // hit\n @hitType(true)\n public hittable?: IBoolean\n\n @hitType('path')\n public hitFill?: IHitType\n\n @strokeType('path')\n public hitStroke?: IHitType\n\n @hitType(false)\n public hitBox?: IBoolean\n\n @hitType(true)\n public hitChildren?: IBoolean\n\n @hitType(true)\n public hitSelf?: IBoolean\n\n @hitType()\n public hitRadius?: INumber\n\n @cursorType('')\n public cursor?: ICursorType | ICursorType[]\n\n // ---\n\n\n // fill\n\n @surfaceType()\n public fill?: IFill\n\n // stroke\n\n @strokeType()\n public stroke?: IStroke\n\n @strokeType('inside')\n public strokeAlign?: IStrokeAlign\n\n @strokeType(1)\n public strokeWidth?: IFourNumber | IStrokeWidthString\n\n @strokeType(false)\n public strokeWidthFixed?: IBoolean\n\n @strokeType('none')\n public strokeCap?: IStrokeCap\n\n @strokeType('miter')\n public strokeJoin?: IStrokeJoin\n\n @strokeType()\n public dashPattern?: INumber[] | IDashPatternString\n\n @strokeType(0)\n public dashOffset?: INumber\n\n @strokeType(10)\n public miterLimit?: INumber\n\n\n // @leafer-in/arrow rewrite\n\n public startArrow?: IArrowType\n\n public endArrow?: IArrowType\n\n // corner\n\n @pathType(0)\n public cornerRadius?: IFourNumber | ICornerRadiusString\n\n @pathType()\n public cornerSmoothing?: INumber\n\n // effect\n\n @effectType()\n public shadow?: IShadowEffect | IShadowEffect[] | IShadowString\n\n @effectType()\n public innerShadow?: IShadowEffect | IShadowEffect[] | IShadowString\n\n @effectType()\n public blur?: INumber | IBlurEffect\n\n @effectType()\n public backgroundBlur?: INumber | IBlurEffect\n\n @effectType()\n public grayscale?: INumber | IGrayscaleEffect\n\n @effectType()\n public filter?: IFilter | IFilter[]\n\n\n // @leafer-in/animate rewrite\n\n public animation?: IAnimation | IAnimation[]\n\n public animationOut?: IAnimation | IAnimation[]\n\n\n public transition?: ITransition\n\n public transitionOut?: ITransition\n\n\n // @leafer-in/motion-path rewrite\n\n public motionPath?: boolean\n\n public motionPrecision?: INumber\n\n\n public motion?: INumber | IUnitData\n\n public motionRotation?: INumber | IBoolean\n\n\n // @leafer-in/state rewrite\n\n public states?: IStates\n\n public state?: IStateName\n\n\n public selected?: IBoolean\n\n public disabled?: IBoolean\n\n\n public normalStyle?: IStateStyle\n\n public hoverStyle?: IStateStyle\n\n public pressStyle?: IStateStyle\n\n public focusStyle?: IStateStyle\n\n public selectedStyle?: IStateStyle\n\n public disabledStyle?: IStateStyle\n\n\n public placeholderStyle?: IStateStyle\n\n @surfaceType()\n public placeholderColor?: IColorString\n\n @dataType(100)\n public placeholderDelay?: INumber\n\n\n public button?: IBoolean\n\n\n // @leafer-in/editor rewrite\n\n public editConfig: IEditorConfig\n\n public editOuter: string\n\n public editInner: string\n\n\n // 预留给用户使用的数据对象\n @dataType({})\n public data: IObject\n\n\n public set scale(value: INumber | IPointData) { MathHelper.assignScale(this as IScaleData, value) }\n public get scale(): INumber | IPointData { return this.__.scale }\n\n public useFastShadow?: boolean // 将忽略 stroke 产生的阴影,只对单个 fill 有效\n\n public __box?: IUI // 背景box, 一般用于文本背景框\n public __animate?: IAnimate\n\n public get pen(): IPathCreator {\n const { path } = this.__\n pen.set(this.path = path || [])\n if (!path) this.__drawPathByBox(pen)\n return pen\n }\n\n\n constructor(data?: IUIInputData) {\n super(data)\n }\n\n\n // data\n\n @rewrite(Leaf.prototype.reset)\n public reset(_data?: IUIInputData): void { }\n\n\n public set(data: IUIInputData, transition?: ITransition | 'temp'): void {\n if (data) {\n if (transition) {\n if (transition === 'temp') {\n this.lockNormalStyle = true\n Object.assign(this, data)\n this.lockNormalStyle = false\n } else this.animate(data, transition)\n } else Object.assign(this, data)\n }\n }\n\n public get(name?: string | string[] | IUIInputData): IUIInputData | IValue {\n return typeof name === 'string' ? this.__.__getInput(name) : this.__.__getInputData(name)\n }\n\n public createProxyData(): IUIInputData { return undefined }\n\n\n // hit rewrite\n\n public find(_condition: number | string | IFindCondition | IFindUIMethod, _options?: any): IUI[] { return Plugin.need('find') }\n\n public findTag(tag: string | string[]): IUI[] { return this.find({ tag }) }\n\n public findOne(_condition: number | string | IFindCondition | IFindUIMethod, _options?: any): IUI | undefined { return Plugin.need('find') }\n\n public findId(id: number | string): IUI | undefined { return this.findOne({ id }) }\n\n\n // path\n\n public getPath(curve?: boolean, pathForRender?: boolean): IPathCommandData {\n this.__layout.update()\n let path = pathForRender ? this.__.__pathForRender : this.__.path\n if (!path) pen.set(path = []), this.__drawPathByBox(pen)\n return curve ? PathConvert.toCanvasData(path, true) : path\n }\n\n public getPathString(curve?: boolean, pathForRender?: boolean, floatLength?: number): IPathString {\n return PathConvert.stringify(this.getPath(curve, pathForRender), floatLength)\n }\n\n\n public load(): void {\n this.__.__computePaint() // 手动加载图片\n }\n\n public __onUpdateSize(): void {\n if (this.__.__input) {\n const data = this.__;\n (data.lazy && !this.__inLazyBounds && !Export.running) ? data.__needComputePaint = true : data.__computePaint()\n }\n }\n\n public __updateRenderPath(): void {\n if (this.__.path) {\n const data = this.__\n data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path\n if (data.__useArrow) PathArrow.addArrows(this, !data.cornerRadius)\n }\n }\n\n public __drawRenderPath(canvas: ILeaferCanvas): void {\n canvas.beginPath()\n this.__drawPathByData(canvas, this.__.__pathForRender)\n }\n\n public __drawPath(canvas: ILeaferCanvas): void {\n canvas.beginPath()\n this.__drawPathByData(canvas, this.__.path)\n }\n\n public __drawPathByData(drawer: IPathDrawer, data: IPathCommandData): void {\n data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer)\n }\n\n public __drawPathByBox(drawer: IPathDrawer): void {\n const { x, y, width, height } = this.__layout.boxBounds\n if (this.__.cornerRadius) {\n const { cornerRadius } = this.__\n drawer.roundRect(x, y, width, height, typeof cornerRadius === 'number' ? [cornerRadius] : cornerRadius) // 修复微信浏览器bug, 后续需进一步优化\n } else drawer.rect(x, y, width, height)\n }\n\n public drawImagePlaceholder(canvas: ILeaferCanvas, _image?: ILeaferImage): void {\n Paint.fill(this.__.placeholderColor, this, canvas) // 图片占位符\n }\n\n // @leafer-in/animate rewrite\n\n public animate(_keyframe?: IUIInputData | IKeyframe[] | IAnimation | IAnimation[], _options?: ITransition, _type?: IAnimateType, _isTemp?: boolean): IAnimate {\n return Plugin.need('animate')\n }\n\n public killAnimate(_type?: IAnimateType, _nextStyle?: IUIInputData): void { }\n\n\n // create\n\n // @leafer-in/export will rewrite\n public export(_filename: IExportFileType | string, _options?: IExportOptions | number | boolean): Promise<IExportResult> {\n return Plugin.need('export')\n }\n\n public syncExport(_filename: IExportFileType | string, _options?: IExportOptions | number | boolean): IExportResult {\n return Plugin.need('export')\n }\n\n public clone(data?: IUIInputData): IUI {\n const json = DataHelper.clone(this.toJSON())\n if (data) Object.assign(json, data)\n return UI.one(json)\n }\n\n static one(data: IUIInputData, x?: number, y?: number, width?: number, height?: number): IUI {\n return UICreator.get(data.tag || this.prototype.__tag, data, x, y, width, height) as IUI\n }\n\n static registerUI(): void {\n registerUI()(this)\n }\n\n static registerData(data: IUIData): void {\n dataProcessor(data)(this.prototype)\n }\n\n\n // @leafer-in/editor rewrite\n\n static setEditConfig(_config: IEditorConfig | IEditorConfigFunction): void { }\n\n static setEditOuter(_toolName: string | IEditToolFunction): void { }\n\n static setEditInner(_editorName: string | IEditToolFunction): void { }\n\n\n public destroy(): void {\n this.fill = this.stroke = null\n if (this.__animate) this.killAnimate()\n super.destroy()\n }\n\n}\n","import { IJSONOptions, IPickOptions, IPickResult, IPointData, INumber, ITransition } from '@leafer/interface'\nimport { Branch, useModule, dataProcessor, registerUI, boundsType } from '@leafer/core'\n\nimport { IGroup, IGroupData, IGroupInputData, IUI, IUIInputData, IUIJSONData, IFindCondition, IFindUIMethod } from '@leafer-ui/interface'\nimport { GroupData } from '@leafer-ui/data'\n\nimport { UI } from './UI'\n\n\n@useModule(Branch)\n@registerUI()\nexport class Group extends UI implements IGroup { // tip: rewrited Box\n\n public get __tag() { return 'Group' }\n\n public get isBranch(): boolean { return true }\n\n @dataProcessor(GroupData)\n declare public __: IGroupData\n\n // size\n @boundsType(0)\n declare public width?: INumber\n\n @boundsType(0)\n declare public height?: INumber\n\n declare public children: IUI[]\n\n constructor(data?: IGroupInputData) {\n super(data)\n }\n\n public reset(data?: IGroupInputData): void {\n this.__setBranch()\n super.reset(data)\n }\n\n public __setBranch(): void {\n if (!this.children) this.children = []\n }\n\n\n // data\n\n public set(data: IUIInputData, transition?: ITransition | 'temp'): void {\n if (data) {\n if (data.children) {\n const { children } = data\n\n delete data.children\n this.children ? this.clear() : this.__setBranch()\n\n super.set(data, transition)\n\n children.forEach(child => this.add(child))\n data.children = children\n\n } else super.set(data, transition)\n }\n }\n\n public toJSON(options?: IJSONOptions): IUIJSONData {\n const data = super.toJSON(options)\n data.children = this.children.map(child => child.toJSON(options))\n return data\n }\n\n\n // hit rewrite\n\n public pick(_hitPoint: IPointData, _options?: IPickOptions): IPickResult { return undefined }\n\n\n // add\n\n public addAt(child: IUI | IUI[] | IUIInputData | IUIInputData[], index: number): void {\n this.add(child, index)\n }\n\n public addAfter(child: IUI | IUI[] | IUIInputData | IUIInputData[], after: IUI): void {\n this.add(child, this.children.indexOf(after) + 1)\n }\n\n public addBefore(child: IUI | IUI[] | IUIInputData | IUIInputData[], before: IUI): void {\n this.add(child, this.children.indexOf(before))\n }\n\n // Branch rewrite\n\n public add(_child: IUI | IUI[] | IUIInputData | IUIInputData[], _index?: number): void { }\n\n public addMany(..._children: IUI[] | IUIInputData[]): void { }\n\n public remove(_child?: IUI | number | string | IFindCondition | IFindUIMethod, _destroy?: boolean): void { }\n\n public removeAll(_destroy?: boolean): void { }\n\n public clear(): void { }\n\n}","import { ILeaferCanvas, IRenderer, ILayouter, ISelector, IWatcher, IInteraction, ILeaferConfig, ICanvasManager, IHitCanvasManager, IAutoBounds, IScreenSizeData, IResizeEvent, IEventListenerId, ITimer, IValue, IObject, IControl, IPointData, ILeaferType, ICursorType, IBoundsData, INumber, IZoomType, IFourNumber, IBounds, IClientPointData, ITransition } from '@leafer/interface'\nimport { AutoBounds, LayoutEvent, ResizeEvent, LeaferEvent, CanvasManager, ImageManager, Resource, DataHelper, Creator, Run, Debug, RenderEvent, registerUI, boundsType, canvasSizeAttrs, dataProcessor, WaitHelper, WatchEvent, Bounds, LeafList, Plugin, getBoundsData } from '@leafer/core'\n\nimport { ILeaferInputData, ILeaferData, IFunction, IUIInputData, ILeafer, IApp, IEditorBase } from '@leafer-ui/interface'\nimport { LeaferData } from '@leafer-ui/data'\n\nimport { Group } from './Group'\n\n\nconst debug = Debug.get('Leafer')\n\n@registerUI()\nexport class Leafer extends Group implements ILeafer {\n\n static list = new LeafList() // 所有leafer实例\n\n\n public get __tag() { return 'Leafer' }\n\n @dataProcessor(LeaferData)\n declare public __: ILeaferData\n\n @boundsType()\n declare public pixelRatio?: INumber\n\n public get isApp(): boolean { return false }\n public get app(): ILeafer { return this.parent || this }\n\n public get isLeafer(): boolean { return true }\n\n public parentApp?: IApp\n declare public parent?: IApp\n\n public running: boolean\n public created: boolean\n public ready: boolean\n public viewReady: boolean\n public viewCompleted: boolean\n public get imageReady(): boolean { return this.viewReady && Resource.isComplete }\n public get layoutLocked() { return !this.layouter.running }\n\n public transforming: boolean\n\n public view: unknown\n\n // manager\n public canvas: ILeaferCanvas\n public renderer: IRenderer\n\n public watcher: IWatcher\n public layouter: ILayouter\n\n public selector?: ISelector\n public interaction?: IInteraction\n\n public canvasManager: ICanvasManager\n public hitCanvasManager?: IHitCanvasManager\n\n // plugin\n public editor: IEditorBase\n\n public userConfig: ILeaferConfig\n public config: ILeaferConfig = {\n start: true,\n hittable: true,\n smooth: true,\n lazySpeard: 100,\n // pixelSnap: false // 是否对齐像素,避免图片存在浮点坐标导致模糊\n }\n\n public autoLayout?: IAutoBounds\n public lazyBounds: IBounds\n\n public get FPS(): number { return this.renderer ? this.renderer.FPS : 60 }\n public get cursorPoint(): IPointData { return (this.interaction && this.interaction.hoverData) || { x: this.width / 2, y: this.height / 2 } }\n public get clientBounds(): IBoundsData { return (this.canvas && this.canvas.getClientBounds(true)) || getBoundsData() }\n public leafs = 0\n\n public __eventIds: IEventListenerId[] = []\n protected __startTimer: ITimer\n protected __controllers: IControl[] = []\n\n protected __initWait: IFunction[] // assign in waitInit()\n protected __readyWait: IFunction[] = []\n protected __viewReadyWait: IFunction[] = []\n protected __viewCompletedWait: IFunction[] = []\n public __nextRenderWait: IFunction[] = []\n\n constructor(userConfig?: ILeaferConfig, data?: ILeaferInputData) {\n super(data)\n this.userConfig = userConfig\n if (userConfig && (userConfig.view || userConfig.width)) this.init(userConfig)\n Leafer.list.add(this)\n }\n\n public init(userConfig?: ILeaferConfig, parentApp?: IApp): void {\n if (this.canvas) return\n\n let start: boolean\n const { config } = this\n\n this.__setLeafer(this)\n\n if (parentApp) {\n this.parentApp = parentApp\n this.__bindApp(parentApp)\n start = parentApp.running\n }\n\n if (userConfig) {\n this.parent = parentApp\n this.initType(userConfig.type) // LeaferType\n this.parent = undefined\n DataHelper.assign(config, userConfig)\n }\n\n // render / layout\n const canvas = this.canvas = Creator.canvas(config)\n this.__controllers.push(\n this.renderer = Creator.renderer(this, canvas, config),\n this.watcher = Creator.watcher(this, config),\n this.layouter = Creator.layouter(this, config)\n )\n\n if (this.isApp) this.__setApp()\n this.__checkAutoLayout(config, parentApp)\n this.view = canvas.view\n\n // interaction / manager\n if (!parentApp) {\n this.selector = Creator.selector(this)\n this.interaction = Creator.interaction(this, canvas, this.selector, config)\n\n if (this.interaction) {\n this.__controllers.unshift(this.interaction)\n this.hitCanvasManager = Creator.hitCanvasManager()\n }\n\n this.canvasManager = new CanvasManager()\n\n start = config.start\n }\n\n this.hittable = config.hittable\n this.fill = config.fill\n this.canvasManager.add(canvas)\n\n\n this.__listenEvents()\n\n if (start) this.__startTimer = setTimeout(this.start.bind(this))\n\n WaitHelper.run(this.__initWait)\n this.onInit() // can rewrite init event\n }\n\n public onInit(): void { }\n\n public initType(_type: ILeaferType): void { } // rewrite in @leafer-ui/viewport\n\n public set(data: IUIInputData, transition?: ITransition | 'temp'): void {\n this.waitInit(() => { super.set(data, transition) })\n }\n\n public start(): void {\n clearTimeout(this.__startTimer)\n if (!this.running && this.canvas) {\n this.running = true\n this.ready ? this.emitLeafer(LeaferEvent.RESTART) : this.emitLeafer(LeaferEvent.START)\n this.__controllers.forEach(item => item.start())\n if (!this.isApp) this.renderer.render()\n }\n }\n\n public stop(): void {\n clearTimeout(this.__startTimer)\n if (this.running && this.canvas) {\n this.__controllers.forEach(item => item.stop())\n this.running = false\n this.emitLeafer(LeaferEvent.STOP)\n }\n }\n\n public unlockLayout(): void {\n this.layouter.start()\n this.updateLayout()\n }\n\n public lockLayout(): void {\n this.updateLayout()\n this.layouter.stop()\n }\n\n public resize(size: IScreenSizeData): void {\n const data = DataHelper.copyAttrs({}, size, canvasSizeAttrs)\n Object.keys(data).forEach(key => (this as any)[key] = data[key])\n }\n\n override forceRender(bounds?: IBoundsData, sync?: boolean): void {\n const { renderer } = this\n if (renderer) {\n renderer.addBlock(bounds ? new Bounds(bounds) : this.canvas.bounds)\n if (this.viewReady) sync ? renderer.render() : renderer.update()\n }\n }\n\n public requestRender(change = false): void {\n if (this.renderer) this.renderer.update(change)\n }\n\n public updateCursor(cursor?: ICursorType): void {\n const i = this.interaction\n if (i) cursor ? i.setCursor(cursor) : i.updateCursor()\n }\n\n public updateLazyBounds(): void {\n this.lazyBounds = this.canvas.bounds.clone().spread(this.config.lazySpeard)\n }\n\n protected __doResize(size: IScreenSizeData): void {\n const { canvas } = this\n if (!canvas || canvas.isSameSize(size)) return\n const old = DataHelper.copyAttrs({}, this.canvas, canvasSizeAttrs) as IScreenSizeData\n canvas.resize(size)\n this.updateLazyBounds()\n this.__onResize(new ResizeEvent(size, old))\n }\n\n protected __onResize(event: IResizeEvent): void {\n this.emitEvent(event)\n DataHelper.copyAttrs(this.__, event, canvasSizeAttrs)\n setTimeout(() => { if (this.canvasManager) this.canvasManager.clearRecycled() }, 0)\n }\n\n protected __setApp(): void { }\n\n protected __bindApp(app: IApp): void {\n this.selector = app.selector\n this.interaction = app.interaction\n\n this.canvasManager = app.canvasManager\n this.hitCanvasManager = app.hitCanvasManager\n }\n\n public __setLeafer(leafer: ILeafer): void {\n this.leafer = leafer\n this.__level = 1\n }\n\n protected __checkAutoLayout(config: ILeaferConfig, parentApp?: IApp): void {\n if (!parentApp) {\n if (!config.width || !config.height) this.autoLayout = new AutoBounds(config)\n this.canvas.startAutoLayout(this.autoLayout, this.__onResize.bind(this))\n }\n }\n\n override __setAttr(attrName: string, newValue: IValue): boolean {\n if (this.canvas) {\n if (canvasSizeAttrs.includes(attrName)) {\n // if (!newValue) debug.warn(attrName + ' is 0')\n this.__changeCanvasSize(attrName, newValue as number)\n } else if (attrName === 'fill') {\n this.__changeFill(newValue as string)\n } else if (attrName === 'hittable') {\n if (!this.parent) this.canvas.hittable = newValue as boolean\n } else if (attrName === 'zIndex') {\n this.canvas.zIndex = newValue as any\n setTimeout(() => this.parent && this.parent.__updateSortChildren())\n }\n }\n return super.__setAttr(attrName, newValue)\n }\n\n override __getAttr(attrName: string): IValue {\n if (this.canvas && canvasSizeAttrs.includes(attrName)) return this.canvas[attrName]\n return super.__getAttr(attrName)\n }\n\n protected __changeCanvasSize(attrName: string, newValue: number): void {\n const data = DataHelper.copyAttrs({}, this.canvas, canvasSizeAttrs)\n data[attrName] = (this.config as IObject)[attrName] = newValue\n if (newValue) this.canvas.stopAutoLayout()\n this.__doResize(data as IScreenSizeData)\n }\n\n protected __changeFill(newValue: string): void {\n this.config.fill = newValue as string\n if (this.canvas.allowBackgroundColor) this.canvas.backgroundColor = newValue as string\n else this.forceRender()\n }\n\n protected __onCreated(): void {\n this.created = true\n }\n\n protected __onReady(): void {\n this.ready = true\n this.emitLeafer(LeaferEvent.BEFORE_READY)\n this.emitLeafer(LeaferEvent.READY)\n this.emitLeafer(LeaferEvent.AFTER_READY)\n WaitHelper.run(this.__readyWait)\n }\n\n protected __onViewReady(): void {\n if (this.viewReady) return\n this.viewReady = true\n this.emitLeafer(LeaferEvent.VIEW_READY)\n WaitHelper.run(this.__viewReadyWait)\n }\n\n protected __onLayoutEnd(): void {\n const { grow, width: fixedWidth, height: fixedHeight } = this.config\n if (grow) {\n let { width, height, pixelRatio } = this\n const bounds = grow === 'box' ? this.worldBoxBounds : this.__world\n if (!fixedWidth) width = Math.max(1, bounds.x + bounds.width)\n if (!fixedHeight) height = Math.max(1, bounds.y + bounds.height)\n this.__doResize({ width, height, pixelRatio })\n }\n\n if (!this.ready) this.__onReady()\n }\n\n protected __onNextRender(): void {\n if (this.viewReady) {\n WaitHelper.run(this.__nextRenderWait)\n\n const { imageReady } = this\n if (imageReady && !this.viewCompleted) this.__checkViewCompleted()\n if (!imageReady) {\n this.viewCompleted = false\n this.requestRender()\n }\n } else this.requestRender() // fix: 小程序等需要异步获取 view 的情况\n }\n\n protected __checkViewCompleted(emit: boolean = true): void {\n this.nextRender(() => {\n if (this.imageReady) {\n if (emit) this.emitLeafer(LeaferEvent.VIEW_COMPLETED)\n WaitHelper.run(this.__viewCompletedWait)\n this.viewCompleted = true\n }\n })\n }\n\n protected __onWatchData(): void {\n if (this.watcher.childrenChanged && this.interaction) {\n this.nextRender(() => this.interaction.updateCursor())\n }\n }\n\n public waitInit(item: IFunction, bind?: IObject): void {\n if (bind) item = item.bind(bind)\n if (!this.__initWait) this.__initWait = [] // set() use\n this.canvas ? item() : this.__initWait.push(item)\n }\n\n public waitReady(item: IFunction, bind?: IObject): void {\n if (bind) item = item.bind(bind)\n this.ready ? item() : this.__readyWait.push(item)\n }\n\n public waitViewReady(item: IFunction, bind?: IObject): void {\n if (bind) item = item.bind(bind)\n this.viewReady ? item() : this.__viewReadyWait.push(item)\n }\n\n public waitViewCompleted(item: IFunction, bind?: IObject): void {\n if (bind) item = item.bind(bind)\n this.__viewCompletedWait.push(item)\n if (this.viewCompleted) this.__checkViewCompleted(false)\n else if (!this.running) this.start()\n }\n\n public nextRender(item: IFunction, bind?: IObject, off?: 'off'): void {\n if (bind) item = item.bind(bind)\n const list = this.__nextRenderWait\n if (off) {\n for (let i = 0; i < list.length; i++) {\n if (list[i] === item) { list.splice(i, 1); break }\n }\n } else list.push(item)\n this.requestRender()\n }\n\n // need view plugin\n public zoom(_zoomType: IZoomType, _padding?: IFourNumber, _fixedScale?: boolean, _transition?: ITransition): IBoundsData {\n return Plugin.need('view')\n }\n\n\n // interaction window rewrite\n public getValidMove(moveX: number, moveY: number): IPointData { return { x: moveX, y: moveY } }\n public getValidScale(changeScale: number): number { return changeScale }\n\n\n public getWorldPointByClient(clientPoint: IClientPointData, updateClient?: boolean): IPointData {\n return this.interaction && this.interaction.getLocal(clientPoint, updateClient)\n }\n\n public getPagePointByClient(clientPoint: IClientPointData, updateClient?: boolean): IPointData {\n return this.getPagePoint(this.getWorldPointByClient(clientPoint, updateClient))\n }\n\n public getClientPointByWorld(worldPoint: IPointData): IPointData {\n const { x, y } = this.clientBounds\n return { x: x + worldPoint.x, y: y + worldPoint.y }\n }\n\n public updateClientBounds(): void {\n this.canvas && this.canvas.updateClientBounds()\n }\n\n // miniapp rewrite\n public receiveEvent(_event: any): void { }\n\n protected emitLeafer(type: string): void {\n this.emitEvent(new LeaferEvent(type, this))\n }\n\n protected __listenEvents(): void {\n const runId = Run.start('FirstCreate ' + this.innerName)\n this.once([\n [LeaferEvent.START, () => Run.end(runId)],\n [LayoutEvent.START, this.updateLazyBounds, this],\n [RenderEvent.START, this.__onCreated, this],\n [RenderEvent.END, this.__onViewReady, this]\n ])\n this.__eventIds.push(\n this.on_([\n [WatchEvent.DATA, this.__onWatchData, this],\n [LayoutEvent.END, this.__onLayoutEnd, this],\n [RenderEvent.NEXT, this.__onNextRender, this]\n ])\n )\n }\n\n protected __removeListenEvents(): void {\n this.off_(this.__eventIds)\n }\n\n override destroy(sync?: boolean): void {\n const doDestory = () => {\n if (!this.destroyed) {\n Leafer.list.remove(this)\n try {\n this.stop()\n this.emitEvent(new LeaferEvent(LeaferEvent.END, this))\n this.__removeListenEvents()\n\n this.__controllers.forEach(item => !(this.parent && item === this.interaction) && item.destroy())\n this.__controllers.length = 0\n\n if (!this.parent) {\n if (this.selector) this.selector.destroy()\n if (this.hitCanvasManager) this.hitCanvasManager.destroy()\n this.canvasManager.destroy()\n }\n\n this.canvas.destroy()\n\n this.config.view = this.view = this.parentApp = null\n if (this.userConfig) this.userConfig.view = null\n\n super.destroy()\n\n setTimeout(() => { ImageManager.clearRecycled() }, 100)\n } catch (e) {\n debug.error(e)\n }\n }\n }\n sync ? doDestory() : setTimeout(doDestory)\n }\n}\n","import { dataProcessor, registerUI, rewriteAble, useModule } from '@leafer/core'\n\nimport { IRect, IRectInputData, IRectData } from '@leafer-ui/interface'\nimport { RectData } from '@leafer-ui/data'\nimport { RectRender } from '@leafer-ui/display-module'\n\nimport { UI } from './UI'\n\n\n@useModule(RectRender)\n@rewriteAble()\n@registerUI()\nexport class Rect extends UI implements IRect { // tip: rewrited Box\n\n public get __tag() { return 'Rect' }\n\n @dataProcessor(RectData)\n declare public __: IRectData\n\n constructor(data?: IRectInputData) {\n super(data)\n }\n\n}","import { ILeaferCanvas, IRenderOptions, IBoundsData, IBoolean, INumber } from '@leafer/interface'\nimport { rewrite, rewriteAble, registerUI, BoundsHelper, dataProcessor, affectRenderBoundsType, dataType, boundsType, DataHelper } from '@leafer/core'\n\nimport { IBox, IBoxData, IBoxInputData, IOverflow } from '@leafer-ui/interface'\nimport { BoxData } from '@leafer-ui/data'\n\nimport { Group } from './Group'\nimport { Rect } from './Rect'\n\n\nconst { copy, add, includes } = BoundsHelper\nconst rect = Rect.prototype, group = Group.prototype\nconst childrenRenderBounds = {} as IBoundsData\n\n@rewriteAble()\n@registerUI()\nexport class Box extends Group implements IBox {\n\n public get __tag() { return 'Box' }\n\n public get isBranchLeaf(): boolean { return true }\n\n @dataProcessor(BoxData)\n declare public __: IBoxData\n\n // size\n @boundsType(100)\n declare public width?: INumber\n\n @boundsType(100)\n declare public height?: INumber\n\n @dataType(false)\n public resizeChildren?: IBoolean\n\n // @leafer-in/editor rewrite\n public textBox?: IBoolean\n\n @affectRenderBoundsType('show')\n declare public overflow?: IOverflow\n\n public isOverflow: boolean\n\n constructor(data?: IBoxInputData) {\n super(data)\n this.__layout.renderChanged || this.__layout.renderChange()\n }\n\n @rewrite(rect.__updateStrokeSpread)\n public __updateStrokeSpread(): number { return 0 }\n\n @rewrite(rect.__updateRenderSpread)\n public __updateRectRenderSpread(): number { return 0 }\n\n public __updateRenderSpread(): number { return this.__updateRectRenderSpread() || -1 }\n\n\n @rewrite(rect.__updateBoxBounds)\n public __updateRectBoxBounds(): void { }\n\n\n // @leafer-in/flow will rewrite\n public __updateBoxBounds(_secondLayout?: boolean): void {\n const data = this.__\n\n if (this.children.length && !this.pathInputed) {\n\n if (data.__autoSide) {\n\n if (data.__hasSurface) this.__extraUpdate() // Box自身存在样式,需要额外更新\n\n super.__updateBoxBounds()\n\n const { boxBounds } = this.__layout\n\n if (!data.__autoSize) {\n if (data.__autoWidth) {\n boxBounds.width += boxBounds.x, boxBounds.x = 0\n boxBounds.height = data.height, boxBounds.y = 0\n } else {\n boxBounds.height += boxBounds.y, boxBounds.y = 0\n boxBounds.width = data.width, boxBounds.x = 0\n }\n }\n\n this.__updateNaturalSize()\n\n } else this.__updateRectBoxBounds()\n\n } else this.__updateRectBoxBounds()\n }\n\n @rewrite(rect.__updateStrokeBounds)\n public __updateStrokeBounds(): void { }\n\n public __updateRenderBounds(): void {\n let isOverflow: boolean\n const { renderBounds } = this.__layout\n\n if (this.children.length) {\n super.__updateRenderBounds()\n copy(childrenRenderBounds, renderBounds)\n this.__updateRectRenderBounds()\n\n isOverflow = !includes(renderBounds, childrenRenderBounds)\n if (isOverflow && this.__.overflow !== 'hide') add(renderBounds, childrenRenderBounds)\n } else this.__updateRectRenderBounds()\n\n DataHelper.stintSet(this, 'isOverflow', isOverflow)\n }\n\n @rewrite(rect.__updateRenderBounds)\n public __updateRectRenderBounds(): void { }\n\n @rewrite(rect.__updateChange)\n public __updateRectChange(): void { }\n\n public __updateChange(): void {\n super.__updateChange()\n this.__updateRectChange()\n }\n\n\n @rewrite(rect.__render)\n public __renderRect(_canvas: ILeaferCanvas, _options: IRenderOptions): void { }\n\n @rewrite(group.__render)\n public __renderGroup(_canvas: ILeaferCanvas, _options: IRenderOptions): void { }\n\n\n public __render(canvas: ILeaferCanvas, options: IRenderOptions): void {\n if (this.__.__drawAfterFill) {\n this.__renderRect(canvas, options)\n } else {\n this.__renderRect(canvas, options)\n if (this.children.length) this.__renderGroup(canvas, options)\n }\n }\n\n // in __drawAfterFill()\n public __drawContent(canvas: ILeaferCanvas, options: IRenderOptions): void {\n this.__renderGroup(canvas, options)\n\n if (this.__.__hasStroke) { // 还原绘制路径\n canvas.setWorld(this.__nowWorld)\n this.__drawRenderPath(canvas)\n }\n }\n\n}\n","import { dataProcessor, registerUI, affectRenderBoundsType, surfaceType } from '@leafer/core'\n\nimport { IFrame, IFrameData, IFrameInputData, IFill, IOverflow } from '@leafer-ui/interface'\nimport { FrameData } from '@leafer-ui/data'\n\nimport { Box } from './Box'\n\n\n@registerUI()\nexport class Frame extends Box implements IFrame {\n\n public get __tag() { return 'Frame' }\n\n public get isFrame(): boolean { return true }\n\n @dataProcessor(FrameData)\n declare public __: IFrameData\n\n @surfaceType('#FFFFFF')\n declare public fill?: IFill\n\n @affectRenderBoundsType('hide')\n declare public overflow?: IOverflow\n\n constructor(data?: IFrameInputData) {\n super(data)\n }\n}\n","import { INumber } from '@leafer/interface'\nimport { PathCommandDataHelper, Platform, dataProcessor, pathType, registerUI } from '@leafer/core'\n\nimport { IEllipse, IEllipseInputData, IEllipseData } from '@leafer-ui/interface'\nimport { EllipseData } from '@leafer-ui/data'\n\nimport { UI } from './UI'\n\n\nconst { moveTo, closePath, ellipse } = PathCommandDataHelper\n\n@registerUI()\nexport class Ellipse extends UI implements IEllipse {\n\n public get __tag() { return 'Ellipse' }\n\n @dataProcessor(EllipseData)\n declare public __: IEllipseData\n\n @pathType(0)\n public innerRadius?: INumber\n\n @pathType(0)\n public startAngle?: INumber\n\n @pathType(0)\n public endAngle?: INumber\n\n constructor(data?: IEllipseInputData) {\n super(data)\n }\n\n public __updatePath(): void {\n\n const { width, height, innerRadius, startAngle, endAngle } = this.__\n const rx = width / 2, ry = height / 2\n\n const path: number[] = this.__.path = []\n\n if (innerRadius) {\n\n if (startAngle || endAngle) {\n if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false)\n ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true)\n if (innerRadius < 1) closePath(path)\n } else {\n if (innerRadius < 1) {\n ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius)\n moveTo(path, width, ry)\n }\n ellipse(path, rx, ry, rx, ry, 0, 360, 0, true)\n }\n\n // fix node\n if (Platform.ellipseToCurve) this.__.path = this.getPath(true)\n\n } else {\n\n if (startAngle || endAngle) {\n moveTo(path, rx, ry)\n ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle, false)\n closePath(path)\n } else {\n ellipse(path, rx, ry, rx, ry)\n }\n\n }\n\n }\n\n}","import { IPointData, INumber } from '@leafer/interface'\nimport { PathBounds, PathCommandDataHelper, PointHelper, boundsType, pathType, affectStrokeBoundsType, dataProcessor, registerUI, getPointData } from '@leafer/core'\n\nimport { ILine, ILineData, ILineInputData, IStrokeAlign } from '@leafer-ui/interface'\nimport { LineData } from '@leafer-ui/data'\n\nimport { UI } from './UI'\nimport { PathArrow } from '@leafer-ui/external'\n\n\nconst { moveTo, lineTo, drawPoints } = PathCommandDataHelper\nconst { rotate, getAngle, getDistance, defaultPoint } = PointHelper\nconst { toBounds } = PathBounds\n\n\n@registerUI()\nexport class Line extends UI implements ILine { // tip: rewrited Polygon\n\n public get __tag() { return 'Line' }\n\n @dataProcessor(LineData)\n declare public __: ILineData\n\n @affectStrokeBoundsType('center')\n declare public strokeAlign?: IStrokeAlign\n\n @boundsType(0)\n declare public height?: INumber\n\n @pathType()\n public points?: number[] | IPointData[]\n\n @pathType(0)\n public curve?: boolean | number\n\n @pathType(false)\n declare public closed?: boolean\n\n public get toPoint(): IPointData {\n const { width, rotation } = this.__\n const to: IPointData = getPointData()\n\n if (width) to.x = width\n if (rotation) rotate(to, rotation)\n\n return to\n }\n\n public set toPoint(value: IPointData) {\n this.width = getDistance(defaultPoint, value)\n this.rotation = getAngle(defaultPoint, value)\n if (this.height) this.height = 0\n }\n\n\n constructor(data?: ILineInputData) {\n super(data)\n }\n\n public __updatePath(): void {\n\n const data = this.__\n const path: number[] = data.path = []\n\n if (data.points) {\n\n drawPoints(path, data.points, false, data.closed)\n\n } else {\n\n moveTo(path, 0, 0)\n lineTo(path, this.width, 0)\n }\n\n }\n\n public __updateRenderPath(): void {\n const data = this.__\n if (!this.pathInputed && data.points && data.curve) {\n drawPoints(data.__pathForRender = [], data.points, data.curve, data.closed)\n if (data.__useArrow) PathArrow.addArrows(this, false)\n } else super.__updateRenderPath()\n }\n\n public __updateBoxBounds(): void {\n if (this.points) {\n toBounds(this.__.__pathForRender, this.__layout.boxBounds)\n } else super.__updateBoxBounds()\n }\n\n}","import { INumber, IPointData } from '@leafer/interface'\nimport { PathCommandDataHelper, dataProcessor, pathType, registerUI, rewrite, rewriteAble } from '@leafer/core'\n\nimport { IPolygon, IPolygonData, IPolygonInputData } from '@leafer-ui/interface'\nimport { PolygonData } from '@leafer-ui/data'\n\nimport { UI } from './UI'\nimport { Line } from './Line'\n\n\nconst { sin, cos, PI } = Math\nconst { moveTo, lineTo, closePath, drawPoints } = PathCommandDataHelper\nconst line = Line.prototype\n\n@rewriteAble()\n@registerUI()\nexport class Polygon extends UI implements IPolygon {\n\n public get __tag() { return 'Polygon' }\n\n @dataProcessor(PolygonData)\n declare public __: IPolygonData\n\n @pathType(3)\n public sides?: INumber\n\n @pathType()\n public points?: number[] | IPointData[]\n\n @pathType(0)\n public curve?: boolean | number\n\n constructor(data?: IPolygonInputData) {\n super(data)\n }\n\n public __updatePath(): void {\n\n const path: number[] = this.__.path = []\n\n if (this.__.points) {\n\n drawPoints(path, this.__.points, false, true)\n\n } else {\n\n const { width, height, sides } = this.__\n const rx = width / 2, ry = height / 2\n\n moveTo(path, rx, 0)\n\n for (let i = 1; i < sides; i++) {\n lineTo(path, rx + rx * sin((i * 2 * PI) / sides), ry - ry * cos((i * 2 * PI) / sides))\n }\n\n }\n\n closePath(path)\n }\n\n @rewrite(line.__updateRenderPath)\n public __updateRenderPath(): void { }\n\n @rewrite(line.__updateBoxBounds)\n public __updateBoxBounds(): void { }\n\n}","import { INumber } from '@leafer/interface'\nimport { PathCommandDataHelper, dataProcessor, pathType, registerUI } from '@leafer/core'\n\nimport { IStar, IStarData, IStarInputData } from '@leafer-ui/interface'\nimport { StarData } from '@leafer-ui/data'\n\nimport { UI } from './UI'\n\n\nconst { sin, cos, PI } = Math\nconst { moveTo, lineTo, closePath } = PathCommandDataHelper\n\n\n@registerUI()\nexport class Star extends UI implements IStar {\n\n public get __tag() { return 'Star' }\n\n @dataProcessor(StarData)\n declare public __: IStarData\n\n @pathType(5)\n public corners?: INumber\n\n @pathType(0.382)\n public innerRadius?: INumber\n\n constructor(data?: IStarInputData) {\n super(data)\n }\n\n public __updatePath() {\n\n const { width, height, corners, innerRadius } = this.__\n const rx = width / 2, ry = height / 2\n\n const path: number[] = this.__.path = []\n moveTo(path, rx, 0)\n\n for (let i = 1; i < corners * 2; i++) {\n lineTo(path, rx + (i % 2 === 0 ? rx : rx * innerRadius) * sin((i * PI) / corners), ry - (i % 2 === 0 ? ry : ry * innerRadius) * cos((i * PI) / corners))\n }\n\n closePath(path)\n\n }\n\n}","import { ILeaferImage, IString } from '@leafer/interface'\nimport { boundsType, dataProcessor, registerUI } from '@leafer/core'\n\nimport { IImage, IImageInputData, IImageData } from '@leafer-ui/interface'\nimport { ImageData } from '@leafer-ui/data'\n\nimport { Rect } from './Rect'\n\n\n@registerUI()\nexport class Image extends Rect implements IImage {\n\n public get __tag() { return 'Image' }\n\n @dataProcessor(ImageData)\n declare public __: IImageData\n\n @boundsType('')\n public url: IString\n\n public get ready(): boolean { const { image } = this; return image && image.ready }\n\n public get image(): ILeaferImage { const { fill } = this.__; return fill instanceof Array && fill[0].image }\n\n constructor(data?: IImageInputData) {\n super(data)\n }\n\n}\n\nexport const MyImage = Image","import { ILeaferCanvas, ILeaferCanvasConfig, INumber, IRenderOptions, IPointData, ICanvasContext2D, ICanvasContext2DSettings, IScreenSizeData } from '@leafer/interface'\nimport { Creator, ImageEvent, LeaferImage, Matrix, dataProcessor, dataType, registerUI } from '@leafer/core'\n\nimport { ICanvas, ICanvasData, ICanvasInputData, IUI } from '@leafer-ui/interface'\nimport { CanvasData } from '@leafer-ui/data'\nimport { resizeType } from '@leafer-ui/decorator'\n\nimport { Rect } from './Rect'\n\n\n@registerUI()\nexport class Canvas extends Rect implements ICanvas {\n\n public get __tag() { return 'Canvas' }\n\n @dataProcessor(CanvasData)\n declare public __: ICanvasData\n\n @resizeType(100)\n declare public width?: INumber\n\n @resizeType(100)\n declare public height?: INumber\n\n @resizeType(1)\n declare public pixelRatio?: INumber\n\n @resizeType(true)\n public smooth?: boolean\n\n @dataType(false)\n public safeResize?: boolean\n\n @resizeType()\n public contextSettings?: ICanvasContext2DSettings\n\n public canvas?: ILeaferCanvas\n\n public get context(): ICanvasContext2D { return this.canvas.context }\n\n public get ready(): boolean { return !this.url }\n\n public url?: string // 用于临时加载canvas的base64数据,完成后会置空\n\n constructor(data?: ICanvasInputData) {\n super(data)\n this.canvas = Creator.canvas(this.__ as ILeaferCanvasConfig)\n if (data && data.url) this.drawImage(data.url)\n }\n\n public drawImage(url: string): void {\n new LeaferImage({ url }).load((image: LeaferImage) => {\n this.context.drawImage(image.view, 0, 0)\n this.url = undefined\n this.paint()\n this.emitEvent(new ImageEvent(ImageEvent.LOADED, { image }))\n })\n }\n\n public draw(ui: IUI, offset?: IPointData, scale?: number | IPointData, rotation?: number): void {\n const matrix = new Matrix(ui.worldTransform).invert()\n\n const m = new Matrix()\n if (offset) m.translate(offset.x, offset.y)\n if (scale) typeof scale === 'number' ? m.scale(scale) : m.scale(scale.x, scale.y)\n if (rotation) m.rotate(rotation)\n matrix.multiplyParent(m)\n\n ui.__render(this.canvas, { matrix: matrix.withScale() })\n this.paint()\n }\n\n public paint(): void {\n this.forceRender()\n }\n\n // in __drawAfterFill()\n public __drawContent(canvas: ILeaferCanvas, _options: IRenderOptions): void {\n const { width, height } = this.__, { view } = this.canvas\n canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height)\n }\n\n public __updateSize(): void {\n const { canvas } = this\n if (canvas) {\n const { smooth, safeResize } = this.__\n canvas.resize(this.__ as IScreenSizeData, safeResize)\n if (canvas.smooth !== smooth) canvas.smooth = smooth\n }\n }\n\n public destroy(): void {\n if (this.canvas) {\n this.canvas.destroy()\n this.canvas = null\n }\n super.destroy()\n }\n\n}","import { ILeaferCanvas, IBoolean, INumber, IString, IBoundsData, IUnitData, IRenderOptions } from '@leafer/interface'\nimport { BoundsHelper, boundsType, surfaceType, dataProcessor, registerUI, affectStrokeBoundsType, dataType, hitType, MathHelper, DataHelper } from '@leafer/core'\n\nimport { IFill, IText, IFontWeight, ITextCase, ITextDecoration, ITextData, ITextInputData, ITextAlign, IVerticalAlign, ITextDrawData, IOverflow, IStrokeAlign, IHitType, ITextWrap, IWritingMode, IBackgroundBoxStyle } from '@leafer-ui/interface'\nimport { TextData } from '@leafer-ui/data'\n\nimport { TextConvert, UnitConvert, Export } from '@leafer-ui/external'\n\nimport { UI } from './UI'\n\n\nconst { copyAndSpread, includes, spread, setList } = BoundsHelper\n\n@registerUI()\nexport class Text extends UI implements IText {\n\n public get __tag() { return 'Text' }\n\n @dataProcessor(TextData)\n declare public __: ITextData\n\n // size\n @boundsType(0)\n declare public width?: INumber\n\n @boundsType(0)\n declare public height?: INumber\n\n @surfaceType()\n public boxStyle: IBackgroundBoxStyle\n\n @dataType(false)\n public resizeFontSize?: IBoolean\n\n @surfaceType('#000000')\n declare public fill?: IFill\n\n @affectStrokeBoundsType('outside')\n declare public strokeAlign?: IStrokeAlign\n\n @hitType('all')\n declare public hitFill?: IHitType\n\n @boundsType('')\n public text?: IString | INumber\n\n @boundsType('')\n public placeholder?: IString\n\n @boundsType('caption')\n public fontFamily?: IString\n\n @boundsType(12)\n public fontSize?: INumber\n\n @boundsType('normal')\n public fontWeight?: IFontWeight\n\n @boundsType(false)\n public italic?: IBoolean\n\n @boundsType('none')\n public textCase?: ITextCase\n\n @boundsType('none')\n public textDecoration?: ITextDecoration\n\n @boundsType(0)\n public letterSpacing?: INumber | IUnitData\n\n @boundsType({ type: 'percent', value: 1.5 } as IUnitData)\n public lineHeight?: INumber | IUnitData\n\n @boundsType(0)\n public paraIndent?: INumber\n\n @boundsType(0)\n public paraSpacing?: INumber\n\n @boundsType('x')\n public writingMode?: IWritingMode\n\n @boundsType('left')\n public textAlign?: ITextAlign\n\n @boundsType('top')\n public verticalAlign?: IVerticalAlign\n\n @boundsType(true)\n public autoSizeAlign?: IBoolean\n\n @boundsType('normal')\n public textWrap?: ITextWrap\n\n @boundsType('show')\n public textOverflow?: IOverflow | string\n\n @surfaceType(false)\n public textEditing: boolean\n\n public isOverflow: boolean\n\n public get textDrawData(): ITextDrawData { this.updateLayout(); return this.__.__textDrawData }\n\n\n constructor(data?: ITextInputData) {\n super(data)\n }\n\n public __updateTextDrawData(): void {\n const data = this.__\n const { lineHeight, letterSpacing, fontFamily, fontSize, fontWeight, italic, textCase, textOverflow, padding } = data\n\n data.__lineHeight = UnitConvert.number(lineHeight, fontSize)\n data.__letterSpacing = UnitConvert.number(letterSpacing, fontSize)\n data.__padding = padding ? MathHelper.fourNumber(padding) : undefined\n data.__baseLine = data.__lineHeight - (data.__lineHeight - fontSize * 0.7) / 2 // 基线位置\n data.__font = `${italic ? 'italic ' : ''}${textCase === 'small-caps' ? 'small-caps ' : ''}${fontWeight !== 'normal' ? fontWeight + ' ' : ''}${fontSize}px ${fontFamily}`\n data.__clipText = textOverflow !== 'show' && !data.__autoSize\n\n data.__textDrawData = TextConvert.getDrawData((data.__isPlacehold = data.placeholder && data.text === '') ? data.placeholder : data.text, this.__)\n }\n\n override __updateBoxBounds(): void {\n\n const data = this.__\n const layout = this.__layout\n const { fontSize, italic, padding, __autoWidth: autoWidth, __autoHeight: autoHeight } = data\n\n this.__updateTextDrawData() // layout text\n\n const { bounds: contentBounds } = data.__textDrawData\n const b = layout.boxBounds\n\n layout.contentBounds = contentBounds\n\n if (data.__lineHeight < fontSize) spread(contentBounds, fontSize / 2)\n\n if (autoWidth || autoHeight) {\n b.x = autoWidth ? contentBounds.x : 0\n b.y = autoHeight ? contentBounds.y : 0\n b.width = autoWidth ? contentBounds.width : data.width\n b.height = autoHeight ? contentBounds.height : data.height\n\n if (padding) {\n const [top, right, bottom, left] = data.__padding\n if (autoWidth) b.x -= left, b.width += (right + left)\n if (autoHeight) b.y -= top, b.height += (bottom + top)\n }\n this.__updateNaturalSize()\n } else super.__updateBoxBounds()\n\n if (italic) b.width += fontSize * 0.16 // 倾斜会导致文本的bounds增大\n\n DataHelper.stintSet(this, 'isOverflow', !includes(b, contentBounds))\n\n if (this.isOverflow) setList(data.__textBoxBounds = {} as IBoundsData, [b, contentBounds]), layout.renderChanged = true\n else data.__textBoxBounds = b\n }\n\n override __onUpdateSize(): void {\n if (this.__box) this.__box.__onUpdateSize()\n super.__onUpdateSize()\n }\n\n override __updateRenderSpread(): number {\n let width = super.__updateRenderSpread()\n if (!width) width = this.isOverflow ? 1 : 0\n return width\n }\n\n override __updateRenderBounds(): void {\n const { renderBounds, renderSpread } = this.__layout\n copyAndSpread(renderBounds, this.__.__textBoxBounds, renderSpread)\n if (this.__box) this.__box.__layout.renderBounds = renderBounds\n }\n\n override __drawRenderPath(canvas: ILeaferCanvas): void {\n canvas.font = this.__.__font\n }\n\n override __draw(canvas: ILeaferCanvas, options: IRenderOptions, originCanvas?: ILeaferCanvas): void {\n const box = this.__box\n if (box) box.__nowWorld = this.__nowWorld, box.__draw(canvas, options, originCanvas)\n if (this.textEditing && !Export.running) return\n super.__draw(canvas, options, originCanvas)\n }\n\n override destroy(): void {\n if (this.boxStyle) this.boxStyle = null\n super.destroy()\n }\n\n}","import { dataProcessor, affectStrokeBoundsType, registerUI } from '@leafer/core'\n\nimport { IPath, IPathData, IPathInputData, IStrokeAlign } from '@leafer-ui/interface'\nimport { PathData } from '@leafer-ui/data'\n\nimport { UI } from './UI'\n\n\n@registerUI()\nexport class Path extends UI implements IPath {\n\n public get __tag() { return 'Path' }\n\n @dataProcessor(PathData)\n declare public __: IPathData\n\n @affectStrokeBoundsType('center')\n declare public strokeAlign?: IStrokeAlign\n\n constructor(data?: IPathInputData) {\n super(data)\n }\n\n}","import { PathCreator, dataProcessor, defineKey, registerUI, useModule } from '@leafer/core'\n\nimport { IPenData, IPenInputData, IPathInputData, IPathCommandData, IPath, IPen, IPointData } from '@leafer-ui/interface'\nimport { PenData } from '@leafer-ui/data'\n\nimport { Group } from './Group'\nimport { Path } from './Path'\n\n@useModule(PathCreator, ['set', 'path', 'paint'])\n@registerUI()\nexport class Pen extends Group implements IPen {\n\n public get __tag() { return 'Pen' }\n\n @dataProcessor(PenData)\n declare public __: IPenData\n\n public pathElement: IPath\n public pathStyle: IPathInputData\n\n @penPathType()\n declare public path: IPathCommandData // use __path, readonly\n\n public __path: IPathCommandData\n\n constructor(data?: IPenInputData) {\n super(data)\n }\n\n public setStyle(data: IPathInputData): Pen {\n const path = this.pathElement = new Path(data)\n this.pathStyle = data\n this.__path = path.path as IPathCommandData || (path.path = [])\n this.add(path)\n return this\n }\n\n // svg and canvas\n\n public beginPath(): Pen { return this }\n\n public moveTo(_x: number, _y: number): Pen { return this }\n\n public lineTo(_x: number, _y: number): Pen { return this }\n\n public bezierCurveTo(_x1: number, _y1: number, _x2: number, _y2: number, _x: number, _y: number): Pen { return this }\n\n public quadraticCurveTo(_x1: number, _y1: number, _x: number, _y: number): Pen { return this }\n\n public closePath(): Pen { return this }\n\n\n // canvas\n\n public rect(_x: number, _y: number, _width: number, _height: number): Pen { return this }\n\n public roundRect(_x: number, _y: number, _width: number, _height: number, _cornerRadius: number | number[]): Pen { return this }\n\n public ellipse(_x: number, _y: number, _radiusX: number, _radiusY: number, _rotation?: number, _startAngle?: number, _endAngle?: number, _anticlockwise?: boolean): Pen { return this }\n\n public arc(_x: number, _y: number, _radius: number, _startAngle?: number, _endAngle?: number, _anticlockwise?: boolean): Pen { return this }\n\n public arcTo(_x1: number, _y1: number, _x2: number, _y2: number, _radius: number): Pen { return this }\n\n\n // moveTo, then draw\n\n public drawEllipse(_x: number, _y: number, _radiusX: number, _radiusY: number, _rotation?: number, _startAngle?: number, _endAngle?: number, _anticlockwise?: boolean): Pen { return this }\n\n public drawArc(_x: number, _y: number, _radius: number, _startAngle?: number, _endAngle?: number, _anticlockwise?: boolean): Pen { return this }\n\n public drawPoints(_points: number[] | IPointData[], _curve?: boolean | number, _close?: boolean): Pen { return this }\n\n public clearPath(): Pen { return this } // = beginPath()\n\n\n public paint(): void {\n if (!this.pathElement.__layout.boxChanged) this.pathElement.forceUpdate('path')\n }\n\n}\n\nfunction penPathType() {\n return (target: IPen, key: string) => {\n defineKey(target, key, {\n get() { return this.__path }\n })\n }\n}"],"names":["__decorate","decorators","target","key","desc","d","c","arguments","length","r","Object","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","effectType","defaultValue","decorateLeafAttr","attr","set","value","this","__setAttr","__","__useEffect","__layout","renderChanged","renderChange","resizeType","boxChanged","boxChange","__updateSize","zoomLayerType","privateKey","defineKey","isLeafer","get","isApp","tree","zoomLayer","leafer","SuppressedError","TextConvert","ColorConvert","hasTransparent","color","first","lastIndexOf","parseFloat","slice","UnitConvert","number","percentRefer","type","PathArrow","Paint","PaintImage","Effect","Filter","apply","Plugin","need","Export","State","setStyleName","Transition","list","register","attrName","fn","parse","objectToCanvasData","PathConvert","stintSet","DataHelper","emptyPaint","debug","Debug","UIData","LeafData","scale","scaleX","scaleY","x","y","__strokeWidth","strokeWidth","strokeWidthFixed","ui","__leaf","__nowWorld","__world","__hasStroke","stroke","__hasHalf","t","strokeAlign","undefined","__hasMultiPaint","__isFills","fill","__isStrokes","__clipAfterFill","cornerRadius","innerShadow","__pathInputed","__hasSurface","__autoWidth","_width","__autoHeight","_height","__autoSide","__autoSize","setVisible","_visible","watcher","hasVisible","setWidth","warn","setHeight","setFill","__naturalWidth","__removeNaturalSize","__setPaint","__removePaint","_fill","setStroke","_stroke","setPath","isString","__setInput","_path","__input","__removeInput","setShadow","setArray","setInnerShadow","setFilter","__computePaint","compute","__needComputePaint","layout","Array","removeInput","recycleImage","data","some","item","visible","filter","GroupData","BoxData","__boxStroke","__drawAfterFill","overflow","children","isOverflow","super","LeaferData","__getInputData","names","options","canvasSizeAttrs","forEach","FrameData","LineData","RectData","EllipseData","PolygonData","StarData","PathData","PenData","fontWeightMap","thin","light","normal","medium","bold","black","TextData","__useNaturalRatio","setFontWeight","_fontWeight","setBoxStyle","box","__box","boxStyle","UICreator","boxLayout","parent","boxBounds","strokeChanged","strokeChange","__updateChange","destroy","_boxStyle","ImageData","setUrl","__setImageFill","_url","mode","url","__getData","CanvasData","__isCanvas","canvas","toDataURL","UIBounds","__updateStrokeSpread","width","boxWidth","hitStroke","miterLimitAddWidth","__isLinePath","storkeCapAddWidth","strokeCap","Math","max","__useArrow","strokeSpread","strokeBoxSpread","__updateRenderSpread","shadow","blur","backgroundBlur","abs","spread","getSpread","shapeWidth","ceil","renderShapeSpread","UIRender","otherEffect","__isTransparentFill","useFastShadow","__checkSingle","__drawFast","drawFast","__draw","originCanvas","__complex","__fillAfterStroke","__isFastShadow","__drawRenderPath","shape","__getNowWorld","strokes","fills","worldCanvas","recycle","save","setWorldShadow","string","restore","__renderShape","ignoreFill","ignoreStroke","__worldOpacity","setWorld","__isAlphaPixelFill","__isAlphaPixelStroke","clipUI","__drawContent","RectRender","height","fillStyle","fillRect","half","strokeRect","__clip","UI","UI_1","Leaf","app","isFrame","MathHelper","assignScale","pen","path","__drawPathByBox","constructor","reset","_data","transition","lockNormalStyle","assign","animate","name","__getInput","createProxyData","find","_condition","_options","findTag","tag","findOne","findId","id","getPath","curve","pathForRender","update","__pathForRender","toCanvasData","getPathString","floatLength","stringify","load","__onUpdateSize","lazy","__inLazyBounds","running","__updateRenderPath","PathCorner","smooth","cornerSmoothing","addArrows","beginPath","__drawPathByData","__drawPath","drawer","PathDrawer","drawPathByData","roundRect","rect","drawImagePlaceholder","_image","placeholderColor","_keyframe","_type","_isTemp","killAnimate","_nextStyle","_filename","syncExport","clone","json","toJSON","one","prototype","__tag","registerUI","registerData","dataProcessor","setEditConfig","_config","setEditOuter","_toolName","setEditInner","_editorName","__animate","dataType","surfaceType","opacityType","visibleType","sortType","maskType","eraserType","positionType","boundsType","scaleType","rotationType","autoLayoutType","naturalBoundsType","pathInputType","pathType","hitType","strokeType","cursorType","rewrite","useModule","rewriteAble","Group","isBranch","__setBranch","clear","child","add","map","pick","_hitPoint","addAt","index","addAfter","after","indexOf","addBefore","before","_child","_index","addMany","_children","remove","_destroy","removeAll","Branch","Leafer","Leafer_1","imageReady","viewReady","Resource","isComplete","layoutLocked","layouter","FPS","renderer","cursorPoint","interaction","hoverData","clientBounds","getClientBounds","getBoundsData","userConfig","config","start","hittable","lazySpeard","leafs","__eventIds","__controllers","__readyWait","__viewReadyWait","__viewCompletedWait","__nextRenderWait","view","init","parentApp","__setLeafer","__bindApp","initType","Creator","push","__setApp","__checkAutoLayout","selector","unshift","hitCanvasManager","canvasManager","CanvasManager","__listenEvents","__startTimer","setTimeout","bind","WaitHelper","run","__initWait","onInit","waitInit","clearTimeout","ready","emitLeafer","LeaferEvent","RESTART","START","render","stop","STOP","unlockLayout","updateLayout","lockLayout","resize","size","copyAttrs","keys","forceRender","bounds","sync","addBlock","Bounds","requestRender","change","updateCursor","cursor","setCursor","updateLazyBounds","lazyBounds","__doResize","isSameSize","old","__onResize","ResizeEvent","event","emitEvent","clearRecycled","__level","autoLayout","AutoBounds","startAutoLayout","newValue","includes","__changeCanvasSize","__changeFill","zIndex","__updateSortChildren","__getAttr","stopAutoLayout","allowBackgroundColor","backgroundColor","__onCreated","created","__onReady","BEFORE_READY","READY","AFTER_READY","__onViewReady","VIEW_READY","__onLayoutEnd","grow","fixedWidth","fixedHeight","pixelRatio","worldBoxBounds","__onNextRender","viewCompleted","__checkViewCompleted","emit","nextRender","VIEW_COMPLETED","__onWatchData","childrenChanged","waitReady","waitViewReady","waitViewCompleted","off","splice","zoom","_zoomType","_padding","_fixedScale","_transition","getValidMove","moveX","moveY","getValidScale","changeScale","getWorldPointByClient","clientPoint","updateClient","getLocal","getPagePointByClient","getPagePoint","getClientPointByWorld","worldPoint","updateClientBounds","receiveEvent","_event","runId","Run","innerName","once","end","LayoutEvent","RenderEvent","END","on_","WatchEvent","DATA","NEXT","__removeListenEvents","off_","doDestory","destroyed","ImageManager","e","error","LeafList","Rect","copy","BoundsHelper","group","childrenRenderBounds","Box","isBranchLeaf","__updateRectRenderSpread","__updateRectBoxBounds","__updateBoxBounds","_secondLayout","pathInputed","__extraUpdate","__updateNaturalSize","__updateStrokeBounds","__updateRenderBounds","renderBounds","__updateRectRenderBounds","__updateRectChange","__renderRect","_canvas","__renderGroup","__render","affectRenderBoundsType","Frame","moveTo","closePath","ellipse","PathCommandDataHelper","Ellipse","__updatePath","innerRadius","startAngle","endAngle","rx","ry","Platform","ellipseToCurve","lineTo","drawPoints","rotate","getAngle","getDistance","defaultPoint","PointHelper","toBounds","PathBounds","Line","toPoint","rotation","to","getPointData","points","closed","affectStrokeBoundsType","sin","cos","PI","line","Polygon","sides","Star","corners","Image","image","MyImage","Canvas","context","drawImage","LeaferImage","paint","ImageEvent","LOADED","draw","offset","matrix","Matrix","worldTransform","invert","m","translate","multiplyParent","withScale","safeResize","copyAndSpread","setList","Text","textDrawData","__textDrawData","__updateTextDrawData","lineHeight","letterSpacing","fontFamily","fontSize","fontWeight","italic","textCase","textOverflow","padding","__lineHeight","__letterSpacing","__padding","fourNumber","__baseLine","__font","__clipText","getDrawData","__isPlacehold","placeholder","text","autoWidth","autoHeight","contentBounds","b","top","right","bottom","left","__textBoxBounds","renderSpread","font","textEditing","Path","Pen","setStyle","pathElement","pathStyle","__path","_x","_y","bezierCurveTo","_x1","_y1","_x2","_y2","quadraticCurveTo","_cornerRadius","_radiusX","_radiusY","_rotation","_startAngle","_endAngle","_anticlockwise","arc","_radius","arcTo","drawEllipse","drawArc","_points","_curve","_close","clearPath","forceUpdate","PathCreator"],"mappings":"2CAsDO,SAASA,EAAWC,EAAYC,EAAQC,EAAKC,GAChD,IAA2HC,EAAvHC,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIJ,EAAkB,OAATE,EAAgBA,EAAOM,OAAOC,yBAAyBT,EAAQC,GAAOC,EACrH,GAAuB,iBAAZQ,SAAoD,mBAArBA,QAAQC,SAAyBJ,EAAIG,QAAQC,SAASZ,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIU,EAAIb,EAAWO,OAAS,EAAGM,GAAK,EAAGA,KAAST,EAAIJ,EAAWa,MAAIL,GAAKH,EAAI,EAAID,EAAEI,GAAKH,EAAI,EAAID,EAAEH,EAAQC,EAAKM,GAAKJ,EAAEH,EAAQC,KAASM,GAChJ,OAAOH,EAAI,GAAKG,GAAKC,OAAOK,eAAeb,EAAQC,EAAKM,GAAIA,CAChE,CCrDM,SAAUO,EAAWC,GACvB,OAAOC,mBAAiBD,GAAed,GAAgBgB,EAAAA,KAAK,CACxD,GAAAC,CAAIC,GACAC,KAAKC,UAAUpB,EAAKkB,GAChBA,IAAQC,KAAaE,GAAGC,aAAc,GAC1CH,KAAKI,SAASC,eAAiBL,KAAKI,SAASE,mBAGzD,CAEM,SAAUC,EAAWZ,GACvB,OAAOC,mBAAiBD,GAAed,GAAgBgB,EAAAA,KAAK,CACxD,GAAAC,CAAIC,GACAC,KAAKC,UAAUpB,EAAKkB,GACpBC,KAAKI,SAASI,YAAcR,KAAKI,SAASK,YACzCT,KAAiBU,mBAG9B,UAEgBC,IACZ,MAAO,CAAC/B,EAAaC,KACjB,MAAM+B,EAAa,IAAM/B,EACzBgC,EAASA,UAACjC,EAAQC,EAAK,CACnB,GAAAiB,CAAIC,GAAkBC,KAAKc,WAAWd,KAAiBY,GAAcb,EAAO,EAC5E,GAAAgB,GACI,OAAOf,KAAKgB,MACLhB,KAAciB,KAAKC,UACnBlB,KAAKc,SAAad,KAAiBY,IAAeZ,KAAQA,KAAKmB,QAAUnB,KAAKmB,OAAOD,YAElG,CAEV,CDkSkD,mBAApBE,iBAAiCA,gBElUxD,MAAMC,EAAc,CAAA,EAEdC,EAAe,CACxBC,eCTE,SAAyBC,GAE3B,IAAKA,GAA0B,IAAjBA,EAAMtC,QAAiC,IAAjBsC,EAAMtC,OAAc,OAAO,EAC/D,GAAc,gBAAVsC,EAAyB,OAAO,EAEpC,MAAMC,EAAQD,EAAM,GAEpB,GAAc,MAAVC,EAGA,OAAQD,EAAMtC,QACV,KAAK,EAAG,MAAoB,MAAbsC,EAAM,IAA2B,MAAbA,EAAM,GACzC,KAAK,EAAG,MAAqB,MAAbA,EAAM,IAA2B,MAAbA,EAAM,IAA6B,MAAbA,EAAM,IAA2B,MAAbA,EAAM,QAGrF,IAAc,MAAVC,GAA2B,MAAVA,IAGP,MAAbD,EAAM,GAAY,CAClB,MAAMhC,EAAIgC,EAAME,YAAY,KAC5B,GAAIlC,GAAM,EAAE,OAAOmC,WAAWH,EAAMI,MAAMpC,EAAI,IAAM,EAK5D,OAAO,CAEX,GDfaqC,EAAc,CACvBC,OAAM,CAAC/B,EAA2BgC,IACN,iBAAVhC,EAAqC,YAAfA,EAAMiC,KAAqBjC,EAAMA,MAAQgC,EAAehC,EAAMA,MAASA,GAKtGkC,EAAY,CAAA,EAGZC,EAAQ,CAAA,EAERC,EAAa,CAAA,EAIbC,EAAS,CAAA,EAETC,EAAS,CAClB,KAAAC,GAAgBC,EAAAA,OAAOC,KAAK,SAAS,GAG5BC,EAAS,CAAA,EAETC,EAAQ,CACjBC,aAAY,IAAkBJ,EAAAA,OAAOC,KAAK,SAC1C1C,IAAG,IAAkByC,EAAAA,OAAOC,KAAK,UAGxBI,EAAa,CACtBC,KAAM,CAAE,EACR,QAAAC,CAASC,EAAkBC,GAAiCJ,EAAWC,KAAKE,GAAYC,CAAI,EAC5FjC,IAAIgC,GAAgDH,EAAWC,KAAKE,KErClEE,MAAEA,EAAKC,mBAAEA,GAAuBC,EAAWA,aAC3CC,SAAEA,GAAaC,EAAAA,YAAY9B,eAAEA,GAAmBD,EAChDgC,EAAyB,CAAE,EAC3BC,EAAQC,EAAAA,MAAMzC,IAAI,UAClB,MAAO0C,UAAeC,EAAAA,SAIxB,SAAWC,GAAgC,MAAMC,OAAEA,EAAMC,OAAEA,GAAW7D,KAAiB,OAAO4D,IAAWC,EAAS,CAAEC,EAAGF,EAAQG,EAAGF,GAAWD,CAAM,CAOnJ,iBAAWI,GACP,MAAMC,YAAEA,EAAWC,iBAAEA,GAAqBlE,KAC1C,GAAIkE,EAAkB,CAClB,MAAMC,EAAKnE,KAAKoE,OAChB,IAAIR,OAAEA,GAAWO,EAAGE,YAAcF,EAAGG,QAErC,OADIV,EAAS,IAAGA,GAAUA,GACnBA,EAAS,EAAIK,EAAcL,EAASK,EACxC,OAAOA,EAGlB,eAAWM,GAAyB,OAAQvE,KAAiBwE,QAAWxE,KAAiBiE,WAAiC,CAC1H,aAAWQ,GAAsB,MAAMC,EAAI1E,KAAiB,OAAQ0E,EAAEF,QAA4B,WAAlBE,EAAEC,aAA4BD,EAAET,YAAc,QAAMW,CAAS,CAC7I,mBAAWC,GACP,MAAMH,EAAI1E,KACV,SAAK0E,EAAEI,WAAaJ,EAAEK,KAAK7F,OAAS,GAAOwF,EAAEM,aAAeN,EAAEF,OAAOtF,OAAS,GAAMwF,EAAEvE,cAC/EuE,EAAEK,MAAQ/E,KAAKuE,YAS1B,mBAAWU,GAA6B,MAAMP,EAAI1E,KAAiB,OAAQ0E,EAAEQ,cAAgBR,EAAES,aAAeT,EAAEU,aAAoC,CACpJ,gBAAWC,GAAqD,OAAjBrF,KAA2B+E,MAA3B/E,KAAqCwE,MAA6B,CAiBjH,eAAWc,GAAgB,OAAQtF,KAAKuF,MAAM,CAC9C,gBAAWC,GAAiB,OAAQxF,KAAKyF,OAAO,CAChD,cAAWC,GAAe,OAAQ1F,KAAKuF,SAAWvF,KAAKyF,OAAO,CAC9D,cAAWE,GAAe,OAAQ3F,KAAKuF,SAAWvF,KAAKyF,OAAO,CAGpD,UAAAG,CAAW7F,GACjBC,KAAK6F,SAAW9F,EAEhB,MAAMoB,OAAEA,GAAWnB,KAAKoE,OACpBjD,IAAQA,EAAO2E,QAAQC,YAAa,GAGlC,QAAAC,CAASjG,GACXA,EAAQ,GACRC,KAAKuF,QAAUxF,EACfC,KAAKoE,OAAOR,SAAY,EACxBL,EAAM0C,KAAK,8BAA+BjG,OACvCA,KAAKuF,OAASxF,EAGf,SAAAmG,CAAUnG,GACZA,EAAQ,GACRC,KAAKyF,SAAW1F,EAChBC,KAAKoE,OAAOP,SAAY,EACxBN,EAAM0C,KAAK,8BAA+BjG,OACvCA,KAAKyF,QAAU1F,EAIhB,OAAAoG,CAAQpG,GACVC,KAAKoG,gBAAgBpG,KAAKqG,sBACT,iBAAVtG,GAAuBA,EAIN,iBAAVA,GACdC,KAAKsG,WAAW,OAAQvG,IAJxBqD,EAASpD,KAAM,sBAAuBuB,EAAexB,IACrDC,KAAK8E,WAAa9E,KAAKuG,cAAc,QAAQ,GAC7CvG,KAAKwG,MAAQzG,GAMX,SAAA0G,CAAU1G,GACK,iBAAVA,GAAuBA,EAIN,iBAAVA,GACdC,KAAKsG,WAAW,SAAUvG,IAJ1BqD,EAASpD,KAAM,wBAAyBuB,EAAexB,IACvDC,KAAKgF,aAAehF,KAAKuG,cAAc,UAAU,GACjDvG,KAAK0G,QAAU3G,GAOb,OAAA4G,CAAQ5G,GACd,MAAM6G,EAA4B,iBAAV7G,EACpB6G,GAAa7G,GAA6B,iBAAbA,EAAM,IACnCC,KAAK6G,WAAW,OAAQ9G,GACxBC,KAAK8G,MAAQF,EAAW3D,EAAMlD,GAASmD,EAAmBnD,KAEtDC,KAAK+G,SAAS/G,KAAKgH,cAAc,QACrChH,KAAK8G,MAAQ/G,GAKX,SAAAkH,CAAUlH,GAChBmH,EAASlH,KAAM,SAAUD,GAGnB,cAAAoH,CAAepH,GACrBmH,EAASlH,KAAM,cAAeD,GAGxB,SAAAqH,CAAUrH,GAChBmH,EAASlH,KAAM,SAAUD,GAMtB,cAAAsH,GACH,MAAMtC,KAAEA,EAAIP,OAAEA,GAAWxE,KAAK+G,QAC1BhC,GAAM7C,EAAMoF,QAAQ,OAAQtH,KAAKoE,QACjCI,GAAQtC,EAAMoF,QAAQ,SAAUtH,KAAKoE,QACzCpE,KAAKuH,wBAAqB3C,EAGvB,UAAA0B,CAAWvD,EAA6BhD,GAC3CC,KAAK6G,WAAW9D,EAAUhD,GAC1B,MAAMyH,EAASxH,KAAKoE,OAAOhE,SAC3BoH,EAAOhH,YAAcgH,EAAO/G,YACxBV,aAAiB0H,QAAU1H,EAAMb,OACjCc,KAAKuG,cAAcxD,GAEF,SAAbA,GAAqB/C,KAAK8E,WAAY,EAAM9E,KAAKwG,QAAUxG,KAAKwG,MAAQlD,KACvEtD,KAAKgF,aAAc,EAAMhF,KAAK0G,UAAY1G,KAAK0G,QAAUpD,IAI/D,aAAAiD,CAAcxD,EAA6B2E,GAC1CA,GAAa1H,KAAKgH,cAAcjE,GACpCZ,EAAWwF,aAAa5E,EAAU/C,MACjB,SAAb+C,GACAK,EAASpD,KAAM,0BAAsB4E,GACrC5E,KAAKwG,MAAQxG,KAAK8E,eAAYF,IAE9BxB,EAASpD,KAAM,4BAAwB4E,GACvC5E,KAAK0G,QAAU1G,KAAKgF,iBAAcJ,IAM9C,SAASsC,EAASU,EAAe/I,EAAakB,GAC1C6H,EAAKf,WAAWhI,EAAKkB,GACjBA,aAAiB0H,OACb1H,EAAM8H,MAAMC,IAAmC,IAAjBA,EAAKC,YAAoBhI,EAAQA,EAAMiI,QAAQF,IAAmC,IAAjBA,EAAKC,WACxGhI,EAAMb,SAAWa,OAAQ6E,IACtB7E,EAAQA,IAAwC,IAA9BA,EAAkBgI,QAAoB,CAAChI,QAAS6E,EACxEgD,EAAiB,IAAM/I,GAAOkB,CACnC,CClLM,MAAOkI,UAAkBxE,GCAzB,MAAOyE,UAAgBD,EAEzB,eAAWE,GAAyB,OAASnI,KAAkBoF,aAAa,CAG5E,mBAAWgD,GAA6B,MAAM1D,EAAI1E,KAAkB,MAAuB,SAAf0E,EAAE2D,WAAwB3D,EAAEO,iBAAmBP,EAAES,cAAgBT,EAAEN,OAAOkE,SAASpJ,MAA6B,CAE5L,mBAAW+F,GAA6B,OAAOjF,KAAKoE,OAAOmE,YAAcC,MAAMvD,eAAe,ECN5F,MAAOwD,UAAmBR,EAErB,cAAAS,CAAeC,EAA4BC,GAC9C,MAAMhB,EAAOY,MAAME,eAAeC,EAAOC,GAEzC,OADAC,EAAAA,gBAAgBC,SAAQjK,UAAe+I,EAAiB/I,KACjD+I,GCNT,MAAOmB,UAAkBb,GCAzB,MAAOc,UAAiBvF,GCAxB,MAAOwF,UAAiBxF,EAC1B,eAAI0E,GAAyB,OAASnI,KAAmBoF,aAAa,ECDpE,MAAO8D,UAAoBzF,EAC7B,eAAI0E,GAAyB,OAASnI,KAAsBoF,aAAa,ECDvE,MAAO+D,UAAoB1F,GCA3B,MAAO2F,UAAiB3F,GCAxB,MAAO4F,UAAiB5F,EAC1B,iBAAW2B,GAA0B,OAAO,CAAC,ECD3C,MAAOkE,UAAgBrB,GCE7B,MAAMsB,EAAgB,CAClBC,KAAQ,IACR,cAAe,IACfC,MAAS,IACTC,OAAU,IACVC,OAAU,IACV,YAAa,IACbC,KAAQ,IACR,aAAc,IACdC,MAAS,KAGP,MAAOC,UAAiBrG,EAE1B,qBAAWsG,GAAsB,OAAO,CAAK,CAK7C,aAAAC,CAAcjK,GACW,iBAAVA,GACPC,KAAK6G,WAAW,aAAc9G,GAC9BA,EAAQwJ,EAAcxJ,IAA8B,KAC7CC,KAAK+G,SAAS/G,KAAKgH,cAAc,cAC5ChH,KAAKiK,YAAclK,EAGvB,WAAAmK,CAAYnK,GACR,IAAI2E,EAAI1E,KAAKoE,OAAiB+F,EAAMzF,EAAE0F,MAEtC,GAAIrK,EAAO,CAEP,MAAMsK,SAAEA,GAAarK,KACrB,GAAImK,EAAK,IAAK,IAAItL,KAAOwL,EAAWF,EAAgBtL,QAAO+F,OACtDuF,EAAMzF,EAAE0F,MAAQE,EAASA,UAACvJ,IAAI,OAAQ,GAE3C,MAAMyG,EAAS9C,EAAEtE,SAAUmK,EAAYJ,EAAI/J,SACtCiK,IAAUF,EAAIK,OAAS9F,EAAUyF,EAAI7F,QAAUI,EAAEJ,QAASiG,EAAUE,UAAYjD,EAAOiD,WAE5FN,EAAIrK,IAAIC,GACJwK,EAAUG,eAAelD,EAAOmD,eAChCJ,EAAUlK,eAAemH,EAAOlH,eACpC6J,EAAIS,sBAEGT,IACPzF,EAAE0F,MAAQD,EAAIK,OAAS,KACvBL,EAAIU,WAGR7K,KAAK8K,UAAY/K,GCnDnB,MAAOgL,UAAkB9B,EAMjB,MAAA+B,CAAOjL,GACbC,KAAKiL,eAAelL,GACpBC,KAAKkL,KAAOnL,EAGT,cAAAkL,CAAelL,GACjBC,KAAyB+E,KAAOhF,EAAQ,CAAEiC,KAAM,QAASmJ,KAAM,UAAWC,IAAKrL,QAAU6E,EAGvF,SAAAyG,GACH,MAAMzD,EAAOY,MAAM6C,YAEnB,cADOzD,EAAK7C,KACL6C,EAGJ,cAAAc,CAAeC,EAA4BC,GAC9C,MAAMhB,EAAOY,MAAME,eAAeC,EAAOC,GAEzC,cADOhB,EAAK7C,KACL6C,GCxBT,MAAO0D,UAAmBrC,EAE5B,cAAWsC,GAAwB,OAAO,CAAI,CAC9C,mBAAWnD,GAA6B,OAAO,CAAI,CAE5C,cAAAM,CAAeC,EAA4BC,GAC9C,MAAMhB,EAAyBY,MAAME,eAAeC,EAAOC,GAE3D,OADAhB,EAAKwD,IAAOpL,KAAKoE,OAAmBoH,OAAOC,UAAU,aAC9C7D,GCRF,MAAA8D,EAA4B,CAErC,oBAAAC,GACI,IAAIC,EAAQ,EAAGC,EAAW,EAC1B,MAAMjE,EAAO5H,KAAKE,IAAIyE,YAAEA,EAAWV,YAAEA,GAAgB2D,EAAMuC,EAAMnK,KAAKoK,MAEtE,IAAKxC,EAAKpD,QAA6B,QAAnBoD,EAAKkE,YAAwB7H,GAA+B,WAAhBU,IAC5DkH,EAAWD,EAAwB,WAAhBjH,EAA2BV,EAAc,EAAIA,GAE3D2D,EAAKO,aAAa,CACnB,MAAM4D,EAAqBnE,EAAKoE,aAAe,EAAI,GAAKJ,EAClDK,EAAuC,SAAnBrE,EAAKsE,UAAuB,EAAIjI,EAC1D2H,GAASO,KAAKC,IAAIL,EAAoBE,GAa9C,OATIrE,EAAKyE,aAAYT,GAAuB,EAAd3H,GAE1BkG,IACAyB,EAAQO,KAAKC,IAAIjC,EAAI/J,SAASkM,aAAenC,EAAIwB,uBAAwBC,GACzEC,EAAW1B,EAAI/J,SAASmM,iBAG5BvM,KAAKI,SAASmM,gBAAkBV,EAEzBD,CACV,EAED,oBAAAY,GACI,IAAIZ,EAAgB,EACpB,MAAMa,OAAEA,EAAMtH,YAAEA,EAAWuH,KAAEA,EAAIC,eAAEA,EAAc3E,OAAEA,GAAWhI,KAAKE,GAE/DuM,GAAQA,EAAO3D,SAAQhB,GAAQ8D,EAAQO,KAAKC,IAAIR,EAAOO,KAAKC,IAAID,KAAKS,IAAI9E,EAAK/D,GAAIoI,KAAKS,IAAI9E,EAAKhE,KAAOgE,EAAK+E,OAAS,EAAI/E,EAAK+E,OAAS,GAAiB,IAAZ/E,EAAK4E,QAEjJA,IAAMd,EAAQO,KAAKC,IAAIR,EAAOc,IAE9B1E,IAAQ4D,GAASvJ,EAAOyK,UAAU9E,IAEtC,IAAI+E,EAAanB,EAAQO,KAAKa,KAAKpB,GAUnC,OARIzG,GAAaA,EAAY2D,SAAQhB,GAAQiF,EAAaZ,KAAKC,IAAIW,EAAYZ,KAAKC,IAAID,KAAKS,IAAI9E,EAAK/D,GAAIoI,KAAKS,IAAI9E,EAAKhE,KAAOgE,EAAK+E,OAAS,GAAK/E,EAAK+E,OAAS,GAAiB,IAAZ/E,EAAK4E,QAEtKC,IAAgBI,EAAaZ,KAAKC,IAAIW,EAAYJ,IAEtD3M,KAAKI,SAAS6M,kBAAoBF,EAElCnB,GAAS5L,KAAKI,SAASkM,cAAgB,EAEhCtM,KAAKoK,MAAQ+B,KAAKC,IAAIpM,KAAKoK,MAAMoC,uBAAwBZ,GAASA,KC/C3ExI,SAAEA,GAAaC,EAAUA,WAElB6J,EAA4B,CAErC,cAAAtC,GACI,MAAMhD,EAAO5H,KAAKE,GAElB,GAAI0H,EAAKzH,YAAa,CAClB,MAAMsM,OAAEA,EAAM1H,KAAEA,EAAIP,OAAEA,GAAWoD,EAAMuF,EAAcvF,EAAKzC,aAAeyC,EAAK8E,MAAQ9E,EAAK+E,gBAAkB/E,EAAKI,OAClH5E,EAASwE,EAAM,iBAAkB6E,IAAWU,GAAeV,EAAOvN,OAAS,IAAMuN,EAAO,GAAGI,UAAYJ,EAAO,GAAGtC,KAAOvC,EAAKwF,sBAAwBrI,KAAUA,aAAgB0C,OAAS1C,EAAK7F,OAAS,KAAOc,KAAKqN,gBAAkB7I,GAAWA,GAA+B,WAArBoD,EAAKjD,cAC9PiD,EAAKzH,eAAiBsM,IAAUU,GAGpC/J,EAASpD,KAAKsE,QAAS,OAAQsD,EAAKnD,WAEpCrB,EAASwE,EAAM,oBAAqBA,EAAKpD,QAA+B,YAArBoD,EAAKjD,aAA6BiD,EAAK7C,OAAS6C,EAAKwF,qBAExGxF,EAAK0F,gBAELlK,EAASwE,EAAM,YAAaA,EAAK9C,WAAa8C,EAAK5C,aAAe4C,EAAK1C,cAAgB0C,EAAKzH,YAC/F,EAED,UAAAoN,CAAW/B,EAAuB5C,GAC9B4E,EAASxN,KAAMwL,EAAQ5C,EAC1B,EAED,MAAA6E,CAAOjC,EAAuB5C,EAAyB8E,GACnD,MAAM9F,EAAO5H,KAAKE,GAElB,GAAI0H,EAAK+F,UAAW,CAEZ/F,EAAKL,oBAAoBK,EAAKP,iBAElC,MAAMtC,KAAEA,EAAIP,OAAEA,EAAM4D,gBAAEA,EAAewF,kBAAEA,EAAiBC,eAAEA,GAAmBjG,EAI7E,GAFA5H,KAAK8N,iBAAiBtC,GAElB5D,EAAKzH,cAAgB0N,EAAgB,CAErC,MAAME,EAAQ7L,EAAM6L,MAAM/N,KAAMwL,EAAQ5C,GACxC5I,KAAKqE,WAAarE,KAAKgO,cAAcpF,GAErC,MAAM6D,OAAEA,EAAMtH,YAAEA,EAAW6C,OAAEA,GAAWJ,EAEpC6E,GAAQrK,EAAOqK,OAAOzM,KAAMwL,EAAQuC,GAEpCH,IAAmBhG,EAAK5C,YAAc9C,EAAM+L,QAAQzJ,EAA8BxE,KAAMwL,GAAUtJ,EAAMsC,OAAOA,EAAkBxE,KAAMwL,IAEvIzG,IAAM6C,EAAK9C,UAAY5C,EAAMgM,MAAMnJ,EAAsB/E,KAAMwL,GAAUtJ,EAAM6C,KAAKA,EAAgB/E,KAAMwL,IAE1GpD,GAAiBpI,KAAKoI,gBAAgBoD,EAAQ5C,GAE9CzD,GAAa/C,EAAO+C,YAAYnF,KAAMwL,EAAQuC,GAE9CvJ,IAAWoJ,IAAmBhG,EAAK5C,YAAc9C,EAAM+L,QAAQzJ,EAA8BxE,KAAMwL,GAAUtJ,EAAMsC,OAAOA,EAAkBxE,KAAMwL,IAElJxD,GAAQ3F,EAAOC,MAAM0F,EAAQhI,KAAMA,KAAKqE,WAAYmH,EAAQkC,EAAcK,GAE1EA,EAAMI,aAAaJ,EAAMI,YAAYC,UACzCL,EAAMvC,OAAO4C,cAEV,CAIH,GAFIR,IAAmBhG,EAAK5C,YAAc9C,EAAM+L,QAAQzJ,EAA8BxE,KAAMwL,GAAUtJ,EAAMsC,OAAOA,EAAkBxE,KAAMwL,IAEvIqC,EAAgB,CAChB,MAAMpB,EAAS7E,EAAK6E,OAAO,IAAI7I,OAAEA,EAAMC,OAAEA,GAAW7D,KAAKqE,WACzDmH,EAAO6C,OAAQ7C,EAAO8C,eAAe7B,EAAO3I,EAAIF,EAAQ6I,EAAO1I,EAAIF,EAAQ4I,EAAOC,KAAO9I,EAAQtC,EAAaiN,OAAO9B,EAAOjL,QAG5HuD,IAAM6C,EAAK9C,UAAY5C,EAAMgM,MAAMnJ,EAAsB/E,KAAMwL,GAAUtJ,EAAM6C,KAAKA,EAAgB/E,KAAMwL,IAE1GqC,GAAgBrC,EAAOgD,UAEvBpG,GAAiBpI,KAAKoI,gBAAgBoD,EAAQ5C,GAE9CpE,IAAWoJ,IAAmBhG,EAAK5C,YAAc9C,EAAM+L,QAAQzJ,EAA8BxE,KAAMwL,GAAUtJ,EAAMsC,OAAOA,EAAkBxE,KAAMwL,UAMtJ5D,EAAKxC,cAAeoI,EAASxN,KAAMwL,EAAQ5C,GAC1C5I,KAAKuN,WAAW/B,EAAQ5C,EAGpC,EAED,aAAA6F,CAAcjD,EAAuB5C,EAAyB8F,EAAsBC,GAChF,GAAI3O,KAAK4O,eAAgB,CACrBpD,EAAOqD,SAAS7O,KAAKqE,WAAarE,KAAKgO,cAAcpF,IAErD,MAAM7D,KAAEA,EAAIP,OAAEA,GAAWxE,KAAKE,GAE9BF,KAAK8N,iBAAiBtC,GAElBzG,IAAS2J,IAAY1O,KAAKE,GAAG4O,mBAAqB5M,EAAMgM,MAAMnJ,EAAsB/E,KAAMwL,GAAUtJ,EAAM6C,KAAK,UAAW/E,KAAMwL,IAChIxL,KAAKE,GAAGqL,YAAYvL,KAAKoI,gBAAgBoD,EAAQ5C,GACjDpE,IAAWmK,IAAc3O,KAAKE,GAAG6O,qBAAuB7M,EAAM+L,QAAQzJ,EAA8BxE,KAAMwL,GAAUtJ,EAAMsC,OAAO,UAAWxE,KAAMwL,IAE7J,EAED,eAAApD,CAAgBoD,EAAuB5C,GAC/B5I,KAAKE,GAAG+E,iBACRuG,EAAO6C,OACP7C,EAAOwD,OAAOhP,MACdA,KAAKiP,cAAczD,EAAQ5C,GAC3B4C,EAAOgD,WACJxO,KAAKiP,cAAczD,EAAQ5C,KAM1C,SAAS4E,EAASrJ,EAASqH,EAAuB5C,GAC9C,MAAM7D,KAAEA,EAAIP,OAAEA,EAAM4D,gBAAEA,EAAewF,kBAAEA,GAAsBzJ,EAAGjE,GAEhEiE,EAAG2J,iBAAiBtC,GAEhBoC,GAAmB1L,EAAMsC,OAAOA,EAAkBL,EAAIqH,GAEtDzG,GAAM7C,EAAM6C,KAAKA,EAAgBZ,EAAIqH,GACrCpD,GAAiBjE,EAAGiE,gBAAgBoD,EAAQ5C,GAE5CpE,IAAWoJ,GAAmB1L,EAAMsC,OAAOA,EAAkBL,EAAIqH,EACzE,CC9Ha,MAAA0D,EAAgC,CAEzC,UAAA3B,CAAW/B,EAAuB5C,GAE9B,IAAI9E,EAAEA,EAACC,EAAEA,EAAC6H,MAAEA,EAAKuD,OAAEA,GAAWnP,KAAKI,SAASqK,UAC5C,MAAM1F,KAAEA,EAAIP,OAAEA,EAAM4D,gBAAEA,GAAoBpI,KAAKE,GAS/C,GAPI6E,IACAyG,EAAO4D,UAAYrK,EACnByG,EAAO6D,SAASvL,EAAGC,EAAG6H,EAAOuD,IAG7B/G,GAAiBpI,KAAKoI,gBAAgBoD,EAAQ5C,GAE9CpE,EAAQ,CAER,MAAMG,YAAEA,EAAWX,cAAEA,GAAkBhE,KAAKE,GAC5C,IAAK8D,EAAe,OAEpBwH,EAAO/E,UAAUjC,EAAQR,EAAehE,KAAKE,IAC7C,MAAMoP,EAAOtL,EAAgB,EAE7B,OAAQW,GACJ,IAAK,SACD6G,EAAO+D,WAAW,EAAG,EAAG3D,EAAOuD,GAC/B,MACJ,IAAK,SACDvD,GAAS5H,EAAemL,GAAUnL,EAC9B4H,EAAQ,GAAKuD,EAAS,GACtB3D,EAAO6C,OACPrO,KAAKwP,OAAOhE,EAAQ5C,GACpB4C,EAAO+D,WAAWzL,EAAIwL,EAAMvL,EAAIuL,EAAM1D,EAAOuD,GAC7C3D,EAAOgD,WACJhD,EAAO+D,WAAWzL,EAAIwL,EAAMvL,EAAIuL,EAAM1D,EAAOuD,GACpD,MACJ,IAAK,UACD3D,EAAO+D,WAAWzL,EAAIwL,EAAMvL,EAAIuL,EAAM1D,EAAQ5H,EAAemL,EAASnL,eC1B7EyL,QAAAA,GAAEC,EAAR,cAAiBC,OAQpB,OAAWC,GAAiB,OAAO5P,KAAKmB,QAAUnB,KAAKmB,OAAOyO,GAAG,CAQjE,WAAWC,GAAqB,OAAO,CAAK,CAwV5C,SAAWlM,CAAM5D,GAA+B+P,EAAAA,WAAWC,YAAY/P,KAAoBD,EAAM,CACjG,SAAW4D,GAAgC,OAAO3D,KAAKE,GAAGyD,KAAK,CAO/D,OAAWqM,GACP,MAAMC,KAAEA,GAASjQ,KAAKE,GAGtB,OAFA8P,EAAAA,IAAIlQ,IAAIE,KAAKiQ,KAAOA,GAAQ,IACvBA,GAAMjQ,KAAKkQ,gBAAgBF,OACzBA,EAAGA,IAId,WAAAG,CAAYvI,GACRY,MAAMZ,GAOH,KAAAwI,CAAMC,GAAoB,CAG1B,GAAAvQ,CAAI8H,EAAoB0I,GACvB1I,IACI0I,EACmB,SAAfA,GACAtQ,KAAKuQ,iBAAkB,EACvBnR,OAAOoR,OAAOxQ,KAAM4H,GACpB5H,KAAKuQ,iBAAkB,GACpBvQ,KAAKyQ,QAAQ7I,EAAM0I,GACvBlR,OAAOoR,OAAOxQ,KAAM4H,IAI5B,GAAA7G,CAAI2P,GACP,MAAuB,iBAATA,EAAoB1Q,KAAKE,GAAGyQ,WAAWD,GAAQ1Q,KAAKE,GAAGwI,eAAegI,GAGjF,eAAAE,GAAkD,CAKlD,IAAAC,CAAKC,EAA8DC,GAAyB,OAAOxO,EAAAA,OAAOC,KAAK,OAAO,CAEtH,OAAAwO,CAAQC,GAAiC,OAAOjR,KAAK6Q,KAAK,CAAEI,OAAM,CAElE,OAAAC,CAAQJ,EAA8DC,GAAmC,OAAOxO,EAAAA,OAAOC,KAAK,OAAO,CAEnI,MAAA2O,CAAOC,GAAwC,OAAOpR,KAAKkR,QAAQ,CAAEE,MAAK,CAK1E,OAAAC,CAAQC,EAAiBC,GAC5BvR,KAAKI,SAASoR,SACd,IAAIvB,EAAOsB,EAAgBvR,KAAKE,GAAGuR,gBAAkBzR,KAAKE,GAAG+P,KAE7D,OADKA,IAAMD,EAAGA,IAAClQ,IAAImQ,EAAO,IAAKjQ,KAAKkQ,gBAAgBF,QAC7CsB,EAAQnO,EAAAA,YAAYuO,aAAazB,GAAM,GAAQA,EAGnD,aAAA0B,CAAcL,EAAiBC,EAAyBK,GAC3D,OAAOzO,EAAAA,YAAY0O,UAAU7R,KAAKqR,QAAQC,EAAOC,GAAgBK,GAI9D,IAAAE,GACH9R,KAAKE,GAAGmH,iBAGL,cAAA0K,GACH,GAAI/R,KAAKE,GAAG6G,QAAS,CACjB,MAAMa,EAAO5H,KAAKE,IACjB0H,EAAKoK,MAAShS,KAAKiS,gBAAmBxP,EAAOyP,QAA4CtK,EAAKP,iBAAtCO,EAAKL,oBAAqB,GAIpF,kBAAA4K,GACH,GAAInS,KAAKE,GAAG+P,KAAM,CACd,MAAMrI,EAAO5H,KAAKE,GAClB0H,EAAK6J,gBAAkB7J,EAAK1C,aAAekN,EAAAA,WAAWC,OAAOzK,EAAKqI,KAAMrI,EAAK1C,aAAc0C,EAAK0K,iBAAmB1K,EAAKqI,KACpHrI,EAAKyE,YAAYpK,EAAUsQ,UAAUvS,MAAO4H,EAAK1C,eAItD,gBAAA4I,CAAiBtC,GACpBA,EAAOgH,YACPxS,KAAKyS,iBAAiBjH,EAAQxL,KAAKE,GAAGuR,iBAGnC,UAAAiB,CAAWlH,GACdA,EAAOgH,YACPxS,KAAKyS,iBAAiBjH,EAAQxL,KAAKE,GAAG+P,MAGnC,gBAAAwC,CAAiBE,EAAqB/K,GACzCA,EAAOgL,EAAAA,WAAWC,eAAeF,EAAQ/K,GAAQ5H,KAAKkQ,gBAAgByC,GAGnE,eAAAzC,CAAgByC,GACnB,MAAM7O,EAAEA,EAACC,EAAEA,EAAC6H,MAAEA,EAAKuD,OAAEA,GAAWnP,KAAKI,SAASqK,UAC9C,GAAIzK,KAAKE,GAAGgF,aAAc,CACtB,MAAMA,aAAEA,GAAiBlF,KAAKE,GAC9ByS,EAAOG,UAAUhP,EAAGC,EAAG6H,EAAOuD,EAAgC,iBAAjBjK,EAA4B,CAACA,GAAgBA,QACvFyN,EAAOI,KAAKjP,EAAGC,EAAG6H,EAAOuD,GAG7B,oBAAA6D,CAAqBxH,EAAuByH,GAC/C/Q,EAAM6C,KAAK/E,KAAKE,GAAGgT,iBAAkBlT,KAAMwL,GAKxC,OAAAiF,CAAQ0C,EAAoEpC,EAAwBqC,EAAsBC,GAC7H,OAAO9Q,EAAMA,OAACC,KAAK,WAGhB,WAAA8Q,CAAYF,EAAsBG,IAMlC,OAAOC,EAAqCzC,GAC/C,OAAOxO,EAAMA,OAACC,KAAK,UAGhB,UAAAiR,CAAWD,EAAqCzC,GACnD,OAAOxO,EAAMA,OAACC,KAAK,UAGhB,KAAAkR,CAAM9L,GACT,MAAM+L,EAAOtQ,EAAUA,WAACqQ,MAAM1T,KAAK4T,UAEnC,OADIhM,GAAMxI,OAAOoR,OAAOmD,EAAM/L,GACvB8H,EAAGmE,IAAIF,GAGlB,UAAOE,CAAIjM,EAAoB9D,EAAYC,EAAY6H,EAAgBuD,GACnE,OAAO7E,EAASA,UAACvJ,IAAI6G,EAAKqJ,KAAOjR,KAAK8T,UAAUC,MAAOnM,EAAM9D,EAAGC,EAAG6H,EAAOuD,GAG9E,iBAAO6E,GACHA,EAAUA,YAAVA,CAAahU,MAGjB,mBAAOiU,CAAarM,GAChBsM,EAAAA,cAActM,EAAdsM,CAAoBlU,KAAK8T,WAM7B,oBAAOK,CAAcC,IAErB,mBAAOC,CAAaC,IAEpB,mBAAOC,CAAaC,IAGb,OAAA3J,GACH7K,KAAK+E,KAAO/E,KAAKwE,OAAS,KACtBxE,KAAKyU,WAAWzU,KAAKsT,cACzB9K,MAAMqC,YA5gBKnM,EAAA,CADdwV,EAAAA,cAAczQ,IACWgM,WAAAqE,UAAA,UAAA,GAWnBpV,EAAA,CADNiC,KACuB8O,WAAAqE,UAAA,iBAAA,GAUjBpV,EAAA,CADNgW,EAAAA,SAAS,KACSjF,WAAAqE,UAAA,UAAA,GAGZpV,EAAA,CADNgW,EAAAA,SAAS,KACWjF,WAAAqE,UAAA,YAAA,GAGdpV,EAAA,CADNgW,EAAAA,SAAS,KACgBjF,WAAAqE,UAAA,iBAAA,GAKnBpV,EAAA,CADNiW,EAAAA,YAAY,iBACgBlF,WAAAqE,UAAA,iBAAA,GAGtBpV,EAAA,CADNkW,EAAAA,YAAY,IACWnF,WAAAqE,UAAA,eAAA,GAGjBpV,EAAA,CADNmW,EAAAA,aAAY,IACgBpF,WAAAqE,UAAA,eAAA,GAItBpV,EAAA,CADNiW,EAAAA,aAAY,IACWlF,WAAAqE,UAAA,cAAA,GAIjBpV,EAAA,CADNiW,EAAAA,aAAY,IACkBlF,WAAAqE,UAAA,WAAA,GAGxBpV,EAAA,CADNiW,EAAAA,aAAY,IACYlF,WAAAqE,UAAA,eAAA,GAIlBpV,EAAA,CADNoW,EAAAA,SAAS,IACarF,WAAAqE,UAAA,cAAA,GAIhBpV,EAAA,CADNqW,EAAAA,UAAS,IACwBtF,WAAAqE,UAAA,YAAA,GAG3BpV,EAAA,CADNsW,EAAAA,YAAW,IAC0BvF,WAAAqE,UAAA,cAAA,GAK/BpV,EAAA,CADNuW,EAAYA,aAAC,GAAG,IACCxF,WAAAqE,UAAA,SAAA,GAGXpV,EAAA,CADNuW,EAAYA,aAAC,GAAG,IACCxF,WAAAqE,UAAA,SAAA,GAIXpV,EAAA,CADNwW,EAAUA,WAAC,KAAK,IACKzF,WAAAqE,UAAA,aAAA,GAGfpV,EAAA,CADNwW,EAAUA,WAAC,KAAK,IACMzF,WAAAqE,UAAA,cAAA,GAIhBpV,EAAA,CADNyW,EAASA,UAAC,GAAG,IACS1F,WAAAqE,UAAA,cAAA,GAGhBpV,EAAA,CADNyW,EAASA,UAAC,GAAG,IACS1F,WAAAqE,UAAA,cAAA,GAIhBpV,EAAA,CADN0W,EAAYA,aAAC,GAAG,IACQ3F,WAAAqE,UAAA,gBAAA,GAIlBpV,EAAA,CADN0W,EAAYA,aAAC,GAAG,IACK3F,WAAAqE,UAAA,aAAA,GAGfpV,EAAA,CADN0W,EAAYA,aAAC,GAAG,IACK3F,WAAAqE,UAAA,aAAA,GAKfpV,EAAA,CADNuW,EAAYA,aAAC,GAAG,IACOxF,WAAAqE,UAAA,eAAA,GAGjBpV,EAAA,CADNuW,EAAYA,aAAC,GAAG,IACOxF,WAAAqE,UAAA,eAAA,GAIjBpV,EAAA,CADNuW,EAAYA,aAAC,GAAG,IACOxF,WAAAqE,UAAA,eAAA,GAGjBpV,EAAA,CADNuW,EAAYA,aAAC,GAAG,IACOxF,WAAAqE,UAAA,eAAA,GAKjBpV,EAAA,CADN2W,EAAcA,kBACwB5F,WAAAqE,UAAA,cAAA,GAGhCpV,EAAA,CADN2W,EAAcA,kBACwB5F,WAAAqE,UAAA,cAAA,GAKhCpV,EAAA,CADNgW,EAAAA,UAAS,IACYjF,WAAAqE,UAAA,YAAA,GAGfpV,EAAA,CADN4W,EAAAA,kBAAkB,IACQ7F,WAAAqE,UAAA,kBAAA,GAKpBpV,EAAA,CADN6W,EAAaA,iBACqD9F,WAAAqE,UAAA,YAAA,GAG5DpV,EAAA,CADN8W,EAAQA,YACwB/F,WAAAqE,UAAA,mBAAA,GAG1BpV,EAAA,CADN8W,EAAAA,UAAS,IACa/F,WAAAqE,UAAA,cAAA,GAOhBpV,EAAA,CADNwW,EAAAA,WAAW,IACgBzF,WAAAqE,UAAA,eAAA,GAmBrBpV,EAAA,CADNwW,EAAAA,YAAW,IACezF,WAAAqE,UAAA,iBAAA,GAKpBpV,EAAA,CADNwW,EAAUA,cACmBzF,WAAAqE,UAAA,kBAAA,GAGvBpV,EAAA,CADNwW,EAAUA,cACoBzF,WAAAqE,UAAA,mBAAA,GAKxBpV,EAAA,CADNgW,EAAAA,UAAS,IACyBjF,WAAAqE,UAAA,iBAAA,GAG5BpV,EAAA,CADNgW,EAAQA,YACiCjF,WAAAqE,UAAA,kBAAA,GAInCpV,EAAA,CADNgW,EAAAA,UAAS,IACgBjF,WAAAqE,UAAA,gBAAA,GAKnBpV,EAAA,CADN+W,EAAAA,SAAQ,IACiBhG,WAAAqE,UAAA,gBAAA,GAGnBpV,EAAA,CADN+W,EAAAA,QAAQ,SACgBhG,WAAAqE,UAAA,eAAA,GAGlBpV,EAAA,CADNgX,EAAAA,WAAW,SACejG,WAAAqE,UAAA,iBAAA,GAGpBpV,EAAA,CADN+W,EAAAA,SAAQ,IACehG,WAAAqE,UAAA,cAAA,GAGjBpV,EAAA,CADN+W,EAAAA,SAAQ,IACoBhG,WAAAqE,UAAA,mBAAA,GAGtBpV,EAAA,CADN+W,EAAAA,SAAQ,IACgBhG,WAAAqE,UAAA,eAAA,GAGlBpV,EAAA,CADN+W,EAAOA,WACkBhG,WAAAqE,UAAA,iBAAA,GAGnBpV,EAAA,CADNiX,EAAAA,WAAW,KAC+BlG,WAAAqE,UAAA,cAAA,GAQpCpV,EAAA,CADNiW,EAAWA,eACOlF,WAAAqE,UAAA,YAAA,GAKZpV,EAAA,CADNgX,EAAUA,cACYjG,WAAAqE,UAAA,cAAA,GAGhBpV,EAAA,CADNgX,EAAAA,WAAW,WACqBjG,WAAAqE,UAAA,mBAAA,GAG1BpV,EAAA,CADNgX,EAAAA,WAAW,IACyCjG,WAAAqE,UAAA,mBAAA,GAG9CpV,EAAA,CADNgX,EAAAA,YAAW,IACsBjG,WAAAqE,UAAA,wBAAA,GAG3BpV,EAAA,CADNgX,EAAAA,WAAW,SACiBjG,WAAAqE,UAAA,iBAAA,GAGtBpV,EAAA,CADNgX,EAAAA,WAAW,UACmBjG,WAAAqE,UAAA,kBAAA,GAGxBpV,EAAA,CADNgX,EAAUA,cACwCjG,WAAAqE,UAAA,mBAAA,GAG5CpV,EAAA,CADNgX,EAAAA,WAAW,IACejG,WAAAqE,UAAA,kBAAA,GAGpBpV,EAAA,CADNgX,EAAAA,WAAW,KACejG,WAAAqE,UAAA,kBAAA,GAYpBpV,EAAA,CADN8W,EAAAA,SAAS,IAC6C/F,WAAAqE,UAAA,oBAAA,GAGhDpV,EAAA,CADN8W,EAAQA,YACuB/F,WAAAqE,UAAA,uBAAA,GAKzBpV,EAAA,CADNgB,KAC8D+P,WAAAqE,UAAA,cAAA,GAGxDpV,EAAA,CADNgB,KACmE+P,WAAAqE,UAAA,mBAAA,GAG7DpV,EAAA,CADNgB,KACkC+P,WAAAqE,UAAA,YAAA,GAG5BpV,EAAA,CADNgB,KAC4C+P,WAAAqE,UAAA,sBAAA,GAGtCpV,EAAA,CADNgB,KAC4C+P,WAAAqE,UAAA,iBAAA,GAGtCpV,EAAA,CADNgB,KACkC+P,WAAAqE,UAAA,cAAA,GAuD5BpV,EAAA,CADNiW,EAAWA,eAC0BlF,WAAAqE,UAAA,wBAAA,GAG/BpV,EAAA,CADNgW,EAAAA,SAAS,MACuBjF,WAAAqE,UAAA,wBAAA,GAiB1BpV,EAAA,CADNgW,EAAAA,SAAS,CAAE,IACQjF,WAAAqE,UAAA,YAAA,GA2BbpV,EAAA,CADNkX,UAAQjG,EAAAA,KAAKmE,UAAU1D,QACoBX,WAAAqE,UAAA,QAAA,MAhYnCrE,QAAAA,GAAEC,EAAAhR,EAAA,CAHdmX,EAAAA,UAAUnK,GACVmK,EAAAA,UAAU3I,GACV4I,EAAWA,eACCrG,YCJAsG,QAAAA,MAAN,cAAoBtG,WAEvB,SAAWsE,GAAU,MAAO,OAAO,CAEnC,YAAWiC,GAAsB,OAAO,CAAI,CAc5C,WAAA7F,CAAYvI,GACRY,MAAMZ,GAGH,KAAAwI,CAAMxI,GACT5H,KAAKiW,cACLzN,MAAM4H,MAAMxI,GAGT,WAAAqO,GACEjW,KAAKsI,WAAUtI,KAAKsI,SAAW,IAMjC,GAAAxI,CAAI8H,EAAoB0I,GAC3B,GAAI1I,EACA,GAAIA,EAAKU,SAAU,CACf,MAAMA,SAAEA,GAAaV,SAEdA,EAAKU,SACZtI,KAAKsI,SAAWtI,KAAKkW,QAAUlW,KAAKiW,cAEpCzN,MAAM1I,IAAI8H,EAAM0I,GAEhBhI,EAASQ,SAAQqN,GAASnW,KAAKoW,IAAID,KACnCvO,EAAKU,SAAWA,OAEbE,MAAM1I,IAAI8H,EAAM0I,GAIxB,MAAAsD,CAAOhL,GACV,MAAMhB,EAAOY,MAAMoL,OAAOhL,GAE1B,OADAhB,EAAKU,SAAWtI,KAAKsI,SAAS+N,KAAIF,GAASA,EAAMvC,OAAOhL,KACjDhB,EAMJ,IAAA0O,CAAKC,EAAuBxF,GAAwD,CAKpF,KAAAyF,CAAML,EAAoDM,GAC7DzW,KAAKoW,IAAID,EAAOM,GAGb,QAAAC,CAASP,EAAoDQ,GAChE3W,KAAKoW,IAAID,EAAOnW,KAAKsI,SAASsO,QAAQD,GAAS,GAG5C,SAAAE,CAAUV,EAAoDW,GACjE9W,KAAKoW,IAAID,EAAOnW,KAAKsI,SAASsO,QAAQE,IAKnC,GAAAV,CAAIW,EAAqDC,IAEzD,OAAAC,IAAWC,GAAiC,CAE5C,MAAAC,CAAOJ,EAAiEK,IAExE,SAAAC,CAAUD,GAAkB,CAE5B,KAAAlB,MAhFQxX,EAAA,CADdwV,EAAAA,cAAcjM,IACc8N,cAAAjC,UAAA,UAAA,GAIdpV,EAAA,CADdwW,EAAAA,WAAW,IACkBa,cAAAjC,UAAA,aAAA,GAGfpV,EAAA,CADdwW,EAAAA,WAAW,IACmBa,cAAAjC,UAAA,cAAA,GAdtBiC,QAAKA,MAAArX,EAAA,CAFjBmX,EAAAA,UAAUyB,EAAAA,QACVtD,EAAUA,cACE+B,eCFb,MAAMxS,EAAQC,EAAAA,MAAMzC,IAAI,UAGXwW,QAAAA,OAAMC,EAAZ,cAAqBzB,cAKxB,SAAWhC,GAAU,MAAO,QAAQ,CAQpC,SAAW/S,GAAmB,OAAO,CAAK,CAC1C,OAAW4O,GAAiB,OAAO5P,KAAKwK,QAAUxK,IAAI,CAEtD,YAAWc,GAAsB,OAAO,CAAI,CAU5C,cAAW2W,GAAwB,OAAOzX,KAAK0X,WAAaC,EAAAA,SAASC,UAAU,CAC/E,gBAAWC,GAAiB,OAAQ7X,KAAK8X,SAAS5F,OAAO,CAkCzD,OAAW6F,GAAgB,OAAO/X,KAAKgY,SAAWhY,KAAKgY,SAASD,IAAM,EAAE,CACxE,eAAWE,GAA4B,OAAQjY,KAAKkY,aAAelY,KAAKkY,YAAYC,WAAc,CAAErU,EAAG9D,KAAK4L,MAAQ,EAAG7H,EAAG/D,KAAKmP,OAAS,EAAG,CAC3I,gBAAWiJ,GAA8B,OAAQpY,KAAKwL,QAAUxL,KAAKwL,OAAO6M,iBAAgB,IAAUC,EAAaA,eAAE,CAarH,WAAAnI,CAAYoI,EAA4B3Q,GACpCY,MAAMZ,GA3BH5H,KAAAwY,OAAwB,CAC3BC,OAAO,EACPC,UAAU,EACVrG,QAAQ,EACRsG,WAAY,KAUT3Y,KAAK4Y,MAAG,EAER5Y,KAAU6Y,WAAuB,GAE9B7Y,KAAa8Y,cAAe,GAG5B9Y,KAAW+Y,YAAgB,GAC3B/Y,KAAegZ,gBAAgB,GAC/BhZ,KAAmBiZ,oBAAgB,GACtCjZ,KAAgBkZ,iBAAgB,GAInClZ,KAAKuY,WAAaA,EACdA,IAAeA,EAAWY,MAAQZ,EAAW3M,QAAQ5L,KAAKoZ,KAAKb,GACnEf,EAAO3U,KAAKuT,IAAIpW,MAGb,IAAAoZ,CAAKb,EAA4Bc,GACpC,GAAIrZ,KAAKwL,OAAQ,OAEjB,IAAIiN,EACJ,MAAMD,OAAEA,GAAWxY,KAEnBA,KAAKsZ,YAAYtZ,MAEbqZ,IACArZ,KAAKqZ,UAAYA,EACjBrZ,KAAKuZ,UAAUF,GACfZ,EAAQY,EAAUnH,SAGlBqG,IACAvY,KAAKwK,OAAS6O,EACdrZ,KAAKwZ,SAASjB,EAAWvW,MACzBhC,KAAKwK,YAAS5F,EACdvB,aAAWmN,OAAOgI,EAAQD,IAI9B,MAAM/M,EAASxL,KAAKwL,OAASiO,EAAAA,QAAQjO,OAAOgN,GAC5CxY,KAAK8Y,cAAcY,KACf1Z,KAAKgY,SAAWyB,UAAQzB,SAAShY,KAAMwL,EAAQgN,GAC/CxY,KAAK8F,QAAU2T,EAAAA,QAAQ3T,QAAQ9F,KAAMwY,GACrCxY,KAAK8X,SAAW2B,UAAQ3B,SAAS9X,KAAMwY,IAGvCxY,KAAKgB,OAAOhB,KAAK2Z,WACrB3Z,KAAK4Z,kBAAkBpB,EAAQa,GAC/BrZ,KAAKmZ,KAAO3N,EAAO2N,KAGdE,IACDrZ,KAAK6Z,SAAWJ,UAAQI,SAAS7Z,MACjCA,KAAKkY,YAAcuB,EAAAA,QAAQvB,YAAYlY,KAAMwL,EAAQxL,KAAK6Z,SAAUrB,GAEhExY,KAAKkY,cACLlY,KAAK8Y,cAAcgB,QAAQ9Z,KAAKkY,aAChClY,KAAK+Z,iBAAmBN,EAAOA,QAACM,oBAGpC/Z,KAAKga,cAAgB,IAAIC,gBAEzBxB,EAAQD,EAAOC,OAGnBzY,KAAK0Y,SAAWF,EAAOE,SACvB1Y,KAAK+E,KAAOyT,EAAOzT,KACnB/E,KAAKga,cAAc5D,IAAI5K,GAGvBxL,KAAKka,iBAEDzB,IAAOzY,KAAKma,aAAeC,WAAWpa,KAAKyY,MAAM4B,KAAKra,QAE1Dsa,aAAWC,IAAIva,KAAKwa,YACpBxa,KAAKya,SAGF,MAAAA,IAEA,QAAAjB,CAASpG,GAAkB,CAE3B,GAAAtT,CAAI8H,EAAoB0I,GAC3BtQ,KAAK0a,UAAS,KAAQlS,MAAM1I,IAAI8H,EAAM0I,EAAW,IAG9C,KAAAmI,GACHkC,aAAa3a,KAAKma,eACbna,KAAKkS,SAAWlS,KAAKwL,SACtBxL,KAAKkS,SAAU,EACflS,KAAK4a,MAAQ5a,KAAK6a,WAAWC,EAAWA,YAACC,SAAW/a,KAAK6a,WAAWC,EAAWA,YAACE,OAChFhb,KAAK8Y,cAAchQ,SAAQhB,GAAQA,EAAK2Q,UACnCzY,KAAKgB,OAAOhB,KAAKgY,SAASiD,UAIhC,IAAAC,GACHP,aAAa3a,KAAKma,cACdna,KAAKkS,SAAWlS,KAAKwL,SACrBxL,KAAK8Y,cAAchQ,SAAQhB,GAAQA,EAAKoT,SACxClb,KAAKkS,SAAU,EACflS,KAAK6a,WAAWC,EAAWA,YAACK,OAI7B,YAAAC,GACHpb,KAAK8X,SAASW,QACdzY,KAAKqb,eAGF,UAAAC,GACHtb,KAAKqb,eACLrb,KAAK8X,SAASoD,OAGX,MAAAK,CAAOC,GACV,MAAM5T,EAAOvE,EAAAA,WAAWoY,UAAU,CAAA,EAAID,EAAM3S,EAAAA,iBAC5CzJ,OAAOsc,KAAK9T,GAAMkB,SAAQjK,GAAQmB,KAAanB,GAAO+I,EAAK/I,KAGtD,WAAA8c,CAAYC,EAAsBC,GACvC,MAAM7D,SAAEA,GAAahY,KACjBgY,IACAA,EAAS8D,SAASF,EAAS,IAAIG,EAAAA,OAAOH,GAAU5b,KAAKwL,OAAOoQ,QACxD5b,KAAK0X,YAAWmE,EAAO7D,EAASiD,SAAWjD,EAASxG,WAIzD,aAAAwK,CAAcC,GAAS,GACtBjc,KAAKgY,UAAUhY,KAAKgY,SAASxG,OAAOyK,GAGrC,YAAAC,CAAaC,GAChB,MAAM3c,EAAIQ,KAAKkY,YACX1Y,IAAG2c,EAAS3c,EAAE4c,UAAUD,GAAU3c,EAAE0c,gBAGrC,gBAAAG,GACHrc,KAAKsc,WAAatc,KAAKwL,OAAOoQ,OAAOlI,QAAQ7G,OAAO7M,KAAKwY,OAAOG,YAG1D,UAAA4D,CAAWf,GACjB,MAAMhQ,OAAEA,GAAWxL,KACnB,IAAKwL,GAAUA,EAAOgR,WAAWhB,GAAO,OACxC,MAAMiB,EAAMpZ,EAAAA,WAAWoY,UAAU,CAAE,EAAEzb,KAAKwL,OAAQ3C,mBAClD2C,EAAO+P,OAAOC,GACdxb,KAAKqc,mBACLrc,KAAK0c,WAAW,IAAIC,EAAWA,YAACnB,EAAMiB,IAGhC,UAAAC,CAAWE,GACjB5c,KAAK6c,UAAUD,GACfvZ,EAAAA,WAAWoY,UAAUzb,KAAKE,GAAI0c,EAAO/T,EAAAA,iBACrCuR,YAAW,KAAYpa,KAAKga,eAAeha,KAAKga,cAAc8C,eAAe,GAAI,GAG3E,QAAAnD,IAEA,SAAAJ,CAAU3J,GAChB5P,KAAK6Z,SAAWjK,EAAIiK,SACpB7Z,KAAKkY,YAActI,EAAIsI,YAEvBlY,KAAKga,cAAgBpK,EAAIoK,cACzBha,KAAK+Z,iBAAmBnK,EAAImK,iBAGzB,WAAAT,CAAYnY,GACfnB,KAAKmB,OAASA,EACdnB,KAAK+c,QAAU,EAGT,iBAAAnD,CAAkBpB,EAAuBa,GAC1CA,IACIb,EAAO5M,OAAU4M,EAAOrJ,SAAQnP,KAAKgd,WAAa,IAAIC,EAAUA,WAACzE,IACtExY,KAAKwL,OAAO0R,gBAAgBld,KAAKgd,WAAYhd,KAAK0c,WAAWrC,KAAKra,QAIjE,SAAAC,CAAU8C,EAAkBoa,GAcjC,OAbInd,KAAKwL,SACD3C,EAAeA,gBAACuU,SAASra,GAEzB/C,KAAKqd,mBAAmBta,EAAUoa,GACd,SAAbpa,EACP/C,KAAKsd,aAAaH,GACE,aAAbpa,EACF/C,KAAKwK,SAAQxK,KAAKwL,OAAOkN,SAAWyE,GACrB,WAAbpa,IACP/C,KAAKwL,OAAO+R,OAASJ,EACrB/C,YAAW,IAAMpa,KAAKwK,QAAUxK,KAAKwK,OAAOgT,2BAG7ChV,MAAMvI,UAAU8C,EAAUoa,GAG5B,SAAAM,CAAU1a,GACf,OAAI/C,KAAKwL,QAAU3C,kBAAgBuU,SAASra,GAAkB/C,KAAKwL,OAAOzI,GACnEyF,MAAMiV,UAAU1a,GAGjB,kBAAAsa,CAAmBta,EAAkBoa,GAC3C,MAAMvV,EAAOvE,EAAAA,WAAWoY,UAAU,CAAE,EAAEzb,KAAKwL,OAAQ3C,mBACnDjB,EAAK7E,GAAa/C,KAAKwY,OAAmBzV,GAAYoa,EAClDA,GAAUnd,KAAKwL,OAAOkS,iBAC1B1d,KAAKuc,WAAW3U,GAGV,YAAA0V,CAAaH,GACnBnd,KAAKwY,OAAOzT,KAAOoY,EACfnd,KAAKwL,OAAOmS,qBAAsB3d,KAAKwL,OAAOoS,gBAAkBT,EAC/Dnd,KAAK2b,cAGJ,WAAAkC,GACN7d,KAAK8d,SAAU,EAGT,SAAAC,GACN/d,KAAK4a,OAAQ,EACb5a,KAAK6a,WAAWC,EAAWA,YAACkD,cAC5Bhe,KAAK6a,WAAWC,EAAWA,YAACmD,OAC5Bje,KAAK6a,WAAWC,EAAWA,YAACoD,aAC5B5D,aAAWC,IAAIva,KAAK+Y,aAGd,aAAAoF,GACFne,KAAK0X,YACT1X,KAAK0X,WAAY,EACjB1X,KAAK6a,WAAWC,EAAWA,YAACsD,YAC5B9D,aAAWC,IAAIva,KAAKgZ,kBAGd,aAAAqF,GACN,MAAMC,KAAEA,EAAM1S,MAAO2S,EAAYpP,OAAQqP,GAAgBxe,KAAKwY,OAC9D,GAAI8F,EAAM,CACN,IAAI1S,MAAEA,EAAKuD,OAAEA,EAAMsP,WAAEA,GAAeze,KACpC,MAAM4b,EAAkB,QAAT0C,EAAiBte,KAAK0e,eAAiB1e,KAAKsE,QACtDia,IAAY3S,EAAQO,KAAKC,IAAI,EAAGwP,EAAO9X,EAAI8X,EAAOhQ,QAClD4S,IAAarP,EAAShD,KAAKC,IAAI,EAAGwP,EAAO7X,EAAI6X,EAAOzM,SACzDnP,KAAKuc,WAAW,CAAE3Q,QAAOuD,SAAQsP,eAGhCze,KAAK4a,OAAO5a,KAAK+d,YAGhB,cAAAY,GACN,GAAI3e,KAAK0X,UAAW,CAChB4C,aAAWC,IAAIva,KAAKkZ,kBAEpB,MAAMzB,WAAEA,GAAezX,KACnByX,IAAezX,KAAK4e,eAAe5e,KAAK6e,uBACvCpH,IACDzX,KAAK4e,eAAgB,EACrB5e,KAAKgc,sBAENhc,KAAKgc,gBAGN,oBAAA6C,CAAqBC,GAAgB,GAC3C9e,KAAK+e,YAAW,KACR/e,KAAKyX,aACDqH,GAAM9e,KAAK6a,WAAWC,EAAWA,YAACkE,gBACtC1E,aAAWC,IAAIva,KAAKiZ,qBACpBjZ,KAAK4e,eAAgB,MAKvB,aAAAK,GACFjf,KAAK8F,QAAQoZ,iBAAmBlf,KAAKkY,aACrClY,KAAK+e,YAAW,IAAM/e,KAAKkY,YAAYgE,iBAIxC,QAAAxB,CAAS5S,EAAiBuS,GACzBA,IAAMvS,EAAOA,EAAKuS,KAAKA,IACtBra,KAAKwa,aAAYxa,KAAKwa,WAAa,IACxCxa,KAAKwL,OAAS1D,IAAS9H,KAAKwa,WAAWd,KAAK5R,GAGzC,SAAAqX,CAAUrX,EAAiBuS,GAC1BA,IAAMvS,EAAOA,EAAKuS,KAAKA,IAC3Bra,KAAK4a,MAAQ9S,IAAS9H,KAAK+Y,YAAYW,KAAK5R,GAGzC,aAAAsX,CAActX,EAAiBuS,GAC9BA,IAAMvS,EAAOA,EAAKuS,KAAKA,IAC3Bra,KAAK0X,UAAY5P,IAAS9H,KAAKgZ,gBAAgBU,KAAK5R,GAGjD,iBAAAuX,CAAkBvX,EAAiBuS,GAClCA,IAAMvS,EAAOA,EAAKuS,KAAKA,IAC3Bra,KAAKiZ,oBAAoBS,KAAK5R,GAC1B9H,KAAK4e,cAAe5e,KAAK6e,sBAAqB,GACxC7e,KAAKkS,SAASlS,KAAKyY,QAG1B,UAAAsG,CAAWjX,EAAiBuS,EAAgBiF,GAC3CjF,IAAMvS,EAAOA,EAAKuS,KAAKA,IAC3B,MAAMxX,EAAO7C,KAAKkZ,iBAClB,GAAIoG,GACA,IAAK,IAAI9f,EAAI,EAAGA,EAAIqD,EAAK3D,OAAQM,IAC7B,GAAIqD,EAAKrD,KAAOsI,EAAM,CAAEjF,EAAK0c,OAAO/f,EAAG,GAAI,YAE5CqD,EAAK6W,KAAK5R,GACjB9H,KAAKgc,gBAIF,IAAAwD,CAAKC,EAAsBC,EAAwBC,EAAuBC,GAC7E,OAAOrd,EAAMA,OAACC,KAAK,QAKhB,YAAAqd,CAAaC,EAAeC,GAA6B,MAAO,CAAEjc,EAAGgc,EAAO/b,EAAGgc,EAAO,CACtF,aAAAC,CAAcC,GAA+B,OAAOA,CAAW,CAG/D,qBAAAC,CAAsBC,EAA+BC,GACxD,OAAOpgB,KAAKkY,aAAelY,KAAKkY,YAAYmI,SAASF,EAAaC,GAG/D,oBAAAE,CAAqBH,EAA+BC,GACvD,OAAOpgB,KAAKugB,aAAavgB,KAAKkgB,sBAAsBC,EAAaC,IAG9D,qBAAAI,CAAsBC,GACzB,MAAM3c,EAAEA,EAACC,EAAEA,GAAM/D,KAAKoY,aACtB,MAAO,CAAEtU,EAAGA,EAAI2c,EAAW3c,EAAGC,EAAGA,EAAI0c,EAAW1c,GAG7C,kBAAA2c,GACH1gB,KAAKwL,QAAUxL,KAAKwL,OAAOkV,qBAIxB,YAAAC,CAAaC,GAAW,CAErB,UAAA/F,CAAW7Y,GACjBhC,KAAK6c,UAAU,IAAI/B,EAAWA,YAAC9Y,EAAMhC,OAG/B,cAAAka,GACN,MAAM2G,EAAQC,EAAAA,IAAIrI,MAAM,eAAiBzY,KAAK+gB,WAC9C/gB,KAAKghB,KAAK,CACN,CAAClG,EAAAA,YAAYE,MAAO,IAAM8F,EAAGA,IAACG,IAAIJ,IAClC,CAACK,EAAWA,YAAClG,MAAOhb,KAAKqc,iBAAkBrc,MAC3C,CAACmhB,EAAWA,YAACnG,MAAOhb,KAAK6d,YAAa7d,MACtC,CAACmhB,cAAYC,IAAKphB,KAAKme,cAAene,QAE1CA,KAAK6Y,WAAWa,KACZ1Z,KAAKqhB,IAAI,CACL,CAACC,EAAUA,WAACC,KAAMvhB,KAAKif,cAAejf,MACtC,CAACkhB,EAAWA,YAACE,IAAKphB,KAAKqe,cAAere,MACtC,CAACmhB,cAAYK,KAAMxhB,KAAK2e,eAAgB3e,SAK1C,oBAAAyhB,GACNzhB,KAAK0hB,KAAK1hB,KAAK6Y,YAGV,OAAAhO,CAAQgR,GACb,MAAM8F,EAAY,KACd,IAAK3hB,KAAK4hB,UAAW,CACjBpK,EAAO3U,KAAKsU,OAAOnX,MACnB,IACIA,KAAKkb,OACLlb,KAAK6c,UAAU,IAAI/B,EAAAA,YAAYA,EAAAA,YAAYsG,IAAKphB,OAChDA,KAAKyhB,uBAELzhB,KAAK8Y,cAAchQ,SAAQhB,KAAU9H,KAAKwK,QAAU1C,IAAS9H,KAAKkY,cAAgBpQ,EAAK+C,YACvF7K,KAAK8Y,cAAc5Z,OAAS,EAEvBc,KAAKwK,SACFxK,KAAK6Z,UAAU7Z,KAAK6Z,SAAShP,UAC7B7K,KAAK+Z,kBAAkB/Z,KAAK+Z,iBAAiBlP,UACjD7K,KAAKga,cAAcnP,WAGvB7K,KAAKwL,OAAOX,UAEZ7K,KAAKwY,OAAOW,KAAOnZ,KAAKmZ,KAAOnZ,KAAKqZ,UAAY,KAC5CrZ,KAAKuY,aAAYvY,KAAKuY,WAAWY,KAAO,MAE5C3Q,MAAMqC,UAENuP,YAAW,KAAQyH,EAAYA,aAAC/E,eAAe,GAAI,KACrD,MAAOgF,GACLve,EAAMwe,MAAMD,MAIxBjG,EAAO8F,IAAcvH,WAAWuH,KA3c7BpK,QAAAA,OAAA1U,KAAO,IAAImf,WAMHtjB,EAAA,CADdwV,EAAAA,cAAczL,IACe8O,eAAAzD,UAAA,UAAA,GAGfpV,EAAA,CADdwW,EAAUA,cACwBqC,eAAAzD,UAAA,kBAAA,GAX1ByD,QAAAA,OAAMC,EAAA9Y,EAAA,CADlBsV,EAAUA,cACEuD,gBCAA0K,QAAAA,KAAN,cAAmBxS,WAEtB,SAAWsE,GAAU,MAAO,MAAM,CAKlC,WAAA5D,CAAYvI,GACRY,MAAMZ,KAHKlJ,EAAA,CADdwV,EAAAA,cAAcjL,IACagZ,aAAAnO,UAAA,UAAA,GALnBmO,QAAIA,KAAAvjB,EAAA,CAHhBmX,EAAAA,UAAU3G,GACV4G,gBACA9B,EAAUA,cACEiO,cCFb,MAAMC,KAAEA,EAAI9L,IAAEA,WAAKgH,GAAa+E,EAAYA,aACtCpP,EAAOkP,QAAAA,KAAKnO,UAAWsO,EAAQrM,QAAKA,MAACjC,UACrCuO,EAAuB,CAAiB,EAIjCC,QAAAA,IAAN,cAAkBvM,cAErB,SAAWhC,GAAU,MAAO,KAAK,CAEjC,gBAAWwO,GAA0B,OAAO,CAAI,CAuBhD,WAAApS,CAAYvI,GACRY,MAAMZ,GACN5H,KAAKI,SAASC,eAAiBL,KAAKI,SAASE,eAI1C,oBAAAqL,GAAiC,OAAO,CAAC,CAGzC,wBAAA6W,GAAqC,OAAO,CAAC,CAE7C,oBAAAhW,GAAiC,OAAOxM,KAAKwiB,6BAA8B,CAAE,CAI7E,qBAAAC,IAIA,iBAAAC,CAAkBC,GACrB,MAAM/a,EAAO5H,KAAKE,GAElB,GAAIF,KAAKsI,SAASpJ,SAAWc,KAAK4iB,YAE9B,GAAIhb,EAAKlC,WAAY,CAEbkC,EAAKvC,cAAcrF,KAAK6iB,gBAE5Bra,MAAMka,oBAEN,MAAMjY,UAAEA,GAAczK,KAAKI,SAEtBwH,EAAKjC,aACFiC,EAAKtC,aACLmF,EAAUmB,OAASnB,EAAU3G,EAAG2G,EAAU3G,EAAI,EAC9C2G,EAAU0E,OAASvH,EAAKuH,OAAQ1E,EAAU1G,EAAI,IAE9C0G,EAAU0E,QAAU1E,EAAU1G,EAAG0G,EAAU1G,EAAI,EAC/C0G,EAAUmB,MAAQhE,EAAKgE,MAAOnB,EAAU3G,EAAI,IAIpD9D,KAAK8iB,2BAEF9iB,KAAKyiB,6BAETziB,KAAKyiB,wBAIT,oBAAAM,IAEA,oBAAAC,GACH,IAAIza,EACJ,MAAM0a,aAAEA,GAAiBjjB,KAAKI,SAE1BJ,KAAKsI,SAASpJ,QACdsJ,MAAMwa,uBACNd,EAAKG,EAAsBY,GAC3BjjB,KAAKkjB,2BAEL3a,GAAc6U,EAAS6F,EAAcZ,GACjC9Z,GAAmC,SAArBvI,KAAKE,GAAGmI,UAAqB+N,EAAI6M,EAAcZ,IAC9DriB,KAAKkjB,2BAEZ7f,EAAAA,WAAWD,SAASpD,KAAM,aAAcuI,GAIrC,wBAAA2a,IAGA,kBAAAC,IAEA,cAAAvY,GACHpC,MAAMoC,iBACN5K,KAAKmjB,qBAKF,YAAAC,CAAaC,EAAwBtS,IAGrC,aAAAuS,CAAcD,EAAwBtS,IAGtC,QAAAwS,CAAS/X,EAAuB5C,GAC/B5I,KAAKE,GAAGkI,gBACRpI,KAAKojB,aAAa5X,EAAQ5C,IAE1B5I,KAAKojB,aAAa5X,EAAQ5C,GACtB5I,KAAKsI,SAASpJ,QAAQc,KAAKsjB,cAAc9X,EAAQ5C,IAKtD,aAAAqG,CAAczD,EAAuB5C,GACxC5I,KAAKsjB,cAAc9X,EAAQ5C,GAEvB5I,KAAKE,GAAGqE,cACRiH,EAAOqD,SAAS7O,KAAKqE,YACrBrE,KAAK8N,iBAAiBtC,MA1Hf9M,EAAA,CADdwV,EAAAA,cAAchM,IACYoa,YAAAxO,UAAA,UAAA,GAIZpV,EAAA,CADdwW,EAAAA,WAAW,MACkBoN,YAAAxO,UAAA,aAAA,GAGfpV,EAAA,CADdwW,EAAAA,WAAW,MACmBoN,YAAAxO,UAAA,cAAA,GAGxBpV,EAAA,CADNgW,EAAAA,UAAS,IACsB4N,YAAAxO,UAAA,sBAAA,GAMjBpV,EAAA,CADd8kB,EAAAA,uBAAuB,SACWlB,YAAAxO,UAAA,gBAAA,GAU5BpV,EAAA,CADNkX,EAAOA,QAAC7C,EAAKpH,uBACoC2W,YAAAxO,UAAA,uBAAA,MAG3CpV,EAAA,CADNkX,EAAOA,QAAC7C,EAAKvG,uBACwC8V,YAAAxO,UAAA,2BAAA,MAM/CpV,EAAA,CADNkX,EAAOA,QAAC7C,EAAK2P,oBAC0BJ,YAAAxO,UAAA,wBAAA,MAmCjCpV,EAAA,CADNkX,EAAOA,QAAC7C,EAAKgQ,uBACyBT,YAAAxO,UAAA,uBAAA,MAmBhCpV,EAAA,CADNkX,EAAOA,QAAC7C,EAAKiQ,uBAC6BV,YAAAxO,UAAA,2BAAA,MAGpCpV,EAAA,CADNkX,EAAOA,QAAC7C,EAAKnI,iBACuB0X,YAAAxO,UAAA,qBAAA,MAS9BpV,EAAA,CADNkX,EAAOA,QAAC7C,EAAKwQ,WACiEjB,YAAAxO,UAAA,eAAA,MAGxEpV,EAAA,CADNkX,EAAOA,QAACwM,EAAMmB,WACiEjB,YAAAxO,UAAA,gBAAA,MA/GvEwO,QAAGA,IAAA5jB,EAAA,CAFfoX,gBACA9B,EAAUA,cACEsO,aCPAmB,QAAAA,MAAN,cAAoBnB,YAEvB,SAAWvO,GAAU,MAAO,OAAO,CAEnC,WAAWlE,GAAqB,OAAO,CAAI,CAW3C,WAAAM,CAAYvI,GACRY,MAAMZ,KATKlJ,EAAA,CADdwV,EAAAA,cAAcnL,IACc0a,cAAA3P,UAAA,UAAA,GAGdpV,EAAA,CADdiW,EAAAA,YAAY,YACc8O,cAAA3P,UAAA,YAAA,GAGZpV,EAAA,CADd8kB,EAAAA,uBAAuB,SACWC,cAAA3P,UAAA,gBAAA,GAb1B2P,QAAKA,MAAA/kB,EAAA,CADjBsV,EAAUA,cACEyP,eCAb,MAAMC,OAAEA,EAAQC,UAAAA,GAASC,QAAEA,IAAYC,EAAqBA,sBAG/CC,QAAAA,QAAN,cAAsBrU,WAEzB,SAAWsE,GAAU,MAAO,SAAS,CAcrC,WAAA5D,CAAYvI,GACRY,MAAMZ,GAGH,YAAAmc,GAEH,MAAMnY,MAAEA,EAAKuD,OAAEA,EAAM6U,YAAEA,EAAWC,WAAEA,EAAUC,SAAEA,GAAalkB,KAAKE,GAC5DikB,EAAKvY,EAAQ,EAAGwY,EAAKjV,EAAS,EAE9Bc,EAAiBjQ,KAAKE,GAAG+P,KAAO,GAElC+T,GAEIC,GAAcC,GACVF,EAAc,GAAGJ,GAAQ3T,EAAMkU,EAAIC,EAAID,EAAKH,EAAaI,EAAKJ,EAAa,EAAGC,EAAYC,GAAU,GACxGN,GAAQ3T,EAAMkU,EAAIC,EAAID,EAAIC,EAAI,EAAGF,EAAUD,GAAY,GACnDD,EAAc,GAAGL,GAAU1T,KAE3B+T,EAAc,IACdJ,GAAQ3T,EAAMkU,EAAIC,EAAID,EAAKH,EAAaI,EAAKJ,GAC7CN,EAAOzT,EAAMrE,EAAOwY,IAExBR,GAAQ3T,EAAMkU,EAAIC,EAAID,EAAIC,EAAI,EAAG,IAAK,GAAG,IAIzCC,EAAQA,SAACC,iBAAgBtkB,KAAKE,GAAG+P,KAAOjQ,KAAKqR,SAAQ,KAIrD4S,GAAcC,GACdR,EAAOzT,EAAMkU,EAAIC,GACjBR,GAAQ3T,EAAMkU,EAAIC,EAAID,EAAIC,EAAI,EAAGH,EAAYC,GAAU,GACvDP,GAAU1T,IAEV2T,GAAQ3T,EAAMkU,EAAIC,EAAID,EAAIC,KA9CvB1lB,EAAA,CADdwV,EAAAA,cAAchL,IACgB4a,gBAAAhQ,UAAA,UAAA,GAGxBpV,EAAA,CADN8W,EAAAA,SAAS,IACkBsO,gBAAAhQ,UAAA,mBAAA,GAGrBpV,EAAA,CADN8W,EAAAA,SAAS,IACiBsO,gBAAAhQ,UAAA,kBAAA,GAGpBpV,EAAA,CADN8W,EAAAA,SAAS,IACesO,gBAAAhQ,UAAA,gBAAA,GAdhBgQ,QAAOA,QAAAplB,EAAA,CADnBsV,EAAUA,cACE8P,iBCFb,MAAMJ,OAAEA,GAAQa,OAAAA,cAAQC,IAAeX,EAAqBA,uBACtDY,OAAEA,GAAMC,SAAEA,GAAQC,YAAEA,GAAWC,aAAEA,IAAiBC,EAAWA,aAC7DC,SAAEA,IAAaC,EAAUA,WAIlBC,QAAAA,KAAN,cAAmBvV,WAEtB,SAAWsE,GAAU,MAAO,MAAM,CAoBlC,WAAWkR,GACP,MAAMrZ,MAAEA,EAAKsZ,SAAEA,GAAallB,KAAKE,GAC3BilB,EAAiBC,EAAAA,eAKvB,OAHIxZ,IAAOuZ,EAAGrhB,EAAI8H,GACdsZ,GAAUT,GAAOU,EAAID,GAElBC,EAGX,WAAWF,CAAQllB,GACfC,KAAK4L,MAAQ+Y,GAAYC,GAAc7kB,GACvCC,KAAKklB,SAAWR,GAASE,GAAc7kB,GACnCC,KAAKmP,SAAQnP,KAAKmP,OAAS,GAInC,WAAAgB,CAAYvI,GACRY,MAAMZ,GAGH,YAAAmc,GAEH,MAAMnc,EAAO5H,KAAKE,GACZ+P,EAAiBrI,EAAKqI,KAAO,GAE/BrI,EAAKyd,OAELb,GAAWvU,EAAMrI,EAAKyd,QAAQ,EAAOzd,EAAK0d,SAI1C5B,GAAOzT,EAAM,EAAG,GAChBsU,GAAOtU,EAAMjQ,KAAK4L,MAAO,IAK1B,kBAAAuG,GACH,MAAMvK,EAAO5H,KAAKE,IACbF,KAAK4iB,aAAehb,EAAKyd,QAAUzd,EAAK0J,OACzCkT,GAAW5c,EAAK6J,gBAAkB,GAAI7J,EAAKyd,OAAQzd,EAAK0J,MAAO1J,EAAK0d,QAChE1d,EAAKyE,YAAYpK,EAAUsQ,UAAUvS,MAAM,IAC5CwI,MAAM2J,qBAGV,iBAAAuQ,GACC1iB,KAAKqlB,OACLP,GAAS9kB,KAAKE,GAAGuR,gBAAiBzR,KAAKI,SAASqK,WAC7CjC,MAAMka,sBAlEFhkB,EAAA,CADdwV,EAAAA,cAAclL,IACagc,aAAAlR,UAAA,UAAA,GAGbpV,EAAA,CADd6mB,EAAAA,uBAAuB,WACiBP,aAAAlR,UAAA,mBAAA,GAG1BpV,EAAA,CADdwW,EAAAA,WAAW,IACmB8P,aAAAlR,UAAA,cAAA,GAGxBpV,EAAA,CADN8W,EAAQA,YAC8BwP,aAAAlR,UAAA,cAAA,GAGhCpV,EAAA,CADN8W,EAAAA,SAAS,IACqBwP,aAAAlR,UAAA,aAAA,GAGhBpV,EAAA,CADd8W,EAAAA,UAAS,IACqBwP,aAAAlR,UAAA,cAAA,GApBtBkR,QAAIA,KAAAtmB,EAAA,CADhBsV,EAAUA,cACEgR,cCNb,MAAMQ,IAAEA,GAAKC,IAAAA,MAAKC,IAAOvZ,MACnBuX,OAAEA,GAAMa,OAAEA,GAAMZ,UAAEA,GAASa,WAAEA,IAAeX,EAAqBA,sBACjE8B,GAAOX,QAAIA,KAAClR,UAIL8R,QAAAA,QAAN,cAAsBnW,WAEzB,SAAWsE,GAAU,MAAO,SAAS,CAcrC,WAAA5D,CAAYvI,GACRY,MAAMZ,GAGH,YAAAmc,GAEH,MAAM9T,EAAiBjQ,KAAKE,GAAG+P,KAAO,GAEtC,GAAIjQ,KAAKE,GAAGmlB,OAERb,GAAWvU,EAAMjQ,KAAKE,GAAGmlB,QAAQ,GAAO,OAErC,CAEH,MAAMzZ,MAAEA,EAAKuD,OAAEA,EAAM0W,MAAEA,GAAU7lB,KAAKE,GAChCikB,EAAKvY,EAAQ,EAAGwY,EAAKjV,EAAS,EAEpCuU,GAAOzT,EAAMkU,EAAI,GAEjB,IAAK,IAAI3kB,EAAI,EAAGA,EAAIqmB,EAAOrmB,IACvB+kB,GAAOtU,EAAMkU,EAAKA,EAAKqB,GAAS,EAAJhmB,EAAQkmB,GAAMG,GAAQzB,EAAKA,EAAKqB,GAAS,EAAJjmB,EAAQkmB,GAAMG,IAKvFlC,GAAU1T,GAIP,kBAAAkC,IAGA,iBAAAuQ,MA3CQhkB,EAAA,CADdwV,EAAAA,cAAc/K,IACgByc,gBAAA9R,UAAA,UAAA,GAGxBpV,EAAA,CADN8W,EAAAA,SAAS,IACYoQ,gBAAA9R,UAAA,aAAA,GAGfpV,EAAA,CADN8W,EAAQA,YAC8BoQ,gBAAA9R,UAAA,cAAA,GAGhCpV,EAAA,CADN8W,EAAAA,SAAS,IACqBoQ,gBAAA9R,UAAA,aAAA,GA+BxBpV,EAAA,CADNkX,EAAOA,QAAC+P,GAAKxT,qBACuByT,gBAAA9R,UAAA,qBAAA,MAG9BpV,EAAA,CADNkX,EAAOA,QAAC+P,GAAKjD,oBACsBkD,gBAAA9R,UAAA,oBAAA,MAhD3B8R,QAAOA,QAAAlnB,EAAA,CAFnBoX,gBACA9B,EAAUA,cACE4R,iBCPb,MAAMJ,IAAEA,GAAGC,IAAEA,GAAGC,GAAEA,IAAOvZ,MACnBuX,OAAEA,GAAMa,OAAEA,GAAMZ,UAAEA,IAAcE,EAAqBA,sBAI9CiC,QAAAA,KAAN,cAAmBrW,WAEtB,SAAWsE,GAAU,MAAO,MAAM,CAWlC,WAAA5D,CAAYvI,GACRY,MAAMZ,GAGH,YAAAmc,GAEH,MAAMnY,MAAEA,EAAKuD,OAAEA,EAAM4W,QAAEA,EAAO/B,YAAEA,GAAgBhkB,KAAKE,GAC/CikB,EAAKvY,EAAQ,EAAGwY,EAAKjV,EAAS,EAE9Bc,EAAiBjQ,KAAKE,GAAG+P,KAAO,GACtCyT,GAAOzT,EAAMkU,EAAI,GAEjB,IAAK,IAAI3kB,EAAI,EAAGA,EAAc,EAAVumB,EAAavmB,IAC7B+kB,GAAOtU,EAAMkU,GAAM3kB,EAAI,GAAM,EAAI2kB,EAAKA,EAAKH,GAAewB,GAAKhmB,EAAIkmB,GAAMK,GAAU3B,GAAM5kB,EAAI,GAAM,EAAI4kB,EAAKA,EAAKJ,GAAeyB,GAAKjmB,EAAIkmB,GAAMK,IAGnJpC,GAAU1T,KAxBCvR,EAAA,CADdwV,EAAAA,cAAc9K,IACa0c,aAAAhS,UAAA,UAAA,GAGrBpV,EAAA,CADN8W,EAAAA,SAAS,IACcsQ,aAAAhS,UAAA,eAAA,GAGjBpV,EAAA,CADN8W,EAAAA,SAAS,OACkBsQ,aAAAhS,UAAA,mBAAA,GAXnBgS,QAAIA,KAAApnB,EAAA,CADhBsV,EAAUA,cACE8R,cCJAE,QAAAA,MAAN,cAAoB/D,aAEvB,SAAWlO,GAAU,MAAO,OAAO,CAQnC,SAAW6G,GAAmB,MAAMqL,MAAEA,GAAUjmB,KAAM,OAAOimB,GAASA,EAAMrL,KAAK,CAEjF,SAAWqL,GAAwB,MAAMlhB,KAAEA,GAAS/E,KAAKE,GAAI,OAAO6E,aAAgB0C,OAAS1C,EAAK,GAAGkhB,KAAK,CAE1G,WAAA9V,CAAYvI,GACRY,MAAMZ,KAVKlJ,EAAA,CADdwV,EAAAA,cAAcnJ,IACcib,cAAAlS,UAAA,UAAA,GAGtBpV,EAAA,CADNwW,EAAAA,WAAW,KACO8Q,cAAAlS,UAAA,WAAA,GARVkS,QAAKA,MAAAtnB,EAAA,CADjBsV,EAAUA,cACEgS,eAoBN,MAAME,GAAUF,QAAAA,MCnBVG,QAAAA,OAAN,cAAqBlE,aAExB,SAAWlO,GAAU,MAAO,QAAQ,CAyBpC,WAAWqS,GAA8B,OAAOpmB,KAAKwL,OAAO4a,OAAO,CAEnE,SAAWxL,GAAmB,OAAQ5a,KAAKoL,GAAG,CAI9C,WAAA+E,CAAYvI,GACRY,MAAMZ,GACN5H,KAAKwL,OAASiO,EAAAA,QAAQjO,OAAOxL,KAAKE,IAC9B0H,GAAQA,EAAKwD,KAAKpL,KAAKqmB,UAAUze,EAAKwD,KAGvC,SAAAib,CAAUjb,GACb,IAAIkb,EAAAA,YAAY,CAAElb,QAAO0G,MAAMmU,IAC3BjmB,KAAKomB,QAAQC,UAAUJ,EAAM9M,KAAM,EAAG,GACtCnZ,KAAKoL,SAAMxG,EACX5E,KAAKumB,QACLvmB,KAAK6c,UAAU,IAAI2J,EAAUA,WAACA,EAAUA,WAACC,OAAQ,CAAER,UAAS,IAI7D,IAAAS,CAAKviB,EAASwiB,EAAqBhjB,EAA6BuhB,GACnE,MAAM0B,EAAS,IAAIC,EAAMA,OAAC1iB,EAAG2iB,gBAAgBC,SAEvCC,EAAI,IAAIH,SACVF,GAAQK,EAAEC,UAAUN,EAAO7iB,EAAG6iB,EAAO5iB,GACrCJ,IAAwB,iBAAVA,EAAqBqjB,EAAErjB,MAAMA,GAASqjB,EAAErjB,MAAMA,EAAMG,EAAGH,EAAMI,IAC3EmhB,GAAU8B,EAAEvC,OAAOS,GACvB0B,EAAOM,eAAeF,GAEtB7iB,EAAGof,SAASvjB,KAAKwL,OAAQ,CAAEob,OAAQA,EAAOO,cAC1CnnB,KAAKumB,QAGF,KAAAA,GACHvmB,KAAK2b,cAIF,aAAA1M,CAAczD,EAAuBuF,GACxC,MAAMnF,MAAEA,EAAKuD,OAAEA,GAAWnP,KAAKE,IAAIiZ,KAAEA,GAASnZ,KAAKwL,OACnDA,EAAO6a,UAAUlN,EAAM,EAAG,EAAGA,EAAKvN,MAAOuN,EAAKhK,OAAQ,EAAG,EAAGvD,EAAOuD,GAGhE,YAAAzO,GACH,MAAM8K,OAAEA,GAAWxL,KACnB,GAAIwL,EAAQ,CACR,MAAM6G,OAAEA,EAAM+U,WAAEA,GAAepnB,KAAKE,GACpCsL,EAAO+P,OAAOvb,KAAKE,GAAuBknB,GACtC5b,EAAO6G,SAAWA,IAAQ7G,EAAO6G,OAASA,IAI/C,OAAAxH,GACC7K,KAAKwL,SACLxL,KAAKwL,OAAOX,UACZ7K,KAAKwL,OAAS,MAElBhD,MAAMqC,YAhFKnM,EAAA,CADdwV,EAAAA,cAAc5I,IACe6a,eAAArS,UAAA,UAAA,GAGfpV,EAAA,CADd6B,EAAW,MACkB4lB,eAAArS,UAAA,aAAA,GAGfpV,EAAA,CADd6B,EAAW,MACmB4lB,eAAArS,UAAA,cAAA,GAGhBpV,EAAA,CADd6B,EAAW,IACuB4lB,eAAArS,UAAA,kBAAA,GAG5BpV,EAAA,CADN6B,GAAW,IACW4lB,eAAArS,UAAA,cAAA,GAGhBpV,EAAA,CADNgW,EAAAA,UAAS,IACiByR,eAAArS,UAAA,kBAAA,GAGpBpV,EAAA,CADN6B,KACgD4lB,eAAArS,UAAA,uBAAA,GAvBxCqS,QAAMA,OAAAznB,EAAA,CADlBsV,EAAUA,cACEmS,gBCAb,MAAMkB,cAAEA,GAAajK,SAAEA,GAAQvQ,OAAEA,GAAMya,QAAEA,IAAYnF,EAAYA,aAGpDoF,QAAAA,KAAN,cAAmB9X,WAEtB,SAAWsE,GAAU,MAAO,MAAM,CAsFlC,gBAAWyT,GAAqD,OAArBxnB,KAAKqb,eAAuBrb,KAAKE,GAAGunB,cAAc,CAG7F,WAAAtX,CAAYvI,GACRY,MAAMZ,GAGH,oBAAA8f,GACH,MAAM9f,EAAO5H,KAAKE,IACZynB,WAAEA,EAAUC,cAAEA,EAAaC,WAAEA,EAAUC,SAAEA,EAAQC,WAAEA,EAAUC,OAAEA,EAAMC,SAAEA,EAAQC,aAAEA,EAAYC,QAAEA,GAAYvgB,EAEjHA,EAAKwgB,aAAevmB,EAAYC,OAAO6lB,EAAYG,GACnDlgB,EAAKygB,gBAAkBxmB,EAAYC,OAAO8lB,EAAeE,GACzDlgB,EAAK0gB,UAAYH,EAAUrY,EAAUA,WAACyY,WAAWJ,QAAWvjB,EAC5DgD,EAAK4gB,WAAa5gB,EAAKwgB,cAAgBxgB,EAAKwgB,aAA0B,GAAXN,GAAkB,EAC7ElgB,EAAK6gB,OAAS,GAAGT,EAAS,UAAY,KAAkB,eAAbC,EAA4B,cAAgB,KAAoB,WAAfF,EAA0BA,EAAa,IAAM,KAAKD,OAAcD,IAC5JjgB,EAAK8gB,WAA8B,SAAjBR,IAA4BtgB,EAAKjC,WAEnDiC,EAAK6f,eAAiBpmB,EAAYsnB,aAAa/gB,EAAKghB,cAAgBhhB,EAAKihB,aAA6B,KAAdjhB,EAAKkhB,MAAelhB,EAAKihB,YAAcjhB,EAAKkhB,KAAM9oB,KAAKE,IAG1I,iBAAAwiB,GAEL,MAAM9a,EAAO5H,KAAKE,GACZsH,EAASxH,KAAKI,UACd0nB,SAAEA,EAAQE,OAAEA,EAAMG,QAAEA,EAAS7iB,YAAayjB,EAAWvjB,aAAcwjB,GAAephB,EAExF5H,KAAK0nB,uBAEL,MAAQ9L,OAAQqN,GAAkBrhB,EAAK6f,eACjCyB,EAAI1hB,EAAOiD,UAMjB,GAJAjD,EAAOyhB,cAAgBA,EAEnBrhB,EAAKwgB,aAAeN,GAAUjb,GAAOoc,EAAenB,EAAW,GAE/DiB,GAAaC,EAAY,CAMzB,GALAE,EAAEplB,EAAIilB,EAAYE,EAAcnlB,EAAI,EACpColB,EAAEnlB,EAAIilB,EAAaC,EAAcllB,EAAI,EACrCmlB,EAAEtd,MAAQmd,EAAYE,EAAcrd,MAAQhE,EAAKgE,MACjDsd,EAAE/Z,OAAS6Z,EAAaC,EAAc9Z,OAASvH,EAAKuH,OAEhDgZ,EAAS,CACT,MAAOgB,EAAKC,EAAOC,EAAQC,GAAQ1hB,EAAK0gB,UACpCS,IAAWG,EAAEplB,GAAKwlB,EAAMJ,EAAEtd,OAAUwd,EAAQE,GAC5CN,IAAYE,EAAEnlB,GAAKolB,EAAKD,EAAE/Z,QAAWka,EAASF,GAEtDnpB,KAAK8iB,2BACFta,MAAMka,oBAETsF,IAAQkB,EAAEtd,OAAoB,IAAXkc,GAEvBzkB,EAAUA,WAACD,SAASpD,KAAM,cAAeod,GAAS8L,EAAGD,IAEjDjpB,KAAKuI,YAAY+e,GAAQ1f,EAAK2hB,gBAAkB,GAAmB,CAACL,EAAGD,IAAiBzhB,EAAOnH,eAAgB,GAC9GuH,EAAK2hB,gBAAkBL,EAGvB,cAAAnX,GACD/R,KAAKoK,OAAOpK,KAAKoK,MAAM2H,iBAC3BvJ,MAAMuJ,iBAGD,oBAAAvF,GACL,IAAIZ,EAAQpD,MAAMgE,uBAElB,OADKZ,IAAOA,EAAQ5L,KAAKuI,WAAa,EAAI,GACnCqD,EAGF,oBAAAoX,GACL,MAAMC,aAAEA,EAAYuG,aAAEA,GAAiBxpB,KAAKI,SAC5CinB,GAAcpE,EAAcjjB,KAAKE,GAAGqpB,gBAAiBC,GACjDxpB,KAAKoK,QAAOpK,KAAKoK,MAAMhK,SAAS6iB,aAAeA,GAG9C,gBAAAnV,CAAiBtC,GACtBA,EAAOie,KAAOzpB,KAAKE,GAAGuoB,OAGjB,MAAAhb,CAAOjC,EAAuB5C,EAAyB8E,GAC5D,MAAMvD,EAAMnK,KAAKoK,MACbD,IAAKA,EAAI9F,WAAarE,KAAKqE,WAAY8F,EAAIsD,OAAOjC,EAAQ5C,EAAS8E,IACnE1N,KAAK0pB,cAAgBjnB,EAAOyP,SAChC1J,MAAMiF,OAAOjC,EAAQ5C,EAAS8E,GAGzB,OAAA7C,GACD7K,KAAKqK,WAAUrK,KAAKqK,SAAW,MACnC7B,MAAMqC,YA3KKnM,EAAA,CADdwV,EAAAA,cAAcpK,IACayd,aAAAzT,UAAA,UAAA,GAIbpV,EAAA,CADdwW,EAAAA,WAAW,IACkBqS,aAAAzT,UAAA,aAAA,GAGfpV,EAAA,CADdwW,EAAAA,WAAW,IACmBqS,aAAAzT,UAAA,cAAA,GAGxBpV,EAAA,CADNiW,EAAWA,eACwB4S,aAAAzT,UAAA,gBAAA,GAG7BpV,EAAA,CADNgW,EAAAA,UAAS,IACsB6S,aAAAzT,UAAA,sBAAA,GAGjBpV,EAAA,CADdiW,EAAAA,YAAY,YACc4S,aAAAzT,UAAA,YAAA,GAGZpV,EAAA,CADd6mB,EAAAA,uBAAuB,YACiBgC,aAAAzT,UAAA,mBAAA,GAG1BpV,EAAA,CADd+W,EAAAA,QAAQ,QACwB8R,aAAAzT,UAAA,eAAA,GAG1BpV,EAAA,CADNwW,EAAAA,WAAW,KACmBqS,aAAAzT,UAAA,YAAA,GAGxBpV,EAAA,CADNwW,EAAAA,WAAW,KACgBqS,aAAAzT,UAAA,mBAAA,GAGrBpV,EAAA,CADNwW,EAAAA,WAAW,YACeqS,aAAAzT,UAAA,kBAAA,GAGpBpV,EAAA,CADNwW,EAAAA,WAAW,KACaqS,aAAAzT,UAAA,gBAAA,GAGlBpV,EAAA,CADNwW,EAAAA,WAAW,WACmBqS,aAAAzT,UAAA,kBAAA,GAGxBpV,EAAA,CADNwW,EAAAA,YAAW,IACYqS,aAAAzT,UAAA,cAAA,GAGjBpV,EAAA,CADNwW,EAAAA,WAAW,SACeqS,aAAAzT,UAAA,gBAAA,GAGpBpV,EAAA,CADNwW,EAAAA,WAAW,SAC2BqS,aAAAzT,UAAA,sBAAA,GAGhCpV,EAAA,CADNwW,EAAAA,WAAW,IAC8BqS,aAAAzT,UAAA,qBAAA,GAGnCpV,EAAA,CADNwW,EAAAA,WAAW,CAAElT,KAAM,UAAWjC,MAAO,OACCwnB,aAAAzT,UAAA,kBAAA,GAGhCpV,EAAA,CADNwW,EAAAA,WAAW,IACeqS,aAAAzT,UAAA,kBAAA,GAGpBpV,EAAA,CADNwW,EAAAA,WAAW,IACgBqS,aAAAzT,UAAA,mBAAA,GAGrBpV,EAAA,CADNwW,EAAAA,WAAW,MACqBqS,aAAAzT,UAAA,mBAAA,GAG1BpV,EAAA,CADNwW,EAAAA,WAAW,SACiBqS,aAAAzT,UAAA,iBAAA,GAGtBpV,EAAA,CADNwW,EAAAA,WAAW,QACyBqS,aAAAzT,UAAA,qBAAA,GAG9BpV,EAAA,CADNwW,EAAAA,YAAW,IACmBqS,aAAAzT,UAAA,qBAAA,GAGxBpV,EAAA,CADNwW,EAAAA,WAAW,WACeqS,aAAAzT,UAAA,gBAAA,GAGpBpV,EAAA,CADNwW,EAAAA,WAAW,SAC4BqS,aAAAzT,UAAA,oBAAA,GAGjCpV,EAAA,CADNiW,EAAAA,aAAY,IACc4S,aAAAzT,UAAA,mBAAA,GApFlByT,QAAIA,KAAA7oB,EAAA,CADhBsV,EAAUA,cACEuT,cCLAoC,QAAAA,KAAN,cAAmBla,WAEtB,SAAWsE,GAAU,MAAO,MAAM,CAQlC,WAAA5D,CAAYvI,GACRY,MAAMZ,KANKlJ,EAAA,CADdwV,EAAAA,cAAc7K,IACasgB,aAAA7V,UAAA,UAAA,GAGbpV,EAAA,CADd6mB,EAAAA,uBAAuB,WACiBoE,aAAA7V,UAAA,mBAAA,GARhC6V,QAAIA,KAAAjrB,EAAA,CADhBsV,EAAUA,cACE2V,cCCAC,QAAAA,IAAN,cAAkB7T,cAErB,SAAWhC,GAAU,MAAO,KAAK,CAajC,WAAA5D,CAAYvI,GACRY,MAAMZ,GAGH,QAAAiiB,CAASjiB,GACZ,MAAMqI,EAAOjQ,KAAK8pB,YAAc,IAAIH,QAAAA,KAAK/hB,GAIzC,OAHA5H,KAAK+pB,UAAYniB,EACjB5H,KAAKgqB,OAAS/Z,EAAKA,OAA6BA,EAAKA,KAAO,IAC5DjQ,KAAKoW,IAAInG,GACFjQ,KAKJ,SAAAwS,GAAmB,OAAOxS,IAAI,CAE9B,MAAA0jB,CAAOuG,EAAYC,GAAmB,OAAOlqB,IAAI,CAEjD,MAAAukB,CAAO0F,EAAYC,GAAmB,OAAOlqB,IAAI,CAEjD,aAAAmqB,CAAcC,EAAaC,EAAaC,EAAaC,EAAaN,EAAYC,GAAmB,OAAOlqB,IAAI,CAE5G,gBAAAwqB,CAAiBJ,EAAaC,EAAaJ,EAAYC,GAAmB,OAAOlqB,IAAI,CAErF,SAAA2jB,GAAmB,OAAO3jB,IAAI,CAK9B,IAAA+S,CAAKkX,EAAYC,EAAY3kB,EAAgBE,GAAwB,OAAOzF,IAAI,CAEhF,SAAA8S,CAAUmX,EAAYC,EAAY3kB,EAAgBE,EAAiBglB,GAAyC,OAAOzqB,IAAI,CAEvH,OAAA4jB,CAAQqG,EAAYC,EAAYQ,EAAkBC,EAAkBC,EAAoBC,EAAsBC,EAAoBC,GAAiC,OAAO/qB,IAAI,CAE9K,GAAAgrB,CAAIf,EAAYC,EAAYe,EAAiBJ,EAAsBC,EAAoBC,GAAiC,OAAO/qB,IAAI,CAEnI,KAAAkrB,CAAMd,EAAaC,EAAaC,EAAaC,EAAaU,GAAwB,OAAOjrB,IAAI,CAK7F,WAAAmrB,CAAYlB,EAAYC,EAAYQ,EAAkBC,EAAkBC,EAAoBC,EAAsBC,EAAoBC,GAAiC,OAAO/qB,IAAI,CAElL,OAAAorB,CAAQnB,EAAYC,EAAYe,EAAiBJ,EAAsBC,EAAoBC,GAAiC,OAAO/qB,IAAI,CAEvI,UAAAwkB,CAAW6G,EAAkCC,EAA2BC,GAAyB,OAAOvrB,IAAI,CAE5G,SAAAwrB,GAAmB,OAAOxrB,IAAI,CAG9B,KAAAumB,GACEvmB,KAAK8pB,YAAY1pB,SAASI,YAAYR,KAAK8pB,YAAY2B,YAAY,UA9D7D/sB,EAAA,CADdwV,EAAAA,cAAc5K,IACYsgB,YAAA9V,UAAA,UAAA,GAMZpV,EAAA,CA8DR,CAACE,EAAcC,KAClBgC,EAASA,UAACjC,EAAQC,EAAK,CACnB,GAAAkC,GAAQ,OAAOf,KAAKgqB,MAAM,GAC5B,GAjE+BJ,YAAA9V,UAAA,YAAA,GAX5B8V,QAAGA,IAAAlrB,EAAA,CAFfmX,EAAAA,UAAU6V,EAAAA,YAAa,CAAC,MAAO,OAAQ,UACvC1X,EAAUA,cACE4V,iTlCgBgB,CAAA","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer-ui/draw",
3
- "version": "1.6.4",
3
+ "version": "1.6.6",
4
4
  "description": "@leafer-ui/draw",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -29,10 +29,10 @@
29
29
  "leaferjs"
30
30
  ],
31
31
  "dependencies": {
32
- "@leafer/core": "1.6.4",
33
- "@leafer-ui/display": "1.6.4",
34
- "@leafer-ui/display-module": "1.6.4",
35
- "@leafer-ui/decorator": "1.6.4",
36
- "@leafer-ui/external": "1.6.4"
32
+ "@leafer/core": "1.6.6",
33
+ "@leafer-ui/display": "1.6.6",
34
+ "@leafer-ui/display-module": "1.6.6",
35
+ "@leafer-ui/decorator": "1.6.6",
36
+ "@leafer-ui/external": "1.6.6"
37
37
  }
38
38
  }