@leafer-game/miniapp 1.12.1 → 1.12.2

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.
@@ -461,9 +461,9 @@ function getMatrixData() {
461
461
 
462
462
  const {sin: sin$6, cos: cos$6, acos: acos, sqrt: sqrt$5} = Math;
463
463
 
464
- const {float: float$3} = MathHelper;
464
+ const {float: float$5} = MathHelper;
465
465
 
466
- const tempPoint$4 = {};
466
+ const tempPoint$5 = {};
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$7.toInnerPoint(t, origin, tempPoint$4);
526
- M$7.scaleOfInner(t, tempPoint$4, scaleX, scaleY);
525
+ M$7.toInnerPoint(t, origin, tempPoint$5);
526
+ M$7.scaleOfInner(t, tempPoint$5, scaleX, scaleY);
527
527
  },
528
528
  scaleOfInner(t, origin, scaleX, scaleY = scaleX) {
529
529
  M$7.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$7.toInnerPoint(t, origin, tempPoint$4);
545
- M$7.rotateOfInner(t, tempPoint$4, rotation);
544
+ M$7.toInnerPoint(t, origin, tempPoint$5);
545
+ M$7.rotateOfInner(t, tempPoint$5, rotation);
546
546
  },
547
547
  rotateOfInner(t, origin, rotation) {
548
548
  M$7.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$7.toInnerPoint(t, origin, tempPoint$4);
567
- M$7.skewOfInner(t, tempPoint$4, skewX, skewY);
566
+ M$7.toInnerPoint(t, origin, tempPoint$5);
567
+ M$7.skewOfInner(t, tempPoint$5, skewX, skewY);
568
568
  },
569
569
  skewOfInner(t, origin, skewX, skewY = 0) {
570
570
  M$7.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$3(cos$6(rotation));
715
+ const cosR = float$5(cos$6(rotation));
716
716
  const sinR = sin$6(rotation);
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);
717
+ scaleX = float$5(scaleX), scaleY = float$5(scaleY);
718
+ skewX = cosR ? float$5((c / scaleY + sinR) / cosR / OneRadian, 9) : 0;
719
+ skewY = cosR ? float$5((b / scaleX - sinR) / cosR / OneRadian, 9) : 0;
720
+ rotation = float$5(rotation / OneRadian);
721
721
  } else {
722
722
  scaleX = a;
723
723
  scaleY = d;
@@ -761,6 +761,8 @@ const MatrixHelper = {
761
761
 
762
762
  const M$7 = MatrixHelper;
763
763
 
764
+ const {float: float$4} = MathHelper;
765
+
764
766
  const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
765
767
 
766
768
  const {sin: sin$5, cos: cos$5, abs: abs$6, sqrt: sqrt$4, atan2: atan2$2, min: min$2, round: round$5} = Math;
@@ -812,22 +814,27 @@ const PointHelper = {
812
814
  },
813
815
  tempToInnerOf(t, matrix) {
814
816
  const {tempPoint: temp} = P$5;
815
- copy$a(temp, t);
817
+ copy$9(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$5;
821
- copy$a(temp, t);
823
+ copy$9(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$5;
827
- copy$a(temp, t);
829
+ copy$9(temp, t);
828
830
  P$5.toInnerRadiusPointOf(t, matrix, temp);
829
831
  return temp;
830
832
  },
833
+ copyRadiusPoint(t, point, x, y) {
834
+ copy$9(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);
@@ -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$4(t.x) === float$4(point.x) && float$4(t.y) === float$4(point.y);
899
906
  },
900
907
  reset(t) {
901
908
  P$5.reset(t);
@@ -904,7 +911,7 @@ const PointHelper = {
904
911
 
905
912
  const P$5 = PointHelper;
906
913
 
907
- const {getDistanceFrom: getDistanceFrom, copy: copy$a, getAtan2: getAtan2} = P$5;
914
+ const {getDistanceFrom: getDistanceFrom, copy: copy$9, setRadius: setRadius, getAtan2: getAtan2} = P$5;
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$3 = new Point;
989
+ const tempPoint$4 = new Point;
983
990
 
984
991
  class Matrix {
985
992
  constructor(a, b, c, d, e, f) {
@@ -1250,7 +1257,7 @@ const {tempPointBounds: tempPointBounds$1, setPoint: setPoint$2, addPoint: addPo
1250
1257
 
1251
1258
  const {toOuterPoint: toOuterPoint$2} = MatrixHelper;
1252
1259
 
1253
- const {float: float$2, fourNumber: fourNumber$1} = MathHelper;
1260
+ const {float: float$3, fourNumber: fourNumber$1} = MathHelper;
1254
1261
 
1255
1262
  const {floor: floor$1, ceil: ceil$2} = Math;
1256
1263
 
@@ -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$9(to, t);
1325
+ if (!to) to = t; else copy$8(to, t);
1319
1326
  if (!offsetBounds) offsetBounds = t;
1320
1327
  to.offsetX = B.maxX(offsetBounds);
1321
1328
  to.offsetY = B.maxY(offsetBounds);
@@ -1425,10 +1432,10 @@ const BoundsHelper = {
1425
1432
  }
1426
1433
  },
1427
1434
  float(t, maxLength) {
1428
- t.x = float$2(t.x, maxLength);
1429
- t.y = float$2(t.y, maxLength);
1430
- t.width = float$2(t.width, maxLength);
1431
- t.height = float$2(t.height, maxLength);
1435
+ t.x = float$3(t.x, maxLength);
1436
+ t.y = float$3(t.y, maxLength);
1437
+ t.width = float$3(t.width, maxLength);
1438
+ t.height = float$3(t.height, maxLength);
1432
1439
  },
1433
1440
  add(t, bounds, isPoint) {
1434
1441
  right$1 = t.x + t.width;
@@ -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$9(t, bounds);
1472
+ if (!addMode) copy$8(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$9} = B;
1559
+ const {add: add$2, copy: copy$8} = 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$8, multiplyParent: multiplyParent$4, pixelScale: pixelScale} = MatrixHelper, {round: round$4} = Math, tempPixelBounds = new Bounds, tempPixelBounds2 = new Bounds;
2257
+ const {copy: copy$7, multiplyParent: multiplyParent$4, pixelScale: pixelScale} = MatrixHelper, {round: round$4} = 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 = true) {
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 = true) {
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 = true) {
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$8(canvas.worldTransform, this.worldTransform), canvas.useWorldTransform();
2511
+ if (useSameWorldTransform) copy$7(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;
@@ -2650,7 +2657,7 @@ const {set: set$1, toNumberPoints: toNumberPoints} = PointHelper;
2650
2657
 
2651
2658
  const {M: M$6, L: L$7, C: C$5, Q: Q$4, Z: Z$6} = PathCommandMap;
2652
2659
 
2653
- const tempPoint$2 = {};
2660
+ const tempPoint$3 = {};
2654
2661
 
2655
2662
  const BezierHelper = {
2656
2663
  points(data, originPoints, curve, close) {
@@ -2658,7 +2665,7 @@ const BezierHelper = {
2658
2665
  data.push(M$6, 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
- ba = sqrt$3(pow$1(bX - aX, 2) + pow$1(bY - aY, 2));
2681
+ baX = bX - aX;
2682
+ baY = bY - aY;
2683
+ ba = sqrt$3(pow$1(baX, 2) + pow$1(baY, 2));
2675
2684
  cb = sqrt$3(pow$1(cX - bX, 2) + pow$1(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$4, c1X, c1Y, bX, bY);
2686
2695
  } else {
2687
- data.push(C$5, c2X, c2Y, c1X, c1Y, bX, bY);
2696
+ if (baX || baY) data.push(C$5, c2X, c2Y, c1X, c1Y, bX, bY);
2688
2697
  }
2689
2698
  c2X = bX + cb * cX;
2690
2699
  c2Y = bY + cb * cY;
@@ -2819,8 +2828,8 @@ const BezierHelper = {
2819
2828
  addMode ? addPoint$1(pointBounds, fromX, fromY) : setPoint$1(pointBounds, fromX, fromY);
2820
2829
  addPoint$1(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$2);
2823
- addPoint$1(pointBounds, tempPoint$2.x, tempPoint$2.y);
2831
+ getPointAndSet(tList[i], fromX, fromY, x1, y1, x2, y2, toX, toY, tempPoint$3);
2832
+ addPoint$1(pointBounds, tempPoint$3.x, tempPoint$3.y);
2824
2833
  }
2825
2834
  },
2826
2835
  getPointAndSet(t, fromX, fromY, x1, y1, x2, y2, toX, toY, setPoint) {
@@ -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$3, x, y, radiusX, radiusY);
3274
3284
  } else {
@@ -3281,6 +3291,7 @@ const PathCommandDataHelper = {
3281
3291
  if (isNull(startAngle)) {
3282
3292
  data.push(P$2, x, y, radius);
3283
3293
  } else {
3294
+ if (isNull(startAngle)) startAngle = 0;
3284
3295
  if (isNull(endAngle)) endAngle = 360;
3285
3296
  data.push(O$2, x, y, radius, startAngle, endAngle, anticlockwise ? 1 : 0);
3286
3297
  }
@@ -3490,7 +3501,7 @@ const {M: M$2, L: L$3, C: C$1, Q: Q, Z: Z$2, N: N, D: D$1, X: X, G: G, F: F$1, O
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$7, addPoint: addPoint, setPoint: setPoint, addBounds: addBounds, toBounds: toBounds$1} = TwoPointBoundsHelper;
3504
+ const {addPointBounds: addPointBounds, copy: copy$6, addPoint: addPoint, setPoint: setPoint, addBounds: addBounds, toBounds: toBounds$1} = TwoPointBoundsHelper;
3494
3505
 
3495
3506
  const debug$a = Debug.get("PathBounds");
3496
3507
 
@@ -3572,7 +3583,7 @@ const PathBounds = {
3572
3583
 
3573
3584
  case G:
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$7(setPointBounds, tempPointBounds) : addPointBounds(setPointBounds, tempPointBounds);
3586
+ i === 0 ? copy$6(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:
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$7(setPointBounds, tempPointBounds) : addPointBounds(setPointBounds, tempPointBounds);
3604
+ i === 0 ? copy$6(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:
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$7(setPointBounds, tempPointBounds) : addPointBounds(setPointBounds, tempPointBounds);
3621
+ i === 0 ? copy$6(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));
@@ -4627,7 +4641,7 @@ function registerUIEvent() {
4627
4641
  };
4628
4642
  }
4629
4643
 
4630
- const {copy: copy$6, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter: skewOfOuter, multiplyParent: multiplyParent$3, divideParent: divideParent, getLayout: getLayout} = MatrixHelper;
4644
+ const {copy: copy$5, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter: skewOfOuter, multiplyParent: multiplyParent$3, divideParent: divideParent, getLayout: getLayout} = MatrixHelper;
4631
4645
 
4632
4646
  const matrix$1 = {}, {round: round$3} = Math;
4633
4647
 
@@ -4725,7 +4739,7 @@ const LeafHelper = {
4725
4739
  if (scaleY) transition = scaleY;
4726
4740
  scaleY = scaleX;
4727
4741
  }
4728
- copy$6(matrix$1, o);
4742
+ copy$5(matrix$1, o);
4729
4743
  scaleOfOuter$2(matrix$1, origin, scaleX, scaleY);
4730
4744
  if (L$1.hasHighPosition(t)) {
4731
4745
  L$1.setTransform(t, matrix$1, resize, transition);
@@ -4744,7 +4758,7 @@ const LeafHelper = {
4744
4758
  },
4745
4759
  rotateOfLocal(t, origin, angle, transition) {
4746
4760
  const o = t.__localMatrix;
4747
- copy$6(matrix$1, o);
4761
+ copy$5(matrix$1, o);
4748
4762
  rotateOfOuter$2(matrix$1, origin, angle);
4749
4763
  if (L$1.hasHighPosition(t)) L$1.setTransform(t, matrix$1, false, transition); else t.set({
4750
4764
  x: t.x + matrix$1.e - o.e,
@@ -4756,18 +4770,18 @@ const LeafHelper = {
4756
4770
  L$1.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize, transition);
4757
4771
  },
4758
4772
  skewOfLocal(t, origin, skewX, skewY = 0, resize, transition) {
4759
- copy$6(matrix$1, t.__localMatrix);
4773
+ copy$5(matrix$1, t.__localMatrix);
4760
4774
  skewOfOuter(matrix$1, origin, skewX, skewY);
4761
4775
  L$1.setTransform(t, matrix$1, resize, transition);
4762
4776
  },
4763
4777
  transformWorld(t, transform, resize, transition) {
4764
- copy$6(matrix$1, t.worldTransform);
4778
+ copy$5(matrix$1, t.worldTransform);
4765
4779
  multiplyParent$3(matrix$1, transform);
4766
4780
  if (t.parent) divideParent(matrix$1, t.parent.scrollWorldTransform);
4767
4781
  L$1.setTransform(t, matrix$1, resize, transition);
4768
4782
  },
4769
4783
  transform(t, transform, resize, transition) {
4770
- copy$6(matrix$1, t.localTransform);
4784
+ copy$5(matrix$1, t.localTransform);
4771
4785
  multiplyParent$3(matrix$1, transform);
4772
4786
  L$1.setTransform(t, matrix$1, resize, transition);
4773
4787
  },
@@ -4805,7 +4819,7 @@ const LeafHelper = {
4805
4819
  return innerOrigin;
4806
4820
  },
4807
4821
  getRelativeWorld(t, relative, temp) {
4808
- copy$6(matrix$1, t.worldTransform);
4822
+ copy$5(matrix$1, t.worldTransform);
4809
4823
  divideParent(matrix$1, relative.scrollWorldTransform);
4810
4824
  return temp ? matrix$1 : Object.assign({}, matrix$1);
4811
4825
  },
@@ -5013,7 +5027,7 @@ const WaitHelper = {
5013
5027
 
5014
5028
  const {getRelativeWorld: getRelativeWorld$1, updateBounds: updateBounds$3} = LeafHelper;
5015
5029
 
5016
- const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$5} = BoundsHelper;
5030
+ const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$4} = BoundsHelper;
5017
5031
 
5018
5032
  const localContent = "_localContentBounds";
5019
5033
 
@@ -5252,7 +5266,7 @@ class LeafLayout {
5252
5266
  matrix = getRelativeWorld$1(leaf, relative, true);
5253
5267
  }
5254
5268
  if (!layoutBounds) layoutBounds = MatrixHelper.getLayout(matrix);
5255
- copy$5(layoutBounds, bounds);
5269
+ copy$4(layoutBounds, bounds);
5256
5270
  PointHelper.copy(layoutBounds, point);
5257
5271
  if (unscale) {
5258
5272
  const {scaleX: scaleX, scaleY: scaleY} = layoutBounds;
@@ -5874,7 +5888,7 @@ const LeafDataProxy = {
5874
5888
 
5875
5889
  const {setLayout: setLayout, multiplyParent: multiplyParent$2, translateInner: translateInner, defaultWorld: defaultWorld} = MatrixHelper;
5876
5890
 
5877
- const {toPoint: toPoint$3, tempPoint: tempPoint$1} = AroundHelper;
5891
+ const {toPoint: toPoint$3, tempPoint: tempPoint$2} = AroundHelper;
5878
5892
 
5879
5893
  const LeafMatrix = {
5880
5894
  __updateWorldMatrix() {
@@ -5894,8 +5908,8 @@ const LeafMatrix = {
5894
5908
  local.e = data.x + data.offsetX;
5895
5909
  local.f = data.y + data.offsetY;
5896
5910
  if (data.around || data.origin) {
5897
- toPoint$3(data.around || data.origin, layout.boxBounds, tempPoint$1);
5898
- translateInner(local, -tempPoint$1.x, -tempPoint$1.y, !data.around);
5911
+ toPoint$3(data.around || data.origin, layout.boxBounds, tempPoint$2);
5912
+ translateInner(local, -tempPoint$2.x, -tempPoint$2.y, !data.around);
5899
5913
  }
5900
5914
  }
5901
5915
  this.__layout.matrixChanged = undefined;
@@ -5906,7 +5920,7 @@ const {updateMatrix: updateMatrix$2, updateAllMatrix: updateAllMatrix$3} = LeafH
5906
5920
 
5907
5921
  const {updateBounds: updateBounds$2} = BranchHelper;
5908
5922
 
5909
- const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$2, copy: copy$4} = BoundsHelper;
5923
+ const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$2, copy: copy$3} = BoundsHelper;
5910
5924
 
5911
5925
  const {toBounds: toBounds} = PathBounds;
5912
5926
 
@@ -6017,7 +6031,7 @@ const LeafBounds = {
6017
6031
  },
6018
6032
  __updateRenderBounds(_bounds) {
6019
6033
  const layout = this.__layout, {renderSpread: renderSpread} = layout;
6020
- isNumber(renderSpread) && renderSpread <= 0 ? copy$4(layout.renderBounds, layout.strokeBounds) : copyAndSpread$2(layout.renderBounds, layout.boxBounds, renderSpread);
6034
+ isNumber(renderSpread) && renderSpread <= 0 ? copy$3(layout.renderBounds, layout.strokeBounds) : copyAndSpread$2(layout.renderBounds, layout.boxBounds, renderSpread);
6021
6035
  }
6022
6036
  };
6023
6037
 
@@ -6122,7 +6136,7 @@ const {toInnerPoint: toInnerPoint, toOuterPoint: toOuterPoint, multiplyParent: m
6122
6136
 
6123
6137
  const {toOuterOf: toOuterOf$1} = BoundsHelper;
6124
6138
 
6125
- const {copy: copy$3, move: move$2} = PointHelper;
6139
+ const {copy: copy$2, move: move$2} = PointHelper;
6126
6140
 
6127
6141
  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
6142
 
@@ -6441,14 +6455,14 @@ let Leaf = class Leaf {
6441
6455
  if (this.parent) {
6442
6456
  this.parent.worldToInner(world, to, distance, relative);
6443
6457
  } else {
6444
- if (to) copy$3(to, world);
6458
+ if (to) copy$2(to, world);
6445
6459
  }
6446
6460
  }
6447
6461
  localToWorld(local, to, distance, relative) {
6448
6462
  if (this.parent) {
6449
6463
  this.parent.innerToWorld(local, to, distance, relative);
6450
6464
  } else {
6451
- if (to) copy$3(to, local);
6465
+ if (to) copy$2(to, local);
6452
6466
  }
6453
6467
  }
6454
6468
  worldToInner(world, to, distance, relative) {
@@ -6923,7 +6937,7 @@ class LeafLevelList {
6923
6937
  }
6924
6938
  }
6925
6939
 
6926
- const version = "1.12.1";
6940
+ const version = "1.12.2";
6927
6941
 
6928
6942
  class LeaferCanvas extends LeaferCanvasBase {
6929
6943
  get allowBackgroundColor() {
@@ -7725,6 +7739,10 @@ class Renderer {
7725
7739
 
7726
7740
  Renderer.clipSpread = 10;
7727
7741
 
7742
+ const tempPoint$1 = {};
7743
+
7744
+ const {copyRadiusPoint: copyRadiusPoint$1} = PointHelper;
7745
+
7728
7746
  const {hitRadiusPoint: hitRadiusPoint$1} = BoundsHelper;
7729
7747
 
7730
7748
  class Picker {
@@ -7851,15 +7869,15 @@ class Picker {
7851
7869
  this.eachFind(branch.children, branch.__onlyHitMask);
7852
7870
  }
7853
7871
  eachFind(children, hitMask) {
7854
- let child, hit;
7872
+ let child, hit, data;
7855
7873
  const {point: point} = this, len = children.length;
7856
7874
  for (let i = len - 1; i > -1; i--) {
7857
- child = children[i];
7858
- if (!child.__.visible || hitMask && !child.__.mask) continue;
7859
- hit = child.__.hitRadius ? true : hitRadiusPoint$1(child.__world, point);
7875
+ child = children[i], data = child.__;
7876
+ if (!data.visible || hitMask && !data.mask) continue;
7877
+ hit = hitRadiusPoint$1(child.__world, data.hitRadius ? copyRadiusPoint$1(tempPoint$1, point, data.hitRadius) : point);
7860
7878
  if (child.isBranch) {
7861
7879
  if (hit || child.__ignoreHitWorld) {
7862
- if (child.isBranchLeaf && child.__.__clipAfterFill && !child.__hitWorld(point, true)) continue;
7880
+ if (child.isBranchLeaf && data.__clipAfterFill && !child.__hitWorld(point, true)) continue;
7863
7881
  if (child.topChildren) this.eachFind(child.topChildren, false);
7864
7882
  this.eachFind(child.children, child.__onlyHitMask);
7865
7883
  if (child.isBranchLeaf) this.hitChild(child, point);
@@ -8436,7 +8454,7 @@ const UIRender = {
8436
8454
  if (stroke && !__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke, this, canvas, options) : Paint.stroke(stroke, this, canvas, options);
8437
8455
  }
8438
8456
  } else {
8439
- if (data.__pathInputed) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
8457
+ if (data.__pathForRender) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
8440
8458
  }
8441
8459
  },
8442
8460
  __drawShape(canvas, options) {
@@ -8560,7 +8578,7 @@ let UI = UI_1 = class UI extends Leaf {
8560
8578
  getPath(curve, pathForRender) {
8561
8579
  this.__layout.update();
8562
8580
  let path = pathForRender ? this.__.__pathForRender : this.__.path;
8563
- if (!path) pen.set(path = []), this.__drawPathByBox(pen);
8581
+ if (!path) pen.set(path = []), this.__drawPathByBox(pen, !pathForRender);
8564
8582
  return curve ? PathConvert.toCanvasData(path, true) : path;
8565
8583
  }
8566
8584
  getPathString(curve, pathForRender, floatLength) {
@@ -8588,17 +8606,18 @@ let UI = UI_1 = class UI extends Leaf {
8588
8606
  }
8589
8607
  __drawPath(canvas) {
8590
8608
  canvas.beginPath();
8591
- this.__drawPathByData(canvas, this.__.path);
8609
+ this.__drawPathByData(canvas, this.__.path, true);
8592
8610
  }
8593
- __drawPathByData(drawer, data) {
8594
- data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer);
8611
+ __drawPathByData(drawer, data, ignoreCornerRadius) {
8612
+ data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer, ignoreCornerRadius);
8595
8613
  }
8596
- __drawPathByBox(drawer) {
8614
+ __drawPathByBox(drawer, ignoreCornerRadius) {
8597
8615
  const {x: x, y: y, width: width, height: height} = this.__layout.boxBounds;
8598
- if (this.__.cornerRadius) {
8616
+ if (this.__.cornerRadius && !ignoreCornerRadius) {
8599
8617
  const {cornerRadius: cornerRadius} = this.__;
8600
8618
  drawer.roundRect(x, y, width, height, isNumber(cornerRadius) ? [ cornerRadius ] : cornerRadius);
8601
8619
  } else drawer.rect(x, y, width, height);
8620
+ drawer.closePath();
8602
8621
  }
8603
8622
  drawImagePlaceholder(_paint, canvas, renderOptions) {
8604
8623
  Paint.fill(this.__.placeholderColor, this, canvas, renderOptions);
@@ -8867,6 +8886,9 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8867
8886
  get layoutLocked() {
8868
8887
  return !this.layouter.running;
8869
8888
  }
8889
+ get view() {
8890
+ return this.canvas && this.canvas.view;
8891
+ }
8870
8892
  get FPS() {
8871
8893
  return this.renderer ? this.renderer.FPS : 60;
8872
8894
  }
@@ -8918,7 +8940,6 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8918
8940
  this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
8919
8941
  if (this.isApp) this.__setApp();
8920
8942
  this.__checkAutoLayout();
8921
- this.view = canvas.view;
8922
8943
  if (!parentApp) {
8923
8944
  this.selector = Creator.selector(this);
8924
8945
  this.interaction = Creator.interaction(this, canvas, this.selector, config);
@@ -9198,7 +9219,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
9198
9219
  if (this.canvasManager) this.canvasManager.destroy();
9199
9220
  }
9200
9221
  if (this.canvas) this.canvas.destroy();
9201
- this.config.view = this.view = this.parentApp = null;
9222
+ this.config.view = this.parentApp = null;
9202
9223
  if (this.userConfig) this.userConfig.view = null;
9203
9224
  super.destroy();
9204
9225
  setTimeout(() => {
@@ -9382,7 +9403,6 @@ let Ellipse = class Ellipse extends UI {
9382
9403
  if (startAngle || endAngle) {
9383
9404
  if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
9384
9405
  ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
9385
- if (innerRadius < 1) closePath$2(path);
9386
9406
  } else {
9387
9407
  if (innerRadius < 1) {
9388
9408
  ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius);
@@ -9390,16 +9410,16 @@ let Ellipse = class Ellipse extends UI {
9390
9410
  }
9391
9411
  ellipse(path, rx, ry, rx, ry, 0, 360, 0, true);
9392
9412
  }
9393
- if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
9394
9413
  } else {
9395
9414
  if (startAngle || endAngle) {
9396
9415
  moveTo$3(path, rx, ry);
9397
9416
  ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle, false);
9398
- closePath$2(path);
9399
9417
  } else {
9400
9418
  ellipse(path, rx, ry, rx, ry);
9401
9419
  }
9402
9420
  }
9421
+ closePath$2(path);
9422
+ if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
9403
9423
  }
9404
9424
  };
9405
9425
 
@@ -10050,7 +10070,7 @@ class UIEvent extends Event {
10050
10070
  }
10051
10071
  }
10052
10072
 
10053
- const {min: min, max: max$1, abs: abs$3} = Math, {float: float$1, sign: sign} = MathHelper, {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = BoundsHelper;
10073
+ const {min: min, max: max$1, abs: abs$3} = Math, {float: float$2, sign: sign} = MathHelper, {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = BoundsHelper;
10054
10074
 
10055
10075
  const tempContent = new Bounds, tempDragBounds = new Bounds;
10056
10076
 
@@ -10090,8 +10110,8 @@ const DragBoundsHelper = {
10090
10110
  } else {
10091
10111
  if (y < dragBounds.y) move.y += dragBounds.y - y; else if (bottom > boundsBottom) move.y += boundsBottom - bottom;
10092
10112
  }
10093
- move.x = float$1(move.x);
10094
- move.y = float$1(move.y);
10113
+ move.x = float$2(move.x);
10114
+ move.y = float$2(move.y);
10095
10115
  return move;
10096
10116
  },
10097
10117
  getValidScaleOf(content, dragBounds, dragBoundsType, origin, scale, lockRatio, change) {
@@ -10103,26 +10123,26 @@ const DragBoundsHelper = {
10103
10123
  let correctScaleX = 1, correctScaleY = 1, aScale, bScale, aSize, bSize;
10104
10124
  if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
10105
10125
  if (scale.x < 0) tempContent.scaleOf(origin, correctScaleX = 1 / scale.x, 1);
10106
- aSize = float$1(tempContent.minX - tempDragBounds.minX);
10107
- bSize = float$1(tempDragBounds.maxX - tempContent.maxX);
10126
+ aSize = float$2(tempContent.minX - tempDragBounds.minX);
10127
+ bSize = float$2(tempDragBounds.maxX - tempContent.maxX);
10108
10128
  aScale = originLeftScale && aSize > 0 ? 1 + aSize / (originLeftScale * tempContent.width) : 1;
10109
10129
  bScale = originRightScale && bSize > 0 ? 1 + bSize / (originRightScale * tempContent.width) : 1;
10110
10130
  correctScaleX *= max$1(aScale, bScale);
10111
10131
  } else {
10112
10132
  if (scale.x < 0) {
10113
- if (float$1(minX(content) - minX(dragBounds)) <= 0 || float$1(maxX(dragBounds) - maxX(content)) <= 0) tempContent.scaleOf(origin, correctScaleX = 1 / scale.x, 1);
10133
+ if (float$2(minX(content) - minX(dragBounds)) <= 0 || float$2(maxX(dragBounds) - maxX(content)) <= 0) tempContent.scaleOf(origin, correctScaleX = 1 / scale.x, 1);
10114
10134
  tempContent.unsign();
10115
10135
  }
10116
- aSize = float$1(tempDragBounds.minX - tempContent.minX);
10117
- bSize = float$1(tempContent.maxX - tempDragBounds.maxX);
10136
+ aSize = float$2(tempDragBounds.minX - tempContent.minX);
10137
+ bSize = float$2(tempContent.maxX - tempDragBounds.maxX);
10118
10138
  aScale = originLeftScale && aSize > 0 ? 1 - aSize / (originLeftScale * tempContent.width) : 1;
10119
10139
  bScale = originRightScale && bSize > 0 ? 1 - bSize / (originRightScale * tempContent.width) : 1;
10120
10140
  correctScaleX *= min(aScale, bScale);
10121
10141
  }
10122
10142
  if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
10123
10143
  if (scale.y < 0) tempContent.scaleOf(origin, 1, correctScaleY = 1 / scale.y);
10124
- aSize = float$1(tempContent.minY - tempDragBounds.minY);
10125
- bSize = float$1(tempDragBounds.maxY - tempContent.maxY);
10144
+ aSize = float$2(tempContent.minY - tempDragBounds.minY);
10145
+ bSize = float$2(tempDragBounds.maxY - tempContent.maxY);
10126
10146
  aScale = originTopScale && aSize > 0 ? 1 + aSize / (originTopScale * tempContent.height) : 1;
10127
10147
  bScale = originBottomScale && bSize > 0 ? 1 + bSize / (originBottomScale * tempContent.height) : 1;
10128
10148
  correctScaleY *= max$1(aScale, bScale);
@@ -10133,11 +10153,11 @@ const DragBoundsHelper = {
10133
10153
  }
10134
10154
  } else {
10135
10155
  if (scale.y < 0) {
10136
- if (float$1(minY(content) - minY(dragBounds)) <= 0 || float$1(maxY(dragBounds) - maxY(content)) <= 0) tempContent.scaleOf(origin, 1, correctScaleY = 1 / scale.y);
10156
+ if (float$2(minY(content) - minY(dragBounds)) <= 0 || float$2(maxY(dragBounds) - maxY(content)) <= 0) tempContent.scaleOf(origin, 1, correctScaleY = 1 / scale.y);
10137
10157
  tempContent.unsign();
10138
10158
  }
10139
- aSize = float$1(tempDragBounds.minY - tempContent.minY);
10140
- bSize = float$1(tempContent.maxY - tempDragBounds.maxY);
10159
+ aSize = float$2(tempDragBounds.minY - tempContent.minY);
10160
+ bSize = float$2(tempContent.maxY - tempDragBounds.maxY);
10141
10161
  aScale = originTopScale && aSize > 0 ? 1 - aSize / (originTopScale * tempContent.height) : 1;
10142
10162
  bScale = originBottomScale && bSize > 0 ? 1 - bSize / (originBottomScale * tempContent.height) : 1;
10143
10163
  correctScaleY *= min(aScale, bScale);
@@ -10289,6 +10309,8 @@ MoveEvent.START = "move.start";
10289
10309
 
10290
10310
  MoveEvent.MOVE = "move";
10291
10311
 
10312
+ MoveEvent.DRAG_ANIMATE = "move.drag_animate";
10313
+
10292
10314
  MoveEvent.END = "move.end";
10293
10315
 
10294
10316
  MoveEvent = __decorate([ registerUIEvent() ], MoveEvent);
@@ -10387,6 +10409,7 @@ const InteractionHelper = {
10387
10409
  ctrlKey: e.ctrlKey,
10388
10410
  shiftKey: e.shiftKey,
10389
10411
  metaKey: e.metaKey,
10412
+ time: Date.now(),
10390
10413
  buttons: isUndefined(e.buttons) ? 1 : e.buttons === 0 ? pointerUpButtons : e.buttons,
10391
10414
  origin: e
10392
10415
  };
@@ -10422,6 +10445,7 @@ const {getDragEventData: getDragEventData, getDropEventData: getDropEventData, g
10422
10445
 
10423
10446
  class Dragger {
10424
10447
  constructor(interaction) {
10448
+ this.dragDataList = [];
10425
10449
  this.interaction = interaction;
10426
10450
  }
10427
10451
  setDragData(data) {
@@ -10484,6 +10508,7 @@ class Dragger {
10484
10508
  this.dragData = getDragEventData(downData, dragData, data);
10485
10509
  if (throughPath) this.dragData.throughPath = throughPath;
10486
10510
  this.dragData.path = path;
10511
+ this.dragDataList.push(this.dragData);
10487
10512
  if (this.moving) {
10488
10513
  data.moving = true;
10489
10514
  this.dragData.moveType = "drag";
@@ -10534,9 +10559,9 @@ class Dragger {
10534
10559
  interaction.emit(DragEvent.ENTER, data, path, dragEnterPath);
10535
10560
  this.dragEnterPath = path;
10536
10561
  }
10537
- dragEnd(data, speed) {
10562
+ dragEnd(data) {
10538
10563
  if (!this.dragging && !this.moving) return;
10539
- if (this.checkDragEndAnimate(data, speed)) return;
10564
+ if (this.checkDragEndAnimate(data)) return;
10540
10565
  this.dragEndReal(data);
10541
10566
  }
10542
10567
  dragEndReal(data) {
@@ -10578,11 +10603,13 @@ class Dragger {
10578
10603
  }
10579
10604
  dragReset() {
10580
10605
  DragEvent.list = DragEvent.data = this.draggableList = this.dragData = this.downData = this.dragOverPath = this.dragEnterPath = null;
10606
+ this.dragDataList = [];
10581
10607
  }
10582
10608
  checkDragEndAnimate(_data, _speed) {
10583
10609
  return false;
10584
10610
  }
10585
10611
  animate(_func, _off) {}
10612
+ stopAnimate() {}
10586
10613
  checkDragOut(_data) {}
10587
10614
  autoMoveOnDragOut(_data) {}
10588
10615
  autoMoveCancel() {}
@@ -10976,6 +11003,9 @@ class InteractionBase {
10976
11003
  this.pointerHover(hoverData);
10977
11004
  }
10978
11005
  }
11006
+ stopDragAnimate() {
11007
+ this.dragger.stopAnimate();
11008
+ }
10979
11009
  updateDownData(data, options, merge) {
10980
11010
  const {downData: downData} = this;
10981
11011
  if (!data && downData) data = downData;
@@ -11159,7 +11189,7 @@ Platform.getSelector = function(leaf) {
11159
11189
  return leaf.leafer ? leaf.leafer.selector : Platform.selector || (Platform.selector = Creator.selector());
11160
11190
  };
11161
11191
 
11162
- const {toInnerRadiusPointOf: toInnerRadiusPointOf, copy: copy$2, setRadius: setRadius} = PointHelper;
11192
+ const {toInnerRadiusPointOf: toInnerRadiusPointOf, copyRadiusPoint: copyRadiusPoint} = PointHelper;
11163
11193
 
11164
11194
  const {hitRadiusPoint: hitRadiusPoint, hitPoint: hitPoint} = BoundsHelper;
11165
11195
 
@@ -11169,8 +11199,7 @@ const leaf = Leaf.prototype;
11169
11199
 
11170
11200
  leaf.hit = function(worldPoint, hitRadius = 0) {
11171
11201
  this.updateLayout();
11172
- copy$2(worldRadiusPoint, worldPoint);
11173
- setRadius(worldRadiusPoint, hitRadius);
11202
+ copyRadiusPoint(worldRadiusPoint, worldPoint, hitRadius);
11174
11203
  const world = this.__world;
11175
11204
  if (hitRadius ? !hitRadiusPoint(world, worldRadiusPoint) : !hitPoint(world, worldRadiusPoint)) return false;
11176
11205
  return this.isBranch ? Platform.getSelector(this).hitPoint(Object.assign({}, worldRadiusPoint), hitRadius, {
@@ -11184,8 +11213,8 @@ leaf.__hitWorld = function(point, forceHitFill) {
11184
11213
  const world = this.__world, layout = this.__layout;
11185
11214
  const isSmall = world.width < 10 && world.height < 10;
11186
11215
  if (data.hitRadius) {
11187
- copy$2(inner, point), point = inner;
11188
- setRadius(point, data.hitRadius);
11216
+ copyRadiusPoint(inner, point, data.hitRadius);
11217
+ point = inner;
11189
11218
  }
11190
11219
  toInnerRadiusPointOf(point, world, inner);
11191
11220
  if (data.hitBox || isSmall) {
@@ -12105,10 +12134,12 @@ const {getFloorScale: getFloorScale} = MathHelper, {abs: abs$2} = Math;
12105
12134
  function createPatternTask(paint, ui, canvas, renderOptions) {
12106
12135
  if (!paint.patternTask) {
12107
12136
  paint.patternTask = ImageManager.patternTasker.add(() => __awaiter(this, void 0, void 0, function*() {
12108
- paint.patternTask = null;
12109
- if (canvas.bounds.hit(ui.__nowWorld)) PaintImage.createPattern(paint, ui, canvas, renderOptions);
12137
+ PaintImage.createPattern(paint, ui, canvas, renderOptions);
12110
12138
  ui.forceUpdate("surface");
12111
- }), 300);
12139
+ }), 0, () => {
12140
+ paint.patternTask = null;
12141
+ return canvas.bounds.hit(ui.__nowWorld);
12142
+ });
12112
12143
  }
12113
12144
  }
12114
12145
 
@@ -13843,6 +13874,8 @@ let Animate = class Animate extends Eventer {
13843
13874
  }
13844
13875
  constructor(target, keyframe, options, isTemp) {
13845
13876
  super();
13877
+ this.nowIndex = 0;
13878
+ this.playedTotalTime = 0;
13846
13879
  if (keyframe) {
13847
13880
  if (keyframe.keyframes) options = keyframe, keyframe = keyframe.keyframes; else if (keyframe.style) options = keyframe,
13848
13881
  keyframe = keyframe.style;
@@ -13889,7 +13922,7 @@ let Animate = class Animate extends Eventer {
13889
13922
  play() {
13890
13923
  if (this.destroyed) return;
13891
13924
  this.running = true;
13892
- if (!this.started) this.clearTimer(), this.start(); else if (!this.timer) this.requestAnimate();
13925
+ if (!this.started) this.clearTimer(), this.start(); else if (!this.timer) this.startRequestAnimate();
13893
13926
  this.emitType(AnimateEvent.PLAY);
13894
13927
  }
13895
13928
  pause() {
@@ -13903,14 +13936,28 @@ let Animate = class Animate extends Eventer {
13903
13936
  this.complete();
13904
13937
  this.emitType(AnimateEvent.STOP);
13905
13938
  }
13906
- seek(time) {
13939
+ seek(time, includeDelay) {
13907
13940
  if (this.destroyed) return;
13908
- if (isObject(time)) time = UnitConvert.number(time, this.duration);
13941
+ const {delay: delay} = this;
13942
+ if (isObject(time)) time = UnitConvert.number(time, this.duration + (includeDelay ? delay : 0));
13943
+ if (includeDelay) time -= delay;
13909
13944
  if (time) time /= this.speed;
13910
- if (!this.started || time < this.time) this.start(true);
13945
+ let waitBeginTime;
13946
+ if (time < 0) {
13947
+ waitBeginTime = -time;
13948
+ time = 0;
13949
+ }
13950
+ if (!this.started || time < this.time || !time) this.start(true);
13911
13951
  this.time = time;
13912
- this.animate(0, true);
13913
- this.clearTimer(() => this.requestAnimate());
13952
+ if (!waitBeginTime) this.animate(0, true);
13953
+ this.clearTimer(() => {
13954
+ if (waitBeginTime) {
13955
+ this.timer = setTimeout(() => {
13956
+ this.timer = 0;
13957
+ this.begin();
13958
+ }, waitBeginTime * 1e3);
13959
+ } else this.startRequestAnimate();
13960
+ });
13914
13961
  this.emitType(AnimateEvent.SEEK);
13915
13962
  }
13916
13963
  kill(complete = true, killStyle) {
@@ -13993,14 +14040,24 @@ let Animate = class Animate extends Eventer {
13993
14040
  }
13994
14041
  }
13995
14042
  }
13996
- requestAnimate() {
14043
+ startRequestAnimate() {
13997
14044
  this.requestAnimateTime = Date.now();
14045
+ this.requestAnimatePageTime = 0;
14046
+ if (!this.waitRequestRender) this.requestAnimate();
14047
+ }
14048
+ requestAnimate() {
14049
+ this.waitRequestRender = true;
13998
14050
  Platform.requestRender(this.animate.bind(this));
13999
14051
  }
14000
- animate(_runtime, seek) {
14052
+ animate(pageTime, seek) {
14001
14053
  if (!seek) {
14054
+ this.waitRequestRender = false;
14002
14055
  if (!this.running) return;
14003
- this.time += (Date.now() - this.requestAnimateTime) / 1e3;
14056
+ let frameTime;
14057
+ if (pageTime && this.requestAnimatePageTime) frameTime = pageTime - this.requestAnimatePageTime; else frameTime = Date.now() - this.requestAnimateTime;
14058
+ this.time += frameTime / 1e3;
14059
+ this.requestAnimatePageTime = pageTime;
14060
+ this.requestAnimateTime = Date.now();
14004
14061
  }
14005
14062
  const {duration: duration} = this, realTime = this.time * this.speed;
14006
14063
  if (realTime < duration) {
@@ -14041,21 +14098,24 @@ let Animate = class Animate extends Eventer {
14041
14098
  }
14042
14099
  start(seek) {
14043
14100
  this.requestAnimateTime = 1;
14044
- const {reverse: reverse} = this;
14101
+ const {reverse: reverse, jump: jump} = this;
14045
14102
  if (reverse || this.mainReverse) this.mainReverse = reverse;
14046
14103
  if (this.looped) this.looped = 0;
14047
14104
  if (seek) this.begin(true); else {
14048
14105
  const {delay: delay} = this;
14049
- if (delay) this.timer = setTimeout(() => {
14050
- this.timer = 0;
14051
- this.begin();
14052
- }, delay / this.speed * 1e3); else this.begin();
14106
+ if (delay) {
14107
+ if (jump) this.begin(true);
14108
+ this.timer = setTimeout(() => {
14109
+ this.timer = 0;
14110
+ this.begin();
14111
+ }, delay / this.speed * 1e3);
14112
+ } else this.begin();
14053
14113
  }
14054
14114
  }
14055
14115
  begin(seek) {
14056
14116
  this.playedTotalTime = this.time = 0;
14057
14117
  this.mainReverse ? this.setTo() : this.setFrom();
14058
- if (!seek) this.requestAnimate();
14118
+ if (!seek) this.startRequestAnimate();
14059
14119
  }
14060
14120
  end() {
14061
14121
  this.mainReverse ? this.setFrom() : this.setTo();
@@ -14171,6 +14231,8 @@ __decorate([ animateAttr(true) ], Animate.prototype, "autoplay", void 0);
14171
14231
 
14172
14232
  __decorate([ animateAttr() ], Animate.prototype, "join", void 0);
14173
14233
 
14234
+ __decorate([ animateAttr() ], Animate.prototype, "jump", void 0);
14235
+
14174
14236
  __decorate([ animateAttr() ], Animate.prototype, "attrs", void 0);
14175
14237
 
14176
14238
  Animate = __decorate([ useModule(LeafEventer) ], Animate);
@@ -14409,7 +14471,7 @@ const hslMatch = /^hsl\((\d+),\s*(\d+)%\s*,\s*(\d+)%/i;
14409
14471
 
14410
14472
  const hslaMatch = /^hsla\((\d+),\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d*\.?\d+)/i;
14411
14473
 
14412
- const int = parseInt, float = parseFloat, {round: round$1} = Math;
14474
+ const int = parseInt, float$1 = parseFloat, {round: round$1} = Math;
14413
14475
 
14414
14476
  let cache = {}, totalCache = 0;
14415
14477
 
@@ -14522,18 +14584,18 @@ function rgbaToRGBA(color) {
14522
14584
  r: int(match[1]),
14523
14585
  g: int(match[2]),
14524
14586
  b: int(match[3]),
14525
- a: float(match[4])
14587
+ a: float$1(match[4])
14526
14588
  };
14527
14589
  }
14528
14590
 
14529
14591
  function hslToRGBA(color) {
14530
14592
  const match = hslMatch.exec(color);
14531
- return hsla(float(match[1]), float(match[2]), float(match[3]), 1);
14593
+ return hsla(float$1(match[1]), float$1(match[2]), float$1(match[3]), 1);
14532
14594
  }
14533
14595
 
14534
14596
  function hslaToRGBA(color) {
14535
14597
  const match = hslaMatch.exec(color);
14536
- return hsla(float(match[1]), float(match[2]), float(match[3]), float(match[4]));
14598
+ return hsla(float$1(match[1]), float$1(match[2]), float$1(match[3]), float$1(match[4]));
14537
14599
  }
14538
14600
 
14539
14601
  const n1 = 1 / 6, n2 = .5, n3 = 2 / 3, n4 = 1 / 3;
@@ -14772,7 +14834,7 @@ const HighBezierHelper = {
14772
14834
 
14773
14835
  const {getDistance: getDistance} = HighBezierHelper;
14774
14836
 
14775
- const {M: M, L: L, C: C, Z: Z} = PathCommandMap;
14837
+ const {M: M, L: L, C: C, Z: Z} = PathCommandMap, {float: float} = MathHelper;
14776
14838
 
14777
14839
  const tempPoint = {}, tempFrom = {};
14778
14840
 
@@ -14909,7 +14971,7 @@ const HighCurveHelper = {
14909
14971
  getDistancePath(distanceData, motionDistance, motionPrecision) {
14910
14972
  const {segments: segments, data: data} = distanceData, path = [];
14911
14973
  motionDistance = UnitConvert.number(motionDistance, distanceData.total);
14912
- let total = 0, distance, to = {};
14974
+ let total = 0, distance, cutDistance, to = {};
14913
14975
  let i = 0, index = 0, x = 0, y = 0, toX, toY, command;
14914
14976
  let x1, y1, x2, y2, t;
14915
14977
  const len = data.length;
@@ -14921,14 +14983,17 @@ const HighCurveHelper = {
14921
14983
  toX = data[i + 1];
14922
14984
  toY = data[i + 2];
14923
14985
  distance = segments[index];
14924
- if (total + distance >= motionDistance || !distanceData.total) {
14986
+ if (total + distance > motionDistance || !distanceData.total) {
14925
14987
  if (!i) x = toX, y = toY;
14926
14988
  tempFrom.x = x;
14927
14989
  tempFrom.y = y;
14928
14990
  to.x = toX;
14929
14991
  to.y = toY;
14930
- PointHelper.getDistancePoint(tempFrom, to, motionDistance - total, true);
14931
- path.push(command, to.x, to.y);
14992
+ cutDistance = float(motionDistance - total);
14993
+ if (cutDistance) {
14994
+ PointHelper.getDistancePoint(tempFrom, to, cutDistance, true);
14995
+ path.push(command, to.x, to.y);
14996
+ }
14932
14997
  return path;
14933
14998
  }
14934
14999
  x = toX;
@@ -14942,9 +15007,12 @@ const HighCurveHelper = {
14942
15007
  toX = data[i + 5];
14943
15008
  toY = data[i + 6];
14944
15009
  distance = segments[index];
14945
- if (total + distance >= motionDistance) {
14946
- t = HighBezierHelper.getT(motionDistance - total, distance, x, y, x1, y1, x2, y2, toX, toY, motionPrecision);
14947
- HighBezierHelper.cut(path, t, x, y, x1, y1, x2, y2, toX, toY);
15010
+ if (total + distance > motionDistance) {
15011
+ cutDistance = float(motionDistance - total);
15012
+ if (cutDistance) {
15013
+ t = HighBezierHelper.getT(cutDistance, distance, x, y, x1, y1, x2, y2, toX, toY, motionPrecision);
15014
+ HighBezierHelper.cut(path, t, x, y, x1, y1, x2, y2, toX, toY);
15015
+ }
14948
15016
  return path;
14949
15017
  }
14950
15018
  x = toX;
@@ -15153,6 +15221,7 @@ class Finder {
15153
15221
  for (let i = 0, len = children.length; i < len; i++) {
15154
15222
  child = children[i];
15155
15223
  result = method(child, options);
15224
+ if (typeof result === "boolean") result = result ? 1 : 0;
15156
15225
  if (result === Yes || result === YesAndSkip) {
15157
15226
  if (list) {
15158
15227
  list.push(child);
@@ -15217,4 +15286,4 @@ Creator.finder = function(target) {
15217
15286
  return new Finder(target);
15218
15287
  };
15219
15288
 
15220
- export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, 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, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, FourNumberHelper, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, 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, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, 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, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, 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 };
15289
+ export { AlignHelper, Animate, AnimateEasing, AnimateEvent, AnimateList, Answer, App, AroundHelper, 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, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Finder, FourNumberHelper, Frame, FrameData, Group, GroupData, HighBezierHelper, HighCurveHelper, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, 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, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Robot, RobotData, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, 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, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, stateStyleType, stateType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$4 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };