@leafer-draw/miniapp 1.9.6 → 1.9.8
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 +116 -80
- package/dist/miniapp.esm.js +118 -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 +282 -180
- 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;
|
|
258
264
|
},
|
|
259
|
-
|
|
265
|
+
setTemp(top, right, bottom, left) {
|
|
266
|
+
return set$1(tempFour, top, right, bottom, left);
|
|
267
|
+
},
|
|
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) {
|
|
@@ -423,6 +469,15 @@ const MatrixHelper = {
|
|
|
423
469
|
t.c *= scaleY;
|
|
424
470
|
t.d *= scaleY;
|
|
425
471
|
},
|
|
472
|
+
pixelScale(t, pixelRatio, to) {
|
|
473
|
+
to || (to = t);
|
|
474
|
+
to.a = t.a * pixelRatio;
|
|
475
|
+
to.b = t.b * pixelRatio;
|
|
476
|
+
to.c = t.c * pixelRatio;
|
|
477
|
+
to.d = t.d * pixelRatio;
|
|
478
|
+
to.e = t.e * pixelRatio;
|
|
479
|
+
to.f = t.f * pixelRatio;
|
|
480
|
+
},
|
|
426
481
|
scaleOfOuter(t, origin, scaleX, scaleY) {
|
|
427
482
|
M$6.toInnerPoint(t, origin, tempPoint$3);
|
|
428
483
|
M$6.scaleOfInner(t, tempPoint$3, scaleX, scaleY);
|
|
@@ -922,6 +977,10 @@ class Matrix {
|
|
|
922
977
|
this.scaleY *= y || x;
|
|
923
978
|
return this;
|
|
924
979
|
}
|
|
980
|
+
pixelScale(pixelRatio) {
|
|
981
|
+
MatrixHelper.pixelScale(this, pixelRatio);
|
|
982
|
+
return this;
|
|
983
|
+
}
|
|
925
984
|
scaleOfOuter(origin, x, y) {
|
|
926
985
|
MatrixHelper.scaleOfOuter(this, origin, x, y);
|
|
927
986
|
return this;
|
|
@@ -1001,7 +1060,7 @@ class Matrix {
|
|
|
1001
1060
|
}
|
|
1002
1061
|
}
|
|
1003
1062
|
|
|
1004
|
-
const tempMatrix$
|
|
1063
|
+
const tempMatrix$2 = new Matrix;
|
|
1005
1064
|
|
|
1006
1065
|
const TwoPointBoundsHelper = {
|
|
1007
1066
|
tempPointBounds: {},
|
|
@@ -1151,10 +1210,10 @@ const point = {};
|
|
|
1151
1210
|
|
|
1152
1211
|
const toPoint$4 = {};
|
|
1153
1212
|
|
|
1154
|
-
const tempBounds$
|
|
1213
|
+
const tempBounds$3 = {};
|
|
1155
1214
|
|
|
1156
1215
|
const BoundsHelper = {
|
|
1157
|
-
tempBounds: tempBounds$
|
|
1216
|
+
tempBounds: tempBounds$3,
|
|
1158
1217
|
set(t, x = 0, y = 0, width = 0, height = 0) {
|
|
1159
1218
|
t.x = x;
|
|
1160
1219
|
t.y = y;
|
|
@@ -1205,19 +1264,11 @@ const BoundsHelper = {
|
|
|
1205
1264
|
B.move(t, x, y);
|
|
1206
1265
|
return t;
|
|
1207
1266
|
},
|
|
1208
|
-
toOffsetOutBounds(t, to,
|
|
1209
|
-
if (!to)
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
}
|
|
1214
|
-
if (parent) {
|
|
1215
|
-
to.offsetX = -(B.maxX(parent) - t.x);
|
|
1216
|
-
to.offsetY = -(B.maxY(parent) - t.y);
|
|
1217
|
-
} else {
|
|
1218
|
-
to.offsetX = t.x + t.width;
|
|
1219
|
-
to.offsetY = t.y + t.height;
|
|
1220
|
-
}
|
|
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);
|
|
1221
1272
|
B.move(to, -to.offsetX, -to.offsetY);
|
|
1222
1273
|
},
|
|
1223
1274
|
scale(t, scaleX, scaleY = scaleX, onlySize) {
|
|
@@ -1231,9 +1282,9 @@ const BoundsHelper = {
|
|
|
1231
1282
|
t.height *= scaleY;
|
|
1232
1283
|
},
|
|
1233
1284
|
tempToOuterOf(t, matrix) {
|
|
1234
|
-
B.copy(tempBounds$
|
|
1235
|
-
B.toOuterOf(tempBounds$
|
|
1236
|
-
return tempBounds$
|
|
1285
|
+
B.copy(tempBounds$3, t);
|
|
1286
|
+
B.toOuterOf(tempBounds$3, matrix);
|
|
1287
|
+
return tempBounds$3;
|
|
1237
1288
|
},
|
|
1238
1289
|
getOuterOf(t, matrix) {
|
|
1239
1290
|
t = Object.assign({}, t);
|
|
@@ -1291,9 +1342,9 @@ const BoundsHelper = {
|
|
|
1291
1342
|
put(t, put, align = "center", putScale = 1, changeSize = true, to) {
|
|
1292
1343
|
to || (to = put);
|
|
1293
1344
|
if (isString(putScale)) putScale = B.getFitScale(t, put, putScale === "cover");
|
|
1294
|
-
tempBounds$
|
|
1295
|
-
tempBounds$
|
|
1296
|
-
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);
|
|
1297
1348
|
},
|
|
1298
1349
|
getSpread(t, spread, side) {
|
|
1299
1350
|
const n = {};
|
|
@@ -1363,7 +1414,7 @@ const BoundsHelper = {
|
|
|
1363
1414
|
first = false;
|
|
1364
1415
|
if (!addMode) copy$8(t, bounds);
|
|
1365
1416
|
} else {
|
|
1366
|
-
add$
|
|
1417
|
+
add$2(t, bounds);
|
|
1367
1418
|
}
|
|
1368
1419
|
}
|
|
1369
1420
|
}
|
|
@@ -1377,7 +1428,7 @@ const BoundsHelper = {
|
|
|
1377
1428
|
B.set(t, point.x, point.y);
|
|
1378
1429
|
},
|
|
1379
1430
|
addPoint(t, point) {
|
|
1380
|
-
add$
|
|
1431
|
+
add$2(t, point, true);
|
|
1381
1432
|
},
|
|
1382
1433
|
getPoints(t) {
|
|
1383
1434
|
const {x: x, y: y, width: width, height: height} = t;
|
|
@@ -1448,7 +1499,7 @@ const BoundsHelper = {
|
|
|
1448
1499
|
|
|
1449
1500
|
const B = BoundsHelper;
|
|
1450
1501
|
|
|
1451
|
-
const {add: add$
|
|
1502
|
+
const {add: add$2, copy: copy$8} = B;
|
|
1452
1503
|
|
|
1453
1504
|
class Bounds {
|
|
1454
1505
|
get minX() {
|
|
@@ -1593,7 +1644,7 @@ class Bounds {
|
|
|
1593
1644
|
}
|
|
1594
1645
|
}
|
|
1595
1646
|
|
|
1596
|
-
const tempBounds$
|
|
1647
|
+
const tempBounds$2 = new Bounds;
|
|
1597
1648
|
|
|
1598
1649
|
class AutoBounds {
|
|
1599
1650
|
constructor(top, right, bottom, left, width, height) {
|
|
@@ -2146,7 +2197,7 @@ __decorate([ contextMethod() ], Canvas$1.prototype, "measureText", null);
|
|
|
2146
2197
|
|
|
2147
2198
|
__decorate([ contextMethod() ], Canvas$1.prototype, "strokeText", null);
|
|
2148
2199
|
|
|
2149
|
-
const {copy: copy$7, multiplyParent: multiplyParent$4} = MatrixHelper, {round: round$1} = Math, tempPixelBounds = new Bounds, tempPixelBounds2 = new Bounds;
|
|
2200
|
+
const {copy: copy$7, multiplyParent: multiplyParent$4, pixelScale: pixelScale} = MatrixHelper, {round: round$1} = Math, tempPixelBounds = new Bounds, tempPixelBounds2 = new Bounds;
|
|
2150
2201
|
|
|
2151
2202
|
const minSize = {
|
|
2152
2203
|
width: 1,
|
|
@@ -2247,13 +2298,8 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2247
2298
|
setWorld(matrix, parentMatrix) {
|
|
2248
2299
|
const {pixelRatio: pixelRatio, pixelSnap: pixelSnap} = this, w = this.worldTransform;
|
|
2249
2300
|
if (parentMatrix) multiplyParent$4(matrix, parentMatrix, w);
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
w.c = matrix.c * pixelRatio;
|
|
2253
|
-
w.d = matrix.d * pixelRatio;
|
|
2254
|
-
w.e = matrix.e * pixelRatio;
|
|
2255
|
-
w.f = matrix.f * pixelRatio;
|
|
2256
|
-
if (pixelSnap) {
|
|
2301
|
+
pixelScale(matrix, pixelRatio, w);
|
|
2302
|
+
if (pixelSnap && !matrix.ignorePixelSnap) {
|
|
2257
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),
|
|
2258
2304
|
w.f = round$1(w.f);
|
|
2259
2305
|
}
|
|
@@ -3977,7 +4023,7 @@ const I = ImageManager;
|
|
|
3977
4023
|
|
|
3978
4024
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
3979
4025
|
|
|
3980
|
-
const {floor: floor$1, max: max$
|
|
4026
|
+
const {floor: floor$1, max: max$3} = Math;
|
|
3981
4027
|
|
|
3982
4028
|
class LeaferImage {
|
|
3983
4029
|
get url() {
|
|
@@ -4066,7 +4112,7 @@ class LeaferImage {
|
|
|
4066
4112
|
}
|
|
4067
4113
|
if (data) return data;
|
|
4068
4114
|
}
|
|
4069
|
-
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));
|
|
4070
4116
|
const ctx = canvas.getContext("2d");
|
|
4071
4117
|
if (opacity) ctx.globalAlpha = opacity;
|
|
4072
4118
|
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
@@ -4265,6 +4311,18 @@ function surfaceType(defaultValue) {
|
|
|
4265
4311
|
}));
|
|
4266
4312
|
}
|
|
4267
4313
|
|
|
4314
|
+
function dimType(defaultValue) {
|
|
4315
|
+
return decorateLeafAttr(defaultValue, key => attr({
|
|
4316
|
+
set(value) {
|
|
4317
|
+
if (this.__setAttr(key, value)) {
|
|
4318
|
+
const data = this.__;
|
|
4319
|
+
DataHelper.stintSet(data, "__useDim", data.dim || data.bright || data.dimskip);
|
|
4320
|
+
this.__layout.surfaceChange();
|
|
4321
|
+
}
|
|
4322
|
+
}
|
|
4323
|
+
}));
|
|
4324
|
+
}
|
|
4325
|
+
|
|
4268
4326
|
function opacityType(defaultValue) {
|
|
4269
4327
|
return decorateLeafAttr(defaultValue, key => attr({
|
|
4270
4328
|
set(value) {
|
|
@@ -4309,7 +4367,7 @@ function sortType(defaultValue) {
|
|
|
4309
4367
|
return decorateLeafAttr(defaultValue, key => attr({
|
|
4310
4368
|
set(value) {
|
|
4311
4369
|
if (this.__setAttr(key, value)) {
|
|
4312
|
-
this.__layout.
|
|
4370
|
+
this.__layout.surfaceChange();
|
|
4313
4371
|
this.waitParent(() => {
|
|
4314
4372
|
this.parent.__layout.childrenSortChange();
|
|
4315
4373
|
});
|
|
@@ -4346,7 +4404,7 @@ function hitType(defaultValue) {
|
|
|
4346
4404
|
set(value) {
|
|
4347
4405
|
if (this.__setAttr(key, value)) {
|
|
4348
4406
|
this.__layout.hitCanvasChanged = true;
|
|
4349
|
-
if (Debug.showBounds === "hit") this.__layout.
|
|
4407
|
+
if (Debug.showBounds === "hit") this.__layout.surfaceChange();
|
|
4350
4408
|
if (this.leafer) this.leafer.updateCursor();
|
|
4351
4409
|
}
|
|
4352
4410
|
}
|
|
@@ -4848,7 +4906,7 @@ const WaitHelper = {
|
|
|
4848
4906
|
|
|
4849
4907
|
const {getRelativeWorld: getRelativeWorld$1, updateBounds: updateBounds$2} = LeafHelper;
|
|
4850
4908
|
|
|
4851
|
-
const {toOuterOf: toOuterOf$
|
|
4909
|
+
const {toOuterOf: toOuterOf$3, getPoints: getPoints, copy: copy$4} = BoundsHelper;
|
|
4852
4910
|
|
|
4853
4911
|
const localContent = "_localContentBounds";
|
|
4854
4912
|
|
|
@@ -4871,7 +4929,7 @@ class LeafLayout {
|
|
|
4871
4929
|
this._renderBounds = bounds;
|
|
4872
4930
|
}
|
|
4873
4931
|
get localContentBounds() {
|
|
4874
|
-
toOuterOf$
|
|
4932
|
+
toOuterOf$3(this.contentBounds, this.leaf.__localMatrix, this[localContent] || (this[localContent] = {}));
|
|
4875
4933
|
return this[localContent];
|
|
4876
4934
|
}
|
|
4877
4935
|
get localStrokeBounds() {
|
|
@@ -4881,15 +4939,15 @@ class LeafLayout {
|
|
|
4881
4939
|
return this._localRenderBounds || this;
|
|
4882
4940
|
}
|
|
4883
4941
|
get worldContentBounds() {
|
|
4884
|
-
toOuterOf$
|
|
4942
|
+
toOuterOf$3(this.contentBounds, this.leaf.__world, this[worldContent] || (this[worldContent] = {}));
|
|
4885
4943
|
return this[worldContent];
|
|
4886
4944
|
}
|
|
4887
4945
|
get worldBoxBounds() {
|
|
4888
|
-
toOuterOf$
|
|
4946
|
+
toOuterOf$3(this.boxBounds, this.leaf.__world, this[worldBox] || (this[worldBox] = {}));
|
|
4889
4947
|
return this[worldBox];
|
|
4890
4948
|
}
|
|
4891
4949
|
get worldStrokeBounds() {
|
|
4892
|
-
toOuterOf$
|
|
4950
|
+
toOuterOf$3(this.strokeBounds, this.leaf.__world, this[worldStroke] || (this[worldStroke] = {}));
|
|
4893
4951
|
return this[worldStroke];
|
|
4894
4952
|
}
|
|
4895
4953
|
get a() {
|
|
@@ -5741,14 +5799,14 @@ const {updateMatrix: updateMatrix$1, updateAllMatrix: updateAllMatrix$2} = LeafH
|
|
|
5741
5799
|
|
|
5742
5800
|
const {updateBounds: updateBounds$1} = BranchHelper;
|
|
5743
5801
|
|
|
5744
|
-
const {toOuterOf: toOuterOf$
|
|
5802
|
+
const {toOuterOf: toOuterOf$2, copyAndSpread: copyAndSpread$2, copy: copy$3} = BoundsHelper;
|
|
5745
5803
|
|
|
5746
5804
|
const {toBounds: toBounds} = PathBounds;
|
|
5747
5805
|
|
|
5748
5806
|
const LeafBounds = {
|
|
5749
5807
|
__updateWorldBounds() {
|
|
5750
5808
|
const layout = this.__layout;
|
|
5751
|
-
toOuterOf$
|
|
5809
|
+
toOuterOf$2(layout.renderBounds, this.__world, this.__world);
|
|
5752
5810
|
if (layout.resized) {
|
|
5753
5811
|
if (layout.resized === "inner") this.__onUpdateSize();
|
|
5754
5812
|
if (this.__hasLocalEvent) BoundsEvent.emitLocal(this);
|
|
@@ -5804,13 +5862,13 @@ const LeafBounds = {
|
|
|
5804
5862
|
__updateLocalBoxBounds() {
|
|
5805
5863
|
if (this.__hasMotionPath) this.__updateMotionPath();
|
|
5806
5864
|
if (this.__hasAutoLayout) this.__updateAutoLayout();
|
|
5807
|
-
toOuterOf$
|
|
5865
|
+
toOuterOf$2(this.__layout.boxBounds, this.__local, this.__local);
|
|
5808
5866
|
},
|
|
5809
5867
|
__updateLocalStrokeBounds() {
|
|
5810
|
-
toOuterOf$
|
|
5868
|
+
toOuterOf$2(this.__layout.strokeBounds, this.__localMatrix, this.__layout.localStrokeBounds);
|
|
5811
5869
|
},
|
|
5812
5870
|
__updateLocalRenderBounds() {
|
|
5813
|
-
toOuterOf$
|
|
5871
|
+
toOuterOf$2(this.__layout.renderBounds, this.__localMatrix, this.__layout.localRenderBounds);
|
|
5814
5872
|
},
|
|
5815
5873
|
__updateBoxBounds(_secondLayout, _bounds) {
|
|
5816
5874
|
const b = this.__layout.boxBounds;
|
|
@@ -5848,11 +5906,11 @@ const LeafBounds = {
|
|
|
5848
5906
|
},
|
|
5849
5907
|
__updateStrokeBounds(_bounds) {
|
|
5850
5908
|
const layout = this.__layout;
|
|
5851
|
-
copyAndSpread$
|
|
5909
|
+
copyAndSpread$2(layout.strokeBounds, layout.boxBounds, layout.strokeBoxSpread);
|
|
5852
5910
|
},
|
|
5853
5911
|
__updateRenderBounds(_bounds) {
|
|
5854
|
-
const layout = this.__layout;
|
|
5855
|
-
|
|
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);
|
|
5856
5914
|
}
|
|
5857
5915
|
};
|
|
5858
5916
|
|
|
@@ -5861,6 +5919,7 @@ const LeafRender = {
|
|
|
5861
5919
|
if (options.shape) return this.__renderShape(canvas, options);
|
|
5862
5920
|
if (this.__worldOpacity) {
|
|
5863
5921
|
const data = this.__;
|
|
5922
|
+
if (data.bright && !options.topRendering) return options.topList.add(this);
|
|
5864
5923
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
5865
5924
|
canvas.opacity = options.dimOpacity && !data.dimskip ? data.opacity * options.dimOpacity : data.opacity;
|
|
5866
5925
|
if (this.__.__single) {
|
|
@@ -5909,7 +5968,9 @@ const BranchRender = {
|
|
|
5909
5968
|
this.__nowWorld = this.__getNowWorld(options);
|
|
5910
5969
|
if (this.__worldOpacity) {
|
|
5911
5970
|
const data = this.__;
|
|
5912
|
-
if (data.
|
|
5971
|
+
if (data.__useDim) {
|
|
5972
|
+
if (data.dim) options.dimOpacity = data.dim === true ? .2 : data.dim; else if (data.bright && !options.topRendering) return options.topList.add(this); else if (data.dimskip) options.dimOpacity && (options.dimOpacity = 0);
|
|
5973
|
+
}
|
|
5913
5974
|
if (data.__single && !this.isBranchLeaf) {
|
|
5914
5975
|
if (data.eraser === "path") return this.__renderEraser(canvas, options);
|
|
5915
5976
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
@@ -5947,11 +6008,13 @@ const tempScaleData$1 = {};
|
|
|
5947
6008
|
|
|
5948
6009
|
const {LEAF: LEAF, create: create} = IncrementId;
|
|
5949
6010
|
|
|
6011
|
+
const {stintSet: stintSet$3} = DataHelper;
|
|
6012
|
+
|
|
5950
6013
|
const {toInnerPoint: toInnerPoint, toOuterPoint: toOuterPoint, multiplyParent: multiplyParent$1} = MatrixHelper;
|
|
5951
6014
|
|
|
5952
|
-
const {toOuterOf: toOuterOf} = BoundsHelper;
|
|
6015
|
+
const {toOuterOf: toOuterOf$1} = BoundsHelper;
|
|
5953
6016
|
|
|
5954
|
-
const {copy: copy$2, move: move} = PointHelper;
|
|
6017
|
+
const {copy: copy$2, move: move$2} = PointHelper;
|
|
5955
6018
|
|
|
5956
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;
|
|
5957
6020
|
|
|
@@ -6227,8 +6290,9 @@ let Leaf = class Leaf {
|
|
|
6227
6290
|
if (!this.__cameraWorld) this.__cameraWorld = {};
|
|
6228
6291
|
const cameraWorld = this.__cameraWorld, world = this.__world;
|
|
6229
6292
|
multiplyParent$1(world, options.matrix, cameraWorld, undefined, world);
|
|
6230
|
-
toOuterOf(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
6231
|
-
cameraWorld
|
|
6293
|
+
toOuterOf$1(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
6294
|
+
stintSet$3(cameraWorld, "half", world.half);
|
|
6295
|
+
stintSet$3(cameraWorld, "ignorePixelSnap", world.ignorePixelSnap);
|
|
6232
6296
|
return cameraWorld;
|
|
6233
6297
|
} else {
|
|
6234
6298
|
return this.__world;
|
|
@@ -6262,7 +6326,7 @@ let Leaf = class Leaf {
|
|
|
6262
6326
|
getWorldBounds(inner, relative, change) {
|
|
6263
6327
|
const matrix = relative ? getRelativeWorld(this, relative) : this.worldTransform;
|
|
6264
6328
|
const to = change ? inner : {};
|
|
6265
|
-
toOuterOf(inner, matrix, to);
|
|
6329
|
+
toOuterOf$1(inner, matrix, to);
|
|
6266
6330
|
return to;
|
|
6267
6331
|
}
|
|
6268
6332
|
worldToLocal(world, to, distance, relative) {
|
|
@@ -6295,7 +6359,7 @@ let Leaf = class Leaf {
|
|
|
6295
6359
|
}
|
|
6296
6360
|
getBoxPointByInner(inner, _relative, _distance, change) {
|
|
6297
6361
|
const point = change ? inner : Object.assign({}, inner), {x: x, y: y} = this.boxBounds;
|
|
6298
|
-
move(point, -x, -y);
|
|
6362
|
+
move$2(point, -x, -y);
|
|
6299
6363
|
return point;
|
|
6300
6364
|
}
|
|
6301
6365
|
getInnerPoint(world, relative, distance, change) {
|
|
@@ -6305,7 +6369,7 @@ let Leaf = class Leaf {
|
|
|
6305
6369
|
}
|
|
6306
6370
|
getInnerPointByBox(box, _relative, _distance, change) {
|
|
6307
6371
|
const point = change ? box : Object.assign({}, box), {x: x, y: y} = this.boxBounds;
|
|
6308
|
-
move(point, x, y);
|
|
6372
|
+
move$2(point, x, y);
|
|
6309
6373
|
return point;
|
|
6310
6374
|
}
|
|
6311
6375
|
getInnerPointByLocal(local, _relative, distance, change) {
|
|
@@ -6751,7 +6815,7 @@ class LeafLevelList {
|
|
|
6751
6815
|
}
|
|
6752
6816
|
}
|
|
6753
6817
|
|
|
6754
|
-
const version = "1.9.
|
|
6818
|
+
const version = "1.9.8";
|
|
6755
6819
|
|
|
6756
6820
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6757
6821
|
get allowBackgroundColor() {
|
|
@@ -7329,6 +7393,7 @@ class Renderer {
|
|
|
7329
7393
|
usePartRender: true,
|
|
7330
7394
|
maxFPS: 120
|
|
7331
7395
|
};
|
|
7396
|
+
this.frames = [];
|
|
7332
7397
|
this.target = target;
|
|
7333
7398
|
this.canvas = canvas;
|
|
7334
7399
|
if (userConfig) this.config = DataHelper.default(userConfig, this.config);
|
|
@@ -7458,7 +7523,7 @@ class Renderer {
|
|
|
7458
7523
|
};
|
|
7459
7524
|
if (this.needFill) canvas.fillWorld(bounds, this.config.fill);
|
|
7460
7525
|
if (Debug.showRepaint) Debug.drawRepaint(canvas, bounds);
|
|
7461
|
-
this.target
|
|
7526
|
+
Platform.render(this.target, canvas, options);
|
|
7462
7527
|
this.renderBounds = realBounds = realBounds || bounds;
|
|
7463
7528
|
this.renderOptions = options;
|
|
7464
7529
|
this.totalBounds.isEmpty() ? this.totalBounds = realBounds : this.totalBounds.add(realBounds);
|
|
@@ -7481,12 +7546,15 @@ class Renderer {
|
|
|
7481
7546
|
const target = this.target;
|
|
7482
7547
|
if (this.requestTime || !target) return;
|
|
7483
7548
|
if (target.parentApp) return target.parentApp.requestRender(false);
|
|
7484
|
-
|
|
7549
|
+
this.requestTime = this.frameTime || Date.now();
|
|
7485
7550
|
const render = () => {
|
|
7486
|
-
const nowFPS = 1e3 / (Date.now() - requestTime);
|
|
7551
|
+
const nowFPS = 1e3 / ((this.frameTime = Date.now()) - this.requestTime);
|
|
7487
7552
|
const {maxFPS: maxFPS} = this.config;
|
|
7488
|
-
if (maxFPS && nowFPS > maxFPS
|
|
7489
|
-
|
|
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);
|
|
7490
7558
|
this.requestTime = 0;
|
|
7491
7559
|
this.checkRender();
|
|
7492
7560
|
};
|
|
@@ -7551,6 +7619,15 @@ Object.assign(Creator, {
|
|
|
7551
7619
|
|
|
7552
7620
|
Platform.layout = Layouter.fullLayout;
|
|
7553
7621
|
|
|
7622
|
+
Platform.render = function(target, canvas, options) {
|
|
7623
|
+
const topOptions = Object.assign(Object.assign({}, options), {
|
|
7624
|
+
topRendering: true
|
|
7625
|
+
});
|
|
7626
|
+
options.topList = new LeafList;
|
|
7627
|
+
target.__render(canvas, options);
|
|
7628
|
+
if (options.topList.length) options.topList.forEach(item => item.__render(canvas, topOptions));
|
|
7629
|
+
};
|
|
7630
|
+
|
|
7554
7631
|
function effectType(defaultValue) {
|
|
7555
7632
|
return decorateLeafAttr(defaultValue, key => attr({
|
|
7556
7633
|
set(value) {
|
|
@@ -7950,39 +8027,41 @@ class CanvasData extends RectData {
|
|
|
7950
8027
|
}
|
|
7951
8028
|
}
|
|
7952
8029
|
|
|
8030
|
+
const {max: max$2, add: add$1} = FourNumberHelper;
|
|
8031
|
+
|
|
7953
8032
|
const UIBounds = {
|
|
7954
8033
|
__updateStrokeSpread() {
|
|
7955
|
-
let
|
|
8034
|
+
let spread = 0, boxSpread = 0;
|
|
7956
8035
|
const data = this.__, {strokeAlign: strokeAlign, __maxStrokeWidth: strokeWidth} = data, box = this.__box;
|
|
7957
8036
|
if ((data.stroke || data.hitStroke === "all") && strokeWidth && strokeAlign !== "inside") {
|
|
7958
|
-
|
|
8037
|
+
boxSpread = spread = strokeAlign === "center" ? strokeWidth / 2 : strokeWidth;
|
|
7959
8038
|
if (!data.__boxStroke) {
|
|
7960
|
-
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 *
|
|
8039
|
+
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * spread;
|
|
7961
8040
|
const storkeCapAddWidth = data.strokeCap === "none" ? 0 : strokeWidth;
|
|
7962
|
-
|
|
8041
|
+
spread += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
7963
8042
|
}
|
|
7964
8043
|
}
|
|
7965
|
-
if (data.__useArrow)
|
|
8044
|
+
if (data.__useArrow) spread += strokeWidth * 5;
|
|
7966
8045
|
if (box) {
|
|
7967
|
-
|
|
7968
|
-
|
|
8046
|
+
spread = max$2(spread, box.__layout.strokeSpread = box.__updateStrokeSpread());
|
|
8047
|
+
boxSpread = Math.max(boxSpread, box.__layout.strokeBoxSpread);
|
|
7969
8048
|
}
|
|
7970
|
-
this.__layout.strokeBoxSpread =
|
|
7971
|
-
return
|
|
8049
|
+
this.__layout.strokeBoxSpread = boxSpread;
|
|
8050
|
+
return spread;
|
|
7972
8051
|
},
|
|
7973
8052
|
__updateRenderSpread() {
|
|
7974
|
-
let
|
|
7975
|
-
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__;
|
|
7976
|
-
if (shadow)
|
|
7977
|
-
if (blur)
|
|
7978
|
-
if (filter)
|
|
7979
|
-
if (renderSpread)
|
|
7980
|
-
|
|
7981
|
-
|
|
7982
|
-
if (
|
|
7983
|
-
|
|
7984
|
-
|
|
7985
|
-
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;
|
|
7986
8065
|
}
|
|
7987
8066
|
};
|
|
7988
8067
|
|
|
@@ -8326,9 +8405,9 @@ __decorate([ visibleType(true) ], UI.prototype, "visible", void 0);
|
|
|
8326
8405
|
|
|
8327
8406
|
__decorate([ surfaceType(false) ], UI.prototype, "locked", void 0);
|
|
8328
8407
|
|
|
8329
|
-
__decorate([
|
|
8408
|
+
__decorate([ dimType(false) ], UI.prototype, "dim", void 0);
|
|
8330
8409
|
|
|
8331
|
-
__decorate([
|
|
8410
|
+
__decorate([ dimType(false) ], UI.prototype, "dimskip", void 0);
|
|
8332
8411
|
|
|
8333
8412
|
__decorate([ sortType(0) ], UI.prototype, "zIndex", void 0);
|
|
8334
8413
|
|
|
@@ -9293,7 +9372,7 @@ __decorate([ resizeType() ], Canvas.prototype, "contextSettings", void 0);
|
|
|
9293
9372
|
|
|
9294
9373
|
Canvas = __decorate([ registerUI() ], Canvas);
|
|
9295
9374
|
|
|
9296
|
-
const {copyAndSpread: copyAndSpread, includes: includes, spread: spread, setList: setList} = BoundsHelper;
|
|
9375
|
+
const {copyAndSpread: copyAndSpread$1, includes: includes, spread: spread, setList: setList} = BoundsHelper;
|
|
9297
9376
|
|
|
9298
9377
|
let Text = class Text extends UI {
|
|
9299
9378
|
get __tag() {
|
|
@@ -9340,13 +9419,13 @@ let Text = class Text extends UI {
|
|
|
9340
9419
|
if (this.isOverflow) setList(data.__textBoxBounds = {}, [ b, contentBounds ]), layout.renderChanged = true; else data.__textBoxBounds = b;
|
|
9341
9420
|
}
|
|
9342
9421
|
__updateRenderSpread() {
|
|
9343
|
-
let
|
|
9344
|
-
if (!
|
|
9345
|
-
return
|
|
9422
|
+
let spread = super.__updateRenderSpread();
|
|
9423
|
+
if (!spread) spread = this.isOverflow ? 1 : 0;
|
|
9424
|
+
return spread;
|
|
9346
9425
|
}
|
|
9347
9426
|
__updateRenderBounds() {
|
|
9348
9427
|
const {renderBounds: renderBounds, renderSpread: renderSpread} = this.__layout;
|
|
9349
|
-
copyAndSpread(renderBounds, this.__.__textBoxBounds, renderSpread);
|
|
9428
|
+
copyAndSpread$1(renderBounds, this.__.__textBoxBounds, renderSpread);
|
|
9350
9429
|
if (this.__box) this.__box.__layout.renderBounds = renderBounds;
|
|
9351
9430
|
}
|
|
9352
9431
|
__updateChange() {
|
|
@@ -9714,24 +9793,29 @@ function drawOutside(stroke, ui, canvas) {
|
|
|
9714
9793
|
}
|
|
9715
9794
|
}
|
|
9716
9795
|
|
|
9717
|
-
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 = {};
|
|
9718
9799
|
|
|
9719
9800
|
function shape(ui, current, options) {
|
|
9720
9801
|
const canvas = current.getSameCanvas();
|
|
9721
|
-
const nowWorld = ui.__nowWorld,
|
|
9722
|
-
|
|
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;
|
|
9723
9807
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true);
|
|
9724
|
-
if (currentBounds.includes(
|
|
9808
|
+
if (currentBounds.includes(nowWorldShapeBounds)) {
|
|
9725
9809
|
worldCanvas = canvas;
|
|
9726
|
-
bounds = shapeBounds =
|
|
9810
|
+
bounds = shapeBounds = nowWorldShapeBounds;
|
|
9811
|
+
renderBounds = nowWorld;
|
|
9727
9812
|
} else {
|
|
9728
|
-
const {renderShapeSpread: spread} = ui.__layout;
|
|
9729
9813
|
let worldClipBounds;
|
|
9730
9814
|
if (Platform.fullImageShadow) {
|
|
9731
|
-
worldClipBounds =
|
|
9815
|
+
worldClipBounds = nowWorldShapeBounds;
|
|
9732
9816
|
} else {
|
|
9733
|
-
const spreadBounds =
|
|
9734
|
-
worldClipBounds = getIntersectData(spreadBounds,
|
|
9817
|
+
const spreadBounds = layout.renderShapeSpread ? getSpread(currentBounds, FourNumberHelper.swapAndScale(layout.renderShapeSpread, scaleX, scaleY)) : currentBounds;
|
|
9818
|
+
worldClipBounds = getIntersectData(spreadBounds, nowWorldShapeBounds);
|
|
9735
9819
|
}
|
|
9736
9820
|
fitMatrix = currentBounds.getFitMatrix(worldClipBounds);
|
|
9737
9821
|
let {a: fitScaleX, d: fitScaleY} = fitMatrix;
|
|
@@ -9741,8 +9825,10 @@ function shape(ui, current, options) {
|
|
|
9741
9825
|
scaleX *= fitScaleX;
|
|
9742
9826
|
scaleY *= fitScaleY;
|
|
9743
9827
|
}
|
|
9744
|
-
shapeBounds = getOuterOf(
|
|
9828
|
+
shapeBounds = getOuterOf(nowWorldShapeBounds, fitMatrix);
|
|
9745
9829
|
bounds = getByMove(shapeBounds, -fitMatrix.e, -fitMatrix.f);
|
|
9830
|
+
renderBounds = getOuterOf(nowWorld, fitMatrix);
|
|
9831
|
+
move$1(renderBounds, -fitMatrix.e, -fitMatrix.f);
|
|
9746
9832
|
const userMatrix = options.matrix;
|
|
9747
9833
|
if (userMatrix) {
|
|
9748
9834
|
matrix = new Matrix(fitMatrix);
|
|
@@ -9761,6 +9847,7 @@ function shape(ui, current, options) {
|
|
|
9761
9847
|
matrix: matrix,
|
|
9762
9848
|
fitMatrix: fitMatrix,
|
|
9763
9849
|
bounds: bounds,
|
|
9850
|
+
renderBounds: renderBounds,
|
|
9764
9851
|
worldCanvas: worldCanvas,
|
|
9765
9852
|
shapeBounds: shapeBounds,
|
|
9766
9853
|
scaleX: scaleX,
|
|
@@ -9864,7 +9951,7 @@ const PaintModule = {
|
|
|
9864
9951
|
shape: shape
|
|
9865
9952
|
};
|
|
9866
9953
|
|
|
9867
|
-
let origin = {}, tempMatrix = getMatrixData();
|
|
9954
|
+
let origin = {}, tempMatrix$1 = getMatrixData();
|
|
9868
9955
|
|
|
9869
9956
|
const {get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
9870
9957
|
|
|
@@ -9879,12 +9966,12 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
9879
9966
|
data.transform = transform;
|
|
9880
9967
|
}
|
|
9881
9968
|
|
|
9882
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew,
|
|
9969
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipScaleX, clipScaleY) {
|
|
9883
9970
|
const transform = get$3();
|
|
9884
9971
|
layout(transform, box, x, y, scaleX, scaleY, rotation, skew);
|
|
9885
|
-
if (
|
|
9886
|
-
tempMatrix.a =
|
|
9887
|
-
multiplyParent(transform, tempMatrix);
|
|
9972
|
+
if (clipScaleX) {
|
|
9973
|
+
tempMatrix$1.a = clipScaleX, tempMatrix$1.d = clipScaleY;
|
|
9974
|
+
multiplyParent(transform, tempMatrix$1);
|
|
9888
9975
|
}
|
|
9889
9976
|
data.transform = transform;
|
|
9890
9977
|
}
|
|
@@ -9985,7 +10072,12 @@ function getPatternData(paint, box, image) {
|
|
|
9985
10072
|
|
|
9986
10073
|
case "normal":
|
|
9987
10074
|
case "clip":
|
|
9988
|
-
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
|
+
}
|
|
9989
10081
|
break;
|
|
9990
10082
|
|
|
9991
10083
|
case "repeat":
|
|
@@ -10143,7 +10235,7 @@ function ignoreRender(ui, value) {
|
|
|
10143
10235
|
|
|
10144
10236
|
const {get: get$1, scale: scale, copy: copy$1} = MatrixHelper;
|
|
10145
10237
|
|
|
10146
|
-
const {floor: floor, ceil: ceil, max: max, abs: abs} = Math;
|
|
10238
|
+
const {floor: floor, ceil: ceil, max: max$1, abs: abs} = Math;
|
|
10147
10239
|
|
|
10148
10240
|
function createPattern(ui, paint, pixelRatio) {
|
|
10149
10241
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
@@ -10192,8 +10284,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
10192
10284
|
if (transform || scaleX !== 1 || scaleY !== 1) {
|
|
10193
10285
|
const canvasWidth = width + (xGap || 0);
|
|
10194
10286
|
const canvasHeight = height + (yGap || 0);
|
|
10195
|
-
scaleX /= canvasWidth / max(floor(canvasWidth), 1);
|
|
10196
|
-
scaleY /= canvasHeight / max(floor(canvasHeight), 1);
|
|
10287
|
+
scaleX /= canvasWidth / max$1(floor(canvasWidth), 1);
|
|
10288
|
+
scaleY /= canvasHeight / max$1(floor(canvasHeight), 1);
|
|
10197
10289
|
if (!imageMatrix) {
|
|
10198
10290
|
imageMatrix = get$1();
|
|
10199
10291
|
if (transform) copy$1(imageMatrix, transform);
|
|
@@ -10219,17 +10311,15 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
10219
10311
|
if (allowDraw) {
|
|
10220
10312
|
if (data.repeat) {
|
|
10221
10313
|
allowDraw = false;
|
|
10222
|
-
} else {
|
|
10223
|
-
|
|
10224
|
-
|
|
10225
|
-
|
|
10226
|
-
|
|
10227
|
-
|
|
10228
|
-
|
|
10229
|
-
height *= data.scaleY;
|
|
10230
|
-
}
|
|
10231
|
-
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;
|
|
10232
10321
|
}
|
|
10322
|
+
allowDraw = width * height > Platform.image.maxCacheSize;
|
|
10233
10323
|
}
|
|
10234
10324
|
}
|
|
10235
10325
|
if (allowDraw) {
|
|
@@ -10409,20 +10499,20 @@ const PaintGradientModule = {
|
|
|
10409
10499
|
getTransform: getTransform
|
|
10410
10500
|
};
|
|
10411
10501
|
|
|
10412
|
-
const {copy: copy, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper;
|
|
10502
|
+
const {copy: copy, move: move, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max} = Math;
|
|
10413
10503
|
|
|
10414
|
-
const tempBounds = {};
|
|
10504
|
+
const tempBounds = {}, tempMatrix = new Matrix;
|
|
10415
10505
|
|
|
10416
10506
|
const offsetOutBounds$1 = {};
|
|
10417
10507
|
|
|
10418
10508
|
function shadow(ui, current, shape) {
|
|
10419
|
-
let copyBounds,
|
|
10420
|
-
const {__nowWorld: nowWorld
|
|
10509
|
+
let copyBounds, transform;
|
|
10510
|
+
const {__nowWorld: nowWorld} = ui;
|
|
10421
10511
|
const {shadow: shadow} = ui.__;
|
|
10422
|
-
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;
|
|
10423
10513
|
const other = current.getSameCanvas();
|
|
10424
10514
|
const end = shadow.length - 1;
|
|
10425
|
-
toOffsetOutBounds$1(bounds, offsetOutBounds$1);
|
|
10515
|
+
toOffsetOutBounds$1(bounds, offsetOutBounds$1, renderBounds);
|
|
10426
10516
|
shadow.forEach((item, index) => {
|
|
10427
10517
|
let otherScale = 1;
|
|
10428
10518
|
if (item.scaleFixed) {
|
|
@@ -10430,54 +10520,61 @@ function shadow(ui, current, shape) {
|
|
|
10430
10520
|
if (sx > 1) otherScale = 1 / sx;
|
|
10431
10521
|
}
|
|
10432
10522
|
other.setWorldShadow(offsetOutBounds$1.offsetX + item.x * scaleX * otherScale, offsetOutBounds$1.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale, ColorConvert.string(item.color));
|
|
10433
|
-
|
|
10434
|
-
|
|
10435
|
-
|
|
10523
|
+
transform = 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;
|
|
10436
10528
|
if (item.box) {
|
|
10437
10529
|
other.restore();
|
|
10438
10530
|
other.save();
|
|
10439
10531
|
if (worldCanvas) {
|
|
10440
|
-
other.copyWorld(other,
|
|
10532
|
+
other.copyWorld(other, renderBounds, nowWorld, "copy");
|
|
10441
10533
|
copyBounds = nowWorld;
|
|
10442
10534
|
}
|
|
10443
10535
|
worldCanvas ? other.copyWorld(worldCanvas, nowWorld, nowWorld, "destination-out") : other.copyWorld(shape.canvas, shapeBounds, bounds, "destination-out");
|
|
10444
10536
|
}
|
|
10445
|
-
|
|
10537
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
10446
10538
|
if (end && index < end) other.clearWorld(copyBounds);
|
|
10447
10539
|
});
|
|
10448
10540
|
other.recycle(copyBounds);
|
|
10449
10541
|
}
|
|
10450
10542
|
|
|
10451
|
-
function
|
|
10452
|
-
let
|
|
10453
|
-
shadow.forEach(item =>
|
|
10454
|
-
|
|
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;
|
|
10455
10565
|
}
|
|
10456
10566
|
|
|
10457
|
-
function drawWorldShadow(canvas, outBounds,
|
|
10458
|
-
const {
|
|
10567
|
+
function drawWorldShadow(canvas, outBounds, shape) {
|
|
10568
|
+
const {shapeBounds: shapeBounds} = shape;
|
|
10569
|
+
let from, to;
|
|
10459
10570
|
if (Platform.fullImageShadow) {
|
|
10460
10571
|
copy(tempBounds, canvas.bounds);
|
|
10461
|
-
tempBounds.x
|
|
10462
|
-
|
|
10463
|
-
if (spreadScale) {
|
|
10464
|
-
const {fitMatrix: fitMatrix} = shape;
|
|
10465
|
-
tempBounds.x -= (bounds.x + (fitMatrix ? fitMatrix.e : 0) + bounds.width / 2) * (spreadScale - 1);
|
|
10466
|
-
tempBounds.y -= (bounds.y + (fitMatrix ? fitMatrix.f : 0) + bounds.height / 2) * (spreadScale - 1);
|
|
10467
|
-
tempBounds.width *= spreadScale;
|
|
10468
|
-
tempBounds.height *= spreadScale;
|
|
10469
|
-
}
|
|
10470
|
-
canvas.copyWorld(shape.canvas, canvas.bounds, tempBounds);
|
|
10572
|
+
move(tempBounds, outBounds.x - shapeBounds.x, outBounds.y - shapeBounds.y);
|
|
10573
|
+
from = canvas.bounds, to = tempBounds;
|
|
10471
10574
|
} else {
|
|
10472
|
-
|
|
10473
|
-
copy(tempBounds, outBounds);
|
|
10474
|
-
tempBounds.x -= outBounds.width / 2 * (spreadScale - 1);
|
|
10475
|
-
tempBounds.y -= outBounds.height / 2 * (spreadScale - 1);
|
|
10476
|
-
tempBounds.width *= spreadScale;
|
|
10477
|
-
tempBounds.height *= spreadScale;
|
|
10478
|
-
}
|
|
10479
|
-
canvas.copyWorld(shape.canvas, shapeBounds, spreadScale ? tempBounds : outBounds);
|
|
10575
|
+
from = shapeBounds, to = outBounds;
|
|
10480
10576
|
}
|
|
10577
|
+
canvas.copyWorld(shape.canvas, from, to);
|
|
10481
10578
|
}
|
|
10482
10579
|
|
|
10483
10580
|
const {toOffsetOutBounds: toOffsetOutBounds} = BoundsHelper;
|
|
@@ -10485,13 +10582,13 @@ const {toOffsetOutBounds: toOffsetOutBounds} = BoundsHelper;
|
|
|
10485
10582
|
const offsetOutBounds = {};
|
|
10486
10583
|
|
|
10487
10584
|
function innerShadow(ui, current, shape) {
|
|
10488
|
-
let copyBounds,
|
|
10489
|
-
const {__nowWorld: nowWorld
|
|
10585
|
+
let copyBounds, transform;
|
|
10586
|
+
const {__nowWorld: nowWorld} = ui;
|
|
10490
10587
|
const {innerShadow: innerShadow} = ui.__;
|
|
10491
|
-
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;
|
|
10492
10589
|
const other = current.getSameCanvas();
|
|
10493
10590
|
const end = innerShadow.length - 1;
|
|
10494
|
-
toOffsetOutBounds(bounds, offsetOutBounds);
|
|
10591
|
+
toOffsetOutBounds(bounds, offsetOutBounds, renderBounds);
|
|
10495
10592
|
innerShadow.forEach((item, index) => {
|
|
10496
10593
|
let otherScale = 1;
|
|
10497
10594
|
if (item.scaleFixed) {
|
|
@@ -10500,16 +10597,17 @@ function innerShadow(ui, current, shape) {
|
|
|
10500
10597
|
}
|
|
10501
10598
|
other.save();
|
|
10502
10599
|
other.setWorldShadow(offsetOutBounds.offsetX + item.x * scaleX * otherScale, offsetOutBounds.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale);
|
|
10503
|
-
|
|
10504
|
-
|
|
10600
|
+
transform = getShadowTransform(ui, other, shape, item, offsetOutBounds, otherScale, true);
|
|
10601
|
+
if (transform) other.setTransform(transform);
|
|
10602
|
+
drawWorldShadow(other, offsetOutBounds, shape);
|
|
10505
10603
|
other.restore();
|
|
10506
10604
|
if (worldCanvas) {
|
|
10507
|
-
other.copyWorld(other,
|
|
10605
|
+
other.copyWorld(other, renderBounds, nowWorld, "copy");
|
|
10508
10606
|
other.copyWorld(worldCanvas, nowWorld, nowWorld, "source-out");
|
|
10509
10607
|
copyBounds = nowWorld;
|
|
10510
10608
|
} else {
|
|
10511
10609
|
other.copyWorld(shape.canvas, shapeBounds, bounds, "source-out");
|
|
10512
|
-
copyBounds =
|
|
10610
|
+
copyBounds = renderBounds;
|
|
10513
10611
|
}
|
|
10514
10612
|
other.fillWorld(copyBounds, ColorConvert.string(item.color), "source-in");
|
|
10515
10613
|
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
@@ -10518,6 +10616,8 @@ function innerShadow(ui, current, shape) {
|
|
|
10518
10616
|
other.recycle(copyBounds);
|
|
10519
10617
|
}
|
|
10520
10618
|
|
|
10619
|
+
const getInnerShadowSpread = getShadowRenderSpread;
|
|
10620
|
+
|
|
10521
10621
|
function blur(ui, current, origin) {
|
|
10522
10622
|
const {blur: blur} = ui.__;
|
|
10523
10623
|
origin.setWorldBlur(blur * ui.__nowWorld.a);
|
|
@@ -10532,10 +10632,12 @@ const EffectModule = {
|
|
|
10532
10632
|
innerShadow: innerShadow,
|
|
10533
10633
|
blur: blur,
|
|
10534
10634
|
backgroundBlur: backgroundBlur,
|
|
10535
|
-
|
|
10635
|
+
getShadowRenderSpread: getShadowRenderSpread,
|
|
10636
|
+
getShadowTransform: getShadowTransform,
|
|
10536
10637
|
isTransformShadow(_shadow) {
|
|
10537
10638
|
return undefined;
|
|
10538
|
-
}
|
|
10639
|
+
},
|
|
10640
|
+
getInnerShadowSpread: getInnerShadowSpread
|
|
10539
10641
|
};
|
|
10540
10642
|
|
|
10541
10643
|
const {excludeRenderBounds: excludeRenderBounds} = LeafBoundsHelper;
|
|
@@ -10552,6 +10654,7 @@ Group.prototype.__renderMask = function(canvas, options) {
|
|
|
10552
10654
|
maskEnd(this, currentMask, canvas, contentCanvas, maskCanvas, maskOpacity, undefined, true);
|
|
10553
10655
|
maskCanvas = contentCanvas = null;
|
|
10554
10656
|
}
|
|
10657
|
+
if (mask === "clipping" || mask === "clipping-path") excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
10555
10658
|
maskOpacity = child.__.opacity;
|
|
10556
10659
|
usedGrayscaleAlpha = false;
|
|
10557
10660
|
if (mask === "path" || mask === "clipping-path") {
|
|
@@ -10569,7 +10672,6 @@ Group.prototype.__renderMask = function(canvas, options) {
|
|
|
10569
10672
|
if (!contentCanvas) contentCanvas = getCanvas(canvas);
|
|
10570
10673
|
child.__render(maskCanvas, options);
|
|
10571
10674
|
}
|
|
10572
|
-
if (mask === "clipping" || mask === "clipping-path") excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
10573
10675
|
continue;
|
|
10574
10676
|
}
|
|
10575
10677
|
const childBlendMode = maskOpacity === 1 && child.__.__blendMode;
|
|
@@ -11161,4 +11263,4 @@ try {
|
|
|
11161
11263
|
if (wx) useCanvas("miniapp", wx);
|
|
11162
11264
|
} catch (_a) {}
|
|
11163
11265
|
|
|
11164
|
-
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, 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$
|
|
11266
|
+
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 };
|