@leafer-ui/miniapp 2.1.5 → 2.1.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.
@@ -253,7 +253,7 @@ const FourNumberHelper = {
253
253
  return to;
254
254
  },
255
255
  setTemp(top, right, bottom, left) {
256
- return set$2(tempFour, top, right, bottom, left);
256
+ return set$3(tempFour, top, right, bottom, left);
257
257
  },
258
258
  toTempAB(a, b, change) {
259
259
  tempTo = change ? isNumber(a) ? b : a : [];
@@ -293,22 +293,22 @@ const FourNumberHelper = {
293
293
  max(t, other, change) {
294
294
  if (isNumber(t) && isNumber(other)) return max$5(t, other);
295
295
  toTempAB(t, other, change);
296
- return set$2(tempTo, max$5(tempA[0], tempB[0]), max$5(tempA[1], tempB[1]), max$5(tempA[2], tempB[2]), max$5(tempA[3], tempB[3]));
296
+ return set$3(tempTo, max$5(tempA[0], tempB[0]), max$5(tempA[1], tempB[1]), max$5(tempA[2], tempB[2]), max$5(tempA[3], tempB[3]));
297
297
  },
298
298
  add(t, other, change) {
299
299
  if (isNumber(t) && isNumber(other)) return t + other;
300
300
  toTempAB(t, other, change);
301
- return set$2(tempTo, tempA[0] + tempB[0], tempA[1] + tempB[1], tempA[2] + tempB[2], tempA[3] + tempB[3]);
301
+ return set$3(tempTo, tempA[0] + tempB[0], tempA[1] + tempB[1], tempA[2] + tempB[2], tempA[3] + tempB[3]);
302
302
  },
303
303
  swapAndScale(t, scaleX, scaleY, change) {
304
304
  if (isNumber(t)) return scaleX === scaleY ? t * scaleX : [ t * scaleY, t * scaleX ];
305
305
  const to = change ? t : [];
306
306
  const [top, right, bottom, left] = t.length === 4 ? t : get$5(t);
307
- return set$2(to, bottom * scaleY, left * scaleX, top * scaleY, right * scaleX);
307
+ return set$3(to, bottom * scaleY, left * scaleX, top * scaleY, right * scaleX);
308
308
  }
309
309
  };
310
310
 
311
- const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
311
+ const {set: set$3, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
312
312
 
313
313
  const {round: round$3, pow: pow$1, max: max$4, floor: floor$2, PI: PI$3} = Math;
314
314
 
@@ -433,7 +433,7 @@ const {sin: sin$5, cos: cos$5, acos: acos, sqrt: sqrt$3} = Math;
433
433
 
434
434
  const {float: float$3} = MathHelper;
435
435
 
436
- const tempPoint$4 = {};
436
+ const tempPoint$5 = {};
437
437
 
438
438
  function getWorld() {
439
439
  return Object.assign(Object.assign(Object.assign({}, getMatrixData()), getBoundsData()), {
@@ -492,8 +492,8 @@ const MatrixHelper = {
492
492
  to.f = t.f * pixelRatio;
493
493
  },
494
494
  scaleOfOuter(t, origin, scaleX, scaleY) {
495
- M$6.toInnerPoint(t, origin, tempPoint$4);
496
- M$6.scaleOfInner(t, tempPoint$4, scaleX, scaleY);
495
+ M$6.toInnerPoint(t, origin, tempPoint$5);
496
+ M$6.scaleOfInner(t, tempPoint$5, scaleX, scaleY);
497
497
  },
498
498
  scaleOfInner(t, origin, scaleX, scaleY = scaleX) {
499
499
  M$6.translateInner(t, origin.x, origin.y);
@@ -511,8 +511,8 @@ const MatrixHelper = {
511
511
  t.d = c * sinR + d * cosR;
512
512
  },
513
513
  rotateOfOuter(t, origin, rotation) {
514
- M$6.toInnerPoint(t, origin, tempPoint$4);
515
- M$6.rotateOfInner(t, tempPoint$4, rotation);
514
+ M$6.toInnerPoint(t, origin, tempPoint$5);
515
+ M$6.rotateOfInner(t, tempPoint$5, rotation);
516
516
  },
517
517
  rotateOfInner(t, origin, rotation) {
518
518
  M$6.translateInner(t, origin.x, origin.y);
@@ -533,8 +533,8 @@ const MatrixHelper = {
533
533
  }
534
534
  },
535
535
  skewOfOuter(t, origin, skewX, skewY) {
536
- M$6.toInnerPoint(t, origin, tempPoint$4);
537
- M$6.skewOfInner(t, tempPoint$4, skewX, skewY);
536
+ M$6.toInnerPoint(t, origin, tempPoint$5);
537
+ M$6.skewOfInner(t, tempPoint$5, skewX, skewY);
538
538
  },
539
539
  skewOfInner(t, origin, skewX, skewY = 0) {
540
540
  M$6.translateInner(t, origin.x, origin.y);
@@ -735,7 +735,7 @@ const {float: float$2} = MathHelper;
735
735
 
736
736
  const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
737
737
 
738
- const {sin: sin$4, cos: cos$4, abs: abs$5, sqrt: sqrt$2, atan2: atan2$2, min: min$2, round: round$2} = Math;
738
+ const {sin: sin$4, cos: cos$4, abs: abs$6, sqrt: sqrt$2, atan2: atan2$2, min: min$2, round: round$2} = Math;
739
739
 
740
740
  const PointHelper = {
741
741
  defaultPoint: getPointData(),
@@ -772,15 +772,15 @@ const PointHelper = {
772
772
  t.x += (t.x - origin.x) * (scaleX - 1);
773
773
  t.y += (t.y - origin.y) * (scaleY - 1);
774
774
  },
775
- rotate(t, rotation, origin) {
775
+ rotate(t, rotation, origin, radiusX = 1, radiusY = 1) {
776
776
  if (!origin) origin = P$5.defaultPoint;
777
777
  rotation *= OneRadian;
778
778
  const cosR = cos$4(rotation);
779
779
  const sinR = sin$4(rotation);
780
- const rx = t.x - origin.x;
781
- const ry = t.y - origin.y;
782
- t.x = origin.x + rx * cosR - ry * sinR;
783
- t.y = origin.y + rx * sinR + ry * cosR;
780
+ const rx = (t.x - origin.x) / radiusX;
781
+ const ry = (t.y - origin.y) / radiusY;
782
+ t.x = origin.x + (rx * cosR - ry * sinR) * radiusX;
783
+ t.y = origin.y + (rx * sinR + ry * cosR) * radiusY;
784
784
  },
785
785
  tempToInnerOf(t, matrix) {
786
786
  const {tempPoint: temp} = P$5;
@@ -833,15 +833,15 @@ const PointHelper = {
833
833
  return getDistanceFrom(t.x, t.y, point.x, point.y);
834
834
  },
835
835
  getDistanceFrom(x1, y1, x2, y2) {
836
- const x = abs$5(x2 - x1);
837
- const y = abs$5(y2 - y1);
836
+ const x = abs$6(x2 - x1);
837
+ const y = abs$6(y2 - y1);
838
838
  return sqrt$2(x * x + y * y);
839
839
  },
840
840
  getMinDistanceFrom(x1, y1, x2, y2, x3, y3) {
841
841
  return min$2(getDistanceFrom(x1, y1, x2, y2), getDistanceFrom(x2, y2, x3, y3));
842
842
  },
843
- getAngle(t, to) {
844
- return getAtan2(t, to) / OneRadian;
843
+ getAngle(t, to, radiusX, radiusY) {
844
+ return getAtan2(t, to, radiusX, radiusY) / OneRadian;
845
845
  },
846
846
  getRotation(t, origin, to, toOrigin) {
847
847
  if (!toOrigin) toOrigin = origin;
@@ -855,8 +855,8 @@ const PointHelper = {
855
855
  const d = toY - toOriginY;
856
856
  return Math.atan2(a * d - b * c, a * c + b * d);
857
857
  },
858
- getAtan2(t, to) {
859
- return atan2$2(to.y - t.y, to.x - t.x);
858
+ getAtan2(t, to, radiusX = 1, radiusY = 1) {
859
+ return atan2$2((to.y - t.y) / radiusY, (to.x - t.x) / radiusX);
860
860
  },
861
861
  getDistancePoint(t, to, distance, changeTo, fromTo) {
862
862
  const r = getAtan2(t, to);
@@ -956,7 +956,7 @@ class Point {
956
956
  }
957
957
  }
958
958
 
959
- const tempPoint$3 = new Point;
959
+ const tempPoint$4 = new Point;
960
960
 
961
961
  class Matrix {
962
962
  constructor(a, b, c, d, e, f) {
@@ -2702,15 +2702,15 @@ const RectHelper = {
2702
2702
  }
2703
2703
  };
2704
2704
 
2705
- const {sin: sin$3, cos: cos$3, hypot: hypot, atan2: atan2$1, ceil: ceil, abs: abs$4, PI: PI$2, sqrt: sqrt$1, pow: pow} = Math;
2705
+ const {sin: sin$3, cos: cos$3, hypot: hypot, atan2: atan2$1, ceil: ceil, abs: abs$5, PI: PI$2, sqrt: sqrt$1, pow: pow} = Math;
2706
2706
 
2707
2707
  const {setPoint: setPoint$1, addPoint: addPoint$1} = TwoPointBoundsHelper;
2708
2708
 
2709
- const {set: set$1, toNumberPoints: toNumberPoints} = PointHelper;
2709
+ const {set: set$2, toNumberPoints: toNumberPoints} = PointHelper;
2710
2710
 
2711
2711
  const {M: M$5, L: L$6, C: C$4, Q: Q$4, Z: Z$5} = PathCommandMap;
2712
2712
 
2713
- const tempPoint$2 = {};
2713
+ const tempPoint$3 = {};
2714
2714
 
2715
2715
  const BezierHelper = {
2716
2716
  points(data, originPoints, curve, close) {
@@ -2779,14 +2779,14 @@ const BezierHelper = {
2779
2779
  const lenCB = hypot(CBx, CBy);
2780
2780
  let totalRadian = endRadian - startRadian;
2781
2781
  if (totalRadian < 0) totalRadian += PI2;
2782
- if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$4(totalRadian - PI$2) < 1e-12) {
2782
+ if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$5(totalRadian - PI$2) < 1e-12) {
2783
2783
  if (data) data.push(L$6, x1, y1);
2784
2784
  if (setPointBounds) {
2785
2785
  setPoint$1(setPointBounds, fromX, fromY);
2786
2786
  addPoint$1(setPointBounds, x1, y1);
2787
2787
  }
2788
- if (setStartPoint) set$1(setStartPoint, fromX, fromY);
2789
- if (setEndPoint) set$1(setEndPoint, x1, y1);
2788
+ if (setStartPoint) set$2(setStartPoint, fromX, fromY);
2789
+ if (setEndPoint) set$2(setEndPoint, x1, y1);
2790
2790
  return;
2791
2791
  }
2792
2792
  const anticlockwise = BAx * CBy - CBx * BAy < 0;
@@ -2812,7 +2812,7 @@ const BezierHelper = {
2812
2812
  let totalRadian = endRadian - startRadian;
2813
2813
  if (totalRadian < 0) totalRadian += PI2; else if (totalRadian > PI2) totalRadian -= PI2;
2814
2814
  if (anticlockwise) totalRadian -= PI2;
2815
- const parts = ceil(abs$4(totalRadian / PI_2));
2815
+ const parts = ceil(abs$5(totalRadian / PI_2));
2816
2816
  const partRadian = totalRadian / parts;
2817
2817
  const partRadian4Sin = sin$3(partRadian / 4);
2818
2818
  const control = 8 / 3 * partRadian4Sin * partRadian4Sin / sin$3(partRadian / 2);
@@ -2826,7 +2826,7 @@ const BezierHelper = {
2826
2826
  let fromX = cx + x, fromY = cy + y;
2827
2827
  if (data) data.push(data.length ? L$6 : M$5, fromX, fromY);
2828
2828
  if (setPointBounds) setPoint$1(setPointBounds, fromX, fromY);
2829
- if (setStartPoint) set$1(setStartPoint, fromX, fromY);
2829
+ if (setStartPoint) set$2(setStartPoint, fromX, fromY);
2830
2830
  for (let i = 0; i < parts; i++) {
2831
2831
  endCos = cos$3(endRadian);
2832
2832
  endSin = sin$3(endRadian);
@@ -2845,7 +2845,7 @@ const BezierHelper = {
2845
2845
  startRadian = endRadian;
2846
2846
  endRadian += partRadian;
2847
2847
  }
2848
- if (setEndPoint) set$1(setEndPoint, cx + x, cy + y);
2848
+ if (setEndPoint) set$2(setEndPoint, cx + x, cy + y);
2849
2849
  },
2850
2850
  quadraticCurveTo(data, fromX, fromY, x1, y1, toX, toY) {
2851
2851
  data.push(C$4, (fromX + 2 * x1) / 3, (fromY + 2 * y1) / 3, (toX + 2 * x1) / 3, (toY + 2 * y1) / 3, toX, toY);
@@ -2881,8 +2881,8 @@ const BezierHelper = {
2881
2881
  addMode ? addPoint$1(pointBounds, fromX, fromY) : setPoint$1(pointBounds, fromX, fromY);
2882
2882
  addPoint$1(pointBounds, toX, toY);
2883
2883
  for (let i = 0, len = tList.length; i < len; i++) {
2884
- getPointAndSet(tList[i], fromX, fromY, x1, y1, x2, y2, toX, toY, tempPoint$2);
2885
- addPoint$1(pointBounds, tempPoint$2.x, tempPoint$2.y);
2884
+ getPointAndSet(tList[i], fromX, fromY, x1, y1, x2, y2, toX, toY, tempPoint$3);
2885
+ addPoint$1(pointBounds, tempPoint$3.x, tempPoint$3.y);
2886
2886
  }
2887
2887
  },
2888
2888
  getPointAndSet(t, fromX, fromY, x1, y1, x2, y2, toX, toY, setPoint) {
@@ -3321,7 +3321,7 @@ const {M: M$3, L: L$4, C: C$2, Q: Q$2, Z: Z$3, N: N$2, D: D$3, X: X$2, G: G$2, F
3321
3321
 
3322
3322
  const {getMinDistanceFrom: getMinDistanceFrom, getRadianFrom: getRadianFrom} = PointHelper;
3323
3323
 
3324
- const {tan: tan, min: min$1, abs: abs$3} = Math;
3324
+ const {tan: tan, min: min$1, abs: abs$4} = Math;
3325
3325
 
3326
3326
  const startPoint = {};
3327
3327
 
@@ -3381,7 +3381,7 @@ const PathCommandDataHelper = {
3381
3381
  arcTo(data, x1, y1, x2, y2, radius, lastX, lastY, fullRadius) {
3382
3382
  if (!isUndefined(lastX)) {
3383
3383
  const r = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2) / (fullRadius ? 1 : 2);
3384
- radius = min$1(radius, min$1(r, r * abs$3(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
3384
+ radius = min$1(radius, min$1(r, r * abs$4(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
3385
3385
  }
3386
3386
  data.push(U$2, x1, y1, x2, y2, radius);
3387
3387
  },
@@ -3722,7 +3722,7 @@ const {arcTo: arcTo} = PathCommandDataHelper;
3722
3722
 
3723
3723
  const PathCorner = {
3724
3724
  smooth(data, cornerRadius, _cornerSmoothing) {
3725
- let command, lastCommand, commandLen;
3725
+ let command, lastCommand, commandLen, startXIndex, startYIndex, smoothLen;
3726
3726
  let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
3727
3727
  if (isArray(cornerRadius)) cornerRadius = cornerRadius[0] || 0;
3728
3728
  const len = data.length, three = len === 9;
@@ -3731,6 +3731,11 @@ const PathCorner = {
3731
3731
  command = data[i];
3732
3732
  switch (command) {
3733
3733
  case M:
3734
+ smoothLen = smooth.length;
3735
+ if (smoothLen && lastCommand !== Z) {
3736
+ smooth[startXIndex] = startX;
3737
+ smooth[startYIndex] = startY;
3738
+ }
3734
3739
  startX = lastX = data[i + 1];
3735
3740
  startY = lastY = data[i + 2];
3736
3741
  i += 3;
@@ -3741,6 +3746,8 @@ const PathCorner = {
3741
3746
  } else {
3742
3747
  smooth.push(M, startX, startY);
3743
3748
  }
3749
+ startXIndex = smoothLen + 1;
3750
+ startYIndex = smoothLen + 2;
3744
3751
  break;
3745
3752
 
3746
3753
  case L$1:
@@ -3779,8 +3786,8 @@ const PathCorner = {
3779
3786
  lastCommand = command;
3780
3787
  }
3781
3788
  if (command !== Z) {
3782
- smooth[1] = startX;
3783
- smooth[2] = startY;
3789
+ smooth[startXIndex] = startX;
3790
+ smooth[startYIndex] = startY;
3784
3791
  }
3785
3792
  return smooth;
3786
3793
  }
@@ -6031,7 +6038,7 @@ const LeafDataProxy = {
6031
6038
 
6032
6039
  const {setLayout: setLayout, multiplyParent: multiplyParent$2, translateInner: translateInner, defaultWorld: defaultWorld} = MatrixHelper;
6033
6040
 
6034
- const {toPoint: toPoint$3, tempPoint: tempPoint$1} = AroundHelper;
6041
+ const {toPoint: toPoint$3, tempPoint: tempPoint$2} = AroundHelper;
6035
6042
 
6036
6043
  const LeafMatrix = {
6037
6044
  __updateWorldMatrix() {
@@ -6052,8 +6059,8 @@ const LeafMatrix = {
6052
6059
  local.e = data.x + data.offsetX;
6053
6060
  local.f = data.y + data.offsetY;
6054
6061
  if (data.around || data.origin) {
6055
- toPoint$3(data.around || data.origin, layout.boxBounds, tempPoint$1);
6056
- translateInner(local, -tempPoint$1.x, -tempPoint$1.y, !data.around);
6062
+ toPoint$3(data.around || data.origin, layout.boxBounds, tempPoint$2);
6063
+ translateInner(local, -tempPoint$2.x, -tempPoint$2.y, !data.around);
6057
6064
  }
6058
6065
  }
6059
6066
  this.__layout.matrixChanged = undefined;
@@ -6976,7 +6983,7 @@ class LeafLevelList {
6976
6983
  }
6977
6984
  }
6978
6985
 
6979
- const version = "2.1.5";
6986
+ const version = "2.1.7";
6980
6987
 
6981
6988
  class LeaferCanvas extends LeaferCanvasBase {
6982
6989
  get allowBackgroundColor() {
@@ -7792,7 +7799,7 @@ class Renderer {
7792
7799
 
7793
7800
  Renderer.clipSpread = 10;
7794
7801
 
7795
- const tempPoint = {};
7802
+ const tempPoint$1 = {};
7796
7803
 
7797
7804
  const {copyRadiusPoint: copyRadiusPoint$1} = PointHelper;
7798
7805
 
@@ -7927,7 +7934,7 @@ class Picker {
7927
7934
  for (let i = len - 1; i > -1; i--) {
7928
7935
  child = children[i], data = child.__;
7929
7936
  if (!data.visible || hitMask && !data.mask) continue;
7930
- hit = hitRadiusPoint$1(child.__world, data.hitRadius ? copyRadiusPoint$1(tempPoint, point, data.hitRadius) : point);
7937
+ hit = hitRadiusPoint$1(child.__world, data.hitRadius ? copyRadiusPoint$1(tempPoint$1, point, data.hitRadius) : point);
7931
7938
  if (child.isBranch) {
7932
7939
  if (hit || child.__ignoreHitWorld) {
7933
7940
  if (child.isBranchLeaf && data.__clipAfterFill && !child.__hitWorld(point, true)) continue;
@@ -8701,6 +8708,7 @@ let UI = UI_1 = class UI extends Leaf {
8701
8708
  this.set(keyframe);
8702
8709
  return Plugin.need("animate");
8703
8710
  }
8711
+ killAnimate(_type, _nextStyle) {}
8704
8712
  export(_filename, _options) {
8705
8713
  return Plugin.need("export");
8706
8714
  }
@@ -9460,32 +9468,53 @@ __decorate([ affectRenderBoundsType("hide") ], Frame.prototype, "overflow", void
9460
9468
 
9461
9469
  Frame = __decorate([ registerUI() ], Frame);
9462
9470
 
9463
- const {moveTo: moveTo$3, closePath: closePath$2, ellipse: ellipse} = PathCommandDataHelper;
9471
+ const {moveTo: moveTo$3, closePath: closePath$2, ellipse: ellipse} = PathCommandDataHelper, {tempPoint: tempPoint, set: set$1, rotate: rotate$2} = PointHelper, {abs: abs$3} = Math, tempCenter = {};
9464
9472
 
9465
9473
  let Ellipse = class Ellipse extends UI {
9466
9474
  get __tag() {
9467
9475
  return "Ellipse";
9468
9476
  }
9469
9477
  __updatePath() {
9470
- const data = this.__, {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = data;
9478
+ const data = this.__, {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle, closed: closed} = data;
9471
9479
  const rx = width / 2, ry = height / 2;
9472
9480
  const path = data.path = [];
9473
- let open;
9481
+ let open, hasAngle, closedAngle;
9482
+ if (startAngle || endAngle) hasAngle = true;
9483
+ if (hasAngle) closedAngle = abs$3(endAngle - startAngle) === 360;
9474
9484
  if (innerRadius) {
9475
- if (startAngle || endAngle) {
9476
- if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false); else open = true;
9477
- ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
9485
+ const drawInnerEllipse = innerRadius < 1 || closed;
9486
+ let outerStartAngle = startAngle, outerEndAngle = endAngle, outerAnticlockwise;
9487
+ if (hasAngle) {
9488
+ if (drawInnerEllipse) {
9489
+ ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle);
9490
+ if (closedAngle) {
9491
+ set$1(tempPoint, width, ry);
9492
+ set$1(tempCenter, rx, ry);
9493
+ rotate$2(tempPoint, endAngle, tempCenter, rx, ry);
9494
+ moveTo$3(path, tempPoint.x, tempPoint.y);
9495
+ }
9496
+ outerStartAngle = endAngle;
9497
+ outerEndAngle = startAngle;
9498
+ outerAnticlockwise = true;
9499
+ } else {
9500
+ if (!closedAngle) open = true;
9501
+ }
9478
9502
  } else {
9479
- if (innerRadius < 1) {
9503
+ if (drawInnerEllipse) {
9480
9504
  ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius);
9505
+ closePath$2(path);
9481
9506
  moveTo$3(path, width, ry);
9507
+ outerStartAngle = 360;
9508
+ outerAnticlockwise = true;
9509
+ } else {
9510
+ outerEndAngle = 360;
9482
9511
  }
9483
- ellipse(path, rx, ry, rx, ry, 0, 360, 0, true);
9484
9512
  }
9513
+ ellipse(path, rx, ry, rx, ry, 0, outerStartAngle, outerEndAngle, outerAnticlockwise);
9485
9514
  } else {
9486
- if (startAngle || endAngle) {
9487
- moveTo$3(path, rx, ry);
9488
- ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle, false);
9515
+ if (hasAngle) {
9516
+ if (!closedAngle) moveTo$3(path, rx, ry);
9517
+ ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle);
9489
9518
  } else {
9490
9519
  ellipse(path, rx, ry, rx, ry);
9491
9520
  }
@@ -11980,6 +12009,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
11980
12009
  if (data.__autoSide) {
11981
12010
  ui.forceUpdate("width");
11982
12011
  LeafHelper.updateBounds(ui);
12012
+ ui.__layout.boundsChanged = true;
11983
12013
  if (ui.__proxyData) {
11984
12014
  ui.setProxyAttr("width", data.width);
11985
12015
  ui.setProxyAttr("height", data.height);
@@ -11987,7 +12017,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
11987
12017
  needUpdate = false;
11988
12018
  }
11989
12019
  }
11990
- if (paint.mode === "brush") PaintImage.brush(leafPaint, ui, attrName);
12020
+ if (paint.mode === "brush") PaintImage.brush(ui, attrName, leafPaint);
11991
12021
  if (!leafPaint.data) {
11992
12022
  PaintImage.createData(leafPaint, image, paint, boxBounds);
11993
12023
  const {transform: transform} = leafPaint.data, {opacity: opacity} = paint;
@@ -12082,8 +12112,9 @@ function getPatternData(paint, box, image) {
12082
12112
  break;
12083
12113
 
12084
12114
  case "repeat":
12085
- case "brush":
12086
12115
  if (!sameBox || scaleX || rotation || skew) PaintImage.repeatMode(data, box, width, height, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, align, paint.freeTransform);
12116
+
12117
+ case "brush":
12087
12118
  if (!repeat) data.repeat = "repeat";
12088
12119
  const count = isObject(repeat);
12089
12120
  if (gap || count) data.gap = getGapData(gap, count && repeat, tempImage.width, tempImage.height, box);
@@ -12094,7 +12125,7 @@ function getPatternData(paint, box, image) {
12094
12125
  default:
12095
12126
  if (scaleX) PaintImage.fillOrFitMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
12096
12127
  }
12097
- if (!data.transform) {
12128
+ if (!data.transform && mode !== "brush") {
12098
12129
  if (box.x || box.y) translate$1(data.transform = get$3(), box.x, box.y);
12099
12130
  }
12100
12131
  if (scaleX) {
@@ -12223,8 +12254,9 @@ function createPattern(paint, ui, canvas, renderOptions) {
12223
12254
  let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
12224
12255
  if (paint.patternId !== id && !ui.destroyed) {
12225
12256
  if (!(Platform.image.isLarge(paint.image, scaleX, scaleY) && !paint.data.repeat)) {
12226
- const {image: image, brush: brush, data: data} = paint, {opacity: opacity} = paint.originPaint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
12227
- let imageMatrix, xGap, yGap, {width: width, height: height} = image;
12257
+ const {image: image, brush: brush, data: data} = paint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
12258
+ let imageMatrix, xGap, yGap, {width: width, height: height} = image, {opacity: opacity} = paint.originPaint;
12259
+ if (brush || opacity === 1) opacity = undefined;
12228
12260
  if (fixScale) scaleX *= fixScale, scaleY *= fixScale;
12229
12261
  width *= scaleX;
12230
12262
  height *= scaleY;
@@ -13263,4 +13295,4 @@ try {
13263
13295
  if (wx) useCanvas("miniapp", wx);
13264
13296
  } catch (_a) {}
13265
13297
 
13266
- export { AlignHelper, 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, FourNumberHelper, Frame, FrameData, Group, GroupData, 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, LeaferFilm, LeaferImage, LeaferVideo, 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, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, 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, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
13298
+ export { AlignHelper, 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, FourNumberHelper, Frame, FrameData, Group, GroupData, 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, LeaferFilm, LeaferImage, LeaferVideo, 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, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, 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, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$4 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };