@leafer-ui/draw 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/draw.cjs +67 -106
- package/lib/draw.esm.js +67 -106
- package/lib/draw.esm.min.js +1 -1
- package/lib/draw.min.cjs +1 -1
- package/package.json +6 -6
package/lib/draw.cjs
CHANGED
|
@@ -67,6 +67,13 @@ function zoomLayerType() {
|
|
|
67
67
|
|
|
68
68
|
const TextConvert = {};
|
|
69
69
|
const ColorConvert = {};
|
|
70
|
+
const UnitConvert = {
|
|
71
|
+
number(value, percentRefer) {
|
|
72
|
+
if (typeof value === 'object')
|
|
73
|
+
return value.type === 'percent' ? value.value * percentRefer : value.value;
|
|
74
|
+
return value;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
70
77
|
const PathArrow = {};
|
|
71
78
|
const Paint = {};
|
|
72
79
|
const PaintImage = {};
|
|
@@ -87,7 +94,7 @@ const Transition = {
|
|
|
87
94
|
}
|
|
88
95
|
};
|
|
89
96
|
|
|
90
|
-
const { parse } = core.PathConvert;
|
|
97
|
+
const { parse, objectToCanvasData } = core.PathConvert;
|
|
91
98
|
const emptyPaint = {};
|
|
92
99
|
const debug$1 = core.Debug.get('UIData');
|
|
93
100
|
class UIData extends core.LeafData {
|
|
@@ -101,10 +108,11 @@ class UIData extends core.LeafData {
|
|
|
101
108
|
scaleX = -scaleX;
|
|
102
109
|
return scaleX > 1 ? strokeWidth / scaleX : strokeWidth;
|
|
103
110
|
}
|
|
104
|
-
else
|
|
111
|
+
else
|
|
105
112
|
return strokeWidth;
|
|
106
|
-
}
|
|
107
113
|
}
|
|
114
|
+
get __hasStroke() { return this.stroke && this.strokeWidth; }
|
|
115
|
+
get __clipAfterFill() { return (this.cornerRadius || this.__pathInputed); }
|
|
108
116
|
get __autoWidth() { return !this._width; }
|
|
109
117
|
get __autoHeight() { return !this._height; }
|
|
110
118
|
get __autoSide() { return !this._width || !this._height; }
|
|
@@ -121,9 +129,8 @@ class UIData extends core.LeafData {
|
|
|
121
129
|
this.__leaf.scaleX *= -1;
|
|
122
130
|
debug$1.warn('width < 0, instead -scaleX ', this);
|
|
123
131
|
}
|
|
124
|
-
else
|
|
132
|
+
else
|
|
125
133
|
this._width = value;
|
|
126
|
-
}
|
|
127
134
|
}
|
|
128
135
|
setHeight(value) {
|
|
129
136
|
if (value < 0) {
|
|
@@ -131,9 +138,8 @@ class UIData extends core.LeafData {
|
|
|
131
138
|
this.__leaf.scaleY *= -1;
|
|
132
139
|
debug$1.warn('height < 0, instead -scaleY', this);
|
|
133
140
|
}
|
|
134
|
-
else
|
|
141
|
+
else
|
|
135
142
|
this._height = value;
|
|
136
|
-
}
|
|
137
143
|
}
|
|
138
144
|
setFill(value) {
|
|
139
145
|
if (this.__naturalWidth)
|
|
@@ -174,9 +180,10 @@ class UIData extends core.LeafData {
|
|
|
174
180
|
}
|
|
175
181
|
}
|
|
176
182
|
setPath(value) {
|
|
177
|
-
|
|
183
|
+
const isString = typeof value === 'string';
|
|
184
|
+
if (isString || (value && typeof value[0] === 'object')) {
|
|
178
185
|
this.__setInput('path', value);
|
|
179
|
-
this._path = parse(value);
|
|
186
|
+
this._path = isString ? parse(value) : objectToCanvasData(value);
|
|
180
187
|
}
|
|
181
188
|
else {
|
|
182
189
|
if (this.__input)
|
|
@@ -191,12 +198,8 @@ class UIData extends core.LeafData {
|
|
|
191
198
|
value = value.filter((item) => item.visible !== false);
|
|
192
199
|
this._shadow = value.length ? value : null;
|
|
193
200
|
}
|
|
194
|
-
else
|
|
195
|
-
this._shadow = value.visible
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
this._shadow = null;
|
|
199
|
-
}
|
|
201
|
+
else
|
|
202
|
+
this._shadow = value && value.visible !== false ? [value] : null;
|
|
200
203
|
}
|
|
201
204
|
setInnerShadow(value) {
|
|
202
205
|
this.__setInput('innerShadow', value);
|
|
@@ -205,12 +208,8 @@ class UIData extends core.LeafData {
|
|
|
205
208
|
value = value.filter((item) => item.visible !== false);
|
|
206
209
|
this._innerShadow = value.length ? value : null;
|
|
207
210
|
}
|
|
208
|
-
else
|
|
209
|
-
this._innerShadow = value.visible
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
this._innerShadow = null;
|
|
213
|
-
}
|
|
211
|
+
else
|
|
212
|
+
this._innerShadow = value && value.visible !== false ? [value] : null;
|
|
214
213
|
}
|
|
215
214
|
__computePaint() {
|
|
216
215
|
const { fill, stroke } = this.__input;
|
|
@@ -221,24 +220,19 @@ class UIData extends core.LeafData {
|
|
|
221
220
|
this.__needComputePaint = false;
|
|
222
221
|
}
|
|
223
222
|
}
|
|
224
|
-
const UnitConvert = {
|
|
225
|
-
number(value, percentRefer) {
|
|
226
|
-
if (typeof value === 'object')
|
|
227
|
-
return value.type === 'percent' ? value.value * percentRefer : value.value;
|
|
228
|
-
return value;
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
223
|
|
|
232
224
|
class GroupData extends UIData {
|
|
233
225
|
}
|
|
234
226
|
|
|
235
227
|
class BoxData extends GroupData {
|
|
236
228
|
get __boxStroke() { return !this.__pathInputed; }
|
|
229
|
+
get __drawAfterFill() { return this.overflow === 'hide' && this.__clipAfterFill && this.__leaf.children.length; }
|
|
230
|
+
get __clipAfterFill() { return this.__leaf.isOverflow || super.__clipAfterFill; }
|
|
237
231
|
}
|
|
238
232
|
|
|
239
233
|
class LeaferData extends GroupData {
|
|
240
|
-
__getInputData() {
|
|
241
|
-
const data = super.__getInputData();
|
|
234
|
+
__getInputData(names, options) {
|
|
235
|
+
const data = super.__getInputData(names, options);
|
|
242
236
|
core.canvasSizeAttrs.forEach(key => delete data[key]);
|
|
243
237
|
return data;
|
|
244
238
|
}
|
|
@@ -265,6 +259,7 @@ class StarData extends UIData {
|
|
|
265
259
|
}
|
|
266
260
|
|
|
267
261
|
class PathData extends UIData {
|
|
262
|
+
get __pathInputed() { return 2; }
|
|
268
263
|
}
|
|
269
264
|
|
|
270
265
|
class PenData extends GroupData {
|
|
@@ -311,16 +306,18 @@ class ImageData extends RectData {
|
|
|
311
306
|
delete data.fill;
|
|
312
307
|
return data;
|
|
313
308
|
}
|
|
314
|
-
__getInputData() {
|
|
315
|
-
const data = super.__getInputData();
|
|
309
|
+
__getInputData(names, options) {
|
|
310
|
+
const data = super.__getInputData(names, options);
|
|
316
311
|
delete data.fill;
|
|
317
312
|
return data;
|
|
318
313
|
}
|
|
319
314
|
}
|
|
320
315
|
|
|
321
316
|
class CanvasData extends RectData {
|
|
322
|
-
|
|
323
|
-
|
|
317
|
+
get __isCanvas() { return true; }
|
|
318
|
+
get __drawAfterFill() { return true; }
|
|
319
|
+
__getInputData(names, options) {
|
|
320
|
+
const data = super.__getInputData(names, options);
|
|
324
321
|
data.url = this.__leaf.canvas.toDataURL('image/png');
|
|
325
322
|
return data;
|
|
326
323
|
}
|
|
@@ -347,16 +344,12 @@ const UIBounds = {
|
|
|
347
344
|
let width = 0;
|
|
348
345
|
const { shadow, innerShadow, blur, backgroundBlur } = this.__;
|
|
349
346
|
if (shadow)
|
|
350
|
-
shadow.forEach(item =>
|
|
351
|
-
width = Math.max(width, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread > 0 ? item.spread : 0) + item.blur * 1.5);
|
|
352
|
-
});
|
|
347
|
+
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));
|
|
353
348
|
if (blur)
|
|
354
349
|
width = Math.max(width, blur);
|
|
355
350
|
let shapeWidth = width = Math.ceil(width);
|
|
356
351
|
if (innerShadow)
|
|
357
|
-
innerShadow.forEach(item =>
|
|
358
|
-
shapeWidth = Math.max(shapeWidth, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread < 0 ? -item.spread : 0) + item.blur * 1.5);
|
|
359
|
-
});
|
|
352
|
+
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));
|
|
360
353
|
if (backgroundBlur)
|
|
361
354
|
shapeWidth = Math.max(shapeWidth, backgroundBlur);
|
|
362
355
|
this.__layout.renderShapeSpread = shapeWidth;
|
|
@@ -438,6 +431,16 @@ const UIRender = {
|
|
|
438
431
|
if (stroke && !ignoreStroke)
|
|
439
432
|
this.__.__pixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
440
433
|
}
|
|
434
|
+
},
|
|
435
|
+
__drawAfterFill(canvas, options) {
|
|
436
|
+
if (this.__.__clipAfterFill) {
|
|
437
|
+
canvas.save();
|
|
438
|
+
this.windingRule ? canvas.clip(this.windingRule) : canvas.clip();
|
|
439
|
+
this.__drawContent(canvas, options);
|
|
440
|
+
canvas.restore();
|
|
441
|
+
}
|
|
442
|
+
else
|
|
443
|
+
this.__drawContent(canvas, options);
|
|
441
444
|
}
|
|
442
445
|
};
|
|
443
446
|
function drawFast(ui, canvas, options) {
|
|
@@ -504,8 +507,8 @@ exports.UI = UI_1 = class UI extends core.Leaf {
|
|
|
504
507
|
return core.pen;
|
|
505
508
|
}
|
|
506
509
|
get editConfig() { return undefined; }
|
|
507
|
-
get editOuter() { return
|
|
508
|
-
get editInner() { return '
|
|
510
|
+
get editOuter() { return ''; }
|
|
511
|
+
get editInner() { return ''; }
|
|
509
512
|
constructor(data) {
|
|
510
513
|
super(data);
|
|
511
514
|
}
|
|
@@ -516,9 +519,8 @@ exports.UI = UI_1 = class UI extends core.Leaf {
|
|
|
516
519
|
Object.assign(this, data);
|
|
517
520
|
this.lockNormalStyle = false;
|
|
518
521
|
}
|
|
519
|
-
else
|
|
522
|
+
else
|
|
520
523
|
Object.assign(this, data);
|
|
521
|
-
}
|
|
522
524
|
}
|
|
523
525
|
get(name) {
|
|
524
526
|
return typeof name === 'string' ? this.__.__getInput(name) : this.__.__getInputData(name);
|
|
@@ -820,23 +822,13 @@ exports.Group = class Group extends exports.UI {
|
|
|
820
822
|
if (data.children) {
|
|
821
823
|
const { children } = data;
|
|
822
824
|
delete data.children;
|
|
823
|
-
|
|
824
|
-
this.__setBranch();
|
|
825
|
-
}
|
|
826
|
-
else {
|
|
827
|
-
this.clear();
|
|
828
|
-
}
|
|
825
|
+
this.children ? this.clear() : this.__setBranch();
|
|
829
826
|
super.set(data, isTemp);
|
|
830
|
-
|
|
831
|
-
children.forEach(childData => {
|
|
832
|
-
child = childData.__ ? childData : core.UICreator.get(childData.tag, childData);
|
|
833
|
-
this.add(child);
|
|
834
|
-
});
|
|
827
|
+
children.forEach(child => this.add(child));
|
|
835
828
|
data.children = children;
|
|
836
829
|
}
|
|
837
|
-
else
|
|
830
|
+
else
|
|
838
831
|
super.set(data, isTemp);
|
|
839
|
-
}
|
|
840
832
|
}
|
|
841
833
|
toJSON(options) {
|
|
842
834
|
const data = super.toJSON(options);
|
|
@@ -1268,9 +1260,7 @@ exports.Box = class Box extends exports.Group {
|
|
|
1268
1260
|
}
|
|
1269
1261
|
__updateStrokeSpread() { return 0; }
|
|
1270
1262
|
__updateRectRenderSpread() { return 0; }
|
|
1271
|
-
__updateRenderSpread() {
|
|
1272
|
-
return this.__updateRectRenderSpread() || -1;
|
|
1273
|
-
}
|
|
1263
|
+
__updateRenderSpread() { return this.__updateRectRenderSpread() || -1; }
|
|
1274
1264
|
__updateRectBoxBounds() { }
|
|
1275
1265
|
__updateBoxBounds(_secondLayout) {
|
|
1276
1266
|
const data = this.__;
|
|
@@ -1290,13 +1280,11 @@ exports.Box = class Box extends exports.Group {
|
|
|
1290
1280
|
}
|
|
1291
1281
|
this.__updateNaturalSize();
|
|
1292
1282
|
}
|
|
1293
|
-
else
|
|
1283
|
+
else
|
|
1294
1284
|
this.__updateRectBoxBounds();
|
|
1295
|
-
}
|
|
1296
1285
|
}
|
|
1297
|
-
else
|
|
1286
|
+
else
|
|
1298
1287
|
this.__updateRectBoxBounds();
|
|
1299
|
-
}
|
|
1300
1288
|
}
|
|
1301
1289
|
__updateStrokeBounds() { }
|
|
1302
1290
|
__updateRenderBounds() {
|
|
@@ -1306,14 +1294,13 @@ exports.Box = class Box extends exports.Group {
|
|
|
1306
1294
|
super.__updateRenderBounds();
|
|
1307
1295
|
copy(childrenRenderBounds, renderBounds);
|
|
1308
1296
|
this.__updateRectRenderBounds();
|
|
1309
|
-
isOverflow = !includes$1(renderBounds, childrenRenderBounds)
|
|
1297
|
+
isOverflow = !includes$1(renderBounds, childrenRenderBounds);
|
|
1298
|
+
if (isOverflow && this.__.overflow !== 'hide')
|
|
1299
|
+
add(renderBounds, childrenRenderBounds);
|
|
1310
1300
|
}
|
|
1311
|
-
else
|
|
1301
|
+
else
|
|
1312
1302
|
this.__updateRectRenderBounds();
|
|
1313
|
-
|
|
1314
|
-
this.isOverflow !== isOverflow && (this.isOverflow = isOverflow);
|
|
1315
|
-
if (!(this.__.__drawAfterFill = this.__.overflow === 'hide') && isOverflow)
|
|
1316
|
-
add(renderBounds, childrenRenderBounds);
|
|
1303
|
+
!this.isOverflow !== !isOverflow && (this.isOverflow = isOverflow);
|
|
1317
1304
|
}
|
|
1318
1305
|
__updateRectRenderBounds() { }
|
|
1319
1306
|
__updateRectChange() { }
|
|
@@ -1333,20 +1320,9 @@ exports.Box = class Box extends exports.Group {
|
|
|
1333
1320
|
this.__renderGroup(canvas, options);
|
|
1334
1321
|
}
|
|
1335
1322
|
}
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
if (this.
|
|
1339
|
-
canvas.save();
|
|
1340
|
-
canvas.clip();
|
|
1341
|
-
if (length)
|
|
1342
|
-
this.__renderGroup(canvas, options);
|
|
1343
|
-
canvas.restore();
|
|
1344
|
-
}
|
|
1345
|
-
else {
|
|
1346
|
-
if (length)
|
|
1347
|
-
this.__renderGroup(canvas, options);
|
|
1348
|
-
}
|
|
1349
|
-
if (this.__.stroke && length) {
|
|
1323
|
+
__drawContent(canvas, options) {
|
|
1324
|
+
this.__renderGroup(canvas, options);
|
|
1325
|
+
if (this.__.__hasStroke) {
|
|
1350
1326
|
canvas.setWorld(this.__nowWorld);
|
|
1351
1327
|
this.__drawRenderPath(canvas);
|
|
1352
1328
|
}
|
|
@@ -1510,17 +1486,15 @@ exports.Line = class Line extends exports.UI {
|
|
|
1510
1486
|
if (data.__useArrow)
|
|
1511
1487
|
PathArrow.addArrows(this, false);
|
|
1512
1488
|
}
|
|
1513
|
-
else
|
|
1489
|
+
else
|
|
1514
1490
|
super.__updateRenderPath();
|
|
1515
|
-
}
|
|
1516
1491
|
}
|
|
1517
1492
|
__updateBoxBounds() {
|
|
1518
1493
|
if (this.points) {
|
|
1519
1494
|
toBounds(this.__.__pathForRender, this.__layout.boxBounds);
|
|
1520
1495
|
}
|
|
1521
|
-
else
|
|
1496
|
+
else
|
|
1522
1497
|
super.__updateBoxBounds();
|
|
1523
|
-
}
|
|
1524
1498
|
}
|
|
1525
1499
|
};
|
|
1526
1500
|
__decorate([
|
|
@@ -1658,7 +1632,6 @@ exports.Canvas = class Canvas extends exports.Rect {
|
|
|
1658
1632
|
super(data);
|
|
1659
1633
|
this.canvas = core.Creator.canvas(this.__);
|
|
1660
1634
|
this.context = this.canvas.context;
|
|
1661
|
-
this.__.__isCanvas = this.__.__drawAfterFill = true;
|
|
1662
1635
|
if (data && data.url)
|
|
1663
1636
|
this.drawImage(data.url);
|
|
1664
1637
|
}
|
|
@@ -1671,8 +1644,7 @@ exports.Canvas = class Canvas extends exports.Rect {
|
|
|
1671
1644
|
});
|
|
1672
1645
|
}
|
|
1673
1646
|
draw(ui, offset, scale, rotation) {
|
|
1674
|
-
ui.
|
|
1675
|
-
const matrix = new core.Matrix(ui.__world).invert();
|
|
1647
|
+
const matrix = new core.Matrix(ui.worldTransform).invert();
|
|
1676
1648
|
const m = new core.Matrix();
|
|
1677
1649
|
if (offset)
|
|
1678
1650
|
m.translate(offset.x, offset.y);
|
|
@@ -1687,17 +1659,9 @@ exports.Canvas = class Canvas extends exports.Rect {
|
|
|
1687
1659
|
paint() {
|
|
1688
1660
|
this.forceRender();
|
|
1689
1661
|
}
|
|
1690
|
-
|
|
1691
|
-
const { width, height
|
|
1692
|
-
|
|
1693
|
-
canvas.save();
|
|
1694
|
-
canvas.clip();
|
|
1695
|
-
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
1696
|
-
canvas.restore();
|
|
1697
|
-
}
|
|
1698
|
-
else {
|
|
1699
|
-
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
1700
|
-
}
|
|
1662
|
+
__drawContent(canvas, _options) {
|
|
1663
|
+
const { width, height } = this.__, { view } = this.canvas;
|
|
1664
|
+
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
1701
1665
|
}
|
|
1702
1666
|
__updateSize() {
|
|
1703
1667
|
const { canvas } = this;
|
|
@@ -1741,7 +1705,6 @@ exports.Canvas = __decorate([
|
|
|
1741
1705
|
const { copyAndSpread, includes, isSame, spread, setList } = core.BoundsHelper;
|
|
1742
1706
|
exports.Text = class Text extends exports.UI {
|
|
1743
1707
|
get __tag() { return 'Text'; }
|
|
1744
|
-
get editInner() { return 'TextEditor'; }
|
|
1745
1708
|
get textDrawData() {
|
|
1746
1709
|
this.__layout.update();
|
|
1747
1710
|
return this.__.__textDrawData;
|
|
@@ -1816,9 +1779,8 @@ exports.Text = class Text extends exports.UI {
|
|
|
1816
1779
|
layout.renderChanged = true;
|
|
1817
1780
|
setList(data.__textBoxBounds = {}, [b, bounds]);
|
|
1818
1781
|
}
|
|
1819
|
-
else
|
|
1782
|
+
else
|
|
1820
1783
|
data.__textBoxBounds = contentBounds;
|
|
1821
|
-
}
|
|
1822
1784
|
}
|
|
1823
1785
|
__updateRenderSpread() {
|
|
1824
1786
|
let width = super.__updateRenderSpread();
|
|
@@ -1907,7 +1869,6 @@ exports.Path = class Path extends exports.UI {
|
|
|
1907
1869
|
get __tag() { return 'Path'; }
|
|
1908
1870
|
constructor(data) {
|
|
1909
1871
|
super(data);
|
|
1910
|
-
this.__.__pathInputed = 2;
|
|
1911
1872
|
}
|
|
1912
1873
|
};
|
|
1913
1874
|
__decorate([
|
package/lib/draw.esm.js
CHANGED
|
@@ -66,6 +66,13 @@ function zoomLayerType() {
|
|
|
66
66
|
|
|
67
67
|
const TextConvert = {};
|
|
68
68
|
const ColorConvert = {};
|
|
69
|
+
const UnitConvert = {
|
|
70
|
+
number(value, percentRefer) {
|
|
71
|
+
if (typeof value === 'object')
|
|
72
|
+
return value.type === 'percent' ? value.value * percentRefer : value.value;
|
|
73
|
+
return value;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
69
76
|
const PathArrow = {};
|
|
70
77
|
const Paint = {};
|
|
71
78
|
const PaintImage = {};
|
|
@@ -86,7 +93,7 @@ const Transition = {
|
|
|
86
93
|
}
|
|
87
94
|
};
|
|
88
95
|
|
|
89
|
-
const { parse } = PathConvert;
|
|
96
|
+
const { parse, objectToCanvasData } = PathConvert;
|
|
90
97
|
const emptyPaint = {};
|
|
91
98
|
const debug$1 = Debug.get('UIData');
|
|
92
99
|
class UIData extends LeafData {
|
|
@@ -100,10 +107,11 @@ class UIData extends LeafData {
|
|
|
100
107
|
scaleX = -scaleX;
|
|
101
108
|
return scaleX > 1 ? strokeWidth / scaleX : strokeWidth;
|
|
102
109
|
}
|
|
103
|
-
else
|
|
110
|
+
else
|
|
104
111
|
return strokeWidth;
|
|
105
|
-
}
|
|
106
112
|
}
|
|
113
|
+
get __hasStroke() { return this.stroke && this.strokeWidth; }
|
|
114
|
+
get __clipAfterFill() { return (this.cornerRadius || this.__pathInputed); }
|
|
107
115
|
get __autoWidth() { return !this._width; }
|
|
108
116
|
get __autoHeight() { return !this._height; }
|
|
109
117
|
get __autoSide() { return !this._width || !this._height; }
|
|
@@ -120,9 +128,8 @@ class UIData extends LeafData {
|
|
|
120
128
|
this.__leaf.scaleX *= -1;
|
|
121
129
|
debug$1.warn('width < 0, instead -scaleX ', this);
|
|
122
130
|
}
|
|
123
|
-
else
|
|
131
|
+
else
|
|
124
132
|
this._width = value;
|
|
125
|
-
}
|
|
126
133
|
}
|
|
127
134
|
setHeight(value) {
|
|
128
135
|
if (value < 0) {
|
|
@@ -130,9 +137,8 @@ class UIData extends LeafData {
|
|
|
130
137
|
this.__leaf.scaleY *= -1;
|
|
131
138
|
debug$1.warn('height < 0, instead -scaleY', this);
|
|
132
139
|
}
|
|
133
|
-
else
|
|
140
|
+
else
|
|
134
141
|
this._height = value;
|
|
135
|
-
}
|
|
136
142
|
}
|
|
137
143
|
setFill(value) {
|
|
138
144
|
if (this.__naturalWidth)
|
|
@@ -173,9 +179,10 @@ class UIData extends LeafData {
|
|
|
173
179
|
}
|
|
174
180
|
}
|
|
175
181
|
setPath(value) {
|
|
176
|
-
|
|
182
|
+
const isString = typeof value === 'string';
|
|
183
|
+
if (isString || (value && typeof value[0] === 'object')) {
|
|
177
184
|
this.__setInput('path', value);
|
|
178
|
-
this._path = parse(value);
|
|
185
|
+
this._path = isString ? parse(value) : objectToCanvasData(value);
|
|
179
186
|
}
|
|
180
187
|
else {
|
|
181
188
|
if (this.__input)
|
|
@@ -190,12 +197,8 @@ class UIData extends LeafData {
|
|
|
190
197
|
value = value.filter((item) => item.visible !== false);
|
|
191
198
|
this._shadow = value.length ? value : null;
|
|
192
199
|
}
|
|
193
|
-
else
|
|
194
|
-
this._shadow = value.visible
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
this._shadow = null;
|
|
198
|
-
}
|
|
200
|
+
else
|
|
201
|
+
this._shadow = value && value.visible !== false ? [value] : null;
|
|
199
202
|
}
|
|
200
203
|
setInnerShadow(value) {
|
|
201
204
|
this.__setInput('innerShadow', value);
|
|
@@ -204,12 +207,8 @@ class UIData extends LeafData {
|
|
|
204
207
|
value = value.filter((item) => item.visible !== false);
|
|
205
208
|
this._innerShadow = value.length ? value : null;
|
|
206
209
|
}
|
|
207
|
-
else
|
|
208
|
-
this._innerShadow = value.visible
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
this._innerShadow = null;
|
|
212
|
-
}
|
|
210
|
+
else
|
|
211
|
+
this._innerShadow = value && value.visible !== false ? [value] : null;
|
|
213
212
|
}
|
|
214
213
|
__computePaint() {
|
|
215
214
|
const { fill, stroke } = this.__input;
|
|
@@ -220,24 +219,19 @@ class UIData extends LeafData {
|
|
|
220
219
|
this.__needComputePaint = false;
|
|
221
220
|
}
|
|
222
221
|
}
|
|
223
|
-
const UnitConvert = {
|
|
224
|
-
number(value, percentRefer) {
|
|
225
|
-
if (typeof value === 'object')
|
|
226
|
-
return value.type === 'percent' ? value.value * percentRefer : value.value;
|
|
227
|
-
return value;
|
|
228
|
-
}
|
|
229
|
-
};
|
|
230
222
|
|
|
231
223
|
class GroupData extends UIData {
|
|
232
224
|
}
|
|
233
225
|
|
|
234
226
|
class BoxData extends GroupData {
|
|
235
227
|
get __boxStroke() { return !this.__pathInputed; }
|
|
228
|
+
get __drawAfterFill() { return this.overflow === 'hide' && this.__clipAfterFill && this.__leaf.children.length; }
|
|
229
|
+
get __clipAfterFill() { return this.__leaf.isOverflow || super.__clipAfterFill; }
|
|
236
230
|
}
|
|
237
231
|
|
|
238
232
|
class LeaferData extends GroupData {
|
|
239
|
-
__getInputData() {
|
|
240
|
-
const data = super.__getInputData();
|
|
233
|
+
__getInputData(names, options) {
|
|
234
|
+
const data = super.__getInputData(names, options);
|
|
241
235
|
canvasSizeAttrs.forEach(key => delete data[key]);
|
|
242
236
|
return data;
|
|
243
237
|
}
|
|
@@ -264,6 +258,7 @@ class StarData extends UIData {
|
|
|
264
258
|
}
|
|
265
259
|
|
|
266
260
|
class PathData extends UIData {
|
|
261
|
+
get __pathInputed() { return 2; }
|
|
267
262
|
}
|
|
268
263
|
|
|
269
264
|
class PenData extends GroupData {
|
|
@@ -310,16 +305,18 @@ class ImageData extends RectData {
|
|
|
310
305
|
delete data.fill;
|
|
311
306
|
return data;
|
|
312
307
|
}
|
|
313
|
-
__getInputData() {
|
|
314
|
-
const data = super.__getInputData();
|
|
308
|
+
__getInputData(names, options) {
|
|
309
|
+
const data = super.__getInputData(names, options);
|
|
315
310
|
delete data.fill;
|
|
316
311
|
return data;
|
|
317
312
|
}
|
|
318
313
|
}
|
|
319
314
|
|
|
320
315
|
class CanvasData extends RectData {
|
|
321
|
-
|
|
322
|
-
|
|
316
|
+
get __isCanvas() { return true; }
|
|
317
|
+
get __drawAfterFill() { return true; }
|
|
318
|
+
__getInputData(names, options) {
|
|
319
|
+
const data = super.__getInputData(names, options);
|
|
323
320
|
data.url = this.__leaf.canvas.toDataURL('image/png');
|
|
324
321
|
return data;
|
|
325
322
|
}
|
|
@@ -346,16 +343,12 @@ const UIBounds = {
|
|
|
346
343
|
let width = 0;
|
|
347
344
|
const { shadow, innerShadow, blur, backgroundBlur } = this.__;
|
|
348
345
|
if (shadow)
|
|
349
|
-
shadow.forEach(item =>
|
|
350
|
-
width = Math.max(width, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread > 0 ? item.spread : 0) + item.blur * 1.5);
|
|
351
|
-
});
|
|
346
|
+
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));
|
|
352
347
|
if (blur)
|
|
353
348
|
width = Math.max(width, blur);
|
|
354
349
|
let shapeWidth = width = Math.ceil(width);
|
|
355
350
|
if (innerShadow)
|
|
356
|
-
innerShadow.forEach(item =>
|
|
357
|
-
shapeWidth = Math.max(shapeWidth, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread < 0 ? -item.spread : 0) + item.blur * 1.5);
|
|
358
|
-
});
|
|
351
|
+
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));
|
|
359
352
|
if (backgroundBlur)
|
|
360
353
|
shapeWidth = Math.max(shapeWidth, backgroundBlur);
|
|
361
354
|
this.__layout.renderShapeSpread = shapeWidth;
|
|
@@ -437,6 +430,16 @@ const UIRender = {
|
|
|
437
430
|
if (stroke && !ignoreStroke)
|
|
438
431
|
this.__.__pixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
439
432
|
}
|
|
433
|
+
},
|
|
434
|
+
__drawAfterFill(canvas, options) {
|
|
435
|
+
if (this.__.__clipAfterFill) {
|
|
436
|
+
canvas.save();
|
|
437
|
+
this.windingRule ? canvas.clip(this.windingRule) : canvas.clip();
|
|
438
|
+
this.__drawContent(canvas, options);
|
|
439
|
+
canvas.restore();
|
|
440
|
+
}
|
|
441
|
+
else
|
|
442
|
+
this.__drawContent(canvas, options);
|
|
440
443
|
}
|
|
441
444
|
};
|
|
442
445
|
function drawFast(ui, canvas, options) {
|
|
@@ -503,8 +506,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
503
506
|
return pen;
|
|
504
507
|
}
|
|
505
508
|
get editConfig() { return undefined; }
|
|
506
|
-
get editOuter() { return
|
|
507
|
-
get editInner() { return '
|
|
509
|
+
get editOuter() { return ''; }
|
|
510
|
+
get editInner() { return ''; }
|
|
508
511
|
constructor(data) {
|
|
509
512
|
super(data);
|
|
510
513
|
}
|
|
@@ -515,9 +518,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
515
518
|
Object.assign(this, data);
|
|
516
519
|
this.lockNormalStyle = false;
|
|
517
520
|
}
|
|
518
|
-
else
|
|
521
|
+
else
|
|
519
522
|
Object.assign(this, data);
|
|
520
|
-
}
|
|
521
523
|
}
|
|
522
524
|
get(name) {
|
|
523
525
|
return typeof name === 'string' ? this.__.__getInput(name) : this.__.__getInputData(name);
|
|
@@ -819,23 +821,13 @@ let Group = class Group extends UI {
|
|
|
819
821
|
if (data.children) {
|
|
820
822
|
const { children } = data;
|
|
821
823
|
delete data.children;
|
|
822
|
-
|
|
823
|
-
this.__setBranch();
|
|
824
|
-
}
|
|
825
|
-
else {
|
|
826
|
-
this.clear();
|
|
827
|
-
}
|
|
824
|
+
this.children ? this.clear() : this.__setBranch();
|
|
828
825
|
super.set(data, isTemp);
|
|
829
|
-
|
|
830
|
-
children.forEach(childData => {
|
|
831
|
-
child = childData.__ ? childData : UICreator.get(childData.tag, childData);
|
|
832
|
-
this.add(child);
|
|
833
|
-
});
|
|
826
|
+
children.forEach(child => this.add(child));
|
|
834
827
|
data.children = children;
|
|
835
828
|
}
|
|
836
|
-
else
|
|
829
|
+
else
|
|
837
830
|
super.set(data, isTemp);
|
|
838
|
-
}
|
|
839
831
|
}
|
|
840
832
|
toJSON(options) {
|
|
841
833
|
const data = super.toJSON(options);
|
|
@@ -1267,9 +1259,7 @@ let Box = class Box extends Group {
|
|
|
1267
1259
|
}
|
|
1268
1260
|
__updateStrokeSpread() { return 0; }
|
|
1269
1261
|
__updateRectRenderSpread() { return 0; }
|
|
1270
|
-
__updateRenderSpread() {
|
|
1271
|
-
return this.__updateRectRenderSpread() || -1;
|
|
1272
|
-
}
|
|
1262
|
+
__updateRenderSpread() { return this.__updateRectRenderSpread() || -1; }
|
|
1273
1263
|
__updateRectBoxBounds() { }
|
|
1274
1264
|
__updateBoxBounds(_secondLayout) {
|
|
1275
1265
|
const data = this.__;
|
|
@@ -1289,13 +1279,11 @@ let Box = class Box extends Group {
|
|
|
1289
1279
|
}
|
|
1290
1280
|
this.__updateNaturalSize();
|
|
1291
1281
|
}
|
|
1292
|
-
else
|
|
1282
|
+
else
|
|
1293
1283
|
this.__updateRectBoxBounds();
|
|
1294
|
-
}
|
|
1295
1284
|
}
|
|
1296
|
-
else
|
|
1285
|
+
else
|
|
1297
1286
|
this.__updateRectBoxBounds();
|
|
1298
|
-
}
|
|
1299
1287
|
}
|
|
1300
1288
|
__updateStrokeBounds() { }
|
|
1301
1289
|
__updateRenderBounds() {
|
|
@@ -1305,14 +1293,13 @@ let Box = class Box extends Group {
|
|
|
1305
1293
|
super.__updateRenderBounds();
|
|
1306
1294
|
copy(childrenRenderBounds, renderBounds);
|
|
1307
1295
|
this.__updateRectRenderBounds();
|
|
1308
|
-
isOverflow = !includes$1(renderBounds, childrenRenderBounds)
|
|
1296
|
+
isOverflow = !includes$1(renderBounds, childrenRenderBounds);
|
|
1297
|
+
if (isOverflow && this.__.overflow !== 'hide')
|
|
1298
|
+
add(renderBounds, childrenRenderBounds);
|
|
1309
1299
|
}
|
|
1310
|
-
else
|
|
1300
|
+
else
|
|
1311
1301
|
this.__updateRectRenderBounds();
|
|
1312
|
-
|
|
1313
|
-
this.isOverflow !== isOverflow && (this.isOverflow = isOverflow);
|
|
1314
|
-
if (!(this.__.__drawAfterFill = this.__.overflow === 'hide') && isOverflow)
|
|
1315
|
-
add(renderBounds, childrenRenderBounds);
|
|
1302
|
+
!this.isOverflow !== !isOverflow && (this.isOverflow = isOverflow);
|
|
1316
1303
|
}
|
|
1317
1304
|
__updateRectRenderBounds() { }
|
|
1318
1305
|
__updateRectChange() { }
|
|
@@ -1332,20 +1319,9 @@ let Box = class Box extends Group {
|
|
|
1332
1319
|
this.__renderGroup(canvas, options);
|
|
1333
1320
|
}
|
|
1334
1321
|
}
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
if (this.
|
|
1338
|
-
canvas.save();
|
|
1339
|
-
canvas.clip();
|
|
1340
|
-
if (length)
|
|
1341
|
-
this.__renderGroup(canvas, options);
|
|
1342
|
-
canvas.restore();
|
|
1343
|
-
}
|
|
1344
|
-
else {
|
|
1345
|
-
if (length)
|
|
1346
|
-
this.__renderGroup(canvas, options);
|
|
1347
|
-
}
|
|
1348
|
-
if (this.__.stroke && length) {
|
|
1322
|
+
__drawContent(canvas, options) {
|
|
1323
|
+
this.__renderGroup(canvas, options);
|
|
1324
|
+
if (this.__.__hasStroke) {
|
|
1349
1325
|
canvas.setWorld(this.__nowWorld);
|
|
1350
1326
|
this.__drawRenderPath(canvas);
|
|
1351
1327
|
}
|
|
@@ -1509,17 +1485,15 @@ let Line = class Line extends UI {
|
|
|
1509
1485
|
if (data.__useArrow)
|
|
1510
1486
|
PathArrow.addArrows(this, false);
|
|
1511
1487
|
}
|
|
1512
|
-
else
|
|
1488
|
+
else
|
|
1513
1489
|
super.__updateRenderPath();
|
|
1514
|
-
}
|
|
1515
1490
|
}
|
|
1516
1491
|
__updateBoxBounds() {
|
|
1517
1492
|
if (this.points) {
|
|
1518
1493
|
toBounds(this.__.__pathForRender, this.__layout.boxBounds);
|
|
1519
1494
|
}
|
|
1520
|
-
else
|
|
1495
|
+
else
|
|
1521
1496
|
super.__updateBoxBounds();
|
|
1522
|
-
}
|
|
1523
1497
|
}
|
|
1524
1498
|
};
|
|
1525
1499
|
__decorate([
|
|
@@ -1657,7 +1631,6 @@ let Canvas = class Canvas extends Rect {
|
|
|
1657
1631
|
super(data);
|
|
1658
1632
|
this.canvas = Creator.canvas(this.__);
|
|
1659
1633
|
this.context = this.canvas.context;
|
|
1660
|
-
this.__.__isCanvas = this.__.__drawAfterFill = true;
|
|
1661
1634
|
if (data && data.url)
|
|
1662
1635
|
this.drawImage(data.url);
|
|
1663
1636
|
}
|
|
@@ -1670,8 +1643,7 @@ let Canvas = class Canvas extends Rect {
|
|
|
1670
1643
|
});
|
|
1671
1644
|
}
|
|
1672
1645
|
draw(ui, offset, scale, rotation) {
|
|
1673
|
-
ui.
|
|
1674
|
-
const matrix = new Matrix(ui.__world).invert();
|
|
1646
|
+
const matrix = new Matrix(ui.worldTransform).invert();
|
|
1675
1647
|
const m = new Matrix();
|
|
1676
1648
|
if (offset)
|
|
1677
1649
|
m.translate(offset.x, offset.y);
|
|
@@ -1686,17 +1658,9 @@ let Canvas = class Canvas extends Rect {
|
|
|
1686
1658
|
paint() {
|
|
1687
1659
|
this.forceRender();
|
|
1688
1660
|
}
|
|
1689
|
-
|
|
1690
|
-
const { width, height
|
|
1691
|
-
|
|
1692
|
-
canvas.save();
|
|
1693
|
-
canvas.clip();
|
|
1694
|
-
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
1695
|
-
canvas.restore();
|
|
1696
|
-
}
|
|
1697
|
-
else {
|
|
1698
|
-
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
1699
|
-
}
|
|
1661
|
+
__drawContent(canvas, _options) {
|
|
1662
|
+
const { width, height } = this.__, { view } = this.canvas;
|
|
1663
|
+
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
1700
1664
|
}
|
|
1701
1665
|
__updateSize() {
|
|
1702
1666
|
const { canvas } = this;
|
|
@@ -1740,7 +1704,6 @@ Canvas = __decorate([
|
|
|
1740
1704
|
const { copyAndSpread, includes, isSame, spread, setList } = BoundsHelper;
|
|
1741
1705
|
let Text = class Text extends UI {
|
|
1742
1706
|
get __tag() { return 'Text'; }
|
|
1743
|
-
get editInner() { return 'TextEditor'; }
|
|
1744
1707
|
get textDrawData() {
|
|
1745
1708
|
this.__layout.update();
|
|
1746
1709
|
return this.__.__textDrawData;
|
|
@@ -1815,9 +1778,8 @@ let Text = class Text extends UI {
|
|
|
1815
1778
|
layout.renderChanged = true;
|
|
1816
1779
|
setList(data.__textBoxBounds = {}, [b, bounds]);
|
|
1817
1780
|
}
|
|
1818
|
-
else
|
|
1781
|
+
else
|
|
1819
1782
|
data.__textBoxBounds = contentBounds;
|
|
1820
|
-
}
|
|
1821
1783
|
}
|
|
1822
1784
|
__updateRenderSpread() {
|
|
1823
1785
|
let width = super.__updateRenderSpread();
|
|
@@ -1906,7 +1868,6 @@ let Path = class Path extends UI {
|
|
|
1906
1868
|
get __tag() { return 'Path'; }
|
|
1907
1869
|
constructor(data) {
|
|
1908
1870
|
super(data);
|
|
1909
|
-
this.__.__pathInputed = 2;
|
|
1910
1871
|
}
|
|
1911
1872
|
};
|
|
1912
1873
|
__decorate([
|
package/lib/draw.esm.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{decorateLeafAttr as t,attr as e,defineKey as i,needPlugin as s,Debug as o,LeafData as r,PathConvert as a,canvasSizeAttrs as n,dataProcessor as _,dataType as h,surfaceType as d,opacityType as p,visibleType as l,sortType as u,maskType as c,eraserType as y,positionType as g,boundsType as v,scaleType as f,rotationType as w,autoLayoutType as x,naturalBoundsType as m,pathInputType as R,pathType as S,hitType as k,strokeType as B,cursorType as b,rewrite as C,Leaf as P,useModule as A,rewriteAble as I,MathHelper as D,pen as E,PathCorner as F,PathDrawer as L,UICreator as W,registerUI as T,Branch as z,LeafList as M,ImageManager as O,DataHelper as N,Creator as V,CanvasManager as H,WaitHelper as Y,LeaferEvent as j,Bounds as U,ResizeEvent as X,AutoBounds as G,Run as J,LayoutEvent as $,RenderEvent as K,WatchEvent as q,affectRenderBoundsType as Q,BoundsHelper as Z,Platform as tt,PathCommandDataHelper as et,affectStrokeBoundsType as it,getPointData as st,PointHelper as ot,PathBounds as rt,ImageEvent as at,LeaferImage as nt,Matrix as _t,PathCreator as ht}from"@leafer/core";export*from"@leafer/core";function dt(t,e,i,s){var o,r=arguments.length,a=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,s);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a}function pt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0),this.__layout.renderChanged||this.__layout.renderChange()}})))}function lt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}})))}function ut(){return(t,e)=>{const s="_"+e;i(t,e,{set(t){this.isLeafer&&(this[s]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[s]||this:this.leafer&&this.leafer.zoomLayer}})}}"function"==typeof SuppressedError&&SuppressedError;const ct={},yt={},gt={},vt={},ft={},wt={},xt={},mt={},Rt={setStyleName:(t,e,i)=>s("state"),set:(t,e)=>s("state")},St={list:{},register(t,e){St.list[t]=e},get:t=>St.list[t]},{parse:kt}=a,Bt={},bt=o.get("UIData");class Ct extends r{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:i}=e.__nowWorld||e.__world;return i<0&&(i=-i),i>1?t/i:t}return t}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,bt.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,bt.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("fill",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isFills=!0,this._fill||(this._fill=Bt)):(this.__isFills&&(this.__removeInput("fill"),ft.recycleImage("fill",this),this.__isFills=!1,this.__pixelFill&&(this.__pixelFill=!1)),this._fill=t)}setStroke(t){"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("stroke",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isStrokes=!0,this._stroke||(this._stroke=Bt)):(this.__isStrokes&&(this.__removeInput("stroke"),ft.recycleImage("stroke",this),this.__isStrokes=!1,this.__pixelStroke&&(this.__pixelStroke=!1)),this._stroke=t)}setPath(t){"string"==typeof t?(this.__setInput("path",t),this._path=kt(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){this.__setInput("shadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._shadow=t.length?t:null):this._shadow=t?!1===t.visible?null:[t]:null}setInnerShadow(t){this.__setInput("innerShadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._innerShadow=t.length?t:null):this._innerShadow=t?!1===t.visible?null:[t]:null}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&vt.compute("fill",this.__leaf),e&&vt.compute("stroke",this.__leaf),this.__needComputePaint=!1}}const Pt={number:(t,e)=>"object"==typeof t?"percent"===t.type?t.value*e:t.value:t};class At extends Ct{}class It extends At{get __boxStroke(){return!this.__pathInputed}}class Dt extends At{__getInputData(){const t=super.__getInputData();return n.forEach((e=>delete t[e])),t}}class Et extends It{}class Ft extends Ct{}class Lt extends Ct{get __boxStroke(){return!this.__pathInputed}}class Wt extends Ct{get __boxStroke(){return!this.__pathInputed}}class Tt extends Ct{}class zt extends Ct{}class Mt extends Ct{}class Ot extends At{}const Nt={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class Vt extends Ct{get __useNaturalRatio(){return!1}setFontWeight(t){"string"==typeof t?(this.__setInput("fontWeight",t),this._fontWeight=Nt[t]||400):(this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t)}}class Ht extends Lt{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.__leaf.image&&(this.__leaf.image=null),this.fill=t?{type:"image",mode:"stretch",url:t}:void 0}__getData(){const t=super.__getData();return delete t.fill,t}__getInputData(){const t=super.__getInputData();return delete t.fill,t}}class Yt extends Lt{__getInputData(){const t=super.__getInputData();return t.url=this.__leaf.canvas.toDataURL("image/png"),t}}const jt={__updateStrokeSpread(){let t=0,e=0;const i=this.__,{strokeAlign:s,strokeWidth:o}=i;if((i.stroke||"all"===i.hitStroke)&&o&&"inside"!==s&&(e=t="center"===s?o/2:o,!i.__boxStroke)){const e=i.__isLinePath?0:10*t,s="none"===i.strokeCap?0:o;t+=Math.max(e,s)}return i.__useArrow&&(t+=5*o),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:i,blur:s,backgroundBlur:o}=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)})),s&&(t=Math.max(t,s));let r=t=Math.ceil(t);return i&&i.forEach((t=>{r=Math.max(r,Math.max(Math.abs(t.y),Math.abs(t.x))+(t.spread<0?-t.spread:0)+1.5*t.blur)})),o&&(r=Math.max(r,o)),this.__layout.renderShapeSpread=r,t+(this.__layout.strokeSpread||0)}},Ut={__updateChange(){const t=this.__;if(t.__useEffect){const{shadow:e,innerShadow:i,blur:s,backgroundBlur:o}=this.__;t.__useEffect=!!(e||i||s||o)}t.__checkSingle();t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect?t.__complex=!0:t.__complex&&(t.__complex=!1)},__drawFast(t,e){Xt(this,t,e)},__draw(t,e){const i=this.__;if(i.__complex){i.__needComputePaint&&i.__computePaint();const{fill:s,stroke:o,__drawAfterFill:r}=i;if(this.__drawRenderPath(t),i.__useEffect){const a=vt.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:n,innerShadow:_}=i;n&&xt.shadow(this,t,a),s&&(i.__isFills?vt.fills(s,this,t):vt.fill(s,this,t)),r&&this.__drawAfterFill(t,e),_&&xt.innerShadow(this,t,a),o&&(i.__isStrokes?vt.strokes(o,this,t):vt.stroke(o,this,t)),a.worldCanvas&&a.worldCanvas.recycle(),a.canvas.recycle()}else s&&(i.__isFills?vt.fills(s,this,t):vt.fill(s,this,t)),r&&this.__drawAfterFill(t,e),o&&(i.__isStrokes?vt.strokes(o,this,t):vt.stroke(o,this,t))}else i.__pathInputed?Xt(this,t,e):this.__drawFast(t,e)},__renderShape(t,e,i,s){if(this.__worldOpacity){t.setWorld(this.__nowWorld=this.__getNowWorld(e));const{fill:o,stroke:r}=this.__;this.__drawRenderPath(t),o&&!i&&(this.__.__pixelFill?vt.fills(o,this,t):vt.fill("#000000",this,t)),this.__.__isCanvas&&this.__drawAfterFill(t,e),r&&!s&&(this.__.__pixelStroke?vt.strokes(r,this,t):vt.stroke("#000000",this,t))}}};function Xt(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r}=t.__;t.__drawRenderPath(e),s&&vt.fill(s,t,e),r&&t.__drawAfterFill(e,i),o&&vt.stroke(o,t,e)}const Gt={__drawFast(t,e){let{width:i,height:s,fill:o,stroke:r,__drawAfterFill:a}=this.__;if(o&&(t.fillStyle=o,t.fillRect(0,0,i,s)),a&&this.__drawAfterFill(t,e),r){const{strokeAlign:o,__strokeWidth:a}=this.__;if(!a)return;t.setStroke(r,a,this.__);const n=a/2;switch(o){case"center":t.strokeRect(0,0,i,s);break;case"inside":i-=a,s-=a,i<0||s<0?(t.save(),this.__clip(t,e),t.strokeRect(n,n,i,s),t.restore()):t.strokeRect(n,n,i,s);break;case"outside":t.strokeRect(-n,-n,i+a,s+a)}}}};var Jt;let $t=Jt=class extends P{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(t){D.assignScale(this,t)}get scale(){return this.__.scale}get pen(){const{path:t}=this.__;return E.set(this.path=t||[]),t||this.__drawPathByBox(E),E}get editConfig(){}get editOuter(){return this.__.__isLinePath?"LineEditTool":"EditTool"}get editInner(){return"PathEditor"}constructor(t){super(t)}reset(t){}set(t,e){e?(this.lockNormalStyle=!0,Object.assign(this,t),this.lockNormalStyle=!1):Object.assign(this,t)}get(t){return"string"==typeof t?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}find(t,e){}findTag(t){return this.find({tag:t})}findOne(t,e){}findId(t){return this.findOne({id:t})}getPath(t,e){this.__layout.update();let i=e?this.__.__pathForRender:this.__.path;return i||(E.set(i=[]),this.__drawPathByBox(E)),t?a.toCanvasData(i,!0):i}getPathString(t,e){return a.stringify(this.getPath(t,e))}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||mt.running?t.__computePaint():t.__needComputePaint=!0}}__updateRenderPath(){if(this.__.path){const t=this.__;t.__pathForRender=t.cornerRadius?F.smooth(t.path,t.cornerRadius,t.cornerSmoothing):t.path,t.__useArrow&>.addArrows(this,!t.cornerRadius)}}__drawRenderPath(t){t.beginPath(),this.__drawPathByData(t,this.__.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path)}__drawPathByData(t,e){e?L.drawPathByData(t,e):this.__drawPathByBox(t)}__drawPathByBox(t){const{x:e,y:i,width:s,height:o}=this.__layout.boxBounds;if(this.__.cornerRadius){const{cornerRadius:r}=this.__;t.roundRect(e,i,s,o,"number"==typeof r?[r]:r)}else t.rect(e,i,s,o)}animate(t,e,i,o){return s("animate")}killAnimate(t){}export(t,e){return mt.export(this,t,e)}clone(t){const e=this.toJSON();return t&&Object.assign(e,t),Jt.one(e)}static one(t,e,i,s,o){return W.get(t.tag||this.prototype.__tag,t,e,i,s,o)}static registerUI(){T()(this)}static registerData(t){_(t)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.fill=this.stroke=null,this.__animate&&this.killAnimate(),super.destroy()}};dt([_(Ct)],$t.prototype,"__",void 0),dt([ut()],$t.prototype,"zoomLayer",void 0),dt([h("")],$t.prototype,"id",void 0),dt([h("")],$t.prototype,"name",void 0),dt([h("")],$t.prototype,"className",void 0),dt([d("pass-through")],$t.prototype,"blendMode",void 0),dt([p(1)],$t.prototype,"opacity",void 0),dt([l(!0)],$t.prototype,"visible",void 0),dt([d(!1)],$t.prototype,"locked",void 0),dt([u(0)],$t.prototype,"zIndex",void 0),dt([c(!1)],$t.prototype,"mask",void 0),dt([y(!1)],$t.prototype,"eraser",void 0),dt([g(0,!0)],$t.prototype,"x",void 0),dt([g(0,!0)],$t.prototype,"y",void 0),dt([v(100,!0)],$t.prototype,"width",void 0),dt([v(100,!0)],$t.prototype,"height",void 0),dt([f(1,!0)],$t.prototype,"scaleX",void 0),dt([f(1,!0)],$t.prototype,"scaleY",void 0),dt([w(0,!0)],$t.prototype,"rotation",void 0),dt([w(0,!0)],$t.prototype,"skewX",void 0),dt([w(0,!0)],$t.prototype,"skewY",void 0),dt([g(0,!0)],$t.prototype,"offsetX",void 0),dt([g(0,!0)],$t.prototype,"offsetY",void 0),dt([g(0,!0)],$t.prototype,"scrollX",void 0),dt([g(0,!0)],$t.prototype,"scrollY",void 0),dt([x()],$t.prototype,"origin",void 0),dt([x()],$t.prototype,"around",void 0),dt([h(!1)],$t.prototype,"lazy",void 0),dt([m(1)],$t.prototype,"pixelRatio",void 0),dt([R()],$t.prototype,"path",void 0),dt([S()],$t.prototype,"windingRule",void 0),dt([S(!0)],$t.prototype,"closed",void 0),dt([v(0)],$t.prototype,"padding",void 0),dt([h(!1)],$t.prototype,"draggable",void 0),dt([h()],$t.prototype,"dragBounds",void 0),dt([h(!1)],$t.prototype,"editable",void 0),dt([k(!0)],$t.prototype,"hittable",void 0),dt([k("path")],$t.prototype,"hitFill",void 0),dt([B("path")],$t.prototype,"hitStroke",void 0),dt([k(!1)],$t.prototype,"hitBox",void 0),dt([k(!0)],$t.prototype,"hitChildren",void 0),dt([k(!0)],$t.prototype,"hitSelf",void 0),dt([k()],$t.prototype,"hitRadius",void 0),dt([b("")],$t.prototype,"cursor",void 0),dt([d()],$t.prototype,"fill",void 0),dt([B()],$t.prototype,"stroke",void 0),dt([B("inside")],$t.prototype,"strokeAlign",void 0),dt([B(1)],$t.prototype,"strokeWidth",void 0),dt([B(!1)],$t.prototype,"strokeWidthFixed",void 0),dt([B("none")],$t.prototype,"strokeCap",void 0),dt([B("miter")],$t.prototype,"strokeJoin",void 0),dt([B()],$t.prototype,"dashPattern",void 0),dt([B()],$t.prototype,"dashOffset",void 0),dt([B(10)],$t.prototype,"miterLimit",void 0),dt([S(0)],$t.prototype,"cornerRadius",void 0),dt([S()],$t.prototype,"cornerSmoothing",void 0),dt([pt()],$t.prototype,"shadow",void 0),dt([pt()],$t.prototype,"innerShadow",void 0),dt([pt()],$t.prototype,"blur",void 0),dt([pt()],$t.prototype,"backgroundBlur",void 0),dt([pt()],$t.prototype,"grayscale",void 0),dt([h({})],$t.prototype,"data",void 0),dt([C(P.prototype.reset)],$t.prototype,"reset",null),$t=Jt=dt([A(jt),A(Ut),I()],$t);let Kt=class extends $t{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.children){const{children:i}=t;let s;delete t.children,this.children?this.clear():this.__setBranch(),super.set(t,e),i.forEach((t=>{s=t.__?t:W.get(t.tag,t),this.add(s)})),t.children=i}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(){}};var qt;dt([_(At)],Kt.prototype,"__",void 0),Kt=dt([A(z),T()],Kt);const Qt=o.get("Leafer");let Zt=qt=class extends Kt{get __tag(){return"Leafer"}get isApp(){return!1}get app(){return this.parent||this}get isLeafer(){return!0}get imageReady(){return this.viewReady&&O.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()}constructor(t,e){super(e),this.config={type:"design",start:!0,hittable:!0,smooth:!0,lazySpeard:100,zoom:{min:.01,max:256},move:{holdSpaceKey:!0,holdMiddleKey:!0,autoDistance:2}},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),qt.list.add(this)}init(t,e){if(this.canvas)return;let i;this.__setLeafer(this),t&&N.assign(this.config,t);const{config:s}=this;this.initType(s.type);const o=this.canvas=V.canvas(s);this.__controllers.push(this.renderer=V.renderer(this,o,s),this.watcher=V.watcher(this,s),this.layouter=V.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(s,e),this.view=o.view,e?(this.__bindApp(e),i=e.running):(this.selector=V.selector(this),this.interaction=V.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=V.hitCanvasManager()),this.canvasManager=new H,i=s.start),this.hittable=s.hittable,this.fill=s.fill,this.canvasManager.add(o),this.__listenEvents(),i&&(this.__startTimer=setTimeout(this.start.bind(this))),Y.run(this.__initWait),this.onInit()}onInit(){}initType(t){}set(t){this.waitInit((()=>{super.set(t)}))}start(){clearTimeout(this.__startTimer),!this.running&&this.canvas&&(this.ready?this.emitLeafer(j.RESTART):this.emitLeafer(j.START),this.__controllers.forEach((t=>t.start())),this.isApp||this.renderer.render(),this.running=!0)}stop(){clearTimeout(this.__startTimer),this.running&&this.canvas&&(this.__controllers.forEach((t=>t.stop())),this.running=!1,this.emitLeafer(j.STOP))}unlockLayout(){this.layouter.start(),this.updateLayout()}lockLayout(){this.updateLayout(),this.layouter.stop()}resize(t){const e=N.copyAttrs({},t,n);Object.keys(e).forEach((t=>this[t]=e[t]))}forceRender(t){this.renderer.addBlock(t?new U(t):this.canvas.bounds),this.viewReady&&this.renderer.update()}updateCursor(t){const e=this.interaction;e&&(t?e.setCursor(t):e.updateCursor())}updateLazyBounds(){this.lazyBounds=this.canvas.bounds.clone().spread(this.config.lazySpeard)}__doResize(t){const{canvas:e}=this;if(!e||e.isSameSize(t))return;const i=N.copyAttrs({},this.canvas,n);e.resize(t),this.updateLazyBounds(),this.__onResize(new X(t,i))}__onResize(t){this.emitEvent(t),N.copyAttrs(this.__,t,n),t.width&&t.height||Qt.warn("w = 0 or h = 0"),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(t,e){e||(t.width&&t.height||(this.autoLayout=new G(t)),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(n.includes(t)?(e||Qt.warn(t+" is 0"),this.__changeCanvasSize(t,e)):"fill"===t?this.__changeFill(e):"hittable"===t?this.parent||(this.canvas.hittable=e):"zIndex"===t&&(this.canvas.zIndex=e,setTimeout((()=>this.parent&&this.parent.__updateSortChildren())))),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&n.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const i=N.copyAttrs({},this.canvas,n);i[t]=this.config[t]=e,e&&this.canvas.stopAutoLayout(),this.__doResize(i)}__changeFill(t){this.config.fill=t,this.canvas.allowBackgroundColor?this.canvas.backgroundColor=t:this.forceRender()}__onCreated(){this.created=!0}__onReady(){this.ready||(this.ready=!0,this.emitLeafer(j.BEFORE_READY),this.emitLeafer(j.READY),this.emitLeafer(j.AFTER_READY),Y.run(this.__readyWait))}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(j.VIEW_READY),Y.run(this.__viewReadyWait))}__onNextRender(){if(this.viewReady){Y.run(this.__nextRenderWait);const{imageReady:t}=this;t&&!this.viewCompleted&&this.__checkViewCompleted(),t||(this.viewCompleted=!1)}}__checkViewCompleted(t=!0){this.nextRender((()=>{this.imageReady&&(t&&this.emitLeafer(j.VIEW_COMPLETED),Y.run(this.__viewCompletedWait),this.viewCompleted=!0)}))}__onWatchData(){this.watcher.childrenChanged&&this.interaction&&this.nextRender((()=>this.interaction.updateCursor()))}waitInit(t,e){e&&(t=t.bind(e)),this.__initWait||(this.__initWait=[]),this.canvas?t():this.__initWait.push(t)}waitReady(t,e){e&&(t=t.bind(e)),this.ready?t():this.__readyWait.push(t)}waitViewReady(t,e){e&&(t=t.bind(e)),this.viewReady?t():this.__viewReadyWait.push(t)}waitViewCompleted(t,e){e&&(t=t.bind(e)),this.__viewCompletedWait.push(t),this.viewCompleted?this.__checkViewCompleted(!1):this.running||this.start()}nextRender(t,e,i){e&&(t=t.bind(e));const s=this.__nextRenderWait;if(i){for(let e=0;e<s.length;e++)if(s[e]===t){s.splice(e,1);break}}else s.push(t)}zoom(t,e,i){return s("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))}updateClientBounds(){this.canvas&&this.canvas.updateClientBounds()}receiveEvent(t){}__checkUpdateLayout(){this.__layout.update()}emitLeafer(t){this.emitEvent(new j(t,this))}__listenEvents(){const t=J.start("FirstCreate "+this.innerName);this.once(j.START,(()=>J.end(t))),this.once($.START,(()=>this.updateLazyBounds())),this.once($.END,(()=>this.__onReady())),this.once(K.START,(()=>this.__onCreated())),this.once(K.END,(()=>this.__onViewReady())),this.__eventIds.push(this.on_(q.DATA,this.__onWatchData,this),this.on_(K.NEXT,this.__onNextRender,this),this.on_($.CHECK_UPDATE,this.__checkUpdateLayout,this))}__removeListenEvents(){this.off_(this.__eventIds),this.__eventIds.length=0}destroy(t){const e=()=>{if(!this.destroyed){qt.list.remove(this);try{this.stop(),this.emitEvent(new j(j.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=null,this.userConfig&&(this.userConfig.view=null),super.destroy(),setTimeout((()=>{O.clearRecycled()}),100)}catch(t){Qt.error(t)}}};t?e():setTimeout(e)}};Zt.list=new M,dt([_(Dt)],Zt.prototype,"__",void 0),dt([v()],Zt.prototype,"pixelRatio",void 0),Zt=qt=dt([T()],Zt);let te=class extends $t{get __tag(){return"Rect"}constructor(t){super(t)}};dt([_(Lt)],te.prototype,"__",void 0),te=dt([A(Gt),I(),T()],te);const{copy:ee,add:ie,includes:se}=Z,oe=te.prototype,re=Kt.prototype,ae={};let ne=class extends Kt{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)if(e.__autoSide){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 t;const{renderBounds:e}=this.__layout;this.children.length?(super.__updateRenderBounds(),ee(ae,e),this.__updateRectRenderBounds(),t=!se(e,ae)||!this.pathInputed||!this.__.cornerRadius):this.__updateRectRenderBounds(),this.isOverflow!==t&&(this.isOverflow=t),!(this.__.__drawAfterFill="hide"===this.__.overflow)&&t&&ie(e,ae)}__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))}__drawAfterFill(t,e){const{length:i}=this.children;this.isOverflow?(t.save(),t.clip(),i&&this.__renderGroup(t,e),t.restore()):i&&this.__renderGroup(t,e),this.__.stroke&&i&&(t.setWorld(this.__nowWorld),this.__drawRenderPath(t))}};dt([_(It)],ne.prototype,"__",void 0),dt([h(!1)],ne.prototype,"resizeChildren",void 0),dt([h(!1)],ne.prototype,"textBox",void 0),dt([Q("show")],ne.prototype,"overflow",void 0),dt([C(oe.__updateStrokeSpread)],ne.prototype,"__updateStrokeSpread",null),dt([C(oe.__updateRenderSpread)],ne.prototype,"__updateRectRenderSpread",null),dt([C(oe.__updateBoxBounds)],ne.prototype,"__updateRectBoxBounds",null),dt([C(oe.__updateStrokeBounds)],ne.prototype,"__updateStrokeBounds",null),dt([C(oe.__updateRenderBounds)],ne.prototype,"__updateRectRenderBounds",null),dt([C(oe.__updateChange)],ne.prototype,"__updateRectChange",null),dt([C(oe.__render)],ne.prototype,"__renderRect",null),dt([C(re.__render)],ne.prototype,"__renderGroup",null),ne=dt([I(),T()],ne);let _e=class extends ne{get __tag(){return"Frame"}get isFrame(){return!0}constructor(t){super(t)}};dt([_(Et)],_e.prototype,"__",void 0),dt([d("#FFFFFF")],_e.prototype,"fill",void 0),dt([Q("hide")],_e.prototype,"overflow",void 0),_e=dt([T()],_e);const{moveTo:he,closePath:de,ellipse:pe}=et;let le=class extends $t{get __tag(){return"Ellipse"}constructor(t){super(t)}__updatePath(){const{width:t,height:e,innerRadius:i,startAngle:s,endAngle:o}=this.__,r=t/2,a=e/2,n=this.__.path=[];i?(s||o?(i<1&&pe(n,r,a,r*i,a*i,0,s,o,!1),pe(n,r,a,r,a,0,o,s,!0),i<1&&de(n)):(i<1&&(pe(n,r,a,r*i,a*i),he(n,t,a)),pe(n,r,a,r,a,0,360,0,!0)),tt.ellipseToCurve&&(this.__.path=this.getPath(!0))):s||o?(he(n,r,a),pe(n,r,a,r,a,0,s,o,!1),de(n)):pe(n,r,a,r,a)}};dt([_(Wt)],le.prototype,"__",void 0),dt([S(0)],le.prototype,"innerRadius",void 0),dt([S(0)],le.prototype,"startAngle",void 0),dt([S(0)],le.prototype,"endAngle",void 0),le=dt([T()],le);const{moveTo:ue,lineTo:ce,drawPoints:ye}=et,{rotate:ge,getAngle:ve,getDistance:fe,defaultPoint:we}=ot,{toBounds:xe}=rt;let me=class extends $t{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=st();return t&&(i.x=t),e&&ge(i,e),i}set toPoint(t){this.width=fe(we,t),this.rotation=ve(we,t),this.height&&(this.height=0)}constructor(t){super(t)}__updatePath(){const t=this.__,e=t.path=[];t.points?ye(e,t.points,!1,t.closed):(ue(e,0,0),ce(e,this.width,0))}__updateRenderPath(){const t=this.__;!this.pathInputed&&t.points&&t.curve?(ye(t.__pathForRender=[],t.points,t.curve,t.closed),t.__useArrow&>.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?xe(this.__.__pathForRender,this.__layout.boxBounds):super.__updateBoxBounds()}};dt([_(Ft)],me.prototype,"__",void 0),dt([it("center")],me.prototype,"strokeAlign",void 0),dt([v(0)],me.prototype,"height",void 0),dt([S()],me.prototype,"points",void 0),dt([S(0)],me.prototype,"curve",void 0),dt([S(!1)],me.prototype,"closed",void 0),me=dt([T()],me);const{sin:Re,cos:Se,PI:ke}=Math,{moveTo:Be,lineTo:be,closePath:Ce,drawPoints:Pe}=et,Ae=me.prototype;let Ie=class extends $t{get __tag(){return"Polygon"}constructor(t){super(t)}__updatePath(){const t=this.__.path=[];if(this.__.points)Pe(t,this.__.points,!1,!0);else{const{width:e,height:i,sides:s}=this.__,o=e/2,r=i/2;Be(t,o,0);for(let e=1;e<s;e++)be(t,o+o*Re(2*e*ke/s),r-r*Se(2*e*ke/s))}Ce(t)}__updateRenderPath(){}__updateBoxBounds(){}};dt([_(Tt)],Ie.prototype,"__",void 0),dt([S(3)],Ie.prototype,"sides",void 0),dt([S()],Ie.prototype,"points",void 0),dt([S(0)],Ie.prototype,"curve",void 0),dt([C(Ae.__updateRenderPath)],Ie.prototype,"__updateRenderPath",null),dt([C(Ae.__updateBoxBounds)],Ie.prototype,"__updateBoxBounds",null),Ie=dt([I(),T()],Ie);const{sin:De,cos:Ee,PI:Fe}=Math,{moveTo:Le,lineTo:We,closePath:Te}=et;let ze=class extends $t{get __tag(){return"Star"}constructor(t){super(t)}__updatePath(){const{width:t,height:e,corners:i,innerRadius:s}=this.__,o=t/2,r=e/2,a=this.__.path=[];Le(a,o,0);for(let t=1;t<2*i;t++)We(a,o+(t%2==0?o:o*s)*De(t*Fe/i),r-(t%2==0?r:r*s)*Ee(t*Fe/i));Te(a)}};dt([_(zt)],ze.prototype,"__",void 0),dt([S(5)],ze.prototype,"corners",void 0),dt([S(.382)],ze.prototype,"innerRadius",void 0),ze=dt([T()],ze);let Me=class extends te{get __tag(){return"Image"}get ready(){return!!this.image&&this.image.ready}constructor(t){super(t),this.on(at.LOADED,(t=>{"fill"===t.attrName&&t.attrValue.url===this.url&&(this.image=t.image)}))}destroy(){this.image=null,super.destroy()}};dt([_(Ht)],Me.prototype,"__",void 0),dt([v("")],Me.prototype,"url",void 0),Me=dt([T()],Me);const Oe=Me;let Ne=class extends te{get __tag(){return"Canvas"}get ready(){return!this.url}constructor(t){super(t),this.canvas=V.canvas(this.__),this.context=this.canvas.context,this.__.__isCanvas=this.__.__drawAfterFill=!0,t&&t.url&&this.drawImage(t.url)}drawImage(t){new nt({url:t}).load((t=>{this.context.drawImage(t.view,0,0),this.url=void 0,this.paint(),this.emitEvent(new at(at.LOADED,{image:t}))}))}draw(t,e,i,s){t.__layout.update();const o=new _t(t.__world).invert(),r=new _t;e&&r.translate(e.x,e.y),i&&("number"==typeof i?r.scale(i):r.scale(i.x,i.y)),s&&r.rotate(s),o.multiplyParent(r),t.__render(this.canvas,{matrix:o.withScale()}),this.paint()}paint(){this.forceRender()}__drawAfterFill(t,e){const{width:i,height:s,cornerRadius:o}=this.__,{view:r}=this.canvas;o||this.pathInputed?(t.save(),t.clip(),t.drawImage(r,0,0,r.width,r.height,0,0,i,s),t.restore()):t.drawImage(r,0,0,r.width,r.height,0,0,i,s)}__updateSize(){const{canvas:t}=this;if(t){const{smooth:e}=this.__;t.smooth!==e&&(t.smooth=e),t.resize(this.__)}}destroy(){this.canvas&&(this.canvas.destroy(),this.canvas=this.context=null),super.destroy()}};dt([_(Yt)],Ne.prototype,"__",void 0),dt([lt(100)],Ne.prototype,"width",void 0),dt([lt(100)],Ne.prototype,"height",void 0),dt([lt(1)],Ne.prototype,"pixelRatio",void 0),dt([lt(!0)],Ne.prototype,"smooth",void 0),dt([lt()],Ne.prototype,"contextSettings",void 0),Ne=dt([T()],Ne);const{copyAndSpread:Ve,includes:He,isSame:Ye,spread:je,setList:Ue}=Z;let Xe=class extends $t{get __tag(){return"Text"}get editInner(){return"TextEditor"}get textDrawData(){return this.__layout.update(),this.__.__textDrawData}constructor(t){super(t)}__drawHitPath(t){const{__lineHeight:e,fontSize:i,__baseLine:s,__textDrawData:o}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):o.rows.forEach((o=>t.rect(o.x,o.y-s,o.width,e<i?i:e)))}__drawPathByData(t,e){const{x:i,y:s,width:o,height:r}=this.__layout.boxBounds;t.rect(i,s,o,r)}__drawRenderPath(t){t.font=this.__.__font}__updateTextDrawData(){const t=this.__;t.__textDrawData=ct.getDrawData(t.text,this.__)}__updateBoxBounds(){const t=this.__,e=this.__layout,{lineHeight:i,letterSpacing:s,fontFamily:o,fontSize:r,fontWeight:a,italic:n,textCase:_,textOverflow:h,padding:d}=t,p=t.__autoWidth,l=t.__autoHeight;t.__lineHeight=Pt.number(i,r),t.__letterSpacing=Pt.number(s,r),t.__padding=d?D.fourNumber(d):void 0,t.__baseLine=t.__lineHeight-(t.__lineHeight-.7*r)/2,t.__font=`${n?"italic ":""}${"small-caps"===_?"small-caps ":""}${"normal"!==a?a+" ":""}${r}px ${o}`,t.__clipText="show"!==h&&!t.__autoSize,this.__updateTextDrawData();const{bounds:u}=t.__textDrawData,c=e.boxBounds;if(t.__lineHeight<r&&je(u,r/2),p||l){if(c.x=p?u.x:0,c.y=l?u.y:0,c.width=p?u.width:t.width,c.height=l?u.height:t.height,d){const[e,i,s,o]=t.__padding;p&&(c.x-=o,c.width+=i+o),l&&(c.y-=e,c.height+=s+e)}this.__updateNaturalSize()}else super.__updateBoxBounds();n&&(c.width+=.16*r);const y=He(c,u)?c:u;Ye(y,e.contentBounds)?t.__textBoxBounds=y:(e.contentBounds=y,e.renderChanged=!0,Ue(t.__textBoxBounds={},[c,u]))}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.__layout.boxBounds===this.__layout.contentBounds?0:1),t}__updateRenderBounds(){Ve(this.__layout.renderBounds,this.__.__textBoxBounds,this.__layout.renderSpread)}};dt([_(Vt)],Xe.prototype,"__",void 0),dt([v(0)],Xe.prototype,"width",void 0),dt([v(0)],Xe.prototype,"height",void 0),dt([h(!1)],Xe.prototype,"resizeFontSize",void 0),dt([d("#000000")],Xe.prototype,"fill",void 0),dt([it("outside")],Xe.prototype,"strokeAlign",void 0),dt([k("all")],Xe.prototype,"hitFill",void 0),dt([v("")],Xe.prototype,"text",void 0),dt([v("L")],Xe.prototype,"fontFamily",void 0),dt([v(12)],Xe.prototype,"fontSize",void 0),dt([v("normal")],Xe.prototype,"fontWeight",void 0),dt([v(!1)],Xe.prototype,"italic",void 0),dt([v("none")],Xe.prototype,"textCase",void 0),dt([v("none")],Xe.prototype,"textDecoration",void 0),dt([v(0)],Xe.prototype,"letterSpacing",void 0),dt([v({type:"percent",value:1.5})],Xe.prototype,"lineHeight",void 0),dt([v(0)],Xe.prototype,"paraIndent",void 0),dt([v(0)],Xe.prototype,"paraSpacing",void 0),dt([v("left")],Xe.prototype,"textAlign",void 0),dt([v("top")],Xe.prototype,"verticalAlign",void 0),dt([v(!0)],Xe.prototype,"autoSizeAlign",void 0),dt([v("normal")],Xe.prototype,"textWrap",void 0),dt([v("show")],Xe.prototype,"textOverflow",void 0),Xe=dt([T()],Xe);let Ge=class extends $t{get __tag(){return"Path"}constructor(t){super(t),this.__.__pathInputed=2}};dt([_(Mt)],Ge.prototype,"__",void 0),dt([it("center")],Ge.prototype,"strokeAlign",void 0),Ge=dt([T()],Ge);let Je=class extends Kt{get __tag(){return"Pen"}constructor(t){super(t)}setStyle(t){const e=this.pathElement=new Ge(t);return this.pathStyle=t,this.__path=e.path||(e.path=[]),this.add(e),this}beginPath(){return this.__path.length=0,this.paint(),this}moveTo(t,e){return this}lineTo(t,e){return this}bezierCurveTo(t,e,i,s,o,r){return this}quadraticCurveTo(t,e,i,s){return this}closePath(){return this}rect(t,e,i,s){return this}roundRect(t,e,i,s,o){return this}ellipse(t,e,i,s,o,r,a,n){return this}arc(t,e,i,s,o,r){return this}arcTo(t,e,i,s,o){return this}drawEllipse(t,e,i,s,o,r,a,n){return this}drawArc(t,e,i,s,o,r){return this}drawPoints(t,e,i){return this}clearPath(){return this}paint(){this.pathElement.__layout.boxChanged||this.pathElement.forceUpdate("path")}};dt([_(Ot)],Je.prototype,"__",void 0),dt([(t,e)=>{i(t,e,{get(){return this.__path}})}],Je.prototype,"path",void 0),Je=dt([A(ht,["set","beginPath","path","paint"]),T()],Je);export{ne as Box,It as BoxData,Ne as Canvas,Yt as CanvasData,yt as ColorConvert,xt as Effect,le as Ellipse,Wt as EllipseData,mt as Export,_e as Frame,Et as FrameData,Kt as Group,At as GroupData,Me as Image,Ht as ImageData,Zt as Leafer,Dt as LeaferData,me as Line,Ft as LineData,Oe as MyImage,vt as Paint,wt as PaintGradient,ft as PaintImage,Ge as Path,gt as PathArrow,Mt as PathData,Je as Pen,Ot as PenData,Ie as Polygon,Tt as PolygonData,te as Rect,Lt as RectData,Gt as RectRender,ze as Star,zt as StarData,Rt as State,Xe as Text,ct as TextConvert,Vt as TextData,St as Transition,$t as UI,jt as UIBounds,Ct as UIData,Ut as UIRender,Pt as UnitConvert,pt as effectType,lt as resizeType,ut as zoomLayerType};
|
|
1
|
+
import{decorateLeafAttr as t,attr as e,defineKey as i,needPlugin as s,Debug as o,LeafData as r,PathConvert as a,canvasSizeAttrs as n,dataProcessor as _,dataType as h,surfaceType as d,opacityType as p,visibleType as l,sortType as u,maskType as c,eraserType as y,positionType as g,boundsType as v,scaleType as f,rotationType as w,autoLayoutType as x,naturalBoundsType as m,pathInputType as R,pathType as S,hitType as k,strokeType as B,cursorType as b,rewrite as C,Leaf as A,useModule as P,rewriteAble as F,MathHelper as D,pen as I,PathCorner as E,PathDrawer as L,UICreator as W,registerUI as T,Branch as z,LeafList as M,ImageManager as O,DataHelper as N,Creator as V,CanvasManager as j,WaitHelper as H,LeaferEvent as Y,Bounds as U,ResizeEvent as X,AutoBounds as G,Run as J,LayoutEvent as $,RenderEvent as K,WatchEvent as q,affectRenderBoundsType as Q,BoundsHelper as Z,Platform as tt,PathCommandDataHelper as et,affectStrokeBoundsType as it,getPointData as st,PointHelper as ot,PathBounds as rt,ImageEvent as at,LeaferImage as nt,Matrix as _t,PathCreator as ht}from"@leafer/core";export*from"@leafer/core";function dt(t,e,i,s){var o,r=arguments.length,a=r<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,s);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(a=(r<3?o(a):r>3?o(e,i,a):o(e,i))||a);return r>3&&a&&Object.defineProperty(e,i,a),a}function pt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0),this.__layout.renderChanged||this.__layout.renderChange()}})))}function lt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}})))}function ut(){return(t,e)=>{const s="_"+e;i(t,e,{set(t){this.isLeafer&&(this[s]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[s]||this:this.leafer&&this.leafer.zoomLayer}})}}"function"==typeof SuppressedError&&SuppressedError;const ct={},yt={},gt={number:(t,e)=>"object"==typeof t?"percent"===t.type?t.value*e:t.value:t},vt={},ft={},wt={},xt={},mt={},Rt={},St={setStyleName:(t,e,i)=>s("state"),set:(t,e)=>s("state")},kt={list:{},register(t,e){kt.list[t]=e},get:t=>kt.list[t]},{parse:Bt,objectToCanvasData:bt}=a,Ct={},At=o.get("UIData");class Pt extends r{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:i}=e.__nowWorld||e.__world;return i<0&&(i=-i),i>1?t/i:t}return t}get __hasStroke(){return this.stroke&&this.strokeWidth}get __clipAfterFill(){return this.cornerRadius||this.__pathInputed}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,At.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,At.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("fill",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isFills=!0,this._fill||(this._fill=Ct)):(this.__isFills&&(this.__removeInput("fill"),wt.recycleImage("fill",this),this.__isFills=!1,this.__pixelFill&&(this.__pixelFill=!1)),this._fill=t)}setStroke(t){"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("stroke",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isStrokes=!0,this._stroke||(this._stroke=Ct)):(this.__isStrokes&&(this.__removeInput("stroke"),wt.recycleImage("stroke",this),this.__isStrokes=!1,this.__pixelStroke&&(this.__pixelStroke=!1)),this._stroke=t)}setPath(t){const e="string"==typeof t;e||t&&"object"==typeof t[0]?(this.__setInput("path",t),this._path=e?Bt(t):bt(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){this.__setInput("shadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._shadow=t.length?t:null):this._shadow=t&&!1!==t.visible?[t]:null}setInnerShadow(t){this.__setInput("innerShadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._innerShadow=t.length?t:null):this._innerShadow=t&&!1!==t.visible?[t]:null}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&ft.compute("fill",this.__leaf),e&&ft.compute("stroke",this.__leaf),this.__needComputePaint=!1}}class Ft extends Pt{}class Dt extends Ft{get __boxStroke(){return!this.__pathInputed}get __drawAfterFill(){return"hide"===this.overflow&&this.__clipAfterFill&&this.__leaf.children.length}get __clipAfterFill(){return this.__leaf.isOverflow||super.__clipAfterFill}}class It extends Ft{__getInputData(t,e){const i=super.__getInputData(t,e);return n.forEach((t=>delete i[t])),i}}class Et extends Dt{}class Lt extends Pt{}class Wt extends Pt{get __boxStroke(){return!this.__pathInputed}}class Tt extends Pt{get __boxStroke(){return!this.__pathInputed}}class zt extends Pt{}class Mt extends Pt{}class Ot extends Pt{get __pathInputed(){return 2}}class Nt extends Ft{}const Vt={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class jt extends Pt{get __useNaturalRatio(){return!1}setFontWeight(t){"string"==typeof t?(this.__setInput("fontWeight",t),this._fontWeight=Vt[t]||400):(this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t)}}class Ht extends Wt{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.__leaf.image&&(this.__leaf.image=null),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 i=super.__getInputData(t,e);return delete i.fill,i}}class Yt extends Wt{get __isCanvas(){return!0}get __drawAfterFill(){return!0}__getInputData(t,e){const i=super.__getInputData(t,e);return i.url=this.__leaf.canvas.toDataURL("image/png"),i}}const Ut={__updateStrokeSpread(){let t=0,e=0;const i=this.__,{strokeAlign:s,strokeWidth:o}=i;if((i.stroke||"all"===i.hitStroke)&&o&&"inside"!==s&&(e=t="center"===s?o/2:o,!i.__boxStroke)){const e=i.__isLinePath?0:10*t,s="none"===i.strokeCap?0:o;t+=Math.max(e,s)}return i.__useArrow&&(t+=5*o),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:i,blur:s,backgroundBlur:o}=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))),s&&(t=Math.max(t,s));let r=t=Math.ceil(t);return i&&i.forEach((t=>r=Math.max(r,Math.max(Math.abs(t.y),Math.abs(t.x))+(t.spread<0?-t.spread:0)+1.5*t.blur))),o&&(r=Math.max(r,o)),this.__layout.renderShapeSpread=r,t+(this.__layout.strokeSpread||0)}},Xt={__updateChange(){const t=this.__;if(t.__useEffect){const{shadow:e,innerShadow:i,blur:s,backgroundBlur:o}=this.__;t.__useEffect=!!(e||i||s||o)}t.__checkSingle();t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect?t.__complex=!0:t.__complex&&(t.__complex=!1)},__drawFast(t,e){Gt(this,t,e)},__draw(t,e){const i=this.__;if(i.__complex){i.__needComputePaint&&i.__computePaint();const{fill:s,stroke:o,__drawAfterFill:r}=i;if(this.__drawRenderPath(t),i.__useEffect){const a=ft.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:n,innerShadow:_}=i;n&&mt.shadow(this,t,a),s&&(i.__isFills?ft.fills(s,this,t):ft.fill(s,this,t)),r&&this.__drawAfterFill(t,e),_&&mt.innerShadow(this,t,a),o&&(i.__isStrokes?ft.strokes(o,this,t):ft.stroke(o,this,t)),a.worldCanvas&&a.worldCanvas.recycle(),a.canvas.recycle()}else s&&(i.__isFills?ft.fills(s,this,t):ft.fill(s,this,t)),r&&this.__drawAfterFill(t,e),o&&(i.__isStrokes?ft.strokes(o,this,t):ft.stroke(o,this,t))}else i.__pathInputed?Gt(this,t,e):this.__drawFast(t,e)},__renderShape(t,e,i,s){if(this.__worldOpacity){t.setWorld(this.__nowWorld=this.__getNowWorld(e));const{fill:o,stroke:r}=this.__;this.__drawRenderPath(t),o&&!i&&(this.__.__pixelFill?ft.fills(o,this,t):ft.fill("#000000",this,t)),this.__.__isCanvas&&this.__drawAfterFill(t,e),r&&!s&&(this.__.__pixelStroke?ft.strokes(r,this,t):ft.stroke("#000000",this,t))}},__drawAfterFill(t,e){this.__.__clipAfterFill?(t.save(),this.windingRule?t.clip(this.windingRule):t.clip(),this.__drawContent(t,e),t.restore()):this.__drawContent(t,e)}};function Gt(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r}=t.__;t.__drawRenderPath(e),s&&ft.fill(s,t,e),r&&t.__drawAfterFill(e,i),o&&ft.stroke(o,t,e)}const Jt={__drawFast(t,e){let{width:i,height:s,fill:o,stroke:r,__drawAfterFill:a}=this.__;if(o&&(t.fillStyle=o,t.fillRect(0,0,i,s)),a&&this.__drawAfterFill(t,e),r){const{strokeAlign:o,__strokeWidth:a}=this.__;if(!a)return;t.setStroke(r,a,this.__);const n=a/2;switch(o){case"center":t.strokeRect(0,0,i,s);break;case"inside":i-=a,s-=a,i<0||s<0?(t.save(),this.__clip(t,e),t.strokeRect(n,n,i,s),t.restore()):t.strokeRect(n,n,i,s);break;case"outside":t.strokeRect(-n,-n,i+a,s+a)}}}};var $t;let Kt=$t=class extends A{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(t){D.assignScale(this,t)}get scale(){return this.__.scale}get pen(){const{path:t}=this.__;return I.set(this.path=t||[]),t||this.__drawPathByBox(I),I}get editConfig(){}get editOuter(){return""}get editInner(){return""}constructor(t){super(t)}reset(t){}set(t,e){e?(this.lockNormalStyle=!0,Object.assign(this,t),this.lockNormalStyle=!1):Object.assign(this,t)}get(t){return"string"==typeof t?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}find(t,e){}findTag(t){return this.find({tag:t})}findOne(t,e){}findId(t){return this.findOne({id:t})}getPath(t,e){this.__layout.update();let i=e?this.__.__pathForRender:this.__.path;return i||(I.set(i=[]),this.__drawPathByBox(I)),t?a.toCanvasData(i,!0):i}getPathString(t,e){return a.stringify(this.getPath(t,e))}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||Rt.running?t.__computePaint():t.__needComputePaint=!0}}__updateRenderPath(){if(this.__.path){const t=this.__;t.__pathForRender=t.cornerRadius?E.smooth(t.path,t.cornerRadius,t.cornerSmoothing):t.path,t.__useArrow&&vt.addArrows(this,!t.cornerRadius)}}__drawRenderPath(t){t.beginPath(),this.__drawPathByData(t,this.__.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path)}__drawPathByData(t,e){e?L.drawPathByData(t,e):this.__drawPathByBox(t)}__drawPathByBox(t){const{x:e,y:i,width:s,height:o}=this.__layout.boxBounds;if(this.__.cornerRadius){const{cornerRadius:r}=this.__;t.roundRect(e,i,s,o,"number"==typeof r?[r]:r)}else t.rect(e,i,s,o)}animate(t,e,i,o){return s("animate")}killAnimate(t){}export(t,e){return Rt.export(this,t,e)}clone(t){const e=this.toJSON();return t&&Object.assign(e,t),$t.one(e)}static one(t,e,i,s,o){return W.get(t.tag||this.prototype.__tag,t,e,i,s,o)}static registerUI(){T()(this)}static registerData(t){_(t)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.fill=this.stroke=null,this.__animate&&this.killAnimate(),super.destroy()}};dt([_(Pt)],Kt.prototype,"__",void 0),dt([ut()],Kt.prototype,"zoomLayer",void 0),dt([h("")],Kt.prototype,"id",void 0),dt([h("")],Kt.prototype,"name",void 0),dt([h("")],Kt.prototype,"className",void 0),dt([d("pass-through")],Kt.prototype,"blendMode",void 0),dt([p(1)],Kt.prototype,"opacity",void 0),dt([l(!0)],Kt.prototype,"visible",void 0),dt([d(!1)],Kt.prototype,"locked",void 0),dt([u(0)],Kt.prototype,"zIndex",void 0),dt([c(!1)],Kt.prototype,"mask",void 0),dt([y(!1)],Kt.prototype,"eraser",void 0),dt([g(0,!0)],Kt.prototype,"x",void 0),dt([g(0,!0)],Kt.prototype,"y",void 0),dt([v(100,!0)],Kt.prototype,"width",void 0),dt([v(100,!0)],Kt.prototype,"height",void 0),dt([f(1,!0)],Kt.prototype,"scaleX",void 0),dt([f(1,!0)],Kt.prototype,"scaleY",void 0),dt([w(0,!0)],Kt.prototype,"rotation",void 0),dt([w(0,!0)],Kt.prototype,"skewX",void 0),dt([w(0,!0)],Kt.prototype,"skewY",void 0),dt([g(0,!0)],Kt.prototype,"offsetX",void 0),dt([g(0,!0)],Kt.prototype,"offsetY",void 0),dt([g(0,!0)],Kt.prototype,"scrollX",void 0),dt([g(0,!0)],Kt.prototype,"scrollY",void 0),dt([x()],Kt.prototype,"origin",void 0),dt([x()],Kt.prototype,"around",void 0),dt([h(!1)],Kt.prototype,"lazy",void 0),dt([m(1)],Kt.prototype,"pixelRatio",void 0),dt([R()],Kt.prototype,"path",void 0),dt([S()],Kt.prototype,"windingRule",void 0),dt([S(!0)],Kt.prototype,"closed",void 0),dt([v(0)],Kt.prototype,"padding",void 0),dt([h(!1)],Kt.prototype,"draggable",void 0),dt([h()],Kt.prototype,"dragBounds",void 0),dt([h(!1)],Kt.prototype,"editable",void 0),dt([k(!0)],Kt.prototype,"hittable",void 0),dt([k("path")],Kt.prototype,"hitFill",void 0),dt([B("path")],Kt.prototype,"hitStroke",void 0),dt([k(!1)],Kt.prototype,"hitBox",void 0),dt([k(!0)],Kt.prototype,"hitChildren",void 0),dt([k(!0)],Kt.prototype,"hitSelf",void 0),dt([k()],Kt.prototype,"hitRadius",void 0),dt([b("")],Kt.prototype,"cursor",void 0),dt([d()],Kt.prototype,"fill",void 0),dt([B()],Kt.prototype,"stroke",void 0),dt([B("inside")],Kt.prototype,"strokeAlign",void 0),dt([B(1)],Kt.prototype,"strokeWidth",void 0),dt([B(!1)],Kt.prototype,"strokeWidthFixed",void 0),dt([B("none")],Kt.prototype,"strokeCap",void 0),dt([B("miter")],Kt.prototype,"strokeJoin",void 0),dt([B()],Kt.prototype,"dashPattern",void 0),dt([B()],Kt.prototype,"dashOffset",void 0),dt([B(10)],Kt.prototype,"miterLimit",void 0),dt([S(0)],Kt.prototype,"cornerRadius",void 0),dt([S()],Kt.prototype,"cornerSmoothing",void 0),dt([pt()],Kt.prototype,"shadow",void 0),dt([pt()],Kt.prototype,"innerShadow",void 0),dt([pt()],Kt.prototype,"blur",void 0),dt([pt()],Kt.prototype,"backgroundBlur",void 0),dt([pt()],Kt.prototype,"grayscale",void 0),dt([h({})],Kt.prototype,"data",void 0),dt([C(A.prototype.reset)],Kt.prototype,"reset",null),Kt=$t=dt([P(Ut),P(Xt),F()],Kt);let qt=class extends Kt{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.children){const{children:i}=t;delete t.children,this.children?this.clear():this.__setBranch(),super.set(t,e),i.forEach((t=>this.add(t))),t.children=i}else super.set(t,e)}toJSON(t){const e=super.toJSON(t);return e.children=this.children.map((e=>e.toJSON(t))),e}pick(t,e){}addAt(t,e){this.add(t,e)}addAfter(t,e){this.add(t,this.children.indexOf(e)+1)}addBefore(t,e){this.add(t,this.children.indexOf(e))}add(t,e){}addMany(...t){}remove(t,e){}removeAll(t){}clear(){}};var Qt;dt([_(Ft)],qt.prototype,"__",void 0),qt=dt([P(z),T()],qt);const Zt=o.get("Leafer");let te=Qt=class extends qt{get __tag(){return"Leafer"}get isApp(){return!1}get app(){return this.parent||this}get isLeafer(){return!0}get imageReady(){return this.viewReady&&O.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()}constructor(t,e){super(e),this.config={type:"design",start:!0,hittable:!0,smooth:!0,lazySpeard:100,zoom:{min:.01,max:256},move:{holdSpaceKey:!0,holdMiddleKey:!0,autoDistance:2}},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),Qt.list.add(this)}init(t,e){if(this.canvas)return;let i;this.__setLeafer(this),t&&N.assign(this.config,t);const{config:s}=this;this.initType(s.type);const o=this.canvas=V.canvas(s);this.__controllers.push(this.renderer=V.renderer(this,o,s),this.watcher=V.watcher(this,s),this.layouter=V.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(s,e),this.view=o.view,e?(this.__bindApp(e),i=e.running):(this.selector=V.selector(this),this.interaction=V.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=V.hitCanvasManager()),this.canvasManager=new j,i=s.start),this.hittable=s.hittable,this.fill=s.fill,this.canvasManager.add(o),this.__listenEvents(),i&&(this.__startTimer=setTimeout(this.start.bind(this))),H.run(this.__initWait),this.onInit()}onInit(){}initType(t){}set(t){this.waitInit((()=>{super.set(t)}))}start(){clearTimeout(this.__startTimer),!this.running&&this.canvas&&(this.ready?this.emitLeafer(Y.RESTART):this.emitLeafer(Y.START),this.__controllers.forEach((t=>t.start())),this.isApp||this.renderer.render(),this.running=!0)}stop(){clearTimeout(this.__startTimer),this.running&&this.canvas&&(this.__controllers.forEach((t=>t.stop())),this.running=!1,this.emitLeafer(Y.STOP))}unlockLayout(){this.layouter.start(),this.updateLayout()}lockLayout(){this.updateLayout(),this.layouter.stop()}resize(t){const e=N.copyAttrs({},t,n);Object.keys(e).forEach((t=>this[t]=e[t]))}forceRender(t){this.renderer.addBlock(t?new U(t):this.canvas.bounds),this.viewReady&&this.renderer.update()}updateCursor(t){const e=this.interaction;e&&(t?e.setCursor(t):e.updateCursor())}updateLazyBounds(){this.lazyBounds=this.canvas.bounds.clone().spread(this.config.lazySpeard)}__doResize(t){const{canvas:e}=this;if(!e||e.isSameSize(t))return;const i=N.copyAttrs({},this.canvas,n);e.resize(t),this.updateLazyBounds(),this.__onResize(new X(t,i))}__onResize(t){this.emitEvent(t),N.copyAttrs(this.__,t,n),t.width&&t.height||Zt.warn("w = 0 or h = 0"),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(t,e){e||(t.width&&t.height||(this.autoLayout=new G(t)),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(n.includes(t)?(e||Zt.warn(t+" is 0"),this.__changeCanvasSize(t,e)):"fill"===t?this.__changeFill(e):"hittable"===t?this.parent||(this.canvas.hittable=e):"zIndex"===t&&(this.canvas.zIndex=e,setTimeout((()=>this.parent&&this.parent.__updateSortChildren())))),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&n.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const i=N.copyAttrs({},this.canvas,n);i[t]=this.config[t]=e,e&&this.canvas.stopAutoLayout(),this.__doResize(i)}__changeFill(t){this.config.fill=t,this.canvas.allowBackgroundColor?this.canvas.backgroundColor=t:this.forceRender()}__onCreated(){this.created=!0}__onReady(){this.ready||(this.ready=!0,this.emitLeafer(Y.BEFORE_READY),this.emitLeafer(Y.READY),this.emitLeafer(Y.AFTER_READY),H.run(this.__readyWait))}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(Y.VIEW_READY),H.run(this.__viewReadyWait))}__onNextRender(){if(this.viewReady){H.run(this.__nextRenderWait);const{imageReady:t}=this;t&&!this.viewCompleted&&this.__checkViewCompleted(),t||(this.viewCompleted=!1)}}__checkViewCompleted(t=!0){this.nextRender((()=>{this.imageReady&&(t&&this.emitLeafer(Y.VIEW_COMPLETED),H.run(this.__viewCompletedWait),this.viewCompleted=!0)}))}__onWatchData(){this.watcher.childrenChanged&&this.interaction&&this.nextRender((()=>this.interaction.updateCursor()))}waitInit(t,e){e&&(t=t.bind(e)),this.__initWait||(this.__initWait=[]),this.canvas?t():this.__initWait.push(t)}waitReady(t,e){e&&(t=t.bind(e)),this.ready?t():this.__readyWait.push(t)}waitViewReady(t,e){e&&(t=t.bind(e)),this.viewReady?t():this.__viewReadyWait.push(t)}waitViewCompleted(t,e){e&&(t=t.bind(e)),this.__viewCompletedWait.push(t),this.viewCompleted?this.__checkViewCompleted(!1):this.running||this.start()}nextRender(t,e,i){e&&(t=t.bind(e));const s=this.__nextRenderWait;if(i){for(let e=0;e<s.length;e++)if(s[e]===t){s.splice(e,1);break}}else s.push(t)}zoom(t,e,i){return s("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))}updateClientBounds(){this.canvas&&this.canvas.updateClientBounds()}receiveEvent(t){}__checkUpdateLayout(){this.__layout.update()}emitLeafer(t){this.emitEvent(new Y(t,this))}__listenEvents(){const t=J.start("FirstCreate "+this.innerName);this.once(Y.START,(()=>J.end(t))),this.once($.START,(()=>this.updateLazyBounds())),this.once($.END,(()=>this.__onReady())),this.once(K.START,(()=>this.__onCreated())),this.once(K.END,(()=>this.__onViewReady())),this.__eventIds.push(this.on_(q.DATA,this.__onWatchData,this),this.on_(K.NEXT,this.__onNextRender,this),this.on_($.CHECK_UPDATE,this.__checkUpdateLayout,this))}__removeListenEvents(){this.off_(this.__eventIds),this.__eventIds.length=0}destroy(t){const e=()=>{if(!this.destroyed){Qt.list.remove(this);try{this.stop(),this.emitEvent(new Y(Y.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=null,this.userConfig&&(this.userConfig.view=null),super.destroy(),setTimeout((()=>{O.clearRecycled()}),100)}catch(t){Zt.error(t)}}};t?e():setTimeout(e)}};te.list=new M,dt([_(It)],te.prototype,"__",void 0),dt([v()],te.prototype,"pixelRatio",void 0),te=Qt=dt([T()],te);let ee=class extends Kt{get __tag(){return"Rect"}constructor(t){super(t)}};dt([_(Wt)],ee.prototype,"__",void 0),ee=dt([P(Jt),F(),T()],ee);const{copy:ie,add:se,includes:oe}=Z,re=ee.prototype,ae=qt.prototype,ne={};let _e=class extends qt{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)if(e.__autoSide){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 t;const{renderBounds:e}=this.__layout;this.children.length?(super.__updateRenderBounds(),ie(ne,e),this.__updateRectRenderBounds(),t=!oe(e,ne),t&&"hide"!==this.__.overflow&&se(e,ne)):this.__updateRectRenderBounds(),!this.isOverflow!=!t&&(this.isOverflow=t)}__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))}};dt([_(Dt)],_e.prototype,"__",void 0),dt([h(!1)],_e.prototype,"resizeChildren",void 0),dt([h(!1)],_e.prototype,"textBox",void 0),dt([Q("show")],_e.prototype,"overflow",void 0),dt([C(re.__updateStrokeSpread)],_e.prototype,"__updateStrokeSpread",null),dt([C(re.__updateRenderSpread)],_e.prototype,"__updateRectRenderSpread",null),dt([C(re.__updateBoxBounds)],_e.prototype,"__updateRectBoxBounds",null),dt([C(re.__updateStrokeBounds)],_e.prototype,"__updateStrokeBounds",null),dt([C(re.__updateRenderBounds)],_e.prototype,"__updateRectRenderBounds",null),dt([C(re.__updateChange)],_e.prototype,"__updateRectChange",null),dt([C(re.__render)],_e.prototype,"__renderRect",null),dt([C(ae.__render)],_e.prototype,"__renderGroup",null),_e=dt([F(),T()],_e);let he=class extends _e{get __tag(){return"Frame"}get isFrame(){return!0}constructor(t){super(t)}};dt([_(Et)],he.prototype,"__",void 0),dt([d("#FFFFFF")],he.prototype,"fill",void 0),dt([Q("hide")],he.prototype,"overflow",void 0),he=dt([T()],he);const{moveTo:de,closePath:pe,ellipse:le}=et;let ue=class extends Kt{get __tag(){return"Ellipse"}constructor(t){super(t)}__updatePath(){const{width:t,height:e,innerRadius:i,startAngle:s,endAngle:o}=this.__,r=t/2,a=e/2,n=this.__.path=[];i?(s||o?(i<1&&le(n,r,a,r*i,a*i,0,s,o,!1),le(n,r,a,r,a,0,o,s,!0),i<1&&pe(n)):(i<1&&(le(n,r,a,r*i,a*i),de(n,t,a)),le(n,r,a,r,a,0,360,0,!0)),tt.ellipseToCurve&&(this.__.path=this.getPath(!0))):s||o?(de(n,r,a),le(n,r,a,r,a,0,s,o,!1),pe(n)):le(n,r,a,r,a)}};dt([_(Tt)],ue.prototype,"__",void 0),dt([S(0)],ue.prototype,"innerRadius",void 0),dt([S(0)],ue.prototype,"startAngle",void 0),dt([S(0)],ue.prototype,"endAngle",void 0),ue=dt([T()],ue);const{moveTo:ce,lineTo:ye,drawPoints:ge}=et,{rotate:ve,getAngle:fe,getDistance:we,defaultPoint:xe}=ot,{toBounds:me}=rt;let Re=class extends Kt{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=st();return t&&(i.x=t),e&&ve(i,e),i}set toPoint(t){this.width=we(xe,t),this.rotation=fe(xe,t),this.height&&(this.height=0)}constructor(t){super(t)}__updatePath(){const t=this.__,e=t.path=[];t.points?ge(e,t.points,!1,t.closed):(ce(e,0,0),ye(e,this.width,0))}__updateRenderPath(){const t=this.__;!this.pathInputed&&t.points&&t.curve?(ge(t.__pathForRender=[],t.points,t.curve,t.closed),t.__useArrow&&vt.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?me(this.__.__pathForRender,this.__layout.boxBounds):super.__updateBoxBounds()}};dt([_(Lt)],Re.prototype,"__",void 0),dt([it("center")],Re.prototype,"strokeAlign",void 0),dt([v(0)],Re.prototype,"height",void 0),dt([S()],Re.prototype,"points",void 0),dt([S(0)],Re.prototype,"curve",void 0),dt([S(!1)],Re.prototype,"closed",void 0),Re=dt([T()],Re);const{sin:Se,cos:ke,PI:Be}=Math,{moveTo:be,lineTo:Ce,closePath:Ae,drawPoints:Pe}=et,Fe=Re.prototype;let De=class extends Kt{get __tag(){return"Polygon"}constructor(t){super(t)}__updatePath(){const t=this.__.path=[];if(this.__.points)Pe(t,this.__.points,!1,!0);else{const{width:e,height:i,sides:s}=this.__,o=e/2,r=i/2;be(t,o,0);for(let e=1;e<s;e++)Ce(t,o+o*Se(2*e*Be/s),r-r*ke(2*e*Be/s))}Ae(t)}__updateRenderPath(){}__updateBoxBounds(){}};dt([_(zt)],De.prototype,"__",void 0),dt([S(3)],De.prototype,"sides",void 0),dt([S()],De.prototype,"points",void 0),dt([S(0)],De.prototype,"curve",void 0),dt([C(Fe.__updateRenderPath)],De.prototype,"__updateRenderPath",null),dt([C(Fe.__updateBoxBounds)],De.prototype,"__updateBoxBounds",null),De=dt([F(),T()],De);const{sin:Ie,cos:Ee,PI:Le}=Math,{moveTo:We,lineTo:Te,closePath:ze}=et;let Me=class extends Kt{get __tag(){return"Star"}constructor(t){super(t)}__updatePath(){const{width:t,height:e,corners:i,innerRadius:s}=this.__,o=t/2,r=e/2,a=this.__.path=[];We(a,o,0);for(let t=1;t<2*i;t++)Te(a,o+(t%2==0?o:o*s)*Ie(t*Le/i),r-(t%2==0?r:r*s)*Ee(t*Le/i));ze(a)}};dt([_(Mt)],Me.prototype,"__",void 0),dt([S(5)],Me.prototype,"corners",void 0),dt([S(.382)],Me.prototype,"innerRadius",void 0),Me=dt([T()],Me);let Oe=class extends ee{get __tag(){return"Image"}get ready(){return!!this.image&&this.image.ready}constructor(t){super(t),this.on(at.LOADED,(t=>{"fill"===t.attrName&&t.attrValue.url===this.url&&(this.image=t.image)}))}destroy(){this.image=null,super.destroy()}};dt([_(Ht)],Oe.prototype,"__",void 0),dt([v("")],Oe.prototype,"url",void 0),Oe=dt([T()],Oe);const Ne=Oe;let Ve=class extends ee{get __tag(){return"Canvas"}get ready(){return!this.url}constructor(t){super(t),this.canvas=V.canvas(this.__),this.context=this.canvas.context,t&&t.url&&this.drawImage(t.url)}drawImage(t){new nt({url:t}).load((t=>{this.context.drawImage(t.view,0,0),this.url=void 0,this.paint(),this.emitEvent(new at(at.LOADED,{image:t}))}))}draw(t,e,i,s){const o=new _t(t.worldTransform).invert(),r=new _t;e&&r.translate(e.x,e.y),i&&("number"==typeof i?r.scale(i):r.scale(i.x,i.y)),s&&r.rotate(s),o.multiplyParent(r),t.__render(this.canvas,{matrix:o.withScale()}),this.paint()}paint(){this.forceRender()}__drawContent(t,e){const{width:i,height:s}=this.__,{view:o}=this.canvas;t.drawImage(o,0,0,o.width,o.height,0,0,i,s)}__updateSize(){const{canvas:t}=this;if(t){const{smooth:e}=this.__;t.smooth!==e&&(t.smooth=e),t.resize(this.__)}}destroy(){this.canvas&&(this.canvas.destroy(),this.canvas=this.context=null),super.destroy()}};dt([_(Yt)],Ve.prototype,"__",void 0),dt([lt(100)],Ve.prototype,"width",void 0),dt([lt(100)],Ve.prototype,"height",void 0),dt([lt(1)],Ve.prototype,"pixelRatio",void 0),dt([lt(!0)],Ve.prototype,"smooth",void 0),dt([lt()],Ve.prototype,"contextSettings",void 0),Ve=dt([T()],Ve);const{copyAndSpread:je,includes:He,isSame:Ye,spread:Ue,setList:Xe}=Z;let Ge=class extends Kt{get __tag(){return"Text"}get textDrawData(){return this.__layout.update(),this.__.__textDrawData}constructor(t){super(t)}__drawHitPath(t){const{__lineHeight:e,fontSize:i,__baseLine:s,__textDrawData:o}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):o.rows.forEach((o=>t.rect(o.x,o.y-s,o.width,e<i?i:e)))}__drawPathByData(t,e){const{x:i,y:s,width:o,height:r}=this.__layout.boxBounds;t.rect(i,s,o,r)}__drawRenderPath(t){t.font=this.__.__font}__updateTextDrawData(){const t=this.__;t.__textDrawData=ct.getDrawData(t.text,this.__)}__updateBoxBounds(){const t=this.__,e=this.__layout,{lineHeight:i,letterSpacing:s,fontFamily:o,fontSize:r,fontWeight:a,italic:n,textCase:_,textOverflow:h,padding:d}=t,p=t.__autoWidth,l=t.__autoHeight;t.__lineHeight=gt.number(i,r),t.__letterSpacing=gt.number(s,r),t.__padding=d?D.fourNumber(d):void 0,t.__baseLine=t.__lineHeight-(t.__lineHeight-.7*r)/2,t.__font=`${n?"italic ":""}${"small-caps"===_?"small-caps ":""}${"normal"!==a?a+" ":""}${r}px ${o}`,t.__clipText="show"!==h&&!t.__autoSize,this.__updateTextDrawData();const{bounds:u}=t.__textDrawData,c=e.boxBounds;if(t.__lineHeight<r&&Ue(u,r/2),p||l){if(c.x=p?u.x:0,c.y=l?u.y:0,c.width=p?u.width:t.width,c.height=l?u.height:t.height,d){const[e,i,s,o]=t.__padding;p&&(c.x-=o,c.width+=i+o),l&&(c.y-=e,c.height+=s+e)}this.__updateNaturalSize()}else super.__updateBoxBounds();n&&(c.width+=.16*r);const y=He(c,u)?c:u;Ye(y,e.contentBounds)?t.__textBoxBounds=y:(e.contentBounds=y,e.renderChanged=!0,Xe(t.__textBoxBounds={},[c,u]))}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.__layout.boxBounds===this.__layout.contentBounds?0:1),t}__updateRenderBounds(){je(this.__layout.renderBounds,this.__.__textBoxBounds,this.__layout.renderSpread)}};dt([_(jt)],Ge.prototype,"__",void 0),dt([v(0)],Ge.prototype,"width",void 0),dt([v(0)],Ge.prototype,"height",void 0),dt([h(!1)],Ge.prototype,"resizeFontSize",void 0),dt([d("#000000")],Ge.prototype,"fill",void 0),dt([it("outside")],Ge.prototype,"strokeAlign",void 0),dt([k("all")],Ge.prototype,"hitFill",void 0),dt([v("")],Ge.prototype,"text",void 0),dt([v("L")],Ge.prototype,"fontFamily",void 0),dt([v(12)],Ge.prototype,"fontSize",void 0),dt([v("normal")],Ge.prototype,"fontWeight",void 0),dt([v(!1)],Ge.prototype,"italic",void 0),dt([v("none")],Ge.prototype,"textCase",void 0),dt([v("none")],Ge.prototype,"textDecoration",void 0),dt([v(0)],Ge.prototype,"letterSpacing",void 0),dt([v({type:"percent",value:1.5})],Ge.prototype,"lineHeight",void 0),dt([v(0)],Ge.prototype,"paraIndent",void 0),dt([v(0)],Ge.prototype,"paraSpacing",void 0),dt([v("left")],Ge.prototype,"textAlign",void 0),dt([v("top")],Ge.prototype,"verticalAlign",void 0),dt([v(!0)],Ge.prototype,"autoSizeAlign",void 0),dt([v("normal")],Ge.prototype,"textWrap",void 0),dt([v("show")],Ge.prototype,"textOverflow",void 0),Ge=dt([T()],Ge);let Je=class extends Kt{get __tag(){return"Path"}constructor(t){super(t)}};dt([_(Ot)],Je.prototype,"__",void 0),dt([it("center")],Je.prototype,"strokeAlign",void 0),Je=dt([T()],Je);let $e=class extends qt{get __tag(){return"Pen"}constructor(t){super(t)}setStyle(t){const e=this.pathElement=new Je(t);return this.pathStyle=t,this.__path=e.path||(e.path=[]),this.add(e),this}beginPath(){return this.__path.length=0,this.paint(),this}moveTo(t,e){return this}lineTo(t,e){return this}bezierCurveTo(t,e,i,s,o,r){return this}quadraticCurveTo(t,e,i,s){return this}closePath(){return this}rect(t,e,i,s){return this}roundRect(t,e,i,s,o){return this}ellipse(t,e,i,s,o,r,a,n){return this}arc(t,e,i,s,o,r){return this}arcTo(t,e,i,s,o){return this}drawEllipse(t,e,i,s,o,r,a,n){return this}drawArc(t,e,i,s,o,r){return this}drawPoints(t,e,i){return this}clearPath(){return this}paint(){this.pathElement.__layout.boxChanged||this.pathElement.forceUpdate("path")}};dt([_(Nt)],$e.prototype,"__",void 0),dt([(t,e)=>{i(t,e,{get(){return this.__path}})}],$e.prototype,"path",void 0),$e=dt([P(ht,["set","beginPath","path","paint"]),T()],$e);export{_e as Box,Dt as BoxData,Ve as Canvas,Yt as CanvasData,yt as ColorConvert,mt as Effect,ue as Ellipse,Tt as EllipseData,Rt as Export,he as Frame,Et as FrameData,qt as Group,Ft as GroupData,Oe as Image,Ht as ImageData,te as Leafer,It as LeaferData,Re as Line,Lt as LineData,Ne as MyImage,ft as Paint,xt as PaintGradient,wt as PaintImage,Je as Path,vt as PathArrow,Ot as PathData,$e as Pen,Nt as PenData,De as Polygon,zt as PolygonData,ee as Rect,Wt as RectData,Jt as RectRender,Me as Star,Mt as StarData,St as State,Ge as Text,ct as TextConvert,jt as TextData,kt as Transition,Kt as UI,Ut as UIBounds,Pt as UIData,Xt as UIRender,gt as UnitConvert,pt as effectType,lt as resizeType,ut as zoomLayerType};
|
package/lib/draw.min.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
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={},n={},p={},h={},_={},d={setStyleName:(e,s,r)=>t.needPlugin("state"),set:(e,s)=>t.needPlugin("state")},l={list:{},register(t,e){l.list[t]=e},get:t=>l.list[t]},{parse:u}=t.PathConvert,c={},y=t.Debug.get("UIData");class x 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 __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,y.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,y.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("fill",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isFills=!0,this._fill||(this._fill=c)):(this.__isFills&&(this.__removeInput("fill"),p.recycleImage("fill",this),this.__isFills=!1,this.__pixelFill&&(this.__pixelFill=!1)),this._fill=t)}setStroke(t){"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("stroke",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isStrokes=!0,this._stroke||(this._stroke=c)):(this.__isStrokes&&(this.__removeInput("stroke"),p.recycleImage("stroke",this),this.__isStrokes=!1,this.__pixelStroke&&(this.__pixelStroke=!1)),this._stroke=t)}setPath(t){"string"==typeof t?(this.__setInput("path",t),this._path=u(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){this.__setInput("shadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._shadow=t.length?t:null):this._shadow=t?!1===t.visible?null:[t]:null}setInnerShadow(t){this.__setInput("innerShadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._innerShadow=t.length?t:null):this._innerShadow=t?!1===t.visible?null:[t]:null}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&n.compute("fill",this.__leaf),e&&n.compute("stroke",this.__leaf),this.__needComputePaint=!1}}const g={number:(t,e)=>"object"==typeof t?"percent"===t.type?t.value*e:t.value:t};class v extends x{}class f extends v{get __boxStroke(){return!this.__pathInputed}}class w extends v{__getInputData(){const e=super.__getInputData();return t.canvasSizeAttrs.forEach((t=>delete e[t])),e}}class m extends f{}class T extends x{}class I extends x{get __boxStroke(){return!this.__pathInputed}}class R extends x{get __boxStroke(){return!this.__pathInputed}}class P extends x{}class S extends x{}class B extends x{}class b extends v{}const C={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class k extends x{get __useNaturalRatio(){return!1}setFontWeight(t){"string"==typeof t?(this.__setInput("fontWeight",t),this._fontWeight=C[t]||400):(this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t)}}class U extends I{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.__leaf.image&&(this.__leaf.image=null),this.fill=t?{type:"image",mode:"stretch",url:t}:void 0}__getData(){const t=super.__getData();return delete t.fill,t}__getInputData(){const t=super.__getInputData();return delete t.fill,t}}class L extends I{__getInputData(){const t=super.__getInputData();return t.url=this.__leaf.canvas.toDataURL("image/png"),t}}const A={__updateStrokeSpread(){let t=0,e=0;const s=this.__,{strokeAlign:r,strokeWidth:o}=s;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),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:s,blur:r,backgroundBlur:o}=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));let i=t=Math.ceil(t);return s&&s.forEach((t=>{i=Math.max(i,Math.max(Math.abs(t.y),Math.abs(t.x))+(t.spread<0?-t.spread:0)+1.5*t.blur)})),o&&(i=Math.max(i,o)),this.__layout.renderShapeSpread=i,t+(this.__layout.strokeSpread||0)}},E={__updateChange(){const t=this.__;if(t.__useEffect){const{shadow:e,innerShadow:s,blur:r,backgroundBlur:o}=this.__;t.__useEffect=!!(e||s||r||o)}t.__checkSingle();t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect?t.__complex=!0:t.__complex&&(t.__complex=!1)},__drawFast(t,e){D(this,t,e)},__draw(t,e){const s=this.__;if(s.__complex){s.__needComputePaint&&s.__computePaint();const{fill:r,stroke:o,__drawAfterFill:i}=s;if(this.__drawRenderPath(t),s.__useEffect){const a=n.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:p,innerShadow:_}=s;p&&h.shadow(this,t,a),r&&(s.__isFills?n.fills(r,this,t):n.fill(r,this,t)),i&&this.__drawAfterFill(t,e),_&&h.innerShadow(this,t,a),o&&(s.__isStrokes?n.strokes(o,this,t):n.stroke(o,this,t)),a.worldCanvas&&a.worldCanvas.recycle(),a.canvas.recycle()}else r&&(s.__isFills?n.fills(r,this,t):n.fill(r,this,t)),i&&this.__drawAfterFill(t,e),o&&(s.__isStrokes?n.strokes(o,this,t):n.stroke(o,this,t))}else s.__pathInputed?D(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.__.__pixelFill?n.fills(o,this,t):n.fill("#000000",this,t)),this.__.__isCanvas&&this.__drawAfterFill(t,e),i&&!r&&(this.__.__pixelStroke?n.strokes(i,this,t):n.stroke("#000000",this,t))}}};function D(t,e,s){const{fill:r,stroke:o,__drawAfterFill:i}=t.__;t.__drawRenderPath(e),r&&n.fill(r,t,e),i&&t.__drawAfterFill(e,s),o&&n.stroke(o,t,e)}const F={__drawFast(t,e){let{width:s,height:r,fill:o,stroke:i,__drawAfterFill:a}=this.__;if(o&&(t.fillStyle=o,t.fillRect(0,0,s,r)),a&&this.__drawAfterFill(t,e),i){const{strokeAlign:o,__strokeWidth:a}=this.__;if(!a)return;t.setStroke(i,a,this.__);const n=a/2;switch(o){case"center":t.strokeRect(0,0,s,r);break;case"inside":s-=a,r-=a,s<0||r<0?(t.save(),this.__clip(t,e),t.strokeRect(n,n,s,r),t.restore()):t.strokeRect(n,n,s,r);break;case"outside":t.strokeRect(-n,-n,s+a,r+a)}}}};var W,z;exports.UI=W=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}get editConfig(){}get editOuter(){return this.__.__isLinePath?"LineEditTool":"EditTool"}get editInner(){return"PathEditor"}constructor(t){super(t)}reset(t){}set(t,e){e?(this.lockNormalStyle=!0,Object.assign(this,t),this.lockNormalStyle=!1):Object.assign(this,t)}get(t){return"string"==typeof t?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}find(t,e){}findTag(t){return this.find({tag:t})}findOne(t,e){}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){return t.PathConvert.stringify(this.getPath(e,s))}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||_.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&&a.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)}animate(e,s,r,o){return t.needPlugin("animate")}killAnimate(t){}export(t,e){return _.export(this,t,e)}clone(t){const e=this.toJSON();return t&&Object.assign(e,t),W.one(e)}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(x)],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.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.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()],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([t.dataType({})],exports.UI.prototype,"data",void 0),e([t.rewrite(t.Leaf.prototype.reset)],exports.UI.prototype,"reset",null),exports.UI=W=e([t.useModule(A),t.useModule(E),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(e,s){if(e.children){const{children:r}=e;let o;delete e.children,this.children?this.clear():this.__setBranch(),super.set(e,s),r.forEach((e=>{o=e.__?e:t.UICreator.get(e.tag,e),this.add(o)})),e.children=r}else super.set(e,s)}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(v)],exports.Group.prototype,"__",void 0),exports.Group=e([t.useModule(t.Branch),t.registerUI()],exports.Group);const M=t.Debug.get("Leafer");exports.Leafer=z=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.ImageManager.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()}constructor(t,e){super(e),this.config={type:"design",start:!0,hittable:!0,smooth:!0,lazySpeard:100,zoom:{min:.01,max:256},move:{holdSpaceKey:!0,holdMiddleKey:!0,autoDistance:2}},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),z.list.add(this)}init(e,s){if(this.canvas)return;let r;this.__setLeafer(this),e&&t.DataHelper.assign(this.config,e);const{config:o}=this;this.initType(o.type);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.__bindApp(s),r=s.running):(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){this.waitInit((()=>{super.set(t)}))}start(){clearTimeout(this.__startTimer),!this.running&&this.canvas&&(this.ready?this.emitLeafer(t.LeaferEvent.RESTART):this.emitLeafer(t.LeaferEvent.START),this.__controllers.forEach((t=>t.start())),this.isApp||this.renderer.render(),this.running=!0)}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){this.renderer.addBlock(e?new t.Bounds(e):this.canvas.bounds),this.viewReady&&this.renderer.update()}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),e.width&&e.height||M.warn("w = 0 or h = 0"),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)?(s||M.warn(e+" is 0"),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||(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))}__onNextRender(){if(this.viewReady){t.WaitHelper.run(this.__nextRenderWait);const{imageReady:e}=this;e&&!this.viewCompleted&&this.__checkViewCompleted(),e||(this.viewCompleted=!1)}}__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)}zoom(e,s,r){return t.needPlugin("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))}updateClientBounds(){this.canvas&&this.canvas.updateClientBounds()}receiveEvent(t){}__checkUpdateLayout(){this.__layout.update()}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))),this.once(t.LayoutEvent.START,(()=>this.updateLazyBounds())),this.once(t.LayoutEvent.END,(()=>this.__onReady())),this.once(t.RenderEvent.START,(()=>this.__onCreated())),this.once(t.RenderEvent.END,(()=>this.__onViewReady())),this.__eventIds.push(this.on_(t.WatchEvent.DATA,this.__onWatchData,this),this.on_(t.RenderEvent.NEXT,this.__onNextRender,this),this.on_(t.LayoutEvent.CHECK_UPDATE,this.__checkUpdateLayout,this))}__removeListenEvents(){this.off_(this.__eventIds),this.__eventIds.length=0}destroy(e){const s=()=>{if(!this.destroyed){z.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=null,this.userConfig&&(this.userConfig.view=null),super.destroy(),setTimeout((()=>{t.ImageManager.clearRecycled()}),100)}catch(t){M.error(t)}}};e?s():setTimeout(s)}},exports.Leafer.list=new t.LeafList,e([t.dataProcessor(w)],exports.Leafer.prototype,"__",void 0),e([t.boundsType()],exports.Leafer.prototype,"pixelRatio",void 0),exports.Leafer=z=e([t.registerUI()],exports.Leafer),exports.Rect=class extends exports.UI{get __tag(){return"Rect"}constructor(t){super(t)}},e([t.dataProcessor(I)],exports.Rect.prototype,"__",void 0),exports.Rect=e([t.useModule(F),t.rewriteAble(),t.registerUI()],exports.Rect);const{copy:O,add:H,includes:N}=t.BoundsHelper,G=exports.Rect.prototype,V=exports.Group.prototype,j={};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)if(e.__autoSide){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 t;const{renderBounds:e}=this.__layout;this.children.length?(super.__updateRenderBounds(),O(j,e),this.__updateRectRenderBounds(),t=!N(e,j)||!this.pathInputed||!this.__.cornerRadius):this.__updateRectRenderBounds(),this.isOverflow!==t&&(this.isOverflow=t),!(this.__.__drawAfterFill="hide"===this.__.overflow)&&t&&H(e,j)}__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))}__drawAfterFill(t,e){const{length:s}=this.children;this.isOverflow?(t.save(),t.clip(),s&&this.__renderGroup(t,e),t.restore()):s&&this.__renderGroup(t,e),this.__.stroke&&s&&(t.setWorld(this.__nowWorld),this.__drawRenderPath(t))}},e([t.dataProcessor(f)],exports.Box.prototype,"__",void 0),e([t.dataType(!1)],exports.Box.prototype,"resizeChildren",void 0),e([t.dataType(!1)],exports.Box.prototype,"textBox",void 0),e([t.affectRenderBoundsType("show")],exports.Box.prototype,"overflow",void 0),e([t.rewrite(G.__updateStrokeSpread)],exports.Box.prototype,"__updateStrokeSpread",null),e([t.rewrite(G.__updateRenderSpread)],exports.Box.prototype,"__updateRectRenderSpread",null),e([t.rewrite(G.__updateBoxBounds)],exports.Box.prototype,"__updateRectBoxBounds",null),e([t.rewrite(G.__updateStrokeBounds)],exports.Box.prototype,"__updateStrokeBounds",null),e([t.rewrite(G.__updateRenderBounds)],exports.Box.prototype,"__updateRectRenderBounds",null),e([t.rewrite(G.__updateChange)],exports.Box.prototype,"__updateRectChange",null),e([t.rewrite(G.__render)],exports.Box.prototype,"__renderRect",null),e([t.rewrite(V.__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(m)],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:Y,closePath:X,ellipse:J}=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&&J(p,a,n,a*r,n*r,0,o,i,!1),J(p,a,n,a,n,0,i,o,!0),r<1&&X(p)):(r<1&&(J(p,a,n,a*r,n*r),Y(p,e,n)),J(p,a,n,a,n,0,360,0,!0)),t.Platform.ellipseToCurve&&(this.__.path=this.getPath(!0))):o||i?(Y(p,a,n),J(p,a,n,a,n,0,o,i,!1),X(p)):J(p,a,n,a,n)}},e([t.dataProcessor(R)],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:K,lineTo:$,drawPoints:q}=t.PathCommandDataHelper,{rotate:Q,getAngle:Z,getDistance:tt,defaultPoint:et}=t.PointHelper,{toBounds:st}=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&&Q(r,s),r}set toPoint(t){this.width=tt(et,t),this.rotation=Z(et,t),this.height&&(this.height=0)}constructor(t){super(t)}__updatePath(){const t=this.__,e=t.path=[];t.points?q(e,t.points,!1,t.closed):(K(e,0,0),$(e,this.width,0))}__updateRenderPath(){const t=this.__;!this.pathInputed&&t.points&&t.curve?(q(t.__pathForRender=[],t.points,t.curve,t.closed),t.__useArrow&&a.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?st(this.__.__pathForRender,this.__layout.boxBounds):super.__updateBoxBounds()}},e([t.dataProcessor(T)],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:rt,cos:ot,PI:it}=Math,{moveTo:at,lineTo:nt,closePath:pt,drawPoints:ht}=t.PathCommandDataHelper,_t=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)ht(t,this.__.points,!1,!0);else{const{width:e,height:s,sides:r}=this.__,o=e/2,i=s/2;at(t,o,0);for(let e=1;e<r;e++)nt(t,o+o*rt(2*e*it/r),i-i*ot(2*e*it/r))}pt(t)}__updateRenderPath(){}__updateBoxBounds(){}},e([t.dataProcessor(P)],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(_t.__updateRenderPath)],exports.Polygon.prototype,"__updateRenderPath",null),e([t.rewrite(_t.__updateBoxBounds)],exports.Polygon.prototype,"__updateBoxBounds",null),exports.Polygon=e([t.rewriteAble(),t.registerUI()],exports.Polygon);const{sin:dt,cos:lt,PI:ut}=Math,{moveTo:ct,lineTo:yt,closePath:xt}=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=[];ct(a,o,0);for(let t=1;t<2*s;t++)yt(a,o+(t%2==0?o:o*r)*dt(t*ut/s),i-(t%2==0?i:i*r)*lt(t*ut/s));xt(a)}},e([t.dataProcessor(S)],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(){return!!this.image&&this.image.ready}constructor(e){super(e),this.on(t.ImageEvent.LOADED,(t=>{"fill"===t.attrName&&t.attrValue.url===this.url&&(this.image=t.image)}))}destroy(){this.image=null,super.destroy()}},e([t.dataProcessor(U)],exports.Image.prototype,"__",void 0),e([t.boundsType("")],exports.Image.prototype,"url",void 0),exports.Image=e([t.registerUI()],exports.Image);const gt=exports.Image;exports.Canvas=class extends exports.Rect{get __tag(){return"Canvas"}get ready(){return!this.url}constructor(e){super(e),this.canvas=t.Creator.canvas(this.__),this.context=this.canvas.context,this.__.__isCanvas=this.__.__drawAfterFill=!0,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){e.__layout.update();const i=new t.Matrix(e.__world).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()}__drawAfterFill(t,e){const{width:s,height:r,cornerRadius:o}=this.__,{view:i}=this.canvas;o||this.pathInputed?(t.save(),t.clip(),t.drawImage(i,0,0,i.width,i.height,0,0,s,r),t.restore()):t.drawImage(i,0,0,i.width,i.height,0,0,s,r)}__updateSize(){const{canvas:t}=this;if(t){const{smooth:e}=this.__;t.smooth!==e&&(t.smooth=e),t.resize(this.__)}}destroy(){this.canvas&&(this.canvas.destroy(),this.canvas=this.context=null),super.destroy()}},e([t.dataProcessor(L)],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([r()],exports.Canvas.prototype,"contextSettings",void 0),exports.Canvas=e([t.registerUI()],exports.Canvas);const{copyAndSpread:vt,includes:ft,isSame:wt,spread:mt,setList:Tt}=t.BoundsHelper;exports.Text=class extends exports.UI{get __tag(){return"Text"}get editInner(){return"TextEditor"}get textDrawData(){return this.__layout.update(),this.__.__textDrawData}constructor(t){super(t)}__drawHitPath(t){const{__lineHeight:e,fontSize:s,__baseLine:r,__textDrawData:o}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):o.rows.forEach((o=>t.rect(o.x,o.y-r,o.width,e<s?s:e)))}__drawPathByData(t,e){const{x:s,y:r,width:o,height:i}=this.__layout.boxBounds;t.rect(s,r,o,i)}__drawRenderPath(t){t.font=this.__.__font}__updateTextDrawData(){const t=this.__;t.__textDrawData=i.getDrawData(t.text,this.__)}__updateBoxBounds(){const e=this.__,s=this.__layout,{lineHeight:r,letterSpacing:o,fontFamily:i,fontSize:a,fontWeight:n,italic:p,textCase:h,textOverflow:_,padding:d}=e,l=e.__autoWidth,u=e.__autoHeight;e.__lineHeight=g.number(r,a),e.__letterSpacing=g.number(o,a),e.__padding=d?t.MathHelper.fourNumber(d):void 0,e.__baseLine=e.__lineHeight-(e.__lineHeight-.7*a)/2,e.__font=`${p?"italic ":""}${"small-caps"===h?"small-caps ":""}${"normal"!==n?n+" ":""}${a}px ${i}`,e.__clipText="show"!==_&&!e.__autoSize,this.__updateTextDrawData();const{bounds:c}=e.__textDrawData,y=s.boxBounds;if(e.__lineHeight<a&&mt(c,a/2),l||u){if(y.x=l?c.x:0,y.y=u?c.y:0,y.width=l?c.width:e.width,y.height=u?c.height:e.height,d){const[t,s,r,o]=e.__padding;l&&(y.x-=o,y.width+=s+o),u&&(y.y-=t,y.height+=r+t)}this.__updateNaturalSize()}else super.__updateBoxBounds();p&&(y.width+=.16*a);const x=ft(y,c)?y:c;wt(x,s.contentBounds)?e.__textBoxBounds=x:(s.contentBounds=x,s.renderChanged=!0,Tt(e.__textBoxBounds={},[y,c]))}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.__layout.boxBounds===this.__layout.contentBounds?0:1),t}__updateRenderBounds(){vt(this.__layout.renderBounds,this.__.__textBoxBounds,this.__layout.renderSpread)}},e([t.dataProcessor(k)],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.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("L")],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("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),exports.Text=e([t.registerUI()],exports.Text),exports.Path=class extends exports.UI{get __tag(){return"Path"}constructor(t){super(t),this.__.__pathInputed=2}},e([t.dataProcessor(B)],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.__path.length=0,this.paint(),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(b)],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","beginPath","path","paint"]),t.registerUI()],exports.Pen),exports.BoxData=f,exports.CanvasData=L,exports.ColorConvert={},exports.Effect=h,exports.EllipseData=R,exports.Export=_,exports.FrameData=m,exports.GroupData=v,exports.ImageData=U,exports.LeaferData=w,exports.LineData=T,exports.MyImage=gt,exports.Paint=n,exports.PaintGradient={},exports.PaintImage=p,exports.PathArrow=a,exports.PathData=B,exports.PenData=b,exports.PolygonData=P,exports.RectData=I,exports.RectRender=F,exports.StarData=S,exports.State=d,exports.TextConvert=i,exports.TextData=k,exports.Transition=l,exports.UIBounds=A,exports.UIData=x,exports.UIRender=E,exports.UnitConvert=g,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]}})}));
|
|
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={number:(t,e)=>"object"==typeof t?"percent"===t.type?t.value*e:t.value:t},n={},p={},h={},_={},d={},l={setStyleName:(e,s,r)=>t.needPlugin("state"),set:(e,s)=>t.needPlugin("state")},u={list:{},register(t,e){u.list[t]=e},get:t=>u.list[t]},{parse:c,objectToCanvasData:y}=t.PathConvert,x={},g=t.Debug.get("UIData");class v 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 __clipAfterFill(){return this.cornerRadius||this.__pathInputed}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,g.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,g.warn("height < 0, instead -scaleY",this)):this._height=t}setFill(t){this.__naturalWidth&&this.__removeNaturalSize(),"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("fill",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isFills=!0,this._fill||(this._fill=x)):(this.__isFills&&(this.__removeInput("fill"),h.recycleImage("fill",this),this.__isFills=!1,this.__pixelFill&&(this.__pixelFill=!1)),this._fill=t)}setStroke(t){"string"!=typeof t&&t?"object"==typeof t&&(this.__setInput("stroke",t),this.__leaf.__layout.boxChanged||this.__leaf.__layout.boxChange(),this.__isStrokes=!0,this._stroke||(this._stroke=x)):(this.__isStrokes&&(this.__removeInput("stroke"),h.recycleImage("stroke",this),this.__isStrokes=!1,this.__pixelStroke&&(this.__pixelStroke=!1)),this._stroke=t)}setPath(t){const e="string"==typeof t;e||t&&"object"==typeof t[0]?(this.__setInput("path",t),this._path=e?c(t):y(t)):(this.__input&&this.__removeInput("path"),this._path=t)}setShadow(t){this.__setInput("shadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._shadow=t.length?t:null):this._shadow=t&&!1!==t.visible?[t]:null}setInnerShadow(t){this.__setInput("innerShadow",t),t instanceof Array?(t.some((t=>!1===t.visible))&&(t=t.filter((t=>!1!==t.visible))),this._innerShadow=t.length?t:null):this._innerShadow=t&&!1!==t.visible?[t]:null}__computePaint(){const{fill:t,stroke:e}=this.__input;t&&p.compute("fill",this.__leaf),e&&p.compute("stroke",this.__leaf),this.__needComputePaint=!1}}class f extends v{}class w extends f{get __boxStroke(){return!this.__pathInputed}get __drawAfterFill(){return"hide"===this.overflow&&this.__clipAfterFill&&this.__leaf.children.length}get __clipAfterFill(){return this.__leaf.isOverflow||super.__clipAfterFill}}class m extends f{__getInputData(e,s){const r=super.__getInputData(e,s);return t.canvasSizeAttrs.forEach((t=>delete r[t])),r}}class T extends w{}class I extends v{}class R extends v{get __boxStroke(){return!this.__pathInputed}}class P extends v{get __boxStroke(){return!this.__pathInputed}}class S extends v{}class B extends v{}class b extends v{get __pathInputed(){return 2}}class C extends f{}const k={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class U extends v{get __useNaturalRatio(){return!1}setFontWeight(t){"string"==typeof t?(this.__setInput("fontWeight",t),this._fontWeight=k[t]||400):(this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t)}}class A extends R{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.__leaf.image&&(this.__leaf.image=null),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 L extends R{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 D={__updateStrokeSpread(){let t=0,e=0;const s=this.__,{strokeAlign:r,strokeWidth:o}=s;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),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:s,blur:r,backgroundBlur:o}=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));let i=t=Math.ceil(t);return s&&s.forEach((t=>i=Math.max(i,Math.max(Math.abs(t.y),Math.abs(t.x))+(t.spread<0?-t.spread:0)+1.5*t.blur))),o&&(i=Math.max(i,o)),this.__layout.renderShapeSpread=i,t+(this.__layout.strokeSpread||0)}},E={__updateChange(){const t=this.__;if(t.__useEffect){const{shadow:e,innerShadow:s,blur:r,backgroundBlur:o}=this.__;t.__useEffect=!!(e||s||r||o)}t.__checkSingle();t.__isFills||t.__isStrokes||t.cornerRadius||t.__useEffect?t.__complex=!0:t.__complex&&(t.__complex=!1)},__drawFast(t,e){F(this,t,e)},__draw(t,e){const s=this.__;if(s.__complex){s.__needComputePaint&&s.__computePaint();const{fill:r,stroke:o,__drawAfterFill:i}=s;if(this.__drawRenderPath(t),s.__useEffect){const a=p.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:n,innerShadow:h}=s;n&&_.shadow(this,t,a),r&&(s.__isFills?p.fills(r,this,t):p.fill(r,this,t)),i&&this.__drawAfterFill(t,e),h&&_.innerShadow(this,t,a),o&&(s.__isStrokes?p.strokes(o,this,t):p.stroke(o,this,t)),a.worldCanvas&&a.worldCanvas.recycle(),a.canvas.recycle()}else r&&(s.__isFills?p.fills(r,this,t):p.fill(r,this,t)),i&&this.__drawAfterFill(t,e),o&&(s.__isStrokes?p.strokes(o,this,t):p.stroke(o,this,t))}else s.__pathInputed?F(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.__.__pixelFill?p.fills(o,this,t):p.fill("#000000",this,t)),this.__.__isCanvas&&this.__drawAfterFill(t,e),i&&!r&&(this.__.__pixelStroke?p.strokes(i,this,t):p.stroke("#000000",this,t))}},__drawAfterFill(t,e){this.__.__clipAfterFill?(t.save(),this.windingRule?t.clip(this.windingRule):t.clip(),this.__drawContent(t,e),t.restore()):this.__drawContent(t,e)}};function F(t,e,s){const{fill:r,stroke:o,__drawAfterFill:i}=t.__;t.__drawRenderPath(e),r&&p.fill(r,t,e),i&&t.__drawAfterFill(e,s),o&&p.stroke(o,t,e)}const W={__drawFast(t,e){let{width:s,height:r,fill:o,stroke:i,__drawAfterFill:a}=this.__;if(o&&(t.fillStyle=o,t.fillRect(0,0,s,r)),a&&this.__drawAfterFill(t,e),i){const{strokeAlign:o,__strokeWidth:a}=this.__;if(!a)return;t.setStroke(i,a,this.__);const n=a/2;switch(o){case"center":t.strokeRect(0,0,s,r);break;case"inside":s-=a,r-=a,s<0||r<0?(t.save(),this.__clip(t,e),t.strokeRect(n,n,s,r),t.restore()):t.strokeRect(n,n,s,r);break;case"outside":t.strokeRect(-n,-n,s+a,r+a)}}}};var z,M;exports.UI=z=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}get editConfig(){}get editOuter(){return""}get editInner(){return""}constructor(t){super(t)}reset(t){}set(t,e){e?(this.lockNormalStyle=!0,Object.assign(this,t),this.lockNormalStyle=!1):Object.assign(this,t)}get(t){return"string"==typeof t?this.__.__getInput(t):this.__.__getInputData(t)}createProxyData(){}find(t,e){}findTag(t){return this.find({tag:t})}findOne(t,e){}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){return t.PathConvert.stringify(this.getPath(e,s))}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;!t.lazy||this.__inLazyBounds||d.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&&n.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)}animate(e,s,r,o){return t.needPlugin("animate")}killAnimate(t){}export(t,e){return d.export(this,t,e)}clone(t){const e=this.toJSON();return t&&Object.assign(e,t),z.one(e)}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(v)],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.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.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()],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([t.dataType({})],exports.UI.prototype,"data",void 0),e([t.rewrite(t.Leaf.prototype.reset)],exports.UI.prototype,"reset",null),exports.UI=z=e([t.useModule(D),t.useModule(E),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.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(f)],exports.Group.prototype,"__",void 0),exports.Group=e([t.useModule(t.Branch),t.registerUI()],exports.Group);const O=t.Debug.get("Leafer");exports.Leafer=M=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.ImageManager.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()}constructor(t,e){super(e),this.config={type:"design",start:!0,hittable:!0,smooth:!0,lazySpeard:100,zoom:{min:.01,max:256},move:{holdSpaceKey:!0,holdMiddleKey:!0,autoDistance:2}},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),M.list.add(this)}init(e,s){if(this.canvas)return;let r;this.__setLeafer(this),e&&t.DataHelper.assign(this.config,e);const{config:o}=this;this.initType(o.type);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.__bindApp(s),r=s.running):(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){this.waitInit((()=>{super.set(t)}))}start(){clearTimeout(this.__startTimer),!this.running&&this.canvas&&(this.ready?this.emitLeafer(t.LeaferEvent.RESTART):this.emitLeafer(t.LeaferEvent.START),this.__controllers.forEach((t=>t.start())),this.isApp||this.renderer.render(),this.running=!0)}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){this.renderer.addBlock(e?new t.Bounds(e):this.canvas.bounds),this.viewReady&&this.renderer.update()}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),e.width&&e.height||O.warn("w = 0 or h = 0"),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)?(s||O.warn(e+" is 0"),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||(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))}__onNextRender(){if(this.viewReady){t.WaitHelper.run(this.__nextRenderWait);const{imageReady:e}=this;e&&!this.viewCompleted&&this.__checkViewCompleted(),e||(this.viewCompleted=!1)}}__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)}zoom(e,s,r){return t.needPlugin("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))}updateClientBounds(){this.canvas&&this.canvas.updateClientBounds()}receiveEvent(t){}__checkUpdateLayout(){this.__layout.update()}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))),this.once(t.LayoutEvent.START,(()=>this.updateLazyBounds())),this.once(t.LayoutEvent.END,(()=>this.__onReady())),this.once(t.RenderEvent.START,(()=>this.__onCreated())),this.once(t.RenderEvent.END,(()=>this.__onViewReady())),this.__eventIds.push(this.on_(t.WatchEvent.DATA,this.__onWatchData,this),this.on_(t.RenderEvent.NEXT,this.__onNextRender,this),this.on_(t.LayoutEvent.CHECK_UPDATE,this.__checkUpdateLayout,this))}__removeListenEvents(){this.off_(this.__eventIds),this.__eventIds.length=0}destroy(e){const s=()=>{if(!this.destroyed){M.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=null,this.userConfig&&(this.userConfig.view=null),super.destroy(),setTimeout((()=>{t.ImageManager.clearRecycled()}),100)}catch(t){O.error(t)}}};e?s():setTimeout(s)}},exports.Leafer.list=new t.LeafList,e([t.dataProcessor(m)],exports.Leafer.prototype,"__",void 0),e([t.boundsType()],exports.Leafer.prototype,"pixelRatio",void 0),exports.Leafer=M=e([t.registerUI()],exports.Leafer),exports.Rect=class extends exports.UI{get __tag(){return"Rect"}constructor(t){super(t)}},e([t.dataProcessor(R)],exports.Rect.prototype,"__",void 0),exports.Rect=e([t.useModule(W),t.rewriteAble(),t.registerUI()],exports.Rect);const{copy:H,add:N,includes:j}=t.BoundsHelper,G=exports.Rect.prototype,V=exports.Group.prototype,Y={};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)if(e.__autoSide){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 t;const{renderBounds:e}=this.__layout;this.children.length?(super.__updateRenderBounds(),H(Y,e),this.__updateRectRenderBounds(),t=!j(e,Y),t&&"hide"!==this.__.overflow&&N(e,Y)):this.__updateRectRenderBounds(),!this.isOverflow!=!t&&(this.isOverflow=t)}__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(w)],exports.Box.prototype,"__",void 0),e([t.dataType(!1)],exports.Box.prototype,"resizeChildren",void 0),e([t.dataType(!1)],exports.Box.prototype,"textBox",void 0),e([t.affectRenderBoundsType("show")],exports.Box.prototype,"overflow",void 0),e([t.rewrite(G.__updateStrokeSpread)],exports.Box.prototype,"__updateStrokeSpread",null),e([t.rewrite(G.__updateRenderSpread)],exports.Box.prototype,"__updateRectRenderSpread",null),e([t.rewrite(G.__updateBoxBounds)],exports.Box.prototype,"__updateRectBoxBounds",null),e([t.rewrite(G.__updateStrokeBounds)],exports.Box.prototype,"__updateStrokeBounds",null),e([t.rewrite(G.__updateRenderBounds)],exports.Box.prototype,"__updateRectRenderBounds",null),e([t.rewrite(G.__updateChange)],exports.Box.prototype,"__updateRectChange",null),e([t.rewrite(G.__render)],exports.Box.prototype,"__renderRect",null),e([t.rewrite(V.__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(T)],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:X,closePath:J,ellipse:K}=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&&K(p,a,n,a*r,n*r,0,o,i,!1),K(p,a,n,a,n,0,i,o,!0),r<1&&J(p)):(r<1&&(K(p,a,n,a*r,n*r),X(p,e,n)),K(p,a,n,a,n,0,360,0,!0)),t.Platform.ellipseToCurve&&(this.__.path=this.getPath(!0))):o||i?(X(p,a,n),K(p,a,n,a,n,0,o,i,!1),J(p)):K(p,a,n,a,n)}},e([t.dataProcessor(P)],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:$,lineTo:q,drawPoints:Q}=t.PathCommandDataHelper,{rotate:Z,getAngle:tt,getDistance:et,defaultPoint:st}=t.PointHelper,{toBounds:rt}=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&&Z(r,s),r}set toPoint(t){this.width=et(st,t),this.rotation=tt(st,t),this.height&&(this.height=0)}constructor(t){super(t)}__updatePath(){const t=this.__,e=t.path=[];t.points?Q(e,t.points,!1,t.closed):($(e,0,0),q(e,this.width,0))}__updateRenderPath(){const t=this.__;!this.pathInputed&&t.points&&t.curve?(Q(t.__pathForRender=[],t.points,t.curve,t.closed),t.__useArrow&&n.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?rt(this.__.__pathForRender,this.__layout.boxBounds):super.__updateBoxBounds()}},e([t.dataProcessor(I)],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:ot,cos:it,PI:at}=Math,{moveTo:nt,lineTo:pt,closePath:ht,drawPoints:_t}=t.PathCommandDataHelper,dt=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)_t(t,this.__.points,!1,!0);else{const{width:e,height:s,sides:r}=this.__,o=e/2,i=s/2;nt(t,o,0);for(let e=1;e<r;e++)pt(t,o+o*ot(2*e*at/r),i-i*it(2*e*at/r))}ht(t)}__updateRenderPath(){}__updateBoxBounds(){}},e([t.dataProcessor(S)],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(dt.__updateRenderPath)],exports.Polygon.prototype,"__updateRenderPath",null),e([t.rewrite(dt.__updateBoxBounds)],exports.Polygon.prototype,"__updateBoxBounds",null),exports.Polygon=e([t.rewriteAble(),t.registerUI()],exports.Polygon);const{sin:lt,cos:ut,PI:ct}=Math,{moveTo:yt,lineTo:xt,closePath:gt}=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=[];yt(a,o,0);for(let t=1;t<2*s;t++)xt(a,o+(t%2==0?o:o*r)*lt(t*ct/s),i-(t%2==0?i:i*r)*ut(t*ct/s));gt(a)}},e([t.dataProcessor(B)],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(){return!!this.image&&this.image.ready}constructor(e){super(e),this.on(t.ImageEvent.LOADED,(t=>{"fill"===t.attrName&&t.attrValue.url===this.url&&(this.image=t.image)}))}destroy(){this.image=null,super.destroy()}},e([t.dataProcessor(A)],exports.Image.prototype,"__",void 0),e([t.boundsType("")],exports.Image.prototype,"url",void 0),exports.Image=e([t.registerUI()],exports.Image);const vt=exports.Image;exports.Canvas=class extends exports.Rect{get __tag(){return"Canvas"}get ready(){return!this.url}constructor(e){super(e),this.canvas=t.Creator.canvas(this.__),this.context=this.canvas.context,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}=this.__;t.smooth!==e&&(t.smooth=e),t.resize(this.__)}}destroy(){this.canvas&&(this.canvas.destroy(),this.canvas=this.context=null),super.destroy()}},e([t.dataProcessor(L)],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([r()],exports.Canvas.prototype,"contextSettings",void 0),exports.Canvas=e([t.registerUI()],exports.Canvas);const{copyAndSpread:ft,includes:wt,isSame:mt,spread:Tt,setList:It}=t.BoundsHelper;exports.Text=class extends exports.UI{get __tag(){return"Text"}get textDrawData(){return this.__layout.update(),this.__.__textDrawData}constructor(t){super(t)}__drawHitPath(t){const{__lineHeight:e,fontSize:s,__baseLine:r,__textDrawData:o}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):o.rows.forEach((o=>t.rect(o.x,o.y-r,o.width,e<s?s:e)))}__drawPathByData(t,e){const{x:s,y:r,width:o,height:i}=this.__layout.boxBounds;t.rect(s,r,o,i)}__drawRenderPath(t){t.font=this.__.__font}__updateTextDrawData(){const t=this.__;t.__textDrawData=i.getDrawData(t.text,this.__)}__updateBoxBounds(){const e=this.__,s=this.__layout,{lineHeight:r,letterSpacing:o,fontFamily:i,fontSize:n,fontWeight:p,italic:h,textCase:_,textOverflow:d,padding:l}=e,u=e.__autoWidth,c=e.__autoHeight;e.__lineHeight=a.number(r,n),e.__letterSpacing=a.number(o,n),e.__padding=l?t.MathHelper.fourNumber(l):void 0,e.__baseLine=e.__lineHeight-(e.__lineHeight-.7*n)/2,e.__font=`${h?"italic ":""}${"small-caps"===_?"small-caps ":""}${"normal"!==p?p+" ":""}${n}px ${i}`,e.__clipText="show"!==d&&!e.__autoSize,this.__updateTextDrawData();const{bounds:y}=e.__textDrawData,x=s.boxBounds;if(e.__lineHeight<n&&Tt(y,n/2),u||c){if(x.x=u?y.x:0,x.y=c?y.y:0,x.width=u?y.width:e.width,x.height=c?y.height:e.height,l){const[t,s,r,o]=e.__padding;u&&(x.x-=o,x.width+=s+o),c&&(x.y-=t,x.height+=r+t)}this.__updateNaturalSize()}else super.__updateBoxBounds();h&&(x.width+=.16*n);const g=wt(x,y)?x:y;mt(g,s.contentBounds)?e.__textBoxBounds=g:(s.contentBounds=g,s.renderChanged=!0,It(e.__textBoxBounds={},[x,y]))}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.__layout.boxBounds===this.__layout.contentBounds?0:1),t}__updateRenderBounds(){ft(this.__layout.renderBounds,this.__.__textBoxBounds,this.__layout.renderSpread)}},e([t.dataProcessor(U)],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.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("L")],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("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),exports.Text=e([t.registerUI()],exports.Text),exports.Path=class extends exports.UI{get __tag(){return"Path"}constructor(t){super(t)}},e([t.dataProcessor(b)],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.__path.length=0,this.paint(),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(C)],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","beginPath","path","paint"]),t.registerUI()],exports.Pen),exports.BoxData=w,exports.CanvasData=L,exports.ColorConvert={},exports.Effect=_,exports.EllipseData=P,exports.Export=d,exports.FrameData=T,exports.GroupData=f,exports.ImageData=A,exports.LeaferData=m,exports.LineData=I,exports.MyImage=vt,exports.Paint=p,exports.PaintGradient={},exports.PaintImage=h,exports.PathArrow=n,exports.PathData=b,exports.PenData=C,exports.PolygonData=S,exports.RectData=R,exports.RectRender=W,exports.StarData=B,exports.State=l,exports.TextConvert=i,exports.TextData=U,exports.Transition=u,exports.UIBounds=D,exports.UIData=v,exports.UIRender=E,exports.UnitConvert=a,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]}})}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leafer-ui/draw",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
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.0.
|
|
33
|
-
"@leafer-ui/display": "1.0.
|
|
34
|
-
"@leafer-ui/display-module": "1.0.
|
|
35
|
-
"@leafer-ui/decorator": "1.0.
|
|
36
|
-
"@leafer-ui/external": "1.0.
|
|
32
|
+
"@leafer/core": "1.0.7",
|
|
33
|
+
"@leafer-ui/display": "1.0.7",
|
|
34
|
+
"@leafer-ui/display-module": "1.0.7",
|
|
35
|
+
"@leafer-ui/decorator": "1.0.7",
|
|
36
|
+
"@leafer-ui/external": "1.0.7"
|
|
37
37
|
}
|
|
38
38
|
}
|