@leafer-draw/worker 1.0.0 → 1.0.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.
@@ -48,6 +48,8 @@ const I$1 = IncrementId;
48
48
  const { round, pow: pow$1, PI: PI$4 } = Math;
49
49
  const MathHelper = {
50
50
  within(value, min, max) {
51
+ if (typeof min === 'object')
52
+ max = min.max, min = min.min;
51
53
  if (min !== undefined && value < min)
52
54
  value = min;
53
55
  if (max !== undefined && value > max)
@@ -109,6 +111,19 @@ const MathHelper = {
109
111
  const a = maxLength ? pow$1(10, maxLength) : 1000000000000;
110
112
  num = round(num * a) / a;
111
113
  return num === -0 ? 0 : num;
114
+ },
115
+ getScaleData(scale, size, originSize, scaleData) {
116
+ if (!scaleData)
117
+ scaleData = {};
118
+ if (size) {
119
+ scaleData.scaleX = (typeof size === 'number' ? size : size.width) / originSize.width;
120
+ scaleData.scaleY = (typeof size === 'number' ? size : size.height) / originSize.height;
121
+ }
122
+ else if (scale) {
123
+ scaleData.scaleX = typeof scale === 'number' ? scale : scale.x;
124
+ scaleData.scaleY = typeof scale === 'number' ? scale : scale.y;
125
+ }
126
+ return scaleData;
112
127
  }
113
128
  };
114
129
  const OneRadian = PI$4 / 180;
@@ -150,10 +165,10 @@ const MatrixHelper = {
150
165
  t.e += x;
151
166
  t.f += y;
152
167
  },
153
- translateInner(t, x, y, isMoveOrigin) {
168
+ translateInner(t, x, y, hasOrigin) {
154
169
  t.e += t.a * x + t.c * y;
155
170
  t.f += t.b * x + t.d * y;
156
- if (isMoveOrigin)
171
+ if (hasOrigin)
157
172
  t.e -= x, t.f -= y;
158
173
  },
159
174
  scale(t, scaleX, scaleY = scaleX) {
@@ -312,7 +327,7 @@ const MatrixHelper = {
312
327
  to.y -= (f * a - e * b) * s;
313
328
  }
314
329
  },
315
- setLayout(t, layout, origin, bcChanged) {
330
+ setLayout(t, layout, origin, around, bcChanged) {
316
331
  const { x, y, scaleX, scaleY } = layout;
317
332
  if (bcChanged === undefined)
318
333
  bcChanged = layout.rotation || layout.skewX || layout.skewY;
@@ -344,10 +359,10 @@ const MatrixHelper = {
344
359
  }
345
360
  t.e = x;
346
361
  t.f = y;
347
- if (origin)
348
- M$6.translateInner(t, -origin.x, -origin.y, true);
362
+ if (origin = origin || around)
363
+ M$6.translateInner(t, -origin.x, -origin.y, !around);
349
364
  },
350
- getLayout(t, origin, firstSkewY) {
365
+ getLayout(t, origin, around, firstSkewY) {
351
366
  const { a, b, c, d, e, f } = t;
352
367
  let x = e, y = f, scaleX, scaleY, rotation, skewX, skewY;
353
368
  if (b || c) {
@@ -376,9 +391,11 @@ const MatrixHelper = {
376
391
  scaleY = d;
377
392
  rotation = skewX = skewY = 0;
378
393
  }
379
- if (origin) {
394
+ if (origin = around || origin) {
380
395
  x += origin.x * a + origin.y * c;
381
396
  y += origin.x * b + origin.y * d;
397
+ if (!around)
398
+ x -= origin.x, y -= origin.y;
382
399
  }
383
400
  return { x, y, scaleX, scaleY, rotation, skewX, skewY };
384
401
  },
@@ -405,7 +422,7 @@ const MatrixHelper = {
405
422
  };
406
423
  const M$6 = MatrixHelper;
407
424
 
408
- const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$2 } = MatrixHelper;
425
+ const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3 } = MatrixHelper;
409
426
  const { sin: sin$4, cos: cos$4, abs: abs$4, sqrt: sqrt$2, atan2: atan2$2, min: min$1, PI: PI$3 } = Math;
410
427
  const PointHelper = {
411
428
  defaultPoint: getPointData(),
@@ -461,7 +478,7 @@ const PointHelper = {
461
478
  tempToOuterOf(t, matrix) {
462
479
  const { tempPoint: temp } = P$5;
463
480
  copy$a(temp, t);
464
- toOuterPoint$2(matrix, temp, temp);
481
+ toOuterPoint$3(matrix, temp, temp);
465
482
  return temp;
466
483
  },
467
484
  tempToInnerRadiusPointOf(t, matrix) {
@@ -480,7 +497,7 @@ const PointHelper = {
480
497
  toInnerPoint$2(matrix, t, to);
481
498
  },
482
499
  toOuterOf(t, matrix, to) {
483
- toOuterPoint$2(matrix, t, to);
500
+ toOuterPoint$3(matrix, t, to);
484
501
  },
485
502
  getCenter(t, to) {
486
503
  return { x: t.x + (to.x - t.x) / 2, y: t.y + (to.y - t.y) / 2 };
@@ -706,12 +723,12 @@ class Matrix {
706
723
  toInnerPoint(outer, to, distance) {
707
724
  MatrixHelper.toInnerPoint(this, outer, to, distance);
708
725
  }
709
- setLayout(data, origin) {
710
- MatrixHelper.setLayout(this, data, origin);
726
+ setLayout(data, origin, around) {
727
+ MatrixHelper.setLayout(this, data, origin, around);
711
728
  return this;
712
729
  }
713
- getLayout(origin, firstSkewY) {
714
- return MatrixHelper.getLayout(this, origin, firstSkewY);
730
+ getLayout(origin, around, firstSkewY) {
731
+ return MatrixHelper.getLayout(this, origin, around, firstSkewY);
715
732
  }
716
733
  withScale(scaleX, scaleY) {
717
734
  return MatrixHelper.withScale(this, scaleX, scaleY);
@@ -760,7 +777,7 @@ const TwoPointBoundsHelper = {
760
777
  const { addPoint: addPoint$4 } = TwoPointBoundsHelper;
761
778
 
762
779
  const { tempPointBounds: tempPointBounds$1, setPoint: setPoint$3, addPoint: addPoint$3, toBounds: toBounds$4 } = TwoPointBoundsHelper;
763
- const { toOuterPoint: toOuterPoint$1 } = MatrixHelper;
780
+ const { toOuterPoint: toOuterPoint$2 } = MatrixHelper;
764
781
  const { float, fourNumber } = MathHelper;
765
782
  const { floor, ceil: ceil$2 } = Math;
766
783
  let right$1, bottom$1, boundsRight, boundsBottom;
@@ -780,17 +797,24 @@ const BoundsHelper = {
780
797
  t.width = bounds.width;
781
798
  t.height = bounds.height;
782
799
  },
783
- copyAndSpread(t, bounds, spread, isShrink) {
800
+ copyAndSpread(t, bounds, spread, isShrink, side) {
801
+ const { x, y, width, height } = bounds;
784
802
  if (spread instanceof Array) {
785
803
  const four = fourNumber(spread);
786
804
  isShrink
787
- ? B.set(t, bounds.x + four[3], bounds.y + four[0], bounds.width - four[1] - four[3], bounds.height - four[2] - four[0])
788
- : B.set(t, bounds.x - four[3], bounds.y - four[0], bounds.width + four[1] + four[3], bounds.height + four[2] + four[0]);
805
+ ? B.set(t, x + four[3], y + four[0], width - four[1] - four[3], height - four[2] - four[0])
806
+ : B.set(t, x - four[3], y - four[0], width + four[1] + four[3], height + four[2] + four[0]);
789
807
  }
790
808
  else {
791
809
  if (isShrink)
792
810
  spread = -spread;
793
- B.set(t, bounds.x - spread, bounds.y - spread, bounds.width + spread * 2, bounds.height + spread * 2);
811
+ B.set(t, x - spread, y - spread, width + spread * 2, height + spread * 2);
812
+ }
813
+ if (side) {
814
+ if (side === 'width')
815
+ t.y = y, t.height = height;
816
+ else
817
+ t.x = x, t.width = width;
794
818
  }
795
819
  },
796
820
  minX(t) { return t.width > 0 ? t.x : t.x + t.width; },
@@ -867,16 +891,16 @@ const BoundsHelper = {
867
891
  else {
868
892
  point.x = t.x;
869
893
  point.y = t.y;
870
- toOuterPoint$1(matrix, point, toPoint$5);
894
+ toOuterPoint$2(matrix, point, toPoint$5);
871
895
  setPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
872
896
  point.x = t.x + t.width;
873
- toOuterPoint$1(matrix, point, toPoint$5);
897
+ toOuterPoint$2(matrix, point, toPoint$5);
874
898
  addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
875
899
  point.y = t.y + t.height;
876
- toOuterPoint$1(matrix, point, toPoint$5);
900
+ toOuterPoint$2(matrix, point, toPoint$5);
877
901
  addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
878
902
  point.x = t.x;
879
- toOuterPoint$1(matrix, point, toPoint$5);
903
+ toOuterPoint$2(matrix, point, toPoint$5);
880
904
  addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
881
905
  toBounds$4(tempPointBounds$1, to);
882
906
  }
@@ -890,16 +914,16 @@ const BoundsHelper = {
890
914
  const scale = Math.min(baseScale, Math.min(t.width / put.width, t.height / put.height));
891
915
  return new Matrix(scale, 0, 0, scale, -put.x * scale, -put.y * scale);
892
916
  },
893
- getSpread(t, spread) {
917
+ getSpread(t, spread, side) {
894
918
  const n = {};
895
- B.copyAndSpread(n, t, spread);
919
+ B.copyAndSpread(n, t, spread, false, side);
896
920
  return n;
897
921
  },
898
- spread(t, spread) {
899
- B.copyAndSpread(t, t, spread);
922
+ spread(t, spread, side) {
923
+ B.copyAndSpread(t, t, spread, false, side);
900
924
  },
901
- shrink(t, shrink) {
902
- B.copyAndSpread(t, t, shrink, true);
925
+ shrink(t, shrink, side) {
926
+ B.copyAndSpread(t, t, shrink, true, side);
903
927
  },
904
928
  ceil(t) {
905
929
  const { x, y } = t;
@@ -1082,12 +1106,12 @@ class Bounds {
1082
1106
  getFitMatrix(put, baseScale) {
1083
1107
  return BoundsHelper.getFitMatrix(this, put, baseScale);
1084
1108
  }
1085
- spread(fourNumber) {
1086
- BoundsHelper.spread(this, fourNumber);
1109
+ spread(fourNumber, side) {
1110
+ BoundsHelper.spread(this, fourNumber, side);
1087
1111
  return this;
1088
1112
  }
1089
- shrink(fourNumber) {
1090
- BoundsHelper.shrink(this, fourNumber);
1113
+ shrink(fourNumber, side) {
1114
+ BoundsHelper.shrink(this, fourNumber, side);
1091
1115
  return this;
1092
1116
  }
1093
1117
  ceil() {
@@ -1999,7 +2023,7 @@ class LeaferCanvasBase extends Canvas$1 {
1999
2023
  DataHelper.copyAttrs(this.size, size, canvasSizeAttrs);
2000
2024
  this.size.pixelRatio || (this.size.pixelRatio = 1);
2001
2025
  this.bounds = new Bounds(0, 0, this.width, this.height);
2002
- if (!this.unreal) {
2026
+ if (this.context && !this.unreal) {
2003
2027
  this.updateViewSize();
2004
2028
  this.smooth = this.config.smooth;
2005
2029
  }
@@ -2172,7 +2196,7 @@ class LeaferCanvasBase extends Canvas$1 {
2172
2196
  this.manager ? this.manager.recycle(this) : this.destroy();
2173
2197
  }
2174
2198
  }
2175
- updateRender() { }
2199
+ updateRender(_bounds) { }
2176
2200
  unrealCanvas() { }
2177
2201
  destroy() {
2178
2202
  this.manager = this.view = this.parentView = null;
@@ -2904,60 +2928,75 @@ class PathCreator {
2904
2928
  }
2905
2929
  beginPath() {
2906
2930
  beginPath(this.__path);
2931
+ this.paint();
2907
2932
  return this;
2908
2933
  }
2909
2934
  moveTo(x, y) {
2910
2935
  moveTo$4(this.__path, x, y);
2936
+ this.paint();
2911
2937
  return this;
2912
2938
  }
2913
2939
  lineTo(x, y) {
2914
2940
  lineTo$3(this.__path, x, y);
2941
+ this.paint();
2915
2942
  return this;
2916
2943
  }
2917
2944
  bezierCurveTo(x1, y1, x2, y2, x, y) {
2918
2945
  bezierCurveTo(this.__path, x1, y1, x2, y2, x, y);
2946
+ this.paint();
2919
2947
  return this;
2920
2948
  }
2921
2949
  quadraticCurveTo(x1, y1, x, y) {
2922
2950
  quadraticCurveTo(this.__path, x1, y1, x, y);
2951
+ this.paint();
2923
2952
  return this;
2924
2953
  }
2925
2954
  closePath() {
2926
2955
  closePath$3(this.__path);
2956
+ this.paint();
2927
2957
  return this;
2928
2958
  }
2929
2959
  rect(x, y, width, height) {
2930
2960
  rect$1(this.__path, x, y, width, height);
2961
+ this.paint();
2931
2962
  return this;
2932
2963
  }
2933
2964
  roundRect(x, y, width, height, cornerRadius) {
2934
2965
  roundRect$1(this.__path, x, y, width, height, cornerRadius);
2966
+ this.paint();
2935
2967
  return this;
2936
2968
  }
2937
2969
  ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
2938
2970
  ellipse$2(this.__path, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
2971
+ this.paint();
2939
2972
  return this;
2940
2973
  }
2941
2974
  arc(x, y, radius, startAngle, endAngle, anticlockwise) {
2942
2975
  arc$1(this.__path, x, y, radius, startAngle, endAngle, anticlockwise);
2976
+ this.paint();
2943
2977
  return this;
2944
2978
  }
2945
2979
  arcTo(x1, y1, x2, y2, radius) {
2946
2980
  arcTo$2(this.__path, x1, y1, x2, y2, radius);
2981
+ this.paint();
2947
2982
  return this;
2948
2983
  }
2949
2984
  drawEllipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
2950
2985
  drawEllipse(this.__path, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
2986
+ this.paint();
2951
2987
  return this;
2952
2988
  }
2953
2989
  drawArc(x, y, radius, startAngle, endAngle, anticlockwise) {
2954
2990
  drawArc(this.__path, x, y, radius, startAngle, endAngle, anticlockwise);
2991
+ this.paint();
2955
2992
  return this;
2956
2993
  }
2957
2994
  drawPoints(points, curve, close) {
2958
2995
  drawPoints$2(this.__path, points, curve, close);
2996
+ this.paint();
2959
2997
  return this;
2960
2998
  }
2999
+ paint() { }
2961
3000
  }
2962
3001
 
2963
3002
  const { M: M$2, L: L$3, C: C$2, Q: Q$1, Z: Z$2, N: N$1, D: D$1, X: X$1, G: G$1, F: F$2, O: O$1, P: P$1, U: U$1 } = PathCommandMap;
@@ -3979,7 +4018,7 @@ function registerUIEvent() {
3979
4018
  };
3980
4019
  }
3981
4020
 
3982
- const { copy: copy$6, toInnerPoint: toInnerPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$2, divideParent, getLayout } = MatrixHelper;
4021
+ const { copy: copy$6, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$2, divideParent, getLayout } = MatrixHelper;
3983
4022
  const matrix = {};
3984
4023
  const LeafHelper = {
3985
4024
  updateAllMatrix(leaf, checkAutoLayout, waitAutoLayout) {
@@ -4044,10 +4083,9 @@ const LeafHelper = {
4044
4083
  }
4045
4084
  return true;
4046
4085
  },
4047
- moveWorld(t, x, y = 0) {
4086
+ moveWorld(t, x, y = 0, isInnerPoint) {
4048
4087
  const local = typeof x === 'object' ? Object.assign({}, x) : { x, y };
4049
- if (t.parent)
4050
- toInnerPoint$1(t.parent.worldTransform, local, local, true);
4088
+ isInnerPoint ? toOuterPoint$1(t.localTransform, local, local, true) : (t.parent && toInnerPoint$1(t.parent.worldTransform, local, local, true));
4051
4089
  L.moveLocal(t, local.x, local.y);
4052
4090
  },
4053
4091
  moveLocal(t, x, y = 0) {
@@ -4066,8 +4104,13 @@ const LeafHelper = {
4066
4104
  zoomOfLocal(t, origin, scaleX, scaleY = scaleX, resize) {
4067
4105
  copy$6(matrix, t.__localMatrix);
4068
4106
  scaleOfOuter$2(matrix, origin, scaleX, scaleY);
4069
- moveByMatrix(t, matrix);
4070
- t.scaleResize(scaleX, scaleY, resize !== true);
4107
+ if (t.origin || t.around) {
4108
+ L.setTransform(t, matrix, resize);
4109
+ }
4110
+ else {
4111
+ moveByMatrix(t, matrix);
4112
+ t.scaleResize(scaleX, scaleY, resize !== true);
4113
+ }
4071
4114
  },
4072
4115
  rotateOfWorld(t, origin, angle) {
4073
4116
  L.rotateOfLocal(t, getTempLocal(t, origin), angle);
@@ -4075,8 +4118,13 @@ const LeafHelper = {
4075
4118
  rotateOfLocal(t, origin, angle) {
4076
4119
  copy$6(matrix, t.__localMatrix);
4077
4120
  rotateOfOuter$2(matrix, origin, angle);
4078
- moveByMatrix(t, matrix);
4079
- t.rotation = MathHelper.formatRotation(t.rotation + angle);
4121
+ if (t.origin || t.around) {
4122
+ L.setTransform(t, matrix);
4123
+ }
4124
+ else {
4125
+ moveByMatrix(t, matrix);
4126
+ t.rotation = MathHelper.formatRotation(t.rotation + angle);
4127
+ }
4080
4128
  },
4081
4129
  skewOfWorld(t, origin, skewX, skewY, resize) {
4082
4130
  L.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize);
@@ -4099,7 +4147,7 @@ const LeafHelper = {
4099
4147
  L.setTransform(t, matrix, resize);
4100
4148
  },
4101
4149
  setTransform(t, transform, resize) {
4102
- const layout = getLayout(transform);
4150
+ const layout = getLayout(transform, t.origin && L.getInnerOrigin(t, t.origin), t.around && L.getInnerOrigin(t, t.around));
4103
4151
  if (resize) {
4104
4152
  const scaleX = layout.scaleX / t.scaleX;
4105
4153
  const scaleY = layout.scaleY / t.scaleY;
@@ -4112,13 +4160,19 @@ const LeafHelper = {
4112
4160
  t.set(layout);
4113
4161
  }
4114
4162
  },
4163
+ getFlipTransform(t, axis) {
4164
+ const m = getMatrixData();
4165
+ const sign = axis === 'x' ? 1 : -1;
4166
+ scaleOfOuter$2(m, L.getLocalOrigin(t, 'center'), -1 * sign, 1 * sign);
4167
+ return m;
4168
+ },
4115
4169
  getLocalOrigin(t, origin) {
4116
4170
  return PointHelper.tempToOuterOf(L.getInnerOrigin(t, origin), t.localTransform);
4117
4171
  },
4118
4172
  getInnerOrigin(t, origin) {
4119
- if (typeof origin === 'string')
4120
- AroundHelper.toPoint(origin, t.boxBounds, origin = {});
4121
- return origin;
4173
+ const innerOrigin = {};
4174
+ AroundHelper.toPoint(origin, t.boxBounds, innerOrigin);
4175
+ return innerOrigin;
4122
4176
  },
4123
4177
  getRelativeWorld(t, relative, temp) {
4124
4178
  copy$6(matrix, t.worldTransform);
@@ -4545,7 +4599,10 @@ const LeafEventer = {
4545
4599
  on(type, listener, options) {
4546
4600
  let capture, once;
4547
4601
  if (options) {
4548
- if (typeof options === 'boolean') {
4602
+ if (options === 'once') {
4603
+ once = true;
4604
+ }
4605
+ else if (typeof options === 'boolean') {
4549
4606
  capture = options;
4550
4607
  }
4551
4608
  else {
@@ -4576,7 +4633,7 @@ const LeafEventer = {
4576
4633
  if (listener) {
4577
4634
  let capture;
4578
4635
  if (options)
4579
- capture = typeof options === 'boolean' ? options : options.capture;
4636
+ capture = typeof options === 'boolean' ? options : (options === 'once' ? false : options.capture);
4580
4637
  let events, index;
4581
4638
  const map = __getListenerMap(this, capture);
4582
4639
  typeList.forEach(type => {
@@ -4878,7 +4935,7 @@ const LeafMatrix = {
4878
4935
  const layout = this.__layout, local = this.__local, data = this.__;
4879
4936
  if (layout.affectScaleOrRotation) {
4880
4937
  if (layout.scaleChanged || layout.rotationChanged) {
4881
- setLayout(local, data, null, layout.affectRotation);
4938
+ setLayout(local, data, null, null, layout.affectRotation);
4882
4939
  layout.scaleChanged = layout.rotationChanged = false;
4883
4940
  }
4884
4941
  }
@@ -4886,7 +4943,7 @@ const LeafMatrix = {
4886
4943
  local.f = data.y + data.offsetY;
4887
4944
  if (data.around || data.origin) {
4888
4945
  toPoint$3(data.around || data.origin, layout.boxBounds, tempPoint$1);
4889
- translateInner(local, -tempPoint$1.x, -tempPoint$1.y, data.origin);
4946
+ translateInner(local, -tempPoint$1.x, -tempPoint$1.y, !data.around);
4890
4947
  }
4891
4948
  }
4892
4949
  this.__layout.matrixChanged = false;
@@ -4895,7 +4952,7 @@ const LeafMatrix = {
4895
4952
 
4896
4953
  const { updateMatrix: updateMatrix$1, updateAllMatrix: updateAllMatrix$2 } = LeafHelper;
4897
4954
  const { updateBounds: updateBounds$1 } = BranchHelper;
4898
- const { toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$1, copy: copy$4 } = BoundsHelper;
4955
+ const { toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$2, copy: copy$4 } = BoundsHelper;
4899
4956
  const { toBounds: toBounds$2 } = PathBounds;
4900
4957
  const LeafBounds = {
4901
4958
  __updateWorldBounds() {
@@ -4996,7 +5053,7 @@ const LeafBounds = {
4996
5053
  updateAllMatrix$2(this);
4997
5054
  updateBounds$1(this, this);
4998
5055
  if (this.__.__autoSide)
4999
- this.__updateBoxBounds();
5056
+ this.__updateBoxBounds(true);
5000
5057
  }
5001
5058
  else {
5002
5059
  updateAllMatrix$2(this);
@@ -5014,11 +5071,11 @@ const LeafBounds = {
5014
5071
  },
5015
5072
  __updateStrokeBounds() {
5016
5073
  const layout = this.__layout;
5017
- copyAndSpread$1(layout.strokeBounds, layout.boxBounds, layout.strokeBoxSpread);
5074
+ copyAndSpread$2(layout.strokeBounds, layout.boxBounds, layout.strokeBoxSpread);
5018
5075
  },
5019
5076
  __updateRenderBounds() {
5020
5077
  const layout = this.__layout;
5021
- layout.renderSpread > 0 ? copyAndSpread$1(layout.renderBounds, layout.boxBounds, layout.renderSpread) : copy$4(layout.renderBounds, layout.strokeBounds);
5078
+ layout.renderSpread > 0 ? copyAndSpread$2(layout.renderBounds, layout.boxBounds, layout.renderSpread) : copy$4(layout.renderBounds, layout.strokeBounds);
5022
5079
  }
5023
5080
  };
5024
5081
 
@@ -5115,7 +5172,7 @@ const { LEAF, create } = IncrementId;
5115
5172
  const { toInnerPoint, toOuterPoint, multiplyParent } = MatrixHelper;
5116
5173
  const { toOuterOf } = BoundsHelper;
5117
5174
  const { copy: copy$3 } = PointHelper;
5118
- const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
5175
+ const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getFlipTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
5119
5176
  let Leaf = class Leaf {
5120
5177
  get tag() { return this.__tag; }
5121
5178
  set tag(_value) { }
@@ -5141,6 +5198,8 @@ let Leaf = class Leaf {
5141
5198
  get __ignoreHitWorld() { return (this.__hasMask || this.__hasEraser) && this.__.hitChildren; }
5142
5199
  get __inLazyBounds() { const { leafer } = this; return leafer && leafer.created && leafer.lazyBounds.hit(this.__world); }
5143
5200
  get pathInputed() { return this.__.__pathInputed; }
5201
+ set event(map) { let event; for (let key in map)
5202
+ event = map[key], event instanceof Array ? this.on(key, event[0], event[1]) : this.on(key, event); }
5144
5203
  constructor(data) {
5145
5204
  this.innerId = create(LEAF);
5146
5205
  this.reset(data);
@@ -5376,6 +5435,9 @@ let Leaf = class Leaf {
5376
5435
  move(x, y) {
5377
5436
  moveLocal(this, x, y);
5378
5437
  }
5438
+ moveInner(x, y) {
5439
+ moveWorld(this, x, y, true);
5440
+ }
5379
5441
  scaleOf(origin, scaleX, scaleY, resize) {
5380
5442
  zoomOfLocal(this, getLocalOrigin(this, origin), scaleX, scaleY, resize);
5381
5443
  }
@@ -5400,6 +5462,9 @@ let Leaf = class Leaf {
5400
5462
  skewOfWorld(worldOrigin, skewX, skewY, resize) {
5401
5463
  skewOfWorld(this, worldOrigin, skewX, skewY, resize);
5402
5464
  }
5465
+ flip(axis) {
5466
+ transform(this, getFlipTransform(this, axis));
5467
+ }
5403
5468
  scaleResize(scaleX, scaleY = scaleX, _noResize) {
5404
5469
  this.scaleX *= scaleX;
5405
5470
  this.scaleY *= scaleY;
@@ -5757,7 +5822,7 @@ class LeafLevelList {
5757
5822
  }
5758
5823
  }
5759
5824
 
5760
- const version = "1.0.0-rc.30";
5825
+ const version = "1.0.1";
5761
5826
  const inviteCode = {};
5762
5827
 
5763
5828
  class LeaferCanvas extends LeaferCanvasBase {
@@ -5827,7 +5892,7 @@ function useCanvas(_canvasType, _power) {
5827
5892
  Platform.name = 'web';
5828
5893
  Platform.isWorker = true;
5829
5894
  Platform.requestRender = function (render) { requestAnimationFrame(render); };
5830
- Platform.devicePixelRatio = 1;
5895
+ defineKey(Platform, 'devicePixelRatio', { get() { return 1; } });
5831
5896
  const { userAgent } = navigator;
5832
5897
  if (userAgent.indexOf("Firefox") > -1) {
5833
5898
  Platform.conicGradientRotate90 = true;
@@ -6323,14 +6388,14 @@ class Renderer {
6323
6388
  if (Debug.showRepaint)
6324
6389
  this.canvas.strokeWorld(bounds, 'red');
6325
6390
  this.target.__render(this.canvas, options);
6326
- this.renderBounds = realBounds || bounds;
6391
+ this.renderBounds = realBounds = realBounds || bounds;
6327
6392
  this.renderOptions = options;
6328
- this.totalBounds.isEmpty() ? this.totalBounds = this.renderBounds : this.totalBounds.add(this.renderBounds);
6393
+ this.totalBounds.isEmpty() ? this.totalBounds = realBounds : this.totalBounds.add(realBounds);
6329
6394
  if (Debug.showHitView)
6330
6395
  this.renderHitView(options);
6331
6396
  if (Debug.showBoundsView)
6332
6397
  this.renderBoundsView(options);
6333
- this.canvas.updateRender();
6398
+ this.canvas.updateRender(realBounds);
6334
6399
  }
6335
6400
  renderHitView(_options) { }
6336
6401
  renderBoundsView(_options) { }
@@ -6639,6 +6704,11 @@ class BoxData extends GroupData {
6639
6704
  }
6640
6705
 
6641
6706
  class LeaferData extends GroupData {
6707
+ __getInputData() {
6708
+ const data = super.__getInputData();
6709
+ canvasSizeAttrs.forEach(key => delete data[key]);
6710
+ return data;
6711
+ }
6642
6712
  }
6643
6713
 
6644
6714
  class FrameData extends BoxData {
@@ -6716,6 +6786,11 @@ class ImageData extends RectData {
6716
6786
  }
6717
6787
 
6718
6788
  class CanvasData extends RectData {
6789
+ __getInputData() {
6790
+ const data = super.__getInputData();
6791
+ data.url = this.__leaf.canvas.toDataURL('image/png');
6792
+ return data;
6793
+ }
6719
6794
  }
6720
6795
 
6721
6796
  const UIBounds = {
@@ -7381,7 +7456,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7381
7456
  this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
7382
7457
  if (this.isApp)
7383
7458
  this.__setApp();
7384
- this.__checkAutoLayout(config);
7459
+ this.__checkAutoLayout(config, parentApp);
7385
7460
  this.view = canvas.view;
7386
7461
  if (parentApp) {
7387
7462
  this.__bindApp(parentApp);
@@ -7482,9 +7557,10 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7482
7557
  this.leafer = leafer;
7483
7558
  this.__level = 1;
7484
7559
  }
7485
- __checkAutoLayout(config) {
7486
- if (!config.width || !config.height) {
7487
- this.autoLayout = new AutoBounds(config);
7560
+ __checkAutoLayout(config, parentApp) {
7561
+ if (!parentApp) {
7562
+ if (!config.width || !config.height)
7563
+ this.autoLayout = new AutoBounds(config);
7488
7564
  this.canvas.startAutoLayout(this.autoLayout, this.__onResize.bind(this));
7489
7565
  }
7490
7566
  }
@@ -7619,12 +7695,21 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7619
7695
  list.push(item);
7620
7696
  }
7621
7697
  }
7622
- zoom(_zoomType, _padding, _fixedScale) { return undefined; }
7698
+ zoom(_zoomType, _padding, _fixedScale) {
7699
+ return debug$1.error('need @leafer-in/view');
7700
+ }
7623
7701
  getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
7624
7702
  getValidScale(changeScale) { return changeScale; }
7625
7703
  getWorldPointByClient(clientPoint, updateClient) {
7626
7704
  return this.interaction && this.interaction.getLocal(clientPoint, updateClient);
7627
7705
  }
7706
+ getPagePointByClient(clientPoint, updateClient) {
7707
+ return this.getPagePoint(this.getWorldPointByClient(clientPoint, updateClient));
7708
+ }
7709
+ updateClientBounds() {
7710
+ this.canvas && this.canvas.updateClientBounds();
7711
+ }
7712
+ receiveEvent(_event) { }
7628
7713
  __checkUpdateLayout() {
7629
7714
  this.__layout.update();
7630
7715
  }
@@ -7708,7 +7793,7 @@ Rect = __decorate([
7708
7793
  const rect = Rect.prototype;
7709
7794
  const group = Group.prototype;
7710
7795
  const childrenRenderBounds = {};
7711
- const { copy: copy$2, add, includes: includes$1 } = BoundsHelper;
7796
+ const { copy: copy$2, add, includes: includes$1, copyAndSpread: copyAndSpread$1 } = BoundsHelper;
7712
7797
  let Box = class Box extends Group {
7713
7798
  get __tag() { return 'Box'; }
7714
7799
  get isBranchLeaf() { return true; }
@@ -7722,20 +7807,23 @@ let Box = class Box extends Group {
7722
7807
  return this.__updateRectRenderSpread() || -1;
7723
7808
  }
7724
7809
  __updateRectBoxBounds() { }
7725
- __updateBoxBounds() {
7810
+ __updateBoxBounds(secondLayout) {
7726
7811
  const data = this.__;
7727
7812
  if (this.children.length) {
7728
7813
  if (data.__autoSide) {
7729
7814
  if (this.leafer && this.leafer.ready)
7730
7815
  this.leafer.layouter.addExtra(this);
7731
7816
  super.__updateBoxBounds();
7817
+ const { boxBounds } = this.__layout;
7732
7818
  if (!data.__autoSize) {
7733
- const b = this.__layout.boxBounds;
7734
- if (!data.__autoWidth)
7735
- b.height += b.y, b.width = data.width, b.x = b.y = 0;
7736
- if (!data.__autoHeight)
7737
- b.width += b.x, b.height = data.height, b.y = b.x = 0;
7819
+ if (data.__autoWidth)
7820
+ boxBounds.width += boxBounds.x, boxBounds.height = data.height, boxBounds.y = boxBounds.x = 0;
7821
+ else
7822
+ boxBounds.height += boxBounds.y, boxBounds.width = data.width, boxBounds.x = boxBounds.y = 0;
7738
7823
  }
7824
+ if (secondLayout && data.flow && data.padding)
7825
+ copyAndSpread$1(boxBounds, boxBounds, data.padding, false, data.__autoSize ? null : (data.__autoWidth ? 'width' : 'height'));
7826
+ this.__updateNaturalSize();
7739
7827
  }
7740
7828
  else {
7741
7829
  this.__updateRectBoxBounds();
@@ -7755,13 +7843,13 @@ let Box = class Box extends Group {
7755
7843
  super.__updateRenderBounds();
7756
7844
  copy$2(childrenRenderBounds, renderBounds);
7757
7845
  this.__updateRectRenderBounds();
7758
- isOverflow = !includes$1(renderBounds, childrenRenderBounds) || undefined;
7846
+ isOverflow = !includes$1(renderBounds, childrenRenderBounds) || !this.pathInputed || !this.__.cornerRadius;
7759
7847
  }
7760
7848
  else {
7761
7849
  this.__updateRectRenderBounds();
7762
7850
  }
7763
7851
  this.isOverflow !== isOverflow && (this.isOverflow = isOverflow);
7764
- if (isOverflow && !(this.__.__drawAfterFill = this.__.overflow === 'hide'))
7852
+ if (!(this.__.__drawAfterFill = this.__.overflow === 'hide') && isOverflow)
7765
7853
  add(renderBounds, childrenRenderBounds);
7766
7854
  }
7767
7855
  __updateRectRenderBounds() { }
@@ -8095,14 +8183,26 @@ __decorate([
8095
8183
  Image = __decorate([
8096
8184
  registerUI()
8097
8185
  ], Image);
8186
+ const MyImage = Image;
8098
8187
 
8099
8188
  let Canvas = class Canvas extends Rect {
8100
8189
  get __tag() { return 'Canvas'; }
8190
+ get ready() { return !this.url; }
8101
8191
  constructor(data) {
8102
8192
  super(data);
8103
8193
  this.canvas = Creator.canvas(this.__);
8104
8194
  this.context = this.canvas.context;
8105
8195
  this.__.__isCanvas = this.__.__drawAfterFill = true;
8196
+ if (data && data.url)
8197
+ this.drawImage(data.url);
8198
+ }
8199
+ drawImage(url) {
8200
+ new LeaferImage({ url }).load((image) => {
8201
+ this.context.drawImage(image.view, 0, 0);
8202
+ this.url = undefined;
8203
+ this.paint();
8204
+ this.emitEvent(new ImageEvent(ImageEvent.LOADED, { image }));
8205
+ });
8106
8206
  }
8107
8207
  draw(ui, offset, scale, rotation) {
8108
8208
  ui.__layout.update();
@@ -8146,8 +8246,7 @@ let Canvas = class Canvas extends Rect {
8146
8246
  destroy() {
8147
8247
  if (this.canvas) {
8148
8248
  this.canvas.destroy();
8149
- this.canvas = null;
8150
- this.context = null;
8249
+ this.canvas = this.context = null;
8151
8250
  }
8152
8251
  super.destroy();
8153
8252
  }
@@ -8162,7 +8261,7 @@ __decorate([
8162
8261
  resizeType(100)
8163
8262
  ], Canvas.prototype, "height", void 0);
8164
8263
  __decorate([
8165
- resizeType(Platform.devicePixelRatio)
8264
+ resizeType(1)
8166
8265
  ], Canvas.prototype, "pixelRatio", void 0);
8167
8266
  __decorate([
8168
8267
  resizeType(true)
@@ -8186,13 +8285,13 @@ let Text = class Text extends UI {
8186
8285
  super(data);
8187
8286
  }
8188
8287
  __drawHitPath(canvas) {
8189
- const { __lineHeight, __baseLine, __textDrawData: data } = this.__;
8288
+ const { __lineHeight, fontSize, __baseLine, __textDrawData: data } = this.__;
8190
8289
  canvas.beginPath();
8191
8290
  if (this.__.__letterSpacing < 0) {
8192
8291
  this.__drawPathByData(canvas);
8193
8292
  }
8194
8293
  else {
8195
- data.rows.forEach(row => canvas.rect(row.x, row.y - __baseLine, row.width, __lineHeight));
8294
+ data.rows.forEach(row => canvas.rect(row.x, row.y - __baseLine, row.width, __lineHeight < fontSize ? fontSize : __lineHeight));
8196
8295
  }
8197
8296
  }
8198
8297
  __drawPathByData(drawer, _data) {
@@ -8385,7 +8484,8 @@ let Pen = class Pen extends Group {
8385
8484
  drawPoints(_points, _curve, _close) { return this; }
8386
8485
  clearPath() { return this; }
8387
8486
  paint() {
8388
- this.pathElement.forceUpdate('path');
8487
+ if (!this.pathElement.__layout.boxChanged)
8488
+ this.pathElement.forceUpdate('path');
8389
8489
  }
8390
8490
  };
8391
8491
  __decorate([
@@ -8395,7 +8495,7 @@ __decorate([
8395
8495
  penPathType()
8396
8496
  ], Pen.prototype, "path", void 0);
8397
8497
  Pen = __decorate([
8398
- useModule(PathCreator, ['set', 'beginPath', 'path']),
8498
+ useModule(PathCreator, ['set', 'beginPath', 'path', 'paint']),
8399
8499
  registerUI()
8400
8500
  ], Pen);
8401
8501
  function penPathType() {
@@ -8757,10 +8857,13 @@ function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, al
8757
8857
  const { get: get$2, translate } = MatrixHelper;
8758
8858
  const tempBox = new Bounds();
8759
8859
  const tempPoint = {};
8860
+ const tempScaleData = {};
8760
8861
  function createData(leafPaint, image, paint, box) {
8761
- const { blendMode } = paint;
8862
+ const { blendMode, sync } = paint;
8762
8863
  if (blendMode)
8763
8864
  leafPaint.blendMode = blendMode;
8865
+ if (sync)
8866
+ leafPaint.sync = sync;
8764
8867
  leafPaint.data = getPatternData(paint, box, image);
8765
8868
  }
8766
8869
  function getPatternData(paint, box, image) {
@@ -8780,13 +8883,10 @@ function getPatternData(paint, box, image) {
8780
8883
  x += (box.width - width * scaleX) / 2, y += (box.height - height * scaleY) / 2;
8781
8884
  }
8782
8885
  }
8783
- else if (size) {
8784
- scaleX = (typeof size === 'number' ? size : size.width) / width;
8785
- scaleY = (typeof size === 'number' ? size : size.height) / height;
8786
- }
8787
- else if (scale) {
8788
- scaleX = typeof scale === 'number' ? scale : scale.x;
8789
- scaleY = typeof scale === 'number' ? scale : scale.y;
8886
+ else if (scale || size) {
8887
+ MathHelper.getScaleData(scale, size, image, tempScaleData);
8888
+ scaleX = tempScaleData.scaleX;
8889
+ scaleY = tempScaleData.scaleY;
8790
8890
  }
8791
8891
  if (align) {
8792
8892
  const imageBounds = { x, y, width: swapWidth, height: swapHeight };
@@ -8991,7 +9091,7 @@ function createPattern(ui, paint, pixelRatio) {
8991
9091
  const { abs } = Math;
8992
9092
  function checkImage(ui, canvas, paint, allowPaint) {
8993
9093
  const { scaleX, scaleY } = ImageManager.patternLocked ? ui.__world : ui.__nowWorld;
8994
- if (!paint.data || paint.patternId === scaleX + '-' + scaleY) {
9094
+ if (!paint.data || (paint.patternId === scaleX + '-' + scaleY && !Export.running)) {
8995
9095
  return false;
8996
9096
  }
8997
9097
  else {
@@ -9025,7 +9125,7 @@ function checkImage(ui, canvas, paint, allowPaint) {
9025
9125
  return true;
9026
9126
  }
9027
9127
  else {
9028
- if (!paint.style || Export.running) {
9128
+ if (!paint.style || paint.sync || Export.running) {
9029
9129
  createPattern(ui, paint, canvas.pixelRatio);
9030
9130
  }
9031
9131
  else {
@@ -9895,6 +9995,7 @@ const ExportModule = {
9895
9995
  export(leaf, filename, options) {
9896
9996
  this.running = true;
9897
9997
  const fileType = FileHelper.fileType(filename);
9998
+ const isDownload = filename.includes('.');
9898
9999
  options = FileHelper.getExportOptions(options);
9899
10000
  return addTask((success) => new Promise((resolve) => {
9900
10001
  const over = (result) => {
@@ -9904,19 +10005,13 @@ const ExportModule = {
9904
10005
  };
9905
10006
  const { toURL } = Platform;
9906
10007
  const { download } = Platform.origin;
9907
- if (filename === 'json') {
9908
- return over({ data: leaf.toJSON(options.json) });
9909
- }
9910
- else if (fileType === 'json') {
9911
- download(toURL(JSON.stringify(leaf.toJSON(options.json)), 'text'), filename);
9912
- return over({ data: true });
10008
+ if (fileType === 'json') {
10009
+ isDownload && download(toURL(JSON.stringify(leaf.toJSON(options.json)), 'text'), filename);
10010
+ return over({ data: isDownload ? true : leaf.toJSON(options.json) });
9913
10011
  }
9914
- if (filename === 'svg') {
9915
- return over({ data: leaf.toSVG() });
9916
- }
9917
- else if (fileType === 'svg') {
9918
- download(toURL(leaf.toSVG(), 'svg'), filename);
9919
- return over({ data: true });
10012
+ if (fileType === 'svg') {
10013
+ isDownload && download(toURL(leaf.toSVG(), 'svg'), filename);
10014
+ return over({ data: isDownload ? true : leaf.toSVG() });
9920
10015
  }
9921
10016
  const { leafer } = leaf;
9922
10017
  if (leafer) {
@@ -9925,14 +10020,8 @@ const ExportModule = {
9925
10020
  let renderBounds, trimBounds, scaleX = 1, scaleY = 1;
9926
10021
  const { worldTransform, isLeafer, isFrame } = leaf;
9927
10022
  const { slice, trim, onCanvas } = options;
9928
- let scale = options.scale || 1;
9929
- let pixelRatio = options.pixelRatio || 1;
9930
10023
  const smooth = options.smooth === undefined ? leafer.config.smooth : options.smooth;
9931
10024
  const contextSettings = options.contextSettings || leafer.config.contextSettings;
9932
- if (leaf.isApp) {
9933
- scale *= pixelRatio;
9934
- pixelRatio = leaf.app.pixelRatio;
9935
- }
9936
10025
  const screenshot = options.screenshot || leaf.isApp;
9937
10026
  const fill = (isLeafer && screenshot) ? (options.fill === undefined ? leaf.fill : options.fill) : options.fill;
9938
10027
  const needFill = FileHelper.isOpaqueImage(filename) || fill, matrix = new Matrix();
@@ -9966,10 +10055,21 @@ const ExportModule = {
9966
10055
  }
9967
10056
  renderBounds = leaf.getBounds('render', relative);
9968
10057
  }
9969
- const { x, y, width, height } = new Bounds(renderBounds).scale(scale);
10058
+ const scaleData = { scaleX: 1, scaleY: 1 };
10059
+ MathHelper.getScaleData(options.scale, options.size, renderBounds, scaleData);
10060
+ let pixelRatio = options.pixelRatio || 1;
10061
+ if (leaf.isApp) {
10062
+ scaleData.scaleX *= pixelRatio;
10063
+ scaleData.scaleY *= pixelRatio;
10064
+ pixelRatio = leaf.app.pixelRatio;
10065
+ }
10066
+ const { x, y, width, height } = new Bounds(renderBounds).scale(scaleData.scaleX, scaleData.scaleY);
10067
+ const renderOptions = { matrix: matrix.scale(1 / scaleData.scaleX, 1 / scaleData.scaleY).invert().translate(-x, -y).withScale(1 / scaleX * scaleData.scaleX, 1 / scaleY * scaleData.scaleY) };
9970
10068
  let canvas = Creator.canvas({ width: Math.round(width), height: Math.round(height), pixelRatio, smooth, contextSettings });
9971
- const renderOptions = { matrix: matrix.scale(1 / scale).invert().translate(-x, -y).withScale(1 / scaleX * scale, 1 / scaleY * scale) };
10069
+ let sliceLeaf;
9972
10070
  if (slice) {
10071
+ sliceLeaf = leaf;
10072
+ sliceLeaf.__worldOpacity = 0;
9973
10073
  leaf = leafer;
9974
10074
  renderOptions.bounds = canvas.bounds;
9975
10075
  }
@@ -9984,6 +10084,8 @@ const ExportModule = {
9984
10084
  leaf.__render(canvas, renderOptions);
9985
10085
  }
9986
10086
  canvas.restore();
10087
+ if (sliceLeaf)
10088
+ sliceLeaf.__updateWorldOpacity();
9987
10089
  if (trim) {
9988
10090
  trimBounds = getTrimBounds(canvas);
9989
10091
  const old = canvas, { width, height } = trimBounds;
@@ -10068,4 +10170,4 @@ Object.assign(Export, ExportModule);
10068
10170
 
10069
10171
  useCanvas();
10070
10172
 
10071
- export { AlignHelper, AnimateEvent, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Export, FileHelper, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, arrowType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, inviteCode, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
10173
+ export { AlignHelper, AnimateEvent, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Export, FileHelper, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, arrowType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, inviteCode, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };