@leafer/miniapp 1.9.7 → 1.9.9
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/miniapp.module.js +574 -369
- package/dist/miniapp.module.min.js +1 -1
- package/dist/miniapp.module.min.js.map +1 -1
- package/package.json +21 -21
package/dist/miniapp.module.js
CHANGED
|
@@ -247,18 +247,34 @@ class LeafData {
|
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
250
|
+
let tempA, tempB, tempTo;
|
|
251
|
+
|
|
252
|
+
const {max: max$5} = Math, tempFour = [ 0, 0, 0, 0 ];
|
|
253
|
+
|
|
254
|
+
const FourNumberHelper = {
|
|
255
|
+
zero: [ ...tempFour ],
|
|
256
|
+
tempFour: tempFour,
|
|
257
|
+
set(to, top, right, bottom, left) {
|
|
258
|
+
if (right === undefined) right = bottom = left = top;
|
|
259
|
+
to[0] = top;
|
|
260
|
+
to[1] = right;
|
|
261
|
+
to[2] = bottom;
|
|
262
|
+
to[3] = left;
|
|
263
|
+
return to;
|
|
258
264
|
},
|
|
259
|
-
|
|
265
|
+
setTemp(top, right, bottom, left) {
|
|
266
|
+
return set$1(tempFour, top, right, bottom, left);
|
|
267
|
+
},
|
|
268
|
+
toTempAB(a, b, change) {
|
|
269
|
+
tempTo = change ? isNumber(a) ? b : a : [];
|
|
270
|
+
if (isNumber(a)) tempA = setTemp(a), tempB = b; else if (isNumber(b)) tempA = a,
|
|
271
|
+
tempB = setTemp(b); else tempA = a, tempB = b;
|
|
272
|
+
if (tempA.length !== 4) tempA = get$5(tempA);
|
|
273
|
+
if (tempB.length !== 4) tempB = get$5(tempB);
|
|
274
|
+
},
|
|
275
|
+
get(num, maxValue) {
|
|
260
276
|
let data;
|
|
261
|
-
if (
|
|
277
|
+
if (!isNumber(num)) {
|
|
262
278
|
switch (num.length) {
|
|
263
279
|
case 4:
|
|
264
280
|
data = isUndefined(maxValue) ? num : [ ...num ];
|
|
@@ -281,9 +297,39 @@ const MathHelper = {
|
|
|
281
297
|
}
|
|
282
298
|
}
|
|
283
299
|
if (!data) data = [ num, num, num, num ];
|
|
284
|
-
if (maxValue) for (let i = 0; i < 4; i++) if (data[i] > maxValue) data[i] = maxValue;
|
|
300
|
+
if (!isUndefined(maxValue)) for (let i = 0; i < 4; i++) if (data[i] > maxValue) data[i] = maxValue;
|
|
285
301
|
return data;
|
|
286
302
|
},
|
|
303
|
+
max(t, other, change) {
|
|
304
|
+
if (isNumber(t) && isNumber(other)) return max$5(t, other);
|
|
305
|
+
toTempAB(t, other, change);
|
|
306
|
+
return set$1(tempTo, max$5(tempA[0], tempB[0]), max$5(tempA[1], tempB[1]), max$5(tempA[2], tempB[2]), max$5(tempA[3], tempB[3]));
|
|
307
|
+
},
|
|
308
|
+
add(t, other, change) {
|
|
309
|
+
if (isNumber(t) && isNumber(other)) return t + other;
|
|
310
|
+
toTempAB(t, other, change);
|
|
311
|
+
return set$1(tempTo, tempA[0] + tempB[0], tempA[1] + tempB[1], tempA[2] + tempB[2], tempA[3] + tempB[3]);
|
|
312
|
+
},
|
|
313
|
+
swapAndScale(t, scaleX, scaleY, change) {
|
|
314
|
+
if (isNumber(t)) return scaleX === scaleY ? t * scaleX : [ t * scaleY, t * scaleX ];
|
|
315
|
+
const to = change ? t : [];
|
|
316
|
+
const [top, right, bottom, left] = t.length === 4 ? t : get$5(t);
|
|
317
|
+
return set$1(to, bottom * scaleY, left * scaleX, top * scaleY, right * scaleX);
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
const {set: set$1, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
|
|
322
|
+
|
|
323
|
+
const {round: round$6, pow: pow$2, PI: PI$4} = Math;
|
|
324
|
+
|
|
325
|
+
const MathHelper = {
|
|
326
|
+
within(value, min, max) {
|
|
327
|
+
if (isObject(min)) max = min.max, min = min.min;
|
|
328
|
+
if (!isUndefined(min) && value < min) value = min;
|
|
329
|
+
if (!isUndefined(max) && value > max) value = max;
|
|
330
|
+
return value;
|
|
331
|
+
},
|
|
332
|
+
fourNumber: FourNumberHelper.get,
|
|
287
333
|
formatRotation(rotation, unsign) {
|
|
288
334
|
rotation %= 360;
|
|
289
335
|
if (unsign) {
|
|
@@ -433,13 +479,13 @@ const MatrixHelper = {
|
|
|
433
479
|
to.f = t.f * pixelRatio;
|
|
434
480
|
},
|
|
435
481
|
scaleOfOuter(t, origin, scaleX, scaleY) {
|
|
436
|
-
M$
|
|
437
|
-
M$
|
|
482
|
+
M$b.toInnerPoint(t, origin, tempPoint$4);
|
|
483
|
+
M$b.scaleOfInner(t, tempPoint$4, scaleX, scaleY);
|
|
438
484
|
},
|
|
439
485
|
scaleOfInner(t, origin, scaleX, scaleY = scaleX) {
|
|
440
|
-
M$
|
|
441
|
-
M$
|
|
442
|
-
M$
|
|
486
|
+
M$b.translateInner(t, origin.x, origin.y);
|
|
487
|
+
M$b.scale(t, scaleX, scaleY);
|
|
488
|
+
M$b.translateInner(t, -origin.x, -origin.y);
|
|
443
489
|
},
|
|
444
490
|
rotate(t, rotation) {
|
|
445
491
|
const {a: a, b: b, c: c, d: d} = t;
|
|
@@ -452,13 +498,13 @@ const MatrixHelper = {
|
|
|
452
498
|
t.d = c * sinR + d * cosR;
|
|
453
499
|
},
|
|
454
500
|
rotateOfOuter(t, origin, rotation) {
|
|
455
|
-
M$
|
|
456
|
-
M$
|
|
501
|
+
M$b.toInnerPoint(t, origin, tempPoint$4);
|
|
502
|
+
M$b.rotateOfInner(t, tempPoint$4, rotation);
|
|
457
503
|
},
|
|
458
504
|
rotateOfInner(t, origin, rotation) {
|
|
459
|
-
M$
|
|
460
|
-
M$
|
|
461
|
-
M$
|
|
505
|
+
M$b.translateInner(t, origin.x, origin.y);
|
|
506
|
+
M$b.rotate(t, rotation);
|
|
507
|
+
M$b.translateInner(t, -origin.x, -origin.y);
|
|
462
508
|
},
|
|
463
509
|
skew(t, skewX, skewY) {
|
|
464
510
|
const {a: a, b: b, c: c, d: d} = t;
|
|
@@ -474,13 +520,13 @@ const MatrixHelper = {
|
|
|
474
520
|
}
|
|
475
521
|
},
|
|
476
522
|
skewOfOuter(t, origin, skewX, skewY) {
|
|
477
|
-
M$
|
|
478
|
-
M$
|
|
523
|
+
M$b.toInnerPoint(t, origin, tempPoint$4);
|
|
524
|
+
M$b.skewOfInner(t, tempPoint$4, skewX, skewY);
|
|
479
525
|
},
|
|
480
526
|
skewOfInner(t, origin, skewX, skewY = 0) {
|
|
481
|
-
M$
|
|
482
|
-
M$
|
|
483
|
-
M$
|
|
527
|
+
M$b.translateInner(t, origin.x, origin.y);
|
|
528
|
+
M$b.skew(t, skewX, skewY);
|
|
529
|
+
M$b.translateInner(t, -origin.x, -origin.y);
|
|
484
530
|
},
|
|
485
531
|
multiply(t, child) {
|
|
486
532
|
const {a: a, b: b, c: c, d: d, e: e, f: f} = t;
|
|
@@ -519,15 +565,15 @@ const MatrixHelper = {
|
|
|
519
565
|
to.f = e * parent.b + f * parent.d + parent.f;
|
|
520
566
|
},
|
|
521
567
|
divide(t, child) {
|
|
522
|
-
M$
|
|
568
|
+
M$b.multiply(t, M$b.tempInvert(child));
|
|
523
569
|
},
|
|
524
570
|
divideParent(t, parent) {
|
|
525
|
-
M$
|
|
571
|
+
M$b.multiplyParent(t, M$b.tempInvert(parent));
|
|
526
572
|
},
|
|
527
573
|
tempInvert(t) {
|
|
528
|
-
const {tempMatrix: tempMatrix} = M$
|
|
529
|
-
M$
|
|
530
|
-
M$
|
|
574
|
+
const {tempMatrix: tempMatrix} = M$b;
|
|
575
|
+
M$b.copy(tempMatrix, t);
|
|
576
|
+
M$b.invert(tempMatrix);
|
|
531
577
|
return tempMatrix;
|
|
532
578
|
},
|
|
533
579
|
invert(t) {
|
|
@@ -605,7 +651,7 @@ const MatrixHelper = {
|
|
|
605
651
|
}
|
|
606
652
|
t.e = x;
|
|
607
653
|
t.f = y;
|
|
608
|
-
if (origin = origin || around) M$
|
|
654
|
+
if (origin = origin || around) M$b.translateInner(t, -origin.x, -origin.y, !around);
|
|
609
655
|
},
|
|
610
656
|
getLayout(t, origin, around, firstSkewY) {
|
|
611
657
|
const {a: a, b: b, c: c, d: d, e: e, f: f} = t;
|
|
@@ -666,11 +712,11 @@ const MatrixHelper = {
|
|
|
666
712
|
return world;
|
|
667
713
|
},
|
|
668
714
|
reset(t) {
|
|
669
|
-
M$
|
|
715
|
+
M$b.set(t);
|
|
670
716
|
}
|
|
671
717
|
};
|
|
672
718
|
|
|
673
|
-
const M$
|
|
719
|
+
const M$b = MatrixHelper;
|
|
674
720
|
|
|
675
721
|
const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
|
|
676
722
|
|
|
@@ -1014,7 +1060,7 @@ class Matrix {
|
|
|
1014
1060
|
}
|
|
1015
1061
|
}
|
|
1016
1062
|
|
|
1017
|
-
const tempMatrix$
|
|
1063
|
+
const tempMatrix$2 = new Matrix;
|
|
1018
1064
|
|
|
1019
1065
|
const TwoPointBoundsHelper = {
|
|
1020
1066
|
tempPointBounds: {},
|
|
@@ -1164,10 +1210,10 @@ const point$2 = {};
|
|
|
1164
1210
|
|
|
1165
1211
|
const toPoint$5 = {};
|
|
1166
1212
|
|
|
1167
|
-
const tempBounds$
|
|
1213
|
+
const tempBounds$3 = {};
|
|
1168
1214
|
|
|
1169
1215
|
const BoundsHelper = {
|
|
1170
|
-
tempBounds: tempBounds$
|
|
1216
|
+
tempBounds: tempBounds$3,
|
|
1171
1217
|
set(t, x = 0, y = 0, width = 0, height = 0) {
|
|
1172
1218
|
t.x = x;
|
|
1173
1219
|
t.y = y;
|
|
@@ -1218,19 +1264,11 @@ const BoundsHelper = {
|
|
|
1218
1264
|
B.move(t, x, y);
|
|
1219
1265
|
return t;
|
|
1220
1266
|
},
|
|
1221
|
-
toOffsetOutBounds(t, to,
|
|
1222
|
-
if (!to)
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
}
|
|
1227
|
-
if (parent) {
|
|
1228
|
-
to.offsetX = -(B.maxX(parent) - t.x);
|
|
1229
|
-
to.offsetY = -(B.maxY(parent) - t.y);
|
|
1230
|
-
} else {
|
|
1231
|
-
to.offsetX = t.x + t.width;
|
|
1232
|
-
to.offsetY = t.y + t.height;
|
|
1233
|
-
}
|
|
1267
|
+
toOffsetOutBounds(t, to, offsetBounds) {
|
|
1268
|
+
if (!to) to = t; else copy$c(to, t);
|
|
1269
|
+
if (!offsetBounds) offsetBounds = t;
|
|
1270
|
+
to.offsetX = B.maxX(offsetBounds);
|
|
1271
|
+
to.offsetY = B.maxY(offsetBounds);
|
|
1234
1272
|
B.move(to, -to.offsetX, -to.offsetY);
|
|
1235
1273
|
},
|
|
1236
1274
|
scale(t, scaleX, scaleY = scaleX, onlySize) {
|
|
@@ -1244,9 +1282,9 @@ const BoundsHelper = {
|
|
|
1244
1282
|
t.height *= scaleY;
|
|
1245
1283
|
},
|
|
1246
1284
|
tempToOuterOf(t, matrix) {
|
|
1247
|
-
B.copy(tempBounds$
|
|
1248
|
-
B.toOuterOf(tempBounds$
|
|
1249
|
-
return tempBounds$
|
|
1285
|
+
B.copy(tempBounds$3, t);
|
|
1286
|
+
B.toOuterOf(tempBounds$3, matrix);
|
|
1287
|
+
return tempBounds$3;
|
|
1250
1288
|
},
|
|
1251
1289
|
getOuterOf(t, matrix) {
|
|
1252
1290
|
t = Object.assign({}, t);
|
|
@@ -1304,9 +1342,9 @@ const BoundsHelper = {
|
|
|
1304
1342
|
put(t, put, align = "center", putScale = 1, changeSize = true, to) {
|
|
1305
1343
|
to || (to = put);
|
|
1306
1344
|
if (isString(putScale)) putScale = B.getFitScale(t, put, putScale === "cover");
|
|
1307
|
-
tempBounds$
|
|
1308
|
-
tempBounds$
|
|
1309
|
-
AlignHelper.toPoint(align, tempBounds$
|
|
1345
|
+
tempBounds$3.width = changeSize ? put.width *= putScale : put.width * putScale;
|
|
1346
|
+
tempBounds$3.height = changeSize ? put.height *= putScale : put.height * putScale;
|
|
1347
|
+
AlignHelper.toPoint(align, tempBounds$3, t, to, true, true);
|
|
1310
1348
|
},
|
|
1311
1349
|
getSpread(t, spread, side) {
|
|
1312
1350
|
const n = {};
|
|
@@ -1376,7 +1414,7 @@ const BoundsHelper = {
|
|
|
1376
1414
|
first = false;
|
|
1377
1415
|
if (!addMode) copy$c(t, bounds);
|
|
1378
1416
|
} else {
|
|
1379
|
-
add$
|
|
1417
|
+
add$2(t, bounds);
|
|
1380
1418
|
}
|
|
1381
1419
|
}
|
|
1382
1420
|
}
|
|
@@ -1390,7 +1428,7 @@ const BoundsHelper = {
|
|
|
1390
1428
|
B.set(t, point.x, point.y);
|
|
1391
1429
|
},
|
|
1392
1430
|
addPoint(t, point) {
|
|
1393
|
-
add$
|
|
1431
|
+
add$2(t, point, true);
|
|
1394
1432
|
},
|
|
1395
1433
|
getPoints(t) {
|
|
1396
1434
|
const {x: x, y: y, width: width, height: height} = t;
|
|
@@ -1461,7 +1499,7 @@ const BoundsHelper = {
|
|
|
1461
1499
|
|
|
1462
1500
|
const B = BoundsHelper;
|
|
1463
1501
|
|
|
1464
|
-
const {add: add$
|
|
1502
|
+
const {add: add$2, copy: copy$c} = B;
|
|
1465
1503
|
|
|
1466
1504
|
class Bounds {
|
|
1467
1505
|
get minX() {
|
|
@@ -1606,7 +1644,7 @@ class Bounds {
|
|
|
1606
1644
|
}
|
|
1607
1645
|
}
|
|
1608
1646
|
|
|
1609
|
-
const tempBounds$
|
|
1647
|
+
const tempBounds$2 = new Bounds;
|
|
1610
1648
|
|
|
1611
1649
|
class AutoBounds {
|
|
1612
1650
|
constructor(top, right, bottom, left, width, height) {
|
|
@@ -2261,7 +2299,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2261
2299
|
const {pixelRatio: pixelRatio, pixelSnap: pixelSnap} = this, w = this.worldTransform;
|
|
2262
2300
|
if (parentMatrix) multiplyParent$4(matrix, parentMatrix, w);
|
|
2263
2301
|
pixelScale(matrix, pixelRatio, w);
|
|
2264
|
-
if (pixelSnap) {
|
|
2302
|
+
if (pixelSnap && !matrix.ignorePixelSnap) {
|
|
2265
2303
|
if (matrix.half && matrix.half * pixelRatio % 2) w.e = round$4(w.e - .5) + .5, w.f = round$4(w.f - .5) + .5; else w.e = round$4(w.e),
|
|
2266
2304
|
w.f = round$4(w.f);
|
|
2267
2305
|
}
|
|
@@ -2560,14 +2598,14 @@ const {setPoint: setPoint$4, addPoint: addPoint$2} = TwoPointBoundsHelper;
|
|
|
2560
2598
|
|
|
2561
2599
|
const {set: set, toNumberPoints: toNumberPoints$1} = PointHelper;
|
|
2562
2600
|
|
|
2563
|
-
const {M: M$
|
|
2601
|
+
const {M: M$a, L: L$a, C: C$8, Q: Q$7, Z: Z$8} = PathCommandMap;
|
|
2564
2602
|
|
|
2565
2603
|
const tempPoint$2 = {};
|
|
2566
2604
|
|
|
2567
2605
|
const BezierHelper = {
|
|
2568
2606
|
points(data, originPoints, curve, close) {
|
|
2569
2607
|
let points = toNumberPoints$1(originPoints);
|
|
2570
|
-
data.push(M$
|
|
2608
|
+
data.push(M$a, points[0], points[1]);
|
|
2571
2609
|
if (curve && points.length > 5) {
|
|
2572
2610
|
let aX, aY, bX, bY, cX, cY, c1X, c1Y, c2X, c2Y;
|
|
2573
2611
|
let ba, cb, d, len = points.length;
|
|
@@ -2674,7 +2712,7 @@ const BezierHelper = {
|
|
|
2674
2712
|
let startX = x = rotationCos * radiusX * startCos - rotationSin * radiusY * startSin;
|
|
2675
2713
|
let startY = y = rotationSin * radiusX * startCos + rotationCos * radiusY * startSin;
|
|
2676
2714
|
let fromX = cx + x, fromY = cy + y;
|
|
2677
|
-
if (data) data.push(data.length ? L$a : M$
|
|
2715
|
+
if (data) data.push(data.length ? L$a : M$a, fromX, fromY);
|
|
2678
2716
|
if (setPointBounds) setPoint$4(setPointBounds, fromX, fromY);
|
|
2679
2717
|
if (setStartPoint) set(setStartPoint, fromX, fromY);
|
|
2680
2718
|
for (let i = 0; i < parts; i++) {
|
|
@@ -2804,7 +2842,7 @@ const EllipseHelper = {
|
|
|
2804
2842
|
}
|
|
2805
2843
|
};
|
|
2806
2844
|
|
|
2807
|
-
const {M: M$
|
|
2845
|
+
const {M: M$9, m: m, L: L$9, l: l, H: H, h: h, V: V, v: v, C: C$7, c: c, S: S, s: s, Q: Q$6, q: q, T: T, t: t, A: A, a: a, Z: Z$7, z: z, N: N$5, D: D$6, X: X$5, G: G$5, F: F$6, O: O$6, P: P$5, U: U$5} = PathCommandMap;
|
|
2808
2846
|
|
|
2809
2847
|
const {rect: rect$3, roundRect: roundRect$2, arcTo: arcTo$3, arc: arc$3, ellipse: ellipse$4, quadraticCurveTo: quadraticCurveTo$1} = BezierHelper;
|
|
2810
2848
|
|
|
@@ -2896,10 +2934,10 @@ const PathConvert = {
|
|
|
2896
2934
|
old[i + 1] += x;
|
|
2897
2935
|
old[i + 2] += y;
|
|
2898
2936
|
|
|
2899
|
-
case M$
|
|
2937
|
+
case M$9:
|
|
2900
2938
|
x = old[i + 1];
|
|
2901
2939
|
y = old[i + 2];
|
|
2902
|
-
data.push(M$
|
|
2940
|
+
data.push(M$9, x, y);
|
|
2903
2941
|
i += 3;
|
|
2904
2942
|
break;
|
|
2905
2943
|
|
|
@@ -3086,7 +3124,7 @@ const PathConvert = {
|
|
|
3086
3124
|
list.forEach(item => {
|
|
3087
3125
|
switch (item.name) {
|
|
3088
3126
|
case "M":
|
|
3089
|
-
data.push(M$
|
|
3127
|
+
data.push(M$9, item.x, item.y);
|
|
3090
3128
|
break;
|
|
3091
3129
|
|
|
3092
3130
|
case "L":
|
|
@@ -3125,7 +3163,7 @@ const PathConvert = {
|
|
|
3125
3163
|
|
|
3126
3164
|
const {current: current, pushData: pushData, copyData: copyData} = PathConvert;
|
|
3127
3165
|
|
|
3128
|
-
const {M: M$
|
|
3166
|
+
const {M: M$8, 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: F$5, O: O$5, P: P$4, U: U$4} = PathCommandMap;
|
|
3129
3167
|
|
|
3130
3168
|
const {getMinDistanceFrom: getMinDistanceFrom, getRadianFrom: getRadianFrom} = PointHelper;
|
|
3131
3169
|
|
|
@@ -3138,7 +3176,7 @@ const PathCommandDataHelper = {
|
|
|
3138
3176
|
data.length = 0;
|
|
3139
3177
|
},
|
|
3140
3178
|
moveTo(data, x, y) {
|
|
3141
|
-
data.push(M$
|
|
3179
|
+
data.push(M$8, x, y);
|
|
3142
3180
|
},
|
|
3143
3181
|
lineTo(data, x, y) {
|
|
3144
3182
|
data.push(L$8, x, y);
|
|
@@ -3193,12 +3231,12 @@ const PathCommandDataHelper = {
|
|
|
3193
3231
|
},
|
|
3194
3232
|
drawEllipse(data, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
|
|
3195
3233
|
BezierHelper.ellipse(null, x, y, radiusX, radiusY, isNull(rotation) ? 0 : rotation, isNull(startAngle) ? 0 : startAngle, isNull(endAngle) ? 360 : endAngle, anticlockwise, null, null, startPoint);
|
|
3196
|
-
data.push(M$
|
|
3234
|
+
data.push(M$8, startPoint.x, startPoint.y);
|
|
3197
3235
|
ellipse$3(data, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
|
|
3198
3236
|
},
|
|
3199
3237
|
drawArc(data, x, y, radius, startAngle, endAngle, anticlockwise) {
|
|
3200
3238
|
BezierHelper.arc(null, x, y, radius, isNull(startAngle) ? 0 : startAngle, isNull(endAngle) ? 360 : endAngle, anticlockwise, null, null, startPoint);
|
|
3201
|
-
data.push(M$
|
|
3239
|
+
data.push(M$8, startPoint.x, startPoint.y);
|
|
3202
3240
|
arc$2(data, x, y, radius, startAngle, endAngle, anticlockwise);
|
|
3203
3241
|
},
|
|
3204
3242
|
drawPoints(data, points, curve, close) {
|
|
@@ -3300,7 +3338,7 @@ class PathCreator {
|
|
|
3300
3338
|
paint() {}
|
|
3301
3339
|
}
|
|
3302
3340
|
|
|
3303
|
-
const {M: M$
|
|
3341
|
+
const {M: M$7, L: L$7, C: C$5, Q: Q$4, Z: Z$5, N: N$3, D: D$4, X: X$3, G: G$3, F: F$4, O: O$4, P: P$3, U: U$3} = PathCommandMap;
|
|
3304
3342
|
|
|
3305
3343
|
const debug$e = Debug.get("PathDrawer");
|
|
3306
3344
|
|
|
@@ -3312,7 +3350,7 @@ const PathDrawer = {
|
|
|
3312
3350
|
while (i < len) {
|
|
3313
3351
|
command = data[i];
|
|
3314
3352
|
switch (command) {
|
|
3315
|
-
case M$
|
|
3353
|
+
case M$7:
|
|
3316
3354
|
drawer.moveTo(data[i + 1], data[i + 2]);
|
|
3317
3355
|
i += 3;
|
|
3318
3356
|
break;
|
|
@@ -3385,7 +3423,7 @@ const PathDrawer = {
|
|
|
3385
3423
|
}
|
|
3386
3424
|
};
|
|
3387
3425
|
|
|
3388
|
-
const {M: M$
|
|
3426
|
+
const {M: M$6, 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: F$3, O: O$3, P: P$2, U: U$2} = PathCommandMap;
|
|
3389
3427
|
|
|
3390
3428
|
const {toTwoPointBounds: toTwoPointBounds, toTwoPointBoundsByQuadraticCurve: toTwoPointBoundsByQuadraticCurve, arcTo: arcTo$1, arc: arc, ellipse: ellipse$1} = BezierHelper;
|
|
3391
3429
|
|
|
@@ -3420,7 +3458,7 @@ const PathBounds = {
|
|
|
3420
3458
|
}
|
|
3421
3459
|
}
|
|
3422
3460
|
switch (command) {
|
|
3423
|
-
case M$
|
|
3461
|
+
case M$6:
|
|
3424
3462
|
case L$6:
|
|
3425
3463
|
x = data[i + 1];
|
|
3426
3464
|
y = data[i + 2];
|
|
@@ -3520,7 +3558,7 @@ const PathBounds = {
|
|
|
3520
3558
|
}
|
|
3521
3559
|
};
|
|
3522
3560
|
|
|
3523
|
-
const {M: M$
|
|
3561
|
+
const {M: M$5, L: L$5, Z: Z$3} = PathCommandMap;
|
|
3524
3562
|
|
|
3525
3563
|
const {getCenterX: getCenterX, getCenterY: getCenterY} = PointHelper;
|
|
3526
3564
|
|
|
@@ -3535,16 +3573,16 @@ const PathCorner = {
|
|
|
3535
3573
|
while (i < len) {
|
|
3536
3574
|
command = data[i];
|
|
3537
3575
|
switch (command) {
|
|
3538
|
-
case M$
|
|
3576
|
+
case M$5:
|
|
3539
3577
|
startX = lastX = data[i + 1];
|
|
3540
3578
|
startY = lastY = data[i + 2];
|
|
3541
3579
|
i += 3;
|
|
3542
3580
|
if (data[i] === L$5) {
|
|
3543
3581
|
secondX = data[i + 1];
|
|
3544
3582
|
secondY = data[i + 2];
|
|
3545
|
-
smooth.push(M$
|
|
3583
|
+
smooth.push(M$5, getCenterX(startX, secondX), getCenterY(startY, secondY));
|
|
3546
3584
|
} else {
|
|
3547
|
-
smooth.push(M$
|
|
3585
|
+
smooth.push(M$5, startX, startY);
|
|
3548
3586
|
}
|
|
3549
3587
|
break;
|
|
3550
3588
|
|
|
@@ -3985,7 +4023,7 @@ const I$1 = ImageManager;
|
|
|
3985
4023
|
|
|
3986
4024
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
3987
4025
|
|
|
3988
|
-
const {floor: floor$2, max: max$
|
|
4026
|
+
const {floor: floor$2, max: max$4} = Math;
|
|
3989
4027
|
|
|
3990
4028
|
class LeaferImage {
|
|
3991
4029
|
get url() {
|
|
@@ -4074,7 +4112,7 @@ class LeaferImage {
|
|
|
4074
4112
|
}
|
|
4075
4113
|
if (data) return data;
|
|
4076
4114
|
}
|
|
4077
|
-
const canvas = Platform.origin.createCanvas(max$
|
|
4115
|
+
const canvas = Platform.origin.createCanvas(max$4(floor$2(width + (xGap || 0)), 1), max$4(floor$2(height + (yGap || 0)), 1));
|
|
4078
4116
|
const ctx = canvas.getContext("2d");
|
|
4079
4117
|
if (opacity) ctx.globalAlpha = opacity;
|
|
4080
4118
|
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
@@ -4868,7 +4906,7 @@ const WaitHelper = {
|
|
|
4868
4906
|
|
|
4869
4907
|
const {getRelativeWorld: getRelativeWorld$1, updateBounds: updateBounds$3} = LeafHelper;
|
|
4870
4908
|
|
|
4871
|
-
const {toOuterOf: toOuterOf$
|
|
4909
|
+
const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$8} = BoundsHelper;
|
|
4872
4910
|
|
|
4873
4911
|
const localContent = "_localContentBounds";
|
|
4874
4912
|
|
|
@@ -4891,7 +4929,7 @@ class LeafLayout {
|
|
|
4891
4929
|
this._renderBounds = bounds;
|
|
4892
4930
|
}
|
|
4893
4931
|
get localContentBounds() {
|
|
4894
|
-
toOuterOf$
|
|
4932
|
+
toOuterOf$3(this.contentBounds, this.leaf.__localMatrix, this[localContent] || (this[localContent] = {}));
|
|
4895
4933
|
return this[localContent];
|
|
4896
4934
|
}
|
|
4897
4935
|
get localStrokeBounds() {
|
|
@@ -4901,15 +4939,15 @@ class LeafLayout {
|
|
|
4901
4939
|
return this._localRenderBounds || this;
|
|
4902
4940
|
}
|
|
4903
4941
|
get worldContentBounds() {
|
|
4904
|
-
toOuterOf$
|
|
4942
|
+
toOuterOf$3(this.contentBounds, this.leaf.__world, this[worldContent] || (this[worldContent] = {}));
|
|
4905
4943
|
return this[worldContent];
|
|
4906
4944
|
}
|
|
4907
4945
|
get worldBoxBounds() {
|
|
4908
|
-
toOuterOf$
|
|
4946
|
+
toOuterOf$3(this.boxBounds, this.leaf.__world, this[worldBox] || (this[worldBox] = {}));
|
|
4909
4947
|
return this[worldBox];
|
|
4910
4948
|
}
|
|
4911
4949
|
get worldStrokeBounds() {
|
|
4912
|
-
toOuterOf$
|
|
4950
|
+
toOuterOf$3(this.strokeBounds, this.leaf.__world, this[worldStroke] || (this[worldStroke] = {}));
|
|
4913
4951
|
return this[worldStroke];
|
|
4914
4952
|
}
|
|
4915
4953
|
get a() {
|
|
@@ -5761,14 +5799,14 @@ const {updateMatrix: updateMatrix$3, updateAllMatrix: updateAllMatrix$3} = LeafH
|
|
|
5761
5799
|
|
|
5762
5800
|
const {updateBounds: updateBounds$2} = BranchHelper;
|
|
5763
5801
|
|
|
5764
|
-
const {toOuterOf: toOuterOf$
|
|
5802
|
+
const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$3, copy: copy$7} = BoundsHelper;
|
|
5765
5803
|
|
|
5766
5804
|
const {toBounds: toBounds$1} = PathBounds;
|
|
5767
5805
|
|
|
5768
5806
|
const LeafBounds = {
|
|
5769
5807
|
__updateWorldBounds() {
|
|
5770
5808
|
const layout = this.__layout;
|
|
5771
|
-
toOuterOf$
|
|
5809
|
+
toOuterOf$2(layout.renderBounds, this.__world, this.__world);
|
|
5772
5810
|
if (layout.resized) {
|
|
5773
5811
|
if (layout.resized === "inner") this.__onUpdateSize();
|
|
5774
5812
|
if (this.__hasLocalEvent) BoundsEvent.emitLocal(this);
|
|
@@ -5824,13 +5862,13 @@ const LeafBounds = {
|
|
|
5824
5862
|
__updateLocalBoxBounds() {
|
|
5825
5863
|
if (this.__hasMotionPath) this.__updateMotionPath();
|
|
5826
5864
|
if (this.__hasAutoLayout) this.__updateAutoLayout();
|
|
5827
|
-
toOuterOf$
|
|
5865
|
+
toOuterOf$2(this.__layout.boxBounds, this.__local, this.__local);
|
|
5828
5866
|
},
|
|
5829
5867
|
__updateLocalStrokeBounds() {
|
|
5830
|
-
toOuterOf$
|
|
5868
|
+
toOuterOf$2(this.__layout.strokeBounds, this.__localMatrix, this.__layout.localStrokeBounds);
|
|
5831
5869
|
},
|
|
5832
5870
|
__updateLocalRenderBounds() {
|
|
5833
|
-
toOuterOf$
|
|
5871
|
+
toOuterOf$2(this.__layout.renderBounds, this.__localMatrix, this.__layout.localRenderBounds);
|
|
5834
5872
|
},
|
|
5835
5873
|
__updateBoxBounds(_secondLayout, _bounds) {
|
|
5836
5874
|
const b = this.__layout.boxBounds;
|
|
@@ -5868,11 +5906,11 @@ const LeafBounds = {
|
|
|
5868
5906
|
},
|
|
5869
5907
|
__updateStrokeBounds(_bounds) {
|
|
5870
5908
|
const layout = this.__layout;
|
|
5871
|
-
copyAndSpread$
|
|
5909
|
+
copyAndSpread$3(layout.strokeBounds, layout.boxBounds, layout.strokeBoxSpread);
|
|
5872
5910
|
},
|
|
5873
5911
|
__updateRenderBounds(_bounds) {
|
|
5874
|
-
const layout = this.__layout;
|
|
5875
|
-
|
|
5912
|
+
const layout = this.__layout, {renderSpread: renderSpread} = layout;
|
|
5913
|
+
isNumber(renderSpread) && renderSpread <= 0 ? copy$7(layout.renderBounds, layout.strokeBounds) : copyAndSpread$3(layout.renderBounds, layout.boxBounds, renderSpread);
|
|
5876
5914
|
}
|
|
5877
5915
|
};
|
|
5878
5916
|
|
|
@@ -5970,11 +6008,13 @@ const tempScaleData$1 = {};
|
|
|
5970
6008
|
|
|
5971
6009
|
const {LEAF: LEAF, create: create} = IncrementId;
|
|
5972
6010
|
|
|
6011
|
+
const {stintSet: stintSet$3} = DataHelper;
|
|
6012
|
+
|
|
5973
6013
|
const {toInnerPoint: toInnerPoint, toOuterPoint: toOuterPoint, multiplyParent: multiplyParent$1} = MatrixHelper;
|
|
5974
6014
|
|
|
5975
|
-
const {toOuterOf: toOuterOf} = BoundsHelper;
|
|
6015
|
+
const {toOuterOf: toOuterOf$1} = BoundsHelper;
|
|
5976
6016
|
|
|
5977
|
-
const {copy: copy$6, move: move$
|
|
6017
|
+
const {copy: copy$6, move: move$8} = PointHelper;
|
|
5978
6018
|
|
|
5979
6019
|
const {moveLocal: moveLocal, zoomOfLocal: zoomOfLocal, rotateOfLocal: rotateOfLocal, skewOfLocal: skewOfLocal, moveWorld: moveWorld, zoomOfWorld: zoomOfWorld, rotateOfWorld: rotateOfWorld, skewOfWorld: skewOfWorld, transform: transform, transformWorld: transformWorld, setTransform: setTransform, getFlipTransform: getFlipTransform, getLocalOrigin: getLocalOrigin, getRelativeWorld: getRelativeWorld, drop: drop} = LeafHelper;
|
|
5980
6020
|
|
|
@@ -6250,8 +6290,9 @@ let Leaf = class Leaf {
|
|
|
6250
6290
|
if (!this.__cameraWorld) this.__cameraWorld = {};
|
|
6251
6291
|
const cameraWorld = this.__cameraWorld, world = this.__world;
|
|
6252
6292
|
multiplyParent$1(world, options.matrix, cameraWorld, undefined, world);
|
|
6253
|
-
toOuterOf(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
6254
|
-
cameraWorld
|
|
6293
|
+
toOuterOf$1(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
6294
|
+
stintSet$3(cameraWorld, "half", world.half);
|
|
6295
|
+
stintSet$3(cameraWorld, "ignorePixelSnap", world.ignorePixelSnap);
|
|
6255
6296
|
return cameraWorld;
|
|
6256
6297
|
} else {
|
|
6257
6298
|
return this.__world;
|
|
@@ -6285,7 +6326,7 @@ let Leaf = class Leaf {
|
|
|
6285
6326
|
getWorldBounds(inner, relative, change) {
|
|
6286
6327
|
const matrix = relative ? getRelativeWorld(this, relative) : this.worldTransform;
|
|
6287
6328
|
const to = change ? inner : {};
|
|
6288
|
-
toOuterOf(inner, matrix, to);
|
|
6329
|
+
toOuterOf$1(inner, matrix, to);
|
|
6289
6330
|
return to;
|
|
6290
6331
|
}
|
|
6291
6332
|
worldToLocal(world, to, distance, relative) {
|
|
@@ -6318,7 +6359,7 @@ let Leaf = class Leaf {
|
|
|
6318
6359
|
}
|
|
6319
6360
|
getBoxPointByInner(inner, _relative, _distance, change) {
|
|
6320
6361
|
const point = change ? inner : Object.assign({}, inner), {x: x, y: y} = this.boxBounds;
|
|
6321
|
-
move$
|
|
6362
|
+
move$8(point, -x, -y);
|
|
6322
6363
|
return point;
|
|
6323
6364
|
}
|
|
6324
6365
|
getInnerPoint(world, relative, distance, change) {
|
|
@@ -6328,7 +6369,7 @@ let Leaf = class Leaf {
|
|
|
6328
6369
|
}
|
|
6329
6370
|
getInnerPointByBox(box, _relative, _distance, change) {
|
|
6330
6371
|
const point = change ? box : Object.assign({}, box), {x: x, y: y} = this.boxBounds;
|
|
6331
|
-
move$
|
|
6372
|
+
move$8(point, x, y);
|
|
6332
6373
|
return point;
|
|
6333
6374
|
}
|
|
6334
6375
|
getInnerPointByLocal(local, _relative, distance, change) {
|
|
@@ -6774,7 +6815,7 @@ class LeafLevelList {
|
|
|
6774
6815
|
}
|
|
6775
6816
|
}
|
|
6776
6817
|
|
|
6777
|
-
const version = "1.9.
|
|
6818
|
+
const version = "1.9.9";
|
|
6778
6819
|
|
|
6779
6820
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6780
6821
|
get allowBackgroundColor() {
|
|
@@ -7352,6 +7393,7 @@ class Renderer {
|
|
|
7352
7393
|
usePartRender: true,
|
|
7353
7394
|
maxFPS: 120
|
|
7354
7395
|
};
|
|
7396
|
+
this.frames = [];
|
|
7355
7397
|
this.target = target;
|
|
7356
7398
|
this.canvas = canvas;
|
|
7357
7399
|
if (userConfig) this.config = DataHelper.default(userConfig, this.config);
|
|
@@ -7504,12 +7546,15 @@ class Renderer {
|
|
|
7504
7546
|
const target = this.target;
|
|
7505
7547
|
if (this.requestTime || !target) return;
|
|
7506
7548
|
if (target.parentApp) return target.parentApp.requestRender(false);
|
|
7507
|
-
|
|
7549
|
+
this.requestTime = this.frameTime || Date.now();
|
|
7508
7550
|
const render = () => {
|
|
7509
|
-
const nowFPS = 1e3 / (Date.now() - requestTime);
|
|
7551
|
+
const nowFPS = 1e3 / ((this.frameTime = Date.now()) - this.requestTime);
|
|
7510
7552
|
const {maxFPS: maxFPS} = this.config;
|
|
7511
|
-
if (maxFPS && nowFPS > maxFPS
|
|
7512
|
-
|
|
7553
|
+
if (maxFPS && nowFPS > maxFPS) return Platform.requestRender(render);
|
|
7554
|
+
const {frames: frames} = this;
|
|
7555
|
+
if (frames.length > 30) frames.shift();
|
|
7556
|
+
frames.push(nowFPS);
|
|
7557
|
+
this.FPS = Math.round(frames.reduce((a, b) => a + b, 0) / frames.length);
|
|
7513
7558
|
this.requestTime = 0;
|
|
7514
7559
|
this.checkRender();
|
|
7515
7560
|
};
|
|
@@ -8165,39 +8210,41 @@ class CanvasData extends RectData {
|
|
|
8165
8210
|
}
|
|
8166
8211
|
}
|
|
8167
8212
|
|
|
8213
|
+
const {max: max$3, add: add$1} = FourNumberHelper;
|
|
8214
|
+
|
|
8168
8215
|
const UIBounds = {
|
|
8169
8216
|
__updateStrokeSpread() {
|
|
8170
|
-
let
|
|
8217
|
+
let spread = 0, boxSpread = 0;
|
|
8171
8218
|
const data = this.__, {strokeAlign: strokeAlign, __maxStrokeWidth: strokeWidth} = data, box = this.__box;
|
|
8172
8219
|
if ((data.stroke || data.hitStroke === "all") && strokeWidth && strokeAlign !== "inside") {
|
|
8173
|
-
|
|
8220
|
+
boxSpread = spread = strokeAlign === "center" ? strokeWidth / 2 : strokeWidth;
|
|
8174
8221
|
if (!data.__boxStroke) {
|
|
8175
|
-
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 *
|
|
8222
|
+
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * spread;
|
|
8176
8223
|
const storkeCapAddWidth = data.strokeCap === "none" ? 0 : strokeWidth;
|
|
8177
|
-
|
|
8224
|
+
spread += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
8178
8225
|
}
|
|
8179
8226
|
}
|
|
8180
|
-
if (data.__useArrow)
|
|
8227
|
+
if (data.__useArrow) spread += strokeWidth * 5;
|
|
8181
8228
|
if (box) {
|
|
8182
|
-
|
|
8183
|
-
|
|
8229
|
+
spread = max$3(spread, box.__layout.strokeSpread = box.__updateStrokeSpread());
|
|
8230
|
+
boxSpread = Math.max(boxSpread, box.__layout.strokeBoxSpread);
|
|
8184
8231
|
}
|
|
8185
|
-
this.__layout.strokeBoxSpread =
|
|
8186
|
-
return
|
|
8232
|
+
this.__layout.strokeBoxSpread = boxSpread;
|
|
8233
|
+
return spread;
|
|
8187
8234
|
},
|
|
8188
8235
|
__updateRenderSpread() {
|
|
8189
|
-
let
|
|
8190
|
-
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__;
|
|
8191
|
-
if (shadow)
|
|
8192
|
-
if (blur)
|
|
8193
|
-
if (filter)
|
|
8194
|
-
if (renderSpread)
|
|
8195
|
-
|
|
8196
|
-
|
|
8197
|
-
if (
|
|
8198
|
-
|
|
8199
|
-
|
|
8200
|
-
return
|
|
8236
|
+
let spread = 0;
|
|
8237
|
+
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__, {strokeSpread: strokeSpread} = this.__layout, box = this.__box;
|
|
8238
|
+
if (shadow) spread = Effect.getShadowRenderSpread(this, shadow);
|
|
8239
|
+
if (blur) spread = max$3(spread, blur);
|
|
8240
|
+
if (filter) spread = add$1(spread, Filter.getSpread(filter));
|
|
8241
|
+
if (renderSpread) spread = add$1(spread, renderSpread);
|
|
8242
|
+
if (strokeSpread) spread = add$1(spread, strokeSpread);
|
|
8243
|
+
let shapeSpread = spread;
|
|
8244
|
+
if (innerShadow) shapeSpread = max$3(shapeSpread, Effect.getInnerShadowSpread(this, innerShadow));
|
|
8245
|
+
if (backgroundBlur) shapeSpread = max$3(shapeSpread, backgroundBlur);
|
|
8246
|
+
this.__layout.renderShapeSpread = shapeSpread;
|
|
8247
|
+
return box ? max$3(box.__updateRenderSpread(), spread) : spread;
|
|
8201
8248
|
}
|
|
8202
8249
|
};
|
|
8203
8250
|
|
|
@@ -9508,7 +9555,7 @@ __decorate([ resizeType() ], Canvas.prototype, "contextSettings", void 0);
|
|
|
9508
9555
|
|
|
9509
9556
|
Canvas = __decorate([ registerUI() ], Canvas);
|
|
9510
9557
|
|
|
9511
|
-
const {copyAndSpread: copyAndSpread$
|
|
9558
|
+
const {copyAndSpread: copyAndSpread$2, includes: includes, spread: spread, setList: setList} = BoundsHelper;
|
|
9512
9559
|
|
|
9513
9560
|
let Text = class Text extends UI {
|
|
9514
9561
|
get __tag() {
|
|
@@ -9555,13 +9602,13 @@ let Text = class Text extends UI {
|
|
|
9555
9602
|
if (this.isOverflow) setList(data.__textBoxBounds = {}, [ b, contentBounds ]), layout.renderChanged = true; else data.__textBoxBounds = b;
|
|
9556
9603
|
}
|
|
9557
9604
|
__updateRenderSpread() {
|
|
9558
|
-
let
|
|
9559
|
-
if (!
|
|
9560
|
-
return
|
|
9605
|
+
let spread = super.__updateRenderSpread();
|
|
9606
|
+
if (!spread) spread = this.isOverflow ? 1 : 0;
|
|
9607
|
+
return spread;
|
|
9561
9608
|
}
|
|
9562
9609
|
__updateRenderBounds() {
|
|
9563
9610
|
const {renderBounds: renderBounds, renderSpread: renderSpread} = this.__layout;
|
|
9564
|
-
copyAndSpread$
|
|
9611
|
+
copyAndSpread$2(renderBounds, this.__.__textBoxBounds, renderSpread);
|
|
9565
9612
|
if (this.__box) this.__box.__layout.renderBounds = renderBounds;
|
|
9566
9613
|
}
|
|
9567
9614
|
__updateChange() {
|
|
@@ -9987,9 +10034,9 @@ let DragEvent = class DragEvent extends PointerEvent {
|
|
|
9987
10034
|
static setData(data) {
|
|
9988
10035
|
this.data = data;
|
|
9989
10036
|
}
|
|
9990
|
-
static getValidMove(leaf,
|
|
9991
|
-
const move = leaf.getLocalPoint(
|
|
9992
|
-
PointHelper.move(move,
|
|
10037
|
+
static getValidMove(leaf, localStart, worldTotal, checkLimit = true) {
|
|
10038
|
+
const move = leaf.getLocalPoint(worldTotal, null, true);
|
|
10039
|
+
PointHelper.move(move, localStart.x - leaf.x, localStart.y - leaf.y);
|
|
9993
10040
|
if (checkLimit) this.limitMove(leaf, move);
|
|
9994
10041
|
DragBoundsHelper.axisMove(leaf, move);
|
|
9995
10042
|
return move;
|
|
@@ -11019,8 +11066,8 @@ ui$5.__updateHitCanvas = function() {
|
|
|
11019
11066
|
if (isHitPixel) {
|
|
11020
11067
|
const {renderBounds: renderBounds} = this.__layout;
|
|
11021
11068
|
const size = Platform.image.hitCanvasSize;
|
|
11022
|
-
const scale = h.hitScale = tempBounds$
|
|
11023
|
-
const {x: x, y: y, width: width, height: height} = tempBounds$
|
|
11069
|
+
const scale = h.hitScale = tempBounds$2.set(0, 0, size, size).getFitMatrix(renderBounds).a;
|
|
11070
|
+
const {x: x, y: y, width: width, height: height} = tempBounds$2.set(renderBounds).scale(scale);
|
|
11024
11071
|
h.resize({
|
|
11025
11072
|
width: width,
|
|
11026
11073
|
height: height,
|
|
@@ -11117,8 +11164,8 @@ canvas$1.hitStroke = function(point, strokeWidth) {
|
|
|
11117
11164
|
canvas$1.hitPixel = function(radiusPoint, offset, scale = 1) {
|
|
11118
11165
|
let {x: x, y: y, radiusX: radiusX, radiusY: radiusY} = radiusPoint;
|
|
11119
11166
|
if (offset) x -= offset.x, y -= offset.y;
|
|
11120
|
-
tempBounds$
|
|
11121
|
-
const {data: data} = this.context.getImageData(tempBounds$
|
|
11167
|
+
tempBounds$2.set(x - radiusX, y - radiusY, radiusX * 2, radiusY * 2).scale(scale).ceil();
|
|
11168
|
+
const {data: data} = this.context.getImageData(tempBounds$2.x, tempBounds$2.y, tempBounds$2.width || 1, tempBounds$2.height || 1);
|
|
11122
11169
|
for (let i = 0, len = data.length; i < len; i += 4) {
|
|
11123
11170
|
if (data[i + 3] > 0) return true;
|
|
11124
11171
|
}
|
|
@@ -11430,24 +11477,29 @@ function drawOutside(stroke, ui, canvas) {
|
|
|
11430
11477
|
}
|
|
11431
11478
|
}
|
|
11432
11479
|
|
|
11433
|
-
const {getSpread: getSpread, getOuterOf: getOuterOf, getByMove: getByMove, getIntersectData: getIntersectData} = BoundsHelper;
|
|
11480
|
+
const {getSpread: getSpread, copyAndSpread: copyAndSpread$1, toOuterOf: toOuterOf, getOuterOf: getOuterOf, getByMove: getByMove, move: move$7, getIntersectData: getIntersectData} = BoundsHelper;
|
|
11481
|
+
|
|
11482
|
+
const tempBounds$1 = {};
|
|
11434
11483
|
|
|
11435
11484
|
function shape(ui, current, options) {
|
|
11436
11485
|
const canvas = current.getSameCanvas();
|
|
11437
|
-
const nowWorld = ui.__nowWorld,
|
|
11438
|
-
|
|
11486
|
+
const currentBounds = current.bounds, nowWorld = ui.__nowWorld, layout = ui.__layout;
|
|
11487
|
+
const nowWorldShapeBounds = ui.__nowWorldShapeBounds || (ui.__nowWorldShapeBounds = {});
|
|
11488
|
+
toOuterOf(layout.strokeSpread ? (copyAndSpread$1(tempBounds$1, layout.boxBounds, layout.strokeSpread),
|
|
11489
|
+
tempBounds$1) : layout.boxBounds, nowWorld, nowWorldShapeBounds);
|
|
11490
|
+
let bounds, renderBounds, matrix, fitMatrix, shapeBounds, worldCanvas;
|
|
11439
11491
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true);
|
|
11440
|
-
if (currentBounds.includes(
|
|
11492
|
+
if (currentBounds.includes(nowWorldShapeBounds)) {
|
|
11441
11493
|
worldCanvas = canvas;
|
|
11442
|
-
bounds = shapeBounds =
|
|
11494
|
+
bounds = shapeBounds = nowWorldShapeBounds;
|
|
11495
|
+
renderBounds = nowWorld;
|
|
11443
11496
|
} else {
|
|
11444
|
-
const {renderShapeSpread: spread} = ui.__layout;
|
|
11445
11497
|
let worldClipBounds;
|
|
11446
11498
|
if (Platform.fullImageShadow) {
|
|
11447
|
-
worldClipBounds =
|
|
11499
|
+
worldClipBounds = nowWorldShapeBounds;
|
|
11448
11500
|
} else {
|
|
11449
|
-
const spreadBounds =
|
|
11450
|
-
worldClipBounds = getIntersectData(spreadBounds,
|
|
11501
|
+
const spreadBounds = layout.renderShapeSpread ? getSpread(currentBounds, FourNumberHelper.swapAndScale(layout.renderShapeSpread, scaleX, scaleY)) : currentBounds;
|
|
11502
|
+
worldClipBounds = getIntersectData(spreadBounds, nowWorldShapeBounds);
|
|
11451
11503
|
}
|
|
11452
11504
|
fitMatrix = currentBounds.getFitMatrix(worldClipBounds);
|
|
11453
11505
|
let {a: fitScaleX, d: fitScaleY} = fitMatrix;
|
|
@@ -11457,8 +11509,10 @@ function shape(ui, current, options) {
|
|
|
11457
11509
|
scaleX *= fitScaleX;
|
|
11458
11510
|
scaleY *= fitScaleY;
|
|
11459
11511
|
}
|
|
11460
|
-
shapeBounds = getOuterOf(
|
|
11512
|
+
shapeBounds = getOuterOf(nowWorldShapeBounds, fitMatrix);
|
|
11461
11513
|
bounds = getByMove(shapeBounds, -fitMatrix.e, -fitMatrix.f);
|
|
11514
|
+
renderBounds = getOuterOf(nowWorld, fitMatrix);
|
|
11515
|
+
move$7(renderBounds, -fitMatrix.e, -fitMatrix.f);
|
|
11462
11516
|
const userMatrix = options.matrix;
|
|
11463
11517
|
if (userMatrix) {
|
|
11464
11518
|
matrix = new Matrix(fitMatrix);
|
|
@@ -11477,6 +11531,7 @@ function shape(ui, current, options) {
|
|
|
11477
11531
|
matrix: matrix,
|
|
11478
11532
|
fitMatrix: fitMatrix,
|
|
11479
11533
|
bounds: bounds,
|
|
11534
|
+
renderBounds: renderBounds,
|
|
11480
11535
|
worldCanvas: worldCanvas,
|
|
11481
11536
|
shapeBounds: shapeBounds,
|
|
11482
11537
|
scaleX: scaleX,
|
|
@@ -11580,7 +11635,7 @@ const PaintModule = {
|
|
|
11580
11635
|
shape: shape
|
|
11581
11636
|
};
|
|
11582
11637
|
|
|
11583
|
-
let origin$1 = {}, tempMatrix = getMatrixData();
|
|
11638
|
+
let origin$1 = {}, tempMatrix$1 = getMatrixData();
|
|
11584
11639
|
|
|
11585
11640
|
const {get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate$2, skew: skewHelper} = MatrixHelper;
|
|
11586
11641
|
|
|
@@ -11595,12 +11650,12 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
11595
11650
|
data.transform = transform;
|
|
11596
11651
|
}
|
|
11597
11652
|
|
|
11598
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew,
|
|
11653
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipScaleX, clipScaleY) {
|
|
11599
11654
|
const transform = get$3();
|
|
11600
11655
|
layout$3(transform, box, x, y, scaleX, scaleY, rotation, skew);
|
|
11601
|
-
if (
|
|
11602
|
-
tempMatrix.a =
|
|
11603
|
-
multiplyParent(transform, tempMatrix);
|
|
11656
|
+
if (clipScaleX) {
|
|
11657
|
+
tempMatrix$1.a = clipScaleX, tempMatrix$1.d = clipScaleY;
|
|
11658
|
+
multiplyParent(transform, tempMatrix$1);
|
|
11604
11659
|
}
|
|
11605
11660
|
data.transform = transform;
|
|
11606
11661
|
}
|
|
@@ -11701,7 +11756,12 @@ function getPatternData(paint, box, image) {
|
|
|
11701
11756
|
|
|
11702
11757
|
case "normal":
|
|
11703
11758
|
case "clip":
|
|
11704
|
-
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew)
|
|
11759
|
+
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew) {
|
|
11760
|
+
let clipScaleX, clipScaleY;
|
|
11761
|
+
if (clipSize) clipScaleX = box.width / clipSize.width, clipScaleY = box.height / clipSize.height;
|
|
11762
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, clipScaleX, clipScaleY);
|
|
11763
|
+
if (clipScaleX) scaleX = scaleX ? scaleX * clipScaleX : scaleX, scaleY = scaleY ? scaleY * clipScaleY : clipScaleY;
|
|
11764
|
+
}
|
|
11705
11765
|
break;
|
|
11706
11766
|
|
|
11707
11767
|
case "repeat":
|
|
@@ -11859,7 +11919,7 @@ function ignoreRender(ui, value) {
|
|
|
11859
11919
|
|
|
11860
11920
|
const {get: get$1, scale: scale$2, copy: copy$4} = MatrixHelper;
|
|
11861
11921
|
|
|
11862
|
-
const {floor: floor$1, ceil: ceil$1, max: max$
|
|
11922
|
+
const {floor: floor$1, ceil: ceil$1, max: max$2, abs: abs$4} = Math;
|
|
11863
11923
|
|
|
11864
11924
|
function createPattern(ui, paint, pixelRatio) {
|
|
11865
11925
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
@@ -11908,8 +11968,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11908
11968
|
if (transform || scaleX !== 1 || scaleY !== 1) {
|
|
11909
11969
|
const canvasWidth = width + (xGap || 0);
|
|
11910
11970
|
const canvasHeight = height + (yGap || 0);
|
|
11911
|
-
scaleX /= canvasWidth / max$
|
|
11912
|
-
scaleY /= canvasHeight / max$
|
|
11971
|
+
scaleX /= canvasWidth / max$2(floor$1(canvasWidth), 1);
|
|
11972
|
+
scaleY /= canvasHeight / max$2(floor$1(canvasHeight), 1);
|
|
11913
11973
|
if (!imageMatrix) {
|
|
11914
11974
|
imageMatrix = get$1();
|
|
11915
11975
|
if (transform) copy$4(imageMatrix, transform);
|
|
@@ -11935,17 +11995,15 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
11935
11995
|
if (allowDraw) {
|
|
11936
11996
|
if (data.repeat) {
|
|
11937
11997
|
allowDraw = false;
|
|
11938
|
-
} else {
|
|
11939
|
-
|
|
11940
|
-
|
|
11941
|
-
|
|
11942
|
-
|
|
11943
|
-
|
|
11944
|
-
|
|
11945
|
-
height *= data.scaleY;
|
|
11946
|
-
}
|
|
11947
|
-
allowDraw = width * height > Platform.image.maxCacheSize;
|
|
11998
|
+
} else if (!(paint.changeful || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || Export.running)) {
|
|
11999
|
+
let {width: width, height: height} = data;
|
|
12000
|
+
width *= scaleX * pixelRatio;
|
|
12001
|
+
height *= scaleY * pixelRatio;
|
|
12002
|
+
if (data.scaleX) {
|
|
12003
|
+
width *= data.scaleX;
|
|
12004
|
+
height *= data.scaleY;
|
|
11948
12005
|
}
|
|
12006
|
+
allowDraw = width * height > Platform.image.maxCacheSize;
|
|
11949
12007
|
}
|
|
11950
12008
|
}
|
|
11951
12009
|
if (allowDraw) {
|
|
@@ -12125,75 +12183,82 @@ const PaintGradientModule = {
|
|
|
12125
12183
|
getTransform: getTransform
|
|
12126
12184
|
};
|
|
12127
12185
|
|
|
12128
|
-
const {copy: copy$3, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper;
|
|
12186
|
+
const {copy: copy$3, move: move$6, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max$1} = Math;
|
|
12129
12187
|
|
|
12130
|
-
const tempBounds = {};
|
|
12188
|
+
const tempBounds = {}, tempMatrix = new Matrix;
|
|
12131
12189
|
|
|
12132
12190
|
const offsetOutBounds$1 = {};
|
|
12133
12191
|
|
|
12134
12192
|
function shadow$1(ui, current, shape) {
|
|
12135
|
-
let copyBounds,
|
|
12136
|
-
const {__nowWorld: nowWorld
|
|
12193
|
+
let copyBounds, transform;
|
|
12194
|
+
const {__nowWorld: nowWorld} = ui;
|
|
12137
12195
|
const {shadow: shadow} = ui.__;
|
|
12138
|
-
const {worldCanvas: worldCanvas, bounds: bounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
12196
|
+
const {worldCanvas: worldCanvas, bounds: bounds, renderBounds: renderBounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
12139
12197
|
const other = current.getSameCanvas();
|
|
12140
12198
|
const end = shadow.length - 1;
|
|
12141
|
-
toOffsetOutBounds$1(bounds, offsetOutBounds$1);
|
|
12199
|
+
toOffsetOutBounds$1(bounds, offsetOutBounds$1, renderBounds);
|
|
12142
12200
|
shadow.forEach((item, index) => {
|
|
12143
12201
|
let otherScale = 1;
|
|
12144
12202
|
if (item.scaleFixed) {
|
|
12145
12203
|
const sx = Math.abs(nowWorld.scaleX);
|
|
12146
12204
|
if (sx > 1) otherScale = 1 / sx;
|
|
12147
12205
|
}
|
|
12148
|
-
other.setWorldShadow(offsetOutBounds$1.offsetX + item.x * scaleX * otherScale, offsetOutBounds$1.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale, ColorConvert.string(item.color));
|
|
12149
|
-
|
|
12150
|
-
|
|
12151
|
-
|
|
12206
|
+
other.setWorldShadow(offsetOutBounds$1.offsetX + (item.x || 0) * scaleX * otherScale, offsetOutBounds$1.offsetY + (item.y || 0) * scaleY * otherScale, (item.blur || 0) * scaleX * otherScale, ColorConvert.string(item.color));
|
|
12207
|
+
transform = Effect.getShadowTransform(ui, other, shape, item, offsetOutBounds$1, otherScale);
|
|
12208
|
+
if (transform) other.setTransform(transform);
|
|
12209
|
+
drawWorldShadow(other, offsetOutBounds$1, shape);
|
|
12210
|
+
if (transform) other.resetTransform();
|
|
12211
|
+
copyBounds = renderBounds;
|
|
12152
12212
|
if (item.box) {
|
|
12153
12213
|
other.restore();
|
|
12154
12214
|
other.save();
|
|
12155
12215
|
if (worldCanvas) {
|
|
12156
|
-
other.copyWorld(other,
|
|
12216
|
+
other.copyWorld(other, renderBounds, nowWorld, "copy");
|
|
12157
12217
|
copyBounds = nowWorld;
|
|
12158
12218
|
}
|
|
12159
12219
|
worldCanvas ? other.copyWorld(worldCanvas, nowWorld, nowWorld, "destination-out") : other.copyWorld(shape.canvas, shapeBounds, bounds, "destination-out");
|
|
12160
12220
|
}
|
|
12161
|
-
|
|
12221
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
12162
12222
|
if (end && index < end) other.clearWorld(copyBounds);
|
|
12163
12223
|
});
|
|
12164
12224
|
other.recycle(copyBounds);
|
|
12165
12225
|
}
|
|
12166
12226
|
|
|
12167
|
-
function
|
|
12168
|
-
let
|
|
12169
|
-
shadow.forEach(item =>
|
|
12170
|
-
|
|
12227
|
+
function getShadowRenderSpread(_ui, shadow) {
|
|
12228
|
+
let top = 0, right = 0, bottom = 0, left = 0, x, y, spread, blur;
|
|
12229
|
+
shadow.forEach(item => {
|
|
12230
|
+
x = item.x || 0, y = item.y || 0, spread = item.spread || 0, blur = (item.blur || 0) * 1.5;
|
|
12231
|
+
top = max$1(top, spread + blur - y);
|
|
12232
|
+
right = max$1(right, spread + blur + x);
|
|
12233
|
+
bottom = max$1(bottom, spread + blur + y);
|
|
12234
|
+
left = max$1(left, spread + blur - x);
|
|
12235
|
+
});
|
|
12236
|
+
return top === right && right === bottom && bottom === left ? top : [ top, right, bottom, left ];
|
|
12171
12237
|
}
|
|
12172
12238
|
|
|
12173
|
-
function
|
|
12174
|
-
|
|
12239
|
+
function getShadowTransform(ui, canvas, _shape, shadow, outBounds, otherScale, isInnerShaodw) {
|
|
12240
|
+
if (shadow.spread) {
|
|
12241
|
+
const spreadScale = 1 + shadow.spread * 2 / ui.__layout.strokeBounds.width * otherScale * (isInnerShaodw ? -1 : 1);
|
|
12242
|
+
tempMatrix.set().scaleOfOuter({
|
|
12243
|
+
x: (outBounds.x + outBounds.width / 2) * canvas.pixelRatio,
|
|
12244
|
+
y: (outBounds.y + outBounds.height / 2) * canvas.pixelRatio
|
|
12245
|
+
}, spreadScale);
|
|
12246
|
+
return tempMatrix;
|
|
12247
|
+
}
|
|
12248
|
+
return undefined;
|
|
12249
|
+
}
|
|
12250
|
+
|
|
12251
|
+
function drawWorldShadow(canvas, outBounds, shape) {
|
|
12252
|
+
const {shapeBounds: shapeBounds} = shape;
|
|
12253
|
+
let from, to;
|
|
12175
12254
|
if (Platform.fullImageShadow) {
|
|
12176
12255
|
copy$3(tempBounds, canvas.bounds);
|
|
12177
|
-
tempBounds.x
|
|
12178
|
-
|
|
12179
|
-
if (spreadScale) {
|
|
12180
|
-
const {fitMatrix: fitMatrix} = shape;
|
|
12181
|
-
tempBounds.x -= (bounds.x + (fitMatrix ? fitMatrix.e : 0) + bounds.width / 2) * (spreadScale - 1);
|
|
12182
|
-
tempBounds.y -= (bounds.y + (fitMatrix ? fitMatrix.f : 0) + bounds.height / 2) * (spreadScale - 1);
|
|
12183
|
-
tempBounds.width *= spreadScale;
|
|
12184
|
-
tempBounds.height *= spreadScale;
|
|
12185
|
-
}
|
|
12186
|
-
canvas.copyWorld(shape.canvas, canvas.bounds, tempBounds);
|
|
12256
|
+
move$6(tempBounds, outBounds.x - shapeBounds.x, outBounds.y - shapeBounds.y);
|
|
12257
|
+
from = canvas.bounds, to = tempBounds;
|
|
12187
12258
|
} else {
|
|
12188
|
-
|
|
12189
|
-
copy$3(tempBounds, outBounds);
|
|
12190
|
-
tempBounds.x -= outBounds.width / 2 * (spreadScale - 1);
|
|
12191
|
-
tempBounds.y -= outBounds.height / 2 * (spreadScale - 1);
|
|
12192
|
-
tempBounds.width *= spreadScale;
|
|
12193
|
-
tempBounds.height *= spreadScale;
|
|
12194
|
-
}
|
|
12195
|
-
canvas.copyWorld(shape.canvas, shapeBounds, spreadScale ? tempBounds : outBounds);
|
|
12259
|
+
from = shapeBounds, to = outBounds;
|
|
12196
12260
|
}
|
|
12261
|
+
canvas.copyWorld(shape.canvas, from, to);
|
|
12197
12262
|
}
|
|
12198
12263
|
|
|
12199
12264
|
const {toOffsetOutBounds: toOffsetOutBounds} = BoundsHelper;
|
|
@@ -12201,13 +12266,13 @@ const {toOffsetOutBounds: toOffsetOutBounds} = BoundsHelper;
|
|
|
12201
12266
|
const offsetOutBounds = {};
|
|
12202
12267
|
|
|
12203
12268
|
function innerShadow(ui, current, shape) {
|
|
12204
|
-
let copyBounds,
|
|
12205
|
-
const {__nowWorld: nowWorld
|
|
12269
|
+
let copyBounds, transform;
|
|
12270
|
+
const {__nowWorld: nowWorld} = ui;
|
|
12206
12271
|
const {innerShadow: innerShadow} = ui.__;
|
|
12207
|
-
const {worldCanvas: worldCanvas, bounds: bounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
12272
|
+
const {worldCanvas: worldCanvas, bounds: bounds, renderBounds: renderBounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
12208
12273
|
const other = current.getSameCanvas();
|
|
12209
12274
|
const end = innerShadow.length - 1;
|
|
12210
|
-
toOffsetOutBounds(bounds, offsetOutBounds);
|
|
12275
|
+
toOffsetOutBounds(bounds, offsetOutBounds, renderBounds);
|
|
12211
12276
|
innerShadow.forEach((item, index) => {
|
|
12212
12277
|
let otherScale = 1;
|
|
12213
12278
|
if (item.scaleFixed) {
|
|
@@ -12215,17 +12280,18 @@ function innerShadow(ui, current, shape) {
|
|
|
12215
12280
|
if (sx > 1) otherScale = 1 / sx;
|
|
12216
12281
|
}
|
|
12217
12282
|
other.save();
|
|
12218
|
-
other.setWorldShadow(offsetOutBounds.offsetX + item.x * scaleX * otherScale, offsetOutBounds.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale);
|
|
12219
|
-
|
|
12220
|
-
|
|
12283
|
+
other.setWorldShadow(offsetOutBounds.offsetX + (item.x || 0) * scaleX * otherScale, offsetOutBounds.offsetY + (item.y || 0) * scaleY * otherScale, (item.blur || 0) * scaleX * otherScale);
|
|
12284
|
+
transform = Effect.getShadowTransform(ui, other, shape, item, offsetOutBounds, otherScale, true);
|
|
12285
|
+
if (transform) other.setTransform(transform);
|
|
12286
|
+
drawWorldShadow(other, offsetOutBounds, shape);
|
|
12221
12287
|
other.restore();
|
|
12222
12288
|
if (worldCanvas) {
|
|
12223
|
-
other.copyWorld(other,
|
|
12289
|
+
other.copyWorld(other, renderBounds, nowWorld, "copy");
|
|
12224
12290
|
other.copyWorld(worldCanvas, nowWorld, nowWorld, "source-out");
|
|
12225
12291
|
copyBounds = nowWorld;
|
|
12226
12292
|
} else {
|
|
12227
12293
|
other.copyWorld(shape.canvas, shapeBounds, bounds, "source-out");
|
|
12228
|
-
copyBounds =
|
|
12294
|
+
copyBounds = renderBounds;
|
|
12229
12295
|
}
|
|
12230
12296
|
other.fillWorld(copyBounds, ColorConvert.string(item.color), "source-in");
|
|
12231
12297
|
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
@@ -12234,6 +12300,8 @@ function innerShadow(ui, current, shape) {
|
|
|
12234
12300
|
other.recycle(copyBounds);
|
|
12235
12301
|
}
|
|
12236
12302
|
|
|
12303
|
+
const getInnerShadowSpread = getShadowRenderSpread;
|
|
12304
|
+
|
|
12237
12305
|
function blur(ui, current, origin) {
|
|
12238
12306
|
const {blur: blur} = ui.__;
|
|
12239
12307
|
origin.setWorldBlur(blur * ui.__nowWorld.a);
|
|
@@ -12248,10 +12316,12 @@ const EffectModule = {
|
|
|
12248
12316
|
innerShadow: innerShadow,
|
|
12249
12317
|
blur: blur,
|
|
12250
12318
|
backgroundBlur: backgroundBlur,
|
|
12251
|
-
|
|
12319
|
+
getShadowRenderSpread: getShadowRenderSpread,
|
|
12320
|
+
getShadowTransform: getShadowTransform,
|
|
12252
12321
|
isTransformShadow(_shadow) {
|
|
12253
12322
|
return undefined;
|
|
12254
|
-
}
|
|
12323
|
+
},
|
|
12324
|
+
getInnerShadowSpread: getInnerShadowSpread
|
|
12255
12325
|
};
|
|
12256
12326
|
|
|
12257
12327
|
const {excludeRenderBounds: excludeRenderBounds} = LeafBoundsHelper;
|
|
@@ -12268,6 +12338,7 @@ Group.prototype.__renderMask = function(canvas, options) {
|
|
|
12268
12338
|
maskEnd(this, currentMask, canvas, contentCanvas, maskCanvas, maskOpacity, undefined, true);
|
|
12269
12339
|
maskCanvas = contentCanvas = null;
|
|
12270
12340
|
}
|
|
12341
|
+
if (mask === "clipping" || mask === "clipping-path") excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
12271
12342
|
maskOpacity = child.__.opacity;
|
|
12272
12343
|
usedGrayscaleAlpha = false;
|
|
12273
12344
|
if (mask === "path" || mask === "clipping-path") {
|
|
@@ -12285,7 +12356,6 @@ Group.prototype.__renderMask = function(canvas, options) {
|
|
|
12285
12356
|
if (!contentCanvas) contentCanvas = getCanvas(canvas);
|
|
12286
12357
|
child.__render(maskCanvas, options);
|
|
12287
12358
|
}
|
|
12288
|
-
if (mask === "clipping" || mask === "clipping-path") excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
12289
12359
|
continue;
|
|
12290
12360
|
}
|
|
12291
12361
|
const childBlendMode = maskOpacity === 1 && child.__.__blendMode;
|
|
@@ -12847,6 +12917,7 @@ const TextConvertModule = {
|
|
|
12847
12917
|
};
|
|
12848
12918
|
|
|
12849
12919
|
function string(color, opacity) {
|
|
12920
|
+
if (!color) return "#000";
|
|
12850
12921
|
const doOpacity = isNumber(opacity) && opacity < 1;
|
|
12851
12922
|
if (isString(color)) {
|
|
12852
12923
|
if (doOpacity && ColorConvert.object) color = ColorConvert.object(color); else return color;
|
|
@@ -12928,10 +12999,6 @@ function targetAttr(fn) {
|
|
|
12928
12999
|
if (t.config) {
|
|
12929
13000
|
const isSelect = key === "target";
|
|
12930
13001
|
if (isSelect) {
|
|
12931
|
-
t.setDimOthers(false);
|
|
12932
|
-
t.setBright(false);
|
|
12933
|
-
if (isArray(value) && value.length > 1 && value[0].locked) value.splice(0, 1);
|
|
12934
|
-
if (t.single) t.element.syncEventer = null;
|
|
12935
13002
|
const {beforeSelect: beforeSelect} = t.config;
|
|
12936
13003
|
if (beforeSelect) {
|
|
12937
13004
|
const check = beforeSelect({
|
|
@@ -12939,6 +13006,10 @@ function targetAttr(fn) {
|
|
|
12939
13006
|
});
|
|
12940
13007
|
if (isObject(check)) value = check; else if (check === false) return;
|
|
12941
13008
|
}
|
|
13009
|
+
t.setDimOthers(false);
|
|
13010
|
+
t.setBright(false);
|
|
13011
|
+
if (isArray(value) && value.length > 1 && value[0].locked) value.splice(0, 1);
|
|
13012
|
+
if (t.single) t.element.syncEventer = null;
|
|
12942
13013
|
}
|
|
12943
13014
|
const type = isSelect ? EditorEvent.BEFORE_SELECT : EditorEvent.BEFORE_HOVER;
|
|
12944
13015
|
if (this.hasEvent(type)) this.emitEvent(new EditorEvent(type, {
|
|
@@ -13124,11 +13195,12 @@ class EditSelect extends Group {
|
|
|
13124
13195
|
return !!this.originList;
|
|
13125
13196
|
}
|
|
13126
13197
|
get running() {
|
|
13127
|
-
const {editor: editor} = this;
|
|
13128
|
-
return this.hittable && editor.visible && editor.hittable && editor.mergeConfig.selector &&
|
|
13198
|
+
const {editor: editor, app: app} = this;
|
|
13199
|
+
return this.hittable && editor.visible && editor.hittable && editor.mergeConfig.selector && (app && app.mode === "normal");
|
|
13129
13200
|
}
|
|
13130
13201
|
get isMoveMode() {
|
|
13131
|
-
|
|
13202
|
+
const {app: app} = this;
|
|
13203
|
+
return app && app.interaction.moveMode;
|
|
13132
13204
|
}
|
|
13133
13205
|
constructor(editor) {
|
|
13134
13206
|
super();
|
|
@@ -13191,12 +13263,12 @@ class EditSelect extends Group {
|
|
|
13191
13263
|
onTap(e) {
|
|
13192
13264
|
if (e.multiTouch) return;
|
|
13193
13265
|
const {editor: editor} = this;
|
|
13194
|
-
const {select: select} = editor.mergeConfig;
|
|
13266
|
+
const {select: select, selectKeep: selectKeep} = editor.mergeConfig;
|
|
13195
13267
|
if (select === "tap") this.checkAndSelect(e); else if (this.waitSelect) this.waitSelect();
|
|
13196
13268
|
if (this.needRemoveItem) {
|
|
13197
13269
|
editor.removeItem(this.needRemoveItem);
|
|
13198
13270
|
} else if (this.isMoveMode) {
|
|
13199
|
-
editor.target = null;
|
|
13271
|
+
if (!selectKeep) editor.target = null;
|
|
13200
13272
|
}
|
|
13201
13273
|
}
|
|
13202
13274
|
checkAndSelect(e) {
|
|
@@ -13211,7 +13283,7 @@ class EditSelect extends Group {
|
|
|
13211
13283
|
editor.target = find;
|
|
13212
13284
|
}
|
|
13213
13285
|
} else if (this.allow(e.target)) {
|
|
13214
|
-
if (!this.isHoldMultipleSelectKey(e)) editor.target = null;
|
|
13286
|
+
if (!this.isHoldMultipleSelectKey(e) && !this.editor.mergedConfig.selectKeep) editor.target = null;
|
|
13215
13287
|
}
|
|
13216
13288
|
}
|
|
13217
13289
|
}
|
|
@@ -13330,91 +13402,95 @@ const {toPoint: toPoint} = AroundHelper;
|
|
|
13330
13402
|
const {within: within$3, sign: sign$1} = MathHelper;
|
|
13331
13403
|
|
|
13332
13404
|
const EditDataHelper = {
|
|
13333
|
-
getScaleData(target, startBounds, direction,
|
|
13405
|
+
getScaleData(target, startBounds, direction, totalMoveOrScale, lockRatio, around, flipable, scaleMode) {
|
|
13334
13406
|
let align, origin = {}, scaleX = 1, scaleY = 1;
|
|
13335
13407
|
const {boxBounds: boxBounds, widthRange: widthRange, heightRange: heightRange, dragBounds: dragBounds, worldBoxBounds: worldBoxBounds} = target;
|
|
13336
13408
|
const {width: width, height: height} = startBounds;
|
|
13337
|
-
if (around) {
|
|
13338
|
-
totalMove.x *= 2;
|
|
13339
|
-
totalMove.y *= 2;
|
|
13340
|
-
}
|
|
13341
13409
|
const originChangedScaleX = target.scaleX / startBounds.scaleX;
|
|
13342
13410
|
const originChangedScaleY = target.scaleY / startBounds.scaleY;
|
|
13343
13411
|
const signX = sign$1(originChangedScaleX);
|
|
13344
13412
|
const signY = sign$1(originChangedScaleY);
|
|
13345
13413
|
const changedScaleX = scaleMode ? originChangedScaleX : signX * boxBounds.width / width;
|
|
13346
13414
|
const changedScaleY = scaleMode ? originChangedScaleY : signY * boxBounds.height / height;
|
|
13347
|
-
|
|
13348
|
-
|
|
13349
|
-
|
|
13350
|
-
|
|
13351
|
-
|
|
13352
|
-
|
|
13353
|
-
|
|
13354
|
-
|
|
13355
|
-
|
|
13356
|
-
|
|
13357
|
-
|
|
13415
|
+
if (isNumber(totalMoveOrScale)) {
|
|
13416
|
+
scaleX = scaleY = Math.sqrt(totalMoveOrScale);
|
|
13417
|
+
} else {
|
|
13418
|
+
if (around) {
|
|
13419
|
+
totalMoveOrScale.x *= 2;
|
|
13420
|
+
totalMoveOrScale.y *= 2;
|
|
13421
|
+
}
|
|
13422
|
+
totalMoveOrScale.x *= scaleMode ? originChangedScaleX : signX;
|
|
13423
|
+
totalMoveOrScale.y *= scaleMode ? originChangedScaleY : signY;
|
|
13424
|
+
const topScale = (-totalMoveOrScale.y + height) / height;
|
|
13425
|
+
const rightScale = (totalMoveOrScale.x + width) / width;
|
|
13426
|
+
const bottomScale = (totalMoveOrScale.y + height) / height;
|
|
13427
|
+
const leftScale = (-totalMoveOrScale.x + width) / width;
|
|
13428
|
+
switch (direction) {
|
|
13429
|
+
case top$1:
|
|
13430
|
+
scaleY = topScale;
|
|
13431
|
+
align = "bottom";
|
|
13432
|
+
break;
|
|
13358
13433
|
|
|
13359
|
-
|
|
13360
|
-
|
|
13361
|
-
|
|
13362
|
-
|
|
13434
|
+
case right$2:
|
|
13435
|
+
scaleX = rightScale;
|
|
13436
|
+
align = "left";
|
|
13437
|
+
break;
|
|
13363
13438
|
|
|
13364
|
-
|
|
13365
|
-
|
|
13366
|
-
|
|
13367
|
-
|
|
13439
|
+
case bottom$1:
|
|
13440
|
+
scaleY = bottomScale;
|
|
13441
|
+
align = "top";
|
|
13442
|
+
break;
|
|
13368
13443
|
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
|
|
13372
|
-
|
|
13444
|
+
case left$2:
|
|
13445
|
+
scaleX = leftScale;
|
|
13446
|
+
align = "right";
|
|
13447
|
+
break;
|
|
13373
13448
|
|
|
13374
|
-
|
|
13375
|
-
|
|
13376
|
-
|
|
13377
|
-
|
|
13378
|
-
|
|
13449
|
+
case topLeft$1:
|
|
13450
|
+
scaleY = topScale;
|
|
13451
|
+
scaleX = leftScale;
|
|
13452
|
+
align = "bottom-right";
|
|
13453
|
+
break;
|
|
13379
13454
|
|
|
13380
|
-
|
|
13381
|
-
|
|
13382
|
-
|
|
13383
|
-
|
|
13384
|
-
|
|
13455
|
+
case topRight$1:
|
|
13456
|
+
scaleY = topScale;
|
|
13457
|
+
scaleX = rightScale;
|
|
13458
|
+
align = "bottom-left";
|
|
13459
|
+
break;
|
|
13385
13460
|
|
|
13386
|
-
|
|
13387
|
-
|
|
13388
|
-
|
|
13389
|
-
|
|
13390
|
-
|
|
13461
|
+
case bottomRight:
|
|
13462
|
+
scaleY = bottomScale;
|
|
13463
|
+
scaleX = rightScale;
|
|
13464
|
+
align = "top-left";
|
|
13465
|
+
break;
|
|
13391
13466
|
|
|
13392
|
-
|
|
13393
|
-
|
|
13394
|
-
|
|
13395
|
-
|
|
13396
|
-
|
|
13397
|
-
|
|
13398
|
-
|
|
13399
|
-
|
|
13400
|
-
|
|
13401
|
-
|
|
13402
|
-
|
|
13403
|
-
|
|
13404
|
-
|
|
13405
|
-
|
|
13406
|
-
|
|
13467
|
+
case bottomLeft:
|
|
13468
|
+
scaleY = bottomScale;
|
|
13469
|
+
scaleX = leftScale;
|
|
13470
|
+
align = "top-right";
|
|
13471
|
+
}
|
|
13472
|
+
if (lockRatio) {
|
|
13473
|
+
if (lockRatio === "corner" && direction % 2) {
|
|
13474
|
+
lockRatio = false;
|
|
13475
|
+
} else {
|
|
13476
|
+
let scale;
|
|
13477
|
+
switch (direction) {
|
|
13478
|
+
case top$1:
|
|
13479
|
+
case bottom$1:
|
|
13480
|
+
scale = scaleY;
|
|
13481
|
+
break;
|
|
13407
13482
|
|
|
13408
|
-
|
|
13409
|
-
|
|
13410
|
-
|
|
13411
|
-
|
|
13483
|
+
case left$2:
|
|
13484
|
+
case right$2:
|
|
13485
|
+
scale = scaleX;
|
|
13486
|
+
break;
|
|
13412
13487
|
|
|
13413
|
-
|
|
13414
|
-
|
|
13488
|
+
default:
|
|
13489
|
+
scale = Math.sqrt(Math.abs(scaleX * scaleY));
|
|
13490
|
+
}
|
|
13491
|
+
scaleX = scaleX < 0 ? -scale : scale;
|
|
13492
|
+
scaleY = scaleY < 0 ? -scale : scale;
|
|
13415
13493
|
}
|
|
13416
|
-
scaleX = scaleX < 0 ? -scale : scale;
|
|
13417
|
-
scaleY = scaleY < 0 ? -scale : scale;
|
|
13418
13494
|
}
|
|
13419
13495
|
}
|
|
13420
13496
|
const useScaleX = scaleX !== 1, useScaleY = scaleY !== 1;
|
|
@@ -13702,6 +13778,9 @@ class EditBox extends Group {
|
|
|
13702
13778
|
const {moveable: moveable, resizeable: resizeable, rotateable: rotateable} = this.mergeConfig;
|
|
13703
13779
|
return isString(moveable) || isString(resizeable) || isString(rotateable);
|
|
13704
13780
|
}
|
|
13781
|
+
get canDragLimitAnimate() {
|
|
13782
|
+
return this.moving && this.mergeConfig.dragLimitAnimate && this.target.dragBounds;
|
|
13783
|
+
}
|
|
13705
13784
|
constructor(editor) {
|
|
13706
13785
|
super();
|
|
13707
13786
|
this.view = new Group;
|
|
@@ -13935,10 +14014,9 @@ class EditBox extends Group {
|
|
|
13935
14014
|
onDragStart(e) {
|
|
13936
14015
|
this.dragging = true;
|
|
13937
14016
|
const point = this.dragPoint = e.current, {pointType: pointType} = point;
|
|
13938
|
-
const {
|
|
14017
|
+
const {moveable: moveable, resizeable: resizeable, rotateable: rotateable, skewable: skewable} = this.mergeConfig;
|
|
13939
14018
|
if (pointType === "move") {
|
|
13940
14019
|
moveable && (this.moving = true);
|
|
13941
|
-
editor.opacity = hideOnMove ? 0 : 1;
|
|
13942
14020
|
} else {
|
|
13943
14021
|
if (pointType.includes("rotate") || this.isHoldRotateKey(e) || !resizeable) {
|
|
13944
14022
|
rotateable && (this.rotating = true);
|
|
@@ -13947,23 +14025,7 @@ class EditBox extends Group {
|
|
|
13947
14025
|
} else if (pointType === "resize") resizeable && (this.resizing = true);
|
|
13948
14026
|
if (pointType === "skew") skewable && (this.skewing = true);
|
|
13949
14027
|
}
|
|
13950
|
-
|
|
13951
|
-
dragStartData.y = e.y;
|
|
13952
|
-
dragStartData.point = {
|
|
13953
|
-
x: target.x,
|
|
13954
|
-
y: target.y
|
|
13955
|
-
};
|
|
13956
|
-
dragStartData.bounds = Object.assign({}, target.getLayoutBounds("box", "local"));
|
|
13957
|
-
dragStartData.rotation = target.rotation;
|
|
13958
|
-
if (pointType && pointType.includes("resize")) ResizeEvent.resizingKeys = editor.leafList.keys;
|
|
13959
|
-
}
|
|
13960
|
-
onDragEnd(e) {
|
|
13961
|
-
if (this.moving && this.mergeConfig.dragLimitAnimate && this.target.dragBounds) this.transformTool.onMove(e);
|
|
13962
|
-
this.dragPoint = null;
|
|
13963
|
-
this.resetDoing();
|
|
13964
|
-
const {pointType: pointType} = e.current;
|
|
13965
|
-
if (pointType === "move") this.editor.opacity = 1;
|
|
13966
|
-
if (pointType && pointType.includes("resize")) ResizeEvent.resizingKeys = null;
|
|
14028
|
+
this.onTransformStart(e);
|
|
13967
14029
|
}
|
|
13968
14030
|
onDrag(e) {
|
|
13969
14031
|
const {transformTool: transformTool, moving: moving, resizing: resizing, rotating: rotating, skewing: skewing} = this;
|
|
@@ -13978,37 +14040,59 @@ class EditBox extends Group {
|
|
|
13978
14040
|
}
|
|
13979
14041
|
updatePointCursor(this, e);
|
|
13980
14042
|
}
|
|
13981
|
-
|
|
13982
|
-
|
|
14043
|
+
onDragEnd(e) {
|
|
14044
|
+
this.onTransformEnd(e);
|
|
14045
|
+
this.dragPoint = null;
|
|
14046
|
+
}
|
|
14047
|
+
onTransformStart(e) {
|
|
14048
|
+
if (this.canUse) {
|
|
14049
|
+
if (this.moving) this.editor.opacity = this.mergedConfig.hideOnMove ? 0 : 1;
|
|
14050
|
+
if (this.resizing) ResizeEvent.resizingKeys = this.editor.leafList.keys;
|
|
14051
|
+
const {dragStartData: dragStartData, target: target} = this;
|
|
14052
|
+
dragStartData.x = e.x;
|
|
14053
|
+
dragStartData.y = e.y;
|
|
14054
|
+
dragStartData.totalOffset = getPointData();
|
|
14055
|
+
dragStartData.point = {
|
|
14056
|
+
x: target.x,
|
|
14057
|
+
y: target.y
|
|
14058
|
+
};
|
|
14059
|
+
dragStartData.bounds = Object.assign({}, target.getLayoutBounds("box", "local"));
|
|
14060
|
+
dragStartData.rotation = target.rotation;
|
|
14061
|
+
}
|
|
14062
|
+
}
|
|
14063
|
+
onTransformEnd(e) {
|
|
14064
|
+
if (this.canUse) {
|
|
14065
|
+
if (this.canDragLimitAnimate && (e instanceof DragEvent || e instanceof MoveEvent)) this.transformTool.onMove(e);
|
|
14066
|
+
if (this.resizing) ResizeEvent.resizingKeys = null;
|
|
14067
|
+
this.dragging = this.gesturing = this.moving = this.resizing = this.rotating = this.skewing = false;
|
|
14068
|
+
this.editor.opacity = 1;
|
|
14069
|
+
this.update();
|
|
14070
|
+
}
|
|
13983
14071
|
}
|
|
13984
14072
|
onMove(e) {
|
|
13985
14073
|
if (this.canGesture && e.moveType !== "drag") {
|
|
13986
14074
|
e.stop();
|
|
13987
|
-
if (isString(this.
|
|
14075
|
+
if (isString(this.mergedConfig.moveable)) {
|
|
13988
14076
|
this.gesturing = this.moving = true;
|
|
13989
|
-
this.transformTool.onMove(e);
|
|
14077
|
+
e.type === MoveEvent.START ? this.onTransformStart(e) : this.transformTool.onMove(e);
|
|
13990
14078
|
}
|
|
13991
14079
|
}
|
|
13992
14080
|
}
|
|
13993
|
-
onMoveEnd(e) {
|
|
13994
|
-
if (this.moving) this.transformTool.onMove(e);
|
|
13995
|
-
this.resetDoing();
|
|
13996
|
-
}
|
|
13997
14081
|
onScale(e) {
|
|
13998
14082
|
if (this.canGesture) {
|
|
13999
14083
|
e.stop();
|
|
14000
|
-
if (isString(this.
|
|
14084
|
+
if (isString(this.mergedConfig.resizeable)) {
|
|
14001
14085
|
this.gesturing = this.resizing = true;
|
|
14002
|
-
this.transformTool.onScale(e);
|
|
14086
|
+
e.type === ZoomEvent.START ? this.onTransformStart(e) : this.transformTool.onScale(e);
|
|
14003
14087
|
}
|
|
14004
14088
|
}
|
|
14005
14089
|
}
|
|
14006
14090
|
onRotate(e) {
|
|
14007
14091
|
if (this.canGesture) {
|
|
14008
14092
|
e.stop();
|
|
14009
|
-
if (isString(this.
|
|
14093
|
+
if (isString(this.mergedConfig.rotateable)) {
|
|
14010
14094
|
this.gesturing = this.rotating = true;
|
|
14011
|
-
this.transformTool.onRotate(e);
|
|
14095
|
+
e.type === RotateEvent.START ? this.onTransformStart(e) : this.transformTool.onRotate(e);
|
|
14012
14096
|
}
|
|
14013
14097
|
}
|
|
14014
14098
|
}
|
|
@@ -14021,8 +14105,7 @@ class EditBox extends Group {
|
|
|
14021
14105
|
updatePointCursor(this, e);
|
|
14022
14106
|
}
|
|
14023
14107
|
onArrow(e) {
|
|
14024
|
-
|
|
14025
|
-
if (this.canUse && editor.editing && this.mergeConfig.keyEvent) {
|
|
14108
|
+
if (this.canUse && this.mergeConfig.keyEvent) {
|
|
14026
14109
|
let x = 0, y = 0;
|
|
14027
14110
|
const distance = e.shiftKey ? 10 : 1;
|
|
14028
14111
|
switch (e.code) {
|
|
@@ -14041,7 +14124,7 @@ class EditBox extends Group {
|
|
|
14041
14124
|
case "ArrowRight":
|
|
14042
14125
|
x = distance;
|
|
14043
14126
|
}
|
|
14044
|
-
if (x || y) transformTool.move(x, y);
|
|
14127
|
+
if (x || y) this.transformTool.move(x, y);
|
|
14045
14128
|
}
|
|
14046
14129
|
}
|
|
14047
14130
|
onDoubleTap(e) {
|
|
@@ -14082,7 +14165,7 @@ class EditBox extends Group {
|
|
|
14082
14165
|
const {rect: rect, editor: editor, __eventIds: events} = this;
|
|
14083
14166
|
events.push(rect.on_([ [ PointerEvent.DOUBLE_TAP, this.onDoubleTap, this ], [ PointerEvent.LONG_PRESS, this.onLongPress, this ] ]));
|
|
14084
14167
|
this.waitLeafer(() => {
|
|
14085
|
-
events.push(editor.app.on_([ [ [ KeyEvent.HOLD, KeyEvent.UP ], this.onKey, this ], [ KeyEvent.DOWN, this.onArrow, this ], [ MoveEvent.BEFORE_MOVE, this.onMove, this, true ], [ ZoomEvent.BEFORE_ZOOM, this.onScale, this, true ], [ RotateEvent.BEFORE_ROTATE, this.onRotate, this, true ], [ MoveEvent.END,
|
|
14168
|
+
events.push(editor.app.on_([ [ [ KeyEvent.HOLD, KeyEvent.UP ], this.onKey, this ], [ KeyEvent.DOWN, this.onArrow, this ], [ [ MoveEvent.START, MoveEvent.BEFORE_MOVE ], this.onMove, this, true ], [ [ ZoomEvent.START, ZoomEvent.BEFORE_ZOOM ], this.onScale, this, true ], [ [ RotateEvent.START, RotateEvent.BEFORE_ROTATE ], this.onRotate, this, true ], [ [ MoveEvent.END, ZoomEvent.END, RotateEvent.END ], this.onTransformEnd, this ] ]));
|
|
14086
14169
|
});
|
|
14087
14170
|
}
|
|
14088
14171
|
__removeListenEvents() {
|
|
@@ -14480,56 +14563,61 @@ class TransformTool {
|
|
|
14480
14563
|
const isMoveEnd = e.type === MoveEvent.END || e.type === DragEvent.END;
|
|
14481
14564
|
const axisDrag = isString(target.draggable);
|
|
14482
14565
|
const checkLimitMove = !dragLimitAnimate || isMoveEnd || axisDrag;
|
|
14566
|
+
const total = {
|
|
14567
|
+
x: e.totalX,
|
|
14568
|
+
y: e.totalY
|
|
14569
|
+
};
|
|
14483
14570
|
if (e instanceof MoveEvent) {
|
|
14484
|
-
move
|
|
14485
|
-
if (checkLimitMove) DragEvent.limitMove(target, move);
|
|
14486
|
-
} else {
|
|
14487
|
-
const total = {
|
|
14488
|
-
x: e.totalX,
|
|
14489
|
-
y: e.totalY
|
|
14490
|
-
};
|
|
14491
|
-
if (e.shiftKey) {
|
|
14492
|
-
if (Math.abs(total.x) > Math.abs(total.y)) total.y = 0; else total.x = 0;
|
|
14493
|
-
}
|
|
14494
|
-
move = DragEvent.getValidMove(target, dragStartData.point, total, checkLimitMove);
|
|
14571
|
+
PointHelper.move(total, target.getWorldPointByLocal(dragStartData.totalOffset, null, true));
|
|
14495
14572
|
}
|
|
14573
|
+
if (e.shiftKey) {
|
|
14574
|
+
if (Math.abs(total.x) > Math.abs(total.y)) total.y = 0; else total.x = 0;
|
|
14575
|
+
}
|
|
14576
|
+
move = DragEvent.getValidMove(target, dragStartData.point, total, checkLimitMove);
|
|
14496
14577
|
if (move.x || move.y) {
|
|
14497
14578
|
if (dragLimitAnimate && !axisDrag && isMoveEnd) LeafHelper.animateMove(this, move, isNumber(dragLimitAnimate) ? dragLimitAnimate : .3); else this.move(move);
|
|
14498
14579
|
}
|
|
14499
14580
|
}
|
|
14500
14581
|
onScale(e) {
|
|
14501
14582
|
const {target: target, mergeConfig: mergeConfig, single: single, dragStartData: dragStartData} = this.editBox;
|
|
14502
|
-
let {around: around, lockRatio: lockRatio, flipable: flipable, editSize: editSize} = mergeConfig;
|
|
14583
|
+
let {around: around, lockRatio: lockRatio, flipable: flipable, editSize: editSize} = mergeConfig, totalMove;
|
|
14503
14584
|
if (e instanceof ZoomEvent) {
|
|
14504
|
-
|
|
14585
|
+
around = target.getBoxPoint(e);
|
|
14586
|
+
totalMove = e.totalScale;
|
|
14505
14587
|
} else {
|
|
14506
|
-
|
|
14507
|
-
|
|
14508
|
-
|
|
14509
|
-
|
|
14510
|
-
|
|
14511
|
-
|
|
14512
|
-
|
|
14513
|
-
|
|
14514
|
-
|
|
14588
|
+
totalMove = e.getInnerTotal(target);
|
|
14589
|
+
}
|
|
14590
|
+
const {direction: direction} = e.current;
|
|
14591
|
+
if (e.shiftKey || target.lockRatio) lockRatio = true;
|
|
14592
|
+
const data = EditDataHelper.getScaleData(target, dragStartData.bounds, direction, totalMove, lockRatio, EditDataHelper.getAround(around, e.altKey), flipable, !single || editSize === "scale");
|
|
14593
|
+
const targetX = target.x, targetY = target.y;
|
|
14594
|
+
if (e instanceof DragEvent && this.editTool && this.editTool.onScaleWithDrag) {
|
|
14595
|
+
data.drag = e;
|
|
14596
|
+
this.scaleWithDrag(data);
|
|
14597
|
+
} else {
|
|
14598
|
+
this.scaleOf(data.origin, data.scaleX, data.scaleY);
|
|
14515
14599
|
}
|
|
14600
|
+
PointHelper.move(dragStartData.totalOffset, target.x - targetX, target.y - targetY);
|
|
14516
14601
|
}
|
|
14517
14602
|
onRotate(e) {
|
|
14518
14603
|
const {target: target, mergeConfig: mergeConfig, dragStartData: dragStartData} = this.editBox;
|
|
14519
|
-
const {around: around, rotateAround: rotateAround, rotateGap: rotateGap} = mergeConfig;
|
|
14604
|
+
const {around: around, rotateAround: rotateAround, rotateGap: rotateGap, diagonalRotateKey: diagonalRotateKey} = mergeConfig;
|
|
14520
14605
|
const {direction: direction} = e.current;
|
|
14521
14606
|
let origin, rotation;
|
|
14522
14607
|
if (e instanceof RotateEvent) {
|
|
14523
14608
|
rotation = e.rotation;
|
|
14524
14609
|
origin = rotateAround ? AroundHelper.getPoint(rotateAround, target.boxBounds) : target.getBoxPoint(e);
|
|
14525
14610
|
} else {
|
|
14526
|
-
const
|
|
14611
|
+
const isDiagonalRotate = diagonalRotateKey ? e.isHoldKeys(diagonalRotateKey) : e.shiftKey;
|
|
14612
|
+
const data = EditDataHelper.getRotateData(target, direction, e, dragStartData, isDiagonalRotate ? null : rotateAround || target.around || target.origin || around || "center");
|
|
14527
14613
|
rotation = dragStartData.rotation + data.rotation - target.rotation;
|
|
14528
14614
|
origin = data.origin;
|
|
14529
14615
|
}
|
|
14530
14616
|
rotation = MathHelper.float(MathHelper.getGapRotation(rotation, rotateGap, target.rotation), 2);
|
|
14531
14617
|
if (!rotation) return;
|
|
14618
|
+
const targetX = target.x, targetY = target.y;
|
|
14532
14619
|
this.rotateOf(origin, rotation);
|
|
14620
|
+
PointHelper.move(dragStartData.totalOffset, target.x - targetX, target.y - targetY);
|
|
14533
14621
|
}
|
|
14534
14622
|
onSkew(e) {
|
|
14535
14623
|
const {target: target, mergeConfig: mergeConfig} = this.editBox;
|
|
@@ -15272,7 +15360,7 @@ let LineEditTool = class LineEditTool extends EditTool {
|
|
|
15272
15360
|
|
|
15273
15361
|
LineEditTool = __decorate([ registerEditTool() ], LineEditTool);
|
|
15274
15362
|
|
|
15275
|
-
const {M: M$
|
|
15363
|
+
const {M: M$4, L: L$3, C: C$3, Q: Q$2, Z: Z$2, N: N$1, D: D$1, X: X$1, G: G$1, F: F$1, O: O$2, P: P$1, U: U$1} = PathCommandMap;
|
|
15276
15364
|
|
|
15277
15365
|
const PathScaler = {
|
|
15278
15366
|
scale(data, scaleX, scaleY) {
|
|
@@ -15282,7 +15370,7 @@ const PathScaler = {
|
|
|
15282
15370
|
while (i < len) {
|
|
15283
15371
|
command = data[i];
|
|
15284
15372
|
switch (command) {
|
|
15285
|
-
case M$
|
|
15373
|
+
case M$4:
|
|
15286
15374
|
case L$3:
|
|
15287
15375
|
scalePoints(data, scaleX, scaleY, i, 1);
|
|
15288
15376
|
i += 3;
|
|
@@ -15621,6 +15709,13 @@ register("design", design);
|
|
|
15621
15709
|
register("document", document);
|
|
15622
15710
|
|
|
15623
15711
|
const MultiTouchHelper = {
|
|
15712
|
+
state: {
|
|
15713
|
+
type: "none",
|
|
15714
|
+
typeCount: 0,
|
|
15715
|
+
startTime: 0,
|
|
15716
|
+
totalData: null,
|
|
15717
|
+
center: {}
|
|
15718
|
+
},
|
|
15624
15719
|
getData(list) {
|
|
15625
15720
|
const a = list[0], b = list[1];
|
|
15626
15721
|
const lastCenter = PointHelper.getCenter(a.from, b.from);
|
|
@@ -15639,9 +15734,53 @@ const MultiTouchHelper = {
|
|
|
15639
15734
|
rotation: rotation,
|
|
15640
15735
|
center: center
|
|
15641
15736
|
};
|
|
15737
|
+
},
|
|
15738
|
+
getType(data, config) {
|
|
15739
|
+
const moveScore = Math.hypot(data.move.x, data.move.y) / (config.move || 5);
|
|
15740
|
+
const scaleScore = Math.abs(data.scale - 1) / (config.scale || .03);
|
|
15741
|
+
const rotateScore = Math.abs(data.rotation) / (config.rotation || 2);
|
|
15742
|
+
if (moveScore < 1 && scaleScore < 1 && rotateScore < 1) return "none";
|
|
15743
|
+
if (moveScore >= scaleScore && moveScore >= rotateScore) return "move";
|
|
15744
|
+
if (scaleScore >= rotateScore) return "zoom";
|
|
15745
|
+
return "rotate";
|
|
15746
|
+
},
|
|
15747
|
+
detect(data, config) {
|
|
15748
|
+
const {state: state} = M$3;
|
|
15749
|
+
const type = M$3.getType(data, config);
|
|
15750
|
+
if (!state.totalData) {
|
|
15751
|
+
state.startTime = Date.now();
|
|
15752
|
+
state.center = data.center;
|
|
15753
|
+
}
|
|
15754
|
+
M$3.add(data, state.totalData);
|
|
15755
|
+
state.totalData = data;
|
|
15756
|
+
if (type === state.type) {
|
|
15757
|
+
state.typeCount++;
|
|
15758
|
+
if (state.typeCount >= (config.count || 3) && type !== "none") return type;
|
|
15759
|
+
} else {
|
|
15760
|
+
state.type = type;
|
|
15761
|
+
state.typeCount = 1;
|
|
15762
|
+
}
|
|
15763
|
+
if (Date.now() - state.startTime >= (config.time || 160)) return M$3.getType(state.totalData, config);
|
|
15764
|
+
return "none";
|
|
15765
|
+
},
|
|
15766
|
+
add(data, add) {
|
|
15767
|
+
if (!add) return;
|
|
15768
|
+
PointHelper.move(data.move, add.move);
|
|
15769
|
+
data.scale *= add.scale;
|
|
15770
|
+
data.rotation += add.rotation;
|
|
15771
|
+
data.center = add.center;
|
|
15772
|
+
},
|
|
15773
|
+
reset() {
|
|
15774
|
+
const {state: state} = M$3;
|
|
15775
|
+
state.type = "none";
|
|
15776
|
+
state.typeCount = 0;
|
|
15777
|
+
state.startTime = 0;
|
|
15778
|
+
state.totalData = null;
|
|
15642
15779
|
}
|
|
15643
15780
|
};
|
|
15644
15781
|
|
|
15782
|
+
const M$3 = MultiTouchHelper;
|
|
15783
|
+
|
|
15645
15784
|
const {abs: abs$2, max: max} = Math, {sign: sign, within: within$2} = MathHelper;
|
|
15646
15785
|
|
|
15647
15786
|
const WheelEventHelper = {
|
|
@@ -15681,9 +15820,20 @@ const WheelEventHelper = {
|
|
|
15681
15820
|
}
|
|
15682
15821
|
};
|
|
15683
15822
|
|
|
15823
|
+
let totalX, totalY, totalScale, totalRotation;
|
|
15824
|
+
|
|
15684
15825
|
class Transformer {
|
|
15685
15826
|
get transforming() {
|
|
15686
|
-
return
|
|
15827
|
+
return this.moving || this.zooming || this.rotating;
|
|
15828
|
+
}
|
|
15829
|
+
get moving() {
|
|
15830
|
+
return !!this.moveData;
|
|
15831
|
+
}
|
|
15832
|
+
get zooming() {
|
|
15833
|
+
return !!this.zoomData;
|
|
15834
|
+
}
|
|
15835
|
+
get rotating() {
|
|
15836
|
+
return !!this.rotateData;
|
|
15687
15837
|
}
|
|
15688
15838
|
constructor(interaction) {
|
|
15689
15839
|
this.interaction = interaction;
|
|
@@ -15693,13 +15843,18 @@ class Transformer {
|
|
|
15693
15843
|
if (!data.moveType) data.moveType = "move";
|
|
15694
15844
|
if (!this.moveData) {
|
|
15695
15845
|
this.setPath(data);
|
|
15846
|
+
totalX = 0, totalY = 0;
|
|
15696
15847
|
this.moveData = Object.assign(Object.assign({}, data), {
|
|
15697
15848
|
moveX: 0,
|
|
15698
|
-
moveY: 0
|
|
15849
|
+
moveY: 0,
|
|
15850
|
+
totalX: totalX,
|
|
15851
|
+
totalY: totalY
|
|
15699
15852
|
});
|
|
15700
15853
|
interaction.emit(MoveEvent.START, this.moveData);
|
|
15701
15854
|
}
|
|
15702
15855
|
data.path = this.moveData.path;
|
|
15856
|
+
data.totalX = totalX = totalX + data.moveX;
|
|
15857
|
+
data.totalY = totalY = totalY + data.moveY;
|
|
15703
15858
|
interaction.emit(MoveEvent.BEFORE_MOVE, data);
|
|
15704
15859
|
interaction.emit(MoveEvent.MOVE, data);
|
|
15705
15860
|
this.transformEndWait();
|
|
@@ -15708,12 +15863,15 @@ class Transformer {
|
|
|
15708
15863
|
const {interaction: interaction} = this;
|
|
15709
15864
|
if (!this.zoomData) {
|
|
15710
15865
|
this.setPath(data);
|
|
15866
|
+
totalScale = 1;
|
|
15711
15867
|
this.zoomData = Object.assign(Object.assign({}, data), {
|
|
15712
|
-
scale: 1
|
|
15868
|
+
scale: 1,
|
|
15869
|
+
totalScale: totalScale
|
|
15713
15870
|
});
|
|
15714
15871
|
interaction.emit(ZoomEvent.START, this.zoomData);
|
|
15715
15872
|
}
|
|
15716
15873
|
data.path = this.zoomData.path;
|
|
15874
|
+
data.totalScale = totalScale = totalScale * data.scale;
|
|
15717
15875
|
interaction.emit(ZoomEvent.BEFORE_ZOOM, data);
|
|
15718
15876
|
interaction.emit(ZoomEvent.ZOOM, data);
|
|
15719
15877
|
this.transformEndWait();
|
|
@@ -15722,12 +15880,15 @@ class Transformer {
|
|
|
15722
15880
|
const {interaction: interaction} = this;
|
|
15723
15881
|
if (!this.rotateData) {
|
|
15724
15882
|
this.setPath(data);
|
|
15883
|
+
totalRotation = 0;
|
|
15725
15884
|
this.rotateData = Object.assign(Object.assign({}, data), {
|
|
15726
|
-
rotation: 0
|
|
15885
|
+
rotation: 0,
|
|
15886
|
+
totalRotation: totalRotation
|
|
15727
15887
|
});
|
|
15728
15888
|
interaction.emit(RotateEvent.START, this.rotateData);
|
|
15729
15889
|
}
|
|
15730
15890
|
data.path = this.rotateData.path;
|
|
15891
|
+
data.totalRotation = totalRotation = totalRotation + data.rotation;
|
|
15731
15892
|
interaction.emit(RotateEvent.BEFORE_ROTATE, data);
|
|
15732
15893
|
interaction.emit(RotateEvent.ROTATE, data);
|
|
15733
15894
|
this.transformEndWait();
|
|
@@ -15746,9 +15907,16 @@ class Transformer {
|
|
|
15746
15907
|
}
|
|
15747
15908
|
transformEnd() {
|
|
15748
15909
|
const {interaction: interaction, moveData: moveData, zoomData: zoomData, rotateData: rotateData} = this;
|
|
15749
|
-
if (moveData) interaction.emit(MoveEvent.END, moveData)
|
|
15750
|
-
|
|
15751
|
-
|
|
15910
|
+
if (moveData) interaction.emit(MoveEvent.END, Object.assign(Object.assign({}, moveData), {
|
|
15911
|
+
totalX: totalX,
|
|
15912
|
+
totalY: totalY
|
|
15913
|
+
}));
|
|
15914
|
+
if (zoomData) interaction.emit(ZoomEvent.END, Object.assign(Object.assign({}, zoomData), {
|
|
15915
|
+
totalScale: totalScale
|
|
15916
|
+
}));
|
|
15917
|
+
if (rotateData) interaction.emit(RotateEvent.END, Object.assign(Object.assign({}, rotateData), {
|
|
15918
|
+
totalRotation: totalRotation
|
|
15919
|
+
}));
|
|
15752
15920
|
this.reset();
|
|
15753
15921
|
}
|
|
15754
15922
|
reset() {
|
|
@@ -15846,14 +16014,39 @@ interaction.wheel = function(data) {
|
|
|
15846
16014
|
};
|
|
15847
16015
|
|
|
15848
16016
|
interaction.multiTouch = function(data, list) {
|
|
15849
|
-
|
|
15850
|
-
|
|
15851
|
-
Object.assign(data, center);
|
|
15852
|
-
data.multiTouch = true;
|
|
16017
|
+
const {disabled: disabled, singleGesture: singleGesture} = this.config.multiTouch;
|
|
16018
|
+
if (disabled) return;
|
|
15853
16019
|
this.pointerWaitCancel();
|
|
15854
|
-
|
|
15855
|
-
this.
|
|
15856
|
-
|
|
16020
|
+
let gestureData = MultiTouchHelper.getData(list);
|
|
16021
|
+
let {moving: moving, zooming: zooming, rotating: rotating} = this.transformer;
|
|
16022
|
+
if (singleGesture) {
|
|
16023
|
+
if (!this.transformer.transforming) {
|
|
16024
|
+
const type = MultiTouchHelper.detect(gestureData, isObject(singleGesture) ? singleGesture : {});
|
|
16025
|
+
switch (type) {
|
|
16026
|
+
case "move":
|
|
16027
|
+
moving = true;
|
|
16028
|
+
break;
|
|
16029
|
+
|
|
16030
|
+
case "zoom":
|
|
16031
|
+
zooming = true;
|
|
16032
|
+
break;
|
|
16033
|
+
|
|
16034
|
+
case "rotate":
|
|
16035
|
+
rotating = true;
|
|
16036
|
+
break;
|
|
16037
|
+
|
|
16038
|
+
default:
|
|
16039
|
+
return;
|
|
16040
|
+
}
|
|
16041
|
+
MultiTouchHelper.reset();
|
|
16042
|
+
}
|
|
16043
|
+
if (!moving) gestureData.center = MultiTouchHelper.state.center;
|
|
16044
|
+
} else moving = zooming = rotating = true;
|
|
16045
|
+
Object.assign(data, gestureData.center);
|
|
16046
|
+
data.multiTouch = true;
|
|
16047
|
+
if (rotating) this.rotate(getRotateEventData(gestureData.rotation, data));
|
|
16048
|
+
if (zooming) this.zoom(getZoomEventData(gestureData.scale, data));
|
|
16049
|
+
if (moving) this.move(getMoveEventData(gestureData.move, data));
|
|
15857
16050
|
};
|
|
15858
16051
|
|
|
15859
16052
|
const dragger = Dragger.prototype;
|
|
@@ -18818,6 +19011,18 @@ UI.addAttr("placeholderStyle", undefined, stateStyleType);
|
|
|
18818
19011
|
|
|
18819
19012
|
UI.addAttr("button", false, dataType);
|
|
18820
19013
|
|
|
19014
|
+
ui$1.set = function(data, transition) {
|
|
19015
|
+
if (data) {
|
|
19016
|
+
if (transition) {
|
|
19017
|
+
if (transition === "temp") {
|
|
19018
|
+
this.lockNormalStyle = true;
|
|
19019
|
+
Object.assign(this, data);
|
|
19020
|
+
this.lockNormalStyle = false;
|
|
19021
|
+
} else this.animate(data, transition);
|
|
19022
|
+
} else Object.assign(this, data);
|
|
19023
|
+
}
|
|
19024
|
+
};
|
|
19025
|
+
|
|
18821
19026
|
ui$1.focus = function(value = true) {
|
|
18822
19027
|
this.waitLeafer(() => {
|
|
18823
19028
|
let {focusData: focusData} = this.app.interaction;
|
|
@@ -19414,4 +19619,4 @@ Plugin.add("bright");
|
|
|
19414
19619
|
|
|
19415
19620
|
UI.addAttr("bright", false, dimType);
|
|
19416
19621
|
|
|
19417
|
-
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, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, InnerEditor, InnerEditorEvent, Interaction, 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, 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, dimType, 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$
|
|
19622
|
+
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, FourNumberHelper, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, InnerEditor, InnerEditorEvent, Interaction, 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, 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, dimType, 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$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|