@leafer-editor/worker 1.12.1 → 1.12.3
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 +265 -156
- package/dist/worker.min.js +1 -1
- package/dist/worker.min.js.map +1 -1
- package/dist/worker.module.js +274 -156
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +17 -17
package/dist/worker.module.js
CHANGED
|
@@ -216,7 +216,7 @@ class LeafData {
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
const {floor: floor$2, max: max$
|
|
219
|
+
const {floor: floor$2, max: max$7} = Math;
|
|
220
220
|
|
|
221
221
|
const Platform = {
|
|
222
222
|
toURL(text, fileType) {
|
|
@@ -242,7 +242,7 @@ const Platform = {
|
|
|
242
242
|
return url;
|
|
243
243
|
},
|
|
244
244
|
resize(image, width, height, xGap, yGap, clip, smooth, opacity, _filters) {
|
|
245
|
-
const canvas = Platform.origin.createCanvas(max$
|
|
245
|
+
const canvas = Platform.origin.createCanvas(max$7(floor$2(width + (xGap || 0)), 1), max$7(floor$2(height + (yGap || 0)), 1));
|
|
246
246
|
const ctx = canvas.getContext("2d");
|
|
247
247
|
if (opacity) ctx.globalAlpha = opacity;
|
|
248
248
|
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
@@ -289,7 +289,7 @@ const I$2 = IncrementId;
|
|
|
289
289
|
|
|
290
290
|
let tempA, tempB, tempTo;
|
|
291
291
|
|
|
292
|
-
const {max: max$
|
|
292
|
+
const {max: max$6} = Math, tempFour = [ 0, 0, 0, 0 ];
|
|
293
293
|
|
|
294
294
|
const FourNumberHelper = {
|
|
295
295
|
zero: [ ...tempFour ],
|
|
@@ -341,9 +341,9 @@ const FourNumberHelper = {
|
|
|
341
341
|
return data;
|
|
342
342
|
},
|
|
343
343
|
max(t, other, change) {
|
|
344
|
-
if (isNumber(t) && isNumber(other)) return max$
|
|
344
|
+
if (isNumber(t) && isNumber(other)) return max$6(t, other);
|
|
345
345
|
toTempAB(t, other, change);
|
|
346
|
-
return set$2(tempTo, max$
|
|
346
|
+
return set$2(tempTo, max$6(tempA[0], tempB[0]), max$6(tempA[1], tempB[1]), max$6(tempA[2], tempB[2]), max$6(tempA[3], tempB[3]));
|
|
347
347
|
},
|
|
348
348
|
add(t, other, change) {
|
|
349
349
|
if (isNumber(t) && isNumber(other)) return t + other;
|
|
@@ -360,7 +360,7 @@ const FourNumberHelper = {
|
|
|
360
360
|
|
|
361
361
|
const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
|
|
362
362
|
|
|
363
|
-
const {round: round$3, pow: pow$1, max: max$
|
|
363
|
+
const {round: round$3, pow: pow$1, max: max$5, floor: floor$1, PI: PI$3} = Math;
|
|
364
364
|
|
|
365
365
|
const MathHelper = {
|
|
366
366
|
within(value, min, max) {
|
|
@@ -414,7 +414,7 @@ const MathHelper = {
|
|
|
414
414
|
}
|
|
415
415
|
},
|
|
416
416
|
getFloorScale(num, min = 1) {
|
|
417
|
-
return max$
|
|
417
|
+
return max$5(floor$1(num), min) / num;
|
|
418
418
|
},
|
|
419
419
|
randInt: randInt,
|
|
420
420
|
randColor(opacity) {
|
|
@@ -461,9 +461,9 @@ function getMatrixData() {
|
|
|
461
461
|
|
|
462
462
|
const {sin: sin$5, cos: cos$5, acos: acos, sqrt: sqrt$3} = Math;
|
|
463
463
|
|
|
464
|
-
const {float: float$
|
|
464
|
+
const {float: float$3} = MathHelper;
|
|
465
465
|
|
|
466
|
-
const tempPoint$
|
|
466
|
+
const tempPoint$4 = {};
|
|
467
467
|
|
|
468
468
|
function getWorld() {
|
|
469
469
|
return Object.assign(Object.assign(Object.assign({}, getMatrixData()), getBoundsData()), {
|
|
@@ -522,8 +522,8 @@ const MatrixHelper = {
|
|
|
522
522
|
to.f = t.f * pixelRatio;
|
|
523
523
|
},
|
|
524
524
|
scaleOfOuter(t, origin, scaleX, scaleY) {
|
|
525
|
-
M$a.toInnerPoint(t, origin, tempPoint$
|
|
526
|
-
M$a.scaleOfInner(t, tempPoint$
|
|
525
|
+
M$a.toInnerPoint(t, origin, tempPoint$4);
|
|
526
|
+
M$a.scaleOfInner(t, tempPoint$4, scaleX, scaleY);
|
|
527
527
|
},
|
|
528
528
|
scaleOfInner(t, origin, scaleX, scaleY = scaleX) {
|
|
529
529
|
M$a.translateInner(t, origin.x, origin.y);
|
|
@@ -541,8 +541,8 @@ const MatrixHelper = {
|
|
|
541
541
|
t.d = c * sinR + d * cosR;
|
|
542
542
|
},
|
|
543
543
|
rotateOfOuter(t, origin, rotation) {
|
|
544
|
-
M$a.toInnerPoint(t, origin, tempPoint$
|
|
545
|
-
M$a.rotateOfInner(t, tempPoint$
|
|
544
|
+
M$a.toInnerPoint(t, origin, tempPoint$4);
|
|
545
|
+
M$a.rotateOfInner(t, tempPoint$4, rotation);
|
|
546
546
|
},
|
|
547
547
|
rotateOfInner(t, origin, rotation) {
|
|
548
548
|
M$a.translateInner(t, origin.x, origin.y);
|
|
@@ -563,8 +563,8 @@ const MatrixHelper = {
|
|
|
563
563
|
}
|
|
564
564
|
},
|
|
565
565
|
skewOfOuter(t, origin, skewX, skewY) {
|
|
566
|
-
M$a.toInnerPoint(t, origin, tempPoint$
|
|
567
|
-
M$a.skewOfInner(t, tempPoint$
|
|
566
|
+
M$a.toInnerPoint(t, origin, tempPoint$4);
|
|
567
|
+
M$a.skewOfInner(t, tempPoint$4, skewX, skewY);
|
|
568
568
|
},
|
|
569
569
|
skewOfInner(t, origin, skewX, skewY = 0) {
|
|
570
570
|
M$a.translateInner(t, origin.x, origin.y);
|
|
@@ -712,12 +712,12 @@ const MatrixHelper = {
|
|
|
712
712
|
const cosR = c / scaleY;
|
|
713
713
|
rotation = PI_2 - (d > 0 ? acos(-cosR) : -acos(cosR));
|
|
714
714
|
}
|
|
715
|
-
const cosR = float$
|
|
715
|
+
const cosR = float$3(cos$5(rotation));
|
|
716
716
|
const sinR = sin$5(rotation);
|
|
717
|
-
scaleX = float$
|
|
718
|
-
skewX = cosR ? float$
|
|
719
|
-
skewY = cosR ? float$
|
|
720
|
-
rotation = float$
|
|
717
|
+
scaleX = float$3(scaleX), scaleY = float$3(scaleY);
|
|
718
|
+
skewX = cosR ? float$3((c / scaleY + sinR) / cosR / OneRadian, 9) : 0;
|
|
719
|
+
skewY = cosR ? float$3((b / scaleX - sinR) / cosR / OneRadian, 9) : 0;
|
|
720
|
+
rotation = float$3(rotation / OneRadian);
|
|
721
721
|
} else {
|
|
722
722
|
scaleX = a;
|
|
723
723
|
scaleY = d;
|
|
@@ -761,9 +761,11 @@ const MatrixHelper = {
|
|
|
761
761
|
|
|
762
762
|
const M$a = MatrixHelper;
|
|
763
763
|
|
|
764
|
+
const {float: float$2} = MathHelper;
|
|
765
|
+
|
|
764
766
|
const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
|
|
765
767
|
|
|
766
|
-
const {sin: sin$4, cos: cos$4, abs: abs$9, sqrt: sqrt$2, atan2: atan2$2, min: min$
|
|
768
|
+
const {sin: sin$4, cos: cos$4, abs: abs$9, sqrt: sqrt$2, atan2: atan2$2, min: min$3, round: round$2} = Math;
|
|
767
769
|
|
|
768
770
|
const PointHelper = {
|
|
769
771
|
defaultPoint: getPointData(),
|
|
@@ -812,22 +814,27 @@ const PointHelper = {
|
|
|
812
814
|
},
|
|
813
815
|
tempToInnerOf(t, matrix) {
|
|
814
816
|
const {tempPoint: temp} = P$7;
|
|
815
|
-
copy$
|
|
817
|
+
copy$c(temp, t);
|
|
816
818
|
toInnerPoint$2(matrix, temp, temp);
|
|
817
819
|
return temp;
|
|
818
820
|
},
|
|
819
821
|
tempToOuterOf(t, matrix) {
|
|
820
822
|
const {tempPoint: temp} = P$7;
|
|
821
|
-
copy$
|
|
823
|
+
copy$c(temp, t);
|
|
822
824
|
toOuterPoint$3(matrix, temp, temp);
|
|
823
825
|
return temp;
|
|
824
826
|
},
|
|
825
827
|
tempToInnerRadiusPointOf(t, matrix) {
|
|
826
828
|
const {tempRadiusPoint: temp} = P$7;
|
|
827
|
-
copy$
|
|
829
|
+
copy$c(temp, t);
|
|
828
830
|
P$7.toInnerRadiusPointOf(t, matrix, temp);
|
|
829
831
|
return temp;
|
|
830
832
|
},
|
|
833
|
+
copyRadiusPoint(t, point, x, y) {
|
|
834
|
+
copy$c(t, point);
|
|
835
|
+
setRadius(t, x, y);
|
|
836
|
+
return t;
|
|
837
|
+
},
|
|
831
838
|
toInnerRadiusPointOf(t, matrix, to) {
|
|
832
839
|
to || (to = t);
|
|
833
840
|
toInnerPoint$2(matrix, t, to);
|
|
@@ -861,7 +868,7 @@ const PointHelper = {
|
|
|
861
868
|
return sqrt$2(x * x + y * y);
|
|
862
869
|
},
|
|
863
870
|
getMinDistanceFrom(x1, y1, x2, y2, x3, y3) {
|
|
864
|
-
return min$
|
|
871
|
+
return min$3(getDistanceFrom(x1, y1, x2, y2), getDistanceFrom(x2, y2, x3, y3));
|
|
865
872
|
},
|
|
866
873
|
getAngle(t, to) {
|
|
867
874
|
return getAtan2(t, to) / OneRadian;
|
|
@@ -895,7 +902,7 @@ const PointHelper = {
|
|
|
895
902
|
return points;
|
|
896
903
|
},
|
|
897
904
|
isSame(t, point) {
|
|
898
|
-
return t.x === point.x && t.y === point.y;
|
|
905
|
+
return float$2(t.x) === float$2(point.x) && float$2(t.y) === float$2(point.y);
|
|
899
906
|
},
|
|
900
907
|
reset(t) {
|
|
901
908
|
P$7.reset(t);
|
|
@@ -904,7 +911,7 @@ const PointHelper = {
|
|
|
904
911
|
|
|
905
912
|
const P$7 = PointHelper;
|
|
906
913
|
|
|
907
|
-
const {getDistanceFrom: getDistanceFrom, copy: copy$
|
|
914
|
+
const {getDistanceFrom: getDistanceFrom, copy: copy$c, setRadius: setRadius, getAtan2: getAtan2} = P$7;
|
|
908
915
|
|
|
909
916
|
class Point {
|
|
910
917
|
constructor(x, y) {
|
|
@@ -979,7 +986,7 @@ class Point {
|
|
|
979
986
|
}
|
|
980
987
|
}
|
|
981
988
|
|
|
982
|
-
const tempPoint$
|
|
989
|
+
const tempPoint$3 = new Point;
|
|
983
990
|
|
|
984
991
|
class Matrix {
|
|
985
992
|
constructor(a, b, c, d, e, f) {
|
|
@@ -1315,7 +1322,7 @@ const BoundsHelper = {
|
|
|
1315
1322
|
return t;
|
|
1316
1323
|
},
|
|
1317
1324
|
toOffsetOutBounds(t, to, offsetBounds) {
|
|
1318
|
-
if (!to) to = t; else copy$
|
|
1325
|
+
if (!to) to = t; else copy$b(to, t);
|
|
1319
1326
|
if (!offsetBounds) offsetBounds = t;
|
|
1320
1327
|
to.offsetX = B.maxX(offsetBounds);
|
|
1321
1328
|
to.offsetY = B.maxY(offsetBounds);
|
|
@@ -1462,7 +1469,7 @@ const BoundsHelper = {
|
|
|
1462
1469
|
if (bounds && (bounds.width || bounds.height)) {
|
|
1463
1470
|
if (first) {
|
|
1464
1471
|
first = false;
|
|
1465
|
-
if (!addMode) copy$
|
|
1472
|
+
if (!addMode) copy$b(t, bounds);
|
|
1466
1473
|
} else {
|
|
1467
1474
|
add$2(t, bounds);
|
|
1468
1475
|
}
|
|
@@ -1549,7 +1556,7 @@ const BoundsHelper = {
|
|
|
1549
1556
|
|
|
1550
1557
|
const B = BoundsHelper;
|
|
1551
1558
|
|
|
1552
|
-
const {add: add$2, copy: copy$
|
|
1559
|
+
const {add: add$2, copy: copy$b} = B;
|
|
1553
1560
|
|
|
1554
1561
|
class Bounds {
|
|
1555
1562
|
get minX() {
|
|
@@ -2247,7 +2254,7 @@ __decorate([ contextMethod() ], Canvas$1.prototype, "measureText", null);
|
|
|
2247
2254
|
|
|
2248
2255
|
__decorate([ contextMethod() ], Canvas$1.prototype, "strokeText", null);
|
|
2249
2256
|
|
|
2250
|
-
const {copy: copy$
|
|
2257
|
+
const {copy: copy$a, multiplyParent: multiplyParent$4, pixelScale: pixelScale} = MatrixHelper, {round: round$1} = Math, tempPixelBounds = new Bounds, tempPixelBounds2 = new Bounds;
|
|
2251
2258
|
|
|
2252
2259
|
const minSize = {
|
|
2253
2260
|
width: 1,
|
|
@@ -2407,7 +2414,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2407
2414
|
const {pixelRatio: pixelRatio} = this;
|
|
2408
2415
|
this.filter = `blur(${blur * pixelRatio}px)`;
|
|
2409
2416
|
}
|
|
2410
|
-
copyWorld(canvas, from, to, blendMode, ceilPixel
|
|
2417
|
+
copyWorld(canvas, from, to, blendMode, ceilPixel) {
|
|
2411
2418
|
if (blendMode) this.blendMode = blendMode;
|
|
2412
2419
|
if (from) {
|
|
2413
2420
|
this.setTempPixelBounds(from, ceilPixel);
|
|
@@ -2418,7 +2425,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2418
2425
|
}
|
|
2419
2426
|
if (blendMode) this.blendMode = "source-over";
|
|
2420
2427
|
}
|
|
2421
|
-
copyWorldToInner(canvas, fromWorld, toInnerBounds, blendMode, ceilPixel
|
|
2428
|
+
copyWorldToInner(canvas, fromWorld, toInnerBounds, blendMode, ceilPixel) {
|
|
2422
2429
|
if (fromWorld.b || fromWorld.c) {
|
|
2423
2430
|
this.save();
|
|
2424
2431
|
this.resetTransform();
|
|
@@ -2431,7 +2438,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2431
2438
|
if (blendMode) this.blendMode = "source-over";
|
|
2432
2439
|
}
|
|
2433
2440
|
}
|
|
2434
|
-
copyWorldByReset(canvas, from, to, blendMode, onlyResetTransform, ceilPixel
|
|
2441
|
+
copyWorldByReset(canvas, from, to, blendMode, onlyResetTransform, ceilPixel) {
|
|
2435
2442
|
this.resetTransform();
|
|
2436
2443
|
this.copyWorld(canvas, from, to, blendMode, ceilPixel);
|
|
2437
2444
|
if (!onlyResetTransform) this.useWorldTransform();
|
|
@@ -2501,7 +2508,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2501
2508
|
getSameCanvas(useSameWorldTransform, useSameSmooth) {
|
|
2502
2509
|
const {size: size, pixelSnap: pixelSnap} = this, canvas = this.manager ? this.manager.get(size) : Creator.canvas(Object.assign({}, size));
|
|
2503
2510
|
canvas.save();
|
|
2504
|
-
if (useSameWorldTransform) copy$
|
|
2511
|
+
if (useSameWorldTransform) copy$a(canvas.worldTransform, this.worldTransform), canvas.useWorldTransform();
|
|
2505
2512
|
if (useSameSmooth) canvas.smooth = this.smooth;
|
|
2506
2513
|
canvas.pixelSnap !== pixelSnap && (canvas.pixelSnap = pixelSnap);
|
|
2507
2514
|
return canvas;
|
|
@@ -2642,7 +2649,7 @@ const RectHelper = {
|
|
|
2642
2649
|
}
|
|
2643
2650
|
};
|
|
2644
2651
|
|
|
2645
|
-
const {sin: sin$3, cos: cos$3, hypot: hypot, atan2: atan2$1, ceil: ceil, abs: abs$8, PI: PI$2, sqrt: sqrt$1, pow: pow} = Math;
|
|
2652
|
+
const {sin: sin$3, cos: cos$3, hypot: hypot$1, atan2: atan2$1, ceil: ceil, abs: abs$8, PI: PI$2, sqrt: sqrt$1, pow: pow} = Math;
|
|
2646
2653
|
|
|
2647
2654
|
const {setPoint: setPoint$4, addPoint: addPoint$2} = TwoPointBoundsHelper;
|
|
2648
2655
|
|
|
@@ -2650,7 +2657,7 @@ const {set: set$1, toNumberPoints: toNumberPoints$1} = PointHelper;
|
|
|
2650
2657
|
|
|
2651
2658
|
const {M: M$9, L: L$9, C: C$7, Q: Q$7, Z: Z$7} = PathCommandMap;
|
|
2652
2659
|
|
|
2653
|
-
const tempPoint$
|
|
2660
|
+
const tempPoint$2 = {};
|
|
2654
2661
|
|
|
2655
2662
|
const BezierHelper = {
|
|
2656
2663
|
points(data, originPoints, curve, close) {
|
|
@@ -2658,7 +2665,7 @@ const BezierHelper = {
|
|
|
2658
2665
|
data.push(M$9, points[0], points[1]);
|
|
2659
2666
|
if (curve && points.length > 5) {
|
|
2660
2667
|
let aX, aY, bX, bY, cX, cY, c1X, c1Y, c2X, c2Y;
|
|
2661
|
-
let ba, cb, d, len = points.length;
|
|
2668
|
+
let baX, baY, ba, cb, d, len = points.length;
|
|
2662
2669
|
const t = curve === true ? .5 : curve;
|
|
2663
2670
|
if (close) {
|
|
2664
2671
|
points = [ points[len - 2], points[len - 1], ...points, points[0], points[1], points[2], points[3] ];
|
|
@@ -2671,7 +2678,9 @@ const BezierHelper = {
|
|
|
2671
2678
|
bY = points[i + 1];
|
|
2672
2679
|
cX = points[i + 2];
|
|
2673
2680
|
cY = points[i + 3];
|
|
2674
|
-
|
|
2681
|
+
baX = bX - aX;
|
|
2682
|
+
baY = bY - aY;
|
|
2683
|
+
ba = sqrt$1(pow(baX, 2) + pow(baY, 2));
|
|
2675
2684
|
cb = sqrt$1(pow(cX - bX, 2) + pow(cY - bY, 2));
|
|
2676
2685
|
if (!ba && !cb) continue;
|
|
2677
2686
|
d = ba + cb;
|
|
@@ -2684,7 +2693,7 @@ const BezierHelper = {
|
|
|
2684
2693
|
if (i === 2) {
|
|
2685
2694
|
if (!close) data.push(Q$7, c1X, c1Y, bX, bY);
|
|
2686
2695
|
} else {
|
|
2687
|
-
data.push(C$7, c2X, c2Y, c1X, c1Y, bX, bY);
|
|
2696
|
+
if (baX || baY) data.push(C$7, c2X, c2Y, c1X, c1Y, bX, bY);
|
|
2688
2697
|
}
|
|
2689
2698
|
c2X = bX + cb * cX;
|
|
2690
2699
|
c2Y = bY + cb * cY;
|
|
@@ -2713,8 +2722,8 @@ const BezierHelper = {
|
|
|
2713
2722
|
const CBy = toY - y1;
|
|
2714
2723
|
let startRadian = atan2$1(BAy, BAx);
|
|
2715
2724
|
let endRadian = atan2$1(CBy, CBx);
|
|
2716
|
-
const lenBA = hypot(BAx, BAy);
|
|
2717
|
-
const lenCB = hypot(CBx, CBy);
|
|
2725
|
+
const lenBA = hypot$1(BAx, BAy);
|
|
2726
|
+
const lenCB = hypot$1(CBx, CBy);
|
|
2718
2727
|
let totalRadian = endRadian - startRadian;
|
|
2719
2728
|
if (totalRadian < 0) totalRadian += PI2;
|
|
2720
2729
|
if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$8(totalRadian - PI$2) < 1e-12) {
|
|
@@ -2819,8 +2828,8 @@ const BezierHelper = {
|
|
|
2819
2828
|
addMode ? addPoint$2(pointBounds, fromX, fromY) : setPoint$4(pointBounds, fromX, fromY);
|
|
2820
2829
|
addPoint$2(pointBounds, toX, toY);
|
|
2821
2830
|
for (let i = 0, len = tList.length; i < len; i++) {
|
|
2822
|
-
getPointAndSet(tList[i], fromX, fromY, x1, y1, x2, y2, toX, toY, tempPoint$
|
|
2823
|
-
addPoint$2(pointBounds, tempPoint$
|
|
2831
|
+
getPointAndSet(tList[i], fromX, fromY, x1, y1, x2, y2, toX, toY, tempPoint$2);
|
|
2832
|
+
addPoint$2(pointBounds, tempPoint$2.x, tempPoint$2.y);
|
|
2824
2833
|
}
|
|
2825
2834
|
},
|
|
2826
2835
|
getPointAndSet(t, fromX, fromY, x1, y1, x2, y2, toX, toY, setPoint) {
|
|
@@ -3230,7 +3239,7 @@ const {M: M$7, L: L$7, C: C$5, Q: Q$5, Z: Z$5, N: N$4, D: D$5, X: X$4, G: G$4, F
|
|
|
3230
3239
|
|
|
3231
3240
|
const {getMinDistanceFrom: getMinDistanceFrom, getRadianFrom: getRadianFrom} = PointHelper;
|
|
3232
3241
|
|
|
3233
|
-
const {tan: tan, min: min$
|
|
3242
|
+
const {tan: tan, min: min$2, abs: abs$7} = Math;
|
|
3234
3243
|
|
|
3235
3244
|
const startPoint = {};
|
|
3236
3245
|
|
|
@@ -3269,6 +3278,7 @@ const PathCommandDataHelper = {
|
|
|
3269
3278
|
}
|
|
3270
3279
|
},
|
|
3271
3280
|
ellipse(data, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
|
|
3281
|
+
if (radiusX === radiusY) return arc$2(data, x, y, radiusX, startAngle, endAngle, anticlockwise);
|
|
3272
3282
|
if (isNull(rotation)) {
|
|
3273
3283
|
data.push(F$5, x, y, radiusX, radiusY);
|
|
3274
3284
|
} else {
|
|
@@ -3281,6 +3291,7 @@ const PathCommandDataHelper = {
|
|
|
3281
3291
|
if (isNull(startAngle)) {
|
|
3282
3292
|
data.push(P$4, x, y, radius);
|
|
3283
3293
|
} else {
|
|
3294
|
+
if (isNull(startAngle)) startAngle = 0;
|
|
3284
3295
|
if (isNull(endAngle)) endAngle = 360;
|
|
3285
3296
|
data.push(O$5, x, y, radius, startAngle, endAngle, anticlockwise ? 1 : 0);
|
|
3286
3297
|
}
|
|
@@ -3288,7 +3299,7 @@ const PathCommandDataHelper = {
|
|
|
3288
3299
|
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
|
|
3289
3300
|
if (!isUndefined(lastX)) {
|
|
3290
3301
|
const d = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2);
|
|
3291
|
-
radius = min$
|
|
3302
|
+
radius = min$2(radius, min$2(d / 2, d / 2 * abs$7(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
|
|
3292
3303
|
}
|
|
3293
3304
|
data.push(U$4, x1, y1, x2, y2, radius);
|
|
3294
3305
|
},
|
|
@@ -3490,7 +3501,7 @@ const {M: M$5, L: L$5, C: C$3, Q: Q$3, Z: Z$3, N: N$2, D: D$3, X: X$2, G: G$2, F
|
|
|
3490
3501
|
|
|
3491
3502
|
const {toTwoPointBounds: toTwoPointBounds, toTwoPointBoundsByQuadraticCurve: toTwoPointBoundsByQuadraticCurve, arcTo: arcTo$1, arc: arc, ellipse: ellipse$1} = BezierHelper;
|
|
3492
3503
|
|
|
3493
|
-
const {addPointBounds: addPointBounds, copy: copy$
|
|
3504
|
+
const {addPointBounds: addPointBounds, copy: copy$9, addPoint: addPoint$1, setPoint: setPoint$3, addBounds: addBounds, toBounds: toBounds$2} = TwoPointBoundsHelper;
|
|
3494
3505
|
|
|
3495
3506
|
const debug$d = Debug.get("PathBounds");
|
|
3496
3507
|
|
|
@@ -3572,7 +3583,7 @@ const PathBounds = {
|
|
|
3572
3583
|
|
|
3573
3584
|
case G$2:
|
|
3574
3585
|
ellipse$1(null, data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], data[i + 6], data[i + 7], data[i + 8], tempPointBounds, setEndPoint);
|
|
3575
|
-
i === 0 ? copy$
|
|
3586
|
+
i === 0 ? copy$9(setPointBounds, tempPointBounds) : addPointBounds(setPointBounds, tempPointBounds);
|
|
3576
3587
|
x = setEndPoint.x;
|
|
3577
3588
|
y = setEndPoint.y;
|
|
3578
3589
|
i += 9;
|
|
@@ -3590,7 +3601,7 @@ const PathBounds = {
|
|
|
3590
3601
|
|
|
3591
3602
|
case O$3:
|
|
3592
3603
|
arc(null, data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], data[i + 6], tempPointBounds, setEndPoint);
|
|
3593
|
-
i === 0 ? copy$
|
|
3604
|
+
i === 0 ? copy$9(setPointBounds, tempPointBounds) : addPointBounds(setPointBounds, tempPointBounds);
|
|
3594
3605
|
x = setEndPoint.x;
|
|
3595
3606
|
y = setEndPoint.y;
|
|
3596
3607
|
i += 7;
|
|
@@ -3607,7 +3618,7 @@ const PathBounds = {
|
|
|
3607
3618
|
|
|
3608
3619
|
case U$2:
|
|
3609
3620
|
arcTo$1(null, x, y, data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], tempPointBounds, setEndPoint);
|
|
3610
|
-
i === 0 ? copy$
|
|
3621
|
+
i === 0 ? copy$9(setPointBounds, tempPointBounds) : addPointBounds(setPointBounds, tempPointBounds);
|
|
3611
3622
|
x = setEndPoint.x;
|
|
3612
3623
|
y = setEndPoint.y;
|
|
3613
3624
|
i += 6;
|
|
@@ -3631,6 +3642,7 @@ const PathCorner = {
|
|
|
3631
3642
|
smooth(data, cornerRadius, _cornerSmoothing) {
|
|
3632
3643
|
let command, lastCommand, commandLen;
|
|
3633
3644
|
let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
|
|
3645
|
+
if (isArray(cornerRadius)) cornerRadius = cornerRadius[0] || 0;
|
|
3634
3646
|
const len = data.length;
|
|
3635
3647
|
const smooth = [];
|
|
3636
3648
|
while (i < len) {
|
|
@@ -4046,7 +4058,9 @@ const R = Resource;
|
|
|
4046
4058
|
const ImageManager = {
|
|
4047
4059
|
maxRecycled: 10,
|
|
4048
4060
|
recycledList: [],
|
|
4049
|
-
patternTasker: new TaskProcessor
|
|
4061
|
+
patternTasker: new TaskProcessor({
|
|
4062
|
+
parallel: 1
|
|
4063
|
+
}),
|
|
4050
4064
|
get(config) {
|
|
4051
4065
|
let image = Resource.get(config.url);
|
|
4052
4066
|
if (!image) Resource.set(config.url, image = Creator.image(config));
|
|
@@ -4103,6 +4117,10 @@ class LeaferImage {
|
|
|
4103
4117
|
get url() {
|
|
4104
4118
|
return this.config.url;
|
|
4105
4119
|
}
|
|
4120
|
+
get crossOrigin() {
|
|
4121
|
+
const {crossOrigin: crossOrigin} = this.config;
|
|
4122
|
+
return isUndefined(crossOrigin) ? Platform.image.crossOrigin : crossOrigin;
|
|
4123
|
+
}
|
|
4106
4124
|
get completed() {
|
|
4107
4125
|
return this.ready || !!this.error;
|
|
4108
4126
|
}
|
|
@@ -4120,12 +4138,14 @@ class LeaferImage {
|
|
|
4120
4138
|
ImageManager.isFormat("svg", config) && (this.isSVG = true);
|
|
4121
4139
|
ImageManager.hasAlphaPixel(config) && (this.hasAlphaPixel = true);
|
|
4122
4140
|
}
|
|
4123
|
-
load(onSuccess, onError) {
|
|
4141
|
+
load(onSuccess, onError, thumbSize) {
|
|
4124
4142
|
if (!this.loading) {
|
|
4125
4143
|
this.loading = true;
|
|
4126
|
-
const {crossOrigin: crossOrigin} = this.config;
|
|
4127
4144
|
Resource.tasker.add(() => __awaiter(this, void 0, void 0, function*() {
|
|
4128
|
-
return yield Platform.origin.loadImage(this.
|
|
4145
|
+
return yield Platform.origin.loadImage(this.getLoadUrl(thumbSize), this.crossOrigin, this).then(img => {
|
|
4146
|
+
if (thumbSize) this.setThumbView(img);
|
|
4147
|
+
this.setView(img);
|
|
4148
|
+
}).catch(e => {
|
|
4129
4149
|
this.error = e;
|
|
4130
4150
|
this.onComplete(false);
|
|
4131
4151
|
});
|
|
@@ -4146,9 +4166,11 @@ class LeaferImage {
|
|
|
4146
4166
|
}
|
|
4147
4167
|
setView(img) {
|
|
4148
4168
|
this.ready = true;
|
|
4149
|
-
this.width
|
|
4150
|
-
|
|
4151
|
-
|
|
4169
|
+
if (!this.width) {
|
|
4170
|
+
this.width = img.width;
|
|
4171
|
+
this.height = img.height;
|
|
4172
|
+
this.view = img;
|
|
4173
|
+
}
|
|
4152
4174
|
this.onComplete(true);
|
|
4153
4175
|
}
|
|
4154
4176
|
onComplete(isSuccess) {
|
|
@@ -4194,6 +4216,19 @@ class LeaferImage {
|
|
|
4194
4216
|
Platform.image.setPatternTransform(pattern, transform, paint);
|
|
4195
4217
|
return pattern;
|
|
4196
4218
|
}
|
|
4219
|
+
getLoadUrl(_thumbSize) {
|
|
4220
|
+
return this.url;
|
|
4221
|
+
}
|
|
4222
|
+
setThumbView(_view) {}
|
|
4223
|
+
getThumbSize() {
|
|
4224
|
+
return undefined;
|
|
4225
|
+
}
|
|
4226
|
+
getMinLevel() {
|
|
4227
|
+
return undefined;
|
|
4228
|
+
}
|
|
4229
|
+
getLevelData(_level) {
|
|
4230
|
+
return undefined;
|
|
4231
|
+
}
|
|
4197
4232
|
clearLevels(_checkUse) {}
|
|
4198
4233
|
destroy() {
|
|
4199
4234
|
this.clearLevels();
|
|
@@ -4627,7 +4662,7 @@ function registerUIEvent() {
|
|
|
4627
4662
|
};
|
|
4628
4663
|
}
|
|
4629
4664
|
|
|
4630
|
-
const {copy: copy$
|
|
4665
|
+
const {copy: copy$8, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter: skewOfOuter, multiplyParent: multiplyParent$3, divideParent: divideParent, getLayout: getLayout} = MatrixHelper;
|
|
4631
4666
|
|
|
4632
4667
|
const matrix$3 = {}, {round: round} = Math;
|
|
4633
4668
|
|
|
@@ -4725,7 +4760,7 @@ const LeafHelper = {
|
|
|
4725
4760
|
if (scaleY) transition = scaleY;
|
|
4726
4761
|
scaleY = scaleX;
|
|
4727
4762
|
}
|
|
4728
|
-
copy$
|
|
4763
|
+
copy$8(matrix$3, o);
|
|
4729
4764
|
scaleOfOuter$2(matrix$3, origin, scaleX, scaleY);
|
|
4730
4765
|
if (L$3.hasHighPosition(t)) {
|
|
4731
4766
|
L$3.setTransform(t, matrix$3, resize, transition);
|
|
@@ -4744,7 +4779,7 @@ const LeafHelper = {
|
|
|
4744
4779
|
},
|
|
4745
4780
|
rotateOfLocal(t, origin, angle, transition) {
|
|
4746
4781
|
const o = t.__localMatrix;
|
|
4747
|
-
copy$
|
|
4782
|
+
copy$8(matrix$3, o);
|
|
4748
4783
|
rotateOfOuter$2(matrix$3, origin, angle);
|
|
4749
4784
|
if (L$3.hasHighPosition(t)) L$3.setTransform(t, matrix$3, false, transition); else t.set({
|
|
4750
4785
|
x: t.x + matrix$3.e - o.e,
|
|
@@ -4756,18 +4791,18 @@ const LeafHelper = {
|
|
|
4756
4791
|
L$3.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize, transition);
|
|
4757
4792
|
},
|
|
4758
4793
|
skewOfLocal(t, origin, skewX, skewY = 0, resize, transition) {
|
|
4759
|
-
copy$
|
|
4794
|
+
copy$8(matrix$3, t.__localMatrix);
|
|
4760
4795
|
skewOfOuter(matrix$3, origin, skewX, skewY);
|
|
4761
4796
|
L$3.setTransform(t, matrix$3, resize, transition);
|
|
4762
4797
|
},
|
|
4763
4798
|
transformWorld(t, transform, resize, transition) {
|
|
4764
|
-
copy$
|
|
4799
|
+
copy$8(matrix$3, t.worldTransform);
|
|
4765
4800
|
multiplyParent$3(matrix$3, transform);
|
|
4766
4801
|
if (t.parent) divideParent(matrix$3, t.parent.scrollWorldTransform);
|
|
4767
4802
|
L$3.setTransform(t, matrix$3, resize, transition);
|
|
4768
4803
|
},
|
|
4769
4804
|
transform(t, transform, resize, transition) {
|
|
4770
|
-
copy$
|
|
4805
|
+
copy$8(matrix$3, t.localTransform);
|
|
4771
4806
|
multiplyParent$3(matrix$3, transform);
|
|
4772
4807
|
L$3.setTransform(t, matrix$3, resize, transition);
|
|
4773
4808
|
},
|
|
@@ -4805,7 +4840,7 @@ const LeafHelper = {
|
|
|
4805
4840
|
return innerOrigin;
|
|
4806
4841
|
},
|
|
4807
4842
|
getRelativeWorld(t, relative, temp) {
|
|
4808
|
-
copy$
|
|
4843
|
+
copy$8(matrix$3, t.worldTransform);
|
|
4809
4844
|
divideParent(matrix$3, relative.scrollWorldTransform);
|
|
4810
4845
|
return temp ? matrix$3 : Object.assign({}, matrix$3);
|
|
4811
4846
|
},
|
|
@@ -5013,7 +5048,7 @@ const WaitHelper = {
|
|
|
5013
5048
|
|
|
5014
5049
|
const {getRelativeWorld: getRelativeWorld$1, updateBounds: updateBounds$2} = LeafHelper;
|
|
5015
5050
|
|
|
5016
|
-
const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$
|
|
5051
|
+
const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$7} = BoundsHelper;
|
|
5017
5052
|
|
|
5018
5053
|
const localContent = "_localContentBounds";
|
|
5019
5054
|
|
|
@@ -5252,7 +5287,7 @@ class LeafLayout {
|
|
|
5252
5287
|
matrix = getRelativeWorld$1(leaf, relative, true);
|
|
5253
5288
|
}
|
|
5254
5289
|
if (!layoutBounds) layoutBounds = MatrixHelper.getLayout(matrix);
|
|
5255
|
-
copy$
|
|
5290
|
+
copy$7(layoutBounds, bounds);
|
|
5256
5291
|
PointHelper.copy(layoutBounds, point);
|
|
5257
5292
|
if (unscale) {
|
|
5258
5293
|
const {scaleX: scaleX, scaleY: scaleY} = layoutBounds;
|
|
@@ -5874,7 +5909,7 @@ const LeafDataProxy = {
|
|
|
5874
5909
|
|
|
5875
5910
|
const {setLayout: setLayout, multiplyParent: multiplyParent$2, translateInner: translateInner, defaultWorld: defaultWorld} = MatrixHelper;
|
|
5876
5911
|
|
|
5877
|
-
const {toPoint: toPoint$4, tempPoint: tempPoint} = AroundHelper;
|
|
5912
|
+
const {toPoint: toPoint$4, tempPoint: tempPoint$1} = AroundHelper;
|
|
5878
5913
|
|
|
5879
5914
|
const LeafMatrix = {
|
|
5880
5915
|
__updateWorldMatrix() {
|
|
@@ -5894,8 +5929,8 @@ const LeafMatrix = {
|
|
|
5894
5929
|
local.e = data.x + data.offsetX;
|
|
5895
5930
|
local.f = data.y + data.offsetY;
|
|
5896
5931
|
if (data.around || data.origin) {
|
|
5897
|
-
toPoint$4(data.around || data.origin, layout.boxBounds, tempPoint);
|
|
5898
|
-
translateInner(local, -tempPoint.x, -tempPoint.y, !data.around);
|
|
5932
|
+
toPoint$4(data.around || data.origin, layout.boxBounds, tempPoint$1);
|
|
5933
|
+
translateInner(local, -tempPoint$1.x, -tempPoint$1.y, !data.around);
|
|
5899
5934
|
}
|
|
5900
5935
|
}
|
|
5901
5936
|
this.__layout.matrixChanged = undefined;
|
|
@@ -5906,7 +5941,7 @@ const {updateMatrix: updateMatrix$2, updateAllMatrix: updateAllMatrix$2} = LeafH
|
|
|
5906
5941
|
|
|
5907
5942
|
const {updateBounds: updateBounds$1} = BranchHelper;
|
|
5908
5943
|
|
|
5909
|
-
const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$2, copy: copy$
|
|
5944
|
+
const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$2, copy: copy$6} = BoundsHelper;
|
|
5910
5945
|
|
|
5911
5946
|
const {toBounds: toBounds$1} = PathBounds;
|
|
5912
5947
|
|
|
@@ -6017,7 +6052,7 @@ const LeafBounds = {
|
|
|
6017
6052
|
},
|
|
6018
6053
|
__updateRenderBounds(_bounds) {
|
|
6019
6054
|
const layout = this.__layout, {renderSpread: renderSpread} = layout;
|
|
6020
|
-
isNumber(renderSpread) && renderSpread <= 0 ? copy$
|
|
6055
|
+
isNumber(renderSpread) && renderSpread <= 0 ? copy$6(layout.renderBounds, layout.strokeBounds) : copyAndSpread$2(layout.renderBounds, layout.boxBounds, renderSpread);
|
|
6021
6056
|
}
|
|
6022
6057
|
};
|
|
6023
6058
|
|
|
@@ -6122,7 +6157,7 @@ const {toInnerPoint: toInnerPoint, toOuterPoint: toOuterPoint, multiplyParent: m
|
|
|
6122
6157
|
|
|
6123
6158
|
const {toOuterOf: toOuterOf$1} = BoundsHelper;
|
|
6124
6159
|
|
|
6125
|
-
const {copy: copy$
|
|
6160
|
+
const {copy: copy$5, move: move$4} = PointHelper;
|
|
6126
6161
|
|
|
6127
6162
|
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;
|
|
6128
6163
|
|
|
@@ -6441,14 +6476,14 @@ let Leaf = class Leaf {
|
|
|
6441
6476
|
if (this.parent) {
|
|
6442
6477
|
this.parent.worldToInner(world, to, distance, relative);
|
|
6443
6478
|
} else {
|
|
6444
|
-
if (to) copy$
|
|
6479
|
+
if (to) copy$5(to, world);
|
|
6445
6480
|
}
|
|
6446
6481
|
}
|
|
6447
6482
|
localToWorld(local, to, distance, relative) {
|
|
6448
6483
|
if (this.parent) {
|
|
6449
6484
|
this.parent.innerToWorld(local, to, distance, relative);
|
|
6450
6485
|
} else {
|
|
6451
|
-
if (to) copy$
|
|
6486
|
+
if (to) copy$5(to, local);
|
|
6452
6487
|
}
|
|
6453
6488
|
}
|
|
6454
6489
|
worldToInner(world, to, distance, relative) {
|
|
@@ -6923,7 +6958,7 @@ class LeafLevelList {
|
|
|
6923
6958
|
}
|
|
6924
6959
|
}
|
|
6925
6960
|
|
|
6926
|
-
const version = "1.12.
|
|
6961
|
+
const version = "1.12.3";
|
|
6927
6962
|
|
|
6928
6963
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6929
6964
|
get allowBackgroundColor() {
|
|
@@ -7572,6 +7607,10 @@ class Renderer {
|
|
|
7572
7607
|
|
|
7573
7608
|
Renderer.clipSpread = 10;
|
|
7574
7609
|
|
|
7610
|
+
const tempPoint = {};
|
|
7611
|
+
|
|
7612
|
+
const {copyRadiusPoint: copyRadiusPoint$1} = PointHelper;
|
|
7613
|
+
|
|
7575
7614
|
const {hitRadiusPoint: hitRadiusPoint$1} = BoundsHelper;
|
|
7576
7615
|
|
|
7577
7616
|
class Picker {
|
|
@@ -7698,15 +7737,15 @@ class Picker {
|
|
|
7698
7737
|
this.eachFind(branch.children, branch.__onlyHitMask);
|
|
7699
7738
|
}
|
|
7700
7739
|
eachFind(children, hitMask) {
|
|
7701
|
-
let child, hit;
|
|
7740
|
+
let child, hit, data;
|
|
7702
7741
|
const {point: point} = this, len = children.length;
|
|
7703
7742
|
for (let i = len - 1; i > -1; i--) {
|
|
7704
|
-
child = children[i];
|
|
7705
|
-
if (!
|
|
7706
|
-
hit = child.
|
|
7743
|
+
child = children[i], data = child.__;
|
|
7744
|
+
if (!data.visible || hitMask && !data.mask) continue;
|
|
7745
|
+
hit = hitRadiusPoint$1(child.__world, data.hitRadius ? copyRadiusPoint$1(tempPoint, point, data.hitRadius) : point);
|
|
7707
7746
|
if (child.isBranch) {
|
|
7708
7747
|
if (hit || child.__ignoreHitWorld) {
|
|
7709
|
-
if (child.isBranchLeaf &&
|
|
7748
|
+
if (child.isBranchLeaf && data.__clipAfterFill && !child.__hitWorld(point, true)) continue;
|
|
7710
7749
|
if (child.topChildren) this.eachFind(child.topChildren, false);
|
|
7711
7750
|
this.eachFind(child.children, child.__onlyHitMask);
|
|
7712
7751
|
if (child.isBranchLeaf) this.hitChild(child, point);
|
|
@@ -8193,7 +8232,7 @@ class CanvasData extends RectData {
|
|
|
8193
8232
|
}
|
|
8194
8233
|
}
|
|
8195
8234
|
|
|
8196
|
-
const {max: max$
|
|
8235
|
+
const {max: max$4, add: add$1} = FourNumberHelper;
|
|
8197
8236
|
|
|
8198
8237
|
const UIBounds = {
|
|
8199
8238
|
__updateStrokeSpread() {
|
|
@@ -8209,7 +8248,7 @@ const UIBounds = {
|
|
|
8209
8248
|
}
|
|
8210
8249
|
if (data.__useArrow) spread += strokeWidth * 5;
|
|
8211
8250
|
if (box) {
|
|
8212
|
-
spread = max$
|
|
8251
|
+
spread = max$4(spread, box.__layout.strokeSpread = box.__updateStrokeSpread());
|
|
8213
8252
|
boxSpread = Math.max(boxSpread, box.__layout.strokeBoxSpread);
|
|
8214
8253
|
}
|
|
8215
8254
|
this.__layout.strokeBoxSpread = boxSpread;
|
|
@@ -8219,15 +8258,15 @@ const UIBounds = {
|
|
|
8219
8258
|
let spread = 0;
|
|
8220
8259
|
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__, {strokeSpread: strokeSpread} = this.__layout, box = this.__box;
|
|
8221
8260
|
if (shadow) spread = Effect.getShadowRenderSpread(this, shadow);
|
|
8222
|
-
if (blur) spread = max$
|
|
8261
|
+
if (blur) spread = max$4(spread, blur);
|
|
8223
8262
|
if (filter) spread = add$1(spread, Filter.getSpread(filter));
|
|
8224
8263
|
if (renderSpread) spread = add$1(spread, renderSpread);
|
|
8225
8264
|
if (strokeSpread) spread = add$1(spread, strokeSpread);
|
|
8226
8265
|
let shapeSpread = spread;
|
|
8227
|
-
if (innerShadow) shapeSpread = max$
|
|
8228
|
-
if (backgroundBlur) shapeSpread = max$
|
|
8266
|
+
if (innerShadow) shapeSpread = max$4(shapeSpread, Effect.getInnerShadowSpread(this, innerShadow));
|
|
8267
|
+
if (backgroundBlur) shapeSpread = max$4(shapeSpread, backgroundBlur);
|
|
8229
8268
|
this.__layout.renderShapeSpread = shapeSpread;
|
|
8230
|
-
return box ? max$
|
|
8269
|
+
return box ? max$4(box.__updateRenderSpread(), spread) : spread;
|
|
8231
8270
|
}
|
|
8232
8271
|
};
|
|
8233
8272
|
|
|
@@ -8283,7 +8322,7 @@ const UIRender = {
|
|
|
8283
8322
|
if (stroke && !__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke, this, canvas, options) : Paint.stroke(stroke, this, canvas, options);
|
|
8284
8323
|
}
|
|
8285
8324
|
} else {
|
|
8286
|
-
if (data.
|
|
8325
|
+
if (data.__pathForRender) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
|
|
8287
8326
|
}
|
|
8288
8327
|
},
|
|
8289
8328
|
__drawShape(canvas, options) {
|
|
@@ -8407,7 +8446,7 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8407
8446
|
getPath(curve, pathForRender) {
|
|
8408
8447
|
this.__layout.update();
|
|
8409
8448
|
let path = pathForRender ? this.__.__pathForRender : this.__.path;
|
|
8410
|
-
if (!path) pen.set(path = []), this.__drawPathByBox(pen);
|
|
8449
|
+
if (!path) pen.set(path = []), this.__drawPathByBox(pen, !pathForRender);
|
|
8411
8450
|
return curve ? PathConvert.toCanvasData(path, true) : path;
|
|
8412
8451
|
}
|
|
8413
8452
|
getPathString(curve, pathForRender, floatLength) {
|
|
@@ -8435,17 +8474,18 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8435
8474
|
}
|
|
8436
8475
|
__drawPath(canvas) {
|
|
8437
8476
|
canvas.beginPath();
|
|
8438
|
-
this.__drawPathByData(canvas, this.__.path);
|
|
8477
|
+
this.__drawPathByData(canvas, this.__.path, true);
|
|
8439
8478
|
}
|
|
8440
|
-
__drawPathByData(drawer, data) {
|
|
8441
|
-
data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer);
|
|
8479
|
+
__drawPathByData(drawer, data, ignoreCornerRadius) {
|
|
8480
|
+
data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer, ignoreCornerRadius);
|
|
8442
8481
|
}
|
|
8443
|
-
__drawPathByBox(drawer) {
|
|
8482
|
+
__drawPathByBox(drawer, ignoreCornerRadius) {
|
|
8444
8483
|
const {x: x, y: y, width: width, height: height} = this.__layout.boxBounds;
|
|
8445
|
-
if (this.__.cornerRadius) {
|
|
8484
|
+
if (this.__.cornerRadius && !ignoreCornerRadius) {
|
|
8446
8485
|
const {cornerRadius: cornerRadius} = this.__;
|
|
8447
8486
|
drawer.roundRect(x, y, width, height, isNumber(cornerRadius) ? [ cornerRadius ] : cornerRadius);
|
|
8448
8487
|
} else drawer.rect(x, y, width, height);
|
|
8488
|
+
drawer.closePath();
|
|
8449
8489
|
}
|
|
8450
8490
|
drawImagePlaceholder(_paint, canvas, renderOptions) {
|
|
8451
8491
|
Paint.fill(this.__.placeholderColor, this, canvas, renderOptions);
|
|
@@ -8714,6 +8754,9 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8714
8754
|
get layoutLocked() {
|
|
8715
8755
|
return !this.layouter.running;
|
|
8716
8756
|
}
|
|
8757
|
+
get view() {
|
|
8758
|
+
return this.canvas && this.canvas.view;
|
|
8759
|
+
}
|
|
8717
8760
|
get FPS() {
|
|
8718
8761
|
return this.renderer ? this.renderer.FPS : 60;
|
|
8719
8762
|
}
|
|
@@ -8765,7 +8808,6 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8765
8808
|
this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
|
|
8766
8809
|
if (this.isApp) this.__setApp();
|
|
8767
8810
|
this.__checkAutoLayout();
|
|
8768
|
-
this.view = canvas.view;
|
|
8769
8811
|
if (!parentApp) {
|
|
8770
8812
|
this.selector = Creator.selector(this);
|
|
8771
8813
|
this.interaction = Creator.interaction(this, canvas, this.selector, config);
|
|
@@ -9045,7 +9087,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
9045
9087
|
if (this.canvasManager) this.canvasManager.destroy();
|
|
9046
9088
|
}
|
|
9047
9089
|
if (this.canvas) this.canvas.destroy();
|
|
9048
|
-
this.config.view = this.
|
|
9090
|
+
this.config.view = this.parentApp = null;
|
|
9049
9091
|
if (this.userConfig) this.userConfig.view = null;
|
|
9050
9092
|
super.destroy();
|
|
9051
9093
|
setTimeout(() => {
|
|
@@ -9229,7 +9271,6 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9229
9271
|
if (startAngle || endAngle) {
|
|
9230
9272
|
if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
|
|
9231
9273
|
ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
|
|
9232
|
-
if (innerRadius < 1) closePath$2(path);
|
|
9233
9274
|
} else {
|
|
9234
9275
|
if (innerRadius < 1) {
|
|
9235
9276
|
ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius);
|
|
@@ -9237,16 +9278,16 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9237
9278
|
}
|
|
9238
9279
|
ellipse(path, rx, ry, rx, ry, 0, 360, 0, true);
|
|
9239
9280
|
}
|
|
9240
|
-
if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
|
|
9241
9281
|
} else {
|
|
9242
9282
|
if (startAngle || endAngle) {
|
|
9243
9283
|
moveTo$3(path, rx, ry);
|
|
9244
9284
|
ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle, false);
|
|
9245
|
-
closePath$2(path);
|
|
9246
9285
|
} else {
|
|
9247
9286
|
ellipse(path, rx, ry, rx, ry);
|
|
9248
9287
|
}
|
|
9249
9288
|
}
|
|
9289
|
+
closePath$2(path);
|
|
9290
|
+
if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
|
|
9250
9291
|
}
|
|
9251
9292
|
};
|
|
9252
9293
|
|
|
@@ -9897,7 +9938,7 @@ class UIEvent extends Event {
|
|
|
9897
9938
|
}
|
|
9898
9939
|
}
|
|
9899
9940
|
|
|
9900
|
-
const {min: min, max: max$
|
|
9941
|
+
const {min: min$1, max: max$3, abs: abs$6} = Math, {float: float, sign: sign$2} = MathHelper, {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = BoundsHelper;
|
|
9901
9942
|
|
|
9902
9943
|
const tempContent = new Bounds, tempDragBounds = new Bounds;
|
|
9903
9944
|
|
|
@@ -9954,7 +9995,7 @@ const DragBoundsHelper = {
|
|
|
9954
9995
|
bSize = float(tempDragBounds.maxX - tempContent.maxX);
|
|
9955
9996
|
aScale = originLeftScale && aSize > 0 ? 1 + aSize / (originLeftScale * tempContent.width) : 1;
|
|
9956
9997
|
bScale = originRightScale && bSize > 0 ? 1 + bSize / (originRightScale * tempContent.width) : 1;
|
|
9957
|
-
correctScaleX *= max$
|
|
9998
|
+
correctScaleX *= max$3(aScale, bScale);
|
|
9958
9999
|
} else {
|
|
9959
10000
|
if (scale.x < 0) {
|
|
9960
10001
|
if (float(minX(content) - minX(dragBounds)) <= 0 || float(maxX(dragBounds) - maxX(content)) <= 0) tempContent.scaleOf(origin, correctScaleX = 1 / scale.x, 1);
|
|
@@ -9964,7 +10005,7 @@ const DragBoundsHelper = {
|
|
|
9964
10005
|
bSize = float(tempContent.maxX - tempDragBounds.maxX);
|
|
9965
10006
|
aScale = originLeftScale && aSize > 0 ? 1 - aSize / (originLeftScale * tempContent.width) : 1;
|
|
9966
10007
|
bScale = originRightScale && bSize > 0 ? 1 - bSize / (originRightScale * tempContent.width) : 1;
|
|
9967
|
-
correctScaleX *= min(aScale, bScale);
|
|
10008
|
+
correctScaleX *= min$1(aScale, bScale);
|
|
9968
10009
|
}
|
|
9969
10010
|
if (D$2.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
9970
10011
|
if (scale.y < 0) tempContent.scaleOf(origin, 1, correctScaleY = 1 / scale.y);
|
|
@@ -9972,9 +10013,9 @@ const DragBoundsHelper = {
|
|
|
9972
10013
|
bSize = float(tempDragBounds.maxY - tempContent.maxY);
|
|
9973
10014
|
aScale = originTopScale && aSize > 0 ? 1 + aSize / (originTopScale * tempContent.height) : 1;
|
|
9974
10015
|
bScale = originBottomScale && bSize > 0 ? 1 + bSize / (originBottomScale * tempContent.height) : 1;
|
|
9975
|
-
correctScaleY *= max$
|
|
10016
|
+
correctScaleY *= max$3(aScale, bScale);
|
|
9976
10017
|
if (lockRatio) {
|
|
9977
|
-
aScale = max$
|
|
10018
|
+
aScale = max$3(abs$6(correctScaleX), abs$6(correctScaleY));
|
|
9978
10019
|
correctScaleX = sign$2(correctScaleX) * aScale;
|
|
9979
10020
|
correctScaleY = sign$2(correctScaleY) * aScale;
|
|
9980
10021
|
}
|
|
@@ -9987,7 +10028,7 @@ const DragBoundsHelper = {
|
|
|
9987
10028
|
bSize = float(tempContent.maxY - tempDragBounds.maxY);
|
|
9988
10029
|
aScale = originTopScale && aSize > 0 ? 1 - aSize / (originTopScale * tempContent.height) : 1;
|
|
9989
10030
|
bScale = originBottomScale && bSize > 0 ? 1 - bSize / (originBottomScale * tempContent.height) : 1;
|
|
9990
|
-
correctScaleY *= min(aScale, bScale);
|
|
10031
|
+
correctScaleY *= min$1(aScale, bScale);
|
|
9991
10032
|
}
|
|
9992
10033
|
scale.x *= isFinite$1(correctScaleX) ? correctScaleX : 1;
|
|
9993
10034
|
scale.y *= isFinite$1(correctScaleY) ? correctScaleY : 1;
|
|
@@ -10136,8 +10177,14 @@ MoveEvent.START = "move.start";
|
|
|
10136
10177
|
|
|
10137
10178
|
MoveEvent.MOVE = "move";
|
|
10138
10179
|
|
|
10180
|
+
MoveEvent.DRAG_ANIMATE = "move.drag_animate";
|
|
10181
|
+
|
|
10139
10182
|
MoveEvent.END = "move.end";
|
|
10140
10183
|
|
|
10184
|
+
MoveEvent.PULL_DOWN = "move.pull_down";
|
|
10185
|
+
|
|
10186
|
+
MoveEvent.REACH_BOTTOM = "move.reach_bottom";
|
|
10187
|
+
|
|
10141
10188
|
MoveEvent = __decorate([ registerUIEvent() ], MoveEvent);
|
|
10142
10189
|
|
|
10143
10190
|
let TouchEvent = class TouchEvent extends UIEvent {};
|
|
@@ -10234,6 +10281,7 @@ const InteractionHelper = {
|
|
|
10234
10281
|
ctrlKey: e.ctrlKey,
|
|
10235
10282
|
shiftKey: e.shiftKey,
|
|
10236
10283
|
metaKey: e.metaKey,
|
|
10284
|
+
time: Date.now(),
|
|
10237
10285
|
buttons: isUndefined(e.buttons) ? 1 : e.buttons === 0 ? pointerUpButtons : e.buttons,
|
|
10238
10286
|
origin: e
|
|
10239
10287
|
};
|
|
@@ -10269,6 +10317,7 @@ const {getDragEventData: getDragEventData, getDropEventData: getDropEventData, g
|
|
|
10269
10317
|
|
|
10270
10318
|
class Dragger {
|
|
10271
10319
|
constructor(interaction) {
|
|
10320
|
+
this.dragDataList = [];
|
|
10272
10321
|
this.interaction = interaction;
|
|
10273
10322
|
}
|
|
10274
10323
|
setDragData(data) {
|
|
@@ -10331,6 +10380,7 @@ class Dragger {
|
|
|
10331
10380
|
this.dragData = getDragEventData(downData, dragData, data);
|
|
10332
10381
|
if (throughPath) this.dragData.throughPath = throughPath;
|
|
10333
10382
|
this.dragData.path = path;
|
|
10383
|
+
this.dragDataList.push(this.dragData);
|
|
10334
10384
|
if (this.moving) {
|
|
10335
10385
|
data.moving = true;
|
|
10336
10386
|
this.dragData.moveType = "drag";
|
|
@@ -10381,9 +10431,9 @@ class Dragger {
|
|
|
10381
10431
|
interaction.emit(DragEvent.ENTER, data, path, dragEnterPath);
|
|
10382
10432
|
this.dragEnterPath = path;
|
|
10383
10433
|
}
|
|
10384
|
-
dragEnd(data
|
|
10434
|
+
dragEnd(data) {
|
|
10385
10435
|
if (!this.dragging && !this.moving) return;
|
|
10386
|
-
if (this.checkDragEndAnimate(data
|
|
10436
|
+
if (this.checkDragEndAnimate(data)) return;
|
|
10387
10437
|
this.dragEndReal(data);
|
|
10388
10438
|
}
|
|
10389
10439
|
dragEndReal(data) {
|
|
@@ -10425,11 +10475,13 @@ class Dragger {
|
|
|
10425
10475
|
}
|
|
10426
10476
|
dragReset() {
|
|
10427
10477
|
DragEvent.list = DragEvent.data = this.draggableList = this.dragData = this.downData = this.dragOverPath = this.dragEnterPath = null;
|
|
10478
|
+
this.dragDataList = [];
|
|
10428
10479
|
}
|
|
10429
10480
|
checkDragEndAnimate(_data, _speed) {
|
|
10430
10481
|
return false;
|
|
10431
10482
|
}
|
|
10432
10483
|
animate(_func, _off) {}
|
|
10484
|
+
stopAnimate() {}
|
|
10433
10485
|
checkDragOut(_data) {}
|
|
10434
10486
|
autoMoveOnDragOut(_data) {}
|
|
10435
10487
|
autoMoveCancel() {}
|
|
@@ -10823,6 +10875,9 @@ class InteractionBase {
|
|
|
10823
10875
|
this.pointerHover(hoverData);
|
|
10824
10876
|
}
|
|
10825
10877
|
}
|
|
10878
|
+
stopDragAnimate() {
|
|
10879
|
+
this.dragger.stopAnimate();
|
|
10880
|
+
}
|
|
10826
10881
|
updateDownData(data, options, merge) {
|
|
10827
10882
|
const {downData: downData} = this;
|
|
10828
10883
|
if (!data && downData) data = downData;
|
|
@@ -11006,7 +11061,7 @@ Platform.getSelector = function(leaf) {
|
|
|
11006
11061
|
return leaf.leafer ? leaf.leafer.selector : Platform.selector || (Platform.selector = Creator.selector());
|
|
11007
11062
|
};
|
|
11008
11063
|
|
|
11009
|
-
const {toInnerRadiusPointOf: toInnerRadiusPointOf,
|
|
11064
|
+
const {toInnerRadiusPointOf: toInnerRadiusPointOf, copyRadiusPoint: copyRadiusPoint} = PointHelper;
|
|
11010
11065
|
|
|
11011
11066
|
const {hitRadiusPoint: hitRadiusPoint, hitPoint: hitPoint} = BoundsHelper;
|
|
11012
11067
|
|
|
@@ -11016,8 +11071,7 @@ const leaf$1 = Leaf.prototype;
|
|
|
11016
11071
|
|
|
11017
11072
|
leaf$1.hit = function(worldPoint, hitRadius = 0) {
|
|
11018
11073
|
this.updateLayout();
|
|
11019
|
-
|
|
11020
|
-
setRadius(worldRadiusPoint, hitRadius);
|
|
11074
|
+
copyRadiusPoint(worldRadiusPoint, worldPoint, hitRadius);
|
|
11021
11075
|
const world = this.__world;
|
|
11022
11076
|
if (hitRadius ? !hitRadiusPoint(world, worldRadiusPoint) : !hitPoint(world, worldRadiusPoint)) return false;
|
|
11023
11077
|
return this.isBranch ? Platform.getSelector(this).hitPoint(Object.assign({}, worldRadiusPoint), hitRadius, {
|
|
@@ -11031,8 +11085,8 @@ leaf$1.__hitWorld = function(point, forceHitFill) {
|
|
|
11031
11085
|
const world = this.__world, layout = this.__layout;
|
|
11032
11086
|
const isSmall = world.width < 10 && world.height < 10;
|
|
11033
11087
|
if (data.hitRadius) {
|
|
11034
|
-
|
|
11035
|
-
|
|
11088
|
+
copyRadiusPoint(inner, point, data.hitRadius);
|
|
11089
|
+
point = inner;
|
|
11036
11090
|
}
|
|
11037
11091
|
toInnerRadiusPointOf(point, world, inner);
|
|
11038
11092
|
if (data.hitBox || isSmall) {
|
|
@@ -11600,7 +11654,7 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
|
11600
11654
|
ignoreRender(ui, false);
|
|
11601
11655
|
onLoadError(ui, event, error);
|
|
11602
11656
|
leafPaint.loadId = undefined;
|
|
11603
|
-
});
|
|
11657
|
+
}, paint.lod && image.getThumbSize());
|
|
11604
11658
|
if (ui.placeholderColor) {
|
|
11605
11659
|
if (!ui.placeholderDelay) image.isPlacehold = true; else setTimeout(() => {
|
|
11606
11660
|
if (!image.ready) {
|
|
@@ -11840,10 +11894,12 @@ const {getFloorScale: getFloorScale} = MathHelper, {abs: abs$5} = Math;
|
|
|
11840
11894
|
function createPatternTask(paint, ui, canvas, renderOptions) {
|
|
11841
11895
|
if (!paint.patternTask) {
|
|
11842
11896
|
paint.patternTask = ImageManager.patternTasker.add(() => __awaiter(this, void 0, void 0, function*() {
|
|
11843
|
-
paint
|
|
11844
|
-
if (canvas.bounds.hit(ui.__nowWorld)) PaintImage.createPattern(paint, ui, canvas, renderOptions);
|
|
11897
|
+
PaintImage.createPattern(paint, ui, canvas, renderOptions);
|
|
11845
11898
|
ui.forceUpdate("surface");
|
|
11846
|
-
}),
|
|
11899
|
+
}), 0, () => {
|
|
11900
|
+
paint.patternTask = null;
|
|
11901
|
+
return canvas.bounds.hit(ui.__nowWorld);
|
|
11902
|
+
});
|
|
11847
11903
|
}
|
|
11848
11904
|
}
|
|
11849
11905
|
|
|
@@ -12093,7 +12149,7 @@ const PaintGradientModule = {
|
|
|
12093
12149
|
getTransform: getTransform
|
|
12094
12150
|
};
|
|
12095
12151
|
|
|
12096
|
-
const {copy: copy$3, move: move$2, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max$
|
|
12152
|
+
const {copy: copy$3, move: move$2, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max$2, abs: abs$4} = Math;
|
|
12097
12153
|
|
|
12098
12154
|
const tempBounds = {}, tempMatrix = new Matrix;
|
|
12099
12155
|
|
|
@@ -12138,10 +12194,10 @@ function getShadowRenderSpread(_ui, shadow) {
|
|
|
12138
12194
|
let top = 0, right = 0, bottom = 0, left = 0, x, y, spread, blur;
|
|
12139
12195
|
shadow.forEach(item => {
|
|
12140
12196
|
x = item.x || 0, y = item.y || 0, blur = (item.blur || 0) * 1.5, spread = abs$4(item.spread || 0);
|
|
12141
|
-
top = max$
|
|
12142
|
-
right = max$
|
|
12143
|
-
bottom = max$
|
|
12144
|
-
left = max$
|
|
12197
|
+
top = max$2(top, spread + blur - y);
|
|
12198
|
+
right = max$2(right, spread + blur + x);
|
|
12199
|
+
bottom = max$2(bottom, spread + blur + y);
|
|
12200
|
+
left = max$2(left, spread + blur - x);
|
|
12145
12201
|
});
|
|
12146
12202
|
return top === right && right === bottom && bottom === left ? top : [ top, right, bottom, left ];
|
|
12147
12203
|
}
|
|
@@ -13020,7 +13076,11 @@ class Stroker extends UI {
|
|
|
13020
13076
|
matrix$1.half = strokeWidth % 2;
|
|
13021
13077
|
canvas.setWorld(matrix$1, options.matrix);
|
|
13022
13078
|
canvas.beginPath();
|
|
13023
|
-
if (
|
|
13079
|
+
if (this.strokePathType === "path") {
|
|
13080
|
+
leaf.__drawPath(canvas);
|
|
13081
|
+
} else {
|
|
13082
|
+
if (leaf.__.__useArrow) leaf.__drawPath(canvas); else leaf.__.__pathForRender ? leaf.__drawRenderPath(canvas) : leaf.__drawPathByBox(canvas);
|
|
13083
|
+
}
|
|
13024
13084
|
data.strokeWidth = strokeWidth / Math.max(aScaleX, aScaleY);
|
|
13025
13085
|
if (stroke) isString(stroke) ? Paint.stroke(stroke, this, canvas, options) : Paint.strokes(stroke, this, canvas, options);
|
|
13026
13086
|
if (fill) isString(fill) ? Paint.fill(fill, this, canvas, options) : Paint.fills(fill, this, canvas, options);
|
|
@@ -13037,6 +13097,8 @@ class Stroker extends UI {
|
|
|
13037
13097
|
|
|
13038
13098
|
__decorate([ targetAttr(onTarget$1) ], Stroker.prototype, "target", void 0);
|
|
13039
13099
|
|
|
13100
|
+
__decorate([ surfaceType("render-path") ], Stroker.prototype, "strokePathType", void 0);
|
|
13101
|
+
|
|
13040
13102
|
function onTarget$1(stroker) {
|
|
13041
13103
|
const value = stroker.target;
|
|
13042
13104
|
stroker.list = value ? isArray(value) ? value : [ value ] : [];
|
|
@@ -13151,10 +13213,11 @@ class EditSelect extends Group {
|
|
|
13151
13213
|
}
|
|
13152
13214
|
update() {
|
|
13153
13215
|
this.hoverStroker.update();
|
|
13154
|
-
const {stroke: stroke, strokeWidth: strokeWidth, selectedStyle: selectedStyle} = this.editor.mergedConfig;
|
|
13216
|
+
const {stroke: stroke, strokeWidth: strokeWidth, selectedPathType: selectedPathType, selectedStyle: selectedStyle} = this.editor.mergedConfig;
|
|
13155
13217
|
this.targetStroker.update(Object.assign({
|
|
13156
13218
|
stroke: stroke,
|
|
13157
|
-
strokeWidth: strokeWidth && Math.max(1, strokeWidth / 2)
|
|
13219
|
+
strokeWidth: strokeWidth && Math.max(1, strokeWidth / 2),
|
|
13220
|
+
strokePathType: selectedPathType
|
|
13158
13221
|
}, selectedStyle || {}));
|
|
13159
13222
|
}
|
|
13160
13223
|
onPointerMove(e) {
|
|
@@ -14539,7 +14602,7 @@ class TransformTool {
|
|
|
14539
14602
|
const {target: target, mergeConfig: mergeConfig, single: single, dragStartData: dragStartData} = this.editBox;
|
|
14540
14603
|
let {around: around, lockRatio: lockRatio, flipable: flipable, editSize: editSize} = mergeConfig, totalMove;
|
|
14541
14604
|
if (e instanceof ZoomEvent) {
|
|
14542
|
-
around = target.getBoxPoint(e);
|
|
14605
|
+
if (!around) around = target.getBoxPoint(e);
|
|
14543
14606
|
totalMove = e.totalScale;
|
|
14544
14607
|
} else {
|
|
14545
14608
|
totalMove = e.getInnerTotal(target);
|
|
@@ -15592,11 +15655,28 @@ UI.setEditInner = function(editorName) {
|
|
|
15592
15655
|
this.changeAttr("editInner", editorName);
|
|
15593
15656
|
};
|
|
15594
15657
|
|
|
15658
|
+
function getScrollType(leafer) {
|
|
15659
|
+
const {scroll: scroll, disabled: disabled} = leafer.app.config.move;
|
|
15660
|
+
return !scroll || disabled ? "" : scroll === true ? "free" : scroll;
|
|
15661
|
+
}
|
|
15662
|
+
|
|
15595
15663
|
function addViewport(leafer, mergeConfig, custom) {
|
|
15596
15664
|
addViewportConfig(leafer.parentApp ? leafer.parentApp : leafer, mergeConfig);
|
|
15597
15665
|
if (leafer.isApp || custom) return;
|
|
15598
15666
|
leafer.__eventIds.push(leafer.on_(MoveEvent.BEFORE_MOVE, e => {
|
|
15599
|
-
|
|
15667
|
+
const move = leafer.getValidMove(e.moveX, e.moveY, false);
|
|
15668
|
+
if (getScrollType(leafer).includes("limit")) {
|
|
15669
|
+
const testMove = leafer.getValidMove(0, 0);
|
|
15670
|
+
if (testMove.x || testMove.y) {
|
|
15671
|
+
const maxX = 100, maxY = 200, resistance = e.moveType === "drag" ? .3 : .05;
|
|
15672
|
+
if (Math.abs(testMove.x) > maxX) move.x = 0; else move.x *= resistance;
|
|
15673
|
+
if (Math.abs(testMove.y) > maxY) move.y = 0; else move.y *= resistance;
|
|
15674
|
+
}
|
|
15675
|
+
}
|
|
15676
|
+
leafer.zoomLayer.move(move);
|
|
15677
|
+
}), leafer.on_(MoveEvent.DRAG_ANIMATE, () => {
|
|
15678
|
+
const testMove = leafer.getValidMove(0, 0);
|
|
15679
|
+
if (testMove.x || testMove.y) leafer.interaction.stopDragAnimate();
|
|
15600
15680
|
}), leafer.on_(MoveEvent.END, e => {
|
|
15601
15681
|
LeafHelper.animateMove(leafer.zoomLayer, leafer.getValidMove(e.moveX, e.moveY));
|
|
15602
15682
|
}), leafer.on_(ZoomEvent.BEFORE_ZOOM, e => {
|
|
@@ -15747,7 +15827,7 @@ const MultiTouchHelper = {
|
|
|
15747
15827
|
|
|
15748
15828
|
const M$2 = MultiTouchHelper;
|
|
15749
15829
|
|
|
15750
|
-
const {abs: abs$1, max: max} = Math, {sign: sign, within: within} = MathHelper;
|
|
15830
|
+
const {abs: abs$1, max: max$1} = Math, {sign: sign, within: within} = MathHelper;
|
|
15751
15831
|
|
|
15752
15832
|
const WheelEventHelper = {
|
|
15753
15833
|
getMove(event, config) {
|
|
@@ -15758,8 +15838,8 @@ const WheelEventHelper = {
|
|
|
15758
15838
|
deltaY = 0;
|
|
15759
15839
|
}
|
|
15760
15840
|
const absX = abs$1(deltaX), absY = abs$1(deltaY);
|
|
15761
|
-
if (absX > 50) deltaX = max(50, absX / 3) * sign(deltaX);
|
|
15762
|
-
if (absY > 50) deltaY = max(50, absY / 3) * sign(deltaY);
|
|
15841
|
+
if (absX > 50) deltaX = max$1(50, absX / 3) * sign(deltaX);
|
|
15842
|
+
if (absY > 50) deltaY = max$1(50, absY / 3) * sign(deltaY);
|
|
15763
15843
|
return {
|
|
15764
15844
|
x: -deltaX * moveSpeed * 2,
|
|
15765
15845
|
y: -deltaY * moveSpeed * 2
|
|
@@ -15902,15 +15982,15 @@ leafer.initType = function(type) {
|
|
|
15902
15982
|
};
|
|
15903
15983
|
|
|
15904
15984
|
leafer.getValidMove = function(moveX, moveY, checkLimit = true) {
|
|
15905
|
-
const {
|
|
15985
|
+
const {disabled: disabled} = this.app.config.move;
|
|
15906
15986
|
move.set(moveX, moveY);
|
|
15907
|
-
|
|
15908
|
-
|
|
15909
|
-
if (
|
|
15910
|
-
if (checkLimit &&
|
|
15987
|
+
const scrollType = getScrollType(this);
|
|
15988
|
+
if (scrollType) {
|
|
15989
|
+
if (scrollType.includes("x")) move.y = 0; else if (scrollType.includes("y")) move.x = 0; else Math.abs(move.x) > Math.abs(move.y) ? move.y = 0 : move.x = 0;
|
|
15990
|
+
if (checkLimit && scrollType.includes("limit")) {
|
|
15911
15991
|
bounds.set(this.__world).addPoint(this.zoomLayer);
|
|
15912
|
-
DragBoundsHelper.getValidMove(bounds, this.canvas.bounds, "
|
|
15913
|
-
if (
|
|
15992
|
+
DragBoundsHelper.getValidMove(bounds, this.canvas.bounds, "auto", move, true);
|
|
15993
|
+
if (scrollType.includes("x")) move.y = 0; else if (scrollType.includes("y")) move.x = 0;
|
|
15914
15994
|
}
|
|
15915
15995
|
}
|
|
15916
15996
|
return {
|
|
@@ -16017,22 +16097,52 @@ interaction.multiTouch = function(data, list) {
|
|
|
16017
16097
|
|
|
16018
16098
|
const dragger = Dragger.prototype;
|
|
16019
16099
|
|
|
16020
|
-
const {abs: abs} = Math;
|
|
16100
|
+
const {abs: abs, min: min, max: max, hypot: hypot} = Math;
|
|
16021
16101
|
|
|
16022
|
-
dragger.checkDragEndAnimate = function(data
|
|
16023
|
-
const {
|
|
16024
|
-
const
|
|
16025
|
-
const dragAnimate = this.canAnimate && this.moving && (absMoveX > minMove || absMoveY > minMove) && this.interaction.m.dragAnimate;
|
|
16102
|
+
dragger.checkDragEndAnimate = function(data) {
|
|
16103
|
+
const {interaction: interaction} = this;
|
|
16104
|
+
const dragAnimate = this.canAnimate && this.moving && interaction.m.dragAnimate;
|
|
16026
16105
|
if (dragAnimate) {
|
|
16027
|
-
const inertia =
|
|
16028
|
-
|
|
16029
|
-
|
|
16030
|
-
|
|
16031
|
-
|
|
16032
|
-
this.
|
|
16033
|
-
|
|
16034
|
-
|
|
16035
|
-
|
|
16106
|
+
const inertia = isNumber(dragAnimate) ? dragAnimate : .95;
|
|
16107
|
+
const stopMove = .15;
|
|
16108
|
+
const maxMove = 150;
|
|
16109
|
+
let moveX = 0, moveY = 0, flickSpeed = 0;
|
|
16110
|
+
let totalWeight = 0, weight, w = 3, s, frame;
|
|
16111
|
+
const {dragDataList: dragDataList} = this, len = dragDataList.length;
|
|
16112
|
+
for (let i = len - 1; i >= max(len - 3, 0); i--) {
|
|
16113
|
+
frame = dragDataList[i];
|
|
16114
|
+
if (frame.time && Date.now() - frame.time > 100) break;
|
|
16115
|
+
weight = w--;
|
|
16116
|
+
moveX += frame.moveX * weight;
|
|
16117
|
+
moveY += frame.moveY * weight;
|
|
16118
|
+
totalWeight += weight;
|
|
16119
|
+
s = hypot(frame.moveX, frame.moveY);
|
|
16120
|
+
if (s > flickSpeed) flickSpeed = s;
|
|
16121
|
+
}
|
|
16122
|
+
if (totalWeight) moveX /= totalWeight, moveY /= totalWeight;
|
|
16123
|
+
if (flickSpeed > 8) {
|
|
16124
|
+
const t = min((flickSpeed - 8) / 17, 1);
|
|
16125
|
+
const boost = 1.15 + t * (1.6 - 1.15);
|
|
16126
|
+
moveX *= boost;
|
|
16127
|
+
moveY *= boost;
|
|
16128
|
+
}
|
|
16129
|
+
const maxAbs = max(abs(moveX), abs(moveY));
|
|
16130
|
+
if (maxAbs > maxMove) {
|
|
16131
|
+
s = maxMove / maxAbs;
|
|
16132
|
+
moveX *= s;
|
|
16133
|
+
moveY *= s;
|
|
16134
|
+
}
|
|
16135
|
+
const step = () => {
|
|
16136
|
+
moveX *= inertia;
|
|
16137
|
+
moveY *= inertia;
|
|
16138
|
+
data = Object.assign({}, data);
|
|
16139
|
+
if (abs(moveX) < stopMove && abs(moveY) < stopMove) return this.dragEndReal(data);
|
|
16140
|
+
PointHelper.move(data, moveX, moveY);
|
|
16141
|
+
this.drag(data);
|
|
16142
|
+
this.animate(step);
|
|
16143
|
+
interaction.emit(MoveEvent.DRAG_ANIMATE, data);
|
|
16144
|
+
};
|
|
16145
|
+
this.animate(step);
|
|
16036
16146
|
}
|
|
16037
16147
|
return dragAnimate;
|
|
16038
16148
|
};
|
|
@@ -16043,6 +16153,13 @@ dragger.animate = function(func, off) {
|
|
|
16043
16153
|
this.animateWait = func;
|
|
16044
16154
|
};
|
|
16045
16155
|
|
|
16156
|
+
dragger.stopAnimate = function() {
|
|
16157
|
+
this.animate(null, "off");
|
|
16158
|
+
this.interaction.target.nextRender(() => {
|
|
16159
|
+
if (this.dragData) this.dragEndReal(this.dragData);
|
|
16160
|
+
});
|
|
16161
|
+
};
|
|
16162
|
+
|
|
16046
16163
|
dragger.checkDragOut = function(data) {
|
|
16047
16164
|
const {interaction: interaction} = this;
|
|
16048
16165
|
this.autoMoveCancel();
|
|
@@ -16114,7 +16231,6 @@ function getFixBounds(bounds, scaleBounds) {
|
|
|
16114
16231
|
Plugin.add("view");
|
|
16115
16232
|
|
|
16116
16233
|
Leafer.prototype.zoom = function(zoomType, optionsOrPadding, scroll, transition) {
|
|
16117
|
-
this.killAnimate();
|
|
16118
16234
|
let padding;
|
|
16119
16235
|
if (isData(optionsOrPadding)) {
|
|
16120
16236
|
padding = optionsOrPadding.padding;
|
|
@@ -16127,8 +16243,9 @@ Leafer.prototype.zoom = function(zoomType, optionsOrPadding, scroll, transition)
|
|
|
16127
16243
|
x: limitBounds.x + limitBounds.width / 2,
|
|
16128
16244
|
y: limitBounds.y + limitBounds.height / 2
|
|
16129
16245
|
};
|
|
16246
|
+
zoomLayer.killAnimate();
|
|
16130
16247
|
let changeScale;
|
|
16131
|
-
const {x: x, y: y, scaleX: scaleX, scaleY: scaleY} = zoomLayer.__;
|
|
16248
|
+
const {x: x, y: y, scaleX: scaleX, scaleY: scaleY} = zoomLayer.__, {boxBounds: boxBounds} = zoomLayer;
|
|
16132
16249
|
if (isString(zoomType)) {
|
|
16133
16250
|
switch (zoomType) {
|
|
16134
16251
|
case "in":
|
|
@@ -16140,16 +16257,16 @@ Leafer.prototype.zoom = function(zoomType, optionsOrPadding, scroll, transition)
|
|
|
16140
16257
|
break;
|
|
16141
16258
|
|
|
16142
16259
|
case "fit":
|
|
16143
|
-
zoomType =
|
|
16260
|
+
zoomType = boxBounds;
|
|
16144
16261
|
break;
|
|
16145
16262
|
|
|
16146
16263
|
case "fit-width":
|
|
16147
|
-
zoomType = new Bounds(
|
|
16264
|
+
zoomType = new Bounds(boxBounds);
|
|
16148
16265
|
zoomType.height = 0;
|
|
16149
16266
|
break;
|
|
16150
16267
|
|
|
16151
16268
|
case "fit-height":
|
|
16152
|
-
zoomType = new Bounds(
|
|
16269
|
+
zoomType = new Bounds(boxBounds);
|
|
16153
16270
|
zoomType.width = 0;
|
|
16154
16271
|
break;
|
|
16155
16272
|
}
|
|
@@ -16794,6 +16911,7 @@ class Finder {
|
|
|
16794
16911
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
16795
16912
|
child = children[i];
|
|
16796
16913
|
result = method(child, options);
|
|
16914
|
+
if (typeof result === "boolean") result = result ? 1 : 0;
|
|
16797
16915
|
if (result === Yes || result === YesAndSkip) {
|
|
16798
16916
|
if (list) {
|
|
16799
16917
|
list.push(child);
|
|
@@ -17502,4 +17620,4 @@ HTMLText = __decorate([ registerUI() ], HTMLText);
|
|
|
17502
17620
|
|
|
17503
17621
|
Plugin.add("html");
|
|
17504
17622
|
|
|
17505
|
-
export { AlignHelper, 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, FourNumberHelper, Frame, FrameData, Group, GroupData, HTMLText, HTMLTextData, 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, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathArrowModule, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathMatrixHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, RotateEvent, Run, ScrollBar, SelectArea, Selector, Star, StarData, State, StringNumberMap, Stroker, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TextEditor, TouchEvent, 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$1 as isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerEditTool, registerInnerEditor, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$
|
|
17623
|
+
export { AlignHelper, 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, FourNumberHelper, Frame, FrameData, Group, GroupData, HTMLText, HTMLTextData, 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, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathArrowModule, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathMatrixHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, RotateEvent, Run, ScrollBar, SelectArea, Selector, Star, StarData, State, StringNumberMap, Stroker, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TextEditor, TouchEvent, 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$1 as isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerEditTool, registerInnerEditor, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|