@leafer-draw/worker 2.0.2 → 2.0.4
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.
- package/dist/worker.cjs +8 -6
- package/dist/worker.esm.js +8 -6
- package/dist/worker.esm.min.js +1 -1
- package/dist/worker.esm.min.js.map +1 -1
- package/dist/worker.js +117 -54
- package/dist/worker.min.cjs +1 -1
- package/dist/worker.min.cjs.map +1 -1
- package/dist/worker.min.js +1 -1
- package/dist/worker.min.js.map +1 -1
- package/dist/worker.module.js +119 -55
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +7 -7
package/dist/worker.module.js
CHANGED
|
@@ -252,6 +252,7 @@ class LeafData {
|
|
|
252
252
|
}
|
|
253
253
|
destroy() {
|
|
254
254
|
this.__input = this.__middle = null;
|
|
255
|
+
if (this.__complexData) this.__complexData.destroy();
|
|
255
256
|
}
|
|
256
257
|
}
|
|
257
258
|
|
|
@@ -350,6 +351,8 @@ const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumbe
|
|
|
350
351
|
|
|
351
352
|
const {round: round$3, pow: pow$1, max: max$3, floor: floor$2, PI: PI$3} = Math;
|
|
352
353
|
|
|
354
|
+
const tempScaleData$1 = {};
|
|
355
|
+
|
|
353
356
|
const MathHelper = {
|
|
354
357
|
within(value, min, max) {
|
|
355
358
|
if (isObject(min)) max = min.max, min = min.min;
|
|
@@ -393,6 +396,24 @@ const MathHelper = {
|
|
|
393
396
|
} else if (scale) MathHelper.assignScale(scaleData, scale);
|
|
394
397
|
return scaleData;
|
|
395
398
|
},
|
|
399
|
+
getScaleFixedData(worldScaleData, scaleFixed, unscale, abs, _localScaleData) {
|
|
400
|
+
let {scaleX: scaleX, scaleY: scaleY} = worldScaleData;
|
|
401
|
+
if (abs || scaleFixed) scaleX < 0 && (scaleX = -scaleX), scaleY < 0 && (scaleY = -scaleY);
|
|
402
|
+
if (scaleFixed) {
|
|
403
|
+
if (scaleFixed === true) {
|
|
404
|
+
scaleX = scaleY = unscale ? 1 : 1 / scaleX;
|
|
405
|
+
} else {
|
|
406
|
+
let minScale;
|
|
407
|
+
if (isNumber(scaleFixed)) minScale = scaleFixed; else if (scaleFixed === "zoom-in") minScale = 1;
|
|
408
|
+
if (minScale) {
|
|
409
|
+
if (scaleX > minScale || scaleY > minScale) scaleX = scaleY = unscale ? 1 : 1 / scaleX; else scaleX = scaleY = unscale ? 1 : 1 / minScale;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
tempScaleData$1.scaleX = scaleX;
|
|
414
|
+
tempScaleData$1.scaleY = scaleY;
|
|
415
|
+
return tempScaleData$1;
|
|
416
|
+
},
|
|
396
417
|
assignScale(scaleData, scale) {
|
|
397
418
|
if (isNumber(scale)) {
|
|
398
419
|
scaleData.scaleX = scaleData.scaleY = scale;
|
|
@@ -889,8 +910,8 @@ const PointHelper = {
|
|
|
889
910
|
if (isObject(originPoints[0])) points = [], originPoints.forEach(p => points.push(p.x, p.y));
|
|
890
911
|
return points;
|
|
891
912
|
},
|
|
892
|
-
isSame(t, point) {
|
|
893
|
-
return float$1(t.x) === float$1(point.x) && float$1(t.y) === float$1(point.y);
|
|
913
|
+
isSame(t, point, quick) {
|
|
914
|
+
return quick ? t.x === point.x && t.y === point.y : float$1(t.x) === float$1(point.x) && float$1(t.y) === float$1(point.y);
|
|
894
915
|
},
|
|
895
916
|
reset(t) {
|
|
896
917
|
P$5.reset(t);
|
|
@@ -965,8 +986,8 @@ class Point {
|
|
|
965
986
|
getAtan2(to) {
|
|
966
987
|
return PointHelper.getAtan2(this, to);
|
|
967
988
|
}
|
|
968
|
-
isSame(point) {
|
|
969
|
-
return PointHelper.isSame(this, point);
|
|
989
|
+
isSame(point, quick) {
|
|
990
|
+
return PointHelper.isSame(this, point, quick);
|
|
970
991
|
}
|
|
971
992
|
reset() {
|
|
972
993
|
PointHelper.reset(this);
|
|
@@ -1222,9 +1243,9 @@ const AroundHelper = {
|
|
|
1222
1243
|
}
|
|
1223
1244
|
if (!onlyBoxSize) to.x += box.x, to.y += box.y;
|
|
1224
1245
|
},
|
|
1225
|
-
getPoint(around, box, to) {
|
|
1246
|
+
getPoint(around, box, to, onlyBoxSize = true) {
|
|
1226
1247
|
if (!to) to = {};
|
|
1227
|
-
AroundHelper.toPoint(around, box, to,
|
|
1248
|
+
AroundHelper.toPoint(around, box, to, onlyBoxSize);
|
|
1228
1249
|
return to;
|
|
1229
1250
|
}
|
|
1230
1251
|
};
|
|
@@ -1491,6 +1512,9 @@ const BoundsHelper = {
|
|
|
1491
1512
|
y: y + height
|
|
1492
1513
|
} ];
|
|
1493
1514
|
},
|
|
1515
|
+
getPoint(t, around, onlyBoxSize = false, to) {
|
|
1516
|
+
return AroundHelper.getPoint(around, t, to, onlyBoxSize);
|
|
1517
|
+
},
|
|
1494
1518
|
hitRadiusPoint(t, point, pointMatrix) {
|
|
1495
1519
|
if (pointMatrix) point = PointHelper.tempToInnerRadiusPointOf(point, pointMatrix);
|
|
1496
1520
|
return point.x >= t.x - point.radiusX && point.x <= t.x + t.width + point.radiusX && (point.y >= t.y - point.radiusY && point.y <= t.y + t.height + point.radiusY);
|
|
@@ -1662,6 +1686,9 @@ class Bounds {
|
|
|
1662
1686
|
getPoints() {
|
|
1663
1687
|
return BoundsHelper.getPoints(this);
|
|
1664
1688
|
}
|
|
1689
|
+
getPoint(around, onlyBoxSize, to) {
|
|
1690
|
+
return BoundsHelper.getPoint(this, around, onlyBoxSize, to);
|
|
1691
|
+
}
|
|
1665
1692
|
hitPoint(point, pointMatrix) {
|
|
1666
1693
|
return BoundsHelper.hitPoint(this, point, pointMatrix);
|
|
1667
1694
|
}
|
|
@@ -4102,6 +4129,7 @@ const ImageManager = {
|
|
|
4102
4129
|
return image;
|
|
4103
4130
|
},
|
|
4104
4131
|
recycle(image) {
|
|
4132
|
+
if (image.parent) image = image.parent;
|
|
4105
4133
|
image.use--;
|
|
4106
4134
|
setTimeout(() => {
|
|
4107
4135
|
if (!image.use) {
|
|
@@ -4270,8 +4298,10 @@ class LeaferImage {
|
|
|
4270
4298
|
return undefined;
|
|
4271
4299
|
}
|
|
4272
4300
|
clearLevels(_checkUse) {}
|
|
4301
|
+
destroyFilter() {}
|
|
4273
4302
|
destroy() {
|
|
4274
4303
|
this.clearLevels();
|
|
4304
|
+
this.destroyFilter();
|
|
4275
4305
|
const {view: view} = this;
|
|
4276
4306
|
if (view && view.close) view.close();
|
|
4277
4307
|
this.config = {
|
|
@@ -4468,7 +4498,6 @@ function dimType(defaultValue) {
|
|
|
4468
4498
|
if (this.__setAttr(key, value)) {
|
|
4469
4499
|
const data = this.__;
|
|
4470
4500
|
DataHelper.stintSet(data, "__useDim", data.dim || data.bright || data.dimskip);
|
|
4471
|
-
this.__layout.surfaceChange();
|
|
4472
4501
|
}
|
|
4473
4502
|
}
|
|
4474
4503
|
}));
|
|
@@ -4518,7 +4547,6 @@ function sortType(defaultValue) {
|
|
|
4518
4547
|
return decorateLeafAttr(defaultValue, key => attr({
|
|
4519
4548
|
set(value) {
|
|
4520
4549
|
if (this.__setAttr(key, value)) {
|
|
4521
|
-
this.__layout.surfaceChange();
|
|
4522
4550
|
this.waitParent(() => {
|
|
4523
4551
|
this.parent.__layout.childrenSortChange();
|
|
4524
4552
|
});
|
|
@@ -4555,7 +4583,6 @@ function hitType(defaultValue) {
|
|
|
4555
4583
|
set(value) {
|
|
4556
4584
|
if (this.__setAttr(key, value)) {
|
|
4557
4585
|
this.__layout.hitCanvasChanged = true;
|
|
4558
|
-
if (Debug.showBounds === "hit") this.__layout.surfaceChange();
|
|
4559
4586
|
if (this.leafer) this.leafer.updateCursor();
|
|
4560
4587
|
}
|
|
4561
4588
|
}
|
|
@@ -4761,6 +4788,10 @@ const LeafHelper = {
|
|
|
4761
4788
|
if (layout.stateStyleChanged) leaf.updateState();
|
|
4762
4789
|
if (layout.opacityChanged) updateAllWorldOpacity(leaf);
|
|
4763
4790
|
leaf.__updateChange();
|
|
4791
|
+
if (layout.surfaceChanged) {
|
|
4792
|
+
if (leaf.__hasComplex) L.updateComplex(leaf);
|
|
4793
|
+
layout.surfaceChanged = false;
|
|
4794
|
+
}
|
|
4764
4795
|
},
|
|
4765
4796
|
updateAllChange(leaf) {
|
|
4766
4797
|
updateChange$1(leaf);
|
|
@@ -4785,6 +4816,9 @@ const LeafHelper = {
|
|
|
4785
4816
|
if (!fromWorld) fromWorld = leaf.__nowWorld;
|
|
4786
4817
|
if (leaf.__worldFlipped || Platform.fullImageShadow) currentCanvas.copyWorldByReset(fromCanvas, fromWorld, leaf.__nowWorld, blendMode, onlyResetTransform); else currentCanvas.copyWorldToInner(fromCanvas, fromWorld, leaf.__layout.renderBounds, blendMode);
|
|
4787
4818
|
},
|
|
4819
|
+
renderComplex(_leaf, _canvas, _options) {},
|
|
4820
|
+
updateComplex(_leaf) {},
|
|
4821
|
+
checkComplex(_leaf) {},
|
|
4788
4822
|
moveWorld(t, x, y = 0, isInnerPoint, transition) {
|
|
4789
4823
|
const local = isObject(x) ? Object.assign({}, x) : {
|
|
4790
4824
|
x: x,
|
|
@@ -4896,6 +4930,9 @@ const LeafHelper = {
|
|
|
4896
4930
|
divideParent(matrix, relative.scrollWorldTransform);
|
|
4897
4931
|
return temp ? matrix : Object.assign({}, matrix);
|
|
4898
4932
|
},
|
|
4933
|
+
updateScaleFixedWorld(_t) {},
|
|
4934
|
+
updateOuterBounds(_t) {},
|
|
4935
|
+
cacheId(_t) {},
|
|
4899
4936
|
drop(t, parent, index, resize) {
|
|
4900
4937
|
t.setTransform(L.getRelativeWorld(t, parent, true), resize);
|
|
4901
4938
|
parent.add(t, index);
|
|
@@ -4946,7 +4983,8 @@ const LeafBoundsHelper = {
|
|
|
4946
4983
|
return target.__.eraser || target.__.visible === 0 ? null : target.__layout.localStrokeBounds;
|
|
4947
4984
|
},
|
|
4948
4985
|
localRenderBounds(target) {
|
|
4949
|
-
|
|
4986
|
+
const {__: __, __layout: __layout} = target;
|
|
4987
|
+
return __.eraser || __.visible === 0 ? null : __layout.localOuterBounds || __layout.localRenderBounds;
|
|
4950
4988
|
},
|
|
4951
4989
|
maskLocalBoxBounds(target, index) {
|
|
4952
4990
|
return checkMask(target, index) && target.__localBoxBounds;
|
|
@@ -4955,7 +4993,8 @@ const LeafBoundsHelper = {
|
|
|
4955
4993
|
return checkMask(target, index) && target.__layout.localStrokeBounds;
|
|
4956
4994
|
},
|
|
4957
4995
|
maskLocalRenderBounds(target, index) {
|
|
4958
|
-
|
|
4996
|
+
const {__layout: __layout} = target;
|
|
4997
|
+
return checkMask(target, index) && (__layout.localOuterBounds || __layout.localRenderBounds);
|
|
4959
4998
|
},
|
|
4960
4999
|
excludeRenderBounds(child, options) {
|
|
4961
5000
|
if (options.bounds && !options.bounds.hit(child.__world, options.matrix)) return true;
|
|
@@ -5475,7 +5514,6 @@ class LeafLayout {
|
|
|
5475
5514
|
}
|
|
5476
5515
|
opacityChange() {
|
|
5477
5516
|
this.opacityChanged = true;
|
|
5478
|
-
this.surfaceChanged || this.surfaceChange();
|
|
5479
5517
|
}
|
|
5480
5518
|
childrenSortChange() {
|
|
5481
5519
|
if (!this.childrenSortChanged) {
|
|
@@ -5582,7 +5620,7 @@ class BoundsEvent extends Event {
|
|
|
5582
5620
|
}
|
|
5583
5621
|
}
|
|
5584
5622
|
static emitWorld(leaf) {
|
|
5585
|
-
if (leaf.leaferIsReady) leaf.emit(WORLD,
|
|
5623
|
+
if (leaf.leaferIsReady) leaf.emit(WORLD, leaf);
|
|
5586
5624
|
}
|
|
5587
5625
|
}
|
|
5588
5626
|
|
|
@@ -5968,6 +6006,7 @@ const LeafMatrix = {
|
|
|
5968
6006
|
const {parent: parent, __layout: __layout, __world: __world, __scrollWorld: __scrollWorld, __: __} = this;
|
|
5969
6007
|
multiplyParent$2(this.__local || __layout, parent ? parent.__scrollWorld || parent.__world : defaultWorld, __world, !!__layout.affectScaleOrRotation, __);
|
|
5970
6008
|
if (__scrollWorld) translateInner(Object.assign(__scrollWorld, __world), __.scrollX, __.scrollY);
|
|
6009
|
+
if (__layout.scaleFixed) LeafHelper.updateScaleFixedWorld(this);
|
|
5971
6010
|
},
|
|
5972
6011
|
__updateLocalMatrix() {
|
|
5973
6012
|
if (this.__local) {
|
|
@@ -6001,6 +6040,7 @@ const LeafBounds = {
|
|
|
6001
6040
|
__updateWorldBounds() {
|
|
6002
6041
|
const {__layout: __layout, __world: __world} = this;
|
|
6003
6042
|
toOuterOf$2(__layout.renderBounds, __world, __world);
|
|
6043
|
+
if (this.__hasComplex) LeafHelper.checkComplex(this);
|
|
6004
6044
|
if (__layout.resized) {
|
|
6005
6045
|
if (__layout.resized === "inner") this.__onUpdateSize();
|
|
6006
6046
|
if (this.__hasLocalEvent) BoundsEvent.emitLocal(this);
|
|
@@ -6050,6 +6090,7 @@ const LeafBounds = {
|
|
|
6050
6090
|
layout.renderChanged = undefined;
|
|
6051
6091
|
if (this.parent) this.parent.__layout.renderChange();
|
|
6052
6092
|
}
|
|
6093
|
+
if (layout.outerScale) LeafHelper.updateOuterBounds(this);
|
|
6053
6094
|
layout.resized || (layout.resized = "local");
|
|
6054
6095
|
layout.boundsChanged = undefined;
|
|
6055
6096
|
},
|
|
@@ -6116,7 +6157,7 @@ const LeafRender = {
|
|
|
6116
6157
|
const data = this.__;
|
|
6117
6158
|
if (data.bright && !options.topRendering) return options.topList.add(this);
|
|
6118
6159
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
6119
|
-
canvas.opacity = options.dimOpacity && !data.dimskip ? data.opacity * options.dimOpacity : data.opacity;
|
|
6160
|
+
canvas.opacity = options.ignoreOpacity ? 1 : options.dimOpacity && !data.dimskip ? data.opacity * options.dimOpacity : data.opacity;
|
|
6120
6161
|
if (this.__.__single) {
|
|
6121
6162
|
if (data.eraser === "path") return this.__renderEraser(canvas, options);
|
|
6122
6163
|
const tempCanvas = canvas.getSameCanvas(true, true);
|
|
@@ -6170,7 +6211,7 @@ const BranchRender = {
|
|
|
6170
6211
|
if (data.eraser === "path") return this.__renderEraser(canvas, options);
|
|
6171
6212
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
6172
6213
|
this.__renderBranch(tempCanvas, options);
|
|
6173
|
-
canvas.opacity = options.dimOpacity ? data.opacity * options.dimOpacity : data.opacity;
|
|
6214
|
+
canvas.opacity = options.ignoreOpacity ? 1 : options.dimOpacity ? data.opacity * options.dimOpacity : data.opacity;
|
|
6174
6215
|
canvas.copyWorldByReset(tempCanvas, nowWorld, nowWorld, data.__blendMode, true);
|
|
6175
6216
|
tempCanvas.recycle(nowWorld);
|
|
6176
6217
|
} else {
|
|
@@ -6186,7 +6227,7 @@ const BranchRender = {
|
|
|
6186
6227
|
const {children: children} = this;
|
|
6187
6228
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
6188
6229
|
child = children[i];
|
|
6189
|
-
excludeRenderBounds$1(child, options) || (child.
|
|
6230
|
+
excludeRenderBounds$1(child, options) || (child.__hasComplex ? LeafHelper.renderComplex(child, canvas, options) : child.__render(canvas, options));
|
|
6190
6231
|
}
|
|
6191
6232
|
}
|
|
6192
6233
|
},
|
|
@@ -6200,8 +6241,6 @@ const BranchRender = {
|
|
|
6200
6241
|
}
|
|
6201
6242
|
};
|
|
6202
6243
|
|
|
6203
|
-
const tempScaleData$1 = {};
|
|
6204
|
-
|
|
6205
6244
|
const {LEAF: LEAF, create: create} = IncrementId;
|
|
6206
6245
|
|
|
6207
6246
|
const {stintSet: stintSet$4} = DataHelper;
|
|
@@ -6212,6 +6251,8 @@ const {toOuterOf: toOuterOf$1} = BoundsHelper;
|
|
|
6212
6251
|
|
|
6213
6252
|
const {copy: copy$2, move: move$2} = PointHelper;
|
|
6214
6253
|
|
|
6254
|
+
const {getScaleFixedData: getScaleFixedData} = MathHelper;
|
|
6255
|
+
|
|
6215
6256
|
const {moveLocal: moveLocal, zoomOfLocal: zoomOfLocal, rotateOfLocal: rotateOfLocal, skewOfLocal: skewOfLocal, moveWorld: moveWorld, zoomOfWorld: zoomOfWorld, rotateOfWorld: rotateOfWorld, skewOfWorld: skewOfWorld, transform: transform, transformWorld: transformWorld, setTransform: setTransform, getFlipTransform: getFlipTransform, getLocalOrigin: getLocalOrigin, getRelativeWorld: getRelativeWorld, drop: drop} = LeafHelper;
|
|
6216
6257
|
|
|
6217
6258
|
let Leaf = class Leaf {
|
|
@@ -6370,6 +6411,7 @@ let Leaf = class Leaf {
|
|
|
6370
6411
|
this.__level = this.parent ? this.parent.__level + 1 : 1;
|
|
6371
6412
|
if (this.animation) this.__runAnimation("in");
|
|
6372
6413
|
if (this.__bubbleMap) this.__emitLifeEvent(ChildEvent.MOUNTED);
|
|
6414
|
+
if (leafer.cacheId) LeafHelper.cacheId(this);
|
|
6373
6415
|
} else {
|
|
6374
6416
|
this.__emitLifeEvent(ChildEvent.UNMOUNTED);
|
|
6375
6417
|
}
|
|
@@ -6499,13 +6541,8 @@ let Leaf = class Leaf {
|
|
|
6499
6541
|
if (scaleX < 0) scaleX = -scaleX;
|
|
6500
6542
|
return scaleX > 1 ? scaleX : 1;
|
|
6501
6543
|
}
|
|
6502
|
-
getRenderScaleData(abs, scaleFixed) {
|
|
6503
|
-
|
|
6504
|
-
if (abs) scaleX < 0 && (scaleX = -scaleX), scaleY < 0 && (scaleY = -scaleY);
|
|
6505
|
-
if (scaleFixed === true || scaleFixed === "zoom-in" && scaleX > 1 && scaleY > 1) scaleX = scaleY = 1;
|
|
6506
|
-
tempScaleData$1.scaleX = scaleX;
|
|
6507
|
-
tempScaleData$1.scaleY = scaleY;
|
|
6508
|
-
return tempScaleData$1;
|
|
6544
|
+
getRenderScaleData(abs, scaleFixed, unscale = true) {
|
|
6545
|
+
return getScaleFixedData(ImageManager.patternLocked ? this.__world : this.__nowWorld || this.__world, scaleFixed, unscale, abs);
|
|
6509
6546
|
}
|
|
6510
6547
|
getTransform(relative) {
|
|
6511
6548
|
return this.__layout.getTransform(relative || "local");
|
|
@@ -6544,14 +6581,16 @@ let Leaf = class Leaf {
|
|
|
6544
6581
|
relative.innerToWorld(world, to, distance);
|
|
6545
6582
|
world = to ? to : world;
|
|
6546
6583
|
}
|
|
6547
|
-
toInnerPoint(this.
|
|
6584
|
+
toInnerPoint(this.worldTransform, world, to, distance);
|
|
6548
6585
|
}
|
|
6549
6586
|
innerToWorld(inner, to, distance, relative) {
|
|
6550
|
-
toOuterPoint(this.
|
|
6587
|
+
toOuterPoint(this.worldTransform, inner, to, distance);
|
|
6551
6588
|
if (relative) relative.worldToInner(to ? to : inner, null, distance);
|
|
6552
6589
|
}
|
|
6553
6590
|
getBoxPoint(world, relative, distance, change) {
|
|
6554
|
-
|
|
6591
|
+
const inner = this.getInnerPoint(world, relative, distance, change);
|
|
6592
|
+
if (distance) return inner;
|
|
6593
|
+
return this.getBoxPointByInner(inner, null, null, true);
|
|
6555
6594
|
}
|
|
6556
6595
|
getBoxPointByInner(inner, _relative, _distance, change) {
|
|
6557
6596
|
const point = change ? inner : Object.assign({}, inner), {x: x, y: y} = this.boxBounds;
|
|
@@ -6667,7 +6706,6 @@ let Leaf = class Leaf {
|
|
|
6667
6706
|
__drawHitPath(_canvas) {}
|
|
6668
6707
|
__updateHitCanvas() {}
|
|
6669
6708
|
__render(_canvas, _options) {}
|
|
6670
|
-
__renderComplex(_canvas, _options) {}
|
|
6671
6709
|
__drawFast(_canvas, _options) {}
|
|
6672
6710
|
__draw(_canvas, _options, _originCanvas) {}
|
|
6673
6711
|
__clip(_canvas, _options) {}
|
|
@@ -6678,7 +6716,7 @@ let Leaf = class Leaf {
|
|
|
6678
6716
|
__drawPath(_canvas) {}
|
|
6679
6717
|
__drawRenderPath(_canvas) {}
|
|
6680
6718
|
__updatePath() {}
|
|
6681
|
-
__updateRenderPath() {}
|
|
6719
|
+
__updateRenderPath(_updateCache) {}
|
|
6682
6720
|
getMotionPathData() {
|
|
6683
6721
|
return Plugin.need("path");
|
|
6684
6722
|
}
|
|
@@ -6752,9 +6790,11 @@ let Branch = class Branch extends Leaf {
|
|
|
6752
6790
|
return 0;
|
|
6753
6791
|
}
|
|
6754
6792
|
__updateRenderSpread() {
|
|
6793
|
+
let layout;
|
|
6755
6794
|
const {children: children} = this;
|
|
6756
6795
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
6757
|
-
|
|
6796
|
+
layout = children[i].__layout;
|
|
6797
|
+
if (layout.renderSpread || layout.localOuterBounds) return 1;
|
|
6758
6798
|
}
|
|
6759
6799
|
return 0;
|
|
6760
6800
|
}
|
|
@@ -7013,7 +7053,7 @@ class LeafLevelList {
|
|
|
7013
7053
|
}
|
|
7014
7054
|
}
|
|
7015
7055
|
|
|
7016
|
-
const version = "2.0.
|
|
7056
|
+
const version = "2.0.4";
|
|
7017
7057
|
|
|
7018
7058
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
7019
7059
|
get allowBackgroundColor() {
|
|
@@ -7694,7 +7734,9 @@ function effectType(defaultValue) {
|
|
|
7694
7734
|
set(value) {
|
|
7695
7735
|
this.__setAttr(key, value);
|
|
7696
7736
|
if (value) this.__.__useEffect = true;
|
|
7697
|
-
|
|
7737
|
+
const layout = this.__layout;
|
|
7738
|
+
layout.renderChanged || layout.renderChange();
|
|
7739
|
+
layout.surfaceChange();
|
|
7698
7740
|
}
|
|
7699
7741
|
}));
|
|
7700
7742
|
}
|
|
@@ -7908,15 +7950,16 @@ class UIData extends LeafData {
|
|
|
7908
7950
|
this.__needComputePaint = undefined;
|
|
7909
7951
|
}
|
|
7910
7952
|
__getRealStrokeWidth(childStyle) {
|
|
7911
|
-
let {strokeWidth: strokeWidth,
|
|
7953
|
+
let {strokeWidth: strokeWidth, strokeScaleFixed: strokeScaleFixed} = this;
|
|
7912
7954
|
if (childStyle) {
|
|
7913
7955
|
if (childStyle.strokeWidth) strokeWidth = childStyle.strokeWidth;
|
|
7914
|
-
if (!isUndefined(childStyle.
|
|
7956
|
+
if (!isUndefined(childStyle.strokeScaleFixed)) strokeScaleFixed = childStyle.strokeScaleFixed;
|
|
7915
7957
|
}
|
|
7916
|
-
if (
|
|
7917
|
-
const
|
|
7918
|
-
|
|
7919
|
-
}
|
|
7958
|
+
if (strokeScaleFixed) {
|
|
7959
|
+
const {scaleX: scaleX} = this.__leaf.getRenderScaleData(true, strokeScaleFixed, false);
|
|
7960
|
+
if (scaleX !== 1) return strokeWidth * scaleX;
|
|
7961
|
+
}
|
|
7962
|
+
return strokeWidth;
|
|
7920
7963
|
}
|
|
7921
7964
|
__setPaint(attrName, value) {
|
|
7922
7965
|
this.__setInput(attrName, value);
|
|
@@ -7998,7 +8041,11 @@ class EllipseData extends UIData {
|
|
|
7998
8041
|
|
|
7999
8042
|
class PolygonData extends LineData {}
|
|
8000
8043
|
|
|
8001
|
-
class StarData extends UIData {
|
|
8044
|
+
class StarData extends UIData {
|
|
8045
|
+
get __boxStroke() {
|
|
8046
|
+
return !this.__pathInputed;
|
|
8047
|
+
}
|
|
8048
|
+
}
|
|
8002
8049
|
|
|
8003
8050
|
class PathData extends UIData {
|
|
8004
8051
|
get __pathInputed() {
|
|
@@ -8102,7 +8149,7 @@ const UIBounds = {
|
|
|
8102
8149
|
const data = this.__, {strokeAlign: strokeAlign, __maxStrokeWidth: strokeWidth} = data, box = this.__box;
|
|
8103
8150
|
if ((data.stroke || data.hitStroke === "all") && strokeWidth && strokeAlign !== "inside") {
|
|
8104
8151
|
boxSpread = spread = strokeAlign === "center" ? strokeWidth / 2 : strokeWidth;
|
|
8105
|
-
if (!data.__boxStroke) {
|
|
8152
|
+
if (!data.__boxStroke || data.__useArrow) {
|
|
8106
8153
|
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * spread;
|
|
8107
8154
|
const storkeCapAddWidth = data.strokeCap === "none" ? 0 : strokeWidth;
|
|
8108
8155
|
spread += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
@@ -8259,6 +8306,12 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8259
8306
|
get isFrame() {
|
|
8260
8307
|
return false;
|
|
8261
8308
|
}
|
|
8309
|
+
set strokeWidthFixed(value) {
|
|
8310
|
+
this.strokeScaleFixed = value;
|
|
8311
|
+
}
|
|
8312
|
+
get strokeWidthFixed() {
|
|
8313
|
+
return this.strokeScaleFixed;
|
|
8314
|
+
}
|
|
8262
8315
|
set scale(value) {
|
|
8263
8316
|
MathHelper.assignScale(this, value);
|
|
8264
8317
|
}
|
|
@@ -8314,6 +8367,9 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8314
8367
|
getPathString(curve, pathForRender, floatLength) {
|
|
8315
8368
|
return PathConvert.stringify(this.getPath(curve, pathForRender), floatLength);
|
|
8316
8369
|
}
|
|
8370
|
+
asPath(curve, pathForRender) {
|
|
8371
|
+
this.path = this.getPath(curve, pathForRender);
|
|
8372
|
+
}
|
|
8317
8373
|
load() {
|
|
8318
8374
|
this.__.__computePaint();
|
|
8319
8375
|
}
|
|
@@ -8323,16 +8379,18 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8323
8379
|
data.lazy && !this.__inLazyBounds && !Export.running ? data.__needComputePaint = true : data.__computePaint();
|
|
8324
8380
|
}
|
|
8325
8381
|
}
|
|
8326
|
-
__updateRenderPath() {
|
|
8382
|
+
__updateRenderPath(updateCache) {
|
|
8327
8383
|
const data = this.__;
|
|
8328
8384
|
if (data.path) {
|
|
8329
8385
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
8330
|
-
if (data.__useArrow) PathArrow.addArrows(this);
|
|
8386
|
+
if (data.__useArrow) PathArrow.addArrows(this, updateCache);
|
|
8331
8387
|
} else data.__pathForRender && (data.__pathForRender = undefined);
|
|
8332
8388
|
}
|
|
8333
8389
|
__drawRenderPath(canvas) {
|
|
8390
|
+
const data = this.__;
|
|
8334
8391
|
canvas.beginPath();
|
|
8335
|
-
|
|
8392
|
+
if (data.__useArrow) PathArrow.updateArrow(this);
|
|
8393
|
+
this.__drawPathByData(canvas, data.__pathForRender);
|
|
8336
8394
|
}
|
|
8337
8395
|
__drawPath(canvas) {
|
|
8338
8396
|
canvas.beginPath();
|
|
@@ -8381,6 +8439,7 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8381
8439
|
static setEditOuter(_toolName) {}
|
|
8382
8440
|
static setEditInner(_editorName) {}
|
|
8383
8441
|
destroy() {
|
|
8442
|
+
this.__.__willDestroy = true;
|
|
8384
8443
|
this.fill = this.stroke = null;
|
|
8385
8444
|
if (this.__animate) this.killAnimate();
|
|
8386
8445
|
super.destroy();
|
|
@@ -8497,7 +8556,7 @@ __decorate([ strokeType("inside") ], UI.prototype, "strokeAlign", void 0);
|
|
|
8497
8556
|
|
|
8498
8557
|
__decorate([ strokeType(1, true) ], UI.prototype, "strokeWidth", void 0);
|
|
8499
8558
|
|
|
8500
|
-
__decorate([ strokeType(false) ], UI.prototype, "
|
|
8559
|
+
__decorate([ strokeType(false) ], UI.prototype, "strokeScaleFixed", void 0);
|
|
8501
8560
|
|
|
8502
8561
|
__decorate([ strokeType("none") ], UI.prototype, "strokeCap", void 0);
|
|
8503
8562
|
|
|
@@ -8998,6 +9057,9 @@ let Box = class Box extends Group {
|
|
|
8998
9057
|
get isBranchLeaf() {
|
|
8999
9058
|
return true;
|
|
9000
9059
|
}
|
|
9060
|
+
get __useSelfBox() {
|
|
9061
|
+
return this.pathInputed;
|
|
9062
|
+
}
|
|
9001
9063
|
constructor(data) {
|
|
9002
9064
|
super(data);
|
|
9003
9065
|
this.__layout.renderChanged || this.__layout.renderChange();
|
|
@@ -9013,7 +9075,7 @@ let Box = class Box extends Group {
|
|
|
9013
9075
|
}
|
|
9014
9076
|
__updateRectBoxBounds() {}
|
|
9015
9077
|
__updateBoxBounds(_secondLayout) {
|
|
9016
|
-
if (this.children.length && !this.
|
|
9078
|
+
if (this.children.length && !this.__useSelfBox) {
|
|
9017
9079
|
const data = this.__;
|
|
9018
9080
|
if (data.__autoSide) {
|
|
9019
9081
|
if (data.__hasSurface) this.__extraUpdate();
|
|
@@ -9129,9 +9191,9 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9129
9191
|
return "Ellipse";
|
|
9130
9192
|
}
|
|
9131
9193
|
__updatePath() {
|
|
9132
|
-
const {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} =
|
|
9194
|
+
const data = this.__, {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = data;
|
|
9133
9195
|
const rx = width / 2, ry = height / 2;
|
|
9134
|
-
const path =
|
|
9196
|
+
const path = data.path = [];
|
|
9135
9197
|
let open;
|
|
9136
9198
|
if (innerRadius) {
|
|
9137
9199
|
if (startAngle || endAngle) {
|
|
@@ -9153,7 +9215,7 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9153
9215
|
}
|
|
9154
9216
|
}
|
|
9155
9217
|
if (!open) closePath$2(path);
|
|
9156
|
-
if (Platform.ellipseToCurve)
|
|
9218
|
+
if (Platform.ellipseToCurve || data.__useArrow) data.path = this.getPath(true);
|
|
9157
9219
|
}
|
|
9158
9220
|
};
|
|
9159
9221
|
|
|
@@ -9628,8 +9690,8 @@ function fills(fills, ui, canvas, renderOptions) {
|
|
|
9628
9690
|
canvas.save();
|
|
9629
9691
|
if (item.transform) canvas.transform(item.transform);
|
|
9630
9692
|
if (originPaint.scaleFixed) {
|
|
9631
|
-
const {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true);
|
|
9632
|
-
if (
|
|
9693
|
+
const {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, originPaint.scaleFixed, false);
|
|
9694
|
+
if (scaleX !== 1) canvas.scale(scaleX, scaleY);
|
|
9633
9695
|
}
|
|
9634
9696
|
if (originPaint.blendMode) canvas.blendMode = originPaint.blendMode;
|
|
9635
9697
|
fillPathOrText(ui, canvas, renderOptions);
|
|
@@ -10050,6 +10112,7 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
|
|
|
10050
10112
|
const clip = transform && !transform.onlyScale || data.path || data.cornerRadius;
|
|
10051
10113
|
if (clip || opacity && opacity < 1 || blendMode) leafPaint.complex = clip ? 2 : true;
|
|
10052
10114
|
}
|
|
10115
|
+
if (paint.filter) PaintImage.applyFilter(leafPaint, image, paint.filter, ui);
|
|
10053
10116
|
return true;
|
|
10054
10117
|
}
|
|
10055
10118
|
|
|
@@ -10277,7 +10340,7 @@ function createPattern(paint, ui, canvas, renderOptions) {
|
|
|
10277
10340
|
let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
|
|
10278
10341
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
10279
10342
|
if (!(Platform.image.isLarge(paint.image, scaleX, scaleY) && !paint.data.repeat)) {
|
|
10280
|
-
const {image: image, data: data} = paint, {opacity: opacity
|
|
10343
|
+
const {image: image, data: data} = paint, {opacity: opacity} = paint.originPaint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
|
|
10281
10344
|
let imageMatrix, xGap, yGap, {width: width, height: height} = image;
|
|
10282
10345
|
if (fixScale) scaleX *= fixScale, scaleY *= fixScale;
|
|
10283
10346
|
width *= scaleX;
|
|
@@ -10293,7 +10356,7 @@ function createPattern(paint, ui, canvas, renderOptions) {
|
|
|
10293
10356
|
if (transform) copy$1(imageMatrix, transform);
|
|
10294
10357
|
scale(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
10295
10358
|
}
|
|
10296
|
-
const imageCanvas = image.getCanvas(width, height, opacity,
|
|
10359
|
+
const imageCanvas = image.getCanvas(width, height, opacity, undefined, xGap, yGap, ui.leafer && ui.leafer.config.smooth, data.interlace);
|
|
10297
10360
|
const pattern = image.getPattern(imageCanvas, data.repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
10298
10361
|
paint.style = pattern;
|
|
10299
10362
|
paint.patternId = id;
|
|
@@ -10322,7 +10385,7 @@ function checkImage(paint, drawImage, ui, canvas, renderOptions) {
|
|
|
10322
10385
|
if (drawImage) {
|
|
10323
10386
|
if (data.repeat) {
|
|
10324
10387
|
drawImage = false;
|
|
10325
|
-
} else if (!(originPaint.changeful || paint.film || Platform.name === "miniapp"
|
|
10388
|
+
} else if (!(originPaint.changeful || paint.film || Platform.name === "miniapp" || exporting)) {
|
|
10326
10389
|
drawImage = Platform.image.isLarge(image, scaleX, scaleY) || image.width * scaleX > 8096 || image.height * scaleY > 8096;
|
|
10327
10390
|
}
|
|
10328
10391
|
}
|
|
@@ -10384,6 +10447,7 @@ function recycleImage(attrName, data) {
|
|
|
10384
10447
|
if (!recycleMap) recycleMap = {};
|
|
10385
10448
|
recycleMap[url] = true;
|
|
10386
10449
|
ImageManager.recyclePaint(paint);
|
|
10450
|
+
if (data.__willDestroy && image.parent) PaintImage.recycleFilter(image, data.__leaf);
|
|
10387
10451
|
if (image.loading) {
|
|
10388
10452
|
if (!input) {
|
|
10389
10453
|
input = data.__input && data.__input[attrName] || [];
|
|
@@ -10874,7 +10938,7 @@ function createRows(drawData, content, style) {
|
|
|
10874
10938
|
}, row = {
|
|
10875
10939
|
words: []
|
|
10876
10940
|
};
|
|
10877
|
-
|
|
10941
|
+
content = [ ...content ];
|
|
10878
10942
|
for (let i = 0, len = content.length; i < len; i++) {
|
|
10879
10943
|
char = content[i];
|
|
10880
10944
|
if (char === "\n") {
|