@leafer-draw/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() {
@@ -8342,6 +8368,7 @@ let UI = UI_1 = class UI extends Leaf {
8342
8368
  createProxyData() {
8343
8369
  return undefined;
8344
8370
  }
8371
+ clearProxyData() {}
8345
8372
  find(_condition, _options) {
8346
8373
  return Plugin.need("find");
8347
8374
  }
@@ -8382,7 +8409,7 @@ let UI = UI_1 = class UI extends Leaf {
8382
8409
  __updateRenderPath(updateCache) {
8383
8410
  const data = this.__;
8384
8411
  if (data.path) {
8385
- data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
8412
+ data.__pathForRender = data.cornerRadius || data.path.radius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
8386
8413
  if (data.__useArrow) PathArrow.addArrows(this, updateCache);
8387
8414
  } else data.__pathForRender && (data.__pathForRender = undefined);
8388
8415
  }
@@ -9215,7 +9242,7 @@ let Ellipse = class Ellipse extends UI {
9215
9242
  }
9216
9243
  }
9217
9244
  if (!open) closePath$2(path);
9218
- if (Platform.ellipseToCurve || data.__useArrow) data.path = this.getPath(true);
9245
+ if (Platform.ellipseToCurve || data.__useArrow || data.cornerRadius) data.path = this.getPath(true);
9219
9246
  }
9220
9247
  };
9221
9248
 
@@ -9241,7 +9268,7 @@ let Polygon = class Polygon extends UI {
9241
9268
  const data = this.__;
9242
9269
  const path = data.path = [];
9243
9270
  if (data.points) {
9244
- drawPoints$1(path, data.points, data.curve, true);
9271
+ drawPoints$1(path, data.points, data.curve, data.closed);
9245
9272
  } else {
9246
9273
  const {width: width, height: height, sides: sides} = data;
9247
9274
  const rx = width / 2, ry = height / 2;
@@ -10093,17 +10120,19 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
10093
10120
  }
10094
10121
 
10095
10122
  function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds) {
10123
+ let needUpdate = true;
10096
10124
  const data = ui.__;
10097
10125
  if (attrName === "fill" && !data.__naturalWidth) {
10098
10126
  data.__naturalWidth = image.width / data.pixelRatio;
10099
10127
  data.__naturalHeight = image.height / data.pixelRatio;
10100
10128
  if (data.__autoSide) {
10101
10129
  ui.forceUpdate("width");
10130
+ LeafHelper.updateBounds(ui);
10102
10131
  if (ui.__proxyData) {
10103
10132
  ui.setProxyAttr("width", data.width);
10104
10133
  ui.setProxyAttr("height", data.height);
10105
10134
  }
10106
- return false;
10135
+ needUpdate = false;
10107
10136
  }
10108
10137
  }
10109
10138
  if (!leafPaint.data) {
@@ -10113,7 +10142,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
10113
10142
  if (clip || opacity && opacity < 1 || blendMode) leafPaint.complex = clip ? 2 : true;
10114
10143
  }
10115
10144
  if (paint.filter) PaintImage.applyFilter(leafPaint, image, paint.filter, ui);
10116
- return true;
10145
+ return needUpdate;
10117
10146
  }
10118
10147
 
10119
10148
  function onLoad(ui, event) {
@@ -10563,10 +10592,10 @@ const realFrom = {};
10563
10592
  const realTo = {};
10564
10593
 
10565
10594
  function conicGradient(paint, box) {
10566
- let {from: from, to: to, type: type, opacity: opacity, stretch: stretch} = paint;
10595
+ let {from: from, to: to, type: type, opacity: opacity, rotation: rotation, stretch: stretch} = paint;
10567
10596
  toPoint(from || "center", box, realFrom);
10568
10597
  toPoint(to || "bottom", box, realTo);
10569
- 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));
10598
+ 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));
10570
10599
  const data = {
10571
10600
  type: type,
10572
10601
  style: style