@leafer-draw/miniapp 1.12.3 → 2.0.0

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.
@@ -216,57 +216,6 @@ class LeafData {
216
216
  }
217
217
  }
218
218
 
219
- const {floor: floor$2, max: max$4} = Math;
220
-
221
- const Platform = {
222
- toURL(text, fileType) {
223
- let url = encodeURIComponent(text);
224
- if (fileType === "text") url = "data:text/plain;charset=utf-8," + url; else if (fileType === "svg") url = "data:image/svg+xml," + url;
225
- return url;
226
- },
227
- image: {
228
- hitCanvasSize: 100,
229
- maxCacheSize: 2560 * 1600,
230
- maxPatternSize: 4096 * 2160,
231
- crossOrigin: "anonymous",
232
- isLarge(size, scaleX, scaleY, largeSize) {
233
- return size.width * size.height * (scaleX ? scaleX * scaleY : 1) > (largeSize || image$1.maxCacheSize);
234
- },
235
- isSuperLarge(size, scaleX, scaleY) {
236
- return image$1.isLarge(size, scaleX, scaleY, image$1.maxPatternSize);
237
- },
238
- getRealURL(url) {
239
- const {prefix: prefix, suffix: suffix} = Platform.image;
240
- if (suffix && !url.startsWith("data:") && !url.startsWith("blob:")) url += (url.includes("?") ? "&" : "?") + suffix;
241
- if (prefix && url[0] === "/") url = prefix + url;
242
- return url;
243
- },
244
- resize(image, width, height, xGap, yGap, clip, smooth, opacity, _filters) {
245
- const canvas = Platform.origin.createCanvas(max$4(floor$2(width + (xGap || 0)), 1), max$4(floor$2(height + (yGap || 0)), 1));
246
- const ctx = canvas.getContext("2d");
247
- if (opacity) ctx.globalAlpha = opacity;
248
- ctx.imageSmoothingEnabled = smooth === false ? false : true;
249
- if (clip) {
250
- const scaleX = width / clip.width, scaleY = height / clip.height;
251
- ctx.setTransform(scaleX, 0, 0, scaleY, -clip.x * scaleX, -clip.y * scaleY);
252
- ctx.drawImage(image, 0, 0, image.width, image.height);
253
- } else ctx.drawImage(image, 0, 0, width, height);
254
- return canvas;
255
- },
256
- setPatternTransform(pattern, transform, paint) {
257
- try {
258
- if (transform && pattern.setTransform) {
259
- pattern.setTransform(transform);
260
- transform = undefined;
261
- }
262
- } catch (_a) {}
263
- if (paint) DataHelper.stintSet(paint, "transform", transform);
264
- }
265
- }
266
- };
267
-
268
- const {image: image$1} = Platform;
269
-
270
219
  const IncrementId = {
271
220
  RUNTIME: "runtime",
272
221
  LEAF: "leaf",
@@ -289,7 +238,7 @@ const I$1 = IncrementId;
289
238
 
290
239
  let tempA, tempB, tempTo;
291
240
 
292
- const {max: max$3} = Math, tempFour = [ 0, 0, 0, 0 ];
241
+ const {max: max$4} = Math, tempFour = [ 0, 0, 0, 0 ];
293
242
 
294
243
  const FourNumberHelper = {
295
244
  zero: [ ...tempFour ],
@@ -341,9 +290,9 @@ const FourNumberHelper = {
341
290
  return data;
342
291
  },
343
292
  max(t, other, change) {
344
- if (isNumber(t) && isNumber(other)) return max$3(t, other);
293
+ if (isNumber(t) && isNumber(other)) return max$4(t, other);
345
294
  toTempAB(t, other, change);
346
- return set$2(tempTo, max$3(tempA[0], tempB[0]), max$3(tempA[1], tempB[1]), max$3(tempA[2], tempB[2]), max$3(tempA[3], tempB[3]));
295
+ return set$2(tempTo, max$4(tempA[0], tempB[0]), max$4(tempA[1], tempB[1]), max$4(tempA[2], tempB[2]), max$4(tempA[3], tempB[3]));
347
296
  },
348
297
  add(t, other, change) {
349
298
  if (isNumber(t) && isNumber(other)) return t + other;
@@ -360,7 +309,7 @@ const FourNumberHelper = {
360
309
 
361
310
  const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
362
311
 
363
- const {round: round$3, pow: pow$1, max: max$2, floor: floor$1, PI: PI$3} = Math;
312
+ const {round: round$3, pow: pow$1, max: max$3, floor: floor$2, PI: PI$3} = Math;
364
313
 
365
314
  const MathHelper = {
366
315
  within(value, min, max) {
@@ -414,7 +363,7 @@ const MathHelper = {
414
363
  }
415
364
  },
416
365
  getFloorScale(num, min = 1) {
417
- return max$2(floor$1(num), min) / num;
366
+ return max$3(floor$2(num), min) / num;
418
367
  },
419
368
  randInt: randInt,
420
369
  randColor(opacity) {
@@ -1259,7 +1208,7 @@ const {toOuterPoint: toOuterPoint$2} = MatrixHelper;
1259
1208
 
1260
1209
  const {float: float, fourNumber: fourNumber} = MathHelper;
1261
1210
 
1262
- const {floor: floor, ceil: ceil$1} = Math;
1211
+ const {floor: floor$1, ceil: ceil$1} = Math;
1263
1212
 
1264
1213
  let right$1, bottom$1, boundsRight, boundsBottom;
1265
1214
 
@@ -1416,8 +1365,8 @@ const BoundsHelper = {
1416
1365
  },
1417
1366
  ceil(t) {
1418
1367
  const {x: x, y: y} = t;
1419
- t.x = floor(t.x);
1420
- t.y = floor(t.y);
1368
+ t.x = floor$1(t.x);
1369
+ t.y = floor$1(t.y);
1421
1370
  t.width = x > t.x ? ceil$1(t.width + x - t.x) : ceil$1(t.width);
1422
1371
  t.height = y > t.y ? ceil$1(t.height + y - t.y) : ceil$1(t.height);
1423
1372
  },
@@ -1549,6 +1498,9 @@ const BoundsHelper = {
1549
1498
  isEmpty(t) {
1550
1499
  return t.x === 0 && t.y === 0 && t.width === 0 && t.height === 0;
1551
1500
  },
1501
+ hasSize(t) {
1502
+ return t.width && t.height;
1503
+ },
1552
1504
  reset(t) {
1553
1505
  B.set(t);
1554
1506
  }
@@ -1725,6 +1677,12 @@ class AutoBounds {
1725
1677
  }
1726
1678
  }
1727
1679
 
1680
+ const UnitConvertHelper = {
1681
+ number(value, percentRefer) {
1682
+ return isObject(value) ? value.type === "percent" ? value.value * percentRefer : value.value : value;
1683
+ }
1684
+ };
1685
+
1728
1686
  const StringNumberMap = {
1729
1687
  0: 1,
1730
1688
  1: 1,
@@ -1741,6 +1699,69 @@ const StringNumberMap = {
1741
1699
  E: 1
1742
1700
  };
1743
1701
 
1702
+ const {floor: floor, max: max$2} = Math;
1703
+
1704
+ const Platform = {
1705
+ toURL(text, fileType) {
1706
+ let url = encodeURIComponent(text);
1707
+ if (fileType === "text") url = "data:text/plain;charset=utf-8," + url; else if (fileType === "svg") url = "data:image/svg+xml," + url;
1708
+ return url;
1709
+ },
1710
+ image: {
1711
+ hitCanvasSize: 100,
1712
+ maxCacheSize: 2560 * 1600,
1713
+ maxPatternSize: 4096 * 2160,
1714
+ crossOrigin: "anonymous",
1715
+ isLarge(size, scaleX, scaleY, largeSize) {
1716
+ return size.width * size.height * (scaleX ? scaleX * scaleY : 1) > (largeSize || image$1.maxCacheSize);
1717
+ },
1718
+ isSuperLarge(size, scaleX, scaleY) {
1719
+ return image$1.isLarge(size, scaleX, scaleY, image$1.maxPatternSize);
1720
+ },
1721
+ getRealURL(url) {
1722
+ const {prefix: prefix, suffix: suffix} = image$1;
1723
+ if (suffix && !url.startsWith("data:") && !url.startsWith("blob:")) url += (url.includes("?") ? "&" : "?") + suffix;
1724
+ if (prefix && url[0] === "/") url = prefix + url;
1725
+ return url;
1726
+ },
1727
+ resize(view, width, height, xGap, yGap, clip, smooth, opacity, _filters, interlace) {
1728
+ const realWidth = max$2(floor(width + (xGap || 0)), 1), realHeight = max$2(floor(height + (yGap || 0)), 1);
1729
+ let interlaceX, interlaceY, interlaceOffset;
1730
+ if (interlace && (interlaceOffset = UnitConvertHelper.number(interlace.offset, (interlaceX = interlace.type === "x") ? width : height))) interlaceX || (interlaceY = true);
1731
+ const canvas = Platform.origin.createCanvas(interlaceY ? realWidth * 2 : realWidth, interlaceX ? realHeight * 2 : realHeight);
1732
+ const ctx = canvas.getContext("2d");
1733
+ if (opacity) ctx.globalAlpha = opacity;
1734
+ ctx.imageSmoothingEnabled = smooth === false ? false : true;
1735
+ if (image$1.canUse(view)) {
1736
+ if (clip) {
1737
+ const scaleX = width / clip.width, scaleY = height / clip.height;
1738
+ ctx.setTransform(scaleX, 0, 0, scaleY, -clip.x * scaleX, -clip.y * scaleY);
1739
+ ctx.drawImage(view, 0, 0, view.width, view.height);
1740
+ } else ctx.drawImage(view, 0, 0, width, height);
1741
+ if (interlaceOffset) {
1742
+ ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset - realWidth : realWidth, interlaceX ? realHeight : interlaceOffset - realHeight, realWidth, realHeight);
1743
+ ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset : realWidth, interlaceX ? realHeight : interlaceOffset, realWidth, realHeight);
1744
+ }
1745
+ }
1746
+ return canvas;
1747
+ },
1748
+ canUse(view) {
1749
+ return view && view.width && !view.__closed;
1750
+ },
1751
+ setPatternTransform(pattern, transform, paint) {
1752
+ try {
1753
+ if (transform && pattern.setTransform) {
1754
+ pattern.setTransform(transform);
1755
+ transform = undefined;
1756
+ }
1757
+ } catch (_a) {}
1758
+ if (paint) DataHelper.stintSet(paint, "transform", transform);
1759
+ }
1760
+ }
1761
+ };
1762
+
1763
+ const {image: image$1} = Platform;
1764
+
1744
1765
  const {randColor: randColor} = MathHelper;
1745
1766
 
1746
1767
  class Debug {
@@ -3783,9 +3804,10 @@ class TaskItem {
3783
3804
  run() {
3784
3805
  return __awaiter(this, void 0, void 0, function*() {
3785
3806
  try {
3786
- if (this.isComplete) return;
3807
+ if (this.isComplete || this.runing) return;
3808
+ this.runing = true;
3787
3809
  if (this.canUse && !this.canUse()) return this.cancel();
3788
- if (this.task && this.parent.running) yield this.task();
3810
+ if (this.task) yield this.task();
3789
3811
  } catch (error) {
3790
3812
  debug$8.error(error);
3791
3813
  }
@@ -3901,7 +3923,7 @@ class TaskProcessor {
3901
3923
  stop() {
3902
3924
  this.isComplete = true;
3903
3925
  this.list.forEach(task => {
3904
- if (!task.isComplete) task.cancel();
3926
+ if (!task.isComplete) task.run();
3905
3927
  });
3906
3928
  this.pause();
3907
3929
  this.empty();
@@ -4191,7 +4213,7 @@ class LeaferImage {
4191
4213
  getFull(_filters) {
4192
4214
  return this.view;
4193
4215
  }
4194
- getCanvas(width, height, opacity, filters, xGap, yGap, smooth) {
4216
+ getCanvas(width, height, opacity, filters, xGap, yGap, smooth, interlace) {
4195
4217
  width || (width = this.width);
4196
4218
  height || (height = this.height);
4197
4219
  if (this.cache) {
@@ -4204,7 +4226,7 @@ class LeaferImage {
4204
4226
  }
4205
4227
  if (data) return data;
4206
4228
  }
4207
- const canvas = Platform.image.resize(this.view, width, height, xGap, yGap, undefined, smooth, opacity, filters);
4229
+ const canvas = Platform.image.resize(this.view, width, height, xGap, yGap, undefined, smooth, opacity, filters, interlace);
4208
4230
  this.cache = this.use > 1 ? {
4209
4231
  data: canvas,
4210
4232
  params: arguments
@@ -4220,13 +4242,13 @@ class LeaferImage {
4220
4242
  return this.url;
4221
4243
  }
4222
4244
  setThumbView(_view) {}
4223
- getThumbSize() {
4245
+ getThumbSize(_lod) {
4224
4246
  return undefined;
4225
4247
  }
4226
4248
  getMinLevel() {
4227
4249
  return undefined;
4228
4250
  }
4229
- getLevelData(_level) {
4251
+ getLevelData(_level, _width, _height) {
4230
4252
  return undefined;
4231
4253
  }
4232
4254
  clearLevels(_checkUse) {}
@@ -6096,7 +6118,7 @@ const LeafRender = {
6096
6118
  }
6097
6119
  };
6098
6120
 
6099
- const {excludeRenderBounds: excludeRenderBounds$1} = LeafBoundsHelper;
6121
+ const {excludeRenderBounds: excludeRenderBounds$1} = LeafBoundsHelper, {hasSize: hasSize} = BoundsHelper;
6100
6122
 
6101
6123
  const BranchRender = {
6102
6124
  __updateChange() {
@@ -6108,8 +6130,8 @@ const BranchRender = {
6108
6130
  this.__.__checkSingle();
6109
6131
  },
6110
6132
  __render(canvas, options) {
6111
- this.__nowWorld = this.__getNowWorld(options);
6112
- if (this.__worldOpacity) {
6133
+ const nowWorld = this.__nowWorld = this.__getNowWorld(options);
6134
+ if (this.__worldOpacity && hasSize(nowWorld)) {
6113
6135
  const data = this.__;
6114
6136
  if (data.__useDim) {
6115
6137
  if (data.dim) options.dimOpacity = data.dim === true ? .2 : data.dim; else if (data.bright && !options.topRendering) return options.topList.add(this); else if (data.dimskip) options.dimOpacity && (options.dimOpacity = 0);
@@ -6118,7 +6140,6 @@ const BranchRender = {
6118
6140
  if (data.eraser === "path") return this.__renderEraser(canvas, options);
6119
6141
  const tempCanvas = canvas.getSameCanvas(false, true);
6120
6142
  this.__renderBranch(tempCanvas, options);
6121
- const nowWorld = this.__nowWorld;
6122
6143
  canvas.opacity = options.dimOpacity ? data.opacity * options.dimOpacity : data.opacity;
6123
6144
  canvas.copyWorldByReset(tempCanvas, nowWorld, nowWorld, data.__blendMode, true);
6124
6145
  tempCanvas.recycle(nowWorld);
@@ -6958,7 +6979,7 @@ class LeafLevelList {
6958
6979
  }
6959
6980
  }
6960
6981
 
6961
- const version = "1.12.3";
6982
+ const version = "2.0.0";
6962
6983
 
6963
6984
  class LeaferCanvas extends LeaferCanvasBase {
6964
6985
  get allowBackgroundColor() {
@@ -7538,6 +7559,7 @@ class Renderer {
7538
7559
  this.times = 0;
7539
7560
  this.config = {
7540
7561
  usePartRender: true,
7562
+ ceilPartPixel: true,
7541
7563
  maxFPS: 120
7542
7564
  };
7543
7565
  this.frames = [];
@@ -7646,8 +7668,9 @@ class Renderer {
7646
7668
  const {canvas: canvas} = this, bounds = block.getIntersect(canvas.bounds), realBounds = new Bounds(bounds);
7647
7669
  canvas.save();
7648
7670
  bounds.spread(Renderer.clipSpread).ceil();
7649
- canvas.clearWorld(bounds);
7650
- canvas.clipWorld(bounds);
7671
+ const {ceilPartPixel: ceilPartPixel} = this.config;
7672
+ canvas.clipWorld(bounds, ceilPartPixel);
7673
+ canvas.clearWorld(bounds, ceilPartPixel);
7651
7674
  this.__render(bounds, realBounds);
7652
7675
  canvas.restore();
7653
7676
  Run.end(t);
@@ -7846,11 +7869,7 @@ const ColorConvert = {
7846
7869
  hasTransparent: hasTransparent$3
7847
7870
  };
7848
7871
 
7849
- const UnitConvert = {
7850
- number(value, percentRefer) {
7851
- return isObject(value) ? value.type === "percent" ? value.value * percentRefer : value.value : value;
7852
- }
7853
- };
7872
+ const UnitConvert = UnitConvertHelper;
7854
7873
 
7855
7874
  const PathArrow = {};
7856
7875
 
@@ -9220,9 +9239,10 @@ let Ellipse = class Ellipse extends UI {
9220
9239
  const {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = this.__;
9221
9240
  const rx = width / 2, ry = height / 2;
9222
9241
  const path = this.__.path = [];
9242
+ let open;
9223
9243
  if (innerRadius) {
9224
9244
  if (startAngle || endAngle) {
9225
- if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
9245
+ if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false); else open = true;
9226
9246
  ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
9227
9247
  } else {
9228
9248
  if (innerRadius < 1) {
@@ -9239,7 +9259,7 @@ let Ellipse = class Ellipse extends UI {
9239
9259
  ellipse(path, rx, ry, rx, ry);
9240
9260
  }
9241
9261
  }
9242
- closePath$2(path);
9262
+ if (!open) closePath$2(path);
9243
9263
  if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
9244
9264
  }
9245
9265
  };
@@ -10101,7 +10121,7 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
10101
10121
  ignoreRender(ui, false);
10102
10122
  onLoadError(ui, event, error);
10103
10123
  leafPaint.loadId = undefined;
10104
- }, paint.lod && image.getThumbSize());
10124
+ }, paint.lod && image.getThumbSize(paint.lod));
10105
10125
  if (ui.placeholderColor) {
10106
10126
  if (!ui.placeholderDelay) image.isPlacehold = true; else setTimeout(() => {
10107
10127
  if (!image.ready) {
@@ -10171,7 +10191,7 @@ function getPatternData(paint, box, image) {
10171
10191
  if (paint.padding) box = tempBox.set(box).shrink(paint.padding);
10172
10192
  if (paint.mode === "strench") paint.mode = "stretch";
10173
10193
  const {width: width, height: height} = image;
10174
- const {opacity: opacity, mode: mode, align: align, offset: offset, scale: scale, size: size, rotation: rotation, skew: skew, clipSize: clipSize, repeat: repeat, gap: gap, filters: filters} = paint;
10194
+ const {opacity: opacity, mode: mode, align: align, offset: offset, scale: scale, size: size, rotation: rotation, skew: skew, clipSize: clipSize, repeat: repeat, gap: gap, filters: filters, interlace: interlace} = paint;
10175
10195
  const sameBox = box.width === width && box.height === height;
10176
10196
  const data = {
10177
10197
  mode: mode
@@ -10237,6 +10257,10 @@ function getPatternData(paint, box, image) {
10237
10257
  if (opacity && opacity < 1) data.opacity = opacity;
10238
10258
  if (filters) data.filters = filters;
10239
10259
  if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
10260
+ if (interlace) data.interlace = isNumber(interlace) || interlace.type === "percent" ? {
10261
+ type: "x",
10262
+ offset: interlace
10263
+ } : interlace;
10240
10264
  return data;
10241
10265
  }
10242
10266
 
@@ -10370,7 +10394,7 @@ function createPattern(paint, ui, canvas, renderOptions) {
10370
10394
  if (transform) copy$1(imageMatrix, transform);
10371
10395
  scale(imageMatrix, 1 / scaleX, 1 / scaleY);
10372
10396
  }
10373
- const imageCanvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth);
10397
+ const imageCanvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth, data.interlace);
10374
10398
  const pattern = image.getPattern(imageCanvas, data.repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
10375
10399
  paint.style = pattern;
10376
10400
  paint.patternId = id;
@@ -10392,8 +10416,8 @@ function getPatternFixScale(paint, imageScaleX, imageScaleY) {
10392
10416
 
10393
10417
  function checkImage(paint, drawImage, ui, canvas, renderOptions) {
10394
10418
  const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions);
10395
- const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting} = renderOptions;
10396
- if (!data || paint.patternId === scaleX + "-" + scaleY && !exporting) {
10419
+ const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting, snapshot: snapshot} = renderOptions;
10420
+ if (!data || paint.patternId === scaleX + "-" + scaleY && !exporting || snapshot) {
10397
10421
  return false;
10398
10422
  } else {
10399
10423
  if (drawImage) {
@@ -11067,7 +11091,7 @@ const TextMode = 2;
11067
11091
 
11068
11092
  function layoutChar(drawData, style, width, _height) {
11069
11093
  const {rows: rows} = drawData;
11070
- const {textAlign: textAlign, paraIndent: paraIndent, letterSpacing: letterSpacing} = style;
11094
+ const {textAlign: textAlign, paraIndent: paraIndent, __letterSpacing: __letterSpacing} = style;
11071
11095
  const justifyLast = width && textAlign.includes("both");
11072
11096
  const justify = justifyLast || width && textAlign.includes("justify");
11073
11097
  const justifyLetter = justify && textAlign.includes("letter");
@@ -11080,8 +11104,8 @@ function layoutChar(drawData, style, width, _height) {
11080
11104
  remainingWidth = width - row.width - indentWidth;
11081
11105
  if (justifyLetter) addLetterWidth = remainingWidth / (row.words.reduce((total, item) => total + item.data.length, 0) - 1); else addWordWidth = wordsLength > 1 ? remainingWidth / (wordsLength - 1) : 0;
11082
11106
  }
11083
- mode = letterSpacing || row.isOverflow || justifyLetter ? CharMode : addWordWidth ? WordMode : TextMode;
11084
- if (row.isOverflow && !letterSpacing) row.textMode = true;
11107
+ mode = __letterSpacing || row.isOverflow || justifyLetter ? CharMode : addWordWidth ? WordMode : TextMode;
11108
+ if (row.isOverflow && !__letterSpacing) row.textMode = true;
11085
11109
  if (mode === TextMode) {
11086
11110
  row.x += indentWidth;
11087
11111
  toTextChar$1(row);
@@ -11371,4 +11395,4 @@ try {
11371
11395
  if (wx) useCanvas("miniapp", wx);
11372
11396
  } catch (_a) {}
11373
11397
 
11374
- export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, 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, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, 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$2 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
11398
+ export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, 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, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, 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$2 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };