@leafer-ui/worker 2.0.5 → 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.
@@ -2896,6 +2896,32 @@ const BezierHelper = {
2896
2896
  getDerivative(t, fromV, v1, v2, toV) {
2897
2897
  const o = 1 - t;
2898
2898
  return 3 * o * o * (v1 - fromV) + 6 * o * t * (v2 - v1) + 3 * t * t * (toV - v2);
2899
+ },
2900
+ cut(t, fromX, fromY, x1, y1, x2, y2, toX, toY) {
2901
+ if (t <= 0) return {
2902
+ left: null,
2903
+ right: [ x1, y1, x2, y2, toX, toY ]
2904
+ }; else if (t >= 1) return {
2905
+ left: [ x1, y1, x2, y2, toX, toY ],
2906
+ right: null
2907
+ };
2908
+ const u = 1 - t;
2909
+ const leftX1 = fromX * u + x1 * t;
2910
+ const leftY1 = fromY * u + y1 * t;
2911
+ const P12x = x1 * u + x2 * t;
2912
+ const P12y = y1 * u + y2 * t;
2913
+ const rightX2 = x2 * u + toX * t;
2914
+ const rightY2 = y2 * u + toY * t;
2915
+ const leftX2 = leftX1 * u + P12x * t;
2916
+ const leftY2 = leftY1 * u + P12y * t;
2917
+ const rightX1 = P12x * u + rightX2 * t;
2918
+ const rightY1 = P12y * u + rightY2 * t;
2919
+ const leftX = leftX2 * u + rightX1 * t;
2920
+ const leftY = leftY2 * u + rightY1 * t;
2921
+ return {
2922
+ left: [ leftX1, leftY1, leftX2, leftY2, leftX, leftY ],
2923
+ right: [ rightX1, rightY1, rightX2, rightY2, toX, toY ]
2924
+ };
2899
2925
  }
2900
2926
  };
2901
2927
 
@@ -7053,7 +7079,7 @@ class LeafLevelList {
7053
7079
  }
7054
7080
  }
7055
7081
 
7056
- const version = "2.0.5";
7082
+ const version = "2.0.7";
7057
7083
 
7058
7084
  class LeaferCanvas extends LeaferCanvasBase {
7059
7085
  get allowBackgroundColor() {
@@ -8542,6 +8568,7 @@ let UI = UI_1 = class UI extends Leaf {
8542
8568
  createProxyData() {
8543
8569
  return undefined;
8544
8570
  }
8571
+ clearProxyData() {}
8545
8572
  find(_condition, _options) {
8546
8573
  return Plugin.need("find");
8547
8574
  }
@@ -8582,7 +8609,7 @@ let UI = UI_1 = class UI extends Leaf {
8582
8609
  __updateRenderPath(updateCache) {
8583
8610
  const data = this.__;
8584
8611
  if (data.path) {
8585
- data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
8612
+ data.__pathForRender = data.cornerRadius || data.path.radius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
8586
8613
  if (data.__useArrow) PathArrow.addArrows(this, updateCache);
8587
8614
  } else data.__pathForRender && (data.__pathForRender = undefined);
8588
8615
  }
@@ -9415,7 +9442,7 @@ let Ellipse = class Ellipse extends UI {
9415
9442
  }
9416
9443
  }
9417
9444
  if (!open) closePath$2(path);
9418
- if (Platform.ellipseToCurve || data.__useArrow) data.path = this.getPath(true);
9445
+ if (Platform.ellipseToCurve || data.__useArrow || data.cornerRadius) data.path = this.getPath(true);
9419
9446
  }
9420
9447
  };
9421
9448
 
@@ -9441,7 +9468,7 @@ let Polygon = class Polygon extends UI {
9441
9468
  const data = this.__;
9442
9469
  const path = data.path = [];
9443
9470
  if (data.points) {
9444
- drawPoints$1(path, data.points, data.curve, true);
9471
+ drawPoints$1(path, data.points, data.curve, data.closed);
9445
9472
  } else {
9446
9473
  const {width: width, height: height, sides: sides} = data;
9447
9474
  const rx = width / 2, ry = height / 2;
@@ -11809,17 +11836,19 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
11809
11836
  }
11810
11837
 
11811
11838
  function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds) {
11839
+ let needUpdate = true;
11812
11840
  const data = ui.__;
11813
11841
  if (attrName === "fill" && !data.__naturalWidth) {
11814
11842
  data.__naturalWidth = image.width / data.pixelRatio;
11815
11843
  data.__naturalHeight = image.height / data.pixelRatio;
11816
11844
  if (data.__autoSide) {
11817
11845
  ui.forceUpdate("width");
11846
+ LeafHelper.updateBounds(ui);
11818
11847
  if (ui.__proxyData) {
11819
11848
  ui.setProxyAttr("width", data.width);
11820
11849
  ui.setProxyAttr("height", data.height);
11821
11850
  }
11822
- return false;
11851
+ needUpdate = false;
11823
11852
  }
11824
11853
  }
11825
11854
  if (!leafPaint.data) {
@@ -11829,7 +11858,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
11829
11858
  if (clip || opacity && opacity < 1 || blendMode) leafPaint.complex = clip ? 2 : true;
11830
11859
  }
11831
11860
  if (paint.filter) PaintImage.applyFilter(leafPaint, image, paint.filter, ui);
11832
- return true;
11861
+ return needUpdate;
11833
11862
  }
11834
11863
 
11835
11864
  function onLoad(ui, event) {
@@ -12279,10 +12308,10 @@ const realFrom = {};
12279
12308
  const realTo = {};
12280
12309
 
12281
12310
  function conicGradient(paint, box) {
12282
- let {from: from, to: to, type: type, opacity: opacity, stretch: stretch} = paint;
12311
+ let {from: from, to: to, type: type, opacity: opacity, rotation: rotation, stretch: stretch} = paint;
12283
12312
  toPoint(from || "center", box, realFrom);
12284
12313
  toPoint(to || "bottom", box, realTo);
12285
- const style = Platform.conicGradientSupport ? Platform.canvas.createConicGradient(0, realFrom.x, realFrom.y) : Platform.canvas.createRadialGradient(realFrom.x, realFrom.y, 0, realFrom.x, realFrom.y, getDistance(realFrom, realTo));
12314
+ const style = Platform.conicGradientSupport ? Platform.canvas.createConicGradient(rotation ? rotation * OneRadian : 0, realFrom.x, realFrom.y) : Platform.canvas.createRadialGradient(realFrom.x, realFrom.y, 0, realFrom.x, realFrom.y, getDistance(realFrom, realTo));
12286
12315
  const data = {
12287
12316
  type: type,
12288
12317
  style: style