@leafer-draw/miniapp 1.12.4 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/miniapp.cjs +18 -12
- package/dist/miniapp.esm.js +18 -12
- 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 +125 -103
- 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
|
@@ -216,59 +216,6 @@ class LeafData {
|
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
const {floor: floor$2, max: max$4} = Math;
|
|
220
|
-
|
|
221
|
-
const Platform = {
|
|
222
|
-
toURL(text, fileType) {
|
|
223
|
-
let url = encodeURIComponent(text);
|
|
224
|
-
if (fileType === "text") url = "data:text/plain;charset=utf-8," + url; else if (fileType === "svg") url = "data:image/svg+xml," + url;
|
|
225
|
-
return url;
|
|
226
|
-
},
|
|
227
|
-
image: {
|
|
228
|
-
hitCanvasSize: 100,
|
|
229
|
-
maxCacheSize: 2560 * 1600,
|
|
230
|
-
maxPatternSize: 4096 * 2160,
|
|
231
|
-
crossOrigin: "anonymous",
|
|
232
|
-
isLarge(size, scaleX, scaleY, largeSize) {
|
|
233
|
-
return size.width * size.height * (scaleX ? scaleX * scaleY : 1) > (largeSize || image$1.maxCacheSize);
|
|
234
|
-
},
|
|
235
|
-
isSuperLarge(size, scaleX, scaleY) {
|
|
236
|
-
return image$1.isLarge(size, scaleX, scaleY, image$1.maxPatternSize);
|
|
237
|
-
},
|
|
238
|
-
getRealURL(url) {
|
|
239
|
-
const {prefix: prefix, suffix: suffix} = Platform.image;
|
|
240
|
-
if (suffix && !url.startsWith("data:") && !url.startsWith("blob:")) url += (url.includes("?") ? "&" : "?") + suffix;
|
|
241
|
-
if (prefix && url[0] === "/") url = prefix + url;
|
|
242
|
-
return url;
|
|
243
|
-
},
|
|
244
|
-
resize(image, width, height, xGap, yGap, clip, smooth, opacity, _filters) {
|
|
245
|
-
const canvas = Platform.origin.createCanvas(max$4(floor$2(width + (xGap || 0)), 1), max$4(floor$2(height + (yGap || 0)), 1));
|
|
246
|
-
const ctx = canvas.getContext("2d");
|
|
247
|
-
if (opacity) ctx.globalAlpha = opacity;
|
|
248
|
-
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
249
|
-
if (image) {
|
|
250
|
-
if (clip) {
|
|
251
|
-
const scaleX = width / clip.width, scaleY = height / clip.height;
|
|
252
|
-
ctx.setTransform(scaleX, 0, 0, scaleY, -clip.x * scaleX, -clip.y * scaleY);
|
|
253
|
-
ctx.drawImage(image, 0, 0, image.width, image.height);
|
|
254
|
-
} else ctx.drawImage(image, 0, 0, width, height);
|
|
255
|
-
}
|
|
256
|
-
return canvas;
|
|
257
|
-
},
|
|
258
|
-
setPatternTransform(pattern, transform, paint) {
|
|
259
|
-
try {
|
|
260
|
-
if (transform && pattern.setTransform) {
|
|
261
|
-
pattern.setTransform(transform);
|
|
262
|
-
transform = undefined;
|
|
263
|
-
}
|
|
264
|
-
} catch (_a) {}
|
|
265
|
-
if (paint) DataHelper.stintSet(paint, "transform", transform);
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
};
|
|
269
|
-
|
|
270
|
-
const {image: image$1} = Platform;
|
|
271
|
-
|
|
272
219
|
const IncrementId = {
|
|
273
220
|
RUNTIME: "runtime",
|
|
274
221
|
LEAF: "leaf",
|
|
@@ -291,7 +238,7 @@ const I$1 = IncrementId;
|
|
|
291
238
|
|
|
292
239
|
let tempA, tempB, tempTo;
|
|
293
240
|
|
|
294
|
-
const {max: max$
|
|
241
|
+
const {max: max$4} = Math, tempFour = [ 0, 0, 0, 0 ];
|
|
295
242
|
|
|
296
243
|
const FourNumberHelper = {
|
|
297
244
|
zero: [ ...tempFour ],
|
|
@@ -343,9 +290,9 @@ const FourNumberHelper = {
|
|
|
343
290
|
return data;
|
|
344
291
|
},
|
|
345
292
|
max(t, other, change) {
|
|
346
|
-
if (isNumber(t) && isNumber(other)) return max$
|
|
293
|
+
if (isNumber(t) && isNumber(other)) return max$4(t, other);
|
|
347
294
|
toTempAB(t, other, change);
|
|
348
|
-
return set$2(tempTo, max$
|
|
295
|
+
return set$2(tempTo, max$4(tempA[0], tempB[0]), max$4(tempA[1], tempB[1]), max$4(tempA[2], tempB[2]), max$4(tempA[3], tempB[3]));
|
|
349
296
|
},
|
|
350
297
|
add(t, other, change) {
|
|
351
298
|
if (isNumber(t) && isNumber(other)) return t + other;
|
|
@@ -362,7 +309,7 @@ const FourNumberHelper = {
|
|
|
362
309
|
|
|
363
310
|
const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
|
|
364
311
|
|
|
365
|
-
const {round: round$3, pow: pow$1, max: max$
|
|
312
|
+
const {round: round$3, pow: pow$1, max: max$3, floor: floor$2, PI: PI$3} = Math;
|
|
366
313
|
|
|
367
314
|
const MathHelper = {
|
|
368
315
|
within(value, min, max) {
|
|
@@ -416,7 +363,7 @@ const MathHelper = {
|
|
|
416
363
|
}
|
|
417
364
|
},
|
|
418
365
|
getFloorScale(num, min = 1) {
|
|
419
|
-
return max$
|
|
366
|
+
return max$3(floor$2(num), min) / num;
|
|
420
367
|
},
|
|
421
368
|
randInt: randInt,
|
|
422
369
|
randColor(opacity) {
|
|
@@ -1261,7 +1208,7 @@ const {toOuterPoint: toOuterPoint$2} = MatrixHelper;
|
|
|
1261
1208
|
|
|
1262
1209
|
const {float: float, fourNumber: fourNumber} = MathHelper;
|
|
1263
1210
|
|
|
1264
|
-
const {floor: floor, ceil: ceil$1} = Math;
|
|
1211
|
+
const {floor: floor$1, ceil: ceil$1} = Math;
|
|
1265
1212
|
|
|
1266
1213
|
let right$1, bottom$1, boundsRight, boundsBottom;
|
|
1267
1214
|
|
|
@@ -1418,8 +1365,8 @@ const BoundsHelper = {
|
|
|
1418
1365
|
},
|
|
1419
1366
|
ceil(t) {
|
|
1420
1367
|
const {x: x, y: y} = t;
|
|
1421
|
-
t.x = floor(t.x);
|
|
1422
|
-
t.y = floor(t.y);
|
|
1368
|
+
t.x = floor$1(t.x);
|
|
1369
|
+
t.y = floor$1(t.y);
|
|
1423
1370
|
t.width = x > t.x ? ceil$1(t.width + x - t.x) : ceil$1(t.width);
|
|
1424
1371
|
t.height = y > t.y ? ceil$1(t.height + y - t.y) : ceil$1(t.height);
|
|
1425
1372
|
},
|
|
@@ -1551,6 +1498,9 @@ const BoundsHelper = {
|
|
|
1551
1498
|
isEmpty(t) {
|
|
1552
1499
|
return t.x === 0 && t.y === 0 && t.width === 0 && t.height === 0;
|
|
1553
1500
|
},
|
|
1501
|
+
hasSize(t) {
|
|
1502
|
+
return t.width && t.height;
|
|
1503
|
+
},
|
|
1554
1504
|
reset(t) {
|
|
1555
1505
|
B.set(t);
|
|
1556
1506
|
}
|
|
@@ -1727,6 +1677,12 @@ class AutoBounds {
|
|
|
1727
1677
|
}
|
|
1728
1678
|
}
|
|
1729
1679
|
|
|
1680
|
+
const UnitConvertHelper = {
|
|
1681
|
+
number(value, percentRefer) {
|
|
1682
|
+
return isObject(value) ? value.type === "percent" ? value.value * percentRefer : value.value : value;
|
|
1683
|
+
}
|
|
1684
|
+
};
|
|
1685
|
+
|
|
1730
1686
|
const StringNumberMap = {
|
|
1731
1687
|
0: 1,
|
|
1732
1688
|
1: 1,
|
|
@@ -1743,6 +1699,69 @@ const StringNumberMap = {
|
|
|
1743
1699
|
E: 1
|
|
1744
1700
|
};
|
|
1745
1701
|
|
|
1702
|
+
const {floor: floor, max: max$2} = Math;
|
|
1703
|
+
|
|
1704
|
+
const Platform = {
|
|
1705
|
+
toURL(text, fileType) {
|
|
1706
|
+
let url = encodeURIComponent(text);
|
|
1707
|
+
if (fileType === "text") url = "data:text/plain;charset=utf-8," + url; else if (fileType === "svg") url = "data:image/svg+xml," + url;
|
|
1708
|
+
return url;
|
|
1709
|
+
},
|
|
1710
|
+
image: {
|
|
1711
|
+
hitCanvasSize: 100,
|
|
1712
|
+
maxCacheSize: 2560 * 1600,
|
|
1713
|
+
maxPatternSize: 4096 * 2160,
|
|
1714
|
+
crossOrigin: "anonymous",
|
|
1715
|
+
isLarge(size, scaleX, scaleY, largeSize) {
|
|
1716
|
+
return size.width * size.height * (scaleX ? scaleX * scaleY : 1) > (largeSize || image$1.maxCacheSize);
|
|
1717
|
+
},
|
|
1718
|
+
isSuperLarge(size, scaleX, scaleY) {
|
|
1719
|
+
return image$1.isLarge(size, scaleX, scaleY, image$1.maxPatternSize);
|
|
1720
|
+
},
|
|
1721
|
+
getRealURL(url) {
|
|
1722
|
+
const {prefix: prefix, suffix: suffix} = image$1;
|
|
1723
|
+
if (suffix && !url.startsWith("data:") && !url.startsWith("blob:")) url += (url.includes("?") ? "&" : "?") + suffix;
|
|
1724
|
+
if (prefix && url[0] === "/") url = prefix + url;
|
|
1725
|
+
return url;
|
|
1726
|
+
},
|
|
1727
|
+
resize(view, width, height, xGap, yGap, clip, smooth, opacity, _filters, interlace) {
|
|
1728
|
+
const realWidth = max$2(floor(width + (xGap || 0)), 1), realHeight = max$2(floor(height + (yGap || 0)), 1);
|
|
1729
|
+
let interlaceX, interlaceY, interlaceOffset;
|
|
1730
|
+
if (interlace && (interlaceOffset = UnitConvertHelper.number(interlace.offset, interlace.type === "x" ? width : height))) interlace.type === "x" ? interlaceX = true : interlaceY = true;
|
|
1731
|
+
const canvas = Platform.origin.createCanvas(interlaceY ? realWidth * 2 : realWidth, interlaceX ? realHeight * 2 : realHeight);
|
|
1732
|
+
const ctx = canvas.getContext("2d");
|
|
1733
|
+
if (opacity) ctx.globalAlpha = opacity;
|
|
1734
|
+
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
1735
|
+
if (image$1.canUse(view)) {
|
|
1736
|
+
if (clip) {
|
|
1737
|
+
const scaleX = width / clip.width, scaleY = height / clip.height;
|
|
1738
|
+
ctx.setTransform(scaleX, 0, 0, scaleY, -clip.x * scaleX, -clip.y * scaleY);
|
|
1739
|
+
ctx.drawImage(view, 0, 0, view.width, view.height);
|
|
1740
|
+
} else ctx.drawImage(view, 0, 0, width, height);
|
|
1741
|
+
if (interlaceOffset) {
|
|
1742
|
+
ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset - realWidth : realWidth, interlaceX ? realHeight : interlaceOffset - realHeight, realWidth, realHeight);
|
|
1743
|
+
ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset : realWidth, interlaceX ? realHeight : interlaceOffset, realWidth, realHeight);
|
|
1744
|
+
}
|
|
1745
|
+
}
|
|
1746
|
+
return canvas;
|
|
1747
|
+
},
|
|
1748
|
+
canUse(view) {
|
|
1749
|
+
return view && view.width && !view.__closed;
|
|
1750
|
+
},
|
|
1751
|
+
setPatternTransform(pattern, transform, paint) {
|
|
1752
|
+
try {
|
|
1753
|
+
if (transform && pattern.setTransform) {
|
|
1754
|
+
pattern.setTransform(transform);
|
|
1755
|
+
transform = undefined;
|
|
1756
|
+
}
|
|
1757
|
+
} catch (_a) {}
|
|
1758
|
+
if (paint) DataHelper.stintSet(paint, "transform", transform);
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
};
|
|
1762
|
+
|
|
1763
|
+
const {image: image$1} = Platform;
|
|
1764
|
+
|
|
1746
1765
|
const {randColor: randColor} = MathHelper;
|
|
1747
1766
|
|
|
1748
1767
|
class Debug {
|
|
@@ -3298,10 +3317,10 @@ const PathCommandDataHelper = {
|
|
|
3298
3317
|
data.push(O$2, x, y, radius, startAngle, endAngle, anticlockwise ? 1 : 0);
|
|
3299
3318
|
}
|
|
3300
3319
|
},
|
|
3301
|
-
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
|
|
3320
|
+
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY, fullRadius) {
|
|
3302
3321
|
if (!isUndefined(lastX)) {
|
|
3303
|
-
const
|
|
3304
|
-
radius = min(radius, min(
|
|
3322
|
+
const r = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2) / (fullRadius ? 1 : 2);
|
|
3323
|
+
radius = min(radius, min(r, r * abs$2(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
|
|
3305
3324
|
}
|
|
3306
3325
|
data.push(U$2, x1, y1, x2, y2, radius);
|
|
3307
3326
|
},
|
|
@@ -3645,7 +3664,7 @@ const PathCorner = {
|
|
|
3645
3664
|
let command, lastCommand, commandLen;
|
|
3646
3665
|
let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
|
|
3647
3666
|
if (isArray(cornerRadius)) cornerRadius = cornerRadius[0] || 0;
|
|
3648
|
-
const len = data.length;
|
|
3667
|
+
const len = data.length, three = len === 9;
|
|
3649
3668
|
const smooth = [];
|
|
3650
3669
|
while (i < len) {
|
|
3651
3670
|
command = data[i];
|
|
@@ -3657,7 +3676,7 @@ const PathCorner = {
|
|
|
3657
3676
|
if (data[i] === L$1) {
|
|
3658
3677
|
secondX = data[i + 1];
|
|
3659
3678
|
secondY = data[i + 2];
|
|
3660
|
-
smooth.push(M, getCenterX(startX, secondX), getCenterY(startY, secondY));
|
|
3679
|
+
three ? smooth.push(M, startX, startY) : smooth.push(M, getCenterX(startX, secondX), getCenterY(startY, secondY));
|
|
3661
3680
|
} else {
|
|
3662
3681
|
smooth.push(M, startX, startY);
|
|
3663
3682
|
}
|
|
@@ -3669,11 +3688,11 @@ const PathCorner = {
|
|
|
3669
3688
|
i += 3;
|
|
3670
3689
|
switch (data[i]) {
|
|
3671
3690
|
case L$1:
|
|
3672
|
-
arcTo(smooth, x, y, data[i + 1], data[i + 2], cornerRadius, lastX, lastY);
|
|
3691
|
+
arcTo(smooth, x, y, data[i + 1], data[i + 2], cornerRadius, lastX, lastY, three);
|
|
3673
3692
|
break;
|
|
3674
3693
|
|
|
3675
3694
|
case Z:
|
|
3676
|
-
arcTo(smooth, x, y, startX, startY, cornerRadius, lastX, lastY);
|
|
3695
|
+
arcTo(smooth, x, y, startX, startY, cornerRadius, lastX, lastY, three);
|
|
3677
3696
|
break;
|
|
3678
3697
|
|
|
3679
3698
|
default:
|
|
@@ -3685,7 +3704,7 @@ const PathCorner = {
|
|
|
3685
3704
|
|
|
3686
3705
|
case Z:
|
|
3687
3706
|
if (lastCommand !== Z) {
|
|
3688
|
-
arcTo(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY);
|
|
3707
|
+
arcTo(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY, three);
|
|
3689
3708
|
smooth.push(Z);
|
|
3690
3709
|
}
|
|
3691
3710
|
i += 1;
|
|
@@ -3785,9 +3804,10 @@ class TaskItem {
|
|
|
3785
3804
|
run() {
|
|
3786
3805
|
return __awaiter(this, void 0, void 0, function*() {
|
|
3787
3806
|
try {
|
|
3788
|
-
if (this.isComplete) return;
|
|
3807
|
+
if (this.isComplete || this.runing) return;
|
|
3808
|
+
this.runing = true;
|
|
3789
3809
|
if (this.canUse && !this.canUse()) return this.cancel();
|
|
3790
|
-
if (this.task
|
|
3810
|
+
if (this.task) yield this.task();
|
|
3791
3811
|
} catch (error) {
|
|
3792
3812
|
debug$8.error(error);
|
|
3793
3813
|
}
|
|
@@ -3903,7 +3923,7 @@ class TaskProcessor {
|
|
|
3903
3923
|
stop() {
|
|
3904
3924
|
this.isComplete = true;
|
|
3905
3925
|
this.list.forEach(task => {
|
|
3906
|
-
if (!task.isComplete) task.
|
|
3926
|
+
if (!task.isComplete) task.run();
|
|
3907
3927
|
});
|
|
3908
3928
|
this.pause();
|
|
3909
3929
|
this.empty();
|
|
@@ -4193,7 +4213,7 @@ class LeaferImage {
|
|
|
4193
4213
|
getFull(_filters) {
|
|
4194
4214
|
return this.view;
|
|
4195
4215
|
}
|
|
4196
|
-
getCanvas(width, height, opacity, filters, xGap, yGap, smooth) {
|
|
4216
|
+
getCanvas(width, height, opacity, filters, xGap, yGap, smooth, interlace) {
|
|
4197
4217
|
width || (width = this.width);
|
|
4198
4218
|
height || (height = this.height);
|
|
4199
4219
|
if (this.cache) {
|
|
@@ -4206,7 +4226,7 @@ class LeaferImage {
|
|
|
4206
4226
|
}
|
|
4207
4227
|
if (data) return data;
|
|
4208
4228
|
}
|
|
4209
|
-
const canvas = Platform.image.resize(this.view, width, height, xGap, yGap, undefined, smooth, opacity, filters);
|
|
4229
|
+
const canvas = Platform.image.resize(this.view, width, height, xGap, yGap, undefined, smooth, opacity, filters, interlace);
|
|
4210
4230
|
this.cache = this.use > 1 ? {
|
|
4211
4231
|
data: canvas,
|
|
4212
4232
|
params: arguments
|
|
@@ -6098,7 +6118,7 @@ const LeafRender = {
|
|
|
6098
6118
|
}
|
|
6099
6119
|
};
|
|
6100
6120
|
|
|
6101
|
-
const {excludeRenderBounds: excludeRenderBounds$1} = LeafBoundsHelper;
|
|
6121
|
+
const {excludeRenderBounds: excludeRenderBounds$1} = LeafBoundsHelper, {hasSize: hasSize} = BoundsHelper;
|
|
6102
6122
|
|
|
6103
6123
|
const BranchRender = {
|
|
6104
6124
|
__updateChange() {
|
|
@@ -6110,8 +6130,8 @@ const BranchRender = {
|
|
|
6110
6130
|
this.__.__checkSingle();
|
|
6111
6131
|
},
|
|
6112
6132
|
__render(canvas, options) {
|
|
6113
|
-
this.__nowWorld = this.__getNowWorld(options);
|
|
6114
|
-
if (this.__worldOpacity) {
|
|
6133
|
+
const nowWorld = this.__nowWorld = this.__getNowWorld(options);
|
|
6134
|
+
if (this.__worldOpacity && hasSize(nowWorld)) {
|
|
6115
6135
|
const data = this.__;
|
|
6116
6136
|
if (data.__useDim) {
|
|
6117
6137
|
if (data.dim) options.dimOpacity = data.dim === true ? .2 : data.dim; else if (data.bright && !options.topRendering) return options.topList.add(this); else if (data.dimskip) options.dimOpacity && (options.dimOpacity = 0);
|
|
@@ -6120,7 +6140,6 @@ const BranchRender = {
|
|
|
6120
6140
|
if (data.eraser === "path") return this.__renderEraser(canvas, options);
|
|
6121
6141
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
6122
6142
|
this.__renderBranch(tempCanvas, options);
|
|
6123
|
-
const nowWorld = this.__nowWorld;
|
|
6124
6143
|
canvas.opacity = options.dimOpacity ? data.opacity * options.dimOpacity : data.opacity;
|
|
6125
6144
|
canvas.copyWorldByReset(tempCanvas, nowWorld, nowWorld, data.__blendMode, true);
|
|
6126
6145
|
tempCanvas.recycle(nowWorld);
|
|
@@ -6960,7 +6979,7 @@ class LeafLevelList {
|
|
|
6960
6979
|
}
|
|
6961
6980
|
}
|
|
6962
6981
|
|
|
6963
|
-
const version = "
|
|
6982
|
+
const version = "2.0.1";
|
|
6964
6983
|
|
|
6965
6984
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6966
6985
|
get allowBackgroundColor() {
|
|
@@ -7540,6 +7559,7 @@ class Renderer {
|
|
|
7540
7559
|
this.times = 0;
|
|
7541
7560
|
this.config = {
|
|
7542
7561
|
usePartRender: true,
|
|
7562
|
+
ceilPartPixel: true,
|
|
7543
7563
|
maxFPS: 120
|
|
7544
7564
|
};
|
|
7545
7565
|
this.frames = [];
|
|
@@ -7648,8 +7668,9 @@ class Renderer {
|
|
|
7648
7668
|
const {canvas: canvas} = this, bounds = block.getIntersect(canvas.bounds), realBounds = new Bounds(bounds);
|
|
7649
7669
|
canvas.save();
|
|
7650
7670
|
bounds.spread(Renderer.clipSpread).ceil();
|
|
7651
|
-
|
|
7652
|
-
canvas.clipWorld(bounds);
|
|
7671
|
+
const {ceilPartPixel: ceilPartPixel} = this.config;
|
|
7672
|
+
canvas.clipWorld(bounds, ceilPartPixel);
|
|
7673
|
+
canvas.clearWorld(bounds, ceilPartPixel);
|
|
7653
7674
|
this.__render(bounds, realBounds);
|
|
7654
7675
|
canvas.restore();
|
|
7655
7676
|
Run.end(t);
|
|
@@ -7848,11 +7869,7 @@ const ColorConvert = {
|
|
|
7848
7869
|
hasTransparent: hasTransparent$3
|
|
7849
7870
|
};
|
|
7850
7871
|
|
|
7851
|
-
const UnitConvert =
|
|
7852
|
-
number(value, percentRefer) {
|
|
7853
|
-
return isObject(value) ? value.type === "percent" ? value.value * percentRefer : value.value : value;
|
|
7854
|
-
}
|
|
7855
|
-
};
|
|
7872
|
+
const UnitConvert = UnitConvertHelper;
|
|
7856
7873
|
|
|
7857
7874
|
const PathArrow = {};
|
|
7858
7875
|
|
|
@@ -7929,16 +7946,16 @@ class UIData extends LeafData {
|
|
|
7929
7946
|
return t.fill || t.stroke;
|
|
7930
7947
|
}
|
|
7931
7948
|
get __autoWidth() {
|
|
7932
|
-
return
|
|
7949
|
+
return this._width == null;
|
|
7933
7950
|
}
|
|
7934
7951
|
get __autoHeight() {
|
|
7935
|
-
return
|
|
7952
|
+
return this._height == null;
|
|
7936
7953
|
}
|
|
7937
7954
|
get __autoSide() {
|
|
7938
|
-
return
|
|
7955
|
+
return this._width == null || this._height == null;
|
|
7939
7956
|
}
|
|
7940
7957
|
get __autoSize() {
|
|
7941
|
-
return
|
|
7958
|
+
return this._width == null && this._height == null;
|
|
7942
7959
|
}
|
|
7943
7960
|
setVisible(value) {
|
|
7944
7961
|
this._visible = value;
|
|
@@ -9222,9 +9239,10 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9222
9239
|
const {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = this.__;
|
|
9223
9240
|
const rx = width / 2, ry = height / 2;
|
|
9224
9241
|
const path = this.__.path = [];
|
|
9242
|
+
let open;
|
|
9225
9243
|
if (innerRadius) {
|
|
9226
9244
|
if (startAngle || endAngle) {
|
|
9227
|
-
if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
|
|
9245
|
+
if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false); else open = true;
|
|
9228
9246
|
ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
|
|
9229
9247
|
} else {
|
|
9230
9248
|
if (innerRadius < 1) {
|
|
@@ -9241,7 +9259,7 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9241
9259
|
ellipse(path, rx, ry, rx, ry);
|
|
9242
9260
|
}
|
|
9243
9261
|
}
|
|
9244
|
-
closePath$2(path);
|
|
9262
|
+
if (!open) closePath$2(path);
|
|
9245
9263
|
if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
|
|
9246
9264
|
}
|
|
9247
9265
|
};
|
|
@@ -10173,7 +10191,7 @@ function getPatternData(paint, box, image) {
|
|
|
10173
10191
|
if (paint.padding) box = tempBox.set(box).shrink(paint.padding);
|
|
10174
10192
|
if (paint.mode === "strench") paint.mode = "stretch";
|
|
10175
10193
|
const {width: width, height: height} = image;
|
|
10176
|
-
const {opacity: opacity, mode: mode, align: align, offset: offset, scale: scale, size: size, rotation: rotation, skew: skew, clipSize: clipSize, repeat: repeat, gap: gap, filters: filters} = paint;
|
|
10194
|
+
const {opacity: opacity, mode: mode, align: align, offset: offset, scale: scale, size: size, rotation: rotation, skew: skew, clipSize: clipSize, repeat: repeat, gap: gap, filters: filters, interlace: interlace} = paint;
|
|
10177
10195
|
const sameBox = box.width === width && box.height === height;
|
|
10178
10196
|
const data = {
|
|
10179
10197
|
mode: mode
|
|
@@ -10239,6 +10257,10 @@ function getPatternData(paint, box, image) {
|
|
|
10239
10257
|
if (opacity && opacity < 1) data.opacity = opacity;
|
|
10240
10258
|
if (filters) data.filters = filters;
|
|
10241
10259
|
if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
|
|
10260
|
+
if (interlace) data.interlace = isNumber(interlace) || interlace.type === "percent" ? {
|
|
10261
|
+
type: "x",
|
|
10262
|
+
offset: interlace
|
|
10263
|
+
} : interlace;
|
|
10242
10264
|
return data;
|
|
10243
10265
|
}
|
|
10244
10266
|
|
|
@@ -10372,7 +10394,7 @@ function createPattern(paint, ui, canvas, renderOptions) {
|
|
|
10372
10394
|
if (transform) copy$1(imageMatrix, transform);
|
|
10373
10395
|
scale(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
10374
10396
|
}
|
|
10375
|
-
const imageCanvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth);
|
|
10397
|
+
const imageCanvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth, data.interlace);
|
|
10376
10398
|
const pattern = image.getPattern(imageCanvas, data.repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
10377
10399
|
paint.style = pattern;
|
|
10378
10400
|
paint.patternId = id;
|
|
@@ -10394,8 +10416,8 @@ function getPatternFixScale(paint, imageScaleX, imageScaleY) {
|
|
|
10394
10416
|
|
|
10395
10417
|
function checkImage(paint, drawImage, ui, canvas, renderOptions) {
|
|
10396
10418
|
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions);
|
|
10397
|
-
const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting} = renderOptions;
|
|
10398
|
-
if (!data || paint.patternId === scaleX + "-" + scaleY && !exporting) {
|
|
10419
|
+
const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting, snapshot: snapshot} = renderOptions;
|
|
10420
|
+
if (!data || paint.patternId === scaleX + "-" + scaleY && !exporting || snapshot) {
|
|
10399
10421
|
return false;
|
|
10400
10422
|
} else {
|
|
10401
10423
|
if (drawImage) {
|
|
@@ -11069,7 +11091,7 @@ const TextMode = 2;
|
|
|
11069
11091
|
|
|
11070
11092
|
function layoutChar(drawData, style, width, _height) {
|
|
11071
11093
|
const {rows: rows} = drawData;
|
|
11072
|
-
const {textAlign: textAlign, paraIndent: paraIndent,
|
|
11094
|
+
const {textAlign: textAlign, paraIndent: paraIndent, __letterSpacing: __letterSpacing} = style;
|
|
11073
11095
|
const justifyLast = width && textAlign.includes("both");
|
|
11074
11096
|
const justify = justifyLast || width && textAlign.includes("justify");
|
|
11075
11097
|
const justifyLetter = justify && textAlign.includes("letter");
|
|
@@ -11082,8 +11104,8 @@ function layoutChar(drawData, style, width, _height) {
|
|
|
11082
11104
|
remainingWidth = width - row.width - indentWidth;
|
|
11083
11105
|
if (justifyLetter) addLetterWidth = remainingWidth / (row.words.reduce((total, item) => total + item.data.length, 0) - 1); else addWordWidth = wordsLength > 1 ? remainingWidth / (wordsLength - 1) : 0;
|
|
11084
11106
|
}
|
|
11085
|
-
mode =
|
|
11086
|
-
if (row.isOverflow && !
|
|
11107
|
+
mode = __letterSpacing || row.isOverflow || justifyLetter ? CharMode : addWordWidth ? WordMode : TextMode;
|
|
11108
|
+
if (row.isOverflow && !__letterSpacing) row.textMode = true;
|
|
11087
11109
|
if (mode === TextMode) {
|
|
11088
11110
|
row.x += indentWidth;
|
|
11089
11111
|
toTextChar$1(row);
|
|
@@ -11152,7 +11174,7 @@ function layoutText(drawData, style) {
|
|
|
11152
11174
|
let {x: x, y: y, width: width, height: height} = bounds, realHeight = __lineHeight * countRows + (paraSpacing ? paraSpacing * (drawData.paraNumber - 1) : 0);
|
|
11153
11175
|
let starY = __baseLine;
|
|
11154
11176
|
if (__clipText && realHeight > height) {
|
|
11155
|
-
realHeight = Math.max(height, __lineHeight);
|
|
11177
|
+
realHeight = Math.max(style.__autoHeight ? realHeight : height, __lineHeight);
|
|
11156
11178
|
if (countRows > 1) drawData.overflow = countRows;
|
|
11157
11179
|
} else if (height || autoSizeAlign) {
|
|
11158
11180
|
switch (verticalAlign) {
|
|
@@ -11209,10 +11231,10 @@ function layoutText(drawData, style) {
|
|
|
11209
11231
|
}
|
|
11210
11232
|
|
|
11211
11233
|
function clipText(drawData, style, x, width) {
|
|
11212
|
-
if (!width) return;
|
|
11213
11234
|
const {rows: rows, overflow: overflow} = drawData;
|
|
11214
11235
|
let {textOverflow: textOverflow} = style;
|
|
11215
|
-
rows.splice(overflow);
|
|
11236
|
+
if (overflow) rows.splice(overflow);
|
|
11237
|
+
if (!width) return;
|
|
11216
11238
|
if (textOverflow && textOverflow !== "show") {
|
|
11217
11239
|
if (textOverflow === "hide") textOverflow = ""; else if (textOverflow === "ellipsis") textOverflow = "...";
|
|
11218
11240
|
let char, charRight;
|
|
@@ -11373,4 +11395,4 @@ try {
|
|
|
11373
11395
|
if (wx) useCanvas("miniapp", wx);
|
|
11374
11396
|
} catch (_a) {}
|
|
11375
11397
|
|
|
11376
|
-
export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$2 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|
|
11398
|
+
export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$2 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|