@leafer-draw/miniapp 1.12.1 → 1.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -461,7 +461,7 @@ function getMatrixData() {
461
461
 
462
462
  const {sin: sin$5, cos: cos$5, acos: acos, sqrt: sqrt$3} = Math;
463
463
 
464
- const {float: float$1} = MathHelper;
464
+ const {float: float$2} = MathHelper;
465
465
 
466
466
  const tempPoint$3 = {};
467
467
 
@@ -712,12 +712,12 @@ const MatrixHelper = {
712
712
  const cosR = c / scaleY;
713
713
  rotation = PI_2 - (d > 0 ? acos(-cosR) : -acos(cosR));
714
714
  }
715
- const cosR = float$1(cos$5(rotation));
715
+ const cosR = float$2(cos$5(rotation));
716
716
  const sinR = sin$5(rotation);
717
- scaleX = float$1(scaleX), scaleY = float$1(scaleY);
718
- skewX = cosR ? float$1((c / scaleY + sinR) / cosR / OneRadian, 9) : 0;
719
- skewY = cosR ? float$1((b / scaleX - sinR) / cosR / OneRadian, 9) : 0;
720
- rotation = float$1(rotation / OneRadian);
717
+ scaleX = float$2(scaleX), scaleY = float$2(scaleY);
718
+ skewX = cosR ? float$2((c / scaleY + sinR) / cosR / OneRadian, 9) : 0;
719
+ skewY = cosR ? float$2((b / scaleX - sinR) / cosR / OneRadian, 9) : 0;
720
+ rotation = float$2(rotation / OneRadian);
721
721
  } else {
722
722
  scaleX = a;
723
723
  scaleY = d;
@@ -761,6 +761,8 @@ const MatrixHelper = {
761
761
 
762
762
  const M$6 = MatrixHelper;
763
763
 
764
+ const {float: float$1} = MathHelper;
765
+
764
766
  const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
765
767
 
766
768
  const {sin: sin$4, cos: cos$4, abs: abs$4, sqrt: sqrt$2, atan2: atan2$2, min: min$1, round: round$2} = Math;
@@ -828,6 +830,11 @@ const PointHelper = {
828
830
  P$5.toInnerRadiusPointOf(t, matrix, temp);
829
831
  return temp;
830
832
  },
833
+ copyRadiusPoint(t, point, x, y) {
834
+ copy$9(t, point);
835
+ setRadius(t, x, y);
836
+ return t;
837
+ },
831
838
  toInnerRadiusPointOf(t, matrix, to) {
832
839
  to || (to = t);
833
840
  toInnerPoint$2(matrix, t, to);
@@ -895,7 +902,7 @@ const PointHelper = {
895
902
  return points;
896
903
  },
897
904
  isSame(t, point) {
898
- return t.x === point.x && t.y === point.y;
905
+ return float$1(t.x) === float$1(point.x) && float$1(t.y) === float$1(point.y);
899
906
  },
900
907
  reset(t) {
901
908
  P$5.reset(t);
@@ -904,7 +911,7 @@ const PointHelper = {
904
911
 
905
912
  const P$5 = PointHelper;
906
913
 
907
- const {getDistanceFrom: getDistanceFrom, copy: copy$9, getAtan2: getAtan2} = P$5;
914
+ const {getDistanceFrom: getDistanceFrom, copy: copy$9, setRadius: setRadius, getAtan2: getAtan2} = P$5;
908
915
 
909
916
  class Point {
910
917
  constructor(x, y) {
@@ -2407,7 +2414,7 @@ class LeaferCanvasBase extends Canvas$1 {
2407
2414
  const {pixelRatio: pixelRatio} = this;
2408
2415
  this.filter = `blur(${blur * pixelRatio}px)`;
2409
2416
  }
2410
- copyWorld(canvas, from, to, blendMode, ceilPixel = true) {
2417
+ copyWorld(canvas, from, to, blendMode, ceilPixel) {
2411
2418
  if (blendMode) this.blendMode = blendMode;
2412
2419
  if (from) {
2413
2420
  this.setTempPixelBounds(from, ceilPixel);
@@ -2418,7 +2425,7 @@ class LeaferCanvasBase extends Canvas$1 {
2418
2425
  }
2419
2426
  if (blendMode) this.blendMode = "source-over";
2420
2427
  }
2421
- copyWorldToInner(canvas, fromWorld, toInnerBounds, blendMode, ceilPixel = true) {
2428
+ copyWorldToInner(canvas, fromWorld, toInnerBounds, blendMode, ceilPixel) {
2422
2429
  if (fromWorld.b || fromWorld.c) {
2423
2430
  this.save();
2424
2431
  this.resetTransform();
@@ -2431,7 +2438,7 @@ class LeaferCanvasBase extends Canvas$1 {
2431
2438
  if (blendMode) this.blendMode = "source-over";
2432
2439
  }
2433
2440
  }
2434
- copyWorldByReset(canvas, from, to, blendMode, onlyResetTransform, ceilPixel = true) {
2441
+ copyWorldByReset(canvas, from, to, blendMode, onlyResetTransform, ceilPixel) {
2435
2442
  this.resetTransform();
2436
2443
  this.copyWorld(canvas, from, to, blendMode, ceilPixel);
2437
2444
  if (!onlyResetTransform) this.useWorldTransform();
@@ -2658,7 +2665,7 @@ const BezierHelper = {
2658
2665
  data.push(M$5, points[0], points[1]);
2659
2666
  if (curve && points.length > 5) {
2660
2667
  let aX, aY, bX, bY, cX, cY, c1X, c1Y, c2X, c2Y;
2661
- let ba, cb, d, len = points.length;
2668
+ let baX, baY, ba, cb, d, len = points.length;
2662
2669
  const t = curve === true ? .5 : curve;
2663
2670
  if (close) {
2664
2671
  points = [ points[len - 2], points[len - 1], ...points, points[0], points[1], points[2], points[3] ];
@@ -2671,7 +2678,9 @@ const BezierHelper = {
2671
2678
  bY = points[i + 1];
2672
2679
  cX = points[i + 2];
2673
2680
  cY = points[i + 3];
2674
- ba = sqrt$1(pow(bX - aX, 2) + pow(bY - aY, 2));
2681
+ baX = bX - aX;
2682
+ baY = bY - aY;
2683
+ ba = sqrt$1(pow(baX, 2) + pow(baY, 2));
2675
2684
  cb = sqrt$1(pow(cX - bX, 2) + pow(cY - bY, 2));
2676
2685
  if (!ba && !cb) continue;
2677
2686
  d = ba + cb;
@@ -2684,7 +2693,7 @@ const BezierHelper = {
2684
2693
  if (i === 2) {
2685
2694
  if (!close) data.push(Q$4, c1X, c1Y, bX, bY);
2686
2695
  } else {
2687
- data.push(C$4, c2X, c2Y, c1X, c1Y, bX, bY);
2696
+ if (baX || baY) data.push(C$4, c2X, c2Y, c1X, c1Y, bX, bY);
2688
2697
  }
2689
2698
  c2X = bX + cb * cX;
2690
2699
  c2Y = bY + cb * cY;
@@ -3269,6 +3278,7 @@ const PathCommandDataHelper = {
3269
3278
  }
3270
3279
  },
3271
3280
  ellipse(data, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
3281
+ if (radiusX === radiusY) return arc$2(data, x, y, radiusX, startAngle, endAngle, anticlockwise);
3272
3282
  if (isNull(rotation)) {
3273
3283
  data.push(F$3, x, y, radiusX, radiusY);
3274
3284
  } else {
@@ -3281,6 +3291,7 @@ const PathCommandDataHelper = {
3281
3291
  if (isNull(startAngle)) {
3282
3292
  data.push(P$2, x, y, radius);
3283
3293
  } else {
3294
+ if (isNull(startAngle)) startAngle = 0;
3284
3295
  if (isNull(endAngle)) endAngle = 360;
3285
3296
  data.push(O$2, x, y, radius, startAngle, endAngle, anticlockwise ? 1 : 0);
3286
3297
  }
@@ -3631,6 +3642,7 @@ const PathCorner = {
3631
3642
  smooth(data, cornerRadius, _cornerSmoothing) {
3632
3643
  let command, lastCommand, commandLen;
3633
3644
  let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
3645
+ if (isArray(cornerRadius)) cornerRadius = cornerRadius[0] || 0;
3634
3646
  const len = data.length;
3635
3647
  const smooth = [];
3636
3648
  while (i < len) {
@@ -4046,7 +4058,9 @@ const R = Resource;
4046
4058
  const ImageManager = {
4047
4059
  maxRecycled: 10,
4048
4060
  recycledList: [],
4049
- patternTasker: new TaskProcessor,
4061
+ patternTasker: new TaskProcessor({
4062
+ parallel: 1
4063
+ }),
4050
4064
  get(config) {
4051
4065
  let image = Resource.get(config.url);
4052
4066
  if (!image) Resource.set(config.url, image = Creator.image(config));
@@ -6923,7 +6937,7 @@ class LeafLevelList {
6923
6937
  }
6924
6938
  }
6925
6939
 
6926
- const version = "1.12.1";
6940
+ const version = "1.12.2";
6927
6941
 
6928
6942
  class LeaferCanvas extends LeaferCanvasBase {
6929
6943
  get allowBackgroundColor() {
@@ -8240,7 +8254,7 @@ const UIRender = {
8240
8254
  if (stroke && !__fillAfterStroke) data.__isStrokes ? Paint.strokes(stroke, this, canvas, options) : Paint.stroke(stroke, this, canvas, options);
8241
8255
  }
8242
8256
  } else {
8243
- if (data.__pathInputed) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
8257
+ if (data.__pathForRender) drawFast(this, canvas, options); else this.__drawFast(canvas, options);
8244
8258
  }
8245
8259
  },
8246
8260
  __drawShape(canvas, options) {
@@ -8364,7 +8378,7 @@ let UI = UI_1 = class UI extends Leaf {
8364
8378
  getPath(curve, pathForRender) {
8365
8379
  this.__layout.update();
8366
8380
  let path = pathForRender ? this.__.__pathForRender : this.__.path;
8367
- if (!path) pen.set(path = []), this.__drawPathByBox(pen);
8381
+ if (!path) pen.set(path = []), this.__drawPathByBox(pen, !pathForRender);
8368
8382
  return curve ? PathConvert.toCanvasData(path, true) : path;
8369
8383
  }
8370
8384
  getPathString(curve, pathForRender, floatLength) {
@@ -8392,17 +8406,18 @@ let UI = UI_1 = class UI extends Leaf {
8392
8406
  }
8393
8407
  __drawPath(canvas) {
8394
8408
  canvas.beginPath();
8395
- this.__drawPathByData(canvas, this.__.path);
8409
+ this.__drawPathByData(canvas, this.__.path, true);
8396
8410
  }
8397
- __drawPathByData(drawer, data) {
8398
- data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer);
8411
+ __drawPathByData(drawer, data, ignoreCornerRadius) {
8412
+ data ? PathDrawer.drawPathByData(drawer, data) : this.__drawPathByBox(drawer, ignoreCornerRadius);
8399
8413
  }
8400
- __drawPathByBox(drawer) {
8414
+ __drawPathByBox(drawer, ignoreCornerRadius) {
8401
8415
  const {x: x, y: y, width: width, height: height} = this.__layout.boxBounds;
8402
- if (this.__.cornerRadius) {
8416
+ if (this.__.cornerRadius && !ignoreCornerRadius) {
8403
8417
  const {cornerRadius: cornerRadius} = this.__;
8404
8418
  drawer.roundRect(x, y, width, height, isNumber(cornerRadius) ? [ cornerRadius ] : cornerRadius);
8405
8419
  } else drawer.rect(x, y, width, height);
8420
+ drawer.closePath();
8406
8421
  }
8407
8422
  drawImagePlaceholder(_paint, canvas, renderOptions) {
8408
8423
  Paint.fill(this.__.placeholderColor, this, canvas, renderOptions);
@@ -8671,6 +8686,9 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8671
8686
  get layoutLocked() {
8672
8687
  return !this.layouter.running;
8673
8688
  }
8689
+ get view() {
8690
+ return this.canvas && this.canvas.view;
8691
+ }
8674
8692
  get FPS() {
8675
8693
  return this.renderer ? this.renderer.FPS : 60;
8676
8694
  }
@@ -8722,7 +8740,6 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8722
8740
  this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
8723
8741
  if (this.isApp) this.__setApp();
8724
8742
  this.__checkAutoLayout();
8725
- this.view = canvas.view;
8726
8743
  if (!parentApp) {
8727
8744
  this.selector = Creator.selector(this);
8728
8745
  this.interaction = Creator.interaction(this, canvas, this.selector, config);
@@ -9002,7 +9019,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
9002
9019
  if (this.canvasManager) this.canvasManager.destroy();
9003
9020
  }
9004
9021
  if (this.canvas) this.canvas.destroy();
9005
- this.config.view = this.view = this.parentApp = null;
9022
+ this.config.view = this.parentApp = null;
9006
9023
  if (this.userConfig) this.userConfig.view = null;
9007
9024
  super.destroy();
9008
9025
  setTimeout(() => {
@@ -9186,7 +9203,6 @@ let Ellipse = class Ellipse extends UI {
9186
9203
  if (startAngle || endAngle) {
9187
9204
  if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
9188
9205
  ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
9189
- if (innerRadius < 1) closePath$2(path);
9190
9206
  } else {
9191
9207
  if (innerRadius < 1) {
9192
9208
  ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius);
@@ -9194,16 +9210,16 @@ let Ellipse = class Ellipse extends UI {
9194
9210
  }
9195
9211
  ellipse(path, rx, ry, rx, ry, 0, 360, 0, true);
9196
9212
  }
9197
- if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
9198
9213
  } else {
9199
9214
  if (startAngle || endAngle) {
9200
9215
  moveTo$3(path, rx, ry);
9201
9216
  ellipse(path, rx, ry, rx, ry, 0, startAngle, endAngle, false);
9202
- closePath$2(path);
9203
9217
  } else {
9204
9218
  ellipse(path, rx, ry, rx, ry);
9205
9219
  }
9206
9220
  }
9221
+ closePath$2(path);
9222
+ if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
9207
9223
  }
9208
9224
  };
9209
9225
 
@@ -10304,10 +10320,12 @@ const {getFloorScale: getFloorScale} = MathHelper, {abs: abs$1} = Math;
10304
10320
  function createPatternTask(paint, ui, canvas, renderOptions) {
10305
10321
  if (!paint.patternTask) {
10306
10322
  paint.patternTask = ImageManager.patternTasker.add(() => __awaiter(this, void 0, void 0, function*() {
10307
- paint.patternTask = null;
10308
- if (canvas.bounds.hit(ui.__nowWorld)) PaintImage.createPattern(paint, ui, canvas, renderOptions);
10323
+ PaintImage.createPattern(paint, ui, canvas, renderOptions);
10309
10324
  ui.forceUpdate("surface");
10310
- }), 300);
10325
+ }), 0, () => {
10326
+ paint.patternTask = null;
10327
+ return canvas.bounds.hit(ui.__nowWorld);
10328
+ });
10311
10329
  }
10312
10330
  }
10313
10331