@leafer-draw/miniapp 1.3.3 → 1.4.1

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.
@@ -1374,7 +1374,7 @@ function getNameList(name) {
1374
1374
  }
1375
1375
  const D$4 = Debug;
1376
1376
 
1377
- const debug$d = Debug.get('RunTime');
1377
+ const debug$e = Debug.get('RunTime');
1378
1378
  const Run = {
1379
1379
  currentId: 0,
1380
1380
  currentName: '',
@@ -1383,24 +1383,24 @@ const Run = {
1383
1383
  nameToIdMap: {},
1384
1384
  start(name, microsecond) {
1385
1385
  const id = IncrementId.create(IncrementId.RUNTIME);
1386
- R.currentId = R.idMap[id] = microsecond ? performance.now() : Date.now();
1387
- R.currentName = R.nameMap[id] = name;
1388
- R.nameToIdMap[name] = id;
1386
+ R$1.currentId = R$1.idMap[id] = microsecond ? performance.now() : Date.now();
1387
+ R$1.currentName = R$1.nameMap[id] = name;
1388
+ R$1.nameToIdMap[name] = id;
1389
1389
  return id;
1390
1390
  },
1391
1391
  end(id, microsecond) {
1392
- const time = R.idMap[id], name = R.nameMap[id];
1392
+ const time = R$1.idMap[id], name = R$1.nameMap[id];
1393
1393
  const duration = microsecond ? (performance.now() - time) / 1000 : Date.now() - time;
1394
- R.idMap[id] = R.nameMap[id] = R.nameToIdMap[name] = undefined;
1395
- debug$d.log(name, duration, 'ms');
1394
+ R$1.idMap[id] = R$1.nameMap[id] = R$1.nameToIdMap[name] = undefined;
1395
+ debug$e.log(name, duration, 'ms');
1396
1396
  },
1397
1397
  endOfName(name, microsecond) {
1398
- const id = R.nameToIdMap[name];
1398
+ const id = R$1.nameToIdMap[name];
1399
1399
  if (id !== undefined)
1400
- R.end(id, microsecond);
1400
+ R$1.end(id, microsecond);
1401
1401
  }
1402
1402
  };
1403
- const R = Run;
1403
+ const R$1 = Run;
1404
1404
 
1405
1405
  const check = [];
1406
1406
  const Plugin = {
@@ -1421,18 +1421,18 @@ const Plugin = {
1421
1421
  };
1422
1422
  setTimeout(() => check.forEach(name => Plugin.has(name, true)));
1423
1423
 
1424
- const debug$c = Debug.get('UICreator');
1424
+ const debug$d = Debug.get('UICreator');
1425
1425
  const UICreator = {
1426
1426
  list: {},
1427
1427
  register(UI) {
1428
1428
  const { __tag: tag } = UI.prototype;
1429
1429
  if (list$1[tag])
1430
- debug$c.repeat(tag);
1430
+ debug$d.repeat(tag);
1431
1431
  list$1[tag] = UI;
1432
1432
  },
1433
1433
  get(tag, data, x, y, width, height) {
1434
1434
  if (!list$1[tag])
1435
- debug$c.error('not register ' + tag);
1435
+ debug$d.error('not register ' + tag);
1436
1436
  const ui = new list$1[tag](data);
1437
1437
  if (x !== undefined) {
1438
1438
  ui.x = x;
@@ -1448,7 +1448,7 @@ const UICreator = {
1448
1448
  };
1449
1449
  const { list: list$1 } = UICreator;
1450
1450
 
1451
- const debug$b = Debug.get('EventCreator');
1451
+ const debug$c = Debug.get('EventCreator');
1452
1452
  const EventCreator = {
1453
1453
  nameList: {},
1454
1454
  register(Event) {
@@ -1456,7 +1456,7 @@ const EventCreator = {
1456
1456
  Object.keys(Event).forEach(key => {
1457
1457
  name = Event[key];
1458
1458
  if (typeof name === 'string')
1459
- nameList[name] && debug$b.repeat(name), nameList[name] = Event;
1459
+ nameList[name] && debug$c.repeat(name), nameList[name] = Event;
1460
1460
  });
1461
1461
  },
1462
1462
  changeName(oldName, newName) {
@@ -1533,10 +1533,10 @@ const DataHelper = {
1533
1533
  Object.keys(merge).forEach(key => {
1534
1534
  var _a, _b;
1535
1535
  value = merge[key];
1536
- if ((value === null || value === undefined ? undefined : value.constructor) === Object && ((_a = t[key]) === null || _a === undefined ? undefined : _a.constructor) === Object)
1536
+ if ((value === null || value === void 0 ? void 0 : value.constructor) === Object && ((_a = t[key]) === null || _a === void 0 ? void 0 : _a.constructor) === Object)
1537
1537
  return assign(t[key], merge[key], exclude && exclude[key]);
1538
1538
  if (exclude && (key in exclude)) {
1539
- if (((_b = exclude[key]) === null || _b === undefined ? undefined : _b.constructor) === Object)
1539
+ if (((_b = exclude[key]) === null || _b === void 0 ? void 0 : _b.constructor) === Object)
1540
1540
  assign(t[key] = {}, merge[key], exclude[key]);
1541
1541
  return;
1542
1542
  }
@@ -1660,7 +1660,7 @@ class LeafData {
1660
1660
  const t = this;
1661
1661
  if (t.blendMode === 'pass-through') {
1662
1662
  const leaf = this.__leaf;
1663
- if ((t.opacity < 1 && (leaf.isBranch || t.__hasMultiPaint)) || leaf.__hasEraser || t.eraser) {
1663
+ if ((t.opacity < 1 && (leaf.isBranch || t.__hasMultiPaint)) || leaf.__hasEraser || t.eraser || t.filter) {
1664
1664
  t.__single = true;
1665
1665
  }
1666
1666
  else if (t.__single) {
@@ -1773,7 +1773,7 @@ let Canvas$1 = class Canvas {
1773
1773
  }
1774
1774
  setTransform(_a, _b, _c, _d, _e, _f) { }
1775
1775
  resetTransform() { }
1776
- getTransform() { return undefined; }
1776
+ getTransform() { return void 0; }
1777
1777
  save() { }
1778
1778
  restore() { }
1779
1779
  transform(a, b, c, d, e, f) {
@@ -1830,12 +1830,12 @@ let Canvas$1 = class Canvas {
1830
1830
  ellipse(_x, _y, _radiusX, _radiusY, _rotation, _startAngle, _endAngle, _anticlockwise) { }
1831
1831
  rect(_x, _y, _width, _height) { }
1832
1832
  roundRect(_x, _y, _width, _height, _radius) { }
1833
- createConicGradient(_startAngle, _x, _y) { return undefined; }
1834
- createLinearGradient(_x0, _y0, _x1, _y1) { return undefined; }
1835
- createPattern(_image, _repetition) { return undefined; }
1836
- createRadialGradient(_x0, _y0, _r0, _x1, _y1, _r1) { return undefined; }
1833
+ createConicGradient(_startAngle, _x, _y) { return void 0; }
1834
+ createLinearGradient(_x0, _y0, _x1, _y1) { return void 0; }
1835
+ createPattern(_image, _repetition) { return void 0; }
1836
+ createRadialGradient(_x0, _y0, _r0, _x1, _y1, _r1) { return void 0; }
1837
1837
  fillText(_text, _x, _y, _maxWidth) { }
1838
- measureText(_text) { return undefined; }
1838
+ measureText(_text) { return void 0; }
1839
1839
  strokeText(_text, _x, _y, _maxWidth) { }
1840
1840
  destroy() {
1841
1841
  this.context = null;
@@ -1843,79 +1843,79 @@ let Canvas$1 = class Canvas {
1843
1843
  };
1844
1844
  __decorate([
1845
1845
  contextAttr('imageSmoothingEnabled')
1846
- ], Canvas$1.prototype, "smooth", undefined);
1846
+ ], Canvas$1.prototype, "smooth", void 0);
1847
1847
  __decorate([
1848
1848
  contextAttr('imageSmoothingQuality')
1849
- ], Canvas$1.prototype, "smoothLevel", undefined);
1849
+ ], Canvas$1.prototype, "smoothLevel", void 0);
1850
1850
  __decorate([
1851
1851
  contextAttr('globalAlpha')
1852
- ], Canvas$1.prototype, "opacity", undefined);
1852
+ ], Canvas$1.prototype, "opacity", void 0);
1853
1853
  __decorate([
1854
1854
  contextAttr()
1855
- ], Canvas$1.prototype, "fillStyle", undefined);
1855
+ ], Canvas$1.prototype, "fillStyle", void 0);
1856
1856
  __decorate([
1857
1857
  contextAttr()
1858
- ], Canvas$1.prototype, "strokeStyle", undefined);
1858
+ ], Canvas$1.prototype, "strokeStyle", void 0);
1859
1859
  __decorate([
1860
1860
  contextAttr('lineWidth')
1861
- ], Canvas$1.prototype, "strokeWidth", undefined);
1861
+ ], Canvas$1.prototype, "strokeWidth", void 0);
1862
1862
  __decorate([
1863
1863
  contextAttr('lineCap')
1864
- ], Canvas$1.prototype, "strokeCap", undefined);
1864
+ ], Canvas$1.prototype, "strokeCap", void 0);
1865
1865
  __decorate([
1866
1866
  contextAttr('lineJoin')
1867
- ], Canvas$1.prototype, "strokeJoin", undefined);
1867
+ ], Canvas$1.prototype, "strokeJoin", void 0);
1868
1868
  __decorate([
1869
1869
  contextAttr('lineDashOffset')
1870
- ], Canvas$1.prototype, "dashOffset", undefined);
1870
+ ], Canvas$1.prototype, "dashOffset", void 0);
1871
1871
  __decorate([
1872
1872
  contextAttr()
1873
- ], Canvas$1.prototype, "miterLimit", undefined);
1873
+ ], Canvas$1.prototype, "miterLimit", void 0);
1874
1874
  __decorate([
1875
1875
  contextAttr()
1876
- ], Canvas$1.prototype, "shadowBlur", undefined);
1876
+ ], Canvas$1.prototype, "shadowBlur", void 0);
1877
1877
  __decorate([
1878
1878
  contextAttr()
1879
- ], Canvas$1.prototype, "shadowColor", undefined);
1879
+ ], Canvas$1.prototype, "shadowColor", void 0);
1880
1880
  __decorate([
1881
1881
  contextAttr()
1882
- ], Canvas$1.prototype, "shadowOffsetX", undefined);
1882
+ ], Canvas$1.prototype, "shadowOffsetX", void 0);
1883
1883
  __decorate([
1884
1884
  contextAttr()
1885
- ], Canvas$1.prototype, "shadowOffsetY", undefined);
1885
+ ], Canvas$1.prototype, "shadowOffsetY", void 0);
1886
1886
  __decorate([
1887
1887
  contextAttr()
1888
- ], Canvas$1.prototype, "filter", undefined);
1888
+ ], Canvas$1.prototype, "filter", void 0);
1889
1889
  __decorate([
1890
1890
  contextAttr()
1891
- ], Canvas$1.prototype, "font", undefined);
1891
+ ], Canvas$1.prototype, "font", void 0);
1892
1892
  __decorate([
1893
1893
  contextAttr()
1894
- ], Canvas$1.prototype, "fontKerning", undefined);
1894
+ ], Canvas$1.prototype, "fontKerning", void 0);
1895
1895
  __decorate([
1896
1896
  contextAttr()
1897
- ], Canvas$1.prototype, "fontStretch", undefined);
1897
+ ], Canvas$1.prototype, "fontStretch", void 0);
1898
1898
  __decorate([
1899
1899
  contextAttr()
1900
- ], Canvas$1.prototype, "fontVariantCaps", undefined);
1900
+ ], Canvas$1.prototype, "fontVariantCaps", void 0);
1901
1901
  __decorate([
1902
1902
  contextAttr()
1903
- ], Canvas$1.prototype, "textAlign", undefined);
1903
+ ], Canvas$1.prototype, "textAlign", void 0);
1904
1904
  __decorate([
1905
1905
  contextAttr()
1906
- ], Canvas$1.prototype, "textBaseline", undefined);
1906
+ ], Canvas$1.prototype, "textBaseline", void 0);
1907
1907
  __decorate([
1908
1908
  contextAttr()
1909
- ], Canvas$1.prototype, "textRendering", undefined);
1909
+ ], Canvas$1.prototype, "textRendering", void 0);
1910
1910
  __decorate([
1911
1911
  contextAttr()
1912
- ], Canvas$1.prototype, "wordSpacing", undefined);
1912
+ ], Canvas$1.prototype, "wordSpacing", void 0);
1913
1913
  __decorate([
1914
1914
  contextAttr()
1915
- ], Canvas$1.prototype, "letterSpacing", undefined);
1915
+ ], Canvas$1.prototype, "letterSpacing", void 0);
1916
1916
  __decorate([
1917
1917
  contextAttr()
1918
- ], Canvas$1.prototype, "direction", undefined);
1918
+ ], Canvas$1.prototype, "direction", void 0);
1919
1919
  __decorate([
1920
1920
  contextMethod()
1921
1921
  ], Canvas$1.prototype, "setTransform", null);
@@ -2612,7 +2612,7 @@ const EllipseHelper = {
2612
2612
  const { M: M$4, m, L: L$5, l, H, h, V, v, C: C$4, c, S, s, Q: Q$3, q, T, t, A, a, Z: Z$4, z, N: N$3, D: D$3, X: X$3, G: G$3, F: F$4, O: O$3, P: P$3, U: U$3 } = PathCommandMap;
2613
2613
  const { rect: rect$2, roundRect: roundRect$2, arcTo: arcTo$3, arc: arc$3, ellipse: ellipse$4, quadraticCurveTo: quadraticCurveTo$1 } = BezierHelper;
2614
2614
  const { ellipticalArc } = EllipseHelper;
2615
- const debug$a = Debug.get('PathConvert');
2615
+ const debug$b = Debug.get('PathConvert');
2616
2616
  const setEndPoint$1 = {};
2617
2617
  const PathConvert = {
2618
2618
  current: { dot: 0 },
@@ -2853,7 +2853,7 @@ const PathConvert = {
2853
2853
  i += 6;
2854
2854
  break;
2855
2855
  default:
2856
- debug$a.error(`command: ${command} [index:${i}]`, old);
2856
+ debug$b.error(`command: ${command} [index:${i}]`, old);
2857
2857
  return data;
2858
2858
  }
2859
2859
  lastCommand = command;
@@ -2962,12 +2962,10 @@ const PathCommandDataHelper = {
2962
2962
  },
2963
2963
  arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
2964
2964
  if (lastX !== undefined) {
2965
- const maxRadius = tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2) * (getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2) / 2);
2966
- data.push(U$2, x1, y1, x2, y2, min(radius, abs$2(maxRadius)));
2967
- }
2968
- else {
2969
- data.push(U$2, x1, y1, x2, y2, radius);
2965
+ const d = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2);
2966
+ radius = min(radius, min(d / 2, d / 2 * abs$2(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
2970
2967
  }
2968
+ data.push(U$2, x1, y1, x2, y2, radius);
2971
2969
  },
2972
2970
  drawEllipse(data, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
2973
2971
  BezierHelper.ellipse(null, x, y, radiusX, radiusY, rotation === undefined ? 0 : rotation, startAngle === undefined ? 0 : startAngle, endAngle === undefined ? 360 : endAngle, anticlockwise, null, null, startPoint);
@@ -3078,7 +3076,7 @@ class PathCreator {
3078
3076
  }
3079
3077
 
3080
3078
  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;
3081
- const debug$9 = Debug.get('PathDrawer');
3079
+ const debug$a = Debug.get('PathDrawer');
3082
3080
  const PathDrawer = {
3083
3081
  drawPathByData(drawer, data) {
3084
3082
  if (!data)
@@ -3141,7 +3139,7 @@ const PathDrawer = {
3141
3139
  i += 6;
3142
3140
  break;
3143
3141
  default:
3144
- debug$9.error(`command: ${command} [index:${i}]`, data);
3142
+ debug$a.error(`command: ${command} [index:${i}]`, data);
3145
3143
  return;
3146
3144
  }
3147
3145
  }
@@ -3151,7 +3149,7 @@ const PathDrawer = {
3151
3149
  const { M: M$1, L: L$2, C: C$1, Q, Z: Z$1, N, D, X, G, F: F$1, O, P, U } = PathCommandMap;
3152
3150
  const { toTwoPointBounds, toTwoPointBoundsByQuadraticCurve, arcTo: arcTo$1, arc, ellipse: ellipse$1 } = BezierHelper;
3153
3151
  const { addPointBounds, copy: copy$7, addPoint, setPoint, addBounds, toBounds: toBounds$2 } = TwoPointBoundsHelper;
3154
- const debug$8 = Debug.get('PathBounds');
3152
+ const debug$9 = Debug.get('PathBounds');
3155
3153
  let radius, radiusX, radiusY;
3156
3154
  const tempPointBounds = {};
3157
3155
  const setPointBounds = {};
@@ -3259,7 +3257,7 @@ const PathBounds = {
3259
3257
  i += 6;
3260
3258
  break;
3261
3259
  default:
3262
- debug$8.error(`command: ${command} [index:${i}]`, data);
3260
+ debug$9.error(`command: ${command} [index:${i}]`, data);
3263
3261
  return;
3264
3262
  }
3265
3263
  }
@@ -3375,7 +3373,7 @@ const FileHelper = {
3375
3373
  const F = FileHelper;
3376
3374
  F.opacityTypes.forEach(type => F.upperCaseTypeMap[type] = type.toUpperCase());
3377
3375
 
3378
- const debug$7 = Debug.get('TaskProcessor');
3376
+ const debug$8 = Debug.get('TaskProcessor');
3379
3377
  class TaskItem {
3380
3378
  constructor(task) {
3381
3379
  this.parallel = true;
@@ -3384,13 +3382,13 @@ class TaskItem {
3384
3382
  this.task = task;
3385
3383
  }
3386
3384
  run() {
3387
- return __awaiter(this, undefined, undefined, function* () {
3385
+ return __awaiter(this, void 0, void 0, function* () {
3388
3386
  try {
3389
3387
  if (this.task && !this.isComplete && this.parent.running)
3390
3388
  yield this.task();
3391
3389
  }
3392
3390
  catch (error) {
3393
- debug$7.error(error);
3391
+ debug$8.error(error);
3394
3392
  }
3395
3393
  });
3396
3394
  }
@@ -3623,18 +3621,52 @@ class TaskProcessor {
3623
3621
  }
3624
3622
  }
3625
3623
 
3626
- const ImageManager = {
3624
+ const debug$7 = Debug.get('Resource');
3625
+ const Resource = {
3626
+ tasker: new TaskProcessor(),
3627
3627
  map: {},
3628
+ get isComplete() { return R.tasker.isComplete; },
3629
+ set(key, value) {
3630
+ if (R.map[key])
3631
+ debug$7.repeat(key);
3632
+ R.map[key] = value;
3633
+ },
3634
+ get(key) {
3635
+ return R.map[key];
3636
+ },
3637
+ remove(key) {
3638
+ delete R.map[key];
3639
+ },
3640
+ loadImage(key, format) {
3641
+ return new Promise((resolve, reject) => {
3642
+ const image = this.setImage(key, key, format);
3643
+ image.load(() => resolve(image), (e) => reject(e));
3644
+ });
3645
+ },
3646
+ setImage(key, value, format) {
3647
+ let config;
3648
+ if (typeof value === 'string')
3649
+ config = { url: value };
3650
+ else if (!value.url)
3651
+ config = { url: key, view: value };
3652
+ if (config)
3653
+ format && (config.format = format), value = Creator.image(config);
3654
+ R.set(key, value);
3655
+ return value;
3656
+ },
3657
+ destroy() {
3658
+ R.map = {};
3659
+ }
3660
+ };
3661
+ const R = Resource;
3662
+
3663
+ const ImageManager = {
3628
3664
  recycledList: [],
3629
- tasker: new TaskProcessor(),
3630
3665
  patternTasker: new TaskProcessor(),
3631
- get isComplete() { return I.tasker.isComplete; },
3632
3666
  get(config) {
3633
- let image = I.map[config.url];
3634
- if (!image) {
3635
- image = Creator.image(config);
3636
- I.map[config.url] = image;
3637
- }
3667
+ let image = Resource.get(config.url);
3668
+ if (!image)
3669
+ Resource.set(config.url, image = Creator.image(config));
3638
3670
  image.use++;
3639
3671
  return image;
3640
3672
  },
@@ -3648,7 +3680,7 @@ const ImageManager = {
3648
3680
  if (list.length > 100) {
3649
3681
  list.forEach(image => {
3650
3682
  if (!image.use && image.url) {
3651
- delete I.map[image.url];
3683
+ Resource.remove(image.url);
3652
3684
  image.destroy();
3653
3685
  }
3654
3686
  });
@@ -3675,7 +3707,6 @@ const ImageManager = {
3675
3707
  return false;
3676
3708
  },
3677
3709
  destroy() {
3678
- I.map = {};
3679
3710
  I.recycledList = [];
3680
3711
  }
3681
3712
  };
@@ -3689,21 +3720,19 @@ class LeaferImage {
3689
3720
  this.use = 0;
3690
3721
  this.waitComplete = [];
3691
3722
  this.innerId = create$1(IMAGE);
3692
- this.config = config || { url: '' };
3693
- this.isSVG = ImageManager.isFormat('svg', config);
3694
- this.hasOpacityPixel = ImageManager.hasOpacityPixel(config);
3723
+ this.config = config || (config = { url: '' });
3724
+ if (config.view) {
3725
+ const { view } = config;
3726
+ this.setView(view.config ? view.view : view);
3727
+ }
3728
+ ImageManager.isFormat('svg', config) && (this.isSVG = true);
3729
+ ImageManager.hasOpacityPixel(config) && (this.hasOpacityPixel = true);
3695
3730
  }
3696
3731
  load(onSuccess, onError) {
3697
3732
  if (!this.loading) {
3698
3733
  this.loading = true;
3699
- ImageManager.tasker.add(() => __awaiter(this, undefined, undefined, function* () {
3700
- return yield Platform.origin.loadImage(this.url).then((img) => {
3701
- this.ready = true;
3702
- this.width = img.naturalWidth || img.width;
3703
- this.height = img.naturalHeight || img.height;
3704
- this.view = img;
3705
- this.onComplete(true);
3706
- }).catch((e) => {
3734
+ Resource.tasker.add(() => __awaiter(this, void 0, void 0, function* () {
3735
+ return yield Platform.origin.loadImage(this.url).then(img => this.setView(img)).catch((e) => {
3707
3736
  this.error = e;
3708
3737
  this.onComplete(false);
3709
3738
  });
@@ -3721,6 +3750,13 @@ class LeaferImage {
3721
3750
  }
3722
3751
  l[index] = l[index + 1] = undefined;
3723
3752
  }
3753
+ setView(img) {
3754
+ this.ready = true;
3755
+ this.width = img.naturalWidth || img.width;
3756
+ this.height = img.naturalHeight || img.height;
3757
+ this.view = img;
3758
+ this.onComplete(true);
3759
+ }
3724
3760
  onComplete(isSuccess) {
3725
3761
  let odd;
3726
3762
  this.waitComplete.forEach((item, index) => {
@@ -3739,6 +3775,9 @@ class LeaferImage {
3739
3775
  this.waitComplete.length = 0;
3740
3776
  this.loading = false;
3741
3777
  }
3778
+ getFull(_filters) {
3779
+ return this.view;
3780
+ }
3742
3781
  getCanvas(width, height, opacity, _filters) {
3743
3782
  width || (width = this.width);
3744
3783
  height || (height = this.height);
@@ -3821,10 +3860,10 @@ function autoLayoutType(defaultValue) {
3821
3860
  return decorateLeafAttr(defaultValue, (key) => attr({
3822
3861
  set(value) {
3823
3862
  if (this.__setAttr(key, value)) {
3824
- this.__layout.matrixChanged || this.__layout.matrixChange();
3825
3863
  this.__hasAutoLayout = !!(this.origin || this.around || this.flow);
3826
3864
  if (!this.__local)
3827
3865
  this.__layout.createLocal();
3866
+ doBoundsType(this);
3828
3867
  }
3829
3868
  }
3830
3869
  }));
@@ -4207,55 +4246,62 @@ const LeafHelper = {
4207
4246
  y += t.y;
4208
4247
  transition ? t.animate({ x, y }, transition) : (t.x = x, t.y = y);
4209
4248
  },
4210
- zoomOfWorld(t, origin, scaleX, scaleY, resize) {
4211
- L.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY, resize);
4249
+ zoomOfWorld(t, origin, scaleX, scaleY, resize, transition) {
4250
+ L.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY, resize, transition);
4212
4251
  },
4213
- zoomOfLocal(t, origin, scaleX, scaleY = scaleX, resize) {
4214
- copy$6(matrix, t.__localMatrix);
4252
+ zoomOfLocal(t, origin, scaleX, scaleY = scaleX, resize, transition) {
4253
+ const o = t.__localMatrix;
4254
+ if (typeof scaleY !== 'number') {
4255
+ if (scaleY)
4256
+ transition = scaleY;
4257
+ scaleY = scaleX;
4258
+ }
4259
+ copy$6(matrix, o);
4215
4260
  scaleOfOuter$2(matrix, origin, scaleX, scaleY);
4216
4261
  if (t.origin || t.around) {
4217
- L.setTransform(t, matrix, resize);
4262
+ L.setTransform(t, matrix, resize, transition);
4218
4263
  }
4219
4264
  else {
4220
- moveByMatrix(t, matrix);
4221
- t.scaleResize(scaleX, scaleY, resize !== true);
4265
+ const x = t.x + matrix.e - o.e, y = t.y + matrix.f - o.f;
4266
+ if (transition && !resize)
4267
+ t.animate({ x, y, scaleX: t.scaleX * scaleX, scaleY: t.scaleY * scaleY }, transition);
4268
+ else
4269
+ t.x = x, t.y = y, t.scaleResize(scaleX, scaleY, resize !== true);
4222
4270
  }
4223
4271
  },
4224
- rotateOfWorld(t, origin, angle) {
4225
- L.rotateOfLocal(t, getTempLocal(t, origin), angle);
4272
+ rotateOfWorld(t, origin, angle, transition) {
4273
+ L.rotateOfLocal(t, getTempLocal(t, origin), angle, transition);
4226
4274
  },
4227
- rotateOfLocal(t, origin, angle) {
4228
- copy$6(matrix, t.__localMatrix);
4275
+ rotateOfLocal(t, origin, angle, transition) {
4276
+ const o = t.__localMatrix;
4277
+ copy$6(matrix, o);
4229
4278
  rotateOfOuter$2(matrix, origin, angle);
4230
- if (t.origin || t.around) {
4231
- L.setTransform(t, matrix);
4232
- }
4233
- else {
4234
- moveByMatrix(t, matrix);
4235
- t.rotation = MathHelper.formatRotation(t.rotation + angle);
4236
- }
4279
+ if (t.origin || t.around)
4280
+ L.setTransform(t, matrix, false, transition);
4281
+ else
4282
+ t.set({ x: t.x + matrix.e - o.e, y: t.y + matrix.f - o.f, rotation: MathHelper.formatRotation(t.rotation + angle) }, transition);
4237
4283
  },
4238
- skewOfWorld(t, origin, skewX, skewY, resize) {
4239
- L.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize);
4284
+ skewOfWorld(t, origin, skewX, skewY, resize, transition) {
4285
+ L.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize, transition);
4240
4286
  },
4241
- skewOfLocal(t, origin, skewX, skewY = 0, resize) {
4287
+ skewOfLocal(t, origin, skewX, skewY = 0, resize, transition) {
4242
4288
  copy$6(matrix, t.__localMatrix);
4243
4289
  skewOfOuter(matrix, origin, skewX, skewY);
4244
- L.setTransform(t, matrix, resize);
4290
+ L.setTransform(t, matrix, resize, transition);
4245
4291
  },
4246
- transformWorld(t, transform, resize) {
4292
+ transformWorld(t, transform, resize, transition) {
4247
4293
  copy$6(matrix, t.worldTransform);
4248
4294
  multiplyParent$2(matrix, transform);
4249
4295
  if (t.parent)
4250
4296
  divideParent(matrix, t.parent.worldTransform);
4251
- L.setTransform(t, matrix, resize);
4297
+ L.setTransform(t, matrix, resize, transition);
4252
4298
  },
4253
- transform(t, transform, resize) {
4299
+ transform(t, transform, resize, transition) {
4254
4300
  copy$6(matrix, t.localTransform);
4255
4301
  multiplyParent$2(matrix, transform);
4256
- L.setTransform(t, matrix, resize);
4302
+ L.setTransform(t, matrix, resize, transition);
4257
4303
  },
4258
- setTransform(t, transform, resize) {
4304
+ setTransform(t, transform, resize, transition) {
4259
4305
  const data = t.__, originPoint = data.origin && L.getInnerOrigin(t, data.origin);
4260
4306
  const layout = getLayout(transform, originPoint, data.around && L.getInnerOrigin(t, data.around));
4261
4307
  if (resize) {
@@ -4270,7 +4316,7 @@ const LeafHelper = {
4270
4316
  t.scaleResize(scaleX, scaleY, false);
4271
4317
  }
4272
4318
  else
4273
- t.set(layout);
4319
+ t.set(layout, transition);
4274
4320
  },
4275
4321
  getFlipTransform(t, axis) {
4276
4322
  const m = getMatrixData();
@@ -4307,11 +4353,6 @@ const LeafHelper = {
4307
4353
  };
4308
4354
  const L = LeafHelper;
4309
4355
  const { updateAllMatrix: updateAllMatrix$3, updateMatrix: updateMatrix$2, updateAllWorldOpacity: updateAllWorldOpacity$1, updateAllChange: updateAllChange$1 } = L;
4310
- function moveByMatrix(t, matrix) {
4311
- const { e, f } = t.__localMatrix;
4312
- t.x += matrix.e - e;
4313
- t.y += matrix.f - f;
4314
- }
4315
4356
  function getTempLocal(t, world) {
4316
4357
  t.__layout.update();
4317
4358
  return t.parent ? PointHelper.tempToInnerOf(world, t.parent.__world) : world;
@@ -5217,7 +5258,7 @@ const LeafRender = {
5217
5258
  if (this.__.eraser === 'path')
5218
5259
  return this.__renderEraser(canvas, options);
5219
5260
  const tempCanvas = canvas.getSameCanvas(true, true);
5220
- this.__draw(tempCanvas, options);
5261
+ this.__draw(tempCanvas, options, canvas);
5221
5262
  if (this.__worldFlipped) {
5222
5263
  canvas.copyWorldByReset(tempCanvas, this.__nowWorld, null, this.__.__blendMode, true);
5223
5264
  }
@@ -5585,11 +5626,11 @@ let Leaf = class Leaf {
5585
5626
  const layer = this.leafer ? this.leafer.zoomLayer : this;
5586
5627
  return layer.getWorldPoint(page, relative, distance, change);
5587
5628
  }
5588
- setTransform(matrix, resize) {
5589
- setTransform(this, matrix, resize);
5629
+ setTransform(matrix, resize, transition) {
5630
+ setTransform(this, matrix, resize, transition);
5590
5631
  }
5591
- transform(matrix, resize) {
5592
- transform(this, matrix, resize);
5632
+ transform(matrix, resize, transition) {
5633
+ transform(this, matrix, resize, transition);
5593
5634
  }
5594
5635
  move(x, y, transition) {
5595
5636
  moveLocal(this, x, y, transition);
@@ -5597,32 +5638,32 @@ let Leaf = class Leaf {
5597
5638
  moveInner(x, y, transition) {
5598
5639
  moveWorld(this, x, y, true, transition);
5599
5640
  }
5600
- scaleOf(origin, scaleX, scaleY, resize) {
5601
- zoomOfLocal(this, getLocalOrigin(this, origin), scaleX, scaleY, resize);
5641
+ scaleOf(origin, scaleX, scaleY, resize, transition) {
5642
+ zoomOfLocal(this, getLocalOrigin(this, origin), scaleX, scaleY, resize, transition);
5602
5643
  }
5603
- rotateOf(origin, rotation) {
5604
- rotateOfLocal(this, getLocalOrigin(this, origin), rotation);
5644
+ rotateOf(origin, rotation, transition) {
5645
+ rotateOfLocal(this, getLocalOrigin(this, origin), rotation, transition);
5605
5646
  }
5606
- skewOf(origin, skewX, skewY, resize) {
5607
- skewOfLocal(this, getLocalOrigin(this, origin), skewX, skewY, resize);
5647
+ skewOf(origin, skewX, skewY, resize, transition) {
5648
+ skewOfLocal(this, getLocalOrigin(this, origin), skewX, skewY, resize, transition);
5608
5649
  }
5609
- transformWorld(worldTransform, resize) {
5610
- transformWorld(this, worldTransform, resize);
5650
+ transformWorld(worldTransform, resize, transition) {
5651
+ transformWorld(this, worldTransform, resize, transition);
5611
5652
  }
5612
5653
  moveWorld(x, y, transition) {
5613
5654
  moveWorld(this, x, y, false, transition);
5614
5655
  }
5615
- scaleOfWorld(worldOrigin, scaleX, scaleY, resize) {
5616
- zoomOfWorld(this, worldOrigin, scaleX, scaleY, resize);
5656
+ scaleOfWorld(worldOrigin, scaleX, scaleY, resize, transition) {
5657
+ zoomOfWorld(this, worldOrigin, scaleX, scaleY, resize, transition);
5617
5658
  }
5618
5659
  rotateOfWorld(worldOrigin, rotation) {
5619
5660
  rotateOfWorld(this, worldOrigin, rotation);
5620
5661
  }
5621
- skewOfWorld(worldOrigin, skewX, skewY, resize) {
5622
- skewOfWorld(this, worldOrigin, skewX, skewY, resize);
5662
+ skewOfWorld(worldOrigin, skewX, skewY, resize, transition) {
5663
+ skewOfWorld(this, worldOrigin, skewX, skewY, resize, transition);
5623
5664
  }
5624
- flip(axis) {
5625
- transform(this, getFlipTransform(this, axis));
5665
+ flip(axis, transition) {
5666
+ transform(this, getFlipTransform(this, axis), false, transition);
5626
5667
  }
5627
5668
  scaleResize(scaleX, scaleY = scaleX, _noResize) {
5628
5669
  this.scaleX *= scaleX;
@@ -6010,7 +6051,7 @@ class LeafLevelList {
6010
6051
  }
6011
6052
  }
6012
6053
 
6013
- const version = "1.3.3";
6054
+ const version = "1.4.1";
6014
6055
 
6015
6056
  class LeaferCanvas extends LeaferCanvasBase {
6016
6057
  get allowBackgroundColor() { return false; }
@@ -6494,7 +6535,7 @@ class Layouter {
6494
6535
  }
6495
6536
  partLayout() {
6496
6537
  var _a;
6497
- if (!((_a = this.__updatedList) === null || _a === undefined ? undefined : _a.length))
6538
+ if (!((_a = this.__updatedList) === null || _a === void 0 ? void 0 : _a.length))
6498
6539
  return;
6499
6540
  const t = Run.start('PartLayout');
6500
6541
  const { target, __updatedList: updateList } = this;
@@ -6863,9 +6904,7 @@ const TextConvert = {};
6863
6904
  const ColorConvert = {};
6864
6905
  const UnitConvert = {
6865
6906
  number(value, percentRefer) {
6866
- if (typeof value === 'object')
6867
- return value.type === 'percent' ? value.value * percentRefer : value.value;
6868
- return value;
6907
+ return typeof value === 'object' ? (value.type === 'percent' ? value.value * percentRefer : value.value) : value;
6869
6908
  }
6870
6909
  };
6871
6910
  const PathArrow = {};
@@ -6873,16 +6912,15 @@ const Paint = {};
6873
6912
  const PaintImage = {};
6874
6913
  const PaintGradient = {};
6875
6914
  const Effect = {};
6915
+ const Filter = {
6916
+ apply() { Plugin.need('filter'); }
6917
+ };
6876
6918
  const Export = {};
6877
6919
  const State = {
6878
- setStyleName(_leaf, _styleName, _value) { return Plugin.need('state'); },
6879
- set(_leaf, _stateName) { return Plugin.need('state'); }
6880
- };
6881
- const Transition = {
6882
- list: {},
6883
- register(attrName, fn) { Transition.list[attrName] = fn; },
6884
- get(attrName) { return Transition.list[attrName]; }
6920
+ setStyleName() { return Plugin.need('state'); },
6921
+ set() { return Plugin.need('state'); }
6885
6922
  };
6923
+ const Transition = {};
6886
6924
 
6887
6925
  const { parse, objectToCanvasData } = PathConvert;
6888
6926
  const emptyPaint = {};
@@ -6989,24 +7027,13 @@ class UIData extends LeafData {
6989
7027
  }
6990
7028
  }
6991
7029
  setShadow(value) {
6992
- this.__setInput('shadow', value);
6993
- if (value instanceof Array) {
6994
- if (value.some((item) => item.visible === false))
6995
- value = value.filter((item) => item.visible !== false);
6996
- this._shadow = value.length ? value : null;
6997
- }
6998
- else
6999
- this._shadow = value && value.visible !== false ? [value] : null;
7030
+ setArray(this, 'shadow', value);
7000
7031
  }
7001
7032
  setInnerShadow(value) {
7002
- this.__setInput('innerShadow', value);
7003
- if (value instanceof Array) {
7004
- if (value.some((item) => item.visible === false))
7005
- value = value.filter((item) => item.visible !== false);
7006
- this._innerShadow = value.length ? value : null;
7007
- }
7008
- else
7009
- this._innerShadow = value && value.visible !== false ? [value] : null;
7033
+ setArray(this, 'innerShadow', value);
7034
+ }
7035
+ setFilter(value) {
7036
+ setArray(this, 'filter', value);
7010
7037
  }
7011
7038
  __computePaint() {
7012
7039
  const { fill, stroke } = this.__input;
@@ -7017,6 +7044,17 @@ class UIData extends LeafData {
7017
7044
  this.__needComputePaint = false;
7018
7045
  }
7019
7046
  }
7047
+ function setArray(data, key, value) {
7048
+ data.__setInput(key, value);
7049
+ if (value instanceof Array) {
7050
+ if (value.some((item) => item.visible === false))
7051
+ value = value.filter((item) => item.visible !== false);
7052
+ value.length || (value = null);
7053
+ }
7054
+ else
7055
+ value = value && value.visible !== false ? [value] : null;
7056
+ data['_' + key] = value;
7057
+ }
7020
7058
 
7021
7059
  class GroupData extends UIData {
7022
7060
  }
@@ -7139,11 +7177,13 @@ const UIBounds = {
7139
7177
  },
7140
7178
  __updateRenderSpread() {
7141
7179
  let width = 0;
7142
- const { shadow, innerShadow, blur, backgroundBlur } = this.__;
7180
+ const { shadow, innerShadow, blur, backgroundBlur, filter } = this.__;
7143
7181
  if (shadow)
7144
7182
  shadow.forEach(item => width = Math.max(width, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread > 0 ? item.spread : 0) + item.blur * 1.5));
7145
7183
  if (blur)
7146
7184
  width = Math.max(width, blur);
7185
+ if (filter)
7186
+ width += Filter.getSpread(filter);
7147
7187
  let shapeWidth = width = Math.ceil(width);
7148
7188
  if (innerShadow)
7149
7189
  innerShadow.forEach(item => shapeWidth = Math.max(shapeWidth, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread < 0 ? -item.spread : 0) + item.blur * 1.5));
@@ -7158,8 +7198,8 @@ const UIRender = {
7158
7198
  __updateChange() {
7159
7199
  const data = this.__;
7160
7200
  if (data.__useEffect) {
7161
- const { shadow, innerShadow, blur, backgroundBlur } = this.__;
7162
- data.__useEffect = !!(shadow || innerShadow || blur || backgroundBlur);
7201
+ const { shadow, innerShadow, blur, backgroundBlur, filter } = this.__;
7202
+ data.__useEffect = !!(shadow || innerShadow || blur || backgroundBlur || filter);
7163
7203
  }
7164
7204
  data.__checkSingle();
7165
7205
  const complex = data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect;
@@ -7173,7 +7213,7 @@ const UIRender = {
7173
7213
  __drawFast(canvas, options) {
7174
7214
  drawFast(this, canvas, options);
7175
7215
  },
7176
- __draw(canvas, options) {
7216
+ __draw(canvas, options, originCanvas) {
7177
7217
  const data = this.__;
7178
7218
  if (data.__complex) {
7179
7219
  if (data.__needComputePaint)
@@ -7183,7 +7223,7 @@ const UIRender = {
7183
7223
  if (data.__useEffect) {
7184
7224
  const shape = Paint.shape(this, canvas, options);
7185
7225
  this.__nowWorld = this.__getNowWorld(options);
7186
- const { shadow, innerShadow } = data;
7226
+ const { shadow, innerShadow, filter } = data;
7187
7227
  if (shadow)
7188
7228
  Effect.shadow(this, canvas, shape);
7189
7229
  if (fill)
@@ -7194,6 +7234,8 @@ const UIRender = {
7194
7234
  Effect.innerShadow(this, canvas, shape);
7195
7235
  if (stroke)
7196
7236
  data.__isStrokes ? Paint.strokes(stroke, this, canvas) : Paint.stroke(stroke, this, canvas);
7237
+ if (filter)
7238
+ Filter.apply(filter, this, this.__nowWorld, canvas, originCanvas, shape);
7197
7239
  if (shape.worldCanvas)
7198
7240
  shape.worldCanvas.recycle();
7199
7241
  shape.canvas.recycle();
@@ -7413,199 +7455,202 @@ let UI = UI_1 = class UI extends Leaf {
7413
7455
  };
7414
7456
  __decorate([
7415
7457
  dataProcessor(UIData)
7416
- ], UI.prototype, "__", undefined);
7458
+ ], UI.prototype, "__", void 0);
7417
7459
  __decorate([
7418
7460
  zoomLayerType()
7419
- ], UI.prototype, "zoomLayer", undefined);
7461
+ ], UI.prototype, "zoomLayer", void 0);
7420
7462
  __decorate([
7421
7463
  dataType('')
7422
- ], UI.prototype, "id", undefined);
7464
+ ], UI.prototype, "id", void 0);
7423
7465
  __decorate([
7424
7466
  dataType('')
7425
- ], UI.prototype, "name", undefined);
7467
+ ], UI.prototype, "name", void 0);
7426
7468
  __decorate([
7427
7469
  dataType('')
7428
- ], UI.prototype, "className", undefined);
7470
+ ], UI.prototype, "className", void 0);
7429
7471
  __decorate([
7430
7472
  surfaceType('pass-through')
7431
- ], UI.prototype, "blendMode", undefined);
7473
+ ], UI.prototype, "blendMode", void 0);
7432
7474
  __decorate([
7433
7475
  opacityType(1)
7434
- ], UI.prototype, "opacity", undefined);
7476
+ ], UI.prototype, "opacity", void 0);
7435
7477
  __decorate([
7436
7478
  visibleType(true)
7437
- ], UI.prototype, "visible", undefined);
7479
+ ], UI.prototype, "visible", void 0);
7438
7480
  __decorate([
7439
7481
  surfaceType(false)
7440
- ], UI.prototype, "locked", undefined);
7482
+ ], UI.prototype, "locked", void 0);
7441
7483
  __decorate([
7442
7484
  sortType(0)
7443
- ], UI.prototype, "zIndex", undefined);
7485
+ ], UI.prototype, "zIndex", void 0);
7444
7486
  __decorate([
7445
7487
  maskType(false)
7446
- ], UI.prototype, "mask", undefined);
7488
+ ], UI.prototype, "mask", void 0);
7447
7489
  __decorate([
7448
7490
  eraserType(false)
7449
- ], UI.prototype, "eraser", undefined);
7491
+ ], UI.prototype, "eraser", void 0);
7450
7492
  __decorate([
7451
7493
  positionType(0, true)
7452
- ], UI.prototype, "x", undefined);
7494
+ ], UI.prototype, "x", void 0);
7453
7495
  __decorate([
7454
7496
  positionType(0, true)
7455
- ], UI.prototype, "y", undefined);
7497
+ ], UI.prototype, "y", void 0);
7456
7498
  __decorate([
7457
7499
  boundsType(100, true)
7458
- ], UI.prototype, "width", undefined);
7500
+ ], UI.prototype, "width", void 0);
7459
7501
  __decorate([
7460
7502
  boundsType(100, true)
7461
- ], UI.prototype, "height", undefined);
7503
+ ], UI.prototype, "height", void 0);
7462
7504
  __decorate([
7463
7505
  scaleType(1, true)
7464
- ], UI.prototype, "scaleX", undefined);
7506
+ ], UI.prototype, "scaleX", void 0);
7465
7507
  __decorate([
7466
7508
  scaleType(1, true)
7467
- ], UI.prototype, "scaleY", undefined);
7509
+ ], UI.prototype, "scaleY", void 0);
7468
7510
  __decorate([
7469
7511
  rotationType(0, true)
7470
- ], UI.prototype, "rotation", undefined);
7512
+ ], UI.prototype, "rotation", void 0);
7471
7513
  __decorate([
7472
7514
  rotationType(0, true)
7473
- ], UI.prototype, "skewX", undefined);
7515
+ ], UI.prototype, "skewX", void 0);
7474
7516
  __decorate([
7475
7517
  rotationType(0, true)
7476
- ], UI.prototype, "skewY", undefined);
7518
+ ], UI.prototype, "skewY", void 0);
7477
7519
  __decorate([
7478
7520
  positionType(0, true)
7479
- ], UI.prototype, "offsetX", undefined);
7521
+ ], UI.prototype, "offsetX", void 0);
7480
7522
  __decorate([
7481
7523
  positionType(0, true)
7482
- ], UI.prototype, "offsetY", undefined);
7524
+ ], UI.prototype, "offsetY", void 0);
7483
7525
  __decorate([
7484
7526
  positionType(0, true)
7485
- ], UI.prototype, "scrollX", undefined);
7527
+ ], UI.prototype, "scrollX", void 0);
7486
7528
  __decorate([
7487
7529
  positionType(0, true)
7488
- ], UI.prototype, "scrollY", undefined);
7530
+ ], UI.prototype, "scrollY", void 0);
7489
7531
  __decorate([
7490
7532
  autoLayoutType()
7491
- ], UI.prototype, "origin", undefined);
7533
+ ], UI.prototype, "origin", void 0);
7492
7534
  __decorate([
7493
7535
  autoLayoutType()
7494
- ], UI.prototype, "around", undefined);
7536
+ ], UI.prototype, "around", void 0);
7495
7537
  __decorate([
7496
7538
  dataType(false)
7497
- ], UI.prototype, "lazy", undefined);
7539
+ ], UI.prototype, "lazy", void 0);
7498
7540
  __decorate([
7499
7541
  naturalBoundsType(1)
7500
- ], UI.prototype, "pixelRatio", undefined);
7542
+ ], UI.prototype, "pixelRatio", void 0);
7501
7543
  __decorate([
7502
7544
  pathInputType()
7503
- ], UI.prototype, "path", undefined);
7545
+ ], UI.prototype, "path", void 0);
7504
7546
  __decorate([
7505
7547
  pathType()
7506
- ], UI.prototype, "windingRule", undefined);
7548
+ ], UI.prototype, "windingRule", void 0);
7507
7549
  __decorate([
7508
7550
  pathType(true)
7509
- ], UI.prototype, "closed", undefined);
7551
+ ], UI.prototype, "closed", void 0);
7510
7552
  __decorate([
7511
7553
  boundsType(0)
7512
- ], UI.prototype, "padding", undefined);
7554
+ ], UI.prototype, "padding", void 0);
7513
7555
  __decorate([
7514
7556
  boundsType(false)
7515
- ], UI.prototype, "lockRatio", undefined);
7557
+ ], UI.prototype, "lockRatio", void 0);
7516
7558
  __decorate([
7517
7559
  boundsType()
7518
- ], UI.prototype, "widthRange", undefined);
7560
+ ], UI.prototype, "widthRange", void 0);
7519
7561
  __decorate([
7520
7562
  boundsType()
7521
- ], UI.prototype, "heightRange", undefined);
7563
+ ], UI.prototype, "heightRange", void 0);
7522
7564
  __decorate([
7523
7565
  dataType(false)
7524
- ], UI.prototype, "draggable", undefined);
7566
+ ], UI.prototype, "draggable", void 0);
7525
7567
  __decorate([
7526
7568
  dataType()
7527
- ], UI.prototype, "dragBounds", undefined);
7569
+ ], UI.prototype, "dragBounds", void 0);
7528
7570
  __decorate([
7529
7571
  dataType(false)
7530
- ], UI.prototype, "editable", undefined);
7572
+ ], UI.prototype, "editable", void 0);
7531
7573
  __decorate([
7532
7574
  hitType(true)
7533
- ], UI.prototype, "hittable", undefined);
7575
+ ], UI.prototype, "hittable", void 0);
7534
7576
  __decorate([
7535
7577
  hitType('path')
7536
- ], UI.prototype, "hitFill", undefined);
7578
+ ], UI.prototype, "hitFill", void 0);
7537
7579
  __decorate([
7538
7580
  strokeType('path')
7539
- ], UI.prototype, "hitStroke", undefined);
7581
+ ], UI.prototype, "hitStroke", void 0);
7540
7582
  __decorate([
7541
7583
  hitType(false)
7542
- ], UI.prototype, "hitBox", undefined);
7584
+ ], UI.prototype, "hitBox", void 0);
7543
7585
  __decorate([
7544
7586
  hitType(true)
7545
- ], UI.prototype, "hitChildren", undefined);
7587
+ ], UI.prototype, "hitChildren", void 0);
7546
7588
  __decorate([
7547
7589
  hitType(true)
7548
- ], UI.prototype, "hitSelf", undefined);
7590
+ ], UI.prototype, "hitSelf", void 0);
7549
7591
  __decorate([
7550
7592
  hitType()
7551
- ], UI.prototype, "hitRadius", undefined);
7593
+ ], UI.prototype, "hitRadius", void 0);
7552
7594
  __decorate([
7553
7595
  cursorType('')
7554
- ], UI.prototype, "cursor", undefined);
7596
+ ], UI.prototype, "cursor", void 0);
7555
7597
  __decorate([
7556
7598
  surfaceType()
7557
- ], UI.prototype, "fill", undefined);
7599
+ ], UI.prototype, "fill", void 0);
7558
7600
  __decorate([
7559
7601
  strokeType()
7560
- ], UI.prototype, "stroke", undefined);
7602
+ ], UI.prototype, "stroke", void 0);
7561
7603
  __decorate([
7562
7604
  strokeType('inside')
7563
- ], UI.prototype, "strokeAlign", undefined);
7605
+ ], UI.prototype, "strokeAlign", void 0);
7564
7606
  __decorate([
7565
7607
  strokeType(1)
7566
- ], UI.prototype, "strokeWidth", undefined);
7608
+ ], UI.prototype, "strokeWidth", void 0);
7567
7609
  __decorate([
7568
7610
  strokeType(false)
7569
- ], UI.prototype, "strokeWidthFixed", undefined);
7611
+ ], UI.prototype, "strokeWidthFixed", void 0);
7570
7612
  __decorate([
7571
7613
  strokeType('none')
7572
- ], UI.prototype, "strokeCap", undefined);
7614
+ ], UI.prototype, "strokeCap", void 0);
7573
7615
  __decorate([
7574
7616
  strokeType('miter')
7575
- ], UI.prototype, "strokeJoin", undefined);
7617
+ ], UI.prototype, "strokeJoin", void 0);
7576
7618
  __decorate([
7577
7619
  strokeType()
7578
- ], UI.prototype, "dashPattern", undefined);
7620
+ ], UI.prototype, "dashPattern", void 0);
7579
7621
  __decorate([
7580
7622
  strokeType()
7581
- ], UI.prototype, "dashOffset", undefined);
7623
+ ], UI.prototype, "dashOffset", void 0);
7582
7624
  __decorate([
7583
7625
  strokeType(10)
7584
- ], UI.prototype, "miterLimit", undefined);
7626
+ ], UI.prototype, "miterLimit", void 0);
7585
7627
  __decorate([
7586
7628
  pathType(0)
7587
- ], UI.prototype, "cornerRadius", undefined);
7629
+ ], UI.prototype, "cornerRadius", void 0);
7588
7630
  __decorate([
7589
7631
  pathType()
7590
- ], UI.prototype, "cornerSmoothing", undefined);
7632
+ ], UI.prototype, "cornerSmoothing", void 0);
7633
+ __decorate([
7634
+ effectType()
7635
+ ], UI.prototype, "shadow", void 0);
7591
7636
  __decorate([
7592
7637
  effectType()
7593
- ], UI.prototype, "shadow", undefined);
7638
+ ], UI.prototype, "innerShadow", void 0);
7594
7639
  __decorate([
7595
7640
  effectType()
7596
- ], UI.prototype, "innerShadow", undefined);
7641
+ ], UI.prototype, "blur", void 0);
7597
7642
  __decorate([
7598
7643
  effectType()
7599
- ], UI.prototype, "blur", undefined);
7644
+ ], UI.prototype, "backgroundBlur", void 0);
7600
7645
  __decorate([
7601
7646
  effectType()
7602
- ], UI.prototype, "backgroundBlur", undefined);
7647
+ ], UI.prototype, "grayscale", void 0);
7603
7648
  __decorate([
7604
7649
  effectType()
7605
- ], UI.prototype, "grayscale", undefined);
7650
+ ], UI.prototype, "filter", void 0);
7606
7651
  __decorate([
7607
7652
  dataType({})
7608
- ], UI.prototype, "data", undefined);
7653
+ ], UI.prototype, "data", void 0);
7609
7654
  __decorate([
7610
7655
  rewrite(Leaf.prototype.reset)
7611
7656
  ], UI.prototype, "reset", null);
@@ -7666,7 +7711,7 @@ let Group = class Group extends UI {
7666
7711
  };
7667
7712
  __decorate([
7668
7713
  dataProcessor(GroupData)
7669
- ], Group.prototype, "__", undefined);
7714
+ ], Group.prototype, "__", void 0);
7670
7715
  Group = __decorate([
7671
7716
  useModule(Branch),
7672
7717
  registerUI()
@@ -7679,7 +7724,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7679
7724
  get isApp() { return false; }
7680
7725
  get app() { return this.parent || this; }
7681
7726
  get isLeafer() { return true; }
7682
- get imageReady() { return this.viewReady && ImageManager.isComplete; }
7727
+ get imageReady() { return this.viewReady && Resource.isComplete; }
7683
7728
  get layoutLocked() { return !this.layouter.running; }
7684
7729
  get FPS() { return this.renderer ? this.renderer.FPS : 60; }
7685
7730
  get cursorPoint() { return (this.interaction && this.interaction.hoverData) || { x: this.width / 2, y: this.height / 2 }; }
@@ -7890,13 +7935,13 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7890
7935
  WaitHelper.run(this.__viewReadyWait);
7891
7936
  }
7892
7937
  __onLayoutEnd() {
7893
- const { grow, growWidth, growHeight } = this.config;
7938
+ const { grow, width: fixedWidth, height: fixedHeight } = this.config;
7894
7939
  if (grow) {
7895
7940
  let { width, height, pixelRatio } = this;
7896
7941
  const bounds = grow === 'box' ? this.worldBoxBounds : this.__world;
7897
- if (growWidth !== false)
7942
+ if (!fixedWidth)
7898
7943
  width = Math.max(1, bounds.x + bounds.width);
7899
- if (growHeight !== false)
7944
+ if (!fixedHeight)
7900
7945
  height = Math.max(1, bounds.y + bounds.height);
7901
7946
  this.__doResize({ width, height, pixelRatio });
7902
7947
  }
@@ -7974,7 +8019,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
7974
8019
  list.push(item);
7975
8020
  this.requestRender();
7976
8021
  }
7977
- zoom(_zoomType, _padding, _fixedScale) {
8022
+ zoom(_zoomType, _padding, _fixedScale, _transition) {
7978
8023
  return Plugin.need('view');
7979
8024
  }
7980
8025
  getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
@@ -8039,10 +8084,10 @@ let Leafer = Leafer_1 = class Leafer extends Group {
8039
8084
  Leafer.list = new LeafList();
8040
8085
  __decorate([
8041
8086
  dataProcessor(LeaferData)
8042
- ], Leafer.prototype, "__", undefined);
8087
+ ], Leafer.prototype, "__", void 0);
8043
8088
  __decorate([
8044
8089
  boundsType()
8045
- ], Leafer.prototype, "pixelRatio", undefined);
8090
+ ], Leafer.prototype, "pixelRatio", void 0);
8046
8091
  Leafer = Leafer_1 = __decorate([
8047
8092
  registerUI()
8048
8093
  ], Leafer);
@@ -8055,7 +8100,7 @@ let Rect = class Rect extends UI {
8055
8100
  };
8056
8101
  __decorate([
8057
8102
  dataProcessor(RectData)
8058
- ], Rect.prototype, "__", undefined);
8103
+ ], Rect.prototype, "__", void 0);
8059
8104
  Rect = __decorate([
8060
8105
  useModule(RectRender),
8061
8106
  rewriteAble(),
@@ -8146,13 +8191,13 @@ let Box = class Box extends Group {
8146
8191
  };
8147
8192
  __decorate([
8148
8193
  dataProcessor(BoxData)
8149
- ], Box.prototype, "__", undefined);
8194
+ ], Box.prototype, "__", void 0);
8150
8195
  __decorate([
8151
8196
  dataType(false)
8152
- ], Box.prototype, "resizeChildren", undefined);
8197
+ ], Box.prototype, "resizeChildren", void 0);
8153
8198
  __decorate([
8154
8199
  affectRenderBoundsType('show')
8155
- ], Box.prototype, "overflow", undefined);
8200
+ ], Box.prototype, "overflow", void 0);
8156
8201
  __decorate([
8157
8202
  rewrite(rect.__updateStrokeSpread)
8158
8203
  ], Box.prototype, "__updateStrokeSpread", null);
@@ -8191,13 +8236,13 @@ let Frame = class Frame extends Box {
8191
8236
  };
8192
8237
  __decorate([
8193
8238
  dataProcessor(FrameData)
8194
- ], Frame.prototype, "__", undefined);
8239
+ ], Frame.prototype, "__", void 0);
8195
8240
  __decorate([
8196
8241
  surfaceType('#FFFFFF')
8197
- ], Frame.prototype, "fill", undefined);
8242
+ ], Frame.prototype, "fill", void 0);
8198
8243
  __decorate([
8199
8244
  affectRenderBoundsType('hide')
8200
- ], Frame.prototype, "overflow", undefined);
8245
+ ], Frame.prototype, "overflow", void 0);
8201
8246
  Frame = __decorate([
8202
8247
  registerUI()
8203
8248
  ], Frame);
@@ -8244,16 +8289,16 @@ let Ellipse = class Ellipse extends UI {
8244
8289
  };
8245
8290
  __decorate([
8246
8291
  dataProcessor(EllipseData)
8247
- ], Ellipse.prototype, "__", undefined);
8292
+ ], Ellipse.prototype, "__", void 0);
8248
8293
  __decorate([
8249
8294
  pathType(0)
8250
- ], Ellipse.prototype, "innerRadius", undefined);
8295
+ ], Ellipse.prototype, "innerRadius", void 0);
8251
8296
  __decorate([
8252
8297
  pathType(0)
8253
- ], Ellipse.prototype, "startAngle", undefined);
8298
+ ], Ellipse.prototype, "startAngle", void 0);
8254
8299
  __decorate([
8255
8300
  pathType(0)
8256
- ], Ellipse.prototype, "endAngle", undefined);
8301
+ ], Ellipse.prototype, "endAngle", void 0);
8257
8302
  Ellipse = __decorate([
8258
8303
  registerUI()
8259
8304
  ], Ellipse);
@@ -8312,22 +8357,22 @@ let Line = class Line extends UI {
8312
8357
  };
8313
8358
  __decorate([
8314
8359
  dataProcessor(LineData)
8315
- ], Line.prototype, "__", undefined);
8360
+ ], Line.prototype, "__", void 0);
8316
8361
  __decorate([
8317
8362
  affectStrokeBoundsType('center')
8318
- ], Line.prototype, "strokeAlign", undefined);
8363
+ ], Line.prototype, "strokeAlign", void 0);
8319
8364
  __decorate([
8320
8365
  boundsType(0)
8321
- ], Line.prototype, "height", undefined);
8366
+ ], Line.prototype, "height", void 0);
8322
8367
  __decorate([
8323
8368
  pathType()
8324
- ], Line.prototype, "points", undefined);
8369
+ ], Line.prototype, "points", void 0);
8325
8370
  __decorate([
8326
8371
  pathType(0)
8327
- ], Line.prototype, "curve", undefined);
8372
+ ], Line.prototype, "curve", void 0);
8328
8373
  __decorate([
8329
8374
  pathType(false)
8330
- ], Line.prototype, "closed", undefined);
8375
+ ], Line.prototype, "closed", void 0);
8331
8376
  Line = __decorate([
8332
8377
  registerUI()
8333
8378
  ], Line);
@@ -8360,16 +8405,16 @@ let Polygon = class Polygon extends UI {
8360
8405
  };
8361
8406
  __decorate([
8362
8407
  dataProcessor(PolygonData)
8363
- ], Polygon.prototype, "__", undefined);
8408
+ ], Polygon.prototype, "__", void 0);
8364
8409
  __decorate([
8365
8410
  pathType(3)
8366
- ], Polygon.prototype, "sides", undefined);
8411
+ ], Polygon.prototype, "sides", void 0);
8367
8412
  __decorate([
8368
8413
  pathType()
8369
- ], Polygon.prototype, "points", undefined);
8414
+ ], Polygon.prototype, "points", void 0);
8370
8415
  __decorate([
8371
8416
  pathType(0)
8372
- ], Polygon.prototype, "curve", undefined);
8417
+ ], Polygon.prototype, "curve", void 0);
8373
8418
  __decorate([
8374
8419
  rewrite(line.__updateRenderPath)
8375
8420
  ], Polygon.prototype, "__updateRenderPath", null);
@@ -8401,13 +8446,13 @@ let Star = class Star extends UI {
8401
8446
  };
8402
8447
  __decorate([
8403
8448
  dataProcessor(StarData)
8404
- ], Star.prototype, "__", undefined);
8449
+ ], Star.prototype, "__", void 0);
8405
8450
  __decorate([
8406
8451
  pathType(5)
8407
- ], Star.prototype, "corners", undefined);
8452
+ ], Star.prototype, "corners", void 0);
8408
8453
  __decorate([
8409
8454
  pathType(0.382)
8410
- ], Star.prototype, "innerRadius", undefined);
8455
+ ], Star.prototype, "innerRadius", void 0);
8411
8456
  Star = __decorate([
8412
8457
  registerUI()
8413
8458
  ], Star);
@@ -8429,10 +8474,10 @@ let Image = class Image extends Rect {
8429
8474
  };
8430
8475
  __decorate([
8431
8476
  dataProcessor(ImageData)
8432
- ], Image.prototype, "__", undefined);
8477
+ ], Image.prototype, "__", void 0);
8433
8478
  __decorate([
8434
8479
  boundsType('')
8435
- ], Image.prototype, "url", undefined);
8480
+ ], Image.prototype, "url", void 0);
8436
8481
  Image = __decorate([
8437
8482
  registerUI()
8438
8483
  ], Image);
@@ -8495,25 +8540,25 @@ let Canvas = class Canvas extends Rect {
8495
8540
  };
8496
8541
  __decorate([
8497
8542
  dataProcessor(CanvasData)
8498
- ], Canvas.prototype, "__", undefined);
8543
+ ], Canvas.prototype, "__", void 0);
8499
8544
  __decorate([
8500
8545
  resizeType(100)
8501
- ], Canvas.prototype, "width", undefined);
8546
+ ], Canvas.prototype, "width", void 0);
8502
8547
  __decorate([
8503
8548
  resizeType(100)
8504
- ], Canvas.prototype, "height", undefined);
8549
+ ], Canvas.prototype, "height", void 0);
8505
8550
  __decorate([
8506
8551
  resizeType(1)
8507
- ], Canvas.prototype, "pixelRatio", undefined);
8552
+ ], Canvas.prototype, "pixelRatio", void 0);
8508
8553
  __decorate([
8509
8554
  resizeType(true)
8510
- ], Canvas.prototype, "smooth", undefined);
8555
+ ], Canvas.prototype, "smooth", void 0);
8511
8556
  __decorate([
8512
8557
  dataType(false)
8513
- ], Canvas.prototype, "safeResize", undefined);
8558
+ ], Canvas.prototype, "safeResize", void 0);
8514
8559
  __decorate([
8515
8560
  resizeType()
8516
- ], Canvas.prototype, "contextSettings", undefined);
8561
+ ], Canvas.prototype, "contextSettings", void 0);
8517
8562
  Canvas = __decorate([
8518
8563
  registerUI()
8519
8564
  ], Canvas);
@@ -8604,76 +8649,76 @@ let Text = class Text extends UI {
8604
8649
  };
8605
8650
  __decorate([
8606
8651
  dataProcessor(TextData)
8607
- ], Text.prototype, "__", undefined);
8652
+ ], Text.prototype, "__", void 0);
8608
8653
  __decorate([
8609
8654
  boundsType(0)
8610
- ], Text.prototype, "width", undefined);
8655
+ ], Text.prototype, "width", void 0);
8611
8656
  __decorate([
8612
8657
  boundsType(0)
8613
- ], Text.prototype, "height", undefined);
8658
+ ], Text.prototype, "height", void 0);
8614
8659
  __decorate([
8615
8660
  dataType(false)
8616
- ], Text.prototype, "resizeFontSize", undefined);
8661
+ ], Text.prototype, "resizeFontSize", void 0);
8617
8662
  __decorate([
8618
8663
  surfaceType('#000000')
8619
- ], Text.prototype, "fill", undefined);
8664
+ ], Text.prototype, "fill", void 0);
8620
8665
  __decorate([
8621
8666
  affectStrokeBoundsType('outside')
8622
- ], Text.prototype, "strokeAlign", undefined);
8667
+ ], Text.prototype, "strokeAlign", void 0);
8623
8668
  __decorate([
8624
8669
  hitType('all')
8625
- ], Text.prototype, "hitFill", undefined);
8670
+ ], Text.prototype, "hitFill", void 0);
8626
8671
  __decorate([
8627
8672
  boundsType('')
8628
- ], Text.prototype, "text", undefined);
8673
+ ], Text.prototype, "text", void 0);
8629
8674
  __decorate([
8630
8675
  boundsType('caption')
8631
- ], Text.prototype, "fontFamily", undefined);
8676
+ ], Text.prototype, "fontFamily", void 0);
8632
8677
  __decorate([
8633
8678
  boundsType(12)
8634
- ], Text.prototype, "fontSize", undefined);
8679
+ ], Text.prototype, "fontSize", void 0);
8635
8680
  __decorate([
8636
8681
  boundsType('normal')
8637
- ], Text.prototype, "fontWeight", undefined);
8682
+ ], Text.prototype, "fontWeight", void 0);
8638
8683
  __decorate([
8639
8684
  boundsType(false)
8640
- ], Text.prototype, "italic", undefined);
8685
+ ], Text.prototype, "italic", void 0);
8641
8686
  __decorate([
8642
8687
  boundsType('none')
8643
- ], Text.prototype, "textCase", undefined);
8688
+ ], Text.prototype, "textCase", void 0);
8644
8689
  __decorate([
8645
8690
  boundsType('none')
8646
- ], Text.prototype, "textDecoration", undefined);
8691
+ ], Text.prototype, "textDecoration", void 0);
8647
8692
  __decorate([
8648
8693
  boundsType(0)
8649
- ], Text.prototype, "letterSpacing", undefined);
8694
+ ], Text.prototype, "letterSpacing", void 0);
8650
8695
  __decorate([
8651
8696
  boundsType({ type: 'percent', value: 1.5 })
8652
- ], Text.prototype, "lineHeight", undefined);
8697
+ ], Text.prototype, "lineHeight", void 0);
8653
8698
  __decorate([
8654
8699
  boundsType(0)
8655
- ], Text.prototype, "paraIndent", undefined);
8700
+ ], Text.prototype, "paraIndent", void 0);
8656
8701
  __decorate([
8657
8702
  boundsType(0)
8658
- ], Text.prototype, "paraSpacing", undefined);
8703
+ ], Text.prototype, "paraSpacing", void 0);
8659
8704
  __decorate([
8660
8705
  boundsType('x')
8661
- ], Text.prototype, "writingMode", undefined);
8706
+ ], Text.prototype, "writingMode", void 0);
8662
8707
  __decorate([
8663
8708
  boundsType('left')
8664
- ], Text.prototype, "textAlign", undefined);
8709
+ ], Text.prototype, "textAlign", void 0);
8665
8710
  __decorate([
8666
8711
  boundsType('top')
8667
- ], Text.prototype, "verticalAlign", undefined);
8712
+ ], Text.prototype, "verticalAlign", void 0);
8668
8713
  __decorate([
8669
8714
  boundsType(true)
8670
- ], Text.prototype, "autoSizeAlign", undefined);
8715
+ ], Text.prototype, "autoSizeAlign", void 0);
8671
8716
  __decorate([
8672
8717
  boundsType('normal')
8673
- ], Text.prototype, "textWrap", undefined);
8718
+ ], Text.prototype, "textWrap", void 0);
8674
8719
  __decorate([
8675
8720
  boundsType('show')
8676
- ], Text.prototype, "textOverflow", undefined);
8721
+ ], Text.prototype, "textOverflow", void 0);
8677
8722
  Text = __decorate([
8678
8723
  registerUI()
8679
8724
  ], Text);
@@ -8686,10 +8731,10 @@ let Path = class Path extends UI {
8686
8731
  };
8687
8732
  __decorate([
8688
8733
  dataProcessor(PathData)
8689
- ], Path.prototype, "__", undefined);
8734
+ ], Path.prototype, "__", void 0);
8690
8735
  __decorate([
8691
8736
  affectStrokeBoundsType('center')
8692
- ], Path.prototype, "strokeAlign", undefined);
8737
+ ], Path.prototype, "strokeAlign", void 0);
8693
8738
  Path = __decorate([
8694
8739
  registerUI()
8695
8740
  ], Path);
@@ -8728,10 +8773,10 @@ let Pen = class Pen extends Group {
8728
8773
  };
8729
8774
  __decorate([
8730
8775
  dataProcessor(PenData)
8731
- ], Pen.prototype, "__", undefined);
8776
+ ], Pen.prototype, "__", void 0);
8732
8777
  __decorate([
8733
8778
  penPathType()
8734
- ], Pen.prototype, "path", undefined);
8779
+ ], Pen.prototype, "path", void 0);
8735
8780
  Pen = __decorate([
8736
8781
  useModule(PathCreator, ['set', 'path', 'paint']),
8737
8782
  registerUI()
@@ -9103,7 +9148,7 @@ function getPatternData(paint, box, image) {
9103
9148
  box = tempBox.set(box).shrink(paint.padding);
9104
9149
  if (paint.mode === 'strench')
9105
9150
  paint.mode = 'stretch';
9106
- const { opacity, mode, align, offset, scale, size, rotation, repeat } = paint;
9151
+ const { opacity, mode, align, offset, scale, size, rotation, repeat, filters } = paint;
9107
9152
  const sameBox = box.width === width && box.height === height;
9108
9153
  const data = { mode };
9109
9154
  const swapSize = align !== 'center' && (rotation || 0) % 180 === 90;
@@ -9166,6 +9211,8 @@ function getPatternData(paint, box, image) {
9166
9211
  data.height = height;
9167
9212
  if (opacity)
9168
9213
  data.opacity = opacity;
9214
+ if (filters)
9215
+ data.filters = filters;
9169
9216
  if (repeat)
9170
9217
  data.repeat = typeof repeat === 'string' ? (repeat === 'x' ? 'repeat-x' : 'repeat-y') : 'repeat';
9171
9218
  return data;
@@ -9268,7 +9315,7 @@ function createPattern(ui, paint, pixelRatio) {
9268
9315
  scaleX = abs$1(scaleX);
9269
9316
  scaleY = abs$1(scaleY);
9270
9317
  const { image, data } = paint;
9271
- let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, opacity, transform, repeat } = data;
9318
+ let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, transform, repeat } = data;
9272
9319
  if (sx) {
9273
9320
  imageMatrix = get$1();
9274
9321
  copy$1(imageMatrix, transform);
@@ -9311,7 +9358,7 @@ function createPattern(ui, paint, pixelRatio) {
9311
9358
  }
9312
9359
  scale(imageMatrix, 1 / scaleX, 1 / scaleY);
9313
9360
  }
9314
- const canvas = image.getCanvas(ceil(width) || 1, ceil(height) || 1, opacity);
9361
+ const canvas = image.getCanvas(ceil(width) || 1, ceil(height) || 1, data.opacity, data.filters);
9315
9362
  const pattern = image.getPattern(canvas, repeat || (Platform.origin.noRepeat || 'no-repeat'), imageMatrix, paint);
9316
9363
  paint.style = pattern;
9317
9364
  paint.patternId = id;
@@ -9355,7 +9402,7 @@ function checkImage(ui, canvas, paint, allowPaint) {
9355
9402
  canvas.opacity *= data.opacity;
9356
9403
  if (data.transform)
9357
9404
  canvas.transform(data.transform);
9358
- canvas.drawImage(paint.image.view, 0, 0, data.width, data.height);
9405
+ canvas.drawImage(paint.image.getFull(data.filters), 0, 0, data.width, data.height);
9359
9406
  canvas.restore();
9360
9407
  return true;
9361
9408
  }
@@ -9365,7 +9412,7 @@ function checkImage(ui, canvas, paint, allowPaint) {
9365
9412
  }
9366
9413
  else {
9367
9414
  if (!paint.patternTask) {
9368
- paint.patternTask = ImageManager.patternTasker.add(() => __awaiter(this, undefined, undefined, function* () {
9415
+ paint.patternTask = ImageManager.patternTasker.add(() => __awaiter(this, void 0, void 0, function* () {
9369
9416
  paint.patternTask = null;
9370
9417
  if (canvas.bounds.hit(ui.__nowWorld))
9371
9418
  createPattern(ui, paint, pixelRatio);
@@ -9955,11 +10002,11 @@ const TextMode = 2;
9955
10002
  function layoutChar(drawData, style, width, _height) {
9956
10003
  const { rows } = drawData;
9957
10004
  const { textAlign, paraIndent, letterSpacing } = style;
9958
- let charX, addWordWidth, indentWidth, mode, wordChar;
10005
+ let charX, addWordWidth, indentWidth, mode, wordChar, wordsLength;
9959
10006
  rows.forEach(row => {
9960
10007
  if (row.words) {
9961
- indentWidth = paraIndent && row.paraStart ? paraIndent : 0;
9962
- addWordWidth = (width && (textAlign === 'justify' || textAlign === 'both') && row.words.length > 1) ? (width - row.width - indentWidth) / (row.words.length - 1) : 0;
10008
+ indentWidth = paraIndent && row.paraStart ? paraIndent : 0, wordsLength = row.words.length;
10009
+ addWordWidth = (width && (textAlign === 'justify' || textAlign === 'both') && wordsLength > 1) ? (width - row.width - indentWidth) / (wordsLength - 1) : 0;
9963
10010
  mode = (letterSpacing || row.isOverflow) ? CharMode : (addWordWidth > 0.01 ? WordMode : TextMode);
9964
10011
  if (row.isOverflow && !letterSpacing)
9965
10012
  row.textMode = true;
@@ -9971,7 +10018,7 @@ function layoutChar(drawData, style, width, _height) {
9971
10018
  row.x += indentWidth;
9972
10019
  charX = row.x;
9973
10020
  row.data = [];
9974
- row.words.forEach(word => {
10021
+ row.words.forEach((word, index) => {
9975
10022
  if (mode === WordMode) {
9976
10023
  wordChar = { char: '', x: charX };
9977
10024
  charX = toWordChar(word.data, charX, wordChar);
@@ -9981,7 +10028,7 @@ function layoutChar(drawData, style, width, _height) {
9981
10028
  else {
9982
10029
  charX = toChar(word.data, charX, row.data, row.isOverflow);
9983
10030
  }
9984
- if (addWordWidth && (!row.paraEnd || textAlign === 'both')) {
10031
+ if (addWordWidth && (!row.paraEnd || textAlign === 'both') && (index !== wordsLength - 1)) {
9985
10032
  charX += addWordWidth;
9986
10033
  row.width += addWordWidth;
9987
10034
  }
@@ -10236,4 +10283,5 @@ try {
10236
10283
  }
10237
10284
  catch (_a) { }
10238
10285
 
10239
- export { AlignHelper, 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, Eventer, 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, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, 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, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isNull, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
10286
+ export { AlignHelper, 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, Eventer, Export, FileHelper, Filter, 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, 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, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isNull, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
10287
+ //# sourceMappingURL=miniapp.module.js.map