@leafer-ui/draw 1.0.0-rc.23 → 1.0.0-rc.25
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 +102 -70
- package/lib/draw.esm.js +104 -71
- package/lib/draw.esm.min.js +1 -1
- package/lib/draw.min.cjs +1 -1
- package/package.json +6 -6
- package/src/index.ts +0 -2
- package/types/index.d.ts +0 -4
package/lib/draw.cjs
CHANGED
|
@@ -53,10 +53,11 @@ function stateType(defaultValue) {
|
|
|
53
53
|
function arrowType(defaultValue) {
|
|
54
54
|
return core.decorateLeafAttr(defaultValue, (key) => core.attr({
|
|
55
55
|
set(value) {
|
|
56
|
-
this.__setAttr(key, value)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
if (this.__setAttr(key, value)) {
|
|
57
|
+
const data = this.__;
|
|
58
|
+
data.__useArrow = data.startArrow !== 'none' || data.endArrow !== 'none';
|
|
59
|
+
core.doStrokeType(this);
|
|
60
|
+
}
|
|
60
61
|
}
|
|
61
62
|
}));
|
|
62
63
|
}
|
|
@@ -229,7 +230,7 @@ class UIData extends core.LeafData {
|
|
|
229
230
|
const UnitConvert = {
|
|
230
231
|
number(value, percentRefer) {
|
|
231
232
|
if (typeof value === 'object')
|
|
232
|
-
return value.type === 'percent' ?
|
|
233
|
+
return value.type === 'percent' ? value.value * percentRefer : value.value;
|
|
233
234
|
return value;
|
|
234
235
|
}
|
|
235
236
|
};
|
|
@@ -238,7 +239,7 @@ class GroupData extends UIData {
|
|
|
238
239
|
}
|
|
239
240
|
|
|
240
241
|
class BoxData extends GroupData {
|
|
241
|
-
get __boxStroke() { return
|
|
242
|
+
get __boxStroke() { return !this.__pathInputed; }
|
|
242
243
|
}
|
|
243
244
|
|
|
244
245
|
class LeaferData extends GroupData {
|
|
@@ -251,11 +252,11 @@ class LineData extends UIData {
|
|
|
251
252
|
}
|
|
252
253
|
|
|
253
254
|
class RectData extends UIData {
|
|
254
|
-
get __boxStroke() { return
|
|
255
|
+
get __boxStroke() { return !this.__pathInputed; }
|
|
255
256
|
}
|
|
256
257
|
|
|
257
258
|
class EllipseData extends UIData {
|
|
258
|
-
get __boxStroke() { return
|
|
259
|
+
get __boxStroke() { return !this.__pathInputed; }
|
|
259
260
|
}
|
|
260
261
|
|
|
261
262
|
class PolygonData extends UIData {
|
|
@@ -282,6 +283,7 @@ const fontWeightMap = {
|
|
|
282
283
|
'black': 900
|
|
283
284
|
};
|
|
284
285
|
class TextData extends UIData {
|
|
286
|
+
get __useNaturalRatio() { return false; }
|
|
285
287
|
setFontWeight(value) {
|
|
286
288
|
if (typeof value === 'string') {
|
|
287
289
|
this.__setInput('fontWeight', value);
|
|
@@ -323,19 +325,18 @@ class CanvasData extends RectData {
|
|
|
323
325
|
const UIBounds = {
|
|
324
326
|
__updateStrokeSpread() {
|
|
325
327
|
let width = 0, boxWidth = 0;
|
|
326
|
-
const
|
|
327
|
-
if ((stroke || hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
328
|
+
const data = this.__, { strokeAlign, strokeWidth } = data;
|
|
329
|
+
if ((data.stroke || data.hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
328
330
|
boxWidth = width = strokeAlign === 'center' ? strokeWidth / 2 : strokeWidth;
|
|
329
|
-
if (!
|
|
330
|
-
const
|
|
331
|
-
const
|
|
332
|
-
const storkeCapAddWidth = strokeCap === 'none' ? 0 : strokeWidth;
|
|
331
|
+
if (!data.__boxStroke) {
|
|
332
|
+
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * width;
|
|
333
|
+
const storkeCapAddWidth = data.strokeCap === 'none' ? 0 : strokeWidth;
|
|
333
334
|
width += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
334
335
|
}
|
|
335
336
|
}
|
|
336
|
-
|
|
337
|
-
if (this.__.__useArrow)
|
|
337
|
+
if (data.__useArrow)
|
|
338
338
|
width += strokeWidth * 5;
|
|
339
|
+
this.__layout.strokeBoxSpread = boxWidth;
|
|
339
340
|
return width;
|
|
340
341
|
},
|
|
341
342
|
__updateRenderSpread() {
|
|
@@ -355,7 +356,7 @@ const UIBounds = {
|
|
|
355
356
|
if (backgroundBlur)
|
|
356
357
|
shapeWidth = Math.max(shapeWidth, backgroundBlur);
|
|
357
358
|
this.__layout.renderShapeSpread = shapeWidth;
|
|
358
|
-
return width;
|
|
359
|
+
return width + (this.__layout.strokeSpread || 0);
|
|
359
360
|
}
|
|
360
361
|
};
|
|
361
362
|
|
|
@@ -446,7 +447,7 @@ function drawFast(ui, canvas, options) {
|
|
|
446
447
|
|
|
447
448
|
const RectRender = {
|
|
448
449
|
__drawFast(canvas, options) {
|
|
449
|
-
|
|
450
|
+
let { width, height, fill, stroke, __drawAfterFill } = this.__;
|
|
450
451
|
if (fill) {
|
|
451
452
|
canvas.fillStyle = fill;
|
|
452
453
|
canvas.fillRect(0, 0, width, height);
|
|
@@ -464,7 +465,16 @@ const RectRender = {
|
|
|
464
465
|
canvas.strokeRect(0, 0, width, height);
|
|
465
466
|
break;
|
|
466
467
|
case 'inside':
|
|
467
|
-
|
|
468
|
+
width -= __strokeWidth, height -= __strokeWidth;
|
|
469
|
+
if (width < 0 || height < 0) {
|
|
470
|
+
canvas.save();
|
|
471
|
+
this.__clip(canvas, options);
|
|
472
|
+
canvas.strokeRect(half, half, width, height);
|
|
473
|
+
canvas.restore();
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
canvas.strokeRect(half, half, width, height);
|
|
477
|
+
}
|
|
468
478
|
break;
|
|
469
479
|
case 'outside':
|
|
470
480
|
canvas.strokeRect(-half, -half, width + __strokeWidth, height + __strokeWidth);
|
|
@@ -492,11 +502,14 @@ exports.UI = UI_1 = class UI extends core.Leaf {
|
|
|
492
502
|
return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX;
|
|
493
503
|
}
|
|
494
504
|
get pen() {
|
|
495
|
-
|
|
505
|
+
const { path } = this.__;
|
|
506
|
+
core.pen.set(this.path = path || []);
|
|
507
|
+
if (!path)
|
|
508
|
+
this.__drawPathByBox(core.pen);
|
|
496
509
|
return core.pen;
|
|
497
510
|
}
|
|
498
511
|
get editConfig() { return undefined; }
|
|
499
|
-
get editOuter() { return 'EditTool'; }
|
|
512
|
+
get editOuter() { return this.__.__isLinePath ? 'LineEditTool' : 'EditTool'; }
|
|
500
513
|
get editInner() { return 'PathEditor'; }
|
|
501
514
|
constructor(data) {
|
|
502
515
|
super(data);
|
|
@@ -516,18 +529,16 @@ exports.UI = UI_1 = class UI extends core.Leaf {
|
|
|
516
529
|
getPath(curve, pathForRender) {
|
|
517
530
|
this.__layout.update();
|
|
518
531
|
let path = pathForRender ? this.__.__pathForRender : this.__.path;
|
|
519
|
-
if (!path)
|
|
520
|
-
|
|
521
|
-
if (width || height) {
|
|
522
|
-
core.pen.set(path = []);
|
|
523
|
-
this.__drawPathByBox(core.pen);
|
|
524
|
-
}
|
|
525
|
-
}
|
|
532
|
+
if (!path)
|
|
533
|
+
core.pen.set(path = []), this.__drawPathByBox(core.pen);
|
|
526
534
|
return curve ? core.PathConvert.toCanvasData(path, true) : path;
|
|
527
535
|
}
|
|
528
536
|
getPathString(curve, pathForRender) {
|
|
529
537
|
return core.PathConvert.stringify(this.getPath(curve, pathForRender));
|
|
530
538
|
}
|
|
539
|
+
load() {
|
|
540
|
+
this.__.__computePaint();
|
|
541
|
+
}
|
|
531
542
|
__onUpdateSize() {
|
|
532
543
|
if (this.__.__input) {
|
|
533
544
|
const data = this.__;
|
|
@@ -613,7 +624,7 @@ __decorate([
|
|
|
613
624
|
core.opacityType(1)
|
|
614
625
|
], exports.UI.prototype, "opacity", void 0);
|
|
615
626
|
__decorate([
|
|
616
|
-
core.
|
|
627
|
+
core.visibleType(true)
|
|
617
628
|
], exports.UI.prototype, "visible", void 0);
|
|
618
629
|
__decorate([
|
|
619
630
|
stateType(false)
|
|
@@ -630,9 +641,6 @@ __decorate([
|
|
|
630
641
|
__decorate([
|
|
631
642
|
core.maskType(false)
|
|
632
643
|
], exports.UI.prototype, "mask", void 0);
|
|
633
|
-
__decorate([
|
|
634
|
-
core.surfaceType('pixel')
|
|
635
|
-
], exports.UI.prototype, "maskType", void 0);
|
|
636
644
|
__decorate([
|
|
637
645
|
core.eraserType(false)
|
|
638
646
|
], exports.UI.prototype, "eraser", void 0);
|
|
@@ -707,10 +715,10 @@ __decorate([
|
|
|
707
715
|
], exports.UI.prototype, "gap", void 0);
|
|
708
716
|
__decorate([
|
|
709
717
|
core.boundsType('top-left')
|
|
710
|
-
], exports.UI.prototype, "
|
|
718
|
+
], exports.UI.prototype, "flowAlign", void 0);
|
|
711
719
|
__decorate([
|
|
712
720
|
core.boundsType(false)
|
|
713
|
-
], exports.UI.prototype, "
|
|
721
|
+
], exports.UI.prototype, "flowWrap", void 0);
|
|
714
722
|
__decorate([
|
|
715
723
|
core.boundsType('box')
|
|
716
724
|
], exports.UI.prototype, "itemBox", void 0);
|
|
@@ -925,6 +933,7 @@ exports.Leafer = Leafer_1 = class Leafer extends exports.Group {
|
|
|
925
933
|
get layoutLocked() { return !this.layouter.running; }
|
|
926
934
|
get FPS() { return this.renderer ? this.renderer.FPS : 60; }
|
|
927
935
|
get cursorPoint() { return (this.interaction && this.interaction.hoverData) || { x: this.width / 2, y: this.height / 2 }; }
|
|
936
|
+
get clientBounds() { return this.canvas && this.canvas.getClientBounds(); }
|
|
928
937
|
constructor(userConfig, data) {
|
|
929
938
|
super(data);
|
|
930
939
|
this.config = {
|
|
@@ -1082,7 +1091,8 @@ exports.Leafer = Leafer_1 = class Leafer extends exports.Group {
|
|
|
1082
1091
|
this.__changeFill(newValue);
|
|
1083
1092
|
}
|
|
1084
1093
|
else if (attrName === 'hittable') {
|
|
1085
|
-
this.
|
|
1094
|
+
if (!this.parent)
|
|
1095
|
+
this.canvas.hittable = newValue;
|
|
1086
1096
|
}
|
|
1087
1097
|
}
|
|
1088
1098
|
return super.__setAttr(attrName, newValue);
|
|
@@ -1200,6 +1210,9 @@ exports.Leafer = Leafer_1 = class Leafer extends exports.Group {
|
|
|
1200
1210
|
zoom(_zoomType, _padding, _fixedScale) { return undefined; }
|
|
1201
1211
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
1202
1212
|
getValidScale(changeScale) { return changeScale; }
|
|
1213
|
+
getWorldPointByClient(clientPoint, updateClient) {
|
|
1214
|
+
return this.interaction && this.interaction.getLocal(clientPoint, updateClient);
|
|
1215
|
+
}
|
|
1203
1216
|
__checkUpdateLayout() {
|
|
1204
1217
|
this.__layout.update();
|
|
1205
1218
|
}
|
|
@@ -1282,8 +1295,8 @@ exports.Rect = __decorate([
|
|
|
1282
1295
|
|
|
1283
1296
|
const rect = exports.Rect.prototype;
|
|
1284
1297
|
const group = exports.Group.prototype;
|
|
1285
|
-
const
|
|
1286
|
-
const { copy, add } = core.BoundsHelper;
|
|
1298
|
+
const childrenRenderBounds = {};
|
|
1299
|
+
const { copy, add, includes: includes$1 } = core.BoundsHelper;
|
|
1287
1300
|
exports.Box = class Box extends exports.Group {
|
|
1288
1301
|
get __tag() { return 'Box'; }
|
|
1289
1302
|
get isBranchLeaf() { return true; }
|
|
@@ -1294,40 +1307,50 @@ exports.Box = class Box extends exports.Group {
|
|
|
1294
1307
|
__updateStrokeSpread() { return 0; }
|
|
1295
1308
|
__updateRectRenderSpread() { return 0; }
|
|
1296
1309
|
__updateRenderSpread() {
|
|
1297
|
-
|
|
1298
|
-
const hide = this.__.__drawAfterFill = this.__.overflow === 'hide';
|
|
1299
|
-
return (width || hide) ? width : -1;
|
|
1310
|
+
return this.__updateRectRenderSpread() || -1;
|
|
1300
1311
|
}
|
|
1301
1312
|
__updateRectBoxBounds() { }
|
|
1302
1313
|
__updateBoxBounds() {
|
|
1303
1314
|
const data = this.__;
|
|
1304
|
-
if (
|
|
1305
|
-
if (
|
|
1306
|
-
this.leafer.
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1315
|
+
if (this.children.length) {
|
|
1316
|
+
if (data.__autoSide) {
|
|
1317
|
+
if (this.leafer && this.leafer.ready)
|
|
1318
|
+
this.leafer.layouter.addExtra(this);
|
|
1319
|
+
super.__updateBoxBounds();
|
|
1320
|
+
if (!data.__autoSize) {
|
|
1321
|
+
const b = this.__layout.boxBounds;
|
|
1322
|
+
if (!data.__autoWidth)
|
|
1323
|
+
b.x = 0, b.width = data.width;
|
|
1324
|
+
if (!data.__autoHeight)
|
|
1325
|
+
b.y = 0, b.height = data.height;
|
|
1326
|
+
}
|
|
1314
1327
|
}
|
|
1328
|
+
else {
|
|
1329
|
+
this.__updateRectBoxBounds();
|
|
1330
|
+
}
|
|
1331
|
+
if (data.flow)
|
|
1332
|
+
this.__updateContentBounds();
|
|
1315
1333
|
}
|
|
1316
1334
|
else {
|
|
1317
1335
|
this.__updateRectBoxBounds();
|
|
1318
1336
|
}
|
|
1319
|
-
if (data.flow)
|
|
1320
|
-
this.__updateContentBounds();
|
|
1321
1337
|
}
|
|
1322
1338
|
__updateStrokeBounds() { }
|
|
1323
1339
|
__updateRenderBounds() {
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
copy(bounds, renderBounds);
|
|
1340
|
+
let isOverflow;
|
|
1341
|
+
const { renderBounds } = this.__layout;
|
|
1342
|
+
if (this.children.length) {
|
|
1328
1343
|
super.__updateRenderBounds();
|
|
1329
|
-
|
|
1344
|
+
copy(childrenRenderBounds, renderBounds);
|
|
1345
|
+
this.__updateRectRenderBounds();
|
|
1346
|
+
isOverflow = !includes$1(renderBounds, childrenRenderBounds) || undefined;
|
|
1347
|
+
}
|
|
1348
|
+
else {
|
|
1349
|
+
this.__updateRectRenderBounds();
|
|
1330
1350
|
}
|
|
1351
|
+
this.isOverflow !== isOverflow && (this.isOverflow = isOverflow);
|
|
1352
|
+
if (isOverflow && !(this.__.__drawAfterFill = this.__.overflow === 'hide'))
|
|
1353
|
+
add(renderBounds, childrenRenderBounds);
|
|
1331
1354
|
}
|
|
1332
1355
|
__updateRectRenderBounds() { }
|
|
1333
1356
|
__updateRectChange() { }
|
|
@@ -1343,16 +1366,27 @@ exports.Box = class Box extends exports.Group {
|
|
|
1343
1366
|
}
|
|
1344
1367
|
else {
|
|
1345
1368
|
this.__renderRect(canvas, options);
|
|
1346
|
-
this.
|
|
1369
|
+
if (this.children.length)
|
|
1370
|
+
this.__renderGroup(canvas, options);
|
|
1347
1371
|
}
|
|
1348
1372
|
}
|
|
1349
1373
|
__drawAfterFill(canvas, options) {
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1374
|
+
const { length } = this.children;
|
|
1375
|
+
if (this.isOverflow) {
|
|
1376
|
+
canvas.save();
|
|
1377
|
+
canvas.clip();
|
|
1378
|
+
if (length)
|
|
1379
|
+
this.__renderGroup(canvas, options);
|
|
1380
|
+
canvas.restore();
|
|
1381
|
+
}
|
|
1382
|
+
else {
|
|
1383
|
+
if (length)
|
|
1384
|
+
this.__renderGroup(canvas, options);
|
|
1385
|
+
}
|
|
1386
|
+
if (this.__.stroke && length) {
|
|
1387
|
+
canvas.setWorld(this.__nowWorld);
|
|
1355
1388
|
this.__drawRenderPath(canvas);
|
|
1389
|
+
}
|
|
1356
1390
|
}
|
|
1357
1391
|
};
|
|
1358
1392
|
__decorate([
|
|
@@ -1490,9 +1524,10 @@ exports.Line = class Line extends exports.UI {
|
|
|
1490
1524
|
super(data);
|
|
1491
1525
|
}
|
|
1492
1526
|
__updatePath() {
|
|
1493
|
-
const
|
|
1494
|
-
|
|
1495
|
-
|
|
1527
|
+
const data = this.__;
|
|
1528
|
+
const path = data.path = [];
|
|
1529
|
+
if (data.points) {
|
|
1530
|
+
drawPoints$1(path, data.points, false, data.closed);
|
|
1496
1531
|
}
|
|
1497
1532
|
else {
|
|
1498
1533
|
moveTo$2(path, 0, 0);
|
|
@@ -1862,7 +1897,7 @@ __decorate([
|
|
|
1862
1897
|
core.boundsType(0)
|
|
1863
1898
|
], exports.Text.prototype, "letterSpacing", void 0);
|
|
1864
1899
|
__decorate([
|
|
1865
|
-
core.boundsType({ type: 'percent', value:
|
|
1900
|
+
core.boundsType({ type: 'percent', value: 1.5 })
|
|
1866
1901
|
], exports.Text.prototype, "lineHeight", void 0);
|
|
1867
1902
|
__decorate([
|
|
1868
1903
|
core.boundsType(0)
|
|
@@ -1956,8 +1991,6 @@ function penPathType() {
|
|
|
1956
1991
|
};
|
|
1957
1992
|
}
|
|
1958
1993
|
|
|
1959
|
-
const version = "1.0.0-rc.23";
|
|
1960
|
-
|
|
1961
1994
|
exports.BoxData = BoxData;
|
|
1962
1995
|
exports.CanvasData = CanvasData;
|
|
1963
1996
|
exports.ColorConvert = ColorConvert;
|
|
@@ -1990,7 +2023,6 @@ exports.arrowType = arrowType;
|
|
|
1990
2023
|
exports.effectType = effectType;
|
|
1991
2024
|
exports.resizeType = resizeType;
|
|
1992
2025
|
exports.stateType = stateType;
|
|
1993
|
-
exports.version = version;
|
|
1994
2026
|
exports.zoomLayerType = zoomLayerType;
|
|
1995
2027
|
Object.keys(core).forEach(function (k) {
|
|
1996
2028
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
package/lib/draw.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { decorateLeafAttr, attr, doStrokeType, defineKey, Debug, LeafData, PathConvert,
|
|
1
|
+
import { decorateLeafAttr, attr, doStrokeType, defineKey, Debug, LeafData, PathConvert, dataProcessor, dataType, surfaceType, opacityType, visibleType, sortType, maskType, eraserType, positionType, boundsType, scaleType, rotationType, autoLayoutType, naturalBoundsType, pathInputType, pathType, hitType, strokeType, cursorType, rewrite, Leaf, useModule, rewriteAble, pen, PathCorner, PathDrawer, UICreator, registerUI, Branch, LeafList, ImageManager, DataHelper, Creator, CanvasManager, WaitHelper, LeaferEvent, canvasSizeAttrs, Bounds, ResizeEvent, AutoBounds, Run, LayoutEvent, RenderEvent, WatchEvent, affectRenderBoundsType, BoundsHelper, Platform, PathCommandDataHelper, affectStrokeBoundsType, getPointData, PointHelper, PathBounds, ImageEvent, Matrix, MathHelper, PathCreator } from '@leafer/core';
|
|
2
2
|
export * from '@leafer/core';
|
|
3
3
|
|
|
4
4
|
/******************************************************************************
|
|
@@ -52,10 +52,11 @@ function stateType(defaultValue) {
|
|
|
52
52
|
function arrowType(defaultValue) {
|
|
53
53
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
54
54
|
set(value) {
|
|
55
|
-
this.__setAttr(key, value)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
if (this.__setAttr(key, value)) {
|
|
56
|
+
const data = this.__;
|
|
57
|
+
data.__useArrow = data.startArrow !== 'none' || data.endArrow !== 'none';
|
|
58
|
+
doStrokeType(this);
|
|
59
|
+
}
|
|
59
60
|
}
|
|
60
61
|
}));
|
|
61
62
|
}
|
|
@@ -228,7 +229,7 @@ class UIData extends LeafData {
|
|
|
228
229
|
const UnitConvert = {
|
|
229
230
|
number(value, percentRefer) {
|
|
230
231
|
if (typeof value === 'object')
|
|
231
|
-
return value.type === 'percent' ?
|
|
232
|
+
return value.type === 'percent' ? value.value * percentRefer : value.value;
|
|
232
233
|
return value;
|
|
233
234
|
}
|
|
234
235
|
};
|
|
@@ -237,7 +238,7 @@ class GroupData extends UIData {
|
|
|
237
238
|
}
|
|
238
239
|
|
|
239
240
|
class BoxData extends GroupData {
|
|
240
|
-
get __boxStroke() { return
|
|
241
|
+
get __boxStroke() { return !this.__pathInputed; }
|
|
241
242
|
}
|
|
242
243
|
|
|
243
244
|
class LeaferData extends GroupData {
|
|
@@ -250,11 +251,11 @@ class LineData extends UIData {
|
|
|
250
251
|
}
|
|
251
252
|
|
|
252
253
|
class RectData extends UIData {
|
|
253
|
-
get __boxStroke() { return
|
|
254
|
+
get __boxStroke() { return !this.__pathInputed; }
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
class EllipseData extends UIData {
|
|
257
|
-
get __boxStroke() { return
|
|
258
|
+
get __boxStroke() { return !this.__pathInputed; }
|
|
258
259
|
}
|
|
259
260
|
|
|
260
261
|
class PolygonData extends UIData {
|
|
@@ -281,6 +282,7 @@ const fontWeightMap = {
|
|
|
281
282
|
'black': 900
|
|
282
283
|
};
|
|
283
284
|
class TextData extends UIData {
|
|
285
|
+
get __useNaturalRatio() { return false; }
|
|
284
286
|
setFontWeight(value) {
|
|
285
287
|
if (typeof value === 'string') {
|
|
286
288
|
this.__setInput('fontWeight', value);
|
|
@@ -322,19 +324,18 @@ class CanvasData extends RectData {
|
|
|
322
324
|
const UIBounds = {
|
|
323
325
|
__updateStrokeSpread() {
|
|
324
326
|
let width = 0, boxWidth = 0;
|
|
325
|
-
const
|
|
326
|
-
if ((stroke || hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
327
|
+
const data = this.__, { strokeAlign, strokeWidth } = data;
|
|
328
|
+
if ((data.stroke || data.hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
327
329
|
boxWidth = width = strokeAlign === 'center' ? strokeWidth / 2 : strokeWidth;
|
|
328
|
-
if (!
|
|
329
|
-
const
|
|
330
|
-
const
|
|
331
|
-
const storkeCapAddWidth = strokeCap === 'none' ? 0 : strokeWidth;
|
|
330
|
+
if (!data.__boxStroke) {
|
|
331
|
+
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * width;
|
|
332
|
+
const storkeCapAddWidth = data.strokeCap === 'none' ? 0 : strokeWidth;
|
|
332
333
|
width += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
333
334
|
}
|
|
334
335
|
}
|
|
335
|
-
|
|
336
|
-
if (this.__.__useArrow)
|
|
336
|
+
if (data.__useArrow)
|
|
337
337
|
width += strokeWidth * 5;
|
|
338
|
+
this.__layout.strokeBoxSpread = boxWidth;
|
|
338
339
|
return width;
|
|
339
340
|
},
|
|
340
341
|
__updateRenderSpread() {
|
|
@@ -354,7 +355,7 @@ const UIBounds = {
|
|
|
354
355
|
if (backgroundBlur)
|
|
355
356
|
shapeWidth = Math.max(shapeWidth, backgroundBlur);
|
|
356
357
|
this.__layout.renderShapeSpread = shapeWidth;
|
|
357
|
-
return width;
|
|
358
|
+
return width + (this.__layout.strokeSpread || 0);
|
|
358
359
|
}
|
|
359
360
|
};
|
|
360
361
|
|
|
@@ -445,7 +446,7 @@ function drawFast(ui, canvas, options) {
|
|
|
445
446
|
|
|
446
447
|
const RectRender = {
|
|
447
448
|
__drawFast(canvas, options) {
|
|
448
|
-
|
|
449
|
+
let { width, height, fill, stroke, __drawAfterFill } = this.__;
|
|
449
450
|
if (fill) {
|
|
450
451
|
canvas.fillStyle = fill;
|
|
451
452
|
canvas.fillRect(0, 0, width, height);
|
|
@@ -463,7 +464,16 @@ const RectRender = {
|
|
|
463
464
|
canvas.strokeRect(0, 0, width, height);
|
|
464
465
|
break;
|
|
465
466
|
case 'inside':
|
|
466
|
-
|
|
467
|
+
width -= __strokeWidth, height -= __strokeWidth;
|
|
468
|
+
if (width < 0 || height < 0) {
|
|
469
|
+
canvas.save();
|
|
470
|
+
this.__clip(canvas, options);
|
|
471
|
+
canvas.strokeRect(half, half, width, height);
|
|
472
|
+
canvas.restore();
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
canvas.strokeRect(half, half, width, height);
|
|
476
|
+
}
|
|
467
477
|
break;
|
|
468
478
|
case 'outside':
|
|
469
479
|
canvas.strokeRect(-half, -half, width + __strokeWidth, height + __strokeWidth);
|
|
@@ -491,11 +501,14 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
491
501
|
return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX;
|
|
492
502
|
}
|
|
493
503
|
get pen() {
|
|
494
|
-
|
|
504
|
+
const { path } = this.__;
|
|
505
|
+
pen.set(this.path = path || []);
|
|
506
|
+
if (!path)
|
|
507
|
+
this.__drawPathByBox(pen);
|
|
495
508
|
return pen;
|
|
496
509
|
}
|
|
497
510
|
get editConfig() { return undefined; }
|
|
498
|
-
get editOuter() { return 'EditTool'; }
|
|
511
|
+
get editOuter() { return this.__.__isLinePath ? 'LineEditTool' : 'EditTool'; }
|
|
499
512
|
get editInner() { return 'PathEditor'; }
|
|
500
513
|
constructor(data) {
|
|
501
514
|
super(data);
|
|
@@ -515,18 +528,16 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
515
528
|
getPath(curve, pathForRender) {
|
|
516
529
|
this.__layout.update();
|
|
517
530
|
let path = pathForRender ? this.__.__pathForRender : this.__.path;
|
|
518
|
-
if (!path)
|
|
519
|
-
|
|
520
|
-
if (width || height) {
|
|
521
|
-
pen.set(path = []);
|
|
522
|
-
this.__drawPathByBox(pen);
|
|
523
|
-
}
|
|
524
|
-
}
|
|
531
|
+
if (!path)
|
|
532
|
+
pen.set(path = []), this.__drawPathByBox(pen);
|
|
525
533
|
return curve ? PathConvert.toCanvasData(path, true) : path;
|
|
526
534
|
}
|
|
527
535
|
getPathString(curve, pathForRender) {
|
|
528
536
|
return PathConvert.stringify(this.getPath(curve, pathForRender));
|
|
529
537
|
}
|
|
538
|
+
load() {
|
|
539
|
+
this.__.__computePaint();
|
|
540
|
+
}
|
|
530
541
|
__onUpdateSize() {
|
|
531
542
|
if (this.__.__input) {
|
|
532
543
|
const data = this.__;
|
|
@@ -612,7 +623,7 @@ __decorate([
|
|
|
612
623
|
opacityType(1)
|
|
613
624
|
], UI.prototype, "opacity", void 0);
|
|
614
625
|
__decorate([
|
|
615
|
-
|
|
626
|
+
visibleType(true)
|
|
616
627
|
], UI.prototype, "visible", void 0);
|
|
617
628
|
__decorate([
|
|
618
629
|
stateType(false)
|
|
@@ -629,9 +640,6 @@ __decorate([
|
|
|
629
640
|
__decorate([
|
|
630
641
|
maskType(false)
|
|
631
642
|
], UI.prototype, "mask", void 0);
|
|
632
|
-
__decorate([
|
|
633
|
-
surfaceType('pixel')
|
|
634
|
-
], UI.prototype, "maskType", void 0);
|
|
635
643
|
__decorate([
|
|
636
644
|
eraserType(false)
|
|
637
645
|
], UI.prototype, "eraser", void 0);
|
|
@@ -706,10 +714,10 @@ __decorate([
|
|
|
706
714
|
], UI.prototype, "gap", void 0);
|
|
707
715
|
__decorate([
|
|
708
716
|
boundsType('top-left')
|
|
709
|
-
], UI.prototype, "
|
|
717
|
+
], UI.prototype, "flowAlign", void 0);
|
|
710
718
|
__decorate([
|
|
711
719
|
boundsType(false)
|
|
712
|
-
], UI.prototype, "
|
|
720
|
+
], UI.prototype, "flowWrap", void 0);
|
|
713
721
|
__decorate([
|
|
714
722
|
boundsType('box')
|
|
715
723
|
], UI.prototype, "itemBox", void 0);
|
|
@@ -924,6 +932,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
924
932
|
get layoutLocked() { return !this.layouter.running; }
|
|
925
933
|
get FPS() { return this.renderer ? this.renderer.FPS : 60; }
|
|
926
934
|
get cursorPoint() { return (this.interaction && this.interaction.hoverData) || { x: this.width / 2, y: this.height / 2 }; }
|
|
935
|
+
get clientBounds() { return this.canvas && this.canvas.getClientBounds(); }
|
|
927
936
|
constructor(userConfig, data) {
|
|
928
937
|
super(data);
|
|
929
938
|
this.config = {
|
|
@@ -1081,7 +1090,8 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
1081
1090
|
this.__changeFill(newValue);
|
|
1082
1091
|
}
|
|
1083
1092
|
else if (attrName === 'hittable') {
|
|
1084
|
-
this.
|
|
1093
|
+
if (!this.parent)
|
|
1094
|
+
this.canvas.hittable = newValue;
|
|
1085
1095
|
}
|
|
1086
1096
|
}
|
|
1087
1097
|
return super.__setAttr(attrName, newValue);
|
|
@@ -1199,6 +1209,9 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
1199
1209
|
zoom(_zoomType, _padding, _fixedScale) { return undefined; }
|
|
1200
1210
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
1201
1211
|
getValidScale(changeScale) { return changeScale; }
|
|
1212
|
+
getWorldPointByClient(clientPoint, updateClient) {
|
|
1213
|
+
return this.interaction && this.interaction.getLocal(clientPoint, updateClient);
|
|
1214
|
+
}
|
|
1202
1215
|
__checkUpdateLayout() {
|
|
1203
1216
|
this.__layout.update();
|
|
1204
1217
|
}
|
|
@@ -1281,8 +1294,8 @@ Rect = __decorate([
|
|
|
1281
1294
|
|
|
1282
1295
|
const rect = Rect.prototype;
|
|
1283
1296
|
const group = Group.prototype;
|
|
1284
|
-
const
|
|
1285
|
-
const { copy, add } = BoundsHelper;
|
|
1297
|
+
const childrenRenderBounds = {};
|
|
1298
|
+
const { copy, add, includes: includes$1 } = BoundsHelper;
|
|
1286
1299
|
let Box = class Box extends Group {
|
|
1287
1300
|
get __tag() { return 'Box'; }
|
|
1288
1301
|
get isBranchLeaf() { return true; }
|
|
@@ -1293,40 +1306,50 @@ let Box = class Box extends Group {
|
|
|
1293
1306
|
__updateStrokeSpread() { return 0; }
|
|
1294
1307
|
__updateRectRenderSpread() { return 0; }
|
|
1295
1308
|
__updateRenderSpread() {
|
|
1296
|
-
|
|
1297
|
-
const hide = this.__.__drawAfterFill = this.__.overflow === 'hide';
|
|
1298
|
-
return (width || hide) ? width : -1;
|
|
1309
|
+
return this.__updateRectRenderSpread() || -1;
|
|
1299
1310
|
}
|
|
1300
1311
|
__updateRectBoxBounds() { }
|
|
1301
1312
|
__updateBoxBounds() {
|
|
1302
1313
|
const data = this.__;
|
|
1303
|
-
if (
|
|
1304
|
-
if (
|
|
1305
|
-
this.leafer.
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1314
|
+
if (this.children.length) {
|
|
1315
|
+
if (data.__autoSide) {
|
|
1316
|
+
if (this.leafer && this.leafer.ready)
|
|
1317
|
+
this.leafer.layouter.addExtra(this);
|
|
1318
|
+
super.__updateBoxBounds();
|
|
1319
|
+
if (!data.__autoSize) {
|
|
1320
|
+
const b = this.__layout.boxBounds;
|
|
1321
|
+
if (!data.__autoWidth)
|
|
1322
|
+
b.x = 0, b.width = data.width;
|
|
1323
|
+
if (!data.__autoHeight)
|
|
1324
|
+
b.y = 0, b.height = data.height;
|
|
1325
|
+
}
|
|
1313
1326
|
}
|
|
1327
|
+
else {
|
|
1328
|
+
this.__updateRectBoxBounds();
|
|
1329
|
+
}
|
|
1330
|
+
if (data.flow)
|
|
1331
|
+
this.__updateContentBounds();
|
|
1314
1332
|
}
|
|
1315
1333
|
else {
|
|
1316
1334
|
this.__updateRectBoxBounds();
|
|
1317
1335
|
}
|
|
1318
|
-
if (data.flow)
|
|
1319
|
-
this.__updateContentBounds();
|
|
1320
1336
|
}
|
|
1321
1337
|
__updateStrokeBounds() { }
|
|
1322
1338
|
__updateRenderBounds() {
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
copy(bounds, renderBounds);
|
|
1339
|
+
let isOverflow;
|
|
1340
|
+
const { renderBounds } = this.__layout;
|
|
1341
|
+
if (this.children.length) {
|
|
1327
1342
|
super.__updateRenderBounds();
|
|
1328
|
-
|
|
1343
|
+
copy(childrenRenderBounds, renderBounds);
|
|
1344
|
+
this.__updateRectRenderBounds();
|
|
1345
|
+
isOverflow = !includes$1(renderBounds, childrenRenderBounds) || undefined;
|
|
1346
|
+
}
|
|
1347
|
+
else {
|
|
1348
|
+
this.__updateRectRenderBounds();
|
|
1329
1349
|
}
|
|
1350
|
+
this.isOverflow !== isOverflow && (this.isOverflow = isOverflow);
|
|
1351
|
+
if (isOverflow && !(this.__.__drawAfterFill = this.__.overflow === 'hide'))
|
|
1352
|
+
add(renderBounds, childrenRenderBounds);
|
|
1330
1353
|
}
|
|
1331
1354
|
__updateRectRenderBounds() { }
|
|
1332
1355
|
__updateRectChange() { }
|
|
@@ -1342,16 +1365,27 @@ let Box = class Box extends Group {
|
|
|
1342
1365
|
}
|
|
1343
1366
|
else {
|
|
1344
1367
|
this.__renderRect(canvas, options);
|
|
1345
|
-
this.
|
|
1368
|
+
if (this.children.length)
|
|
1369
|
+
this.__renderGroup(canvas, options);
|
|
1346
1370
|
}
|
|
1347
1371
|
}
|
|
1348
1372
|
__drawAfterFill(canvas, options) {
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1373
|
+
const { length } = this.children;
|
|
1374
|
+
if (this.isOverflow) {
|
|
1375
|
+
canvas.save();
|
|
1376
|
+
canvas.clip();
|
|
1377
|
+
if (length)
|
|
1378
|
+
this.__renderGroup(canvas, options);
|
|
1379
|
+
canvas.restore();
|
|
1380
|
+
}
|
|
1381
|
+
else {
|
|
1382
|
+
if (length)
|
|
1383
|
+
this.__renderGroup(canvas, options);
|
|
1384
|
+
}
|
|
1385
|
+
if (this.__.stroke && length) {
|
|
1386
|
+
canvas.setWorld(this.__nowWorld);
|
|
1354
1387
|
this.__drawRenderPath(canvas);
|
|
1388
|
+
}
|
|
1355
1389
|
}
|
|
1356
1390
|
};
|
|
1357
1391
|
__decorate([
|
|
@@ -1489,9 +1523,10 @@ let Line = class Line extends UI {
|
|
|
1489
1523
|
super(data);
|
|
1490
1524
|
}
|
|
1491
1525
|
__updatePath() {
|
|
1492
|
-
const
|
|
1493
|
-
|
|
1494
|
-
|
|
1526
|
+
const data = this.__;
|
|
1527
|
+
const path = data.path = [];
|
|
1528
|
+
if (data.points) {
|
|
1529
|
+
drawPoints$1(path, data.points, false, data.closed);
|
|
1495
1530
|
}
|
|
1496
1531
|
else {
|
|
1497
1532
|
moveTo$2(path, 0, 0);
|
|
@@ -1861,7 +1896,7 @@ __decorate([
|
|
|
1861
1896
|
boundsType(0)
|
|
1862
1897
|
], Text.prototype, "letterSpacing", void 0);
|
|
1863
1898
|
__decorate([
|
|
1864
|
-
boundsType({ type: 'percent', value:
|
|
1899
|
+
boundsType({ type: 'percent', value: 1.5 })
|
|
1865
1900
|
], Text.prototype, "lineHeight", void 0);
|
|
1866
1901
|
__decorate([
|
|
1867
1902
|
boundsType(0)
|
|
@@ -1955,6 +1990,4 @@ function penPathType() {
|
|
|
1955
1990
|
};
|
|
1956
1991
|
}
|
|
1957
1992
|
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
export { Box, BoxData, Canvas, CanvasData, ColorConvert, Effect, Ellipse, EllipseData, Export, Frame, FrameData, Group, GroupData, Image, ImageData, Leafer, LeaferData, Line, LineData, Paint, PaintGradient, PaintImage, Path, PathArrow, PathData, Pen, PenData, Polygon, PolygonData, Rect, RectData, RectRender, Star, StarData, State, Text, TextConvert, TextData, UI, UIBounds, UIData, UIRender, UnitConvert, arrowType, effectType, resizeType, stateType, version, zoomLayerType };
|
|
1993
|
+
export { Box, BoxData, Canvas, CanvasData, ColorConvert, Effect, Ellipse, EllipseData, Export, Frame, FrameData, Group, GroupData, Image, ImageData, Leafer, LeaferData, Line, LineData, Paint, PaintGradient, PaintImage, Path, PathArrow, PathData, Pen, PenData, Polygon, PolygonData, Rect, RectData, RectRender, Star, StarData, State, Text, TextConvert, TextData, UI, UIBounds, UIData, UIRender, UnitConvert, arrowType, effectType, resizeType, stateType, zoomLayerType };
|
package/lib/draw.esm.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{decorateLeafAttr as t,attr as e,doStrokeType as i,defineKey as s,Debug as o,LeafData as r,PathConvert as a,OneRadian as n,dataProcessor as _,dataType as h,surfaceType as d,opacityType as p,sortType as l,maskType as u,eraserType as c,positionType as y,boundsType as v,scaleType as g,rotationType as f,autoLayoutType as w,naturalBoundsType as x,pathInputType as m,pathType as R,hitType as S,strokeType as k,cursorType as b,rewrite as B,Leaf as A,useModule as C,rewriteAble as P,pen as F,PathCorner as E,PathDrawer as D,UICreator as L,registerUI as T,Branch as W,LeafList as I,ImageManager as z,DataHelper as M,Creator as O,CanvasManager as N,WaitHelper as H,LeaferEvent as V,canvasSizeAttrs as Y,Bounds as X,ResizeEvent as U,AutoBounds as j,Run as G,LayoutEvent as J,RenderEvent as $,WatchEvent as K,affectRenderBoundsType as q,BoundsHelper as Q,Platform as Z,PathCommandDataHelper as tt,affectStrokeBoundsType as et,getPointData as it,PointHelper as st,PathBounds as ot,ImageEvent as rt,Matrix as at,MathHelper as nt,PathCreator as _t}from"@leafer/core";export*from"@leafer/core";function ht(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"==typeof SuppressedError&&SuppressedError;const dt={},pt={},lt={},ut={},ct={},yt={},vt={},gt={},ft={};function wt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),this.waitLeafer((()=>{ft.setStyle&&ft.setStyle(this,t+"Style",e)}))}})))}function xt(s){return t(s,(t=>e({set(e){this.__setAttr(t,e);const s=this.__;s.__useArrow="none"!==s.startArrow||"none"!==s.endArrow,i(this)}})))}function mt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0),this.__layout.renderChanged||this.__layout.renderChange()}})))}function Rt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}})))}function St(){return(t,e)=>{const i="_"+e;s(t,e,{set(t){this.isLeafer&&(this[i]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[i]||this:this.leafer&&this.leafer.zoomLayer}})}}const{parse:kt}=a,bt={},Bt=o.get("UIData");class At extends r{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.__leaf.leafer&&(this.__leaf.leafer.watcher.hasVisible=!0),this._visible=t}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"),ct.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"),ct.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&&ut.compute("fill",this.__leaf),e&&ut.compute("stroke",this.__leaf),this.__needComputePaint=!1}}const Ct={number:(t,e)=>"object"==typeof t?"percent"===t.type?(t.value>49?t.value/100:t.value)*e:t.value:t};class Pt extends At{}class Ft extends Pt{get __boxStroke(){return!0}}class Et extends Pt{}class Dt extends Ft{}class Lt extends At{}class Tt extends At{get __boxStroke(){return!0}}class Wt extends At{get __boxStroke(){return!0}}class It extends At{}class zt extends At{}class Mt extends At{}class Ot extends Pt{}const Nt={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class Ht extends At{setFontWeight(t){"string"==typeof t?(this.__setInput("fontWeight",t),this._fontWeight=Nt[t]||400):(this.__input&&this.__removeInput("fontWeight"),this._fontWeight=t)}}class Vt extends Tt{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.__leaf.image&&(this.__leaf.image=null),this.fill=t?{type:"image",mode:"strench",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 Tt{}const Xt={__updateStrokeSpread(){let t=0,e=0;const{stroke:i,hitStroke:s,strokeAlign:o,strokeWidth:r}=this.__;if((i||"all"===s)&&r&&"inside"!==o&&(e=t="center"===o?r/2:r,!this.__.__boxStroke)){const{miterLimit:e,strokeCap:i}=this.__,s="Line"!==this.__tag?1/Math.sin(e*n/2)*Math.sqrt(r)-t:0,o="none"===i?0:r;t+=Math.max(s,o)}return this.__layout.strokeBoxSpread=e,this.__.__useArrow&&(t+=5*r),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}},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){jt(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=ut.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:n,innerShadow:_}=i;n&&vt.shadow(this,t,a),s&&(i.__isFills?ut.fills(s,this,t):ut.fill(s,this,t)),r&&this.__drawAfterFill(t,e),_&&vt.innerShadow(this,t,a),o&&(i.__isStrokes?ut.strokes(o,this,t):ut.stroke(o,this,t)),a.worldCanvas&&a.worldCanvas.recycle(),a.canvas.recycle()}else s&&(i.__isFills?ut.fills(s,this,t):ut.fill(s,this,t)),r&&this.__drawAfterFill(t,e),o&&(i.__isStrokes?ut.strokes(o,this,t):ut.stroke(o,this,t))}else i.__pathInputed?jt(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?ut.fills(o,this,t):ut.fill("#000000",this,t)),r&&!s&&(this.__.__pixelStroke?ut.strokes(r,this,t):ut.stroke("#000000",this,t))}}};function jt(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r}=t.__;t.__drawRenderPath(e),s&&ut.fill(s,t,e),r&&t.__drawAfterFill(e,i),o&&ut.stroke(o,t,e)}const Gt={__drawFast(t,e){const{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:e,__strokeWidth:o}=this.__;if(!o)return;t.setStroke(r,o,this.__);const a=o/2;switch(e){case"center":t.strokeRect(0,0,i,s);break;case"inside":t.strokeRect(a,a,i-o,s-o);break;case"outside":t.strokeRect(-a,-a,i+o,s+o)}}}};var Jt;let $t=Jt=class extends A{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(t){"number"==typeof t?this.scaleX=this.scaleY=t:(this.scaleX=t.x,this.scaleY=t.y)}get scale(){const{scaleX:t,scaleY:e}=this;return t!==e?{x:t,y:e}:t}get pen(){return F.set(this.path=this.__.path||[]),F}get editConfig(){}get editOuter(){return"EditTool"}get editInner(){return"PathEditor"}constructor(t){super(t)}reset(t){}set(t){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;if(!i){const{width:t,height:e}=this.boxBounds;(t||e)&&(F.set(i=[]),this.__drawPathByBox(F))}return t?a.toCanvasData(i,!0):i}getPathString(t,e){return a.stringify(this.getPath(t,e))}__onUpdateSize(){if(this.__.__input){const t=this.__;t.lazy&&this.leafer&&this.leafer.created&&!this.leafer.lazyBounds.hit(this.__world)?t.__needComputePaint=!0:t.__computePaint()}}__updateRenderPath(){if(this.__.path){const t=this.__;t.__pathForRender=t.cornerRadius?E.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?D.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)}export(t,e){return gt.export(this,t,e)}clone(){return Jt.one(this.toJSON())}static one(t,e,i,s,o){return L.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,super.destroy()}};ht([_(At)],$t.prototype,"__",void 0),ht([St()],$t.prototype,"zoomLayer",void 0),ht([h("")],$t.prototype,"id",void 0),ht([h("")],$t.prototype,"name",void 0),ht([h("")],$t.prototype,"className",void 0),ht([d("pass-through")],$t.prototype,"blendMode",void 0),ht([p(1)],$t.prototype,"opacity",void 0),ht([p(!0)],$t.prototype,"visible",void 0),ht([wt(!1)],$t.prototype,"selected",void 0),ht([wt(!1)],$t.prototype,"disabled",void 0),ht([h(!1)],$t.prototype,"locked",void 0),ht([l(0)],$t.prototype,"zIndex",void 0),ht([u(!1)],$t.prototype,"mask",void 0),ht([d("pixel")],$t.prototype,"maskType",void 0),ht([c(!1)],$t.prototype,"eraser",void 0),ht([y(0,!0)],$t.prototype,"x",void 0),ht([y(0,!0)],$t.prototype,"y",void 0),ht([v(100,!0)],$t.prototype,"width",void 0),ht([v(100,!0)],$t.prototype,"height",void 0),ht([g(1,!0)],$t.prototype,"scaleX",void 0),ht([g(1,!0)],$t.prototype,"scaleY",void 0),ht([f(0,!0)],$t.prototype,"rotation",void 0),ht([f(0,!0)],$t.prototype,"skewX",void 0),ht([f(0,!0)],$t.prototype,"skewY",void 0),ht([y(0,!0)],$t.prototype,"offsetX",void 0),ht([y(0,!0)],$t.prototype,"offsetY",void 0),ht([y(0,!0)],$t.prototype,"scrollX",void 0),ht([y(0,!0)],$t.prototype,"scrollY",void 0),ht([w()],$t.prototype,"origin",void 0),ht([w()],$t.prototype,"around",void 0),ht([h(!1)],$t.prototype,"lazy",void 0),ht([x(1)],$t.prototype,"pixelRatio",void 0),ht([m()],$t.prototype,"path",void 0),ht([R()],$t.prototype,"windingRule",void 0),ht([R(!0)],$t.prototype,"closed",void 0),ht([w(!1)],$t.prototype,"flow",void 0),ht([v(0)],$t.prototype,"padding",void 0),ht([v(0)],$t.prototype,"gap",void 0),ht([v("top-left")],$t.prototype,"align",void 0),ht([v(!1)],$t.prototype,"wrap",void 0),ht([v("box")],$t.prototype,"itemBox",void 0),ht([v(!0)],$t.prototype,"inFlow",void 0),ht([v()],$t.prototype,"autoWidth",void 0),ht([v()],$t.prototype,"autoHeight",void 0),ht([v()],$t.prototype,"autoBox",void 0),ht([v()],$t.prototype,"widthRange",void 0),ht([v()],$t.prototype,"heightRange",void 0),ht([h(!1)],$t.prototype,"draggable",void 0),ht([h()],$t.prototype,"dragBounds",void 0),ht([h(!1)],$t.prototype,"editable",void 0),ht([S(!0)],$t.prototype,"hittable",void 0),ht([S("path")],$t.prototype,"hitFill",void 0),ht([k("path")],$t.prototype,"hitStroke",void 0),ht([S(!1)],$t.prototype,"hitBox",void 0),ht([S(!0)],$t.prototype,"hitChildren",void 0),ht([S(!0)],$t.prototype,"hitSelf",void 0),ht([S()],$t.prototype,"hitRadius",void 0),ht([b("")],$t.prototype,"cursor",void 0),ht([d()],$t.prototype,"fill",void 0),ht([k()],$t.prototype,"stroke",void 0),ht([k("inside")],$t.prototype,"strokeAlign",void 0),ht([k(1)],$t.prototype,"strokeWidth",void 0),ht([k(!1)],$t.prototype,"strokeWidthFixed",void 0),ht([k("none")],$t.prototype,"strokeCap",void 0),ht([k("miter")],$t.prototype,"strokeJoin",void 0),ht([k()],$t.prototype,"dashPattern",void 0),ht([k()],$t.prototype,"dashOffset",void 0),ht([k(10)],$t.prototype,"miterLimit",void 0),ht([xt("none")],$t.prototype,"startArrow",void 0),ht([xt("none")],$t.prototype,"endArrow",void 0),ht([R(0)],$t.prototype,"cornerRadius",void 0),ht([R()],$t.prototype,"cornerSmoothing",void 0),ht([mt()],$t.prototype,"shadow",void 0),ht([mt()],$t.prototype,"innerShadow",void 0),ht([mt()],$t.prototype,"blur",void 0),ht([mt()],$t.prototype,"backgroundBlur",void 0),ht([mt()],$t.prototype,"grayscale",void 0),ht([h()],$t.prototype,"normalStyle",void 0),ht([h()],$t.prototype,"hoverStyle",void 0),ht([h()],$t.prototype,"pressStyle",void 0),ht([h()],$t.prototype,"focusStyle",void 0),ht([h()],$t.prototype,"selectedStyle",void 0),ht([h()],$t.prototype,"disabledStyle",void 0),ht([B(A.prototype.reset)],$t.prototype,"reset",null),$t=Jt=ht([C(Xt),C(Ut),P()],$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){if(t.children){const{children:e}=t;let i;delete t.children,this.children?this.clear():this.__setBranch(),super.set(t),e.forEach((t=>{i=t.__?t:L.get(t.tag,t),this.add(i)})),t.children=e}else super.set(t)}toJSON(){const t=super.toJSON();return t.children=this.children.map((t=>t.toJSON())),t}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;ht([_(Pt)],Kt.prototype,"__",void 0),Kt=ht([C(W),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&&z.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}}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&&M.assign(this.config,t);const{config:s}=this;this.initType(s.type);const o=this.canvas=O.canvas(s);this.__controllers.push(this.renderer=O.renderer(this,o,s),this.watcher=O.watcher(this,s),this.layouter=O.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(s),this.view=o.view,e?(this.__bindApp(e),i=e.running):(this.selector=O.selector(this),this.interaction=O.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=O.hitCanvasManager()),this.canvasManager=new N,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(V.RESTART):this.emitLeafer(V.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(V.STOP))}unlockLayout(){this.layouter.start(),this.updateLayout()}lockLayout(){this.updateLayout(),this.layouter.stop()}resize(t){const e=M.copyAttrs({},t,Y);Object.keys(e).forEach((t=>this[t]=e[t]))}forceRender(t){this.renderer.addBlock(t?new X(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=M.copyAttrs({},this.canvas,Y);e.resize(t),this.updateLazyBounds(),this.__onResize(new U(t,i))}__onResize(t){this.emitEvent(t),M.copyAttrs(this.__,t,Y),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){t.width&&t.height||(this.autoLayout=new j(t),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(Y.includes(t)?this.__changeCanvasSize(t,e):"fill"===t?this.__changeFill(e):"hittable"===t&&(this.canvas.hittable=e)),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&Y.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const i=M.copyAttrs({},this.canvas,Y);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(V.BEFORE_READY),this.emitLeafer(V.READY),this.emitLeafer(V.AFTER_READY),H.run(this.__readyWait))}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(V.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(V.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){}getValidMove(t,e){return{x:t,y:e}}getValidScale(t){return t}__checkUpdateLayout(){this.__layout.update()}emitLeafer(t){this.emitEvent(new V(t,this))}__listenEvents(){const t=G.start("FirstCreate "+this.innerName);this.once(V.START,(()=>G.end(t))),this.once(J.START,(()=>this.updateLazyBounds())),this.once(J.END,(()=>this.__onReady())),this.once($.START,(()=>this.__onCreated())),this.once($.END,(()=>this.__onViewReady())),this.__eventIds.push(this.on_(K.DATA,this.__onWatchData,this),this.on_($.NEXT,this.__onNextRender,this),this.on_(J.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 V(V.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((()=>{z.clearRecycled()}),100)}catch(t){Qt.error(t)}}};t?e():setTimeout(e)}};Zt.list=new I,ht([_(Et)],Zt.prototype,"__",void 0),ht([v()],Zt.prototype,"pixelRatio",void 0),Zt=qt=ht([T()],Zt);let te=class extends $t{get __tag(){return"Rect"}constructor(t){super(t)}};ht([_(Tt)],te.prototype,"__",void 0),te=ht([C(Gt),P(),T()],te);const ee=te.prototype,ie=Kt.prototype,se={},{copy:oe,add:re}=Q;let ae=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(){const t=this.__updateRectRenderSpread(),e=this.__.__drawAfterFill="hide"===this.__.overflow;return t||e?t:-1}__updateRectBoxBounds(){}__updateBoxBounds(){const t=this.__;if(t.__autoSide&&this.children.length){if(this.leafer&&this.leafer.layouter.addExtra(this),super.__updateBoxBounds(),!t.__autoSize){const e=this.__layout.boxBounds;t.__autoWidth||(e.x=0,e.width=t.width),t.__autoHeight||(e.y=0,e.height=t.height)}}else this.__updateRectBoxBounds();t.flow&&this.__updateContentBounds()}__updateStrokeBounds(){}__updateRenderBounds(){if(this.__updateRectRenderBounds(),!this.__.__drawAfterFill){const{renderBounds:t}=this.__layout;oe(se,t),super.__updateRenderBounds(),re(t,se)}}__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.__renderGroup(t,e))}__drawAfterFill(t,e){t.save(),t.clip(),this.__renderGroup(t,e),t.restore(),this.__.stroke&&this.__drawRenderPath(t)}};ht([_(Ft)],ae.prototype,"__",void 0),ht([q("show")],ae.prototype,"overflow",void 0),ht([B(ee.__updateStrokeSpread)],ae.prototype,"__updateStrokeSpread",null),ht([B(ee.__updateRenderSpread)],ae.prototype,"__updateRectRenderSpread",null),ht([B(ee.__updateBoxBounds)],ae.prototype,"__updateRectBoxBounds",null),ht([B(ee.__updateStrokeBounds)],ae.prototype,"__updateStrokeBounds",null),ht([B(ee.__updateRenderBounds)],ae.prototype,"__updateRectRenderBounds",null),ht([B(ee.__updateChange)],ae.prototype,"__updateRectChange",null),ht([B(ee.__render)],ae.prototype,"__renderRect",null),ht([B(ie.__render)],ae.prototype,"__renderGroup",null),ae=ht([P(),T()],ae);let ne=class extends ae{get __tag(){return"Frame"}get isFrame(){return!0}constructor(t){super(t)}};ht([_(Dt)],ne.prototype,"__",void 0),ht([d("#FFFFFF")],ne.prototype,"fill",void 0),ht([q("hide")],ne.prototype,"overflow",void 0),ne=ht([T()],ne);const{moveTo:_e,closePath:he,ellipse:de}=tt;let pe=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&&de(n,r,a,r*i,a*i,0,s,o,!1),de(n,r,a,r,a,0,o,s,!0),i<1&&he(n)):(i<1&&(de(n,r,a,r*i,a*i),_e(n,t,a)),de(n,r,a,r,a,0,360,0,!0)),Z.ellipseToCurve&&(this.__.path=this.getPath(!0))):s||o?(_e(n,r,a),de(n,r,a,r,a,0,s,o,!1),he(n)):de(n,r,a,r,a)}};ht([_(Wt)],pe.prototype,"__",void 0),ht([R(0)],pe.prototype,"innerRadius",void 0),ht([R(0)],pe.prototype,"startAngle",void 0),ht([R(0)],pe.prototype,"endAngle",void 0),pe=ht([T()],pe);const{moveTo:le,lineTo:ue,drawPoints:ce}=tt,{rotate:ye,getAngle:ve,getDistance:ge,defaultPoint:fe}=st,{toBounds:we}=ot;let xe=class extends $t{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=it();return t&&(i.x=t),e&&ye(i,e),i}set toPoint(t){this.width=ge(fe,t),this.rotation=ve(fe,t),this.height&&(this.height=0)}constructor(t){super(t)}__updatePath(){const t=this.__.path=[];this.__.points?ce(t,this.__.points,this.__.closed):(le(t,0,0),ue(t,this.width,0))}__updateRenderPath(){const t=this.__;!this.pathInputed&&t.points&&t.curve?(ce(t.__pathForRender=[],t.points,t.curve,t.closed),t.__useArrow&<.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?we(this.__.__pathForRender,this.__layout.boxBounds):super.__updateBoxBounds()}};ht([_(Lt)],xe.prototype,"__",void 0),ht([et("center")],xe.prototype,"strokeAlign",void 0),ht([v(0)],xe.prototype,"height",void 0),ht([R()],xe.prototype,"points",void 0),ht([R(0)],xe.prototype,"curve",void 0),ht([R(!1)],xe.prototype,"closed",void 0),xe=ht([T()],xe);const{sin:me,cos:Re,PI:Se}=Math,{moveTo:ke,lineTo:be,closePath:Be,drawPoints:Ae}=tt,Ce=xe.prototype;let Pe=class extends $t{get __tag(){return"Polygon"}constructor(t){super(t)}__updatePath(){const t=this.__.path=[];if(this.__.points)Ae(t,this.__.points,!1,!0);else{const{width:e,height:i,sides:s}=this.__,o=e/2,r=i/2;ke(t,o,0);for(let e=1;e<s;e++)be(t,o+o*me(2*e*Se/s),r-r*Re(2*e*Se/s))}Be(t)}__updateRenderPath(){}__updateBoxBounds(){}};ht([_(It)],Pe.prototype,"__",void 0),ht([R(3)],Pe.prototype,"sides",void 0),ht([R()],Pe.prototype,"points",void 0),ht([R(0)],Pe.prototype,"curve",void 0),ht([B(Ce.__updateRenderPath)],Pe.prototype,"__updateRenderPath",null),ht([B(Ce.__updateBoxBounds)],Pe.prototype,"__updateBoxBounds",null),Pe=ht([P(),T()],Pe);const{sin:Fe,cos:Ee,PI:De}=Math,{moveTo:Le,lineTo:Te,closePath:We}=tt;let Ie=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++)Te(a,o+(t%2==0?o:o*s)*Fe(t*De/i),r-(t%2==0?r:r*s)*Ee(t*De/i));We(a)}};ht([_(zt)],Ie.prototype,"__",void 0),ht([R(5)],Ie.prototype,"corners",void 0),ht([R(.382)],Ie.prototype,"innerRadius",void 0),Ie=ht([T()],Ie);let ze=class extends te{get __tag(){return"Image"}get ready(){return!!this.image&&this.image.ready}constructor(t){super(t),this.on(rt.LOADED,(t=>{"fill"===t.attrName&&t.attrValue.url===this.url&&(this.image=t.image)}))}destroy(){this.image=null,super.destroy()}};ht([_(Vt)],ze.prototype,"__",void 0),ht([v("")],ze.prototype,"url",void 0),ze=ht([T()],ze);let Me=class extends te{get __tag(){return"Canvas"}constructor(t){super(t),this.canvas=O.canvas(this.__),this.context=this.canvas.context,this.__.__drawAfterFill=!0}draw(t,e,i,s){t.__layout.update();const o=new at(t.__world).invert(),r=new at;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.forceUpdate("fill")}__drawAfterFill(t,e){const i=this.canvas.view,{width:s,height:o}=this;this.__.cornerRadius?(t.save(),t.clip(),t.drawImage(this.canvas.view,0,0,i.width,i.height,0,0,s,o),t.restore()):t.drawImage(this.canvas.view,0,0,i.width,i.height,0,0,s,o)}__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=null,this.context=null),super.destroy()}};ht([_(Yt)],Me.prototype,"__",void 0),ht([Rt(100)],Me.prototype,"width",void 0),ht([Rt(100)],Me.prototype,"height",void 0),ht([Rt(Z.devicePixelRatio)],Me.prototype,"pixelRatio",void 0),ht([Rt(!0)],Me.prototype,"smooth",void 0),ht([Rt()],Me.prototype,"contextSettings",void 0),ht([S("all")],Me.prototype,"hitFill",void 0),Me=ht([T()],Me);const{copyAndSpread:Oe,includes:Ne,isSame:He,spread:Ve,setList:Ye}=Q;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,__baseLine:i,__textDrawData:s}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):s.rows.forEach((s=>t.rect(s.x,s.y-i,s.width,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=dt.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=Ct.number(i,r),t.__letterSpacing=Ct.number(s,r),t.__padding=d?nt.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&&Ve(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=Ne(c,u)?c:u;He(y,e.contentBounds)?t.__textBoxBounds=y:(e.contentBounds=y,e.renderChanged=!0,Ye(t.__textBoxBounds={},[c,u]))}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.__layout.boxBounds===this.__layout.contentBounds?0:1),t}__updateRenderBounds(){Oe(this.__layout.renderBounds,this.__.__textBoxBounds,this.__layout.renderSpread)}};ht([_(Ht)],Xe.prototype,"__",void 0),ht([v(0)],Xe.prototype,"width",void 0),ht([v(0)],Xe.prototype,"height",void 0),ht([d("#000000")],Xe.prototype,"fill",void 0),ht([et("outside")],Xe.prototype,"strokeAlign",void 0),ht([S("all")],Xe.prototype,"hitFill",void 0),ht([v("")],Xe.prototype,"text",void 0),ht([v("L")],Xe.prototype,"fontFamily",void 0),ht([v(12)],Xe.prototype,"fontSize",void 0),ht([v("normal")],Xe.prototype,"fontWeight",void 0),ht([v(!1)],Xe.prototype,"italic",void 0),ht([v("none")],Xe.prototype,"textCase",void 0),ht([v("none")],Xe.prototype,"textDecoration",void 0),ht([v(0)],Xe.prototype,"letterSpacing",void 0),ht([v({type:"percent",value:150})],Xe.prototype,"lineHeight",void 0),ht([v(0)],Xe.prototype,"paraIndent",void 0),ht([v(0)],Xe.prototype,"paraSpacing",void 0),ht([v("left")],Xe.prototype,"textAlign",void 0),ht([v("top")],Xe.prototype,"verticalAlign",void 0),ht([v("normal")],Xe.prototype,"textWrap",void 0),ht([v("show")],Xe.prototype,"textOverflow",void 0),Xe=ht([T()],Xe);let Ue=class extends $t{get __tag(){return"Path"}constructor(t){super(t),this.__.__pathInputed=2}};ht([_(Mt)],Ue.prototype,"__",void 0),ht([et("center")],Ue.prototype,"strokeAlign",void 0),Ue=ht([T()],Ue);let je=class extends Kt{get __tag(){return"Pen"}constructor(t){super(t)}setStyle(t){const e=this.pathElement=new Ue(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.forceUpdate("path")}};ht([_(Ot)],je.prototype,"__",void 0),ht([(t,e)=>{s(t,e,{get(){return this.__path}})}],je.prototype,"path",void 0),je=ht([C(_t,["set","beginPath","path"]),T()],je);const Ge="1.0.0-rc.23";export{ae as Box,Ft as BoxData,Me as Canvas,Yt as CanvasData,pt as ColorConvert,vt as Effect,pe as Ellipse,Wt as EllipseData,gt as Export,ne as Frame,Dt as FrameData,Kt as Group,Pt as GroupData,ze as Image,Vt as ImageData,Zt as Leafer,Et as LeaferData,xe as Line,Lt as LineData,ut as Paint,yt as PaintGradient,ct as PaintImage,Ue as Path,lt as PathArrow,Mt as PathData,je as Pen,Ot as PenData,Pe as Polygon,It as PolygonData,te as Rect,Tt as RectData,Gt as RectRender,Ie as Star,zt as StarData,ft as State,Xe as Text,dt as TextConvert,Ht as TextData,$t as UI,Xt as UIBounds,At as UIData,Ut as UIRender,Ct as UnitConvert,xt as arrowType,mt as effectType,Rt as resizeType,wt as stateType,Ge as version,St as zoomLayerType};
|
|
1
|
+
import{decorateLeafAttr as t,attr as e,doStrokeType as i,defineKey as s,Debug as o,LeafData as r,PathConvert as a,dataProcessor as n,dataType as _,surfaceType as h,opacityType as d,visibleType as p,sortType as l,maskType as u,eraserType as c,positionType as y,boundsType as g,scaleType as v,rotationType as f,autoLayoutType as w,naturalBoundsType as x,pathInputType as m,pathType as R,hitType as S,strokeType as B,cursorType as k,rewrite as b,Leaf as A,useModule as P,rewriteAble as C,pen as F,PathCorner as E,PathDrawer as L,UICreator as W,registerUI as D,Branch as I,LeafList as T,ImageManager as z,DataHelper as M,Creator as O,CanvasManager as N,WaitHelper as H,LeaferEvent as V,canvasSizeAttrs as Y,Bounds as X,ResizeEvent as U,AutoBounds as j,Run as G,LayoutEvent as J,RenderEvent as $,WatchEvent as K,affectRenderBoundsType as q,BoundsHelper as Q,Platform as Z,PathCommandDataHelper as tt,affectStrokeBoundsType as et,getPointData as it,PointHelper as st,PathBounds as ot,ImageEvent as rt,Matrix as at,MathHelper as nt,PathCreator as _t}from"@leafer/core";export*from"@leafer/core";function ht(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"==typeof SuppressedError&&SuppressedError;const dt={},pt={},lt={},ut={},ct={},yt={},gt={},vt={},ft={};function wt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),this.waitLeafer((()=>{ft.setStyle&&ft.setStyle(this,t+"Style",e)}))}})))}function xt(s){return t(s,(t=>e({set(e){if(this.__setAttr(t,e)){const t=this.__;t.__useArrow="none"!==t.startArrow||"none"!==t.endArrow,i(this)}}})))}function mt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),e&&(this.__.__useEffect=!0),this.__layout.renderChanged||this.__layout.renderChange()}})))}function Rt(i){return t(i,(t=>e({set(e){this.__setAttr(t,e),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}})))}function St(){return(t,e)=>{const i="_"+e;s(t,e,{set(t){this.isLeafer&&(this[i]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[i]||this:this.leafer&&this.leafer.zoomLayer}})}}const{parse:Bt}=a,kt={},bt=o.get("UIData");class At extends r{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.__leaf.leafer&&(this.__leaf.leafer.watcher.hasVisible=!0),this._visible=t}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=kt)):(this.__isFills&&(this.__removeInput("fill"),ct.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=kt)):(this.__isStrokes&&(this.__removeInput("stroke"),ct.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=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?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&&ut.compute("fill",this.__leaf),e&&ut.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 Ct extends At{}class Ft extends Ct{get __boxStroke(){return!this.__pathInputed}}class Et extends Ct{}class Lt extends Ft{}class Wt extends At{}class Dt extends At{get __boxStroke(){return!this.__pathInputed}}class It extends At{get __boxStroke(){return!this.__pathInputed}}class Tt extends At{}class zt extends At{}class Mt extends At{}class Ot extends Ct{}const Nt={thin:100,"extra-light":200,light:300,normal:400,medium:500,"semi-bold":600,bold:700,"extra-bold":800,black:900};class Ht extends At{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 Vt extends Dt{setUrl(t){this.__setImageFill(t),this._url=t}__setImageFill(t){this.__leaf.image&&(this.__leaf.image=null),this.fill=t?{type:"image",mode:"strench",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 Dt{}const Xt={__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){jt(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=ut.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:n,innerShadow:_}=i;n&>.shadow(this,t,a),s&&(i.__isFills?ut.fills(s,this,t):ut.fill(s,this,t)),r&&this.__drawAfterFill(t,e),_&>.innerShadow(this,t,a),o&&(i.__isStrokes?ut.strokes(o,this,t):ut.stroke(o,this,t)),a.worldCanvas&&a.worldCanvas.recycle(),a.canvas.recycle()}else s&&(i.__isFills?ut.fills(s,this,t):ut.fill(s,this,t)),r&&this.__drawAfterFill(t,e),o&&(i.__isStrokes?ut.strokes(o,this,t):ut.stroke(o,this,t))}else i.__pathInputed?jt(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?ut.fills(o,this,t):ut.fill("#000000",this,t)),r&&!s&&(this.__.__pixelStroke?ut.strokes(r,this,t):ut.stroke("#000000",this,t))}}};function jt(t,e,i){const{fill:s,stroke:o,__drawAfterFill:r}=t.__;t.__drawRenderPath(e),s&&ut.fill(s,t,e),r&&t.__drawAfterFill(e,i),o&&ut.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 A{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(t){"number"==typeof t?this.scaleX=this.scaleY=t:(this.scaleX=t.x,this.scaleY=t.y)}get scale(){const{scaleX:t,scaleY:e}=this;return t!==e?{x:t,y:e}:t}get pen(){const{path:t}=this.__;return F.set(this.path=t||[]),t||this.__drawPathByBox(F),F}get editConfig(){}get editOuter(){return this.__.__isLinePath?"LineEditTool":"EditTool"}get editInner(){return"PathEditor"}constructor(t){super(t)}reset(t){}set(t){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||(F.set(i=[]),this.__drawPathByBox(F)),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.leafer&&this.leafer.created&&!this.leafer.lazyBounds.hit(this.__world)?t.__needComputePaint=!0:t.__computePaint()}}__updateRenderPath(){if(this.__.path){const t=this.__;t.__pathForRender=t.cornerRadius?E.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)}export(t,e){return vt.export(this,t,e)}clone(){return Jt.one(this.toJSON())}static one(t,e,i,s,o){return W.get(t.tag||this.prototype.__tag,t,e,i,s,o)}static registerUI(){D()(this)}static registerData(t){n(t)(this.prototype)}static setEditConfig(t){}static setEditOuter(t){}static setEditInner(t){}destroy(){this.fill=this.stroke=null,super.destroy()}};ht([n(At)],$t.prototype,"__",void 0),ht([St()],$t.prototype,"zoomLayer",void 0),ht([_("")],$t.prototype,"id",void 0),ht([_("")],$t.prototype,"name",void 0),ht([_("")],$t.prototype,"className",void 0),ht([h("pass-through")],$t.prototype,"blendMode",void 0),ht([d(1)],$t.prototype,"opacity",void 0),ht([p(!0)],$t.prototype,"visible",void 0),ht([wt(!1)],$t.prototype,"selected",void 0),ht([wt(!1)],$t.prototype,"disabled",void 0),ht([_(!1)],$t.prototype,"locked",void 0),ht([l(0)],$t.prototype,"zIndex",void 0),ht([u(!1)],$t.prototype,"mask",void 0),ht([c(!1)],$t.prototype,"eraser",void 0),ht([y(0,!0)],$t.prototype,"x",void 0),ht([y(0,!0)],$t.prototype,"y",void 0),ht([g(100,!0)],$t.prototype,"width",void 0),ht([g(100,!0)],$t.prototype,"height",void 0),ht([v(1,!0)],$t.prototype,"scaleX",void 0),ht([v(1,!0)],$t.prototype,"scaleY",void 0),ht([f(0,!0)],$t.prototype,"rotation",void 0),ht([f(0,!0)],$t.prototype,"skewX",void 0),ht([f(0,!0)],$t.prototype,"skewY",void 0),ht([y(0,!0)],$t.prototype,"offsetX",void 0),ht([y(0,!0)],$t.prototype,"offsetY",void 0),ht([y(0,!0)],$t.prototype,"scrollX",void 0),ht([y(0,!0)],$t.prototype,"scrollY",void 0),ht([w()],$t.prototype,"origin",void 0),ht([w()],$t.prototype,"around",void 0),ht([_(!1)],$t.prototype,"lazy",void 0),ht([x(1)],$t.prototype,"pixelRatio",void 0),ht([m()],$t.prototype,"path",void 0),ht([R()],$t.prototype,"windingRule",void 0),ht([R(!0)],$t.prototype,"closed",void 0),ht([w(!1)],$t.prototype,"flow",void 0),ht([g(0)],$t.prototype,"padding",void 0),ht([g(0)],$t.prototype,"gap",void 0),ht([g("top-left")],$t.prototype,"flowAlign",void 0),ht([g(!1)],$t.prototype,"flowWrap",void 0),ht([g("box")],$t.prototype,"itemBox",void 0),ht([g(!0)],$t.prototype,"inFlow",void 0),ht([g()],$t.prototype,"autoWidth",void 0),ht([g()],$t.prototype,"autoHeight",void 0),ht([g()],$t.prototype,"autoBox",void 0),ht([g()],$t.prototype,"widthRange",void 0),ht([g()],$t.prototype,"heightRange",void 0),ht([_(!1)],$t.prototype,"draggable",void 0),ht([_()],$t.prototype,"dragBounds",void 0),ht([_(!1)],$t.prototype,"editable",void 0),ht([S(!0)],$t.prototype,"hittable",void 0),ht([S("path")],$t.prototype,"hitFill",void 0),ht([B("path")],$t.prototype,"hitStroke",void 0),ht([S(!1)],$t.prototype,"hitBox",void 0),ht([S(!0)],$t.prototype,"hitChildren",void 0),ht([S(!0)],$t.prototype,"hitSelf",void 0),ht([S()],$t.prototype,"hitRadius",void 0),ht([k("")],$t.prototype,"cursor",void 0),ht([h()],$t.prototype,"fill",void 0),ht([B()],$t.prototype,"stroke",void 0),ht([B("inside")],$t.prototype,"strokeAlign",void 0),ht([B(1)],$t.prototype,"strokeWidth",void 0),ht([B(!1)],$t.prototype,"strokeWidthFixed",void 0),ht([B("none")],$t.prototype,"strokeCap",void 0),ht([B("miter")],$t.prototype,"strokeJoin",void 0),ht([B()],$t.prototype,"dashPattern",void 0),ht([B()],$t.prototype,"dashOffset",void 0),ht([B(10)],$t.prototype,"miterLimit",void 0),ht([xt("none")],$t.prototype,"startArrow",void 0),ht([xt("none")],$t.prototype,"endArrow",void 0),ht([R(0)],$t.prototype,"cornerRadius",void 0),ht([R()],$t.prototype,"cornerSmoothing",void 0),ht([mt()],$t.prototype,"shadow",void 0),ht([mt()],$t.prototype,"innerShadow",void 0),ht([mt()],$t.prototype,"blur",void 0),ht([mt()],$t.prototype,"backgroundBlur",void 0),ht([mt()],$t.prototype,"grayscale",void 0),ht([_()],$t.prototype,"normalStyle",void 0),ht([_()],$t.prototype,"hoverStyle",void 0),ht([_()],$t.prototype,"pressStyle",void 0),ht([_()],$t.prototype,"focusStyle",void 0),ht([_()],$t.prototype,"selectedStyle",void 0),ht([_()],$t.prototype,"disabledStyle",void 0),ht([b(A.prototype.reset)],$t.prototype,"reset",null),$t=Jt=ht([P(Xt),P(Ut),C()],$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){if(t.children){const{children:e}=t;let i;delete t.children,this.children?this.clear():this.__setBranch(),super.set(t),e.forEach((t=>{i=t.__?t:W.get(t.tag,t),this.add(i)})),t.children=e}else super.set(t)}toJSON(){const t=super.toJSON();return t.children=this.children.map((t=>t.toJSON())),t}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;ht([n(Ct)],Kt.prototype,"__",void 0),Kt=ht([P(I),D()],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&&z.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&&M.assign(this.config,t);const{config:s}=this;this.initType(s.type);const o=this.canvas=O.canvas(s);this.__controllers.push(this.renderer=O.renderer(this,o,s),this.watcher=O.watcher(this,s),this.layouter=O.layouter(this,s)),this.isApp&&this.__setApp(),this.__checkAutoLayout(s),this.view=o.view,e?(this.__bindApp(e),i=e.running):(this.selector=O.selector(this),this.interaction=O.interaction(this,o,this.selector,s),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=O.hitCanvasManager()),this.canvasManager=new N,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(V.RESTART):this.emitLeafer(V.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(V.STOP))}unlockLayout(){this.layouter.start(),this.updateLayout()}lockLayout(){this.updateLayout(),this.layouter.stop()}resize(t){const e=M.copyAttrs({},t,Y);Object.keys(e).forEach((t=>this[t]=e[t]))}forceRender(t){this.renderer.addBlock(t?new X(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=M.copyAttrs({},this.canvas,Y);e.resize(t),this.updateLazyBounds(),this.__onResize(new U(t,i))}__onResize(t){this.emitEvent(t),M.copyAttrs(this.__,t,Y),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){t.width&&t.height||(this.autoLayout=new j(t),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(t,e){return this.canvas&&(Y.includes(t)?this.__changeCanvasSize(t,e):"fill"===t?this.__changeFill(e):"hittable"===t&&(this.parent||(this.canvas.hittable=e))),super.__setAttr(t,e)}__getAttr(t){return this.canvas&&Y.includes(t)?this.canvas[t]:super.__getAttr(t)}__changeCanvasSize(t,e){const i=M.copyAttrs({},this.canvas,Y);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(V.BEFORE_READY),this.emitLeafer(V.READY),this.emitLeafer(V.AFTER_READY),H.run(this.__readyWait))}__onViewReady(){this.viewReady||(this.viewReady=!0,this.emitLeafer(V.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(V.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){}getValidMove(t,e){return{x:t,y:e}}getValidScale(t){return t}getWorldPointByClient(t,e){return this.interaction&&this.interaction.getLocal(t,e)}__checkUpdateLayout(){this.__layout.update()}emitLeafer(t){this.emitEvent(new V(t,this))}__listenEvents(){const t=G.start("FirstCreate "+this.innerName);this.once(V.START,(()=>G.end(t))),this.once(J.START,(()=>this.updateLazyBounds())),this.once(J.END,(()=>this.__onReady())),this.once($.START,(()=>this.__onCreated())),this.once($.END,(()=>this.__onViewReady())),this.__eventIds.push(this.on_(K.DATA,this.__onWatchData,this),this.on_($.NEXT,this.__onNextRender,this),this.on_(J.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 V(V.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((()=>{z.clearRecycled()}),100)}catch(t){Qt.error(t)}}};t?e():setTimeout(e)}};Zt.list=new T,ht([n(Et)],Zt.prototype,"__",void 0),ht([g()],Zt.prototype,"pixelRatio",void 0),Zt=qt=ht([D()],Zt);let te=class extends $t{get __tag(){return"Rect"}constructor(t){super(t)}};ht([n(Dt)],te.prototype,"__",void 0),te=ht([P(Gt),C(),D()],te);const ee=te.prototype,ie=Kt.prototype,se={},{copy:oe,add:re,includes:ae}=Q;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(){const t=this.__;if(this.children.length){if(t.__autoSide){if(this.leafer&&this.leafer.ready&&this.leafer.layouter.addExtra(this),super.__updateBoxBounds(),!t.__autoSize){const e=this.__layout.boxBounds;t.__autoWidth||(e.x=0,e.width=t.width),t.__autoHeight||(e.y=0,e.height=t.height)}}else this.__updateRectBoxBounds();t.flow&&this.__updateContentBounds()}else this.__updateRectBoxBounds()}__updateStrokeBounds(){}__updateRenderBounds(){let t;const{renderBounds:e}=this.__layout;this.children.length?(super.__updateRenderBounds(),oe(se,e),this.__updateRectRenderBounds(),t=!ae(e,se)||void 0):this.__updateRectRenderBounds(),this.isOverflow!==t&&(this.isOverflow=t),t&&!(this.__.__drawAfterFill="hide"===this.__.overflow)&&re(e,se)}__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))}};ht([n(Ft)],ne.prototype,"__",void 0),ht([q("show")],ne.prototype,"overflow",void 0),ht([b(ee.__updateStrokeSpread)],ne.prototype,"__updateStrokeSpread",null),ht([b(ee.__updateRenderSpread)],ne.prototype,"__updateRectRenderSpread",null),ht([b(ee.__updateBoxBounds)],ne.prototype,"__updateRectBoxBounds",null),ht([b(ee.__updateStrokeBounds)],ne.prototype,"__updateStrokeBounds",null),ht([b(ee.__updateRenderBounds)],ne.prototype,"__updateRectRenderBounds",null),ht([b(ee.__updateChange)],ne.prototype,"__updateRectChange",null),ht([b(ee.__render)],ne.prototype,"__renderRect",null),ht([b(ie.__render)],ne.prototype,"__renderGroup",null),ne=ht([C(),D()],ne);let _e=class extends ne{get __tag(){return"Frame"}get isFrame(){return!0}constructor(t){super(t)}};ht([n(Lt)],_e.prototype,"__",void 0),ht([h("#FFFFFF")],_e.prototype,"fill",void 0),ht([q("hide")],_e.prototype,"overflow",void 0),_e=ht([D()],_e);const{moveTo:he,closePath:de,ellipse:pe}=tt;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)),Z.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)}};ht([n(It)],le.prototype,"__",void 0),ht([R(0)],le.prototype,"innerRadius",void 0),ht([R(0)],le.prototype,"startAngle",void 0),ht([R(0)],le.prototype,"endAngle",void 0),le=ht([D()],le);const{moveTo:ue,lineTo:ce,drawPoints:ye}=tt,{rotate:ge,getAngle:ve,getDistance:fe,defaultPoint:we}=st,{toBounds:xe}=ot;let me=class extends $t{get __tag(){return"Line"}get toPoint(){const{width:t,rotation:e}=this.__,i=it();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()}};ht([n(Wt)],me.prototype,"__",void 0),ht([et("center")],me.prototype,"strokeAlign",void 0),ht([g(0)],me.prototype,"height",void 0),ht([R()],me.prototype,"points",void 0),ht([R(0)],me.prototype,"curve",void 0),ht([R(!1)],me.prototype,"closed",void 0),me=ht([D()],me);const{sin:Re,cos:Se,PI:Be}=Math,{moveTo:ke,lineTo:be,closePath:Ae,drawPoints:Pe}=tt,Ce=me.prototype;let Fe=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;ke(t,o,0);for(let e=1;e<s;e++)be(t,o+o*Re(2*e*Be/s),r-r*Se(2*e*Be/s))}Ae(t)}__updateRenderPath(){}__updateBoxBounds(){}};ht([n(Tt)],Fe.prototype,"__",void 0),ht([R(3)],Fe.prototype,"sides",void 0),ht([R()],Fe.prototype,"points",void 0),ht([R(0)],Fe.prototype,"curve",void 0),ht([b(Ce.__updateRenderPath)],Fe.prototype,"__updateRenderPath",null),ht([b(Ce.__updateBoxBounds)],Fe.prototype,"__updateBoxBounds",null),Fe=ht([C(),D()],Fe);const{sin:Ee,cos:Le,PI:We}=Math,{moveTo:De,lineTo:Ie,closePath:Te}=tt;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=[];De(a,o,0);for(let t=1;t<2*i;t++)Ie(a,o+(t%2==0?o:o*s)*Ee(t*We/i),r-(t%2==0?r:r*s)*Le(t*We/i));Te(a)}};ht([n(zt)],ze.prototype,"__",void 0),ht([R(5)],ze.prototype,"corners",void 0),ht([R(.382)],ze.prototype,"innerRadius",void 0),ze=ht([D()],ze);let Me=class extends te{get __tag(){return"Image"}get ready(){return!!this.image&&this.image.ready}constructor(t){super(t),this.on(rt.LOADED,(t=>{"fill"===t.attrName&&t.attrValue.url===this.url&&(this.image=t.image)}))}destroy(){this.image=null,super.destroy()}};ht([n(Vt)],Me.prototype,"__",void 0),ht([g("")],Me.prototype,"url",void 0),Me=ht([D()],Me);let Oe=class extends te{get __tag(){return"Canvas"}constructor(t){super(t),this.canvas=O.canvas(this.__),this.context=this.canvas.context,this.__.__drawAfterFill=!0}draw(t,e,i,s){t.__layout.update();const o=new at(t.__world).invert(),r=new at;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.forceUpdate("fill")}__drawAfterFill(t,e){const i=this.canvas.view,{width:s,height:o}=this;this.__.cornerRadius?(t.save(),t.clip(),t.drawImage(this.canvas.view,0,0,i.width,i.height,0,0,s,o),t.restore()):t.drawImage(this.canvas.view,0,0,i.width,i.height,0,0,s,o)}__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=null,this.context=null),super.destroy()}};ht([n(Yt)],Oe.prototype,"__",void 0),ht([Rt(100)],Oe.prototype,"width",void 0),ht([Rt(100)],Oe.prototype,"height",void 0),ht([Rt(Z.devicePixelRatio)],Oe.prototype,"pixelRatio",void 0),ht([Rt(!0)],Oe.prototype,"smooth",void 0),ht([Rt()],Oe.prototype,"contextSettings",void 0),ht([S("all")],Oe.prototype,"hitFill",void 0),Oe=ht([D()],Oe);const{copyAndSpread:Ne,includes:He,isSame:Ve,spread:Ye,setList:Xe}=Q;let Ue=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,__baseLine:i,__textDrawData:s}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):s.rows.forEach((s=>t.rect(s.x,s.y-i,s.width,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=dt.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?nt.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&&Ye(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;Ve(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(){Ne(this.__layout.renderBounds,this.__.__textBoxBounds,this.__layout.renderSpread)}};ht([n(Ht)],Ue.prototype,"__",void 0),ht([g(0)],Ue.prototype,"width",void 0),ht([g(0)],Ue.prototype,"height",void 0),ht([h("#000000")],Ue.prototype,"fill",void 0),ht([et("outside")],Ue.prototype,"strokeAlign",void 0),ht([S("all")],Ue.prototype,"hitFill",void 0),ht([g("")],Ue.prototype,"text",void 0),ht([g("L")],Ue.prototype,"fontFamily",void 0),ht([g(12)],Ue.prototype,"fontSize",void 0),ht([g("normal")],Ue.prototype,"fontWeight",void 0),ht([g(!1)],Ue.prototype,"italic",void 0),ht([g("none")],Ue.prototype,"textCase",void 0),ht([g("none")],Ue.prototype,"textDecoration",void 0),ht([g(0)],Ue.prototype,"letterSpacing",void 0),ht([g({type:"percent",value:1.5})],Ue.prototype,"lineHeight",void 0),ht([g(0)],Ue.prototype,"paraIndent",void 0),ht([g(0)],Ue.prototype,"paraSpacing",void 0),ht([g("left")],Ue.prototype,"textAlign",void 0),ht([g("top")],Ue.prototype,"verticalAlign",void 0),ht([g("normal")],Ue.prototype,"textWrap",void 0),ht([g("show")],Ue.prototype,"textOverflow",void 0),Ue=ht([D()],Ue);let je=class extends $t{get __tag(){return"Path"}constructor(t){super(t),this.__.__pathInputed=2}};ht([n(Mt)],je.prototype,"__",void 0),ht([et("center")],je.prototype,"strokeAlign",void 0),je=ht([D()],je);let Ge=class extends Kt{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.forceUpdate("path")}};ht([n(Ot)],Ge.prototype,"__",void 0),ht([(t,e)=>{s(t,e,{get(){return this.__path}})}],Ge.prototype,"path",void 0),Ge=ht([P(_t,["set","beginPath","path"]),D()],Ge);export{ne as Box,Ft as BoxData,Oe as Canvas,Yt as CanvasData,pt as ColorConvert,gt as Effect,le as Ellipse,It as EllipseData,vt as Export,_e as Frame,Lt as FrameData,Kt as Group,Ct as GroupData,Me as Image,Vt as ImageData,Zt as Leafer,Et as LeaferData,me as Line,Wt as LineData,ut as Paint,yt as PaintGradient,ct as PaintImage,je as Path,lt as PathArrow,Mt as PathData,Ge as Pen,Ot as PenData,Fe as Polygon,Tt as PolygonData,te as Rect,Dt as RectData,Gt as RectRender,ze as Star,zt as StarData,ft as State,Ue as Text,dt as TextConvert,Ht as TextData,$t as UI,Xt as UIBounds,At as UIData,Ut as UIRender,Pt as UnitConvert,xt as arrowType,mt as effectType,Rt as resizeType,wt as stateType,St as zoomLayerType};
|
package/lib/draw.min.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var t=require("@leafer/core");function e(t,e,o,s){var r,i=arguments.length,a=i<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,s);else for(var p=t.length-1;p>=0;p--)(r=t[p])&&(a=(i<3?r(a):i>3?r(e,o,a):r(e,o))||a);return i>3&&a&&Object.defineProperty(e,o,a),a}"function"==typeof SuppressedError&&SuppressedError;const o={},s={},r={},i={},a={},p={},n={};function h(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),this.waitLeafer((()=>{n.setStyle&&n.setStyle(this,e+"Style",t)}))}})))}function _(e){return t.decorateLeafAttr(e,(e=>t.attr({set(o){this.__setAttr(e,o);const s=this.__;s.__useArrow="none"!==s.startArrow||"none"!==s.endArrow,t.doStrokeType(this)}})))}function d(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 l(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}})))}function u(){return(e,o)=>{const s="_"+o;t.defineKey(e,o,{set(t){this.isLeafer&&(this[s]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[s]||this:this.leafer&&this.leafer.zoomLayer}})}}const{parse:c}=t.PathConvert,y={},x=t.Debug.get("UIData");class v extends t.LeafData{get __strokeWidth(){const{strokeWidth:t,strokeWidthFixed:e}=this;if(e){const e=this.__leaf;let{scaleX:o}=e.__nowWorld||e.__world;return o<0&&(o=-o),o>1?t/o: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.__leaf.leafer&&(this.__leaf.leafer.watcher.hasVisible=!0),this._visible=t}setWidth(t){t<0?(this._width=-t,this.__leaf.scaleX*=-1,x.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,x.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=y)):(this.__isFills&&(this.__removeInput("fill"),i.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=y)):(this.__isStrokes&&(this.__removeInput("stroke"),i.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=c(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&&r.compute("fill",this.__leaf),e&&r.compute("stroke",this.__leaf),this.__needComputePaint=!1}}const g={number:(t,e)=>"object"==typeof t?"percent"===t.type?(t.value>49?t.value/100:t.value)*e:t.value:t};class f extends v{}class w extends f{get __boxStroke(){return!0}}class T extends f{}class m extends w{}class I extends v{}class R extends v{get __boxStroke(){return!0}}class b extends v{get __boxStroke(){return!0}}class P extends v{}class S extends v{}class U extends v{}class B 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 C extends v{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:"strench",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 R{}const E={__updateStrokeSpread(){let e=0,o=0;const{stroke:s,hitStroke:r,strokeAlign:i,strokeWidth:a}=this.__;if((s||"all"===r)&&a&&"inside"!==i&&(o=e="center"===i?a/2:a,!this.__.__boxStroke)){const{miterLimit:o,strokeCap:s}=this.__,r="Line"!==this.__tag?1/Math.sin(o*t.OneRadian/2)*Math.sqrt(a)-e:0,i="none"===s?0:a;e+=Math.max(r,i)}return this.__layout.strokeBoxSpread=o,this.__.__useArrow&&(e+=5*a),e},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:o,blur:s,backgroundBlur:r}=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 i=t=Math.ceil(t);return o&&o.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)})),r&&(i=Math.max(i,r)),this.__layout.renderShapeSpread=i,t}},D={__updateChange(){const t=this.__;if(t.__useEffect){const{shadow:e,innerShadow:o,blur:s,backgroundBlur:r}=this.__;t.__useEffect=!!(e||o||s||r)}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 o=this.__;if(o.__complex){o.__needComputePaint&&o.__computePaint();const{fill:s,stroke:i,__drawAfterFill:p}=o;if(this.__drawRenderPath(t),o.__useEffect){const n=r.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:h,innerShadow:_}=o;h&&a.shadow(this,t,n),s&&(o.__isFills?r.fills(s,this,t):r.fill(s,this,t)),p&&this.__drawAfterFill(t,e),_&&a.innerShadow(this,t,n),i&&(o.__isStrokes?r.strokes(i,this,t):r.stroke(i,this,t)),n.worldCanvas&&n.worldCanvas.recycle(),n.canvas.recycle()}else s&&(o.__isFills?r.fills(s,this,t):r.fill(s,this,t)),p&&this.__drawAfterFill(t,e),i&&(o.__isStrokes?r.strokes(i,this,t):r.stroke(i,this,t))}else o.__pathInputed?F(this,t,e):this.__drawFast(t,e)},__renderShape(t,e,o,s){if(this.__worldOpacity){t.setWorld(this.__nowWorld=this.__getNowWorld(e));const{fill:i,stroke:a}=this.__;this.__drawRenderPath(t),i&&!o&&(this.__.__pixelFill?r.fills(i,this,t):r.fill("#000000",this,t)),a&&!s&&(this.__.__pixelStroke?r.strokes(a,this,t):r.stroke("#000000",this,t))}}};function F(t,e,o){const{fill:s,stroke:i,__drawAfterFill:a}=t.__;t.__drawRenderPath(e),s&&r.fill(s,t,e),a&&t.__drawAfterFill(e,o),i&&r.stroke(i,t,e)}const W={__drawFast(t,e){const{width:o,height:s,fill:r,stroke:i,__drawAfterFill:a}=this.__;if(r&&(t.fillStyle=r,t.fillRect(0,0,o,s)),a&&this.__drawAfterFill(t,e),i){const{strokeAlign:e,__strokeWidth:r}=this.__;if(!r)return;t.setStroke(i,r,this.__);const a=r/2;switch(e){case"center":t.strokeRect(0,0,o,s);break;case"inside":t.strokeRect(a,a,o-r,s-r);break;case"outside":t.strokeRect(-a,-a,o+r,s+r)}}}};var z,M;exports.UI=z=class extends t.Leaf{get app(){return this.leafer&&this.leafer.app}get isFrame(){return!1}set scale(t){"number"==typeof t?this.scaleX=this.scaleY=t:(this.scaleX=t.x,this.scaleY=t.y)}get scale(){const{scaleX:t,scaleY:e}=this;return t!==e?{x:t,y:e}:t}get pen(){return t.pen.set(this.path=this.__.path||[]),t.pen}get editConfig(){}get editOuter(){return"EditTool"}get editInner(){return"PathEditor"}constructor(t){super(t)}reset(t){}set(t){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,o){this.__layout.update();let s=o?this.__.__pathForRender:this.__.path;if(!s){const{width:e,height:o}=this.boxBounds;(e||o)&&(t.pen.set(s=[]),this.__drawPathByBox(t.pen))}return e?t.PathConvert.toCanvasData(s,!0):s}getPathString(e,o){return t.PathConvert.stringify(this.getPath(e,o))}__onUpdateSize(){if(this.__.__input){const t=this.__;t.lazy&&this.leafer&&this.leafer.created&&!this.leafer.lazyBounds.hit(this.__world)?t.__needComputePaint=!0:t.__computePaint()}}__updateRenderPath(){if(this.__.path){const e=this.__;e.__pathForRender=e.cornerRadius?t.PathCorner.smooth(e.path,e.cornerRadius,e.cornerSmoothing):e.path,e.__useArrow&&s.addArrows(this,!e.cornerRadius)}}__drawRenderPath(t){t.beginPath(),this.__drawPathByData(t,this.__.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path)}__drawPathByData(e,o){o?t.PathDrawer.drawPathByData(e,o):this.__drawPathByBox(e)}__drawPathByBox(t){const{x:e,y:o,width:s,height:r}=this.__layout.boxBounds;if(this.__.cornerRadius){const{cornerRadius:i}=this.__;t.roundRect(e,o,s,r,"number"==typeof i?[i]:i)}else t.rect(e,o,s,r)}export(t,e){return p.export(this,t,e)}clone(){return z.one(this.toJSON())}static one(e,o,s,r,i){return t.UICreator.get(e.tag||this.prototype.__tag,e,o,s,r,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,super.destroy()}},e([t.dataProcessor(v)],exports.UI.prototype,"__",void 0),e([u()],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.opacityType(!0)],exports.UI.prototype,"visible",void 0),e([h(!1)],exports.UI.prototype,"selected",void 0),e([h(!1)],exports.UI.prototype,"disabled",void 0),e([t.dataType(!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.surfaceType("pixel")],exports.UI.prototype,"maskType",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.autoLayoutType(!1)],exports.UI.prototype,"flow",void 0),e([t.boundsType(0)],exports.UI.prototype,"padding",void 0),e([t.boundsType(0)],exports.UI.prototype,"gap",void 0),e([t.boundsType("top-left")],exports.UI.prototype,"align",void 0),e([t.boundsType(!1)],exports.UI.prototype,"wrap",void 0),e([t.boundsType("box")],exports.UI.prototype,"itemBox",void 0),e([t.boundsType(!0)],exports.UI.prototype,"inFlow",void 0),e([t.boundsType()],exports.UI.prototype,"autoWidth",void 0),e([t.boundsType()],exports.UI.prototype,"autoHeight",void 0),e([t.boundsType()],exports.UI.prototype,"autoBox",void 0),e([t.boundsType()],exports.UI.prototype,"widthRange",void 0),e([t.boundsType()],exports.UI.prototype,"heightRange",void 0),e([t.dataType(!1)],exports.UI.prototype,"draggable",void 0),e([t.dataType()],exports.UI.prototype,"dragBounds",void 0),e([t.dataType(!1)],exports.UI.prototype,"editable",void 0),e([t.hitType(!0)],exports.UI.prototype,"hittable",void 0),e([t.hitType("path")],exports.UI.prototype,"hitFill",void 0),e([t.strokeType("path")],exports.UI.prototype,"hitStroke",void 0),e([t.hitType(!1)],exports.UI.prototype,"hitBox",void 0),e([t.hitType(!0)],exports.UI.prototype,"hitChildren",void 0),e([t.hitType(!0)],exports.UI.prototype,"hitSelf",void 0),e([t.hitType()],exports.UI.prototype,"hitRadius",void 0),e([t.cursorType("")],exports.UI.prototype,"cursor",void 0),e([t.surfaceType()],exports.UI.prototype,"fill",void 0),e([t.strokeType()],exports.UI.prototype,"stroke",void 0),e([t.strokeType("inside")],exports.UI.prototype,"strokeAlign",void 0),e([t.strokeType(1)],exports.UI.prototype,"strokeWidth",void 0),e([t.strokeType(!1)],exports.UI.prototype,"strokeWidthFixed",void 0),e([t.strokeType("none")],exports.UI.prototype,"strokeCap",void 0),e([t.strokeType("miter")],exports.UI.prototype,"strokeJoin",void 0),e([t.strokeType()],exports.UI.prototype,"dashPattern",void 0),e([t.strokeType()],exports.UI.prototype,"dashOffset",void 0),e([t.strokeType(10)],exports.UI.prototype,"miterLimit",void 0),e([_("none")],exports.UI.prototype,"startArrow",void 0),e([_("none")],exports.UI.prototype,"endArrow",void 0),e([t.pathType(0)],exports.UI.prototype,"cornerRadius",void 0),e([t.pathType()],exports.UI.prototype,"cornerSmoothing",void 0),e([d()],exports.UI.prototype,"shadow",void 0),e([d()],exports.UI.prototype,"innerShadow",void 0),e([d()],exports.UI.prototype,"blur",void 0),e([d()],exports.UI.prototype,"backgroundBlur",void 0),e([d()],exports.UI.prototype,"grayscale",void 0),e([t.dataType()],exports.UI.prototype,"normalStyle",void 0),e([t.dataType()],exports.UI.prototype,"hoverStyle",void 0),e([t.dataType()],exports.UI.prototype,"pressStyle",void 0),e([t.dataType()],exports.UI.prototype,"focusStyle",void 0),e([t.dataType()],exports.UI.prototype,"selectedStyle",void 0),e([t.dataType()],exports.UI.prototype,"disabledStyle",void 0),e([t.rewrite(t.Leaf.prototype.reset)],exports.UI.prototype,"reset",null),exports.UI=z=e([t.useModule(E),t.useModule(D),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){if(e.children){const{children:o}=e;let s;delete e.children,this.children?this.clear():this.__setBranch(),super.set(e),o.forEach((e=>{s=e.__?e:t.UICreator.get(e.tag,e),this.add(s)})),e.children=o}else super.set(e)}toJSON(){const t=super.toJSON();return t.children=this.children.map((t=>t.toJSON())),t}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 H=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}}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,o){if(this.canvas)return;let s;this.__setLeafer(this),e&&t.DataHelper.assign(this.config,e);const{config:r}=this;this.initType(r.type);const i=this.canvas=t.Creator.canvas(r);this.__controllers.push(this.renderer=t.Creator.renderer(this,i,r),this.watcher=t.Creator.watcher(this,r),this.layouter=t.Creator.layouter(this,r)),this.isApp&&this.__setApp(),this.__checkAutoLayout(r),this.view=i.view,o?(this.__bindApp(o),s=o.running):(this.selector=t.Creator.selector(this),this.interaction=t.Creator.interaction(this,i,this.selector,r),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=t.Creator.hitCanvasManager()),this.canvasManager=new t.CanvasManager,s=r.start),this.hittable=r.hittable,this.fill=r.fill,this.canvasManager.add(i),this.__listenEvents(),s&&(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 o=t.DataHelper.copyAttrs({},e,t.canvasSizeAttrs);Object.keys(o).forEach((t=>this[t]=o[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:o}=this;if(!o||o.isSameSize(e))return;const s=t.DataHelper.copyAttrs({},this.canvas,t.canvasSizeAttrs);o.resize(e),this.updateLazyBounds(),this.__onResize(new t.ResizeEvent(e,s))}__onResize(e){this.emitEvent(e),t.DataHelper.copyAttrs(this.__,e,t.canvasSizeAttrs),setTimeout((()=>{this.canvasManager&&this.canvasManager.clearRecycled()}),0)}__setApp(){}__bindApp(t){this.selector=t.selector,this.interaction=t.interaction,this.canvasManager=t.canvasManager,this.hitCanvasManager=t.hitCanvasManager}__setLeafer(t){this.leafer=t,this.__level=1}__checkAutoLayout(e){e.width&&e.height||(this.autoLayout=new t.AutoBounds(e),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(e,o){return this.canvas&&(t.canvasSizeAttrs.includes(e)?this.__changeCanvasSize(e,o):"fill"===e?this.__changeFill(o):"hittable"===e&&(this.canvas.hittable=o)),super.__setAttr(e,o)}__getAttr(e){return this.canvas&&t.canvasSizeAttrs.includes(e)?this.canvas[e]:super.__getAttr(e)}__changeCanvasSize(e,o){const s=t.DataHelper.copyAttrs({},this.canvas,t.canvasSizeAttrs);s[e]=this.config[e]=o,o&&this.canvas.stopAutoLayout(),this.__doResize(s)}__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,o){e&&(t=t.bind(e));const s=this.__nextRenderWait;if(o){for(let e=0;e<s.length;e++)if(s[e]===t){s.splice(e,1);break}}else s.push(t)}zoom(t,e,o){}getValidMove(t,e){return{x:t,y:e}}getValidScale(t){return 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 o=()=>{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){H.error(t)}}};e?o():setTimeout(o)}},exports.Leafer.list=new t.LeafList,e([t.dataProcessor(T)],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 O=exports.Rect.prototype,N=exports.Group.prototype,G={},{copy:V,add:Y}=t.BoundsHelper;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(){const t=this.__updateRectRenderSpread(),e=this.__.__drawAfterFill="hide"===this.__.overflow;return t||e?t:-1}__updateRectBoxBounds(){}__updateBoxBounds(){const t=this.__;if(t.__autoSide&&this.children.length){if(this.leafer&&this.leafer.layouter.addExtra(this),super.__updateBoxBounds(),!t.__autoSize){const e=this.__layout.boxBounds;t.__autoWidth||(e.x=0,e.width=t.width),t.__autoHeight||(e.y=0,e.height=t.height)}}else this.__updateRectBoxBounds();t.flow&&this.__updateContentBounds()}__updateStrokeBounds(){}__updateRenderBounds(){if(this.__updateRectRenderBounds(),!this.__.__drawAfterFill){const{renderBounds:t}=this.__layout;V(G,t),super.__updateRenderBounds(),Y(t,G)}}__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.__renderGroup(t,e))}__drawAfterFill(t,e){t.save(),t.clip(),this.__renderGroup(t,e),t.restore(),this.__.stroke&&this.__drawRenderPath(t)}},e([t.dataProcessor(w)],exports.Box.prototype,"__",void 0),e([t.affectRenderBoundsType("show")],exports.Box.prototype,"overflow",void 0),e([t.rewrite(O.__updateStrokeSpread)],exports.Box.prototype,"__updateStrokeSpread",null),e([t.rewrite(O.__updateRenderSpread)],exports.Box.prototype,"__updateRectRenderSpread",null),e([t.rewrite(O.__updateBoxBounds)],exports.Box.prototype,"__updateRectBoxBounds",null),e([t.rewrite(O.__updateStrokeBounds)],exports.Box.prototype,"__updateStrokeBounds",null),e([t.rewrite(O.__updateRenderBounds)],exports.Box.prototype,"__updateRectRenderBounds",null),e([t.rewrite(O.__updateChange)],exports.Box.prototype,"__updateRectChange",null),e([t.rewrite(O.__render)],exports.Box.prototype,"__renderRect",null),e([t.rewrite(N.__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:j,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:o,innerRadius:s,startAngle:r,endAngle:i}=this.__,a=e/2,p=o/2,n=this.__.path=[];s?(r||i?(s<1&&J(n,a,p,a*s,p*s,0,r,i,!1),J(n,a,p,a,p,0,i,r,!0),s<1&&X(n)):(s<1&&(J(n,a,p,a*s,p*s),j(n,e,p)),J(n,a,p,a,p,0,360,0,!0)),t.Platform.ellipseToCurve&&(this.__.path=this.getPath(!0))):r||i?(j(n,a,p),J(n,a,p,a,p,0,r,i,!1),X(n)):J(n,a,p,a,p)}},e([t.dataProcessor(b)],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:ot}=t.PathBounds;exports.Line=class extends exports.UI{get __tag(){return"Line"}get toPoint(){const{width:e,rotation:o}=this.__,s=t.getPointData();return e&&(s.x=e),o&&Q(s,o),s}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.__.path=[];this.__.points?q(t,this.__.points,this.__.closed):(K(t,0,0),$(t,this.width,0))}__updateRenderPath(){const t=this.__;!this.pathInputed&&t.points&&t.curve?(q(t.__pathForRender=[],t.points,t.curve,t.closed),t.__useArrow&&s.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?ot(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:st,cos:rt,PI:it}=Math,{moveTo:at,lineTo:pt,closePath:nt,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:o,sides:s}=this.__,r=e/2,i=o/2;at(t,r,0);for(let e=1;e<s;e++)pt(t,r+r*st(2*e*it/s),i-i*rt(2*e*it/s))}nt(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:o,innerRadius:s}=this.__,r=t/2,i=e/2,a=this.__.path=[];ct(a,r,0);for(let t=1;t<2*o;t++)yt(a,r+(t%2==0?r:r*s)*dt(t*ut/o),i-(t%2==0?i:i*s)*lt(t*ut/o));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(A)],exports.Image.prototype,"__",void 0),e([t.boundsType("")],exports.Image.prototype,"url",void 0),exports.Image=e([t.registerUI()],exports.Image),exports.Canvas=class extends exports.Rect{get __tag(){return"Canvas"}constructor(e){super(e),this.canvas=t.Creator.canvas(this.__),this.context=this.canvas.context,this.__.__drawAfterFill=!0}draw(e,o,s,r){e.__layout.update();const i=new t.Matrix(e.__world).invert(),a=new t.Matrix;o&&a.translate(o.x,o.y),s&&("number"==typeof s?a.scale(s):a.scale(s.x,s.y)),r&&a.rotate(r),i.multiplyParent(a),e.__render(this.canvas,{matrix:i.withScale()}),this.paint()}paint(){this.forceUpdate("fill")}__drawAfterFill(t,e){const o=this.canvas.view,{width:s,height:r}=this;this.__.cornerRadius?(t.save(),t.clip(),t.drawImage(this.canvas.view,0,0,o.width,o.height,0,0,s,r),t.restore()):t.drawImage(this.canvas.view,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=null,this.context=null),super.destroy()}},e([t.dataProcessor(L)],exports.Canvas.prototype,"__",void 0),e([l(100)],exports.Canvas.prototype,"width",void 0),e([l(100)],exports.Canvas.prototype,"height",void 0),e([l(t.Platform.devicePixelRatio)],exports.Canvas.prototype,"pixelRatio",void 0),e([l(!0)],exports.Canvas.prototype,"smooth",void 0),e([l()],exports.Canvas.prototype,"contextSettings",void 0),e([t.hitType("all")],exports.Canvas.prototype,"hitFill",void 0),exports.Canvas=e([t.registerUI()],exports.Canvas);const{copyAndSpread:vt,includes:gt,isSame:ft,spread:wt,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,__baseLine:o,__textDrawData:s}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):s.rows.forEach((s=>t.rect(s.x,s.y-o,s.width,e)))}__drawPathByData(t,e){const{x:o,y:s,width:r,height:i}=this.__layout.boxBounds;t.rect(o,s,r,i)}__drawRenderPath(t){t.font=this.__.__font}__updateTextDrawData(){const t=this.__;t.__textDrawData=o.getDrawData(t.text,this.__)}__updateBoxBounds(){const e=this.__,o=this.__layout,{lineHeight:s,letterSpacing:r,fontFamily:i,fontSize:a,fontWeight:p,italic:n,textCase:h,textOverflow:_,padding:d}=e,l=e.__autoWidth,u=e.__autoHeight;e.__lineHeight=g.number(s,a),e.__letterSpacing=g.number(r,a),e.__padding=d?t.MathHelper.fourNumber(d):void 0,e.__baseLine=e.__lineHeight-(e.__lineHeight-.7*a)/2,e.__font=`${n?"italic ":""}${"small-caps"===h?"small-caps ":""}${"normal"!==p?p+" ":""}${a}px ${i}`,e.__clipText="show"!==_&&!e.__autoSize,this.__updateTextDrawData();const{bounds:c}=e.__textDrawData,y=o.boxBounds;if(e.__lineHeight<a&&wt(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,o,s,r]=e.__padding;l&&(y.x-=r,y.width+=o+r),u&&(y.y-=t,y.height+=s+t)}this.__updateNaturalSize()}else super.__updateBoxBounds();n&&(y.width+=.16*a);const x=gt(y,c)?y:c;ft(x,o.contentBounds)?e.__textBoxBounds=x:(o.contentBounds=x,o.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(C)],exports.Text.prototype,"__",void 0),e([t.boundsType(0)],exports.Text.prototype,"width",void 0),e([t.boundsType(0)],exports.Text.prototype,"height",void 0),e([t.surfaceType("#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:150})],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("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(U)],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,o,s,r,i){return this}quadraticCurveTo(t,e,o,s){return this}closePath(){return this}rect(t,e,o,s){return this}roundRect(t,e,o,s,r){return this}ellipse(t,e,o,s,r,i,a,p){return this}arc(t,e,o,s,r,i){return this}arcTo(t,e,o,s,r){return this}drawEllipse(t,e,o,s,r,i,a,p){return this}drawArc(t,e,o,s,r,i){return this}drawPoints(t,e,o){return this}clearPath(){return this}paint(){this.pathElement.forceUpdate("path")}},e([t.dataProcessor(B)],exports.Pen.prototype,"__",void 0),e([(e,o)=>{t.defineKey(e,o,{get(){return this.__path}})}],exports.Pen.prototype,"path",void 0),exports.Pen=e([t.useModule(t.PathCreator,["set","beginPath","path"]),t.registerUI()],exports.Pen);exports.BoxData=w,exports.CanvasData=L,exports.ColorConvert={},exports.Effect=a,exports.EllipseData=b,exports.Export=p,exports.FrameData=m,exports.GroupData=f,exports.ImageData=A,exports.LeaferData=T,exports.LineData=I,exports.Paint=r,exports.PaintGradient={},exports.PaintImage=i,exports.PathArrow=s,exports.PathData=U,exports.PenData=B,exports.PolygonData=P,exports.RectData=R,exports.RectRender=W,exports.StarData=S,exports.State=n,exports.TextConvert=o,exports.TextData=C,exports.UIBounds=E,exports.UIData=v,exports.UIRender=D,exports.UnitConvert=g,exports.arrowType=_,exports.effectType=d,exports.resizeType=l,exports.stateType=h,exports.version="1.0.0-rc.23",exports.zoomLayerType=u,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,o,s){var r,i=arguments.length,a=i<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,o):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,s);else for(var n=t.length-1;n>=0;n--)(r=t[n])&&(a=(i<3?r(a):i>3?r(e,o,a):r(e,o))||a);return i>3&&a&&Object.defineProperty(e,o,a),a}"function"==typeof SuppressedError&&SuppressedError;const o={},s={},r={},i={},a={},n={},p={};function h(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),this.waitLeafer((()=>{p.setStyle&&p.setStyle(this,e+"Style",t)}))}})))}function _(e){return t.decorateLeafAttr(e,(e=>t.attr({set(o){if(this.__setAttr(e,o)){const e=this.__;e.__useArrow="none"!==e.startArrow||"none"!==e.endArrow,t.doStrokeType(this)}}})))}function d(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 l(e){return t.decorateLeafAttr(e,(e=>t.attr({set(t){this.__setAttr(e,t),this.__layout.boxChanged||this.__layout.boxChange(),this.__updateSize()}})))}function u(){return(e,o)=>{const s="_"+o;t.defineKey(e,o,{set(t){this.isLeafer&&(this[s]=t)},get(){return this.isApp?this.tree.zoomLayer:this.isLeafer?this[s]||this:this.leafer&&this.leafer.zoomLayer}})}}const{parse:c}=t.PathConvert,y={},x=t.Debug.get("UIData");class v extends t.LeafData{get __strokeWidth(){const{strokeWidth:t,strokeWidthFixed:e}=this;if(e){const e=this.__leaf;let{scaleX:o}=e.__nowWorld||e.__world;return o<0&&(o=-o),o>1?t/o: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.__leaf.leafer&&(this.__leaf.leafer.watcher.hasVisible=!0),this._visible=t}setWidth(t){t<0?(this._width=-t,this.__leaf.scaleX*=-1,x.warn("width < 0, instead -scaleX ",this)):this._width=t}setHeight(t){t<0?(this._height=-t,this.__leaf.scaleY*=-1,x.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=y)):(this.__isFills&&(this.__removeInput("fill"),i.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=y)):(this.__isStrokes&&(this.__removeInput("stroke"),i.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=c(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&&r.compute("fill",this.__leaf),e&&r.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 f extends v{}class w extends f{get __boxStroke(){return!this.__pathInputed}}class T extends f{}class m extends w{}class I extends v{}class R extends v{get __boxStroke(){return!this.__pathInputed}}class b extends v{get __boxStroke(){return!this.__pathInputed}}class P extends v{}class S extends v{}class B extends v{}class U 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 C 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:"strench",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 R{}const E={__updateStrokeSpread(){let t=0,e=0;const o=this.__,{strokeAlign:s,strokeWidth:r}=o;if((o.stroke||"all"===o.hitStroke)&&r&&"inside"!==s&&(e=t="center"===s?r/2:r,!o.__boxStroke)){const e=o.__isLinePath?0:10*t,s="none"===o.strokeCap?0:r;t+=Math.max(e,s)}return o.__useArrow&&(t+=5*r),this.__layout.strokeBoxSpread=e,t},__updateRenderSpread(){let t=0;const{shadow:e,innerShadow:o,blur:s,backgroundBlur:r}=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 i=t=Math.ceil(t);return o&&o.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)})),r&&(i=Math.max(i,r)),this.__layout.renderShapeSpread=i,t+(this.__layout.strokeSpread||0)}},D={__updateChange(){const t=this.__;if(t.__useEffect){const{shadow:e,innerShadow:o,blur:s,backgroundBlur:r}=this.__;t.__useEffect=!!(e||o||s||r)}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 o=this.__;if(o.__complex){o.__needComputePaint&&o.__computePaint();const{fill:s,stroke:i,__drawAfterFill:n}=o;if(this.__drawRenderPath(t),o.__useEffect){const p=r.shape(this,t,e);this.__nowWorld=this.__getNowWorld(e);const{shadow:h,innerShadow:_}=o;h&&a.shadow(this,t,p),s&&(o.__isFills?r.fills(s,this,t):r.fill(s,this,t)),n&&this.__drawAfterFill(t,e),_&&a.innerShadow(this,t,p),i&&(o.__isStrokes?r.strokes(i,this,t):r.stroke(i,this,t)),p.worldCanvas&&p.worldCanvas.recycle(),p.canvas.recycle()}else s&&(o.__isFills?r.fills(s,this,t):r.fill(s,this,t)),n&&this.__drawAfterFill(t,e),i&&(o.__isStrokes?r.strokes(i,this,t):r.stroke(i,this,t))}else o.__pathInputed?F(this,t,e):this.__drawFast(t,e)},__renderShape(t,e,o,s){if(this.__worldOpacity){t.setWorld(this.__nowWorld=this.__getNowWorld(e));const{fill:i,stroke:a}=this.__;this.__drawRenderPath(t),i&&!o&&(this.__.__pixelFill?r.fills(i,this,t):r.fill("#000000",this,t)),a&&!s&&(this.__.__pixelStroke?r.strokes(a,this,t):r.stroke("#000000",this,t))}}};function F(t,e,o){const{fill:s,stroke:i,__drawAfterFill:a}=t.__;t.__drawRenderPath(e),s&&r.fill(s,t,e),a&&t.__drawAfterFill(e,o),i&&r.stroke(i,t,e)}const W={__drawFast(t,e){let{width:o,height:s,fill:r,stroke:i,__drawAfterFill:a}=this.__;if(r&&(t.fillStyle=r,t.fillRect(0,0,o,s)),a&&this.__drawAfterFill(t,e),i){const{strokeAlign:r,__strokeWidth:a}=this.__;if(!a)return;t.setStroke(i,a,this.__);const n=a/2;switch(r){case"center":t.strokeRect(0,0,o,s);break;case"inside":o-=a,s-=a,o<0||s<0?(t.save(),this.__clip(t,e),t.strokeRect(n,n,o,s),t.restore()):t.strokeRect(n,n,o,s);break;case"outside":t.strokeRect(-n,-n,o+a,s+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(t){"number"==typeof t?this.scaleX=this.scaleY=t:(this.scaleX=t.x,this.scaleY=t.y)}get scale(){const{scaleX:t,scaleY:e}=this;return t!==e?{x:t,y:e}:t}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){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,o){this.__layout.update();let s=o?this.__.__pathForRender:this.__.path;return s||(t.pen.set(s=[]),this.__drawPathByBox(t.pen)),e?t.PathConvert.toCanvasData(s,!0):s}getPathString(e,o){return t.PathConvert.stringify(this.getPath(e,o))}load(){this.__.__computePaint()}__onUpdateSize(){if(this.__.__input){const t=this.__;t.lazy&&this.leafer&&this.leafer.created&&!this.leafer.lazyBounds.hit(this.__world)?t.__needComputePaint=!0:t.__computePaint()}}__updateRenderPath(){if(this.__.path){const e=this.__;e.__pathForRender=e.cornerRadius?t.PathCorner.smooth(e.path,e.cornerRadius,e.cornerSmoothing):e.path,e.__useArrow&&s.addArrows(this,!e.cornerRadius)}}__drawRenderPath(t){t.beginPath(),this.__drawPathByData(t,this.__.__pathForRender)}__drawPath(t){t.beginPath(),this.__drawPathByData(t,this.__.path)}__drawPathByData(e,o){o?t.PathDrawer.drawPathByData(e,o):this.__drawPathByBox(e)}__drawPathByBox(t){const{x:e,y:o,width:s,height:r}=this.__layout.boxBounds;if(this.__.cornerRadius){const{cornerRadius:i}=this.__;t.roundRect(e,o,s,r,"number"==typeof i?[i]:i)}else t.rect(e,o,s,r)}export(t,e){return n.export(this,t,e)}clone(){return z.one(this.toJSON())}static one(e,o,s,r,i){return t.UICreator.get(e.tag||this.prototype.__tag,e,o,s,r,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,super.destroy()}},e([t.dataProcessor(v)],exports.UI.prototype,"__",void 0),e([u()],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([h(!1)],exports.UI.prototype,"selected",void 0),e([h(!1)],exports.UI.prototype,"disabled",void 0),e([t.dataType(!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.autoLayoutType(!1)],exports.UI.prototype,"flow",void 0),e([t.boundsType(0)],exports.UI.prototype,"padding",void 0),e([t.boundsType(0)],exports.UI.prototype,"gap",void 0),e([t.boundsType("top-left")],exports.UI.prototype,"flowAlign",void 0),e([t.boundsType(!1)],exports.UI.prototype,"flowWrap",void 0),e([t.boundsType("box")],exports.UI.prototype,"itemBox",void 0),e([t.boundsType(!0)],exports.UI.prototype,"inFlow",void 0),e([t.boundsType()],exports.UI.prototype,"autoWidth",void 0),e([t.boundsType()],exports.UI.prototype,"autoHeight",void 0),e([t.boundsType()],exports.UI.prototype,"autoBox",void 0),e([t.boundsType()],exports.UI.prototype,"widthRange",void 0),e([t.boundsType()],exports.UI.prototype,"heightRange",void 0),e([t.dataType(!1)],exports.UI.prototype,"draggable",void 0),e([t.dataType()],exports.UI.prototype,"dragBounds",void 0),e([t.dataType(!1)],exports.UI.prototype,"editable",void 0),e([t.hitType(!0)],exports.UI.prototype,"hittable",void 0),e([t.hitType("path")],exports.UI.prototype,"hitFill",void 0),e([t.strokeType("path")],exports.UI.prototype,"hitStroke",void 0),e([t.hitType(!1)],exports.UI.prototype,"hitBox",void 0),e([t.hitType(!0)],exports.UI.prototype,"hitChildren",void 0),e([t.hitType(!0)],exports.UI.prototype,"hitSelf",void 0),e([t.hitType()],exports.UI.prototype,"hitRadius",void 0),e([t.cursorType("")],exports.UI.prototype,"cursor",void 0),e([t.surfaceType()],exports.UI.prototype,"fill",void 0),e([t.strokeType()],exports.UI.prototype,"stroke",void 0),e([t.strokeType("inside")],exports.UI.prototype,"strokeAlign",void 0),e([t.strokeType(1)],exports.UI.prototype,"strokeWidth",void 0),e([t.strokeType(!1)],exports.UI.prototype,"strokeWidthFixed",void 0),e([t.strokeType("none")],exports.UI.prototype,"strokeCap",void 0),e([t.strokeType("miter")],exports.UI.prototype,"strokeJoin",void 0),e([t.strokeType()],exports.UI.prototype,"dashPattern",void 0),e([t.strokeType()],exports.UI.prototype,"dashOffset",void 0),e([t.strokeType(10)],exports.UI.prototype,"miterLimit",void 0),e([_("none")],exports.UI.prototype,"startArrow",void 0),e([_("none")],exports.UI.prototype,"endArrow",void 0),e([t.pathType(0)],exports.UI.prototype,"cornerRadius",void 0),e([t.pathType()],exports.UI.prototype,"cornerSmoothing",void 0),e([d()],exports.UI.prototype,"shadow",void 0),e([d()],exports.UI.prototype,"innerShadow",void 0),e([d()],exports.UI.prototype,"blur",void 0),e([d()],exports.UI.prototype,"backgroundBlur",void 0),e([d()],exports.UI.prototype,"grayscale",void 0),e([t.dataType()],exports.UI.prototype,"normalStyle",void 0),e([t.dataType()],exports.UI.prototype,"hoverStyle",void 0),e([t.dataType()],exports.UI.prototype,"pressStyle",void 0),e([t.dataType()],exports.UI.prototype,"focusStyle",void 0),e([t.dataType()],exports.UI.prototype,"selectedStyle",void 0),e([t.dataType()],exports.UI.prototype,"disabledStyle",void 0),e([t.rewrite(t.Leaf.prototype.reset)],exports.UI.prototype,"reset",null),exports.UI=z=e([t.useModule(E),t.useModule(D),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){if(e.children){const{children:o}=e;let s;delete e.children,this.children?this.clear():this.__setBranch(),super.set(e),o.forEach((e=>{s=e.__?e:t.UICreator.get(e.tag,e),this.add(s)})),e.children=o}else super.set(e)}toJSON(){const t=super.toJSON();return t.children=this.children.map((t=>t.toJSON())),t}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 H=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,o){if(this.canvas)return;let s;this.__setLeafer(this),e&&t.DataHelper.assign(this.config,e);const{config:r}=this;this.initType(r.type);const i=this.canvas=t.Creator.canvas(r);this.__controllers.push(this.renderer=t.Creator.renderer(this,i,r),this.watcher=t.Creator.watcher(this,r),this.layouter=t.Creator.layouter(this,r)),this.isApp&&this.__setApp(),this.__checkAutoLayout(r),this.view=i.view,o?(this.__bindApp(o),s=o.running):(this.selector=t.Creator.selector(this),this.interaction=t.Creator.interaction(this,i,this.selector,r),this.interaction&&(this.__controllers.unshift(this.interaction),this.hitCanvasManager=t.Creator.hitCanvasManager()),this.canvasManager=new t.CanvasManager,s=r.start),this.hittable=r.hittable,this.fill=r.fill,this.canvasManager.add(i),this.__listenEvents(),s&&(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 o=t.DataHelper.copyAttrs({},e,t.canvasSizeAttrs);Object.keys(o).forEach((t=>this[t]=o[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:o}=this;if(!o||o.isSameSize(e))return;const s=t.DataHelper.copyAttrs({},this.canvas,t.canvasSizeAttrs);o.resize(e),this.updateLazyBounds(),this.__onResize(new t.ResizeEvent(e,s))}__onResize(e){this.emitEvent(e),t.DataHelper.copyAttrs(this.__,e,t.canvasSizeAttrs),setTimeout((()=>{this.canvasManager&&this.canvasManager.clearRecycled()}),0)}__setApp(){}__bindApp(t){this.selector=t.selector,this.interaction=t.interaction,this.canvasManager=t.canvasManager,this.hitCanvasManager=t.hitCanvasManager}__setLeafer(t){this.leafer=t,this.__level=1}__checkAutoLayout(e){e.width&&e.height||(this.autoLayout=new t.AutoBounds(e),this.canvas.startAutoLayout(this.autoLayout,this.__onResize.bind(this)))}__setAttr(e,o){return this.canvas&&(t.canvasSizeAttrs.includes(e)?this.__changeCanvasSize(e,o):"fill"===e?this.__changeFill(o):"hittable"===e&&(this.parent||(this.canvas.hittable=o))),super.__setAttr(e,o)}__getAttr(e){return this.canvas&&t.canvasSizeAttrs.includes(e)?this.canvas[e]:super.__getAttr(e)}__changeCanvasSize(e,o){const s=t.DataHelper.copyAttrs({},this.canvas,t.canvasSizeAttrs);s[e]=this.config[e]=o,o&&this.canvas.stopAutoLayout(),this.__doResize(s)}__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,o){e&&(t=t.bind(e));const s=this.__nextRenderWait;if(o){for(let e=0;e<s.length;e++)if(s[e]===t){s.splice(e,1);break}}else s.push(t)}zoom(t,e,o){}getValidMove(t,e){return{x:t,y:e}}getValidScale(t){return t}getWorldPointByClient(t,e){return this.interaction&&this.interaction.getLocal(t,e)}__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 o=()=>{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){H.error(t)}}};e?o():setTimeout(o)}},exports.Leafer.list=new t.LeafList,e([t.dataProcessor(T)],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 O=exports.Rect.prototype,N=exports.Group.prototype,G={},{copy:V,add:Y,includes:j}=t.BoundsHelper;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(){const t=this.__;if(this.children.length){if(t.__autoSide){if(this.leafer&&this.leafer.ready&&this.leafer.layouter.addExtra(this),super.__updateBoxBounds(),!t.__autoSize){const e=this.__layout.boxBounds;t.__autoWidth||(e.x=0,e.width=t.width),t.__autoHeight||(e.y=0,e.height=t.height)}}else this.__updateRectBoxBounds();t.flow&&this.__updateContentBounds()}else this.__updateRectBoxBounds()}__updateStrokeBounds(){}__updateRenderBounds(){let t;const{renderBounds:e}=this.__layout;this.children.length?(super.__updateRenderBounds(),V(G,e),this.__updateRectRenderBounds(),t=!j(e,G)||void 0):this.__updateRectRenderBounds(),this.isOverflow!==t&&(this.isOverflow=t),t&&!(this.__.__drawAfterFill="hide"===this.__.overflow)&&Y(e,G)}__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:o}=this.children;this.isOverflow?(t.save(),t.clip(),o&&this.__renderGroup(t,e),t.restore()):o&&this.__renderGroup(t,e),this.__.stroke&&o&&(t.setWorld(this.__nowWorld),this.__drawRenderPath(t))}},e([t.dataProcessor(w)],exports.Box.prototype,"__",void 0),e([t.affectRenderBoundsType("show")],exports.Box.prototype,"overflow",void 0),e([t.rewrite(O.__updateStrokeSpread)],exports.Box.prototype,"__updateStrokeSpread",null),e([t.rewrite(O.__updateRenderSpread)],exports.Box.prototype,"__updateRectRenderSpread",null),e([t.rewrite(O.__updateBoxBounds)],exports.Box.prototype,"__updateRectBoxBounds",null),e([t.rewrite(O.__updateStrokeBounds)],exports.Box.prototype,"__updateStrokeBounds",null),e([t.rewrite(O.__updateRenderBounds)],exports.Box.prototype,"__updateRectRenderBounds",null),e([t.rewrite(O.__updateChange)],exports.Box.prototype,"__updateRectChange",null),e([t.rewrite(O.__render)],exports.Box.prototype,"__renderRect",null),e([t.rewrite(N.__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: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:o,innerRadius:s,startAngle:r,endAngle:i}=this.__,a=e/2,n=o/2,p=this.__.path=[];s?(r||i?(s<1&&K(p,a,n,a*s,n*s,0,r,i,!1),K(p,a,n,a,n,0,i,r,!0),s<1&&J(p)):(s<1&&(K(p,a,n,a*s,n*s),X(p,e,n)),K(p,a,n,a,n,0,360,0,!0)),t.Platform.ellipseToCurve&&(this.__.path=this.getPath(!0))):r||i?(X(p,a,n),K(p,a,n,a,n,0,r,i,!1),J(p)):K(p,a,n,a,n)}},e([t.dataProcessor(b)],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:ot}=t.PointHelper,{toBounds:st}=t.PathBounds;exports.Line=class extends exports.UI{get __tag(){return"Line"}get toPoint(){const{width:e,rotation:o}=this.__,s=t.getPointData();return e&&(s.x=e),o&&Z(s,o),s}set toPoint(t){this.width=et(ot,t),this.rotation=tt(ot,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&&s.addArrows(this,!1)):super.__updateRenderPath()}__updateBoxBounds(){this.points?st(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:rt,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:o,sides:s}=this.__,r=e/2,i=o/2;nt(t,r,0);for(let e=1;e<s;e++)pt(t,r+r*rt(2*e*at/s),i-i*it(2*e*at/s))}ht(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(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:vt}=t.PathCommandDataHelper;exports.Star=class extends exports.UI{get __tag(){return"Star"}constructor(t){super(t)}__updatePath(){const{width:t,height:e,corners:o,innerRadius:s}=this.__,r=t/2,i=e/2,a=this.__.path=[];yt(a,r,0);for(let t=1;t<2*o;t++)xt(a,r+(t%2==0?r:r*s)*lt(t*ct/o),i-(t%2==0?i:i*s)*ut(t*ct/o));vt(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(A)],exports.Image.prototype,"__",void 0),e([t.boundsType("")],exports.Image.prototype,"url",void 0),exports.Image=e([t.registerUI()],exports.Image),exports.Canvas=class extends exports.Rect{get __tag(){return"Canvas"}constructor(e){super(e),this.canvas=t.Creator.canvas(this.__),this.context=this.canvas.context,this.__.__drawAfterFill=!0}draw(e,o,s,r){e.__layout.update();const i=new t.Matrix(e.__world).invert(),a=new t.Matrix;o&&a.translate(o.x,o.y),s&&("number"==typeof s?a.scale(s):a.scale(s.x,s.y)),r&&a.rotate(r),i.multiplyParent(a),e.__render(this.canvas,{matrix:i.withScale()}),this.paint()}paint(){this.forceUpdate("fill")}__drawAfterFill(t,e){const o=this.canvas.view,{width:s,height:r}=this;this.__.cornerRadius?(t.save(),t.clip(),t.drawImage(this.canvas.view,0,0,o.width,o.height,0,0,s,r),t.restore()):t.drawImage(this.canvas.view,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=null,this.context=null),super.destroy()}},e([t.dataProcessor(L)],exports.Canvas.prototype,"__",void 0),e([l(100)],exports.Canvas.prototype,"width",void 0),e([l(100)],exports.Canvas.prototype,"height",void 0),e([l(t.Platform.devicePixelRatio)],exports.Canvas.prototype,"pixelRatio",void 0),e([l(!0)],exports.Canvas.prototype,"smooth",void 0),e([l()],exports.Canvas.prototype,"contextSettings",void 0),e([t.hitType("all")],exports.Canvas.prototype,"hitFill",void 0),exports.Canvas=e([t.registerUI()],exports.Canvas);const{copyAndSpread:gt,includes:ft,isSame:wt,spread:Tt,setList:mt}=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,__baseLine:o,__textDrawData:s}=this.__;t.beginPath(),this.__.__letterSpacing<0?this.__drawPathByData(t):s.rows.forEach((s=>t.rect(s.x,s.y-o,s.width,e)))}__drawPathByData(t,e){const{x:o,y:s,width:r,height:i}=this.__layout.boxBounds;t.rect(o,s,r,i)}__drawRenderPath(t){t.font=this.__.__font}__updateTextDrawData(){const t=this.__;t.__textDrawData=o.getDrawData(t.text,this.__)}__updateBoxBounds(){const e=this.__,o=this.__layout,{lineHeight:s,letterSpacing:r,fontFamily:i,fontSize:a,fontWeight:n,italic:p,textCase:h,textOverflow:_,padding:d}=e,l=e.__autoWidth,u=e.__autoHeight;e.__lineHeight=g.number(s,a),e.__letterSpacing=g.number(r,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=o.boxBounds;if(e.__lineHeight<a&&Tt(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,o,s,r]=e.__padding;l&&(y.x-=r,y.width+=o+r),u&&(y.y-=t,y.height+=s+t)}this.__updateNaturalSize()}else super.__updateBoxBounds();p&&(y.width+=.16*a);const x=ft(y,c)?y:c;wt(x,o.contentBounds)?e.__textBoxBounds=x:(o.contentBounds=x,o.renderChanged=!0,mt(e.__textBoxBounds={},[y,c]))}__updateRenderSpread(){let t=super.__updateRenderSpread();return t||(t=this.__layout.boxBounds===this.__layout.contentBounds?0:1),t}__updateRenderBounds(){gt(this.__layout.renderBounds,this.__.__textBoxBounds,this.__layout.renderSpread)}},e([t.dataProcessor(C)],exports.Text.prototype,"__",void 0),e([t.boundsType(0)],exports.Text.prototype,"width",void 0),e([t.boundsType(0)],exports.Text.prototype,"height",void 0),e([t.surfaceType("#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("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,o,s,r,i){return this}quadraticCurveTo(t,e,o,s){return this}closePath(){return this}rect(t,e,o,s){return this}roundRect(t,e,o,s,r){return this}ellipse(t,e,o,s,r,i,a,n){return this}arc(t,e,o,s,r,i){return this}arcTo(t,e,o,s,r){return this}drawEllipse(t,e,o,s,r,i,a,n){return this}drawArc(t,e,o,s,r,i){return this}drawPoints(t,e,o){return this}clearPath(){return this}paint(){this.pathElement.forceUpdate("path")}},e([t.dataProcessor(U)],exports.Pen.prototype,"__",void 0),e([(e,o)=>{t.defineKey(e,o,{get(){return this.__path}})}],exports.Pen.prototype,"path",void 0),exports.Pen=e([t.useModule(t.PathCreator,["set","beginPath","path"]),t.registerUI()],exports.Pen),exports.BoxData=w,exports.CanvasData=L,exports.ColorConvert={},exports.Effect=a,exports.EllipseData=b,exports.Export=n,exports.FrameData=m,exports.GroupData=f,exports.ImageData=A,exports.LeaferData=T,exports.LineData=I,exports.Paint=r,exports.PaintGradient={},exports.PaintImage=i,exports.PathArrow=s,exports.PathData=B,exports.PenData=U,exports.PolygonData=P,exports.RectData=R,exports.RectRender=W,exports.StarData=S,exports.State=p,exports.TextConvert=o,exports.TextData=C,exports.UIBounds=E,exports.UIData=v,exports.UIRender=D,exports.UnitConvert=g,exports.arrowType=_,exports.effectType=d,exports.resizeType=l,exports.stateType=h,exports.zoomLayerType=u,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.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.25",
|
|
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.0-rc.
|
|
33
|
-
"@leafer-ui/display": "1.0.0-rc.
|
|
34
|
-
"@leafer-ui/display-module": "1.0.0-rc.
|
|
35
|
-
"@leafer-ui/decorator": "1.0.0-rc.
|
|
36
|
-
"@leafer-ui/external": "1.0.0-rc.
|
|
32
|
+
"@leafer/core": "1.0.0-rc.25",
|
|
33
|
+
"@leafer-ui/display": "1.0.0-rc.25",
|
|
34
|
+
"@leafer-ui/display-module": "1.0.0-rc.25",
|
|
35
|
+
"@leafer-ui/decorator": "1.0.0-rc.25",
|
|
36
|
+
"@leafer-ui/external": "1.0.0-rc.25"
|
|
37
37
|
}
|
|
38
38
|
}
|
package/src/index.ts
CHANGED