@leafer/worker 2.0.6 → 2.0.7

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 CHANGED
@@ -491,13 +491,13 @@ var LeaferUI = function(exports) {
491
491
  to.f = t.f * pixelRatio;
492
492
  },
493
493
  scaleOfOuter(t, origin, scaleX, scaleY) {
494
- M$b.toInnerPoint(t, origin, tempPoint$5);
495
- M$b.scaleOfInner(t, tempPoint$5, scaleX, scaleY);
494
+ M$c.toInnerPoint(t, origin, tempPoint$5);
495
+ M$c.scaleOfInner(t, tempPoint$5, scaleX, scaleY);
496
496
  },
497
497
  scaleOfInner(t, origin, scaleX, scaleY = scaleX) {
498
- M$b.translateInner(t, origin.x, origin.y);
499
- M$b.scale(t, scaleX, scaleY);
500
- M$b.translateInner(t, -origin.x, -origin.y);
498
+ M$c.translateInner(t, origin.x, origin.y);
499
+ M$c.scale(t, scaleX, scaleY);
500
+ M$c.translateInner(t, -origin.x, -origin.y);
501
501
  },
502
502
  rotate(t, rotation) {
503
503
  const {a: a, b: b, c: c, d: d} = t;
@@ -510,13 +510,13 @@ var LeaferUI = function(exports) {
510
510
  t.d = c * sinR + d * cosR;
511
511
  },
512
512
  rotateOfOuter(t, origin, rotation) {
513
- M$b.toInnerPoint(t, origin, tempPoint$5);
514
- M$b.rotateOfInner(t, tempPoint$5, rotation);
513
+ M$c.toInnerPoint(t, origin, tempPoint$5);
514
+ M$c.rotateOfInner(t, tempPoint$5, rotation);
515
515
  },
516
516
  rotateOfInner(t, origin, rotation) {
517
- M$b.translateInner(t, origin.x, origin.y);
518
- M$b.rotate(t, rotation);
519
- M$b.translateInner(t, -origin.x, -origin.y);
517
+ M$c.translateInner(t, origin.x, origin.y);
518
+ M$c.rotate(t, rotation);
519
+ M$c.translateInner(t, -origin.x, -origin.y);
520
520
  },
521
521
  skew(t, skewX, skewY) {
522
522
  const {a: a, b: b, c: c, d: d} = t;
@@ -532,13 +532,13 @@ var LeaferUI = function(exports) {
532
532
  }
533
533
  },
534
534
  skewOfOuter(t, origin, skewX, skewY) {
535
- M$b.toInnerPoint(t, origin, tempPoint$5);
536
- M$b.skewOfInner(t, tempPoint$5, skewX, skewY);
535
+ M$c.toInnerPoint(t, origin, tempPoint$5);
536
+ M$c.skewOfInner(t, tempPoint$5, skewX, skewY);
537
537
  },
538
538
  skewOfInner(t, origin, skewX, skewY = 0) {
539
- M$b.translateInner(t, origin.x, origin.y);
540
- M$b.skew(t, skewX, skewY);
541
- M$b.translateInner(t, -origin.x, -origin.y);
539
+ M$c.translateInner(t, origin.x, origin.y);
540
+ M$c.skew(t, skewX, skewY);
541
+ M$c.translateInner(t, -origin.x, -origin.y);
542
542
  },
543
543
  multiply(t, child) {
544
544
  const {a: a, b: b, c: c, d: d, e: e, f: f} = t;
@@ -577,15 +577,15 @@ var LeaferUI = function(exports) {
577
577
  to.f = e * parent.b + f * parent.d + parent.f;
578
578
  },
579
579
  divide(t, child) {
580
- M$b.multiply(t, M$b.tempInvert(child));
580
+ M$c.multiply(t, M$c.tempInvert(child));
581
581
  },
582
582
  divideParent(t, parent) {
583
- M$b.multiplyParent(t, M$b.tempInvert(parent));
583
+ M$c.multiplyParent(t, M$c.tempInvert(parent));
584
584
  },
585
585
  tempInvert(t) {
586
- const {tempMatrix: tempMatrix} = M$b;
587
- M$b.copy(tempMatrix, t);
588
- M$b.invert(tempMatrix);
586
+ const {tempMatrix: tempMatrix} = M$c;
587
+ M$c.copy(tempMatrix, t);
588
+ M$c.invert(tempMatrix);
589
589
  return tempMatrix;
590
590
  },
591
591
  invert(t) {
@@ -663,7 +663,7 @@ var LeaferUI = function(exports) {
663
663
  }
664
664
  t.e = x;
665
665
  t.f = y;
666
- if (origin = origin || around) M$b.translateInner(t, -origin.x, -origin.y, !around);
666
+ if (origin = origin || around) M$c.translateInner(t, -origin.x, -origin.y, !around);
667
667
  },
668
668
  getLayout(t, origin, around, firstSkewY) {
669
669
  const {a: a, b: b, c: c, d: d, e: e, f: f} = t;
@@ -724,10 +724,10 @@ var LeaferUI = function(exports) {
724
724
  return world;
725
725
  },
726
726
  reset(t) {
727
- M$b.set(t);
727
+ M$c.set(t);
728
728
  }
729
729
  };
730
- const M$b = MatrixHelper;
730
+ const M$c = MatrixHelper;
731
731
  const {float: float$5} = MathHelper;
732
732
  const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
733
733
  const {sin: sin$5, cos: cos$5, abs: abs$a, sqrt: sqrt$4, atan2: atan2$2, min: min$3, round: round$5} = Math;
@@ -2521,12 +2521,12 @@ var LeaferUI = function(exports) {
2521
2521
  const {sin: sin$4, cos: cos$4, hypot: hypot$1, atan2: atan2$1, ceil: ceil$1, abs: abs$9, PI: PI$3, sqrt: sqrt$3, pow: pow$1} = Math;
2522
2522
  const {setPoint: setPoint$4, addPoint: addPoint$2} = TwoPointBoundsHelper;
2523
2523
  const {set: set$1, toNumberPoints: toNumberPoints$1} = PointHelper;
2524
- const {M: M$a, L: L$a, C: C$8, Q: Q$7, Z: Z$8} = PathCommandMap;
2524
+ const {M: M$b, L: L$b, C: C$9, Q: Q$7, Z: Z$9} = PathCommandMap;
2525
2525
  const tempPoint$3 = {};
2526
2526
  const BezierHelper = {
2527
2527
  points(data, originPoints, curve, close) {
2528
2528
  let points = toNumberPoints$1(originPoints);
2529
- data.push(M$a, points[0], points[1]);
2529
+ data.push(M$b, points[0], points[1]);
2530
2530
  if (curve && points.length > 5) {
2531
2531
  let aX, aY, bX, bY, cX, cY, c1X, c1Y, c2X, c2Y;
2532
2532
  let baX, baY, ba, cb, d, len = points.length;
@@ -2557,7 +2557,7 @@ var LeaferUI = function(exports) {
2557
2557
  if (i === 2) {
2558
2558
  if (!close) data.push(Q$7, c1X, c1Y, bX, bY);
2559
2559
  } else {
2560
- if (baX || baY) data.push(C$8, c2X, c2Y, c1X, c1Y, bX, bY);
2560
+ if (baX || baY) data.push(C$9, c2X, c2Y, c1X, c1Y, bX, bY);
2561
2561
  }
2562
2562
  c2X = bX + cb * cX;
2563
2563
  c2Y = bY + cb * cY;
@@ -2565,10 +2565,10 @@ var LeaferUI = function(exports) {
2565
2565
  if (!close) data.push(Q$7, c2X, c2Y, points[len - 2], points[len - 1]);
2566
2566
  } else {
2567
2567
  for (let i = 2, len = points.length; i < len; i += 2) {
2568
- data.push(L$a, points[i], points[i + 1]);
2568
+ data.push(L$b, points[i], points[i + 1]);
2569
2569
  }
2570
2570
  }
2571
- if (close) data.push(Z$8);
2571
+ if (close) data.push(Z$9);
2572
2572
  },
2573
2573
  rect(data, x, y, width, height) {
2574
2574
  PathHelper.creator.path = data;
@@ -2591,7 +2591,7 @@ var LeaferUI = function(exports) {
2591
2591
  let totalRadian = endRadian - startRadian;
2592
2592
  if (totalRadian < 0) totalRadian += PI2;
2593
2593
  if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$9(totalRadian - PI$3) < 1e-12) {
2594
- if (data) data.push(L$a, x1, y1);
2594
+ if (data) data.push(L$b, x1, y1);
2595
2595
  if (setPointBounds) {
2596
2596
  setPoint$4(setPointBounds, fromX, fromY);
2597
2597
  addPoint$2(setPointBounds, x1, y1);
@@ -2635,7 +2635,7 @@ var LeaferUI = function(exports) {
2635
2635
  let startX = x = rotationCos * radiusX * startCos - rotationSin * radiusY * startSin;
2636
2636
  let startY = y = rotationSin * radiusX * startCos + rotationCos * radiusY * startSin;
2637
2637
  let fromX = cx + x, fromY = cy + y;
2638
- if (data) data.push(data.length ? L$a : M$a, fromX, fromY);
2638
+ if (data) data.push(data.length ? L$b : M$b, fromX, fromY);
2639
2639
  if (setPointBounds) setPoint$4(setPointBounds, fromX, fromY);
2640
2640
  if (setStartPoint) set$1(setStartPoint, fromX, fromY);
2641
2641
  for (let i = 0; i < parts; i++) {
@@ -2647,7 +2647,7 @@ var LeaferUI = function(exports) {
2647
2647
  y1 = cy + startY - control * (rotationSin * radiusX * startSin - rotationCos * radiusY * startCos);
2648
2648
  x2 = cx + x + control * (rotationCos * radiusX * endSin + rotationSin * radiusY * endCos);
2649
2649
  y2 = cy + y + control * (rotationSin * radiusX * endSin - rotationCos * radiusY * endCos);
2650
- if (data) data.push(C$8, x1, y1, x2, y2, cx + x, cy + y);
2650
+ if (data) data.push(C$9, x1, y1, x2, y2, cx + x, cy + y);
2651
2651
  if (setPointBounds) toTwoPointBounds$1(cx + startX, cy + startY, x1, y1, x2, y2, cx + x, cy + y, setPointBounds, true);
2652
2652
  startX = x;
2653
2653
  startY = y;
@@ -2659,7 +2659,7 @@ var LeaferUI = function(exports) {
2659
2659
  if (setEndPoint) set$1(setEndPoint, cx + x, cy + y);
2660
2660
  },
2661
2661
  quadraticCurveTo(data, fromX, fromY, x1, y1, toX, toY) {
2662
- data.push(C$8, (fromX + 2 * x1) / 3, (fromY + 2 * y1) / 3, (toX + 2 * x1) / 3, (toY + 2 * y1) / 3, toX, toY);
2662
+ data.push(C$9, (fromX + 2 * x1) / 3, (fromY + 2 * y1) / 3, (toX + 2 * x1) / 3, (toY + 2 * y1) / 3, toX, toY);
2663
2663
  },
2664
2664
  toTwoPointBoundsByQuadraticCurve(fromX, fromY, x1, y1, toX, toY, pointBounds, addMode) {
2665
2665
  toTwoPointBounds$1(fromX, fromY, (fromX + 2 * x1) / 3, (fromY + 2 * y1) / 3, (toX + 2 * x1) / 3, (toY + 2 * y1) / 3, toX, toY, pointBounds, addMode);
@@ -2709,6 +2709,32 @@ var LeaferUI = function(exports) {
2709
2709
  getDerivative(t, fromV, v1, v2, toV) {
2710
2710
  const o = 1 - t;
2711
2711
  return 3 * o * o * (v1 - fromV) + 6 * o * t * (v2 - v1) + 3 * t * t * (toV - v2);
2712
+ },
2713
+ cut(t, fromX, fromY, x1, y1, x2, y2, toX, toY) {
2714
+ if (t <= 0) return {
2715
+ left: null,
2716
+ right: [ x1, y1, x2, y2, toX, toY ]
2717
+ }; else if (t >= 1) return {
2718
+ left: [ x1, y1, x2, y2, toX, toY ],
2719
+ right: null
2720
+ };
2721
+ const u = 1 - t;
2722
+ const leftX1 = fromX * u + x1 * t;
2723
+ const leftY1 = fromY * u + y1 * t;
2724
+ const P12x = x1 * u + x2 * t;
2725
+ const P12y = y1 * u + y2 * t;
2726
+ const rightX2 = x2 * u + toX * t;
2727
+ const rightY2 = y2 * u + toY * t;
2728
+ const leftX2 = leftX1 * u + P12x * t;
2729
+ const leftY2 = leftY1 * u + P12y * t;
2730
+ const rightX1 = P12x * u + rightX2 * t;
2731
+ const rightY1 = P12y * u + rightY2 * t;
2732
+ const leftX = leftX2 * u + rightX1 * t;
2733
+ const leftY = leftY2 * u + rightY1 * t;
2734
+ return {
2735
+ left: [ leftX1, leftY1, leftX2, leftY2, leftX, leftY ],
2736
+ right: [ rightX1, rightY1, rightX2, rightY2, toX, toY ]
2737
+ };
2712
2738
  }
2713
2739
  };
2714
2740
  const {getPointAndSet: getPointAndSet, toTwoPointBounds: toTwoPointBounds$1, ellipse: ellipse$8} = BezierHelper;
@@ -2768,8 +2794,8 @@ var LeaferUI = function(exports) {
2768
2794
  return [];
2769
2795
  }
2770
2796
  };
2771
- const {M: M$9, m: m, L: L$9, l: l, H: H, h: h, V: V, v: v, C: C$7, c: c, S: S$1, s: s, Q: Q$6, q: q, T: T, t: t, A: A, a: a, Z: Z$7, z: z, N: N$5, D: D$6, X: X$5, G: G$5, F: F$6, O: O$6, P: P$5, U: U$5} = PathCommandMap;
2772
- const {rect: rect$3, roundRect: roundRect$2, arcTo: arcTo$3, arc: arc$3, ellipse: ellipse$6, quadraticCurveTo: quadraticCurveTo$1} = BezierHelper;
2797
+ const {M: M$a, m: m, L: L$a, l: l, H: H, h: h, V: V, v: v, C: C$8, c: c, S: S$1, s: s, Q: Q$6, q: q, T: T, t: t, A: A, a: a, Z: Z$8, z: z, N: N$5, D: D$6, X: X$5, G: G$5, F: F$6, O: O$6, P: P$5, U: U$5} = PathCommandMap;
2798
+ const {rect: rect$3, roundRect: roundRect$2, arcTo: arcTo$4, arc: arc$3, ellipse: ellipse$6, quadraticCurveTo: quadraticCurveTo$1} = BezierHelper;
2773
2799
  const {ellipticalArc: ellipticalArc} = EllipseHelper;
2774
2800
  const debug$f = Debug.get("PathConvert");
2775
2801
  const setEndPoint$1 = {};
@@ -2855,10 +2881,10 @@ var LeaferUI = function(exports) {
2855
2881
  old[i + 1] += x;
2856
2882
  old[i + 2] += y;
2857
2883
 
2858
- case M$9:
2884
+ case M$a:
2859
2885
  x = old[i + 1];
2860
2886
  y = old[i + 2];
2861
- data.push(M$9, x, y);
2887
+ data.push(M$a, x, y);
2862
2888
  i += 3;
2863
2889
  break;
2864
2890
 
@@ -2867,7 +2893,7 @@ var LeaferUI = function(exports) {
2867
2893
 
2868
2894
  case H:
2869
2895
  x = old[i + 1];
2870
- data.push(L$9, x, y);
2896
+ data.push(L$a, x, y);
2871
2897
  i += 2;
2872
2898
  break;
2873
2899
 
@@ -2876,7 +2902,7 @@ var LeaferUI = function(exports) {
2876
2902
 
2877
2903
  case V:
2878
2904
  y = old[i + 1];
2879
- data.push(L$9, x, y);
2905
+ data.push(L$a, x, y);
2880
2906
  i += 2;
2881
2907
  break;
2882
2908
 
@@ -2884,10 +2910,10 @@ var LeaferUI = function(exports) {
2884
2910
  old[i + 1] += x;
2885
2911
  old[i + 2] += y;
2886
2912
 
2887
- case L$9:
2913
+ case L$a:
2888
2914
  x = old[i + 1];
2889
2915
  y = old[i + 2];
2890
- data.push(L$9, x, y);
2916
+ data.push(L$a, x, y);
2891
2917
  i += 3;
2892
2918
  break;
2893
2919
 
@@ -2899,14 +2925,14 @@ var LeaferUI = function(exports) {
2899
2925
  command = S$1;
2900
2926
 
2901
2927
  case S$1:
2902
- smooth = lastCommand === C$7 || lastCommand === S$1;
2928
+ smooth = lastCommand === C$8 || lastCommand === S$1;
2903
2929
  x1 = smooth ? x * 2 - controlX : old[i + 1];
2904
2930
  y1 = smooth ? y * 2 - controlY : old[i + 2];
2905
2931
  controlX = old[i + 1];
2906
2932
  controlY = old[i + 2];
2907
2933
  x = old[i + 3];
2908
2934
  y = old[i + 4];
2909
- data.push(C$7, x1, y1, controlX, controlY, x, y);
2935
+ data.push(C$8, x1, y1, controlX, controlY, x, y);
2910
2936
  i += 5;
2911
2937
  break;
2912
2938
 
@@ -2917,14 +2943,14 @@ var LeaferUI = function(exports) {
2917
2943
  old[i + 4] += y;
2918
2944
  old[i + 5] += x;
2919
2945
  old[i + 6] += y;
2920
- command = C$7;
2946
+ command = C$8;
2921
2947
 
2922
- case C$7:
2948
+ case C$8:
2923
2949
  controlX = old[i + 3];
2924
2950
  controlY = old[i + 4];
2925
2951
  x = old[i + 5];
2926
2952
  y = old[i + 6];
2927
- data.push(C$7, old[i + 1], old[i + 2], controlX, controlY, x, y);
2953
+ data.push(C$8, old[i + 1], old[i + 2], controlX, controlY, x, y);
2928
2954
  i += 7;
2929
2955
  break;
2930
2956
 
@@ -2971,8 +2997,8 @@ var LeaferUI = function(exports) {
2971
2997
  break;
2972
2998
 
2973
2999
  case z:
2974
- case Z$7:
2975
- data.push(Z$7);
3000
+ case Z$8:
3001
+ data.push(Z$8);
2976
3002
  i++;
2977
3003
  break;
2978
3004
 
@@ -3026,7 +3052,7 @@ var LeaferUI = function(exports) {
3026
3052
  break;
3027
3053
 
3028
3054
  case U$5:
3029
- arcTo$3(curveMode ? data : copyData(data, old, i, 6), x, y, old[i + 1], old[i + 2], old[i + 3], old[i + 4], old[i + 5], null, setEndPoint$1);
3055
+ arcTo$4(curveMode ? data : copyData(data, old, i, 6), x, y, old[i + 1], old[i + 2], old[i + 3], old[i + 4], old[i + 5], null, setEndPoint$1);
3030
3056
  x = setEndPoint$1.x;
3031
3057
  y = setEndPoint$1.y;
3032
3058
  i += 6;
@@ -3048,15 +3074,15 @@ var LeaferUI = function(exports) {
3048
3074
  list.forEach(item => {
3049
3075
  switch (item.name) {
3050
3076
  case "M":
3051
- data.push(M$9, item.x, item.y);
3077
+ data.push(M$a, item.x, item.y);
3052
3078
  break;
3053
3079
 
3054
3080
  case "L":
3055
- data.push(L$9, item.x, item.y);
3081
+ data.push(L$a, item.x, item.y);
3056
3082
  break;
3057
3083
 
3058
3084
  case "C":
3059
- data.push(C$7, item.x1, item.y1, item.x2, item.y2, item.x, item.y);
3085
+ data.push(C$8, item.x1, item.y1, item.x2, item.y2, item.x, item.y);
3060
3086
  break;
3061
3087
 
3062
3088
  case "Q":
@@ -3064,7 +3090,7 @@ var LeaferUI = function(exports) {
3064
3090
  break;
3065
3091
 
3066
3092
  case "Z":
3067
- data.push(Z$7);
3093
+ data.push(Z$8);
3068
3094
  }
3069
3095
  });
3070
3096
  return data;
@@ -3086,7 +3112,7 @@ var LeaferUI = function(exports) {
3086
3112
  }
3087
3113
  };
3088
3114
  const {current: current, pushData: pushData, copyData: copyData} = PathConvert;
3089
- const {M: M$8, L: L$8, C: C$6, Q: Q$5, Z: Z$6, N: N$4, D: D$5, X: X$4, G: G$4, F: F$5, O: O$5, P: P$4, U: U$4} = PathCommandMap;
3115
+ const {M: M$9, L: L$9, C: C$7, Q: Q$5, Z: Z$7, N: N$4, D: D$5, X: X$4, G: G$4, F: F$5, O: O$5, P: P$4, U: U$4} = PathCommandMap;
3090
3116
  const {getMinDistanceFrom: getMinDistanceFrom, getRadianFrom: getRadianFrom} = PointHelper;
3091
3117
  const {tan: tan, min: min$2, abs: abs$8} = Math;
3092
3118
  const startPoint = {};
@@ -3095,19 +3121,19 @@ var LeaferUI = function(exports) {
3095
3121
  data.length = 0;
3096
3122
  },
3097
3123
  moveTo(data, x, y) {
3098
- data.push(M$8, x, y);
3124
+ data.push(M$9, x, y);
3099
3125
  },
3100
3126
  lineTo(data, x, y) {
3101
- data.push(L$8, x, y);
3127
+ data.push(L$9, x, y);
3102
3128
  },
3103
3129
  bezierCurveTo(data, x1, y1, x2, y2, x, y) {
3104
- data.push(C$6, x1, y1, x2, y2, x, y);
3130
+ data.push(C$7, x1, y1, x2, y2, x, y);
3105
3131
  },
3106
3132
  quadraticCurveTo(data, x1, y1, x, y) {
3107
3133
  data.push(Q$5, x1, y1, x, y);
3108
3134
  },
3109
3135
  closePath(data) {
3110
- data.push(Z$6);
3136
+ data.push(Z$7);
3111
3137
  },
3112
3138
  rect(data, x, y, width, height) {
3113
3139
  data.push(N$4, x, y, width, height);
@@ -3152,12 +3178,12 @@ var LeaferUI = function(exports) {
3152
3178
  },
3153
3179
  drawEllipse(data, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
3154
3180
  BezierHelper.ellipse(null, x, y, radiusX, radiusY, isNull(rotation) ? 0 : rotation, isNull(startAngle) ? 0 : startAngle, isNull(endAngle) ? 360 : endAngle, anticlockwise, null, null, startPoint);
3155
- data.push(M$8, startPoint.x, startPoint.y);
3181
+ data.push(M$9, startPoint.x, startPoint.y);
3156
3182
  ellipse$5(data, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
3157
3183
  },
3158
3184
  drawArc(data, x, y, radius, startAngle, endAngle, anticlockwise) {
3159
3185
  BezierHelper.arc(null, x, y, radius, isNull(startAngle) ? 0 : startAngle, isNull(endAngle) ? 360 : endAngle, anticlockwise, null, null, startPoint);
3160
- data.push(M$8, startPoint.x, startPoint.y);
3186
+ data.push(M$9, startPoint.x, startPoint.y);
3161
3187
  arc$2(data, x, y, radius, startAngle, endAngle, anticlockwise);
3162
3188
  },
3163
3189
  drawPoints(data, points, curve, close) {
@@ -3165,7 +3191,7 @@ var LeaferUI = function(exports) {
3165
3191
  }
3166
3192
  };
3167
3193
  const {ellipse: ellipse$5, arc: arc$2} = PathCommandDataHelper;
3168
- const {moveTo: moveTo$4, lineTo: lineTo$3, quadraticCurveTo: quadraticCurveTo, bezierCurveTo: bezierCurveTo, closePath: closePath$3, beginPath: beginPath, rect: rect$2, roundRect: roundRect$1, ellipse: ellipse$4, arc: arc$1, arcTo: arcTo$2, drawEllipse: drawEllipse, drawArc: drawArc, drawPoints: drawPoints$2} = PathCommandDataHelper;
3194
+ const {moveTo: moveTo$4, lineTo: lineTo$3, quadraticCurveTo: quadraticCurveTo, bezierCurveTo: bezierCurveTo, closePath: closePath$3, beginPath: beginPath, rect: rect$2, roundRect: roundRect$1, ellipse: ellipse$4, arc: arc$1, arcTo: arcTo$3, drawEllipse: drawEllipse, drawArc: drawArc, drawPoints: drawPoints$2} = PathCommandDataHelper;
3169
3195
  class PathCreator {
3170
3196
  set path(value) {
3171
3197
  this.__path = value;
@@ -3231,7 +3257,7 @@ var LeaferUI = function(exports) {
3231
3257
  return this;
3232
3258
  }
3233
3259
  arcTo(x1, y1, x2, y2, radius) {
3234
- arcTo$2(this.__path, x1, y1, x2, y2, radius);
3260
+ arcTo$3(this.__path, x1, y1, x2, y2, radius);
3235
3261
  this.paint();
3236
3262
  return this;
3237
3263
  }
@@ -3255,7 +3281,7 @@ var LeaferUI = function(exports) {
3255
3281
  }
3256
3282
  paint() {}
3257
3283
  }
3258
- const {M: M$7, L: L$7, C: C$5, Q: Q$4, Z: Z$5, N: N$3, D: D$4, X: X$3, G: G$3, F: F$4, O: O$4, P: P$3, U: U$3} = PathCommandMap;
3284
+ const {M: M$8, L: L$8, C: C$6, Q: Q$4, Z: Z$6, N: N$3, D: D$4, X: X$3, G: G$3, F: F$4, O: O$4, P: P$3, U: U$3} = PathCommandMap;
3259
3285
  const debug$e = Debug.get("PathDrawer");
3260
3286
  const PathDrawer = {
3261
3287
  drawPathByData(drawer, data) {
@@ -3265,17 +3291,17 @@ var LeaferUI = function(exports) {
3265
3291
  while (i < len) {
3266
3292
  command = data[i];
3267
3293
  switch (command) {
3268
- case M$7:
3294
+ case M$8:
3269
3295
  drawer.moveTo(data[i + 1], data[i + 2]);
3270
3296
  i += 3;
3271
3297
  break;
3272
3298
 
3273
- case L$7:
3299
+ case L$8:
3274
3300
  drawer.lineTo(data[i + 1], data[i + 2]);
3275
3301
  i += 3;
3276
3302
  break;
3277
3303
 
3278
- case C$5:
3304
+ case C$6:
3279
3305
  drawer.bezierCurveTo(data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], data[i + 6]);
3280
3306
  i += 7;
3281
3307
  break;
@@ -3285,7 +3311,7 @@ var LeaferUI = function(exports) {
3285
3311
  i += 5;
3286
3312
  break;
3287
3313
 
3288
- case Z$5:
3314
+ case Z$6:
3289
3315
  drawer.closePath();
3290
3316
  i += 1;
3291
3317
  break;
@@ -3337,8 +3363,8 @@ var LeaferUI = function(exports) {
3337
3363
  }
3338
3364
  }
3339
3365
  };
3340
- const {M: M$6, L: L$6, C: C$4, Q: Q$3, Z: Z$4, N: N$2, D: D$3, X: X$2, G: G$2, F: F$3, O: O$3, P: P$2, U: U$2} = PathCommandMap;
3341
- const {toTwoPointBounds: toTwoPointBounds, toTwoPointBoundsByQuadraticCurve: toTwoPointBoundsByQuadraticCurve, arcTo: arcTo$1, arc: arc, ellipse: ellipse$3} = BezierHelper;
3366
+ const {M: M$7, L: L$7, C: C$5, Q: Q$3, Z: Z$5, N: N$2, D: D$3, X: X$2, G: G$2, F: F$3, O: O$3, P: P$2, U: U$2} = PathCommandMap;
3367
+ const {toTwoPointBounds: toTwoPointBounds, toTwoPointBoundsByQuadraticCurve: toTwoPointBoundsByQuadraticCurve, arcTo: arcTo$2, arc: arc, ellipse: ellipse$3} = BezierHelper;
3342
3368
  const {addPointBounds: addPointBounds, copy: copy$9, addPoint: addPoint$1, setPoint: setPoint$3, addBounds: addBounds, toBounds: toBounds$2} = TwoPointBoundsHelper;
3343
3369
  const debug$d = Debug.get("PathBounds");
3344
3370
  let radius, radiusX, radiusY;
@@ -3357,22 +3383,22 @@ var LeaferUI = function(exports) {
3357
3383
  while (i < len) {
3358
3384
  command = data[i];
3359
3385
  if (i === 0) {
3360
- if (command === Z$4 || command === C$4 || command === Q$3) {
3386
+ if (command === Z$5 || command === C$5 || command === Q$3) {
3361
3387
  setPoint$3(setPointBounds, x, y);
3362
3388
  } else {
3363
3389
  setPoint$3(setPointBounds, data[i + 1], data[i + 2]);
3364
3390
  }
3365
3391
  }
3366
3392
  switch (command) {
3367
- case M$6:
3368
- case L$6:
3393
+ case M$7:
3394
+ case L$7:
3369
3395
  x = data[i + 1];
3370
3396
  y = data[i + 2];
3371
3397
  addPoint$1(setPointBounds, x, y);
3372
3398
  i += 3;
3373
3399
  break;
3374
3400
 
3375
- case C$4:
3401
+ case C$5:
3376
3402
  toX = data[i + 5];
3377
3403
  toY = data[i + 6];
3378
3404
  toTwoPointBounds(x, y, data[i + 1], data[i + 2], data[i + 3], data[i + 4], toX, toY, tempPointBounds);
@@ -3394,7 +3420,7 @@ var LeaferUI = function(exports) {
3394
3420
  i += 5;
3395
3421
  break;
3396
3422
 
3397
- case Z$4:
3423
+ case Z$5:
3398
3424
  i += 1;
3399
3425
  break;
3400
3426
 
@@ -3449,7 +3475,7 @@ var LeaferUI = function(exports) {
3449
3475
  break;
3450
3476
 
3451
3477
  case U$2:
3452
- arcTo$1(null, x, y, data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], tempPointBounds, setEndPoint);
3478
+ arcTo$2(null, x, y, data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], tempPointBounds, setEndPoint);
3453
3479
  i === 0 ? copy$9(setPointBounds, tempPointBounds) : addPointBounds(setPointBounds, tempPointBounds);
3454
3480
  x = setEndPoint.x;
3455
3481
  y = setEndPoint.y;
@@ -3463,9 +3489,9 @@ var LeaferUI = function(exports) {
3463
3489
  }
3464
3490
  }
3465
3491
  };
3466
- const {M: M$5, L: L$5, Z: Z$3} = PathCommandMap;
3467
- const {getCenterX: getCenterX, getCenterY: getCenterY} = PointHelper;
3468
- const {arcTo: arcTo} = PathCommandDataHelper;
3492
+ const {M: M$6, L: L$6, Z: Z$4} = PathCommandMap;
3493
+ const {getCenterX: getCenterX$1, getCenterY: getCenterY$1} = PointHelper;
3494
+ const {arcTo: arcTo$1} = PathCommandDataHelper;
3469
3495
  const PathCorner = {
3470
3496
  smooth(data, cornerRadius, _cornerSmoothing) {
3471
3497
  let command, lastCommand, commandLen;
@@ -3476,43 +3502,43 @@ var LeaferUI = function(exports) {
3476
3502
  while (i < len) {
3477
3503
  command = data[i];
3478
3504
  switch (command) {
3479
- case M$5:
3505
+ case M$6:
3480
3506
  startX = lastX = data[i + 1];
3481
3507
  startY = lastY = data[i + 2];
3482
3508
  i += 3;
3483
- if (data[i] === L$5) {
3509
+ if (data[i] === L$6) {
3484
3510
  secondX = data[i + 1];
3485
3511
  secondY = data[i + 2];
3486
- three ? smooth.push(M$5, startX, startY) : smooth.push(M$5, getCenterX(startX, secondX), getCenterY(startY, secondY));
3512
+ three ? smooth.push(M$6, startX, startY) : smooth.push(M$6, getCenterX$1(startX, secondX), getCenterY$1(startY, secondY));
3487
3513
  } else {
3488
- smooth.push(M$5, startX, startY);
3514
+ smooth.push(M$6, startX, startY);
3489
3515
  }
3490
3516
  break;
3491
3517
 
3492
- case L$5:
3518
+ case L$6:
3493
3519
  x = data[i + 1];
3494
3520
  y = data[i + 2];
3495
3521
  i += 3;
3496
3522
  switch (data[i]) {
3497
- case L$5:
3498
- arcTo(smooth, x, y, data[i + 1], data[i + 2], cornerRadius, lastX, lastY, three);
3523
+ case L$6:
3524
+ arcTo$1(smooth, x, y, data[i + 1], data[i + 2], cornerRadius, lastX, lastY, three);
3499
3525
  break;
3500
3526
 
3501
- case Z$3:
3502
- arcTo(smooth, x, y, startX, startY, cornerRadius, lastX, lastY, three);
3527
+ case Z$4:
3528
+ arcTo$1(smooth, x, y, startX, startY, cornerRadius, lastX, lastY, three);
3503
3529
  break;
3504
3530
 
3505
3531
  default:
3506
- smooth.push(L$5, x, y);
3532
+ smooth.push(L$6, x, y);
3507
3533
  }
3508
3534
  lastX = x;
3509
3535
  lastY = y;
3510
3536
  break;
3511
3537
 
3512
- case Z$3:
3513
- if (lastCommand !== Z$3) {
3514
- arcTo(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY, three);
3515
- smooth.push(Z$3);
3538
+ case Z$4:
3539
+ if (lastCommand !== Z$4) {
3540
+ arcTo$1(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY, three);
3541
+ smooth.push(Z$4);
3516
3542
  }
3517
3543
  i += 1;
3518
3544
  break;
@@ -3524,7 +3550,7 @@ var LeaferUI = function(exports) {
3524
3550
  }
3525
3551
  lastCommand = command;
3526
3552
  }
3527
- if (command !== Z$3) {
3553
+ if (command !== Z$4) {
3528
3554
  smooth[1] = startX;
3529
3555
  smooth[2] = startY;
3530
3556
  }
@@ -4492,7 +4518,7 @@ var LeaferUI = function(exports) {
4492
4518
  if (layout.opacityChanged) updateAllWorldOpacity(leaf);
4493
4519
  leaf.__updateChange();
4494
4520
  if (layout.surfaceChanged) {
4495
- if (leaf.__hasComplex) L$4.updateComplex(leaf);
4521
+ if (leaf.__hasComplex) L$5.updateComplex(leaf);
4496
4522
  layout.surfaceChanged = false;
4497
4523
  }
4498
4524
  },
@@ -4528,7 +4554,7 @@ var LeaferUI = function(exports) {
4528
4554
  y: y
4529
4555
  };
4530
4556
  isInnerPoint ? toOuterPoint$1(t.localTransform, local, local, true) : t.parent && toInnerPoint$1(t.parent.scrollWorldTransform, local, local, true);
4531
- L$4.moveLocal(t, local.x, local.y, transition);
4557
+ L$5.moveLocal(t, local.x, local.y, transition);
4532
4558
  },
4533
4559
  moveLocal(t, x, y = 0, transition) {
4534
4560
  if (isObject(x)) y = x.y, x = x.x;
@@ -4541,7 +4567,7 @@ var LeaferUI = function(exports) {
4541
4567
  }, transition) : (t.x = x, t.y = y);
4542
4568
  },
4543
4569
  zoomOfWorld(t, origin, scaleX, scaleY, resize, transition) {
4544
- L$4.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY, resize, transition);
4570
+ L$5.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY, resize, transition);
4545
4571
  },
4546
4572
  zoomOfLocal(t, origin, scaleX, scaleY = scaleX, resize, transition) {
4547
4573
  const o = t.__localMatrix;
@@ -4551,8 +4577,8 @@ var LeaferUI = function(exports) {
4551
4577
  }
4552
4578
  copy$8(matrix$3, o);
4553
4579
  scaleOfOuter$2(matrix$3, origin, scaleX, scaleY);
4554
- if (L$4.hasHighPosition(t)) {
4555
- L$4.setTransform(t, matrix$3, resize, transition);
4580
+ if (L$5.hasHighPosition(t)) {
4581
+ L$5.setTransform(t, matrix$3, resize, transition);
4556
4582
  } else {
4557
4583
  const x = t.x + matrix$3.e - o.e, y = t.y + matrix$3.f - o.f;
4558
4584
  if (transition && !resize) t.animate({
@@ -4564,41 +4590,41 @@ var LeaferUI = function(exports) {
4564
4590
  }
4565
4591
  },
4566
4592
  rotateOfWorld(t, origin, angle, transition) {
4567
- L$4.rotateOfLocal(t, getTempLocal(t, origin), angle, transition);
4593
+ L$5.rotateOfLocal(t, getTempLocal(t, origin), angle, transition);
4568
4594
  },
4569
4595
  rotateOfLocal(t, origin, angle, transition) {
4570
4596
  const o = t.__localMatrix;
4571
4597
  copy$8(matrix$3, o);
4572
4598
  rotateOfOuter$2(matrix$3, origin, angle);
4573
- if (L$4.hasHighPosition(t)) L$4.setTransform(t, matrix$3, false, transition); else t.set({
4599
+ if (L$5.hasHighPosition(t)) L$5.setTransform(t, matrix$3, false, transition); else t.set({
4574
4600
  x: t.x + matrix$3.e - o.e,
4575
4601
  y: t.y + matrix$3.f - o.f,
4576
4602
  rotation: MathHelper.formatRotation(t.rotation + angle)
4577
4603
  }, transition);
4578
4604
  },
4579
4605
  skewOfWorld(t, origin, skewX, skewY, resize, transition) {
4580
- L$4.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize, transition);
4606
+ L$5.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize, transition);
4581
4607
  },
4582
4608
  skewOfLocal(t, origin, skewX, skewY = 0, resize, transition) {
4583
4609
  copy$8(matrix$3, t.__localMatrix);
4584
4610
  skewOfOuter(matrix$3, origin, skewX, skewY);
4585
- L$4.setTransform(t, matrix$3, resize, transition);
4611
+ L$5.setTransform(t, matrix$3, resize, transition);
4586
4612
  },
4587
4613
  transformWorld(t, transform, resize, transition) {
4588
4614
  copy$8(matrix$3, t.worldTransform);
4589
4615
  multiplyParent$3(matrix$3, transform);
4590
4616
  if (t.parent) divideParent(matrix$3, t.parent.scrollWorldTransform);
4591
- L$4.setTransform(t, matrix$3, resize, transition);
4617
+ L$5.setTransform(t, matrix$3, resize, transition);
4592
4618
  },
4593
4619
  transform(t, transform, resize, transition) {
4594
4620
  copy$8(matrix$3, t.localTransform);
4595
4621
  multiplyParent$3(matrix$3, transform);
4596
- L$4.setTransform(t, matrix$3, resize, transition);
4622
+ L$5.setTransform(t, matrix$3, resize, transition);
4597
4623
  },
4598
4624
  setTransform(t, transform, resize, transition) {
4599
- const data = t.__, originPoint = data.origin && L$4.getInnerOrigin(t, data.origin);
4600
- const layout = getLayout(transform, originPoint, data.around && L$4.getInnerOrigin(t, data.around));
4601
- if (L$4.hasOffset(t)) {
4625
+ const data = t.__, originPoint = data.origin && L$5.getInnerOrigin(t, data.origin);
4626
+ const layout = getLayout(transform, originPoint, data.around && L$5.getInnerOrigin(t, data.around));
4627
+ if (L$5.hasOffset(t)) {
4602
4628
  layout.x -= data.offsetX;
4603
4629
  layout.y -= data.offsetY;
4604
4630
  }
@@ -4607,7 +4633,7 @@ var LeaferUI = function(exports) {
4607
4633
  delete layout.scaleX, delete layout.scaleY;
4608
4634
  if (originPoint) {
4609
4635
  BoundsHelper.scale(t.boxBounds, Math.abs(scaleX), Math.abs(scaleY));
4610
- const changedPoint = L$4.getInnerOrigin(t, data.origin);
4636
+ const changedPoint = L$5.getInnerOrigin(t, data.origin);
4611
4637
  PointHelper.move(layout, originPoint.x - changedPoint.x, originPoint.y - changedPoint.y);
4612
4638
  }
4613
4639
  t.set(layout);
@@ -4617,11 +4643,11 @@ var LeaferUI = function(exports) {
4617
4643
  getFlipTransform(t, axis) {
4618
4644
  const m = getMatrixData();
4619
4645
  const sign = axis === "x" ? 1 : -1;
4620
- scaleOfOuter$2(m, L$4.getLocalOrigin(t, "center"), -1 * sign, 1 * sign);
4646
+ scaleOfOuter$2(m, L$5.getLocalOrigin(t, "center"), -1 * sign, 1 * sign);
4621
4647
  return m;
4622
4648
  },
4623
4649
  getLocalOrigin(t, origin) {
4624
- return PointHelper.tempToOuterOf(L$4.getInnerOrigin(t, origin), t.localTransform);
4650
+ return PointHelper.tempToOuterOf(L$5.getInnerOrigin(t, origin), t.localTransform);
4625
4651
  },
4626
4652
  getInnerOrigin(t, origin) {
4627
4653
  const innerOrigin = {};
@@ -4637,11 +4663,11 @@ var LeaferUI = function(exports) {
4637
4663
  updateOuterBounds(_t) {},
4638
4664
  cacheId(_t) {},
4639
4665
  drop(t, parent, index, resize) {
4640
- t.setTransform(L$4.getRelativeWorld(t, parent, true), resize);
4666
+ t.setTransform(L$5.getRelativeWorld(t, parent, true), resize);
4641
4667
  parent.add(t, index);
4642
4668
  },
4643
4669
  hasHighPosition(t) {
4644
- return t.origin || t.around || L$4.hasOffset(t);
4670
+ return t.origin || t.around || L$5.hasOffset(t);
4645
4671
  },
4646
4672
  hasOffset(t) {
4647
4673
  return t.offsetX || t.offsetY;
@@ -4661,12 +4687,12 @@ var LeaferUI = function(exports) {
4661
4687
  const x = move.x * speed, y = move.y * speed;
4662
4688
  move.x -= x, move.y -= y;
4663
4689
  t.move(x, y);
4664
- Platform.requestRender(() => L$4.animateMove(t, move, speed));
4690
+ Platform.requestRender(() => L$5.animateMove(t, move, speed));
4665
4691
  }
4666
4692
  }
4667
4693
  };
4668
- const L$4 = LeafHelper;
4669
- const {updateAllMatrix: updateAllMatrix$4, updateMatrix: updateMatrix$4, updateAllWorldOpacity: updateAllWorldOpacity, updateAllChange: updateAllChange$1, updateChange: updateChange$1} = L$4;
4694
+ const L$5 = LeafHelper;
4695
+ const {updateAllMatrix: updateAllMatrix$4, updateMatrix: updateMatrix$4, updateAllWorldOpacity: updateAllWorldOpacity, updateAllChange: updateAllChange$1, updateChange: updateChange$1} = L$5;
4670
4696
  function getTempLocal(t, worldPoint) {
4671
4697
  t.updateLayout();
4672
4698
  return t.parent ? PointHelper.tempToInnerOf(worldPoint, t.parent.scrollWorldTransform) : worldPoint;
@@ -6637,7 +6663,7 @@ var LeaferUI = function(exports) {
6637
6663
  this.levelMap = null;
6638
6664
  }
6639
6665
  }
6640
- const version = "2.0.6";
6666
+ const version = "2.0.7";
6641
6667
  class LeaferCanvas extends LeaferCanvasBase {
6642
6668
  get allowBackgroundColor() {
6643
6669
  return true;
@@ -8086,7 +8112,7 @@ var LeaferUI = function(exports) {
8086
8112
  __updateRenderPath(updateCache) {
8087
8113
  const data = this.__;
8088
8114
  if (data.path) {
8089
- data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
8115
+ data.__pathForRender = data.cornerRadius || data.path.radius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
8090
8116
  if (data.__useArrow) PathArrow.addArrows(this, updateCache);
8091
8117
  } else data.__pathForRender && (data.__pathForRender = undefined);
8092
8118
  }
@@ -8805,7 +8831,7 @@ var LeaferUI = function(exports) {
8805
8831
  }
8806
8832
  }
8807
8833
  if (!open) closePath$2(path);
8808
- if (Platform.ellipseToCurve || data.__useArrow) data.path = this.getPath(true);
8834
+ if (Platform.ellipseToCurve || data.__useArrow || data.cornerRadius) data.path = this.getPath(true);
8809
8835
  }
8810
8836
  };
8811
8837
  __decorate([ dataProcessor(EllipseData) ], exports.Ellipse.prototype, "__", void 0);
@@ -8823,7 +8849,7 @@ var LeaferUI = function(exports) {
8823
8849
  const data = this.__;
8824
8850
  const path = data.path = [];
8825
8851
  if (data.points) {
8826
- drawPoints$1(path, data.points, data.curve, true);
8852
+ drawPoints$1(path, data.points, data.curve, data.closed);
8827
8853
  } else {
8828
8854
  const {width: width, height: height, sides: sides} = data;
8829
8855
  const rx = width / 2, ry = height / 2;
@@ -14501,7 +14527,7 @@ var LeaferUI = function(exports) {
14501
14527
  }
14502
14528
  };
14503
14529
  exports.LineEditTool = __decorate([ registerEditTool() ], exports.LineEditTool);
14504
- const {M: M$4, L: L$3, C: C$3, Q: Q$2, Z: Z$2, N: N$1, D: D$1, X: X$1, G: G$1, F: F$1, O: O$2, P: P$1, U: U$1} = PathCommandMap;
14530
+ const {M: M$5, L: L$4, C: C$4, Q: Q$2, Z: Z$3, N: N$1, D: D$1, X: X$1, G: G$1, F: F$1, O: O$2, P: P$1, U: U$1} = PathCommandMap;
14505
14531
  const PathScaler = {
14506
14532
  scale(data, scaleX, scaleY) {
14507
14533
  if (!data) return;
@@ -14510,13 +14536,13 @@ var LeaferUI = function(exports) {
14510
14536
  while (i < len) {
14511
14537
  command = data[i];
14512
14538
  switch (command) {
14513
- case M$4:
14514
- case L$3:
14539
+ case M$5:
14540
+ case L$4:
14515
14541
  scalePoints(data, scaleX, scaleY, i, 1);
14516
14542
  i += 3;
14517
14543
  break;
14518
14544
 
14519
- case C$3:
14545
+ case C$4:
14520
14546
  scalePoints(data, scaleX, scaleY, i, 3);
14521
14547
  i += 7;
14522
14548
  break;
@@ -14526,7 +14552,7 @@ var LeaferUI = function(exports) {
14526
14552
  i += 5;
14527
14553
  break;
14528
14554
 
14529
- case Z$2:
14555
+ case Z$3:
14530
14556
  i += 1;
14531
14557
  break;
14532
14558
 
@@ -15110,13 +15136,13 @@ var LeaferUI = function(exports) {
15110
15136
  return "rotate";
15111
15137
  },
15112
15138
  detect(data, config) {
15113
- const {state: state} = M$3;
15114
- const type = M$3.getType(data, config);
15139
+ const {state: state} = M$4;
15140
+ const type = M$4.getType(data, config);
15115
15141
  if (!state.totalData) {
15116
15142
  state.startTime = Date.now();
15117
15143
  state.center = data.center;
15118
15144
  }
15119
- M$3.add(data, state.totalData);
15145
+ M$4.add(data, state.totalData);
15120
15146
  state.totalData = data;
15121
15147
  if (type === state.type) {
15122
15148
  state.typeCount++;
@@ -15125,7 +15151,7 @@ var LeaferUI = function(exports) {
15125
15151
  state.type = type;
15126
15152
  state.typeCount = 1;
15127
15153
  }
15128
- if (Date.now() - state.startTime >= (config.time || 160)) return M$3.getType(state.totalData, config);
15154
+ if (Date.now() - state.startTime >= (config.time || 160)) return M$4.getType(state.totalData, config);
15129
15155
  return "none";
15130
15156
  },
15131
15157
  add(data, add) {
@@ -15136,14 +15162,14 @@ var LeaferUI = function(exports) {
15136
15162
  data.center = add.center;
15137
15163
  },
15138
15164
  reset() {
15139
- const {state: state} = M$3;
15165
+ const {state: state} = M$4;
15140
15166
  state.type = "none";
15141
15167
  state.typeCount = 0;
15142
15168
  state.startTime = 0;
15143
15169
  state.totalData = null;
15144
15170
  }
15145
15171
  };
15146
- const M$3 = MultiTouchHelper;
15172
+ const M$4 = MultiTouchHelper;
15147
15173
  const {abs: abs$2, max: max$1} = Math, {sign: sign, within: within$2} = MathHelper;
15148
15174
  const WheelEventHelper = {
15149
15175
  getMove(event, config) {
@@ -15873,7 +15899,7 @@ var LeaferUI = function(exports) {
15873
15899
  __decorate([ dataProcessor(ArrowData) ], exports.Arrow.prototype, "__", void 0);
15874
15900
  __decorate([ arrowType("angle") ], exports.Arrow.prototype, "endArrow", void 0);
15875
15901
  exports.Arrow = __decorate([ registerUI() ], exports.Arrow);
15876
- const {M: M$2, L: L$2, C: C$2, Q: Q$1, O: O$1} = PathCommandMap;
15902
+ const {M: M$3, L: L$3, C: C$3, Q: Q$1, O: O$1} = PathCommandMap;
15877
15903
  const {rotate: rotate$1, copyFrom: copyFrom$1, scale: scale$1} = PointHelper;
15878
15904
  const point$1 = {};
15879
15905
  const PathMatrixHelper = {
@@ -15882,13 +15908,13 @@ var LeaferUI = function(exports) {
15882
15908
  while (i < len) {
15883
15909
  command = data[i];
15884
15910
  switch (command) {
15885
- case M$2:
15886
- case L$2:
15911
+ case M$3:
15912
+ case L$3:
15887
15913
  setPoint$2(data, i + 1, x, y, scaleX, scaleY, rotation, origin);
15888
15914
  i += 3;
15889
15915
  break;
15890
15916
 
15891
- case C$2:
15917
+ case C$3:
15892
15918
  for (j = 1; j < 6; j += 2) setPoint$2(data, i + j, x, y, scaleX, scaleY, rotation, origin);
15893
15919
  i += 7;
15894
15920
  break;
@@ -16088,7 +16114,7 @@ var LeaferUI = function(exports) {
16088
16114
  if (fill) arrowData.fill = fill;
16089
16115
  return arrowData;
16090
16116
  }
16091
- const {M: M$1, L: L$1, C: C$1, Q: Q, Z: Z$1, N: N, D: D, X: X, G: G, F: F, O: O, P: P, U: U} = PathCommandMap;
16117
+ const {M: M$2, L: L$2, C: C$2, Q: Q, Z: Z$2, N: N, D: D, X: X, G: G, F: F, O: O, P: P, U: U} = PathCommandMap;
16092
16118
  const {copy: copy, copyFrom: copyFrom, getDistancePoint: getDistancePoint, isSame: isSame} = PointHelper;
16093
16119
  const {stintSet: stintSet$1} = DataHelper;
16094
16120
  const connectPoint = {};
@@ -16107,8 +16133,8 @@ var LeaferUI = function(exports) {
16107
16133
  while (i < len) {
16108
16134
  command = data[i];
16109
16135
  switch (command) {
16110
- case M$1:
16111
- case L$1:
16136
+ case M$2:
16137
+ case L$2:
16112
16138
  if (count < 2 || i + 6 >= len) {
16113
16139
  copy(old, now);
16114
16140
  copyFrom(now, data[i + 1], data[i + 2]);
@@ -16117,7 +16143,7 @@ var LeaferUI = function(exports) {
16117
16143
  i += 3;
16118
16144
  break;
16119
16145
 
16120
- case C$1:
16146
+ case C$2:
16121
16147
  if (count === 1 || i + 7 >= len - 3) {
16122
16148
  copyPoints(data, last, now, i + 3);
16123
16149
  old.x = data[i + 1], old.y = data[i + 2];
@@ -16133,7 +16159,7 @@ var LeaferUI = function(exports) {
16133
16159
  i += 5;
16134
16160
  break;
16135
16161
 
16136
- case Z$1:
16162
+ case Z$2:
16137
16163
  return;
16138
16164
 
16139
16165
  case N:
@@ -16177,8 +16203,8 @@ var LeaferUI = function(exports) {
16177
16203
  break;
16178
16204
  }
16179
16205
  count++;
16180
- if (count === 1 && command !== M$1) return;
16181
- if (count === 2 && useStartArrow) copy(second, command === L$1 ? now : isSame(old, first) ? last : old);
16206
+ if (count === 1 && command !== M$2) return;
16207
+ if (count === 2 && useStartArrow) copy(second, command === L$2 ? now : isSame(old, first) ? last : old);
16182
16208
  if (i === len) {
16183
16209
  const path = uData.__pathForRender = clonePathForArrow ? [ ...data ] : data;
16184
16210
  if (useStartArrow) {
@@ -16200,11 +16226,11 @@ var LeaferUI = function(exports) {
16200
16226
  getDistancePoint(now, last, -connectPoint.x, true);
16201
16227
  let index;
16202
16228
  switch (command) {
16203
- case L$1:
16229
+ case L$2:
16204
16230
  index = i - 3 + 1;
16205
16231
  break;
16206
16232
 
16207
- case C$1:
16233
+ case C$2:
16208
16234
  index = i - 7 + 5;
16209
16235
  break;
16210
16236
 
@@ -17796,7 +17822,7 @@ var LeaferUI = function(exports) {
17796
17822
  }
17797
17823
  };
17798
17824
  const {getDistance: getDistance} = HighBezierHelper;
17799
- const {M: M, L: L, C: C, Z: Z} = PathCommandMap, {float: float$1} = MathHelper;
17825
+ const {M: M$1, L: L$1, C: C$1, Z: Z$1} = PathCommandMap, {float: float$1} = MathHelper;
17800
17826
  const tempPoint = {}, tempFrom = {};
17801
17827
  const HighCurveHelper = {
17802
17828
  transform(data, matrix) {
@@ -17805,18 +17831,18 @@ var LeaferUI = function(exports) {
17805
17831
  while (i < len) {
17806
17832
  command = data[i];
17807
17833
  switch (command) {
17808
- case M:
17809
- case L:
17834
+ case M$1:
17835
+ case L$1:
17810
17836
  HighCurveHelper.transformPoints(data, matrix, i, 1);
17811
17837
  i += 3;
17812
17838
  break;
17813
17839
 
17814
- case C:
17840
+ case C$1:
17815
17841
  HighCurveHelper.transformPoints(data, matrix, i, 3);
17816
17842
  i += 7;
17817
17843
  break;
17818
17844
 
17819
- case Z:
17845
+ case Z$1:
17820
17846
  i += 1;
17821
17847
  }
17822
17848
  }
@@ -17837,17 +17863,17 @@ var LeaferUI = function(exports) {
17837
17863
  while (i < len) {
17838
17864
  command = data[i];
17839
17865
  switch (command) {
17840
- case M:
17841
- case L:
17866
+ case M$1:
17867
+ case L$1:
17842
17868
  toX = data[i + 1];
17843
17869
  toY = data[i + 2];
17844
- distance = command === L && i > 0 ? PointHelper.getDistanceFrom(x, y, toX, toY) : 0;
17870
+ distance = command === L$1 && i > 0 ? PointHelper.getDistanceFrom(x, y, toX, toY) : 0;
17845
17871
  x = toX;
17846
17872
  y = toY;
17847
17873
  i += 3;
17848
17874
  break;
17849
17875
 
17850
- case C:
17876
+ case C$1:
17851
17877
  toX = data[i + 5];
17852
17878
  toY = data[i + 6];
17853
17879
  distance = HighBezierHelper.getDistance(x, y, data[i + 1], data[i + 2], data[i + 3], data[i + 4], toX, toY);
@@ -17856,7 +17882,7 @@ var LeaferUI = function(exports) {
17856
17882
  i += 7;
17857
17883
  break;
17858
17884
 
17859
- case Z:
17885
+ case Z$1:
17860
17886
  i += 1;
17861
17887
 
17862
17888
  default:
@@ -17881,8 +17907,8 @@ var LeaferUI = function(exports) {
17881
17907
  while (i < len) {
17882
17908
  command = data[i];
17883
17909
  switch (command) {
17884
- case M:
17885
- case L:
17910
+ case M$1:
17911
+ case L$1:
17886
17912
  toX = data[i + 1];
17887
17913
  toY = data[i + 2];
17888
17914
  distance = segments[index];
@@ -17901,7 +17927,7 @@ var LeaferUI = function(exports) {
17901
17927
  i += 3;
17902
17928
  break;
17903
17929
 
17904
- case C:
17930
+ case C$1:
17905
17931
  toX = data[i + 5];
17906
17932
  toY = data[i + 6];
17907
17933
  distance = segments[index];
@@ -17917,7 +17943,7 @@ var LeaferUI = function(exports) {
17917
17943
  i += 7;
17918
17944
  break;
17919
17945
 
17920
- case Z:
17946
+ case Z$1:
17921
17947
  i += 1;
17922
17948
 
17923
17949
  default:
@@ -17938,8 +17964,8 @@ var LeaferUI = function(exports) {
17938
17964
  while (i < len) {
17939
17965
  command = data[i];
17940
17966
  switch (command) {
17941
- case M:
17942
- case L:
17967
+ case M$1:
17968
+ case L$1:
17943
17969
  toX = data[i + 1];
17944
17970
  toY = data[i + 2];
17945
17971
  distance = segments[index];
@@ -17962,7 +17988,7 @@ var LeaferUI = function(exports) {
17962
17988
  path.push(command, x, y);
17963
17989
  break;
17964
17990
 
17965
- case C:
17991
+ case C$1:
17966
17992
  x1 = data[i + 1], y1 = data[i + 2], x2 = data[i + 3], y2 = data[i + 4];
17967
17993
  toX = data[i + 5];
17968
17994
  toY = data[i + 6];
@@ -17981,7 +18007,7 @@ var LeaferUI = function(exports) {
17981
18007
  path.push(command, x1, y1, x2, y2, toX, toY);
17982
18008
  break;
17983
18009
 
17984
- case Z:
18010
+ case Z$1:
17985
18011
  i += 1;
17986
18012
  path.push(command);
17987
18013
 
@@ -19328,6 +19354,256 @@ var LeaferUI = function(exports) {
19328
19354
  __decorate([ boundsType("") ], exports.ImageBox.prototype, "url", void 0);
19329
19355
  exports.ImageBox = __decorate([ registerUI() ], exports.ImageBox);
19330
19356
  Plugin.add("box");
19357
+ function getTangentDistance(r, x, y, lastX, lastY, nextX, nextY) {
19358
+ const ux = lastX - x, uy = lastY - y;
19359
+ const vx = nextX - x, vy = nextY - y;
19360
+ const lenU = Math.sqrt(ux * ux + uy * uy);
19361
+ const lenV = Math.sqrt(vx * vx + vy * vy);
19362
+ if (lenU < .001 || lenV < .001) return 0;
19363
+ const cosTheta = (ux * vx + uy * vy) / (lenU * lenV);
19364
+ const safeCos = Math.max(-.99999, Math.min(.99999, cosTheta));
19365
+ let d = r * Math.sqrt((1 - safeCos) / (1 + safeCos));
19366
+ const maxD = Math.min(lenU / 2, lenV / 2);
19367
+ return Math.min(d, maxD);
19368
+ }
19369
+ function getCorrectT(d, x, y, x1, y1, x2, y2, toX, toY) {
19370
+ if (d <= 0) return 0;
19371
+ const chordLen = Math.sqrt(Math.pow(toX - x, 2) + Math.pow(toY - y, 2));
19372
+ if (d >= chordLen) return .5;
19373
+ const vx0 = 3 * (x1 - x);
19374
+ const vy0 = 3 * (y1 - y);
19375
+ let v0mag = Math.sqrt(vx0 * vx0 + vy0 * vy0);
19376
+ if (v0mag < 1e-6) v0mag = chordLen || 1;
19377
+ let t = Math.min(.5, d / v0mag);
19378
+ const tempP = {
19379
+ x: 0,
19380
+ y: 0
19381
+ };
19382
+ for (let i = 0; i < 5; i++) {
19383
+ BezierHelper.getPointAndSet(t, x, y, x1, y1, x2, y2, toX, toY, tempP);
19384
+ const dx = tempP.x - x;
19385
+ const dy = tempP.y - y;
19386
+ const currentDist = Math.sqrt(dx * dx + dy * dy);
19387
+ if (currentDist < 1e-6) {
19388
+ t = t * 1.5;
19389
+ continue;
19390
+ }
19391
+ const vxt = BezierHelper.getDerivative(t, x, x1, x2, toX);
19392
+ const vyt = BezierHelper.getDerivative(t, y, y1, y2, toY);
19393
+ const f_prime = (dx * vxt + dy * vyt) / currentDist;
19394
+ if (Math.abs(f_prime) < 1e-6) break;
19395
+ const deltaT = (currentDist - d) / f_prime;
19396
+ const nextT = t - deltaT;
19397
+ const safeNextT = Math.max(0, Math.min(.6, nextT));
19398
+ if (Math.abs(safeNextT - t) < 1e-5) {
19399
+ t = safeNextT;
19400
+ break;
19401
+ }
19402
+ t = safeNextT;
19403
+ }
19404
+ return Math.max(0, Math.min(.5, t));
19405
+ }
19406
+ const {M: M, L: L, C: C, Z: Z} = PathCommandMap;
19407
+ const {getCenterX: getCenterX, getCenterY: getCenterY} = PointHelper;
19408
+ const {arcTo: arcTo} = PathCommandDataHelper;
19409
+ PathCorner.smooth = function smooth(data, cornerRadius, _cornerSmoothing) {
19410
+ const radius = data.radius;
19411
+ if (isNeedConvert(data)) data = PathConvert.toCanvasData(data, true);
19412
+ let command, lastCommand, commandLen;
19413
+ let i = 0, countCommand = 0, x = 0, y = 0, startX = 0, startY = 0, startR = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0, r, x1, y1, x2, y2, toX, toY;
19414
+ if (isArray(cornerRadius)) cornerRadius = cornerRadius[0] || 0;
19415
+ const len = data.length, three = len === 9;
19416
+ const smooth = [];
19417
+ while (i < len) {
19418
+ command = data[i];
19419
+ r = radius ? isUndefined(radius[countCommand]) ? cornerRadius : radius[countCommand] : cornerRadius;
19420
+ switch (command) {
19421
+ case M:
19422
+ startX = lastX = data[i + 1];
19423
+ startY = lastY = data[i + 2];
19424
+ startR = r;
19425
+ i += 3;
19426
+ const end = findEndPoint(data, i);
19427
+ switch (data[i]) {
19428
+ case L:
19429
+ secondX = data[i + 1];
19430
+ secondY = data[i + 2];
19431
+ if (three) smooth.push(M, startX, startY); else {
19432
+ if (end) smooth.push(M, getCenterX(startX, secondX), getCenterY(startY, secondY)); else smooth.push(M, startX, startY);
19433
+ }
19434
+ break;
19435
+
19436
+ case C:
19437
+ if (end) {
19438
+ const {left: left, right: right} = setAfterC(data, i, r, end.x, end.y, startX, startY, data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], data[i + 6]);
19439
+ if (left && right) {
19440
+ smooth.push(M, secondX = left[4], secondY = left[5]);
19441
+ break;
19442
+ }
19443
+ }
19444
+
19445
+ default:
19446
+ smooth.push(M, secondX = startX, secondY = startY);
19447
+ }
19448
+ break;
19449
+
19450
+ case L:
19451
+ x = data[i + 1];
19452
+ y = data[i + 2];
19453
+ i += 3;
19454
+ switch (data[i]) {
19455
+ case L:
19456
+ arcTo(smooth, x, y, data[i + 1], data[i + 2], r, lastX, lastY, three);
19457
+ break;
19458
+
19459
+ case C:
19460
+ const {left: left, right: right} = setAfterC(data, i, r, lastX, lastY, x, y, data[i + 1], data[i + 2], data[i + 3], data[i + 4], data[i + 5], data[i + 6]);
19461
+ if (left && right) arcTo(smooth, x, y, left[4], left[5], r, lastX, lastY, three); else smooth.push(L, x, y);
19462
+ break;
19463
+
19464
+ case Z:
19465
+ arcTo(smooth, x, y, startX, startY, r, lastX, lastY, three);
19466
+ break;
19467
+
19468
+ default:
19469
+ smooth.push(L, x, y);
19470
+ }
19471
+ lastX = x;
19472
+ lastY = y;
19473
+ break;
19474
+
19475
+ case C:
19476
+ x1 = data[i + 1];
19477
+ y1 = data[i + 2];
19478
+ x2 = data[i + 3];
19479
+ y2 = data[i + 4];
19480
+ x = data[i + 5];
19481
+ y = data[i + 6];
19482
+ i += 7;
19483
+ switch (data[i]) {
19484
+ case L:
19485
+ toX = data[i + 1], toY = data[i + 2];
19486
+ setBeforeC(smooth, r, lastX, lastY, x1, y1, x2, y2, x, y, toX, toY, three);
19487
+ break;
19488
+
19489
+ case C:
19490
+ smooth.push(C, x1, y1, x2, y2, x, y);
19491
+ break;
19492
+
19493
+ case Z:
19494
+ toX = startX, toY = startY;
19495
+ setBeforeC(smooth, r, lastX, lastY, x1, y1, x2, y2, x, y, toX, toY, three);
19496
+ break;
19497
+ }
19498
+ lastX = x;
19499
+ lastY = y;
19500
+ break;
19501
+
19502
+ case Z:
19503
+ if (lastCommand !== Z) {
19504
+ arcTo(smooth, startX, startY, secondX, secondY, startR, lastX, lastY, three);
19505
+ smooth.push(Z);
19506
+ }
19507
+ i += 1;
19508
+ break;
19509
+
19510
+ default:
19511
+ commandLen = PathNumberCommandLengthMap[command];
19512
+ for (let j = 0; j < commandLen; j++) smooth.push(data[i + j]);
19513
+ i += commandLen;
19514
+ }
19515
+ lastCommand = command;
19516
+ countCommand++;
19517
+ }
19518
+ return smooth;
19519
+ };
19520
+ function isNeedConvert(data) {
19521
+ let command, i = 0;
19522
+ const len = data.length;
19523
+ while (i < len) {
19524
+ command = data[i];
19525
+ switch (command) {
19526
+ case M:
19527
+ i += 3;
19528
+ break;
19529
+
19530
+ case L:
19531
+ i += 3;
19532
+ break;
19533
+
19534
+ case C:
19535
+ i += 7;
19536
+ break;
19537
+
19538
+ case Z:
19539
+ i += 1;
19540
+ break;
19541
+
19542
+ default:
19543
+ return true;
19544
+ }
19545
+ }
19546
+ return false;
19547
+ }
19548
+ function findEndPoint(data, i) {
19549
+ let command, commandLen, x, y;
19550
+ const len = data.length;
19551
+ while (i < len) {
19552
+ command = data[i];
19553
+ switch (command) {
19554
+ case M:
19555
+ return undefined;
19556
+
19557
+ case L:
19558
+ x = data[i + 1];
19559
+ y = data[i + 2];
19560
+ i += 3;
19561
+ break;
19562
+
19563
+ case C:
19564
+ x = data[i + 5];
19565
+ y = data[i + 6];
19566
+ i += 7;
19567
+ break;
19568
+
19569
+ case Z:
19570
+ return {
19571
+ x: x,
19572
+ y: y
19573
+ };
19574
+
19575
+ default:
19576
+ commandLen = PathNumberCommandLengthMap[command];
19577
+ i += commandLen;
19578
+ }
19579
+ }
19580
+ return undefined;
19581
+ }
19582
+ function setAfterC(data, i, cornerRadius, lastX, lastY, fromX, fromY, x1, y1, x2, y2, toX, toY) {
19583
+ const d = getTangentDistance(cornerRadius, fromX, fromY, lastX, lastY, x1, y1);
19584
+ const t = getCorrectT(d, fromX, fromY, x1, y1, x2, y2, toX, toY);
19585
+ const two = BezierHelper.cut(t, fromX, fromY, x1, y1, x2, y2, toX, toY);
19586
+ const {left: left, right: right} = two;
19587
+ if (left && right) {
19588
+ data[i + 1] = right[0];
19589
+ data[i + 2] = right[1];
19590
+ data[i + 3] = right[2];
19591
+ data[i + 4] = right[3];
19592
+ }
19593
+ return two;
19594
+ }
19595
+ function setBeforeC(smooth, cornerRadius, fromX, fromY, x1, y1, x2, y2, toX, toY, nextX, nextY, three) {
19596
+ const d = getTangentDistance(cornerRadius, toX, toY, x2, y2, nextX, nextY);
19597
+ const t = getCorrectT(d, toX, toY, x2, y2, x1, y1, fromX, fromY);
19598
+ const {left: left, right: right} = BezierHelper.cut(1 - t, fromX, fromY, x1, y1, x2, y2, toX, toY);
19599
+ if (left && right) {
19600
+ smooth.push(C, left[0], left[1], left[2], left[3], left[4], left[5]);
19601
+ arcTo(smooth, toX, toY, nextX, nextY, cornerRadius, left[4], left[5], three);
19602
+ } else {
19603
+ smooth.push(C, x1, y1, x2, y2, toX, toY);
19604
+ }
19605
+ }
19606
+ Plugin.add("corner");
19331
19607
  exports.AlignHelper = AlignHelper;
19332
19608
  exports.AnimateEasing = AnimateEasing;
19333
19609
  exports.AnimateEvent = AnimateEvent;