@leafer-draw/miniapp 1.9.7 → 1.9.9
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/miniapp.cjs +109 -81
- package/dist/miniapp.esm.js +110 -82
- package/dist/miniapp.esm.min.js +1 -1
- package/dist/miniapp.esm.min.js.map +1 -1
- package/dist/miniapp.min.cjs +1 -1
- package/dist/miniapp.min.cjs.map +1 -1
- package/dist/miniapp.module.js +240 -169
- package/dist/miniapp.module.min.js +1 -1
- package/dist/miniapp.module.min.js.map +1 -1
- package/package.json +9 -9
package/dist/miniapp.module.js
CHANGED
|
@@ -247,18 +247,34 @@ class LeafData {
|
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
250
|
+
let tempA, tempB, tempTo;
|
|
251
|
+
|
|
252
|
+
const {max: max$4} = Math, tempFour = [ 0, 0, 0, 0 ];
|
|
253
|
+
|
|
254
|
+
const FourNumberHelper = {
|
|
255
|
+
zero: [ ...tempFour ],
|
|
256
|
+
tempFour: tempFour,
|
|
257
|
+
set(to, top, right, bottom, left) {
|
|
258
|
+
if (right === undefined) right = bottom = left = top;
|
|
259
|
+
to[0] = top;
|
|
260
|
+
to[1] = right;
|
|
261
|
+
to[2] = bottom;
|
|
262
|
+
to[3] = left;
|
|
263
|
+
return to;
|
|
264
|
+
},
|
|
265
|
+
setTemp(top, right, bottom, left) {
|
|
266
|
+
return set$1(tempFour, top, right, bottom, left);
|
|
258
267
|
},
|
|
259
|
-
|
|
268
|
+
toTempAB(a, b, change) {
|
|
269
|
+
tempTo = change ? isNumber(a) ? b : a : [];
|
|
270
|
+
if (isNumber(a)) tempA = setTemp(a), tempB = b; else if (isNumber(b)) tempA = a,
|
|
271
|
+
tempB = setTemp(b); else tempA = a, tempB = b;
|
|
272
|
+
if (tempA.length !== 4) tempA = get$5(tempA);
|
|
273
|
+
if (tempB.length !== 4) tempB = get$5(tempB);
|
|
274
|
+
},
|
|
275
|
+
get(num, maxValue) {
|
|
260
276
|
let data;
|
|
261
|
-
if (
|
|
277
|
+
if (!isNumber(num)) {
|
|
262
278
|
switch (num.length) {
|
|
263
279
|
case 4:
|
|
264
280
|
data = isUndefined(maxValue) ? num : [ ...num ];
|
|
@@ -281,9 +297,39 @@ const MathHelper = {
|
|
|
281
297
|
}
|
|
282
298
|
}
|
|
283
299
|
if (!data) data = [ num, num, num, num ];
|
|
284
|
-
if (maxValue) for (let i = 0; i < 4; i++) if (data[i] > maxValue) data[i] = maxValue;
|
|
300
|
+
if (!isUndefined(maxValue)) for (let i = 0; i < 4; i++) if (data[i] > maxValue) data[i] = maxValue;
|
|
285
301
|
return data;
|
|
286
302
|
},
|
|
303
|
+
max(t, other, change) {
|
|
304
|
+
if (isNumber(t) && isNumber(other)) return max$4(t, other);
|
|
305
|
+
toTempAB(t, other, change);
|
|
306
|
+
return set$1(tempTo, max$4(tempA[0], tempB[0]), max$4(tempA[1], tempB[1]), max$4(tempA[2], tempB[2]), max$4(tempA[3], tempB[3]));
|
|
307
|
+
},
|
|
308
|
+
add(t, other, change) {
|
|
309
|
+
if (isNumber(t) && isNumber(other)) return t + other;
|
|
310
|
+
toTempAB(t, other, change);
|
|
311
|
+
return set$1(tempTo, tempA[0] + tempB[0], tempA[1] + tempB[1], tempA[2] + tempB[2], tempA[3] + tempB[3]);
|
|
312
|
+
},
|
|
313
|
+
swapAndScale(t, scaleX, scaleY, change) {
|
|
314
|
+
if (isNumber(t)) return scaleX === scaleY ? t * scaleX : [ t * scaleY, t * scaleX ];
|
|
315
|
+
const to = change ? t : [];
|
|
316
|
+
const [top, right, bottom, left] = t.length === 4 ? t : get$5(t);
|
|
317
|
+
return set$1(to, bottom * scaleY, left * scaleX, top * scaleY, right * scaleX);
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
const {set: set$1, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
|
|
322
|
+
|
|
323
|
+
const {round: round$3, pow: pow$1, PI: PI$3} = Math;
|
|
324
|
+
|
|
325
|
+
const MathHelper = {
|
|
326
|
+
within(value, min, max) {
|
|
327
|
+
if (isObject(min)) max = min.max, min = min.min;
|
|
328
|
+
if (!isUndefined(min) && value < min) value = min;
|
|
329
|
+
if (!isUndefined(max) && value > max) value = max;
|
|
330
|
+
return value;
|
|
331
|
+
},
|
|
332
|
+
fourNumber: FourNumberHelper.get,
|
|
287
333
|
formatRotation(rotation, unsign) {
|
|
288
334
|
rotation %= 360;
|
|
289
335
|
if (unsign) {
|
|
@@ -1014,7 +1060,7 @@ class Matrix {
|
|
|
1014
1060
|
}
|
|
1015
1061
|
}
|
|
1016
1062
|
|
|
1017
|
-
const tempMatrix$
|
|
1063
|
+
const tempMatrix$2 = new Matrix;
|
|
1018
1064
|
|
|
1019
1065
|
const TwoPointBoundsHelper = {
|
|
1020
1066
|
tempPointBounds: {},
|
|
@@ -1164,10 +1210,10 @@ const point = {};
|
|
|
1164
1210
|
|
|
1165
1211
|
const toPoint$4 = {};
|
|
1166
1212
|
|
|
1167
|
-
const tempBounds$
|
|
1213
|
+
const tempBounds$3 = {};
|
|
1168
1214
|
|
|
1169
1215
|
const BoundsHelper = {
|
|
1170
|
-
tempBounds: tempBounds$
|
|
1216
|
+
tempBounds: tempBounds$3,
|
|
1171
1217
|
set(t, x = 0, y = 0, width = 0, height = 0) {
|
|
1172
1218
|
t.x = x;
|
|
1173
1219
|
t.y = y;
|
|
@@ -1218,19 +1264,11 @@ const BoundsHelper = {
|
|
|
1218
1264
|
B.move(t, x, y);
|
|
1219
1265
|
return t;
|
|
1220
1266
|
},
|
|
1221
|
-
toOffsetOutBounds(t, to,
|
|
1222
|
-
if (!to)
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
}
|
|
1227
|
-
if (parent) {
|
|
1228
|
-
to.offsetX = -(B.maxX(parent) - t.x);
|
|
1229
|
-
to.offsetY = -(B.maxY(parent) - t.y);
|
|
1230
|
-
} else {
|
|
1231
|
-
to.offsetX = t.x + t.width;
|
|
1232
|
-
to.offsetY = t.y + t.height;
|
|
1233
|
-
}
|
|
1267
|
+
toOffsetOutBounds(t, to, offsetBounds) {
|
|
1268
|
+
if (!to) to = t; else copy$8(to, t);
|
|
1269
|
+
if (!offsetBounds) offsetBounds = t;
|
|
1270
|
+
to.offsetX = B.maxX(offsetBounds);
|
|
1271
|
+
to.offsetY = B.maxY(offsetBounds);
|
|
1234
1272
|
B.move(to, -to.offsetX, -to.offsetY);
|
|
1235
1273
|
},
|
|
1236
1274
|
scale(t, scaleX, scaleY = scaleX, onlySize) {
|
|
@@ -1244,9 +1282,9 @@ const BoundsHelper = {
|
|
|
1244
1282
|
t.height *= scaleY;
|
|
1245
1283
|
},
|
|
1246
1284
|
tempToOuterOf(t, matrix) {
|
|
1247
|
-
B.copy(tempBounds$
|
|
1248
|
-
B.toOuterOf(tempBounds$
|
|
1249
|
-
return tempBounds$
|
|
1285
|
+
B.copy(tempBounds$3, t);
|
|
1286
|
+
B.toOuterOf(tempBounds$3, matrix);
|
|
1287
|
+
return tempBounds$3;
|
|
1250
1288
|
},
|
|
1251
1289
|
getOuterOf(t, matrix) {
|
|
1252
1290
|
t = Object.assign({}, t);
|
|
@@ -1304,9 +1342,9 @@ const BoundsHelper = {
|
|
|
1304
1342
|
put(t, put, align = "center", putScale = 1, changeSize = true, to) {
|
|
1305
1343
|
to || (to = put);
|
|
1306
1344
|
if (isString(putScale)) putScale = B.getFitScale(t, put, putScale === "cover");
|
|
1307
|
-
tempBounds$
|
|
1308
|
-
tempBounds$
|
|
1309
|
-
AlignHelper.toPoint(align, tempBounds$
|
|
1345
|
+
tempBounds$3.width = changeSize ? put.width *= putScale : put.width * putScale;
|
|
1346
|
+
tempBounds$3.height = changeSize ? put.height *= putScale : put.height * putScale;
|
|
1347
|
+
AlignHelper.toPoint(align, tempBounds$3, t, to, true, true);
|
|
1310
1348
|
},
|
|
1311
1349
|
getSpread(t, spread, side) {
|
|
1312
1350
|
const n = {};
|
|
@@ -1376,7 +1414,7 @@ const BoundsHelper = {
|
|
|
1376
1414
|
first = false;
|
|
1377
1415
|
if (!addMode) copy$8(t, bounds);
|
|
1378
1416
|
} else {
|
|
1379
|
-
add$
|
|
1417
|
+
add$2(t, bounds);
|
|
1380
1418
|
}
|
|
1381
1419
|
}
|
|
1382
1420
|
}
|
|
@@ -1390,7 +1428,7 @@ const BoundsHelper = {
|
|
|
1390
1428
|
B.set(t, point.x, point.y);
|
|
1391
1429
|
},
|
|
1392
1430
|
addPoint(t, point) {
|
|
1393
|
-
add$
|
|
1431
|
+
add$2(t, point, true);
|
|
1394
1432
|
},
|
|
1395
1433
|
getPoints(t) {
|
|
1396
1434
|
const {x: x, y: y, width: width, height: height} = t;
|
|
@@ -1461,7 +1499,7 @@ const BoundsHelper = {
|
|
|
1461
1499
|
|
|
1462
1500
|
const B = BoundsHelper;
|
|
1463
1501
|
|
|
1464
|
-
const {add: add$
|
|
1502
|
+
const {add: add$2, copy: copy$8} = B;
|
|
1465
1503
|
|
|
1466
1504
|
class Bounds {
|
|
1467
1505
|
get minX() {
|
|
@@ -1606,7 +1644,7 @@ class Bounds {
|
|
|
1606
1644
|
}
|
|
1607
1645
|
}
|
|
1608
1646
|
|
|
1609
|
-
const tempBounds$
|
|
1647
|
+
const tempBounds$2 = new Bounds;
|
|
1610
1648
|
|
|
1611
1649
|
class AutoBounds {
|
|
1612
1650
|
constructor(top, right, bottom, left, width, height) {
|
|
@@ -2261,7 +2299,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2261
2299
|
const {pixelRatio: pixelRatio, pixelSnap: pixelSnap} = this, w = this.worldTransform;
|
|
2262
2300
|
if (parentMatrix) multiplyParent$4(matrix, parentMatrix, w);
|
|
2263
2301
|
pixelScale(matrix, pixelRatio, w);
|
|
2264
|
-
if (pixelSnap) {
|
|
2302
|
+
if (pixelSnap && !matrix.ignorePixelSnap) {
|
|
2265
2303
|
if (matrix.half && matrix.half * pixelRatio % 2) w.e = round$1(w.e - .5) + .5, w.f = round$1(w.f - .5) + .5; else w.e = round$1(w.e),
|
|
2266
2304
|
w.f = round$1(w.f);
|
|
2267
2305
|
}
|
|
@@ -3985,7 +4023,7 @@ const I = ImageManager;
|
|
|
3985
4023
|
|
|
3986
4024
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
3987
4025
|
|
|
3988
|
-
const {floor: floor$1, max: max$
|
|
4026
|
+
const {floor: floor$1, max: max$3} = Math;
|
|
3989
4027
|
|
|
3990
4028
|
class LeaferImage {
|
|
3991
4029
|
get url() {
|
|
@@ -4074,7 +4112,7 @@ class LeaferImage {
|
|
|
4074
4112
|
}
|
|
4075
4113
|
if (data) return data;
|
|
4076
4114
|
}
|
|
4077
|
-
const canvas = Platform.origin.createCanvas(max$
|
|
4115
|
+
const canvas = Platform.origin.createCanvas(max$3(floor$1(width + (xGap || 0)), 1), max$3(floor$1(height + (yGap || 0)), 1));
|
|
4078
4116
|
const ctx = canvas.getContext("2d");
|
|
4079
4117
|
if (opacity) ctx.globalAlpha = opacity;
|
|
4080
4118
|
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
@@ -4868,7 +4906,7 @@ const WaitHelper = {
|
|
|
4868
4906
|
|
|
4869
4907
|
const {getRelativeWorld: getRelativeWorld$1, updateBounds: updateBounds$2} = LeafHelper;
|
|
4870
4908
|
|
|
4871
|
-
const {toOuterOf: toOuterOf$
|
|
4909
|
+
const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$4} = BoundsHelper;
|
|
4872
4910
|
|
|
4873
4911
|
const localContent = "_localContentBounds";
|
|
4874
4912
|
|
|
@@ -4891,7 +4929,7 @@ class LeafLayout {
|
|
|
4891
4929
|
this._renderBounds = bounds;
|
|
4892
4930
|
}
|
|
4893
4931
|
get localContentBounds() {
|
|
4894
|
-
toOuterOf$
|
|
4932
|
+
toOuterOf$3(this.contentBounds, this.leaf.__localMatrix, this[localContent] || (this[localContent] = {}));
|
|
4895
4933
|
return this[localContent];
|
|
4896
4934
|
}
|
|
4897
4935
|
get localStrokeBounds() {
|
|
@@ -4901,15 +4939,15 @@ class LeafLayout {
|
|
|
4901
4939
|
return this._localRenderBounds || this;
|
|
4902
4940
|
}
|
|
4903
4941
|
get worldContentBounds() {
|
|
4904
|
-
toOuterOf$
|
|
4942
|
+
toOuterOf$3(this.contentBounds, this.leaf.__world, this[worldContent] || (this[worldContent] = {}));
|
|
4905
4943
|
return this[worldContent];
|
|
4906
4944
|
}
|
|
4907
4945
|
get worldBoxBounds() {
|
|
4908
|
-
toOuterOf$
|
|
4946
|
+
toOuterOf$3(this.boxBounds, this.leaf.__world, this[worldBox] || (this[worldBox] = {}));
|
|
4909
4947
|
return this[worldBox];
|
|
4910
4948
|
}
|
|
4911
4949
|
get worldStrokeBounds() {
|
|
4912
|
-
toOuterOf$
|
|
4950
|
+
toOuterOf$3(this.strokeBounds, this.leaf.__world, this[worldStroke] || (this[worldStroke] = {}));
|
|
4913
4951
|
return this[worldStroke];
|
|
4914
4952
|
}
|
|
4915
4953
|
get a() {
|
|
@@ -5761,14 +5799,14 @@ const {updateMatrix: updateMatrix$1, updateAllMatrix: updateAllMatrix$2} = LeafH
|
|
|
5761
5799
|
|
|
5762
5800
|
const {updateBounds: updateBounds$1} = BranchHelper;
|
|
5763
5801
|
|
|
5764
|
-
const {toOuterOf: toOuterOf$
|
|
5802
|
+
const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$2, copy: copy$3} = BoundsHelper;
|
|
5765
5803
|
|
|
5766
5804
|
const {toBounds: toBounds} = PathBounds;
|
|
5767
5805
|
|
|
5768
5806
|
const LeafBounds = {
|
|
5769
5807
|
__updateWorldBounds() {
|
|
5770
5808
|
const layout = this.__layout;
|
|
5771
|
-
toOuterOf$
|
|
5809
|
+
toOuterOf$2(layout.renderBounds, this.__world, this.__world);
|
|
5772
5810
|
if (layout.resized) {
|
|
5773
5811
|
if (layout.resized === "inner") this.__onUpdateSize();
|
|
5774
5812
|
if (this.__hasLocalEvent) BoundsEvent.emitLocal(this);
|
|
@@ -5824,13 +5862,13 @@ const LeafBounds = {
|
|
|
5824
5862
|
__updateLocalBoxBounds() {
|
|
5825
5863
|
if (this.__hasMotionPath) this.__updateMotionPath();
|
|
5826
5864
|
if (this.__hasAutoLayout) this.__updateAutoLayout();
|
|
5827
|
-
toOuterOf$
|
|
5865
|
+
toOuterOf$2(this.__layout.boxBounds, this.__local, this.__local);
|
|
5828
5866
|
},
|
|
5829
5867
|
__updateLocalStrokeBounds() {
|
|
5830
|
-
toOuterOf$
|
|
5868
|
+
toOuterOf$2(this.__layout.strokeBounds, this.__localMatrix, this.__layout.localStrokeBounds);
|
|
5831
5869
|
},
|
|
5832
5870
|
__updateLocalRenderBounds() {
|
|
5833
|
-
toOuterOf$
|
|
5871
|
+
toOuterOf$2(this.__layout.renderBounds, this.__localMatrix, this.__layout.localRenderBounds);
|
|
5834
5872
|
},
|
|
5835
5873
|
__updateBoxBounds(_secondLayout, _bounds) {
|
|
5836
5874
|
const b = this.__layout.boxBounds;
|
|
@@ -5868,11 +5906,11 @@ const LeafBounds = {
|
|
|
5868
5906
|
},
|
|
5869
5907
|
__updateStrokeBounds(_bounds) {
|
|
5870
5908
|
const layout = this.__layout;
|
|
5871
|
-
copyAndSpread$
|
|
5909
|
+
copyAndSpread$2(layout.strokeBounds, layout.boxBounds, layout.strokeBoxSpread);
|
|
5872
5910
|
},
|
|
5873
5911
|
__updateRenderBounds(_bounds) {
|
|
5874
|
-
const layout = this.__layout;
|
|
5875
|
-
|
|
5912
|
+
const layout = this.__layout, {renderSpread: renderSpread} = layout;
|
|
5913
|
+
isNumber(renderSpread) && renderSpread <= 0 ? copy$3(layout.renderBounds, layout.strokeBounds) : copyAndSpread$2(layout.renderBounds, layout.boxBounds, renderSpread);
|
|
5876
5914
|
}
|
|
5877
5915
|
};
|
|
5878
5916
|
|
|
@@ -5970,11 +6008,13 @@ const tempScaleData$1 = {};
|
|
|
5970
6008
|
|
|
5971
6009
|
const {LEAF: LEAF, create: create} = IncrementId;
|
|
5972
6010
|
|
|
6011
|
+
const {stintSet: stintSet$3} = DataHelper;
|
|
6012
|
+
|
|
5973
6013
|
const {toInnerPoint: toInnerPoint, toOuterPoint: toOuterPoint, multiplyParent: multiplyParent$1} = MatrixHelper;
|
|
5974
6014
|
|
|
5975
|
-
const {toOuterOf: toOuterOf} = BoundsHelper;
|
|
6015
|
+
const {toOuterOf: toOuterOf$1} = BoundsHelper;
|
|
5976
6016
|
|
|
5977
|
-
const {copy: copy$2, move: move} = PointHelper;
|
|
6017
|
+
const {copy: copy$2, move: move$2} = PointHelper;
|
|
5978
6018
|
|
|
5979
6019
|
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;
|
|
5980
6020
|
|
|
@@ -6250,8 +6290,9 @@ let Leaf = class Leaf {
|
|
|
6250
6290
|
if (!this.__cameraWorld) this.__cameraWorld = {};
|
|
6251
6291
|
const cameraWorld = this.__cameraWorld, world = this.__world;
|
|
6252
6292
|
multiplyParent$1(world, options.matrix, cameraWorld, undefined, world);
|
|
6253
|
-
toOuterOf(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
6254
|
-
cameraWorld
|
|
6293
|
+
toOuterOf$1(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
6294
|
+
stintSet$3(cameraWorld, "half", world.half);
|
|
6295
|
+
stintSet$3(cameraWorld, "ignorePixelSnap", world.ignorePixelSnap);
|
|
6255
6296
|
return cameraWorld;
|
|
6256
6297
|
} else {
|
|
6257
6298
|
return this.__world;
|
|
@@ -6285,7 +6326,7 @@ let Leaf = class Leaf {
|
|
|
6285
6326
|
getWorldBounds(inner, relative, change) {
|
|
6286
6327
|
const matrix = relative ? getRelativeWorld(this, relative) : this.worldTransform;
|
|
6287
6328
|
const to = change ? inner : {};
|
|
6288
|
-
toOuterOf(inner, matrix, to);
|
|
6329
|
+
toOuterOf$1(inner, matrix, to);
|
|
6289
6330
|
return to;
|
|
6290
6331
|
}
|
|
6291
6332
|
worldToLocal(world, to, distance, relative) {
|
|
@@ -6318,7 +6359,7 @@ let Leaf = class Leaf {
|
|
|
6318
6359
|
}
|
|
6319
6360
|
getBoxPointByInner(inner, _relative, _distance, change) {
|
|
6320
6361
|
const point = change ? inner : Object.assign({}, inner), {x: x, y: y} = this.boxBounds;
|
|
6321
|
-
move(point, -x, -y);
|
|
6362
|
+
move$2(point, -x, -y);
|
|
6322
6363
|
return point;
|
|
6323
6364
|
}
|
|
6324
6365
|
getInnerPoint(world, relative, distance, change) {
|
|
@@ -6328,7 +6369,7 @@ let Leaf = class Leaf {
|
|
|
6328
6369
|
}
|
|
6329
6370
|
getInnerPointByBox(box, _relative, _distance, change) {
|
|
6330
6371
|
const point = change ? box : Object.assign({}, box), {x: x, y: y} = this.boxBounds;
|
|
6331
|
-
move(point, x, y);
|
|
6372
|
+
move$2(point, x, y);
|
|
6332
6373
|
return point;
|
|
6333
6374
|
}
|
|
6334
6375
|
getInnerPointByLocal(local, _relative, distance, change) {
|
|
@@ -6774,7 +6815,7 @@ class LeafLevelList {
|
|
|
6774
6815
|
}
|
|
6775
6816
|
}
|
|
6776
6817
|
|
|
6777
|
-
const version = "1.9.
|
|
6818
|
+
const version = "1.9.9";
|
|
6778
6819
|
|
|
6779
6820
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6780
6821
|
get allowBackgroundColor() {
|
|
@@ -7352,6 +7393,7 @@ class Renderer {
|
|
|
7352
7393
|
usePartRender: true,
|
|
7353
7394
|
maxFPS: 120
|
|
7354
7395
|
};
|
|
7396
|
+
this.frames = [];
|
|
7355
7397
|
this.target = target;
|
|
7356
7398
|
this.canvas = canvas;
|
|
7357
7399
|
if (userConfig) this.config = DataHelper.default(userConfig, this.config);
|
|
@@ -7504,12 +7546,15 @@ class Renderer {
|
|
|
7504
7546
|
const target = this.target;
|
|
7505
7547
|
if (this.requestTime || !target) return;
|
|
7506
7548
|
if (target.parentApp) return target.parentApp.requestRender(false);
|
|
7507
|
-
|
|
7549
|
+
this.requestTime = this.frameTime || Date.now();
|
|
7508
7550
|
const render = () => {
|
|
7509
|
-
const nowFPS = 1e3 / (Date.now() - requestTime);
|
|
7551
|
+
const nowFPS = 1e3 / ((this.frameTime = Date.now()) - this.requestTime);
|
|
7510
7552
|
const {maxFPS: maxFPS} = this.config;
|
|
7511
|
-
if (maxFPS && nowFPS > maxFPS
|
|
7512
|
-
|
|
7553
|
+
if (maxFPS && nowFPS > maxFPS) return Platform.requestRender(render);
|
|
7554
|
+
const {frames: frames} = this;
|
|
7555
|
+
if (frames.length > 30) frames.shift();
|
|
7556
|
+
frames.push(nowFPS);
|
|
7557
|
+
this.FPS = Math.round(frames.reduce((a, b) => a + b, 0) / frames.length);
|
|
7513
7558
|
this.requestTime = 0;
|
|
7514
7559
|
this.checkRender();
|
|
7515
7560
|
};
|
|
@@ -7982,39 +8027,41 @@ class CanvasData extends RectData {
|
|
|
7982
8027
|
}
|
|
7983
8028
|
}
|
|
7984
8029
|
|
|
8030
|
+
const {max: max$2, add: add$1} = FourNumberHelper;
|
|
8031
|
+
|
|
7985
8032
|
const UIBounds = {
|
|
7986
8033
|
__updateStrokeSpread() {
|
|
7987
|
-
let
|
|
8034
|
+
let spread = 0, boxSpread = 0;
|
|
7988
8035
|
const data = this.__, {strokeAlign: strokeAlign, __maxStrokeWidth: strokeWidth} = data, box = this.__box;
|
|
7989
8036
|
if ((data.stroke || data.hitStroke === "all") && strokeWidth && strokeAlign !== "inside") {
|
|
7990
|
-
|
|
8037
|
+
boxSpread = spread = strokeAlign === "center" ? strokeWidth / 2 : strokeWidth;
|
|
7991
8038
|
if (!data.__boxStroke) {
|
|
7992
|
-
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 *
|
|
8039
|
+
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * spread;
|
|
7993
8040
|
const storkeCapAddWidth = data.strokeCap === "none" ? 0 : strokeWidth;
|
|
7994
|
-
|
|
8041
|
+
spread += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
7995
8042
|
}
|
|
7996
8043
|
}
|
|
7997
|
-
if (data.__useArrow)
|
|
8044
|
+
if (data.__useArrow) spread += strokeWidth * 5;
|
|
7998
8045
|
if (box) {
|
|
7999
|
-
|
|
8000
|
-
|
|
8046
|
+
spread = max$2(spread, box.__layout.strokeSpread = box.__updateStrokeSpread());
|
|
8047
|
+
boxSpread = Math.max(boxSpread, box.__layout.strokeBoxSpread);
|
|
8001
8048
|
}
|
|
8002
|
-
this.__layout.strokeBoxSpread =
|
|
8003
|
-
return
|
|
8049
|
+
this.__layout.strokeBoxSpread = boxSpread;
|
|
8050
|
+
return spread;
|
|
8004
8051
|
},
|
|
8005
8052
|
__updateRenderSpread() {
|
|
8006
|
-
let
|
|
8007
|
-
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__;
|
|
8008
|
-
if (shadow)
|
|
8009
|
-
if (blur)
|
|
8010
|
-
if (filter)
|
|
8011
|
-
if (renderSpread)
|
|
8012
|
-
|
|
8013
|
-
|
|
8014
|
-
if (
|
|
8015
|
-
|
|
8016
|
-
|
|
8017
|
-
return
|
|
8053
|
+
let spread = 0;
|
|
8054
|
+
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__, {strokeSpread: strokeSpread} = this.__layout, box = this.__box;
|
|
8055
|
+
if (shadow) spread = Effect.getShadowRenderSpread(this, shadow);
|
|
8056
|
+
if (blur) spread = max$2(spread, blur);
|
|
8057
|
+
if (filter) spread = add$1(spread, Filter.getSpread(filter));
|
|
8058
|
+
if (renderSpread) spread = add$1(spread, renderSpread);
|
|
8059
|
+
if (strokeSpread) spread = add$1(spread, strokeSpread);
|
|
8060
|
+
let shapeSpread = spread;
|
|
8061
|
+
if (innerShadow) shapeSpread = max$2(shapeSpread, Effect.getInnerShadowSpread(this, innerShadow));
|
|
8062
|
+
if (backgroundBlur) shapeSpread = max$2(shapeSpread, backgroundBlur);
|
|
8063
|
+
this.__layout.renderShapeSpread = shapeSpread;
|
|
8064
|
+
return box ? max$2(box.__updateRenderSpread(), spread) : spread;
|
|
8018
8065
|
}
|
|
8019
8066
|
};
|
|
8020
8067
|
|
|
@@ -9325,7 +9372,7 @@ __decorate([ resizeType() ], Canvas.prototype, "contextSettings", void 0);
|
|
|
9325
9372
|
|
|
9326
9373
|
Canvas = __decorate([ registerUI() ], Canvas);
|
|
9327
9374
|
|
|
9328
|
-
const {copyAndSpread: copyAndSpread, includes: includes, spread: spread, setList: setList} = BoundsHelper;
|
|
9375
|
+
const {copyAndSpread: copyAndSpread$1, includes: includes, spread: spread, setList: setList} = BoundsHelper;
|
|
9329
9376
|
|
|
9330
9377
|
let Text = class Text extends UI {
|
|
9331
9378
|
get __tag() {
|
|
@@ -9372,13 +9419,13 @@ let Text = class Text extends UI {
|
|
|
9372
9419
|
if (this.isOverflow) setList(data.__textBoxBounds = {}, [ b, contentBounds ]), layout.renderChanged = true; else data.__textBoxBounds = b;
|
|
9373
9420
|
}
|
|
9374
9421
|
__updateRenderSpread() {
|
|
9375
|
-
let
|
|
9376
|
-
if (!
|
|
9377
|
-
return
|
|
9422
|
+
let spread = super.__updateRenderSpread();
|
|
9423
|
+
if (!spread) spread = this.isOverflow ? 1 : 0;
|
|
9424
|
+
return spread;
|
|
9378
9425
|
}
|
|
9379
9426
|
__updateRenderBounds() {
|
|
9380
9427
|
const {renderBounds: renderBounds, renderSpread: renderSpread} = this.__layout;
|
|
9381
|
-
copyAndSpread(renderBounds, this.__.__textBoxBounds, renderSpread);
|
|
9428
|
+
copyAndSpread$1(renderBounds, this.__.__textBoxBounds, renderSpread);
|
|
9382
9429
|
if (this.__box) this.__box.__layout.renderBounds = renderBounds;
|
|
9383
9430
|
}
|
|
9384
9431
|
__updateChange() {
|
|
@@ -9746,24 +9793,29 @@ function drawOutside(stroke, ui, canvas) {
|
|
|
9746
9793
|
}
|
|
9747
9794
|
}
|
|
9748
9795
|
|
|
9749
|
-
const {getSpread: getSpread, getOuterOf: getOuterOf, getByMove: getByMove, getIntersectData: getIntersectData} = BoundsHelper;
|
|
9796
|
+
const {getSpread: getSpread, copyAndSpread: copyAndSpread, toOuterOf: toOuterOf, getOuterOf: getOuterOf, getByMove: getByMove, move: move$1, getIntersectData: getIntersectData} = BoundsHelper;
|
|
9797
|
+
|
|
9798
|
+
const tempBounds$1 = {};
|
|
9750
9799
|
|
|
9751
9800
|
function shape(ui, current, options) {
|
|
9752
9801
|
const canvas = current.getSameCanvas();
|
|
9753
|
-
const nowWorld = ui.__nowWorld,
|
|
9754
|
-
|
|
9802
|
+
const currentBounds = current.bounds, nowWorld = ui.__nowWorld, layout = ui.__layout;
|
|
9803
|
+
const nowWorldShapeBounds = ui.__nowWorldShapeBounds || (ui.__nowWorldShapeBounds = {});
|
|
9804
|
+
toOuterOf(layout.strokeSpread ? (copyAndSpread(tempBounds$1, layout.boxBounds, layout.strokeSpread),
|
|
9805
|
+
tempBounds$1) : layout.boxBounds, nowWorld, nowWorldShapeBounds);
|
|
9806
|
+
let bounds, renderBounds, matrix, fitMatrix, shapeBounds, worldCanvas;
|
|
9755
9807
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true);
|
|
9756
|
-
if (currentBounds.includes(
|
|
9808
|
+
if (currentBounds.includes(nowWorldShapeBounds)) {
|
|
9757
9809
|
worldCanvas = canvas;
|
|
9758
|
-
bounds = shapeBounds =
|
|
9810
|
+
bounds = shapeBounds = nowWorldShapeBounds;
|
|
9811
|
+
renderBounds = nowWorld;
|
|
9759
9812
|
} else {
|
|
9760
|
-
const {renderShapeSpread: spread} = ui.__layout;
|
|
9761
9813
|
let worldClipBounds;
|
|
9762
9814
|
if (Platform.fullImageShadow) {
|
|
9763
|
-
worldClipBounds =
|
|
9815
|
+
worldClipBounds = nowWorldShapeBounds;
|
|
9764
9816
|
} else {
|
|
9765
|
-
const spreadBounds =
|
|
9766
|
-
worldClipBounds = getIntersectData(spreadBounds,
|
|
9817
|
+
const spreadBounds = layout.renderShapeSpread ? getSpread(currentBounds, FourNumberHelper.swapAndScale(layout.renderShapeSpread, scaleX, scaleY)) : currentBounds;
|
|
9818
|
+
worldClipBounds = getIntersectData(spreadBounds, nowWorldShapeBounds);
|
|
9767
9819
|
}
|
|
9768
9820
|
fitMatrix = currentBounds.getFitMatrix(worldClipBounds);
|
|
9769
9821
|
let {a: fitScaleX, d: fitScaleY} = fitMatrix;
|
|
@@ -9773,8 +9825,10 @@ function shape(ui, current, options) {
|
|
|
9773
9825
|
scaleX *= fitScaleX;
|
|
9774
9826
|
scaleY *= fitScaleY;
|
|
9775
9827
|
}
|
|
9776
|
-
shapeBounds = getOuterOf(
|
|
9828
|
+
shapeBounds = getOuterOf(nowWorldShapeBounds, fitMatrix);
|
|
9777
9829
|
bounds = getByMove(shapeBounds, -fitMatrix.e, -fitMatrix.f);
|
|
9830
|
+
renderBounds = getOuterOf(nowWorld, fitMatrix);
|
|
9831
|
+
move$1(renderBounds, -fitMatrix.e, -fitMatrix.f);
|
|
9778
9832
|
const userMatrix = options.matrix;
|
|
9779
9833
|
if (userMatrix) {
|
|
9780
9834
|
matrix = new Matrix(fitMatrix);
|
|
@@ -9793,6 +9847,7 @@ function shape(ui, current, options) {
|
|
|
9793
9847
|
matrix: matrix,
|
|
9794
9848
|
fitMatrix: fitMatrix,
|
|
9795
9849
|
bounds: bounds,
|
|
9850
|
+
renderBounds: renderBounds,
|
|
9796
9851
|
worldCanvas: worldCanvas,
|
|
9797
9852
|
shapeBounds: shapeBounds,
|
|
9798
9853
|
scaleX: scaleX,
|
|
@@ -9896,7 +9951,7 @@ const PaintModule = {
|
|
|
9896
9951
|
shape: shape
|
|
9897
9952
|
};
|
|
9898
9953
|
|
|
9899
|
-
let origin = {}, tempMatrix = getMatrixData();
|
|
9954
|
+
let origin = {}, tempMatrix$1 = getMatrixData();
|
|
9900
9955
|
|
|
9901
9956
|
const {get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
9902
9957
|
|
|
@@ -9911,12 +9966,12 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
9911
9966
|
data.transform = transform;
|
|
9912
9967
|
}
|
|
9913
9968
|
|
|
9914
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew,
|
|
9969
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipScaleX, clipScaleY) {
|
|
9915
9970
|
const transform = get$3();
|
|
9916
9971
|
layout(transform, box, x, y, scaleX, scaleY, rotation, skew);
|
|
9917
|
-
if (
|
|
9918
|
-
tempMatrix.a =
|
|
9919
|
-
multiplyParent(transform, tempMatrix);
|
|
9972
|
+
if (clipScaleX) {
|
|
9973
|
+
tempMatrix$1.a = clipScaleX, tempMatrix$1.d = clipScaleY;
|
|
9974
|
+
multiplyParent(transform, tempMatrix$1);
|
|
9920
9975
|
}
|
|
9921
9976
|
data.transform = transform;
|
|
9922
9977
|
}
|
|
@@ -10017,7 +10072,12 @@ function getPatternData(paint, box, image) {
|
|
|
10017
10072
|
|
|
10018
10073
|
case "normal":
|
|
10019
10074
|
case "clip":
|
|
10020
|
-
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew)
|
|
10075
|
+
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew) {
|
|
10076
|
+
let clipScaleX, clipScaleY;
|
|
10077
|
+
if (clipSize) clipScaleX = box.width / clipSize.width, clipScaleY = box.height / clipSize.height;
|
|
10078
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, clipScaleX, clipScaleY);
|
|
10079
|
+
if (clipScaleX) scaleX = scaleX ? scaleX * clipScaleX : scaleX, scaleY = scaleY ? scaleY * clipScaleY : clipScaleY;
|
|
10080
|
+
}
|
|
10021
10081
|
break;
|
|
10022
10082
|
|
|
10023
10083
|
case "repeat":
|
|
@@ -10175,7 +10235,7 @@ function ignoreRender(ui, value) {
|
|
|
10175
10235
|
|
|
10176
10236
|
const {get: get$1, scale: scale, copy: copy$1} = MatrixHelper;
|
|
10177
10237
|
|
|
10178
|
-
const {floor: floor, ceil: ceil, max: max, abs: abs} = Math;
|
|
10238
|
+
const {floor: floor, ceil: ceil, max: max$1, abs: abs} = Math;
|
|
10179
10239
|
|
|
10180
10240
|
function createPattern(ui, paint, pixelRatio) {
|
|
10181
10241
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
@@ -10224,8 +10284,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
10224
10284
|
if (transform || scaleX !== 1 || scaleY !== 1) {
|
|
10225
10285
|
const canvasWidth = width + (xGap || 0);
|
|
10226
10286
|
const canvasHeight = height + (yGap || 0);
|
|
10227
|
-
scaleX /= canvasWidth / max(floor(canvasWidth), 1);
|
|
10228
|
-
scaleY /= canvasHeight / max(floor(canvasHeight), 1);
|
|
10287
|
+
scaleX /= canvasWidth / max$1(floor(canvasWidth), 1);
|
|
10288
|
+
scaleY /= canvasHeight / max$1(floor(canvasHeight), 1);
|
|
10229
10289
|
if (!imageMatrix) {
|
|
10230
10290
|
imageMatrix = get$1();
|
|
10231
10291
|
if (transform) copy$1(imageMatrix, transform);
|
|
@@ -10251,17 +10311,15 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
10251
10311
|
if (allowDraw) {
|
|
10252
10312
|
if (data.repeat) {
|
|
10253
10313
|
allowDraw = false;
|
|
10254
|
-
} else {
|
|
10255
|
-
|
|
10256
|
-
|
|
10257
|
-
|
|
10258
|
-
|
|
10259
|
-
|
|
10260
|
-
|
|
10261
|
-
height *= data.scaleY;
|
|
10262
|
-
}
|
|
10263
|
-
allowDraw = width * height > Platform.image.maxCacheSize;
|
|
10314
|
+
} else if (!(paint.changeful || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || Export.running)) {
|
|
10315
|
+
let {width: width, height: height} = data;
|
|
10316
|
+
width *= scaleX * pixelRatio;
|
|
10317
|
+
height *= scaleY * pixelRatio;
|
|
10318
|
+
if (data.scaleX) {
|
|
10319
|
+
width *= data.scaleX;
|
|
10320
|
+
height *= data.scaleY;
|
|
10264
10321
|
}
|
|
10322
|
+
allowDraw = width * height > Platform.image.maxCacheSize;
|
|
10265
10323
|
}
|
|
10266
10324
|
}
|
|
10267
10325
|
if (allowDraw) {
|
|
@@ -10441,75 +10499,82 @@ const PaintGradientModule = {
|
|
|
10441
10499
|
getTransform: getTransform
|
|
10442
10500
|
};
|
|
10443
10501
|
|
|
10444
|
-
const {copy: copy, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper;
|
|
10502
|
+
const {copy: copy, move: move, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max} = Math;
|
|
10445
10503
|
|
|
10446
|
-
const tempBounds = {};
|
|
10504
|
+
const tempBounds = {}, tempMatrix = new Matrix;
|
|
10447
10505
|
|
|
10448
10506
|
const offsetOutBounds$1 = {};
|
|
10449
10507
|
|
|
10450
10508
|
function shadow(ui, current, shape) {
|
|
10451
|
-
let copyBounds,
|
|
10452
|
-
const {__nowWorld: nowWorld
|
|
10509
|
+
let copyBounds, transform;
|
|
10510
|
+
const {__nowWorld: nowWorld} = ui;
|
|
10453
10511
|
const {shadow: shadow} = ui.__;
|
|
10454
|
-
const {worldCanvas: worldCanvas, bounds: bounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
10512
|
+
const {worldCanvas: worldCanvas, bounds: bounds, renderBounds: renderBounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
10455
10513
|
const other = current.getSameCanvas();
|
|
10456
10514
|
const end = shadow.length - 1;
|
|
10457
|
-
toOffsetOutBounds$1(bounds, offsetOutBounds$1);
|
|
10515
|
+
toOffsetOutBounds$1(bounds, offsetOutBounds$1, renderBounds);
|
|
10458
10516
|
shadow.forEach((item, index) => {
|
|
10459
10517
|
let otherScale = 1;
|
|
10460
10518
|
if (item.scaleFixed) {
|
|
10461
10519
|
const sx = Math.abs(nowWorld.scaleX);
|
|
10462
10520
|
if (sx > 1) otherScale = 1 / sx;
|
|
10463
10521
|
}
|
|
10464
|
-
other.setWorldShadow(offsetOutBounds$1.offsetX + item.x * scaleX * otherScale, offsetOutBounds$1.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale, ColorConvert.string(item.color));
|
|
10465
|
-
|
|
10466
|
-
|
|
10467
|
-
|
|
10522
|
+
other.setWorldShadow(offsetOutBounds$1.offsetX + (item.x || 0) * scaleX * otherScale, offsetOutBounds$1.offsetY + (item.y || 0) * scaleY * otherScale, (item.blur || 0) * scaleX * otherScale, ColorConvert.string(item.color));
|
|
10523
|
+
transform = Effect.getShadowTransform(ui, other, shape, item, offsetOutBounds$1, otherScale);
|
|
10524
|
+
if (transform) other.setTransform(transform);
|
|
10525
|
+
drawWorldShadow(other, offsetOutBounds$1, shape);
|
|
10526
|
+
if (transform) other.resetTransform();
|
|
10527
|
+
copyBounds = renderBounds;
|
|
10468
10528
|
if (item.box) {
|
|
10469
10529
|
other.restore();
|
|
10470
10530
|
other.save();
|
|
10471
10531
|
if (worldCanvas) {
|
|
10472
|
-
other.copyWorld(other,
|
|
10532
|
+
other.copyWorld(other, renderBounds, nowWorld, "copy");
|
|
10473
10533
|
copyBounds = nowWorld;
|
|
10474
10534
|
}
|
|
10475
10535
|
worldCanvas ? other.copyWorld(worldCanvas, nowWorld, nowWorld, "destination-out") : other.copyWorld(shape.canvas, shapeBounds, bounds, "destination-out");
|
|
10476
10536
|
}
|
|
10477
|
-
|
|
10537
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
10478
10538
|
if (end && index < end) other.clearWorld(copyBounds);
|
|
10479
10539
|
});
|
|
10480
10540
|
other.recycle(copyBounds);
|
|
10481
10541
|
}
|
|
10482
10542
|
|
|
10483
|
-
function
|
|
10484
|
-
let
|
|
10485
|
-
shadow.forEach(item =>
|
|
10486
|
-
|
|
10543
|
+
function getShadowRenderSpread(_ui, shadow) {
|
|
10544
|
+
let top = 0, right = 0, bottom = 0, left = 0, x, y, spread, blur;
|
|
10545
|
+
shadow.forEach(item => {
|
|
10546
|
+
x = item.x || 0, y = item.y || 0, spread = item.spread || 0, blur = (item.blur || 0) * 1.5;
|
|
10547
|
+
top = max(top, spread + blur - y);
|
|
10548
|
+
right = max(right, spread + blur + x);
|
|
10549
|
+
bottom = max(bottom, spread + blur + y);
|
|
10550
|
+
left = max(left, spread + blur - x);
|
|
10551
|
+
});
|
|
10552
|
+
return top === right && right === bottom && bottom === left ? top : [ top, right, bottom, left ];
|
|
10553
|
+
}
|
|
10554
|
+
|
|
10555
|
+
function getShadowTransform(ui, canvas, _shape, shadow, outBounds, otherScale, isInnerShaodw) {
|
|
10556
|
+
if (shadow.spread) {
|
|
10557
|
+
const spreadScale = 1 + shadow.spread * 2 / ui.__layout.strokeBounds.width * otherScale * (isInnerShaodw ? -1 : 1);
|
|
10558
|
+
tempMatrix.set().scaleOfOuter({
|
|
10559
|
+
x: (outBounds.x + outBounds.width / 2) * canvas.pixelRatio,
|
|
10560
|
+
y: (outBounds.y + outBounds.height / 2) * canvas.pixelRatio
|
|
10561
|
+
}, spreadScale);
|
|
10562
|
+
return tempMatrix;
|
|
10563
|
+
}
|
|
10564
|
+
return undefined;
|
|
10487
10565
|
}
|
|
10488
10566
|
|
|
10489
|
-
function drawWorldShadow(canvas, outBounds,
|
|
10490
|
-
const {
|
|
10567
|
+
function drawWorldShadow(canvas, outBounds, shape) {
|
|
10568
|
+
const {shapeBounds: shapeBounds} = shape;
|
|
10569
|
+
let from, to;
|
|
10491
10570
|
if (Platform.fullImageShadow) {
|
|
10492
10571
|
copy(tempBounds, canvas.bounds);
|
|
10493
|
-
tempBounds.x
|
|
10494
|
-
|
|
10495
|
-
if (spreadScale) {
|
|
10496
|
-
const {fitMatrix: fitMatrix} = shape;
|
|
10497
|
-
tempBounds.x -= (bounds.x + (fitMatrix ? fitMatrix.e : 0) + bounds.width / 2) * (spreadScale - 1);
|
|
10498
|
-
tempBounds.y -= (bounds.y + (fitMatrix ? fitMatrix.f : 0) + bounds.height / 2) * (spreadScale - 1);
|
|
10499
|
-
tempBounds.width *= spreadScale;
|
|
10500
|
-
tempBounds.height *= spreadScale;
|
|
10501
|
-
}
|
|
10502
|
-
canvas.copyWorld(shape.canvas, canvas.bounds, tempBounds);
|
|
10572
|
+
move(tempBounds, outBounds.x - shapeBounds.x, outBounds.y - shapeBounds.y);
|
|
10573
|
+
from = canvas.bounds, to = tempBounds;
|
|
10503
10574
|
} else {
|
|
10504
|
-
|
|
10505
|
-
copy(tempBounds, outBounds);
|
|
10506
|
-
tempBounds.x -= outBounds.width / 2 * (spreadScale - 1);
|
|
10507
|
-
tempBounds.y -= outBounds.height / 2 * (spreadScale - 1);
|
|
10508
|
-
tempBounds.width *= spreadScale;
|
|
10509
|
-
tempBounds.height *= spreadScale;
|
|
10510
|
-
}
|
|
10511
|
-
canvas.copyWorld(shape.canvas, shapeBounds, spreadScale ? tempBounds : outBounds);
|
|
10575
|
+
from = shapeBounds, to = outBounds;
|
|
10512
10576
|
}
|
|
10577
|
+
canvas.copyWorld(shape.canvas, from, to);
|
|
10513
10578
|
}
|
|
10514
10579
|
|
|
10515
10580
|
const {toOffsetOutBounds: toOffsetOutBounds} = BoundsHelper;
|
|
@@ -10517,13 +10582,13 @@ const {toOffsetOutBounds: toOffsetOutBounds} = BoundsHelper;
|
|
|
10517
10582
|
const offsetOutBounds = {};
|
|
10518
10583
|
|
|
10519
10584
|
function innerShadow(ui, current, shape) {
|
|
10520
|
-
let copyBounds,
|
|
10521
|
-
const {__nowWorld: nowWorld
|
|
10585
|
+
let copyBounds, transform;
|
|
10586
|
+
const {__nowWorld: nowWorld} = ui;
|
|
10522
10587
|
const {innerShadow: innerShadow} = ui.__;
|
|
10523
|
-
const {worldCanvas: worldCanvas, bounds: bounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
10588
|
+
const {worldCanvas: worldCanvas, bounds: bounds, renderBounds: renderBounds, shapeBounds: shapeBounds, scaleX: scaleX, scaleY: scaleY} = shape;
|
|
10524
10589
|
const other = current.getSameCanvas();
|
|
10525
10590
|
const end = innerShadow.length - 1;
|
|
10526
|
-
toOffsetOutBounds(bounds, offsetOutBounds);
|
|
10591
|
+
toOffsetOutBounds(bounds, offsetOutBounds, renderBounds);
|
|
10527
10592
|
innerShadow.forEach((item, index) => {
|
|
10528
10593
|
let otherScale = 1;
|
|
10529
10594
|
if (item.scaleFixed) {
|
|
@@ -10531,17 +10596,18 @@ function innerShadow(ui, current, shape) {
|
|
|
10531
10596
|
if (sx > 1) otherScale = 1 / sx;
|
|
10532
10597
|
}
|
|
10533
10598
|
other.save();
|
|
10534
|
-
other.setWorldShadow(offsetOutBounds.offsetX + item.x * scaleX * otherScale, offsetOutBounds.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale);
|
|
10535
|
-
|
|
10536
|
-
|
|
10599
|
+
other.setWorldShadow(offsetOutBounds.offsetX + (item.x || 0) * scaleX * otherScale, offsetOutBounds.offsetY + (item.y || 0) * scaleY * otherScale, (item.blur || 0) * scaleX * otherScale);
|
|
10600
|
+
transform = Effect.getShadowTransform(ui, other, shape, item, offsetOutBounds, otherScale, true);
|
|
10601
|
+
if (transform) other.setTransform(transform);
|
|
10602
|
+
drawWorldShadow(other, offsetOutBounds, shape);
|
|
10537
10603
|
other.restore();
|
|
10538
10604
|
if (worldCanvas) {
|
|
10539
|
-
other.copyWorld(other,
|
|
10605
|
+
other.copyWorld(other, renderBounds, nowWorld, "copy");
|
|
10540
10606
|
other.copyWorld(worldCanvas, nowWorld, nowWorld, "source-out");
|
|
10541
10607
|
copyBounds = nowWorld;
|
|
10542
10608
|
} else {
|
|
10543
10609
|
other.copyWorld(shape.canvas, shapeBounds, bounds, "source-out");
|
|
10544
|
-
copyBounds =
|
|
10610
|
+
copyBounds = renderBounds;
|
|
10545
10611
|
}
|
|
10546
10612
|
other.fillWorld(copyBounds, ColorConvert.string(item.color), "source-in");
|
|
10547
10613
|
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
@@ -10550,6 +10616,8 @@ function innerShadow(ui, current, shape) {
|
|
|
10550
10616
|
other.recycle(copyBounds);
|
|
10551
10617
|
}
|
|
10552
10618
|
|
|
10619
|
+
const getInnerShadowSpread = getShadowRenderSpread;
|
|
10620
|
+
|
|
10553
10621
|
function blur(ui, current, origin) {
|
|
10554
10622
|
const {blur: blur} = ui.__;
|
|
10555
10623
|
origin.setWorldBlur(blur * ui.__nowWorld.a);
|
|
@@ -10564,10 +10632,12 @@ const EffectModule = {
|
|
|
10564
10632
|
innerShadow: innerShadow,
|
|
10565
10633
|
blur: blur,
|
|
10566
10634
|
backgroundBlur: backgroundBlur,
|
|
10567
|
-
|
|
10635
|
+
getShadowRenderSpread: getShadowRenderSpread,
|
|
10636
|
+
getShadowTransform: getShadowTransform,
|
|
10568
10637
|
isTransformShadow(_shadow) {
|
|
10569
10638
|
return undefined;
|
|
10570
|
-
}
|
|
10639
|
+
},
|
|
10640
|
+
getInnerShadowSpread: getInnerShadowSpread
|
|
10571
10641
|
};
|
|
10572
10642
|
|
|
10573
10643
|
const {excludeRenderBounds: excludeRenderBounds} = LeafBoundsHelper;
|
|
@@ -10584,6 +10654,7 @@ Group.prototype.__renderMask = function(canvas, options) {
|
|
|
10584
10654
|
maskEnd(this, currentMask, canvas, contentCanvas, maskCanvas, maskOpacity, undefined, true);
|
|
10585
10655
|
maskCanvas = contentCanvas = null;
|
|
10586
10656
|
}
|
|
10657
|
+
if (mask === "clipping" || mask === "clipping-path") excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
10587
10658
|
maskOpacity = child.__.opacity;
|
|
10588
10659
|
usedGrayscaleAlpha = false;
|
|
10589
10660
|
if (mask === "path" || mask === "clipping-path") {
|
|
@@ -10601,7 +10672,6 @@ Group.prototype.__renderMask = function(canvas, options) {
|
|
|
10601
10672
|
if (!contentCanvas) contentCanvas = getCanvas(canvas);
|
|
10602
10673
|
child.__render(maskCanvas, options);
|
|
10603
10674
|
}
|
|
10604
|
-
if (mask === "clipping" || mask === "clipping-path") excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
10605
10675
|
continue;
|
|
10606
10676
|
}
|
|
10607
10677
|
const childBlendMode = maskOpacity === 1 && child.__.__blendMode;
|
|
@@ -11163,6 +11233,7 @@ const TextConvertModule = {
|
|
|
11163
11233
|
};
|
|
11164
11234
|
|
|
11165
11235
|
function string(color, opacity) {
|
|
11236
|
+
if (!color) return "#000";
|
|
11166
11237
|
const doOpacity = isNumber(opacity) && opacity < 1;
|
|
11167
11238
|
if (isString(color)) {
|
|
11168
11239
|
if (doOpacity && ColorConvert.object) color = ColorConvert.object(color); else return color;
|
|
@@ -11193,4 +11264,4 @@ try {
|
|
|
11193
11264
|
if (wx) useCanvas("miniapp", wx);
|
|
11194
11265
|
} catch (_a) {}
|
|
11195
11266
|
|
|
11196
|
-
export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, 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, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$
|
|
11267
|
+
export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, 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, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$2 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|