@leafer/worker 1.9.3 → 1.9.5
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/dist/worker.js +187 -185
- package/dist/worker.min.js +1 -1
- package/dist/worker.min.js.map +1 -1
- package/dist/worker.module.js +191 -188
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +22 -22
package/dist/worker.module.js
CHANGED
|
@@ -54,7 +54,7 @@ function isUndefined(value) {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
function isNull(value) {
|
|
57
|
-
return value
|
|
57
|
+
return value == null;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
function isString(value) {
|
|
@@ -136,6 +136,9 @@ class LeafData {
|
|
|
136
136
|
const {path: path} = this;
|
|
137
137
|
return path && path.length === 6 && path[0] === 1;
|
|
138
138
|
}
|
|
139
|
+
get __usePathBox() {
|
|
140
|
+
return this.__pathInputed;
|
|
141
|
+
}
|
|
139
142
|
get __blendMode() {
|
|
140
143
|
if (this.eraser && this.eraser !== "path") return "destination-out";
|
|
141
144
|
const {blendMode: blendMode} = this;
|
|
@@ -304,6 +307,9 @@ const MathHelper = {
|
|
|
304
307
|
num = round$6(num * a) / a;
|
|
305
308
|
return num === -0 ? 0 : num;
|
|
306
309
|
},
|
|
310
|
+
sign(num) {
|
|
311
|
+
return num < 0 ? -1 : 1;
|
|
312
|
+
},
|
|
307
313
|
getScaleData(scale, size, originSize, scaleData) {
|
|
308
314
|
if (!scaleData) scaleData = {};
|
|
309
315
|
if (size) {
|
|
@@ -659,7 +665,7 @@ const M$a = MatrixHelper;
|
|
|
659
665
|
|
|
660
666
|
const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
|
|
661
667
|
|
|
662
|
-
const {sin: sin$5, cos: cos$5, abs: abs$
|
|
668
|
+
const {sin: sin$5, cos: cos$5, abs: abs$7, sqrt: sqrt$4, atan2: atan2$2, min: min$1, round: round$5} = Math;
|
|
663
669
|
|
|
664
670
|
const PointHelper = {
|
|
665
671
|
defaultPoint: getPointData(),
|
|
@@ -752,8 +758,8 @@ const PointHelper = {
|
|
|
752
758
|
return getDistanceFrom(t.x, t.y, point.x, point.y);
|
|
753
759
|
},
|
|
754
760
|
getDistanceFrom(x1, y1, x2, y2) {
|
|
755
|
-
const x = abs$
|
|
756
|
-
const y = abs$
|
|
761
|
+
const x = abs$7(x2 - x1);
|
|
762
|
+
const y = abs$7(y2 - y1);
|
|
757
763
|
return sqrt$4(x * x + y * y);
|
|
758
764
|
},
|
|
759
765
|
getMinDistanceFrom(x1, y1, x2, y2, x3, y3) {
|
|
@@ -1131,13 +1137,13 @@ const AlignHelper = {
|
|
|
1131
1137
|
}
|
|
1132
1138
|
};
|
|
1133
1139
|
|
|
1134
|
-
const {tempPointBounds: tempPointBounds$1, setPoint: setPoint$5, addPoint: addPoint$3, toBounds: toBounds$
|
|
1140
|
+
const {tempPointBounds: tempPointBounds$1, setPoint: setPoint$5, addPoint: addPoint$3, toBounds: toBounds$3} = TwoPointBoundsHelper;
|
|
1135
1141
|
|
|
1136
1142
|
const {toOuterPoint: toOuterPoint$2} = MatrixHelper;
|
|
1137
1143
|
|
|
1138
1144
|
const {float: float$1, fourNumber: fourNumber$1} = MathHelper;
|
|
1139
1145
|
|
|
1140
|
-
const {floor: floor$3, ceil: ceil$
|
|
1146
|
+
const {floor: floor$3, ceil: ceil$3} = Math;
|
|
1141
1147
|
|
|
1142
1148
|
let right$4, bottom$3, boundsRight, boundsBottom;
|
|
1143
1149
|
|
|
@@ -1266,7 +1272,7 @@ const BoundsHelper = {
|
|
|
1266
1272
|
point$2.x = t.x;
|
|
1267
1273
|
toOuterPoint$2(matrix, point$2, toPoint$5);
|
|
1268
1274
|
addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
1269
|
-
toBounds$
|
|
1275
|
+
toBounds$3(tempPointBounds$1, to);
|
|
1270
1276
|
}
|
|
1271
1277
|
},
|
|
1272
1278
|
toInnerOf(t, matrix, to) {
|
|
@@ -1304,8 +1310,8 @@ const BoundsHelper = {
|
|
|
1304
1310
|
const {x: x, y: y} = t;
|
|
1305
1311
|
t.x = floor$3(t.x);
|
|
1306
1312
|
t.y = floor$3(t.y);
|
|
1307
|
-
t.width = x > t.x ? ceil$
|
|
1308
|
-
t.height = y > t.y ? ceil$
|
|
1313
|
+
t.width = x > t.x ? ceil$3(t.width + x - t.x) : ceil$3(t.width);
|
|
1314
|
+
t.height = y > t.y ? ceil$3(t.height + y - t.y) : ceil$3(t.height);
|
|
1309
1315
|
},
|
|
1310
1316
|
unsign(t) {
|
|
1311
1317
|
if (t.width < 0) {
|
|
@@ -1365,7 +1371,7 @@ const BoundsHelper = {
|
|
|
1365
1371
|
},
|
|
1366
1372
|
setPoints(t, points) {
|
|
1367
1373
|
points.forEach((point, index) => index === 0 ? setPoint$5(tempPointBounds$1, point.x, point.y) : addPoint$3(tempPointBounds$1, point.x, point.y));
|
|
1368
|
-
toBounds$
|
|
1374
|
+
toBounds$3(tempPointBounds$1, t);
|
|
1369
1375
|
},
|
|
1370
1376
|
setPoint(t, point) {
|
|
1371
1377
|
B.set(t, point.x, point.y);
|
|
@@ -2218,15 +2224,15 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2218
2224
|
DataHelper.copyAttrs(s, size, canvasSizeAttrs);
|
|
2219
2225
|
canvasSizeAttrs.forEach(key => s[key] || (s[key] = 1));
|
|
2220
2226
|
this.bounds = new Bounds(0, 0, this.width, this.height);
|
|
2221
|
-
|
|
2222
|
-
this.updateViewSize();
|
|
2223
|
-
this.smooth = this.config.smooth;
|
|
2224
|
-
}
|
|
2227
|
+
this.updateViewSize();
|
|
2225
2228
|
this.updateClientBounds();
|
|
2226
|
-
if (this.context
|
|
2227
|
-
this.
|
|
2228
|
-
this.
|
|
2229
|
-
|
|
2229
|
+
if (this.context) {
|
|
2230
|
+
this.smooth = this.config.smooth;
|
|
2231
|
+
if (!this.unreal && takeCanvas) {
|
|
2232
|
+
this.clearWorld(takeCanvas.bounds);
|
|
2233
|
+
this.copyWorld(takeCanvas);
|
|
2234
|
+
takeCanvas.recycle();
|
|
2235
|
+
}
|
|
2230
2236
|
}
|
|
2231
2237
|
}
|
|
2232
2238
|
updateViewSize() {}
|
|
@@ -2540,7 +2546,7 @@ const RectHelper = {
|
|
|
2540
2546
|
}
|
|
2541
2547
|
};
|
|
2542
2548
|
|
|
2543
|
-
const {sin: sin$4, cos: cos$4, atan2: atan2$1, ceil: ceil$
|
|
2549
|
+
const {sin: sin$4, cos: cos$4, hypot: hypot, atan2: atan2$1, ceil: ceil$2, abs: abs$6, PI: PI$3, sqrt: sqrt$3, pow: pow$1} = Math;
|
|
2544
2550
|
|
|
2545
2551
|
const {setPoint: setPoint$4, addPoint: addPoint$2} = TwoPointBoundsHelper;
|
|
2546
2552
|
|
|
@@ -2611,9 +2617,11 @@ const BezierHelper = {
|
|
|
2611
2617
|
const CBy = toY - y1;
|
|
2612
2618
|
let startRadian = atan2$1(BAy, BAx);
|
|
2613
2619
|
let endRadian = atan2$1(CBy, CBx);
|
|
2620
|
+
const lenBA = hypot(BAx, BAy);
|
|
2621
|
+
const lenCB = hypot(CBx, CBy);
|
|
2614
2622
|
let totalRadian = endRadian - startRadian;
|
|
2615
2623
|
if (totalRadian < 0) totalRadian += PI2;
|
|
2616
|
-
if (
|
|
2624
|
+
if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$6(totalRadian - PI$3) < 1e-12) {
|
|
2617
2625
|
if (data) data.push(L$a, x1, y1);
|
|
2618
2626
|
if (setPointBounds) {
|
|
2619
2627
|
setPoint$4(setPointBounds, fromX, fromY);
|
|
@@ -2646,7 +2654,7 @@ const BezierHelper = {
|
|
|
2646
2654
|
let totalRadian = endRadian - startRadian;
|
|
2647
2655
|
if (totalRadian < 0) totalRadian += PI2; else if (totalRadian > PI2) totalRadian -= PI2;
|
|
2648
2656
|
if (anticlockwise) totalRadian -= PI2;
|
|
2649
|
-
const parts = ceil$
|
|
2657
|
+
const parts = ceil$2(abs$6(totalRadian / PI_2));
|
|
2650
2658
|
const partRadian = totalRadian / parts;
|
|
2651
2659
|
const partRadian4Sin = sin$4(partRadian / 4);
|
|
2652
2660
|
const control = 8 / 3 * partRadian4Sin * partRadian4Sin / sin$4(partRadian / 2);
|
|
@@ -3113,7 +3121,7 @@ const {M: M$7, L: L$8, C: C$6, Q: Q$5, Z: Z$6, N: N$4, D: D$5, X: X$4, G: G$4, F
|
|
|
3113
3121
|
|
|
3114
3122
|
const {getMinDistanceFrom: getMinDistanceFrom, getRadianFrom: getRadianFrom} = PointHelper;
|
|
3115
3123
|
|
|
3116
|
-
const {tan: tan, min: min, abs: abs$
|
|
3124
|
+
const {tan: tan, min: min, abs: abs$5} = Math;
|
|
3117
3125
|
|
|
3118
3126
|
const startPoint = {};
|
|
3119
3127
|
|
|
@@ -3171,7 +3179,7 @@ const PathCommandDataHelper = {
|
|
|
3171
3179
|
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
|
|
3172
3180
|
if (!isUndefined(lastX)) {
|
|
3173
3181
|
const d = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2);
|
|
3174
|
-
radius = min(radius, min(d / 2, d / 2 * abs$
|
|
3182
|
+
radius = min(radius, min(d / 2, d / 2 * abs$5(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
|
|
3175
3183
|
}
|
|
3176
3184
|
data.push(U$4, x1, y1, x2, y2, radius);
|
|
3177
3185
|
},
|
|
@@ -3205,11 +3213,7 @@ class PathCreator {
|
|
|
3205
3213
|
this.set(path);
|
|
3206
3214
|
}
|
|
3207
3215
|
set(path) {
|
|
3208
|
-
|
|
3209
|
-
this.__path = isString(path) ? PathHelper.parse(path) : path;
|
|
3210
|
-
} else {
|
|
3211
|
-
this.__path = [];
|
|
3212
|
-
}
|
|
3216
|
+
this.__path = path ? isString(path) ? PathHelper.parse(path) : path : [];
|
|
3213
3217
|
return this;
|
|
3214
3218
|
}
|
|
3215
3219
|
beginPath() {
|
|
@@ -3377,7 +3381,7 @@ const {M: M$5, L: L$6, C: C$4, Q: Q$3, Z: Z$4, N: N$2, D: D$3, X: X$2, G: G$2, F
|
|
|
3377
3381
|
|
|
3378
3382
|
const {toTwoPointBounds: toTwoPointBounds, toTwoPointBoundsByQuadraticCurve: toTwoPointBoundsByQuadraticCurve, arcTo: arcTo$1, arc: arc, ellipse: ellipse$1} = BezierHelper;
|
|
3379
3383
|
|
|
3380
|
-
const {addPointBounds: addPointBounds, copy: copy$a, addPoint: addPoint$1, setPoint: setPoint$3, addBounds: addBounds, toBounds: toBounds$
|
|
3384
|
+
const {addPointBounds: addPointBounds, copy: copy$a, addPoint: addPoint$1, setPoint: setPoint$3, addBounds: addBounds, toBounds: toBounds$2} = TwoPointBoundsHelper;
|
|
3381
3385
|
|
|
3382
3386
|
const debug$d = Debug.get("PathBounds");
|
|
3383
3387
|
|
|
@@ -3392,7 +3396,7 @@ const setEndPoint = {};
|
|
|
3392
3396
|
const PathBounds = {
|
|
3393
3397
|
toBounds(data, setBounds) {
|
|
3394
3398
|
PathBounds.toTwoPointBounds(data, setPointBounds);
|
|
3395
|
-
toBounds$
|
|
3399
|
+
toBounds$2(setPointBounds, setBounds);
|
|
3396
3400
|
},
|
|
3397
3401
|
toTwoPointBounds(data, setPointBounds) {
|
|
3398
3402
|
if (!data || !data.length) return setPoint$3(setPointBounds, 0, 0);
|
|
@@ -3579,14 +3583,18 @@ const PathCorner = {
|
|
|
3579
3583
|
}
|
|
3580
3584
|
};
|
|
3581
3585
|
|
|
3582
|
-
|
|
3586
|
+
function path(path) {
|
|
3587
|
+
return new PathCreator(path);
|
|
3588
|
+
}
|
|
3589
|
+
|
|
3590
|
+
const pen = path();
|
|
3591
|
+
|
|
3592
|
+
PathHelper.creator = path();
|
|
3583
3593
|
|
|
3584
3594
|
PathHelper.parse = PathConvert.parse;
|
|
3585
3595
|
|
|
3586
3596
|
PathHelper.convertToCanvasData = PathConvert.toCanvasData;
|
|
3587
3597
|
|
|
3588
|
-
const pen = new PathCreator;
|
|
3589
|
-
|
|
3590
3598
|
const {drawRoundRect: drawRoundRect} = RectHelper;
|
|
3591
3599
|
|
|
3592
3600
|
function roundRect(drawer) {
|
|
@@ -3951,7 +3959,7 @@ const ImageManager = {
|
|
|
3951
3959
|
return FileHelper.alphaPixelTypes.some(item => I$1.isFormat(item, config));
|
|
3952
3960
|
},
|
|
3953
3961
|
isFormat(format, config) {
|
|
3954
|
-
if (config.format
|
|
3962
|
+
if (config.format) return config.format === format;
|
|
3955
3963
|
const {url: url} = config;
|
|
3956
3964
|
if (url.startsWith("data:")) {
|
|
3957
3965
|
if (url.startsWith("data:" + FileHelper.mineType(format))) return true;
|
|
@@ -3969,7 +3977,7 @@ const I$1 = ImageManager;
|
|
|
3969
3977
|
|
|
3970
3978
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
3971
3979
|
|
|
3972
|
-
const {floor: floor$2, max: max$
|
|
3980
|
+
const {floor: floor$2, max: max$2} = Math;
|
|
3973
3981
|
|
|
3974
3982
|
class LeaferImage {
|
|
3975
3983
|
get url() {
|
|
@@ -4045,7 +4053,7 @@ class LeaferImage {
|
|
|
4045
4053
|
getFull(_filters) {
|
|
4046
4054
|
return this.view;
|
|
4047
4055
|
}
|
|
4048
|
-
getCanvas(width, height, opacity, _filters, xGap, yGap) {
|
|
4056
|
+
getCanvas(width, height, opacity, _filters, xGap, yGap, smooth) {
|
|
4049
4057
|
width || (width = this.width);
|
|
4050
4058
|
height || (height = this.height);
|
|
4051
4059
|
if (this.cache) {
|
|
@@ -4058,9 +4066,10 @@ class LeaferImage {
|
|
|
4058
4066
|
}
|
|
4059
4067
|
if (data) return data;
|
|
4060
4068
|
}
|
|
4061
|
-
const canvas = Platform.origin.createCanvas(max$
|
|
4069
|
+
const canvas = Platform.origin.createCanvas(max$2(floor$2(width + (xGap || 0)), 1), max$2(floor$2(height + (yGap || 0)), 1));
|
|
4062
4070
|
const ctx = canvas.getContext("2d");
|
|
4063
4071
|
if (opacity) ctx.globalAlpha = opacity;
|
|
4072
|
+
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
4064
4073
|
ctx.drawImage(this.view, 0, 0, width, height);
|
|
4065
4074
|
this.cache = this.use > 1 ? {
|
|
4066
4075
|
data: canvas,
|
|
@@ -4102,7 +4111,7 @@ function createDescriptor(key, defaultValue) {
|
|
|
4102
4111
|
return {
|
|
4103
4112
|
get() {
|
|
4104
4113
|
const v = this[privateKey];
|
|
4105
|
-
return
|
|
4114
|
+
return v == null ? defaultValue : v;
|
|
4106
4115
|
},
|
|
4107
4116
|
set(value) {
|
|
4108
4117
|
this[privateKey] = value;
|
|
@@ -4388,21 +4397,21 @@ function defineDataProcessor(target, key, defaultValue) {
|
|
|
4388
4397
|
};
|
|
4389
4398
|
} else if (typeof defaultValue === "function") {
|
|
4390
4399
|
property.get = function() {
|
|
4391
|
-
|
|
4392
|
-
return v
|
|
4400
|
+
const v = this[computedKey];
|
|
4401
|
+
return v == null ? defaultValue(this.__leaf) : v;
|
|
4393
4402
|
};
|
|
4394
4403
|
} else if (isObject(defaultValue)) {
|
|
4395
4404
|
const isEmpty = isEmptyData(defaultValue);
|
|
4396
4405
|
property.get = function() {
|
|
4397
|
-
|
|
4398
|
-
return v
|
|
4406
|
+
const v = this[computedKey];
|
|
4407
|
+
return v == null ? this[computedKey] = isEmpty ? {} : DataHelper.clone(defaultValue) : v;
|
|
4399
4408
|
};
|
|
4400
4409
|
}
|
|
4401
4410
|
const isBox = target.isBranchLeaf;
|
|
4402
4411
|
if (key === "width") {
|
|
4403
4412
|
property.get = function() {
|
|
4404
4413
|
const v = this[computedKey];
|
|
4405
|
-
if (v
|
|
4414
|
+
if (v == null) {
|
|
4406
4415
|
const t = this, naturalWidth = t.__naturalWidth, leaf = t.__leaf;
|
|
4407
4416
|
if (!defaultValue || leaf.pathInputed) return leaf.boxBounds.width;
|
|
4408
4417
|
if (naturalWidth) return t._height && t.__useNaturalRatio ? t._height * naturalWidth / t.__naturalHeight : naturalWidth;
|
|
@@ -4412,7 +4421,7 @@ function defineDataProcessor(target, key, defaultValue) {
|
|
|
4412
4421
|
} else if (key === "height") {
|
|
4413
4422
|
property.get = function() {
|
|
4414
4423
|
const v = this[computedKey];
|
|
4415
|
-
if (v
|
|
4424
|
+
if (v == null) {
|
|
4416
4425
|
const t = this, naturalHeight = t.__naturalHeight, leaf = t.__leaf;
|
|
4417
4426
|
if (!defaultValue || leaf.pathInputed) return leaf.boxBounds.height;
|
|
4418
4427
|
if (naturalHeight) return t._width && t.__useNaturalRatio ? t._width * naturalHeight / t.__naturalWidth : naturalHeight;
|
|
@@ -4712,8 +4721,9 @@ const L$4 = LeafHelper;
|
|
|
4712
4721
|
|
|
4713
4722
|
const {updateAllMatrix: updateAllMatrix$4, updateMatrix: updateMatrix$4, updateAllWorldOpacity: updateAllWorldOpacity, updateAllChange: updateAllChange$1, updateChange: updateChange$1} = L$4;
|
|
4714
4723
|
|
|
4715
|
-
function getTempLocal(t,
|
|
4716
|
-
|
|
4724
|
+
function getTempLocal(t, worldPoint) {
|
|
4725
|
+
t.updateLayout();
|
|
4726
|
+
return t.parent ? PointHelper.tempToInnerOf(worldPoint, t.parent.scrollWorldTransform) : worldPoint;
|
|
4717
4727
|
}
|
|
4718
4728
|
|
|
4719
4729
|
const LeafBoundsHelper = {
|
|
@@ -5172,7 +5182,7 @@ class LeafLayout {
|
|
|
5172
5182
|
}
|
|
5173
5183
|
boxChange() {
|
|
5174
5184
|
this.boxChanged = true;
|
|
5175
|
-
this.localBoxChanged || this.localBoxChange();
|
|
5185
|
+
this.localBoxChanged ? this.boundsChanged || (this.boundsChanged = true) : this.localBoxChange();
|
|
5176
5186
|
this.hitCanvasChanged = true;
|
|
5177
5187
|
}
|
|
5178
5188
|
localBoxChange() {
|
|
@@ -5206,7 +5216,7 @@ class LeafLayout {
|
|
|
5206
5216
|
}
|
|
5207
5217
|
matrixChange() {
|
|
5208
5218
|
this.matrixChanged = true;
|
|
5209
|
-
this.localBoxChanged || this.localBoxChange();
|
|
5219
|
+
this.localBoxChanged ? this.boundsChanged || (this.boundsChanged = true) : this.localBoxChange();
|
|
5210
5220
|
}
|
|
5211
5221
|
surfaceChange() {
|
|
5212
5222
|
this.surfaceChanged = true;
|
|
@@ -5731,7 +5741,7 @@ const {updateBounds: updateBounds$2} = BranchHelper;
|
|
|
5731
5741
|
|
|
5732
5742
|
const {toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$2, copy: copy$7} = BoundsHelper;
|
|
5733
5743
|
|
|
5734
|
-
const {toBounds: toBounds$
|
|
5744
|
+
const {toBounds: toBounds$1} = PathBounds;
|
|
5735
5745
|
|
|
5736
5746
|
const LeafBounds = {
|
|
5737
5747
|
__updateWorldBounds() {
|
|
@@ -5803,8 +5813,8 @@ const LeafBounds = {
|
|
|
5803
5813
|
__updateBoxBounds(_secondLayout, _bounds) {
|
|
5804
5814
|
const b = this.__layout.boxBounds;
|
|
5805
5815
|
const data = this.__;
|
|
5806
|
-
if (data.
|
|
5807
|
-
toBounds$
|
|
5816
|
+
if (data.__usePathBox) {
|
|
5817
|
+
toBounds$1(data.path, b);
|
|
5808
5818
|
} else {
|
|
5809
5819
|
b.x = 0;
|
|
5810
5820
|
b.y = 0;
|
|
@@ -6272,10 +6282,10 @@ let Leaf = class Leaf {
|
|
|
6272
6282
|
relative.innerToWorld(world, to, distance);
|
|
6273
6283
|
world = to ? to : world;
|
|
6274
6284
|
}
|
|
6275
|
-
toInnerPoint(this.
|
|
6285
|
+
toInnerPoint(this.scrollWorldTransform, world, to, distance);
|
|
6276
6286
|
}
|
|
6277
6287
|
innerToWorld(inner, to, distance, relative) {
|
|
6278
|
-
toOuterPoint(this.
|
|
6288
|
+
toOuterPoint(this.scrollWorldTransform, inner, to, distance);
|
|
6279
6289
|
if (relative) relative.worldToInner(to ? to : inner, null, distance);
|
|
6280
6290
|
}
|
|
6281
6291
|
getBoxPoint(world, relative, distance, change) {
|
|
@@ -6739,7 +6749,7 @@ class LeafLevelList {
|
|
|
6739
6749
|
}
|
|
6740
6750
|
}
|
|
6741
6751
|
|
|
6742
|
-
const version = "1.9.
|
|
6752
|
+
const version = "1.9.5";
|
|
6743
6753
|
|
|
6744
6754
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6745
6755
|
get allowBackgroundColor() {
|
|
@@ -7162,7 +7172,7 @@ class Renderer {
|
|
|
7162
7172
|
this.times = 0;
|
|
7163
7173
|
this.config = {
|
|
7164
7174
|
usePartRender: true,
|
|
7165
|
-
maxFPS:
|
|
7175
|
+
maxFPS: 120
|
|
7166
7176
|
};
|
|
7167
7177
|
this.target = target;
|
|
7168
7178
|
this.canvas = canvas;
|
|
@@ -7317,11 +7327,15 @@ class Renderer {
|
|
|
7317
7327
|
if (this.requestTime || !target) return;
|
|
7318
7328
|
if (target.parentApp) return target.parentApp.requestRender(false);
|
|
7319
7329
|
const requestTime = this.requestTime = Date.now();
|
|
7320
|
-
|
|
7321
|
-
|
|
7330
|
+
const render = () => {
|
|
7331
|
+
const nowFPS = 1e3 / (Date.now() - requestTime);
|
|
7332
|
+
const {maxFPS: maxFPS} = this.config;
|
|
7333
|
+
if (maxFPS && nowFPS > maxFPS - .5) return Platform.requestRender(render);
|
|
7334
|
+
this.FPS = Math.min(120, Math.ceil(nowFPS));
|
|
7322
7335
|
this.requestTime = 0;
|
|
7323
7336
|
this.checkRender();
|
|
7324
|
-
}
|
|
7337
|
+
};
|
|
7338
|
+
Platform.requestRender(render);
|
|
7325
7339
|
}
|
|
7326
7340
|
__onResize(e) {
|
|
7327
7341
|
if (this.canvas.unreal) return;
|
|
@@ -7364,7 +7378,8 @@ class Renderer {
|
|
|
7364
7378
|
if (this.target) {
|
|
7365
7379
|
this.stop();
|
|
7366
7380
|
this.__removeListenEvents();
|
|
7367
|
-
this.
|
|
7381
|
+
this.config = {};
|
|
7382
|
+
this.target = this.canvas = null;
|
|
7368
7383
|
}
|
|
7369
7384
|
}
|
|
7370
7385
|
}
|
|
@@ -7855,7 +7870,11 @@ class LeaferData extends GroupData {
|
|
|
7855
7870
|
|
|
7856
7871
|
class FrameData extends BoxData {}
|
|
7857
7872
|
|
|
7858
|
-
class LineData extends UIData {
|
|
7873
|
+
class LineData extends UIData {
|
|
7874
|
+
get __usePathBox() {
|
|
7875
|
+
return this.points || this.__pathInputed;
|
|
7876
|
+
}
|
|
7877
|
+
}
|
|
7859
7878
|
|
|
7860
7879
|
class RectData extends UIData {
|
|
7861
7880
|
get __boxStroke() {
|
|
@@ -7869,7 +7888,7 @@ class EllipseData extends UIData {
|
|
|
7869
7888
|
}
|
|
7870
7889
|
}
|
|
7871
7890
|
|
|
7872
|
-
class PolygonData extends
|
|
7891
|
+
class PolygonData extends LineData {}
|
|
7873
7892
|
|
|
7874
7893
|
class StarData extends UIData {}
|
|
7875
7894
|
|
|
@@ -8179,20 +8198,9 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8179
8198
|
if (!path) this.__drawPathByBox(pen);
|
|
8180
8199
|
return pen;
|
|
8181
8200
|
}
|
|
8182
|
-
constructor(data) {
|
|
8183
|
-
super(data);
|
|
8184
|
-
}
|
|
8185
8201
|
reset(_data) {}
|
|
8186
|
-
set(data,
|
|
8187
|
-
if (data)
|
|
8188
|
-
if (transition) {
|
|
8189
|
-
if (transition === "temp") {
|
|
8190
|
-
this.lockNormalStyle = true;
|
|
8191
|
-
Object.assign(this, data);
|
|
8192
|
-
this.lockNormalStyle = false;
|
|
8193
|
-
} else this.animate(data, transition);
|
|
8194
|
-
} else Object.assign(this, data);
|
|
8195
|
-
}
|
|
8202
|
+
set(data, _transition) {
|
|
8203
|
+
if (data) Object.assign(this, data);
|
|
8196
8204
|
}
|
|
8197
8205
|
get(name) {
|
|
8198
8206
|
return isString(name) ? this.__.__getInput(name) : this.__.__getInputData(name);
|
|
@@ -8238,7 +8246,7 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8238
8246
|
const data = this.__;
|
|
8239
8247
|
if (data.path) {
|
|
8240
8248
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
8241
|
-
if (data.__useArrow) PathArrow.addArrows(this
|
|
8249
|
+
if (data.__useArrow) PathArrow.addArrows(this);
|
|
8242
8250
|
} else data.__pathForRender && (data.__pathForRender = undefined);
|
|
8243
8251
|
}
|
|
8244
8252
|
__drawRenderPath(canvas) {
|
|
@@ -8262,7 +8270,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8262
8270
|
drawImagePlaceholder(canvas, _image) {
|
|
8263
8271
|
Paint.fill(this.__.placeholderColor, this, canvas);
|
|
8264
8272
|
}
|
|
8265
|
-
animate(
|
|
8273
|
+
animate(keyframe, _options, _type, _isTemp) {
|
|
8274
|
+
this.set(keyframe);
|
|
8266
8275
|
return Plugin.need("animate");
|
|
8267
8276
|
}
|
|
8268
8277
|
killAnimate(_type, _nextStyle) {}
|
|
@@ -8451,9 +8460,6 @@ let Group = class Group extends UI {
|
|
|
8451
8460
|
get isBranch() {
|
|
8452
8461
|
return true;
|
|
8453
8462
|
}
|
|
8454
|
-
constructor(data) {
|
|
8455
|
-
super(data);
|
|
8456
|
-
}
|
|
8457
8463
|
reset(data) {
|
|
8458
8464
|
this.__setBranch();
|
|
8459
8465
|
super.reset(data);
|
|
@@ -8578,7 +8584,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8578
8584
|
const canvas = this.canvas = Creator.canvas(config);
|
|
8579
8585
|
this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
|
|
8580
8586
|
if (this.isApp) this.__setApp();
|
|
8581
|
-
this.__checkAutoLayout(
|
|
8587
|
+
this.__checkAutoLayout();
|
|
8582
8588
|
this.view = canvas.view;
|
|
8583
8589
|
if (!parentApp) {
|
|
8584
8590
|
this.selector = Creator.selector(this);
|
|
@@ -8677,7 +8683,8 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8677
8683
|
this.leafer = leafer;
|
|
8678
8684
|
this.__level = 1;
|
|
8679
8685
|
}
|
|
8680
|
-
__checkAutoLayout(
|
|
8686
|
+
__checkAutoLayout() {
|
|
8687
|
+
const {config: config, parentApp: parentApp} = this;
|
|
8681
8688
|
if (!parentApp) {
|
|
8682
8689
|
if (!config.width || !config.height) this.autoLayout = new AutoBounds(config);
|
|
8683
8690
|
this.canvas.startAutoLayout(this.autoLayout, this.__onResize.bind(this));
|
|
@@ -8703,9 +8710,10 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8703
8710
|
return super.__getAttr(attrName);
|
|
8704
8711
|
}
|
|
8705
8712
|
__changeCanvasSize(attrName, newValue) {
|
|
8706
|
-
const
|
|
8707
|
-
data
|
|
8708
|
-
|
|
8713
|
+
const {config: config, canvas: canvas} = this;
|
|
8714
|
+
const data = DataHelper.copyAttrs({}, canvas, canvasSizeAttrs);
|
|
8715
|
+
data[attrName] = config[attrName] = newValue;
|
|
8716
|
+
config.width && config.height ? canvas.stopAutoLayout() : this.__checkAutoLayout();
|
|
8709
8717
|
this.__doResize(data);
|
|
8710
8718
|
}
|
|
8711
8719
|
__changeFill(newValue) {
|
|
@@ -8852,9 +8860,9 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8852
8860
|
if (!this.parent) {
|
|
8853
8861
|
if (this.selector) this.selector.destroy();
|
|
8854
8862
|
if (this.hitCanvasManager) this.hitCanvasManager.destroy();
|
|
8855
|
-
this.canvasManager.destroy();
|
|
8863
|
+
if (this.canvasManager) this.canvasManager.destroy();
|
|
8856
8864
|
}
|
|
8857
|
-
this.canvas.destroy();
|
|
8865
|
+
if (this.canvas) this.canvas.destroy();
|
|
8858
8866
|
this.config.view = this.view = this.parentApp = null;
|
|
8859
8867
|
if (this.userConfig) this.userConfig.view = null;
|
|
8860
8868
|
super.destroy();
|
|
@@ -8882,9 +8890,6 @@ let Rect = class Rect extends UI {
|
|
|
8882
8890
|
get __tag() {
|
|
8883
8891
|
return "Rect";
|
|
8884
8892
|
}
|
|
8885
|
-
constructor(data) {
|
|
8886
|
-
super(data);
|
|
8887
|
-
}
|
|
8888
8893
|
};
|
|
8889
8894
|
|
|
8890
8895
|
__decorate([ dataProcessor(RectData) ], Rect.prototype, "__", void 0);
|
|
@@ -8938,29 +8943,24 @@ let Box = class Box extends Group {
|
|
|
8938
8943
|
}
|
|
8939
8944
|
__updateStrokeBounds() {}
|
|
8940
8945
|
__updateRenderBounds() {
|
|
8941
|
-
let isOverflow;
|
|
8946
|
+
let isOverflow, isScrollMode;
|
|
8942
8947
|
if (this.children.length) {
|
|
8943
|
-
const data = this.__, layout = this.__layout, {renderBounds: renderBounds, boxBounds: boxBounds} = layout;
|
|
8948
|
+
const data = this.__, layout = this.__layout, {renderBounds: renderBounds, boxBounds: boxBounds} = layout, {overflow: overflow} = data;
|
|
8944
8949
|
const childrenRenderBounds = layout.childrenRenderBounds || (layout.childrenRenderBounds = getBoundsData());
|
|
8945
8950
|
super.__updateRenderBounds(childrenRenderBounds);
|
|
8946
|
-
if (
|
|
8951
|
+
if (isScrollMode = overflow.includes("scroll")) {
|
|
8947
8952
|
add(childrenRenderBounds, boxBounds);
|
|
8948
8953
|
scroll(childrenRenderBounds, data);
|
|
8949
8954
|
}
|
|
8950
8955
|
this.__updateRectRenderBounds();
|
|
8951
8956
|
isOverflow = !includes$1(boxBounds, childrenRenderBounds);
|
|
8952
|
-
if (isOverflow &&
|
|
8957
|
+
if (isOverflow && overflow === "show") add(renderBounds, childrenRenderBounds);
|
|
8953
8958
|
} else this.__updateRectRenderBounds();
|
|
8954
8959
|
DataHelper.stintSet(this, "isOverflow", isOverflow);
|
|
8955
|
-
this.__checkScroll();
|
|
8960
|
+
this.__checkScroll(isScrollMode);
|
|
8956
8961
|
}
|
|
8957
8962
|
__updateRectRenderBounds() {}
|
|
8958
|
-
|
|
8959
|
-
if (this.hasScroller) this.__updateScroll();
|
|
8960
|
-
super.__updateWorldBounds();
|
|
8961
|
-
}
|
|
8962
|
-
__checkScroll() {}
|
|
8963
|
-
__updateScroll() {}
|
|
8963
|
+
__checkScroll(_isScrollMode) {}
|
|
8964
8964
|
__updateRectChange() {}
|
|
8965
8965
|
__updateChange() {
|
|
8966
8966
|
super.__updateChange();
|
|
@@ -9021,9 +9021,6 @@ let Frame = class Frame extends Box {
|
|
|
9021
9021
|
get isFrame() {
|
|
9022
9022
|
return true;
|
|
9023
9023
|
}
|
|
9024
|
-
constructor(data) {
|
|
9025
|
-
super(data);
|
|
9026
|
-
}
|
|
9027
9024
|
};
|
|
9028
9025
|
|
|
9029
9026
|
__decorate([ dataProcessor(FrameData) ], Frame.prototype, "__", void 0);
|
|
@@ -9040,9 +9037,6 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9040
9037
|
get __tag() {
|
|
9041
9038
|
return "Ellipse";
|
|
9042
9039
|
}
|
|
9043
|
-
constructor(data) {
|
|
9044
|
-
super(data);
|
|
9045
|
-
}
|
|
9046
9040
|
__updatePath() {
|
|
9047
9041
|
const {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = this.__;
|
|
9048
9042
|
const rx = width / 2, ry = height / 2;
|
|
@@ -9086,8 +9080,6 @@ const {moveTo: moveTo$2, lineTo: lineTo$2, drawPoints: drawPoints$1} = PathComma
|
|
|
9086
9080
|
|
|
9087
9081
|
const {rotate: rotate$3, getAngle: getAngle$2, getDistance: getDistance$3, defaultPoint: defaultPoint} = PointHelper;
|
|
9088
9082
|
|
|
9089
|
-
const {toBounds: toBounds$1} = PathBounds;
|
|
9090
|
-
|
|
9091
9083
|
let Line = class Line extends UI {
|
|
9092
9084
|
get __tag() {
|
|
9093
9085
|
return "Line";
|
|
@@ -9104,31 +9096,16 @@ let Line = class Line extends UI {
|
|
|
9104
9096
|
this.rotation = getAngle$2(defaultPoint, value);
|
|
9105
9097
|
if (this.height) this.height = 0;
|
|
9106
9098
|
}
|
|
9107
|
-
constructor(data) {
|
|
9108
|
-
super(data);
|
|
9109
|
-
}
|
|
9110
9099
|
__updatePath() {
|
|
9111
9100
|
const data = this.__;
|
|
9112
9101
|
const path = data.path = [];
|
|
9113
9102
|
if (data.points) {
|
|
9114
|
-
drawPoints$1(path, data.points,
|
|
9103
|
+
drawPoints$1(path, data.points, data.curve, data.closed);
|
|
9115
9104
|
} else {
|
|
9116
9105
|
moveTo$2(path, 0, 0);
|
|
9117
9106
|
lineTo$2(path, this.width, 0);
|
|
9118
9107
|
}
|
|
9119
9108
|
}
|
|
9120
|
-
__updateRenderPath() {
|
|
9121
|
-
const data = this.__;
|
|
9122
|
-
if (!this.pathInputed && data.points && data.curve) {
|
|
9123
|
-
drawPoints$1(data.__pathForRender = [], data.points, data.curve, data.closed);
|
|
9124
|
-
if (data.__useArrow) PathArrow.addArrows(this, false);
|
|
9125
|
-
} else super.__updateRenderPath();
|
|
9126
|
-
}
|
|
9127
|
-
__updateBoxBounds() {
|
|
9128
|
-
if (this.points) {
|
|
9129
|
-
toBounds$1(this.__.__pathForRender, this.__layout.boxBounds);
|
|
9130
|
-
} else super.__updateBoxBounds();
|
|
9131
|
-
}
|
|
9132
9109
|
};
|
|
9133
9110
|
|
|
9134
9111
|
__decorate([ dataProcessor(LineData) ], Line.prototype, "__", void 0);
|
|
@@ -9155,15 +9132,13 @@ let Polygon = class Polygon extends UI {
|
|
|
9155
9132
|
get __tag() {
|
|
9156
9133
|
return "Polygon";
|
|
9157
9134
|
}
|
|
9158
|
-
constructor(data) {
|
|
9159
|
-
super(data);
|
|
9160
|
-
}
|
|
9161
9135
|
__updatePath() {
|
|
9162
|
-
const
|
|
9163
|
-
|
|
9164
|
-
|
|
9136
|
+
const data = this.__;
|
|
9137
|
+
const path = data.path = [];
|
|
9138
|
+
if (data.points) {
|
|
9139
|
+
drawPoints(path, data.points, data.curve, true);
|
|
9165
9140
|
} else {
|
|
9166
|
-
const {width: width, height: height, sides: sides} =
|
|
9141
|
+
const {width: width, height: height, sides: sides} = data;
|
|
9167
9142
|
const rx = width / 2, ry = height / 2;
|
|
9168
9143
|
moveTo$1(path, rx, 0);
|
|
9169
9144
|
for (let i = 1; i < sides; i++) {
|
|
@@ -9198,9 +9173,6 @@ let Star = class Star extends UI {
|
|
|
9198
9173
|
get __tag() {
|
|
9199
9174
|
return "Star";
|
|
9200
9175
|
}
|
|
9201
|
-
constructor(data) {
|
|
9202
|
-
super(data);
|
|
9203
|
-
}
|
|
9204
9176
|
__updatePath() {
|
|
9205
9177
|
const {width: width, height: height, corners: corners, innerRadius: innerRadius} = this.__;
|
|
9206
9178
|
const rx = width / 2, ry = height / 2;
|
|
@@ -9233,9 +9205,6 @@ let Image = class Image extends Rect {
|
|
|
9233
9205
|
const {fill: fill} = this.__;
|
|
9234
9206
|
return isArray(fill) && fill[0].image;
|
|
9235
9207
|
}
|
|
9236
|
-
constructor(data) {
|
|
9237
|
-
super(data);
|
|
9238
|
-
}
|
|
9239
9208
|
};
|
|
9240
9209
|
|
|
9241
9210
|
__decorate([ dataProcessor(ImageData) ], Image.prototype, "__", void 0);
|
|
@@ -9335,9 +9304,6 @@ let Text = class Text extends UI {
|
|
|
9335
9304
|
this.updateLayout();
|
|
9336
9305
|
return this.__.__textDrawData;
|
|
9337
9306
|
}
|
|
9338
|
-
constructor(data) {
|
|
9339
|
-
super(data);
|
|
9340
|
-
}
|
|
9341
9307
|
__updateTextDrawData() {
|
|
9342
9308
|
const data = this.__;
|
|
9343
9309
|
const {lineHeight: lineHeight, letterSpacing: letterSpacing, fontFamily: fontFamily, fontSize: fontSize, fontWeight: fontWeight, italic: italic, textCase: textCase, textOverflow: textOverflow, padding: padding} = data;
|
|
@@ -9470,9 +9436,6 @@ let Path = class Path extends UI {
|
|
|
9470
9436
|
get __tag() {
|
|
9471
9437
|
return "Path";
|
|
9472
9438
|
}
|
|
9473
|
-
constructor(data) {
|
|
9474
|
-
super(data);
|
|
9475
|
-
}
|
|
9476
9439
|
};
|
|
9477
9440
|
|
|
9478
9441
|
__decorate([ dataProcessor(PathData) ], Path.prototype, "__", void 0);
|
|
@@ -9485,9 +9448,6 @@ let Pen = class Pen extends Group {
|
|
|
9485
9448
|
get __tag() {
|
|
9486
9449
|
return "Pen";
|
|
9487
9450
|
}
|
|
9488
|
-
constructor(data) {
|
|
9489
|
-
super(data);
|
|
9490
|
-
}
|
|
9491
9451
|
setStyle(data) {
|
|
9492
9452
|
const path = this.pathElement = new Path(data);
|
|
9493
9453
|
this.pathStyle = data;
|
|
@@ -11572,7 +11532,7 @@ function ignoreRender(ui, value) {
|
|
|
11572
11532
|
|
|
11573
11533
|
const {get: get$1, scale: scale$2, copy: copy$4} = MatrixHelper;
|
|
11574
11534
|
|
|
11575
|
-
const {floor: floor$1, max: max, abs: abs$
|
|
11535
|
+
const {floor: floor$1, ceil: ceil$1, max: max$1, abs: abs$4} = Math;
|
|
11576
11536
|
|
|
11577
11537
|
function createPattern(ui, paint, pixelRatio) {
|
|
11578
11538
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
@@ -11582,11 +11542,9 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11582
11542
|
let imageScale, imageMatrix, {width: width, height: height, scaleX: sx, scaleY: sy, transform: transform, repeat: repeat, gap: gap} = data;
|
|
11583
11543
|
scaleX *= pixelRatio;
|
|
11584
11544
|
scaleY *= pixelRatio;
|
|
11585
|
-
const xGap = gap && gap.x * scaleX;
|
|
11586
|
-
const yGap = gap && gap.y * scaleY;
|
|
11587
11545
|
if (sx) {
|
|
11588
|
-
sx = abs$
|
|
11589
|
-
sy = abs$
|
|
11546
|
+
sx = abs$4(sx);
|
|
11547
|
+
sy = abs$4(sy);
|
|
11590
11548
|
imageMatrix = get$1();
|
|
11591
11549
|
copy$4(imageMatrix, transform);
|
|
11592
11550
|
scale$2(imageMatrix, 1 / sx, 1 / sy);
|
|
@@ -11600,7 +11558,10 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11600
11558
|
if (size > Platform.image.maxCacheSize) return false;
|
|
11601
11559
|
}
|
|
11602
11560
|
let maxSize = Platform.image.maxPatternSize;
|
|
11603
|
-
if (
|
|
11561
|
+
if (image.isSVG) {
|
|
11562
|
+
const ws = width / image.width;
|
|
11563
|
+
if (ws > 1) imageScale = ws / ceil$1(ws);
|
|
11564
|
+
} else {
|
|
11604
11565
|
const imageSize = image.width * image.height;
|
|
11605
11566
|
if (maxSize > imageSize) maxSize = imageSize;
|
|
11606
11567
|
}
|
|
@@ -11615,18 +11576,20 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11615
11576
|
scaleX /= sx;
|
|
11616
11577
|
scaleY /= sy;
|
|
11617
11578
|
}
|
|
11579
|
+
const xGap = gap && gap.x * scaleX;
|
|
11580
|
+
const yGap = gap && gap.y * scaleY;
|
|
11618
11581
|
if (transform || scaleX !== 1 || scaleY !== 1) {
|
|
11582
|
+
const canvasWidth = width + (xGap || 0);
|
|
11583
|
+
const canvasHeight = height + (yGap || 0);
|
|
11584
|
+
scaleX /= canvasWidth / max$1(floor$1(canvasWidth), 1);
|
|
11585
|
+
scaleY /= canvasHeight / max$1(floor$1(canvasHeight), 1);
|
|
11619
11586
|
if (!imageMatrix) {
|
|
11620
11587
|
imageMatrix = get$1();
|
|
11621
11588
|
if (transform) copy$4(imageMatrix, transform);
|
|
11622
11589
|
}
|
|
11623
11590
|
scale$2(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
11624
11591
|
}
|
|
11625
|
-
|
|
11626
|
-
const canvasWidth = width + (xGap || 0), canvasHeight = height + (yGap || 0);
|
|
11627
|
-
scale$2(imageMatrix, canvasWidth / max(floor$1(canvasWidth), 1), canvasHeight / max(floor$1(canvasHeight), 1));
|
|
11628
|
-
}
|
|
11629
|
-
const canvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap);
|
|
11592
|
+
const canvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth);
|
|
11630
11593
|
const pattern = image.getPattern(canvas, repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
11631
11594
|
paint.style = pattern;
|
|
11632
11595
|
paint.patternId = id;
|
|
@@ -12648,7 +12611,7 @@ function mergeConfigAttr() {
|
|
|
12648
12611
|
return (target, key) => {
|
|
12649
12612
|
defineKey(target, key, {
|
|
12650
12613
|
get() {
|
|
12651
|
-
const {config: config, element: element, dragPoint: dragPoint, editBox: editBox} = this, mergeConfig = Object.assign({}, config);
|
|
12614
|
+
const {config: config, element: element, dragPoint: dragPoint, editBox: editBox, app: app} = this, mergeConfig = Object.assign({}, config);
|
|
12652
12615
|
if (element && element.editConfig) Object.assign(mergeConfig, element.editConfig);
|
|
12653
12616
|
if (editBox.config) Object.assign(mergeConfig, editBox.config);
|
|
12654
12617
|
if (dragPoint) {
|
|
@@ -12659,13 +12622,14 @@ function mergeConfigAttr() {
|
|
|
12659
12622
|
isNull(mergeConfig.lockRatio) && (mergeConfig.lockRatio = true);
|
|
12660
12623
|
}
|
|
12661
12624
|
}
|
|
12625
|
+
if (isUndefined(mergeConfig.dragLimitAnimate)) mergeConfig.dragLimitAnimate = app && app.config.pointer.dragLimitAnimate;
|
|
12662
12626
|
return this.mergedConfig = mergeConfig;
|
|
12663
12627
|
}
|
|
12664
12628
|
});
|
|
12665
12629
|
};
|
|
12666
12630
|
}
|
|
12667
12631
|
|
|
12668
|
-
const {abs: abs$
|
|
12632
|
+
const {abs: abs$3} = Math;
|
|
12669
12633
|
|
|
12670
12634
|
const {copy: copy$2, scale: scale$1} = MatrixHelper;
|
|
12671
12635
|
|
|
@@ -12708,7 +12672,7 @@ class Stroker extends UI {
|
|
|
12708
12672
|
leaf = list[i];
|
|
12709
12673
|
const {worldTransform: worldTransform, worldRenderBounds: worldRenderBounds} = leaf;
|
|
12710
12674
|
if (worldRenderBounds.width && worldRenderBounds.height && (!bounds || bounds.hit(worldRenderBounds, options.matrix))) {
|
|
12711
|
-
const aScaleX = abs$
|
|
12675
|
+
const aScaleX = abs$3(worldTransform.scaleX), aScaleY = abs$3(worldTransform.scaleY);
|
|
12712
12676
|
copy$2(matrix$1, worldTransform);
|
|
12713
12677
|
matrix$1.half = strokeWidth % 2;
|
|
12714
12678
|
if (aScaleX !== aScaleY) {
|
|
@@ -12722,7 +12686,7 @@ class Stroker extends UI {
|
|
|
12722
12686
|
canvas.setWorld(matrix$1, options.matrix);
|
|
12723
12687
|
canvas.beginPath();
|
|
12724
12688
|
if (leaf.__.__useArrow) leaf.__drawPath(canvas); else leaf.__.__pathForRender ? leaf.__drawRenderPath(canvas) : leaf.__drawPathByBox(canvas);
|
|
12725
|
-
data.strokeWidth = strokeWidth / abs$
|
|
12689
|
+
data.strokeWidth = strokeWidth / abs$3(worldTransform.scaleX);
|
|
12726
12690
|
}
|
|
12727
12691
|
if (stroke) isString(stroke) ? Paint.stroke(stroke, this, canvas) : Paint.strokes(stroke, this, canvas);
|
|
12728
12692
|
if (fill) isString(fill) ? Paint.fill(fill, this, canvas) : Paint.fills(fill, this, canvas);
|
|
@@ -13016,7 +12980,7 @@ const {topLeft: topLeft$1, top: top$1, topRight: topRight$1, right: right$2, bot
|
|
|
13016
12980
|
|
|
13017
12981
|
const {toPoint: toPoint} = AroundHelper;
|
|
13018
12982
|
|
|
13019
|
-
const {within: within$
|
|
12983
|
+
const {within: within$3, sign: sign$1} = MathHelper;
|
|
13020
12984
|
|
|
13021
12985
|
const EditDataHelper = {
|
|
13022
12986
|
getScaleData(target, startBounds, direction, totalMove, lockRatio, around, flipable, scaleMode) {
|
|
@@ -13029,8 +12993,8 @@ const EditDataHelper = {
|
|
|
13029
12993
|
}
|
|
13030
12994
|
const originChangedScaleX = target.scaleX / startBounds.scaleX;
|
|
13031
12995
|
const originChangedScaleY = target.scaleY / startBounds.scaleY;
|
|
13032
|
-
const signX = originChangedScaleX
|
|
13033
|
-
const signY = originChangedScaleY
|
|
12996
|
+
const signX = sign$1(originChangedScaleX);
|
|
12997
|
+
const signY = sign$1(originChangedScaleY);
|
|
13034
12998
|
const changedScaleX = scaleMode ? originChangedScaleX : signX * boxBounds.width / width;
|
|
13035
12999
|
const changedScaleY = scaleMode ? originChangedScaleY : signY * boxBounds.height / height;
|
|
13036
13000
|
totalMove.x *= scaleMode ? originChangedScaleX : signX;
|
|
@@ -13130,14 +13094,14 @@ const EditDataHelper = {
|
|
|
13130
13094
|
}
|
|
13131
13095
|
if (useScaleX && widthRange) {
|
|
13132
13096
|
const nowWidth = boxBounds.width * target.scaleX;
|
|
13133
|
-
scaleX = within$
|
|
13097
|
+
scaleX = within$3(nowWidth * scaleX, widthRange) / nowWidth;
|
|
13134
13098
|
}
|
|
13135
13099
|
if (useScaleY && heightRange) {
|
|
13136
13100
|
const nowHeight = boxBounds.height * target.scaleY;
|
|
13137
|
-
scaleY = within$
|
|
13101
|
+
scaleY = within$3(nowHeight * scaleY, heightRange) / nowHeight;
|
|
13138
13102
|
}
|
|
13139
|
-
if (useScaleX && Math.abs(scaleX * worldBoxBounds.width) < 1) scaleX = (scaleX
|
|
13140
|
-
if (useScaleY && Math.abs(scaleY * worldBoxBounds.height) < 1) scaleY = (scaleY
|
|
13103
|
+
if (useScaleX && Math.abs(scaleX * worldBoxBounds.width) < 1) scaleX = sign$1(scaleX) / worldBoxBounds.width;
|
|
13104
|
+
if (useScaleY && Math.abs(scaleY * worldBoxBounds.height) < 1) scaleY = sign$1(scaleY) / worldBoxBounds.height;
|
|
13141
13105
|
if (lockRatio && scaleX !== scaleY) scaleY = scaleX = Math.min(scaleX, scaleY);
|
|
13142
13106
|
return {
|
|
13143
13107
|
origin: origin,
|
|
@@ -13639,7 +13603,7 @@ class EditBox extends Group {
|
|
|
13639
13603
|
if (pointType && pointType.includes("resize")) ResizeEvent.resizingKeys = editor.leafList.keys;
|
|
13640
13604
|
}
|
|
13641
13605
|
onDragEnd(e) {
|
|
13642
|
-
if (this.moving) this.transformTool.onMove(e);
|
|
13606
|
+
if (this.moving && this.mergeConfig.dragLimitAnimate && this.target.dragBounds) this.transformTool.onMove(e);
|
|
13643
13607
|
this.dragPoint = null;
|
|
13644
13608
|
this.resetDoing();
|
|
13645
13609
|
const {name: name, pointType: pointType} = e.current;
|
|
@@ -14159,9 +14123,8 @@ EditorSkewEvent.SKEW = "editor.skew";
|
|
|
14159
14123
|
|
|
14160
14124
|
class TransformTool {
|
|
14161
14125
|
onMove(e) {
|
|
14162
|
-
const {target: target, mergeConfig: mergeConfig, dragStartData: dragStartData
|
|
14126
|
+
const {target: target, mergeConfig: mergeConfig, dragStartData: dragStartData} = this.editBox;
|
|
14163
14127
|
let move, {dragLimitAnimate: dragLimitAnimate} = mergeConfig;
|
|
14164
|
-
if (isUndefined(dragLimitAnimate)) dragLimitAnimate = app && app.config.pointer.dragLimitAnimate;
|
|
14165
14128
|
const isMoveEnd = e.type === MoveEvent.END || e.type === DragEvent.END;
|
|
14166
14129
|
const axisDrag = isString(target.draggable);
|
|
14167
14130
|
const checkLimitMove = !dragLimitAnimate || isMoveEnd || axisDrag;
|
|
@@ -15570,6 +15533,8 @@ const MultiTouchHelper = {
|
|
|
15570
15533
|
}
|
|
15571
15534
|
};
|
|
15572
15535
|
|
|
15536
|
+
const {abs: abs$2, max: max} = Math, {sign: sign, within: within$2} = MathHelper;
|
|
15537
|
+
|
|
15573
15538
|
const WheelEventHelper = {
|
|
15574
15539
|
getMove(event, config) {
|
|
15575
15540
|
let {moveSpeed: moveSpeed} = config;
|
|
@@ -15578,8 +15543,9 @@ const WheelEventHelper = {
|
|
|
15578
15543
|
deltaX = deltaY;
|
|
15579
15544
|
deltaY = 0;
|
|
15580
15545
|
}
|
|
15581
|
-
|
|
15582
|
-
if (
|
|
15546
|
+
const absX = abs$2(deltaX), absY = abs$2(deltaY);
|
|
15547
|
+
if (absX > 50) deltaX = max(50, absX / 3) * sign(deltaX);
|
|
15548
|
+
if (absY > 50) deltaY = max(50, absY / 3) * sign(deltaY);
|
|
15583
15549
|
return {
|
|
15584
15550
|
x: -deltaX * moveSpeed * 2,
|
|
15585
15551
|
y: -deltaY * moveSpeed * 2
|
|
@@ -15597,11 +15563,10 @@ const WheelEventHelper = {
|
|
|
15597
15563
|
zoom = !event.shiftKey && (event.metaKey || event.ctrlKey);
|
|
15598
15564
|
}
|
|
15599
15565
|
if (zoom) {
|
|
15600
|
-
zoomSpeed =
|
|
15566
|
+
zoomSpeed = within$2(zoomSpeed, 0, 1);
|
|
15601
15567
|
const min = event.deltaY ? config.delta.y : config.delta.x;
|
|
15602
|
-
|
|
15603
|
-
|
|
15604
|
-
if (scale >= 1.5) scale = 1.5;
|
|
15568
|
+
const absScale = within$2(1 - abs$2(delta) / (min * 4) * zoomSpeed, .5, 2);
|
|
15569
|
+
scale = delta > 0 ? absScale : 1 / absScale;
|
|
15605
15570
|
}
|
|
15606
15571
|
return scale;
|
|
15607
15572
|
}
|
|
@@ -16156,6 +16121,9 @@ let Arrow = class Arrow extends Line {
|
|
|
16156
16121
|
super(data);
|
|
16157
16122
|
this.__.__useArrow = true;
|
|
16158
16123
|
}
|
|
16124
|
+
static registerArrow(name, data) {
|
|
16125
|
+
PathArrow.register(name, data);
|
|
16126
|
+
}
|
|
16159
16127
|
};
|
|
16160
16128
|
|
|
16161
16129
|
__decorate([ dataProcessor(ArrowData) ], Arrow.prototype, "__", void 0);
|
|
@@ -16337,9 +16305,18 @@ const arrows = {
|
|
|
16337
16305
|
mark: mark
|
|
16338
16306
|
};
|
|
16339
16307
|
|
|
16340
|
-
function getArrowPath(ui, arrow, from, to,
|
|
16308
|
+
function getArrowPath(ui, arrow, from, to, size, connectOffset, hasDashPattern) {
|
|
16309
|
+
let pathData, scale;
|
|
16341
16310
|
const {strokeCap: strokeCap, strokeJoin: strokeJoin} = ui.__;
|
|
16342
|
-
|
|
16311
|
+
if (isObject(arrow)) {
|
|
16312
|
+
if (arrow.type) {
|
|
16313
|
+
scale = arrow.scale;
|
|
16314
|
+
pathData = arrows[arrow.type];
|
|
16315
|
+
} else pathData = arrow;
|
|
16316
|
+
} else {
|
|
16317
|
+
pathData = arrows[arrow];
|
|
16318
|
+
}
|
|
16319
|
+
const {offset: offset, connect: connect, path: path, dashPath: dashPath} = pathData;
|
|
16343
16320
|
let connectX = connect ? connect.x : 0;
|
|
16344
16321
|
let offsetX = offset ? offset.x : 0;
|
|
16345
16322
|
const data = [ ...path ];
|
|
@@ -16348,9 +16325,10 @@ function getArrowPath(ui, arrow, from, to, scale, connectOffset, hasDashPattern)
|
|
|
16348
16325
|
if (offset) {
|
|
16349
16326
|
if (strokeJoin === "round" && offset.roundJoin) offsetX += offset.roundJoin; else if (strokeJoin === "bevel" && offset.bevelJoin) offsetX += offset.bevelJoin;
|
|
16350
16327
|
}
|
|
16328
|
+
if (scale) layout$2(data, 0, 0, scale, scale);
|
|
16351
16329
|
if (offsetX) layout$2(data, offsetX, 0);
|
|
16352
|
-
layout$2(data, to.x, to.y,
|
|
16353
|
-
connectOffset.x = (connectX + offsetX) *
|
|
16330
|
+
layout$2(data, to.x, to.y, size, size, getAngle(from, to));
|
|
16331
|
+
connectOffset.x = (connectX + offsetX) * size;
|
|
16354
16332
|
return data;
|
|
16355
16333
|
}
|
|
16356
16334
|
|
|
@@ -16366,8 +16344,9 @@ const last = {}, now = {};
|
|
|
16366
16344
|
|
|
16367
16345
|
const PathArrowModule = {
|
|
16368
16346
|
list: arrows,
|
|
16369
|
-
addArrows(ui
|
|
16370
|
-
const {startArrow: startArrow, endArrow: endArrow, strokeWidth: strokeWidth, dashPattern: dashPattern, __pathForRender: data} = ui.__;
|
|
16347
|
+
addArrows(ui) {
|
|
16348
|
+
const {startArrow: startArrow, endArrow: endArrow, strokeWidth: strokeWidth, dashPattern: dashPattern, __pathForRender: data, cornerRadius: cornerRadius} = ui.__;
|
|
16349
|
+
const clonePathForArrow = !cornerRadius;
|
|
16371
16350
|
let command, i = 0, len = data.length, count = 0, useStartArrow = startArrow && startArrow !== "none";
|
|
16372
16351
|
while (i < len) {
|
|
16373
16352
|
command = data[i];
|
|
@@ -16382,12 +16361,12 @@ const PathArrowModule = {
|
|
|
16382
16361
|
break;
|
|
16383
16362
|
|
|
16384
16363
|
case C$1:
|
|
16385
|
-
if (count === 1 || i + 7
|
|
16364
|
+
if (count === 1 || i + 7 >= len - 3) copyPoints(data, last, now, i + 3);
|
|
16386
16365
|
i += 7;
|
|
16387
16366
|
break;
|
|
16388
16367
|
|
|
16389
16368
|
case Q:
|
|
16390
|
-
if (count === 1 || i + 5
|
|
16369
|
+
if (count === 1 || i + 5 >= len - 3) copyPoints(data, last, now, i + 1);
|
|
16391
16370
|
i += 5;
|
|
16392
16371
|
break;
|
|
16393
16372
|
|
|
@@ -16423,7 +16402,13 @@ const PathArrowModule = {
|
|
|
16423
16402
|
break;
|
|
16424
16403
|
|
|
16425
16404
|
case U:
|
|
16426
|
-
if (count === 1 || i + 6
|
|
16405
|
+
if (count === 1 || i + 6 >= len - 3) {
|
|
16406
|
+
copyPoints(data, last, now, i + 1);
|
|
16407
|
+
if (i + 6 !== len) {
|
|
16408
|
+
now.x -= (now.x - last.x) / 10;
|
|
16409
|
+
now.y -= (now.y - last.y) / 10;
|
|
16410
|
+
}
|
|
16411
|
+
}
|
|
16427
16412
|
i += 6;
|
|
16428
16413
|
break;
|
|
16429
16414
|
}
|
|
@@ -16431,7 +16416,7 @@ const PathArrowModule = {
|
|
|
16431
16416
|
if (count === 1 && command !== M$1) return;
|
|
16432
16417
|
if (count === 2 && useStartArrow) copy(second, command === L$1 ? now : last);
|
|
16433
16418
|
if (i === len) {
|
|
16434
|
-
const path = ui.__.__pathForRender =
|
|
16419
|
+
const path = ui.__.__pathForRender = clonePathForArrow ? [ ...data ] : data;
|
|
16435
16420
|
const pathForArrow = ui.__.__pathForArrow = [];
|
|
16436
16421
|
if (useStartArrow) {
|
|
16437
16422
|
const startArrowPath = getArrowPath(ui, startArrow, second, first, strokeWidth, connectPoint, !!dashPattern);
|
|
@@ -16472,6 +16457,12 @@ const PathArrowModule = {
|
|
|
16472
16457
|
copy(last, now);
|
|
16473
16458
|
}
|
|
16474
16459
|
}
|
|
16460
|
+
},
|
|
16461
|
+
register(name, data) {
|
|
16462
|
+
this.list[name] = data;
|
|
16463
|
+
},
|
|
16464
|
+
get(name) {
|
|
16465
|
+
return this.list[name];
|
|
16475
16466
|
}
|
|
16476
16467
|
};
|
|
16477
16468
|
|
|
@@ -18037,6 +18028,18 @@ UI.addAttr("transition", true, dataType);
|
|
|
18037
18028
|
|
|
18038
18029
|
UI.addAttr("transitionOut", undefined, dataType);
|
|
18039
18030
|
|
|
18031
|
+
ui$3.set = function(data, transition) {
|
|
18032
|
+
if (data) {
|
|
18033
|
+
if (transition) {
|
|
18034
|
+
if (transition === "temp") {
|
|
18035
|
+
this.lockNormalStyle = true;
|
|
18036
|
+
Object.assign(this, data);
|
|
18037
|
+
this.lockNormalStyle = false;
|
|
18038
|
+
} else this.animate(data, transition);
|
|
18039
|
+
} else Object.assign(this, data);
|
|
18040
|
+
}
|
|
18041
|
+
};
|
|
18042
|
+
|
|
18040
18043
|
ui$3.animate = function(keyframe, options, kill, isTemp) {
|
|
18041
18044
|
if (isUndefined(keyframe)) return this.__animate;
|
|
18042
18045
|
const isAnimationList = isArray(keyframe) && !options && kill;
|
|
@@ -19353,4 +19356,4 @@ Object.assign(Filter, {
|
|
|
19353
19356
|
}
|
|
19354
19357
|
});
|
|
19355
19358
|
|
|
19356
|
-
export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, Arrow, ArrowData, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent, Dragger, DropEvent, EditBox, EditDataHelper, EditPoint, EditSelect, EditSelectHelper, EditTool, EditToolCreator, Editor, EditorEvent, EditorGroupEvent, EditorHelper, EditorMoveEvent, EditorRotateEvent, EditorScaleEvent, EditorSkewEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, Flow, Frame, FrameData, Group, GroupData, HTMLText, HTMLTextData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, InnerEditor, InnerEditorEvent, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, LeaferTypeCreator, Line, LineData, LineEditTool, MathHelper, Matrix, MatrixHelper, MoveEvent, MultiTouchHelper, MyDragEvent, MyImage, MyPointerEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathArrowModule, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathMatrixHelper, PathNumberCommandLengthMap, PathNumberCommandMap, PathScaler, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, ScrollBar, SelectArea, Selector, Star, StarData, State, StringNumberMap, Stroker, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TextEditor, TransformTool, Transformer, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, WheelEventHelper, ZoomEvent, addViewport, addViewportConfig, affectRenderBoundsType, affectStrokeBoundsType, arrowType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, motionPathType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerEditTool, registerInnerEditor, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleResize, scaleResizeFontSize, scaleResizeGroup, scaleResizePath, scaleResizePoints, scaleType, scrollType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix$1 as tempMatrix, tempPoint$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|
|
19359
|
+
export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, Arrow, ArrowData, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent, Dragger, DropEvent, EditBox, EditDataHelper, EditPoint, EditSelect, EditSelectHelper, EditTool, EditToolCreator, Editor, EditorEvent, EditorGroupEvent, EditorHelper, EditorMoveEvent, EditorRotateEvent, EditorScaleEvent, EditorSkewEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, Flow, Frame, FrameData, Group, GroupData, HTMLText, HTMLTextData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, InnerEditor, InnerEditorEvent, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, LeaferTypeCreator, Line, LineData, LineEditTool, MathHelper, Matrix, MatrixHelper, MoveEvent, MultiTouchHelper, MyDragEvent, MyImage, MyPointerEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathArrowModule, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathMatrixHelper, PathNumberCommandLengthMap, PathNumberCommandMap, PathScaler, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, ScrollBar, SelectArea, Selector, Star, StarData, State, StringNumberMap, Stroker, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TextEditor, TransformTool, Transformer, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, WheelEventHelper, ZoomEvent, addViewport, addViewportConfig, affectRenderBoundsType, affectStrokeBoundsType, arrowType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, motionPathType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerEditTool, registerInnerEditor, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleResize, scaleResizeFontSize, scaleResizeGroup, scaleResizePath, scaleResizePoints, scaleType, scrollType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix$1 as tempMatrix, tempPoint$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|