@leafer-draw/worker 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/worker.cjs +18 -12
- package/dist/worker.esm.js +19 -13
- package/dist/worker.esm.min.js +1 -1
- package/dist/worker.esm.min.js.map +1 -1
- package/dist/worker.js +121 -99
- package/dist/worker.min.cjs +1 -1
- package/dist/worker.min.cjs.map +1 -1
- package/dist/worker.min.js +1 -1
- package/dist/worker.min.js.map +1 -1
- package/dist/worker.module.js +125 -103
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +9 -9
package/dist/worker.js
CHANGED
|
@@ -199,56 +199,6 @@ var LeaferUI = function(exports) {
|
|
|
199
199
|
this.__input = this.__middle = null;
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
|
-
const {floor: floor$2, max: max$4} = Math;
|
|
203
|
-
const Platform = {
|
|
204
|
-
toURL(text, fileType) {
|
|
205
|
-
let url = encodeURIComponent(text);
|
|
206
|
-
if (fileType === "text") url = "data:text/plain;charset=utf-8," + url; else if (fileType === "svg") url = "data:image/svg+xml," + url;
|
|
207
|
-
return url;
|
|
208
|
-
},
|
|
209
|
-
image: {
|
|
210
|
-
hitCanvasSize: 100,
|
|
211
|
-
maxCacheSize: 2560 * 1600,
|
|
212
|
-
maxPatternSize: 4096 * 2160,
|
|
213
|
-
crossOrigin: "anonymous",
|
|
214
|
-
isLarge(size, scaleX, scaleY, largeSize) {
|
|
215
|
-
return size.width * size.height * (scaleX ? scaleX * scaleY : 1) > (largeSize || image$1.maxCacheSize);
|
|
216
|
-
},
|
|
217
|
-
isSuperLarge(size, scaleX, scaleY) {
|
|
218
|
-
return image$1.isLarge(size, scaleX, scaleY, image$1.maxPatternSize);
|
|
219
|
-
},
|
|
220
|
-
getRealURL(url) {
|
|
221
|
-
const {prefix: prefix, suffix: suffix} = Platform.image;
|
|
222
|
-
if (suffix && !url.startsWith("data:") && !url.startsWith("blob:")) url += (url.includes("?") ? "&" : "?") + suffix;
|
|
223
|
-
if (prefix && url[0] === "/") url = prefix + url;
|
|
224
|
-
return url;
|
|
225
|
-
},
|
|
226
|
-
resize(image, width, height, xGap, yGap, clip, smooth, opacity, _filters) {
|
|
227
|
-
const canvas = Platform.origin.createCanvas(max$4(floor$2(width + (xGap || 0)), 1), max$4(floor$2(height + (yGap || 0)), 1));
|
|
228
|
-
const ctx = canvas.getContext("2d");
|
|
229
|
-
if (opacity) ctx.globalAlpha = opacity;
|
|
230
|
-
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
231
|
-
if (image) {
|
|
232
|
-
if (clip) {
|
|
233
|
-
const scaleX = width / clip.width, scaleY = height / clip.height;
|
|
234
|
-
ctx.setTransform(scaleX, 0, 0, scaleY, -clip.x * scaleX, -clip.y * scaleY);
|
|
235
|
-
ctx.drawImage(image, 0, 0, image.width, image.height);
|
|
236
|
-
} else ctx.drawImage(image, 0, 0, width, height);
|
|
237
|
-
}
|
|
238
|
-
return canvas;
|
|
239
|
-
},
|
|
240
|
-
setPatternTransform(pattern, transform, paint) {
|
|
241
|
-
try {
|
|
242
|
-
if (transform && pattern.setTransform) {
|
|
243
|
-
pattern.setTransform(transform);
|
|
244
|
-
transform = undefined;
|
|
245
|
-
}
|
|
246
|
-
} catch (_a) {}
|
|
247
|
-
if (paint) DataHelper.stintSet(paint, "transform", transform);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
};
|
|
251
|
-
const {image: image$1} = Platform;
|
|
252
202
|
const IncrementId = {
|
|
253
203
|
RUNTIME: "runtime",
|
|
254
204
|
LEAF: "leaf",
|
|
@@ -268,7 +218,7 @@ var LeaferUI = function(exports) {
|
|
|
268
218
|
};
|
|
269
219
|
const I$1 = IncrementId;
|
|
270
220
|
let tempA, tempB, tempTo;
|
|
271
|
-
const {max: max$
|
|
221
|
+
const {max: max$4} = Math, tempFour = [ 0, 0, 0, 0 ];
|
|
272
222
|
const FourNumberHelper = {
|
|
273
223
|
zero: [ ...tempFour ],
|
|
274
224
|
tempFour: tempFour,
|
|
@@ -319,9 +269,9 @@ var LeaferUI = function(exports) {
|
|
|
319
269
|
return data;
|
|
320
270
|
},
|
|
321
271
|
max(t, other, change) {
|
|
322
|
-
if (isNumber(t) && isNumber(other)) return max$
|
|
272
|
+
if (isNumber(t) && isNumber(other)) return max$4(t, other);
|
|
323
273
|
toTempAB(t, other, change);
|
|
324
|
-
return set$2(tempTo, max$
|
|
274
|
+
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]));
|
|
325
275
|
},
|
|
326
276
|
add(t, other, change) {
|
|
327
277
|
if (isNumber(t) && isNumber(other)) return t + other;
|
|
@@ -336,7 +286,7 @@ var LeaferUI = function(exports) {
|
|
|
336
286
|
}
|
|
337
287
|
};
|
|
338
288
|
const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
|
|
339
|
-
const {round: round$3, pow: pow$1, max: max$
|
|
289
|
+
const {round: round$3, pow: pow$1, max: max$3, floor: floor$2, PI: PI$3} = Math;
|
|
340
290
|
const MathHelper = {
|
|
341
291
|
within(value, min, max) {
|
|
342
292
|
if (isObject(min)) max = min.max, min = min.min;
|
|
@@ -389,7 +339,7 @@ var LeaferUI = function(exports) {
|
|
|
389
339
|
}
|
|
390
340
|
},
|
|
391
341
|
getFloorScale(num, min = 1) {
|
|
392
|
-
return max$
|
|
342
|
+
return max$3(floor$2(num), min) / num;
|
|
393
343
|
},
|
|
394
344
|
randInt: randInt,
|
|
395
345
|
randColor(opacity) {
|
|
@@ -1195,7 +1145,7 @@ var LeaferUI = function(exports) {
|
|
|
1195
1145
|
const {tempPointBounds: tempPointBounds$1, setPoint: setPoint$2, addPoint: addPoint$2, toBounds: toBounds$2} = TwoPointBoundsHelper;
|
|
1196
1146
|
const {toOuterPoint: toOuterPoint$2} = MatrixHelper;
|
|
1197
1147
|
const {float: float, fourNumber: fourNumber} = MathHelper;
|
|
1198
|
-
const {floor: floor, ceil: ceil$1} = Math;
|
|
1148
|
+
const {floor: floor$1, ceil: ceil$1} = Math;
|
|
1199
1149
|
let right$1, bottom$1, boundsRight, boundsBottom;
|
|
1200
1150
|
const point = {};
|
|
1201
1151
|
const toPoint$4 = {};
|
|
@@ -1347,8 +1297,8 @@ var LeaferUI = function(exports) {
|
|
|
1347
1297
|
},
|
|
1348
1298
|
ceil(t) {
|
|
1349
1299
|
const {x: x, y: y} = t;
|
|
1350
|
-
t.x = floor(t.x);
|
|
1351
|
-
t.y = floor(t.y);
|
|
1300
|
+
t.x = floor$1(t.x);
|
|
1301
|
+
t.y = floor$1(t.y);
|
|
1352
1302
|
t.width = x > t.x ? ceil$1(t.width + x - t.x) : ceil$1(t.width);
|
|
1353
1303
|
t.height = y > t.y ? ceil$1(t.height + y - t.y) : ceil$1(t.height);
|
|
1354
1304
|
},
|
|
@@ -1480,6 +1430,9 @@ var LeaferUI = function(exports) {
|
|
|
1480
1430
|
isEmpty(t) {
|
|
1481
1431
|
return t.x === 0 && t.y === 0 && t.width === 0 && t.height === 0;
|
|
1482
1432
|
},
|
|
1433
|
+
hasSize(t) {
|
|
1434
|
+
return t.width && t.height;
|
|
1435
|
+
},
|
|
1483
1436
|
reset(t) {
|
|
1484
1437
|
B.set(t);
|
|
1485
1438
|
}
|
|
@@ -1650,6 +1603,11 @@ var LeaferUI = function(exports) {
|
|
|
1650
1603
|
return new Bounds(left, top, width ? width : parent.width - left - right, height ? height : parent.height - top - bottom);
|
|
1651
1604
|
}
|
|
1652
1605
|
}
|
|
1606
|
+
const UnitConvertHelper = {
|
|
1607
|
+
number(value, percentRefer) {
|
|
1608
|
+
return isObject(value) ? value.type === "percent" ? value.value * percentRefer : value.value : value;
|
|
1609
|
+
}
|
|
1610
|
+
};
|
|
1653
1611
|
const StringNumberMap = {
|
|
1654
1612
|
0: 1,
|
|
1655
1613
|
1: 1,
|
|
@@ -1665,6 +1623,66 @@ var LeaferUI = function(exports) {
|
|
|
1665
1623
|
e: 1,
|
|
1666
1624
|
E: 1
|
|
1667
1625
|
};
|
|
1626
|
+
const {floor: floor, max: max$2} = Math;
|
|
1627
|
+
const Platform = {
|
|
1628
|
+
toURL(text, fileType) {
|
|
1629
|
+
let url = encodeURIComponent(text);
|
|
1630
|
+
if (fileType === "text") url = "data:text/plain;charset=utf-8," + url; else if (fileType === "svg") url = "data:image/svg+xml," + url;
|
|
1631
|
+
return url;
|
|
1632
|
+
},
|
|
1633
|
+
image: {
|
|
1634
|
+
hitCanvasSize: 100,
|
|
1635
|
+
maxCacheSize: 2560 * 1600,
|
|
1636
|
+
maxPatternSize: 4096 * 2160,
|
|
1637
|
+
crossOrigin: "anonymous",
|
|
1638
|
+
isLarge(size, scaleX, scaleY, largeSize) {
|
|
1639
|
+
return size.width * size.height * (scaleX ? scaleX * scaleY : 1) > (largeSize || image$1.maxCacheSize);
|
|
1640
|
+
},
|
|
1641
|
+
isSuperLarge(size, scaleX, scaleY) {
|
|
1642
|
+
return image$1.isLarge(size, scaleX, scaleY, image$1.maxPatternSize);
|
|
1643
|
+
},
|
|
1644
|
+
getRealURL(url) {
|
|
1645
|
+
const {prefix: prefix, suffix: suffix} = image$1;
|
|
1646
|
+
if (suffix && !url.startsWith("data:") && !url.startsWith("blob:")) url += (url.includes("?") ? "&" : "?") + suffix;
|
|
1647
|
+
if (prefix && url[0] === "/") url = prefix + url;
|
|
1648
|
+
return url;
|
|
1649
|
+
},
|
|
1650
|
+
resize(view, width, height, xGap, yGap, clip, smooth, opacity, _filters, interlace) {
|
|
1651
|
+
const realWidth = max$2(floor(width + (xGap || 0)), 1), realHeight = max$2(floor(height + (yGap || 0)), 1);
|
|
1652
|
+
let interlaceX, interlaceY, interlaceOffset;
|
|
1653
|
+
if (interlace && (interlaceOffset = UnitConvertHelper.number(interlace.offset, interlace.type === "x" ? width : height))) interlace.type === "x" ? interlaceX = true : interlaceY = true;
|
|
1654
|
+
const canvas = Platform.origin.createCanvas(interlaceY ? realWidth * 2 : realWidth, interlaceX ? realHeight * 2 : realHeight);
|
|
1655
|
+
const ctx = canvas.getContext("2d");
|
|
1656
|
+
if (opacity) ctx.globalAlpha = opacity;
|
|
1657
|
+
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
1658
|
+
if (image$1.canUse(view)) {
|
|
1659
|
+
if (clip) {
|
|
1660
|
+
const scaleX = width / clip.width, scaleY = height / clip.height;
|
|
1661
|
+
ctx.setTransform(scaleX, 0, 0, scaleY, -clip.x * scaleX, -clip.y * scaleY);
|
|
1662
|
+
ctx.drawImage(view, 0, 0, view.width, view.height);
|
|
1663
|
+
} else ctx.drawImage(view, 0, 0, width, height);
|
|
1664
|
+
if (interlaceOffset) {
|
|
1665
|
+
ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset - realWidth : realWidth, interlaceX ? realHeight : interlaceOffset - realHeight, realWidth, realHeight);
|
|
1666
|
+
ctx.drawImage(canvas, 0, 0, realWidth, realHeight, interlaceX ? interlaceOffset : realWidth, interlaceX ? realHeight : interlaceOffset, realWidth, realHeight);
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
return canvas;
|
|
1670
|
+
},
|
|
1671
|
+
canUse(view) {
|
|
1672
|
+
return view && view.width && !view.__closed;
|
|
1673
|
+
},
|
|
1674
|
+
setPatternTransform(pattern, transform, paint) {
|
|
1675
|
+
try {
|
|
1676
|
+
if (transform && pattern.setTransform) {
|
|
1677
|
+
pattern.setTransform(transform);
|
|
1678
|
+
transform = undefined;
|
|
1679
|
+
}
|
|
1680
|
+
} catch (_a) {}
|
|
1681
|
+
if (paint) DataHelper.stintSet(paint, "transform", transform);
|
|
1682
|
+
}
|
|
1683
|
+
}
|
|
1684
|
+
};
|
|
1685
|
+
const {image: image$1} = Platform;
|
|
1668
1686
|
const {randColor: randColor} = MathHelper;
|
|
1669
1687
|
class Debug {
|
|
1670
1688
|
constructor(name) {
|
|
@@ -3096,10 +3114,10 @@ var LeaferUI = function(exports) {
|
|
|
3096
3114
|
data.push(O$2, x, y, radius, startAngle, endAngle, anticlockwise ? 1 : 0);
|
|
3097
3115
|
}
|
|
3098
3116
|
},
|
|
3099
|
-
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
|
|
3117
|
+
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY, fullRadius) {
|
|
3100
3118
|
if (!isUndefined(lastX)) {
|
|
3101
|
-
const
|
|
3102
|
-
radius = min(radius, min(
|
|
3119
|
+
const r = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2) / (fullRadius ? 1 : 2);
|
|
3120
|
+
radius = min(radius, min(r, r * abs$2(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
|
|
3103
3121
|
}
|
|
3104
3122
|
data.push(U$2, x1, y1, x2, y2, radius);
|
|
3105
3123
|
},
|
|
@@ -3424,7 +3442,7 @@ var LeaferUI = function(exports) {
|
|
|
3424
3442
|
let command, lastCommand, commandLen;
|
|
3425
3443
|
let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
|
|
3426
3444
|
if (isArray(cornerRadius)) cornerRadius = cornerRadius[0] || 0;
|
|
3427
|
-
const len = data.length;
|
|
3445
|
+
const len = data.length, three = len === 9;
|
|
3428
3446
|
const smooth = [];
|
|
3429
3447
|
while (i < len) {
|
|
3430
3448
|
command = data[i];
|
|
@@ -3436,7 +3454,7 @@ var LeaferUI = function(exports) {
|
|
|
3436
3454
|
if (data[i] === L$1) {
|
|
3437
3455
|
secondX = data[i + 1];
|
|
3438
3456
|
secondY = data[i + 2];
|
|
3439
|
-
smooth.push(M, getCenterX(startX, secondX), getCenterY(startY, secondY));
|
|
3457
|
+
three ? smooth.push(M, startX, startY) : smooth.push(M, getCenterX(startX, secondX), getCenterY(startY, secondY));
|
|
3440
3458
|
} else {
|
|
3441
3459
|
smooth.push(M, startX, startY);
|
|
3442
3460
|
}
|
|
@@ -3448,11 +3466,11 @@ var LeaferUI = function(exports) {
|
|
|
3448
3466
|
i += 3;
|
|
3449
3467
|
switch (data[i]) {
|
|
3450
3468
|
case L$1:
|
|
3451
|
-
arcTo(smooth, x, y, data[i + 1], data[i + 2], cornerRadius, lastX, lastY);
|
|
3469
|
+
arcTo(smooth, x, y, data[i + 1], data[i + 2], cornerRadius, lastX, lastY, three);
|
|
3452
3470
|
break;
|
|
3453
3471
|
|
|
3454
3472
|
case Z:
|
|
3455
|
-
arcTo(smooth, x, y, startX, startY, cornerRadius, lastX, lastY);
|
|
3473
|
+
arcTo(smooth, x, y, startX, startY, cornerRadius, lastX, lastY, three);
|
|
3456
3474
|
break;
|
|
3457
3475
|
|
|
3458
3476
|
default:
|
|
@@ -3464,7 +3482,7 @@ var LeaferUI = function(exports) {
|
|
|
3464
3482
|
|
|
3465
3483
|
case Z:
|
|
3466
3484
|
if (lastCommand !== Z) {
|
|
3467
|
-
arcTo(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY);
|
|
3485
|
+
arcTo(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY, three);
|
|
3468
3486
|
smooth.push(Z);
|
|
3469
3487
|
}
|
|
3470
3488
|
i += 1;
|
|
@@ -3551,9 +3569,10 @@ var LeaferUI = function(exports) {
|
|
|
3551
3569
|
run() {
|
|
3552
3570
|
return __awaiter(this, void 0, void 0, function*() {
|
|
3553
3571
|
try {
|
|
3554
|
-
if (this.isComplete) return;
|
|
3572
|
+
if (this.isComplete || this.runing) return;
|
|
3573
|
+
this.runing = true;
|
|
3555
3574
|
if (this.canUse && !this.canUse()) return this.cancel();
|
|
3556
|
-
if (this.task
|
|
3575
|
+
if (this.task) yield this.task();
|
|
3557
3576
|
} catch (error) {
|
|
3558
3577
|
debug$8.error(error);
|
|
3559
3578
|
}
|
|
@@ -3668,7 +3687,7 @@ var LeaferUI = function(exports) {
|
|
|
3668
3687
|
stop() {
|
|
3669
3688
|
this.isComplete = true;
|
|
3670
3689
|
this.list.forEach(task => {
|
|
3671
|
-
if (!task.isComplete) task.
|
|
3690
|
+
if (!task.isComplete) task.run();
|
|
3672
3691
|
});
|
|
3673
3692
|
this.pause();
|
|
3674
3693
|
this.empty();
|
|
@@ -3951,7 +3970,7 @@ var LeaferUI = function(exports) {
|
|
|
3951
3970
|
getFull(_filters) {
|
|
3952
3971
|
return this.view;
|
|
3953
3972
|
}
|
|
3954
|
-
getCanvas(width, height, opacity, filters, xGap, yGap, smooth) {
|
|
3973
|
+
getCanvas(width, height, opacity, filters, xGap, yGap, smooth, interlace) {
|
|
3955
3974
|
width || (width = this.width);
|
|
3956
3975
|
height || (height = this.height);
|
|
3957
3976
|
if (this.cache) {
|
|
@@ -3964,7 +3983,7 @@ var LeaferUI = function(exports) {
|
|
|
3964
3983
|
}
|
|
3965
3984
|
if (data) return data;
|
|
3966
3985
|
}
|
|
3967
|
-
const canvas = Platform.image.resize(this.view, width, height, xGap, yGap, undefined, smooth, opacity, filters);
|
|
3986
|
+
const canvas = Platform.image.resize(this.view, width, height, xGap, yGap, undefined, smooth, opacity, filters, interlace);
|
|
3968
3987
|
this.cache = this.use > 1 ? {
|
|
3969
3988
|
data: canvas,
|
|
3970
3989
|
params: arguments
|
|
@@ -5706,7 +5725,7 @@ var LeaferUI = function(exports) {
|
|
|
5706
5725
|
if (this.__layout.opacityChanged) this.__layout.opacityChanged = false;
|
|
5707
5726
|
}
|
|
5708
5727
|
};
|
|
5709
|
-
const {excludeRenderBounds: excludeRenderBounds$1} = LeafBoundsHelper;
|
|
5728
|
+
const {excludeRenderBounds: excludeRenderBounds$1} = LeafBoundsHelper, {hasSize: hasSize} = BoundsHelper;
|
|
5710
5729
|
const BranchRender = {
|
|
5711
5730
|
__updateChange() {
|
|
5712
5731
|
const {__layout: layout} = this;
|
|
@@ -5717,8 +5736,8 @@ var LeaferUI = function(exports) {
|
|
|
5717
5736
|
this.__.__checkSingle();
|
|
5718
5737
|
},
|
|
5719
5738
|
__render(canvas, options) {
|
|
5720
|
-
this.__nowWorld = this.__getNowWorld(options);
|
|
5721
|
-
if (this.__worldOpacity) {
|
|
5739
|
+
const nowWorld = this.__nowWorld = this.__getNowWorld(options);
|
|
5740
|
+
if (this.__worldOpacity && hasSize(nowWorld)) {
|
|
5722
5741
|
const data = this.__;
|
|
5723
5742
|
if (data.__useDim) {
|
|
5724
5743
|
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);
|
|
@@ -5727,7 +5746,6 @@ var LeaferUI = function(exports) {
|
|
|
5727
5746
|
if (data.eraser === "path") return this.__renderEraser(canvas, options);
|
|
5728
5747
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
5729
5748
|
this.__renderBranch(tempCanvas, options);
|
|
5730
|
-
const nowWorld = this.__nowWorld;
|
|
5731
5749
|
canvas.opacity = options.dimOpacity ? data.opacity * options.dimOpacity : data.opacity;
|
|
5732
5750
|
canvas.copyWorldByReset(tempCanvas, nowWorld, nowWorld, data.__blendMode, true);
|
|
5733
5751
|
tempCanvas.recycle(nowWorld);
|
|
@@ -6549,7 +6567,7 @@ var LeaferUI = function(exports) {
|
|
|
6549
6567
|
this.levelMap = null;
|
|
6550
6568
|
}
|
|
6551
6569
|
}
|
|
6552
|
-
const version = "
|
|
6570
|
+
const version = "2.0.1";
|
|
6553
6571
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6554
6572
|
get allowBackgroundColor() {
|
|
6555
6573
|
return true;
|
|
@@ -6949,6 +6967,7 @@ var LeaferUI = function(exports) {
|
|
|
6949
6967
|
this.times = 0;
|
|
6950
6968
|
this.config = {
|
|
6951
6969
|
usePartRender: true,
|
|
6970
|
+
ceilPartPixel: true,
|
|
6952
6971
|
maxFPS: 120
|
|
6953
6972
|
};
|
|
6954
6973
|
this.frames = [];
|
|
@@ -7057,8 +7076,9 @@ var LeaferUI = function(exports) {
|
|
|
7057
7076
|
const {canvas: canvas} = this, bounds = block.getIntersect(canvas.bounds), realBounds = new Bounds(bounds);
|
|
7058
7077
|
canvas.save();
|
|
7059
7078
|
bounds.spread(Renderer.clipSpread).ceil();
|
|
7060
|
-
|
|
7061
|
-
canvas.clipWorld(bounds);
|
|
7079
|
+
const {ceilPartPixel: ceilPartPixel} = this.config;
|
|
7080
|
+
canvas.clipWorld(bounds, ceilPartPixel);
|
|
7081
|
+
canvas.clearWorld(bounds, ceilPartPixel);
|
|
7062
7082
|
this.__render(bounds, realBounds);
|
|
7063
7083
|
canvas.restore();
|
|
7064
7084
|
Run.end(t);
|
|
@@ -7245,11 +7265,7 @@ var LeaferUI = function(exports) {
|
|
|
7245
7265
|
const ColorConvert = {
|
|
7246
7266
|
hasTransparent: hasTransparent$3
|
|
7247
7267
|
};
|
|
7248
|
-
const UnitConvert =
|
|
7249
|
-
number(value, percentRefer) {
|
|
7250
|
-
return isObject(value) ? value.type === "percent" ? value.value * percentRefer : value.value : value;
|
|
7251
|
-
}
|
|
7252
|
-
};
|
|
7268
|
+
const UnitConvert = UnitConvertHelper;
|
|
7253
7269
|
const PathArrow = {};
|
|
7254
7270
|
const Paint = {};
|
|
7255
7271
|
const PaintImage = {};
|
|
@@ -7312,16 +7328,16 @@ var LeaferUI = function(exports) {
|
|
|
7312
7328
|
return t.fill || t.stroke;
|
|
7313
7329
|
}
|
|
7314
7330
|
get __autoWidth() {
|
|
7315
|
-
return
|
|
7331
|
+
return this._width == null;
|
|
7316
7332
|
}
|
|
7317
7333
|
get __autoHeight() {
|
|
7318
|
-
return
|
|
7334
|
+
return this._height == null;
|
|
7319
7335
|
}
|
|
7320
7336
|
get __autoSide() {
|
|
7321
|
-
return
|
|
7337
|
+
return this._width == null || this._height == null;
|
|
7322
7338
|
}
|
|
7323
7339
|
get __autoSize() {
|
|
7324
|
-
return
|
|
7340
|
+
return this._width == null && this._height == null;
|
|
7325
7341
|
}
|
|
7326
7342
|
setVisible(value) {
|
|
7327
7343
|
this._visible = value;
|
|
@@ -8467,9 +8483,10 @@ var LeaferUI = function(exports) {
|
|
|
8467
8483
|
const {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = this.__;
|
|
8468
8484
|
const rx = width / 2, ry = height / 2;
|
|
8469
8485
|
const path = this.__.path = [];
|
|
8486
|
+
let open;
|
|
8470
8487
|
if (innerRadius) {
|
|
8471
8488
|
if (startAngle || endAngle) {
|
|
8472
|
-
if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false);
|
|
8489
|
+
if (innerRadius < 1) ellipse(path, rx, ry, rx * innerRadius, ry * innerRadius, 0, startAngle, endAngle, false); else open = true;
|
|
8473
8490
|
ellipse(path, rx, ry, rx, ry, 0, endAngle, startAngle, true);
|
|
8474
8491
|
} else {
|
|
8475
8492
|
if (innerRadius < 1) {
|
|
@@ -8486,7 +8503,7 @@ var LeaferUI = function(exports) {
|
|
|
8486
8503
|
ellipse(path, rx, ry, rx, ry);
|
|
8487
8504
|
}
|
|
8488
8505
|
}
|
|
8489
|
-
closePath$2(path);
|
|
8506
|
+
if (!open) closePath$2(path);
|
|
8490
8507
|
if (Platform.ellipseToCurve) this.__.path = this.getPath(true);
|
|
8491
8508
|
}
|
|
8492
8509
|
};
|
|
@@ -9298,7 +9315,7 @@ var LeaferUI = function(exports) {
|
|
|
9298
9315
|
if (paint.padding) box = tempBox.set(box).shrink(paint.padding);
|
|
9299
9316
|
if (paint.mode === "strench") paint.mode = "stretch";
|
|
9300
9317
|
const {width: width, height: height} = image;
|
|
9301
|
-
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;
|
|
9318
|
+
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;
|
|
9302
9319
|
const sameBox = box.width === width && box.height === height;
|
|
9303
9320
|
const data = {
|
|
9304
9321
|
mode: mode
|
|
@@ -9364,6 +9381,10 @@ var LeaferUI = function(exports) {
|
|
|
9364
9381
|
if (opacity && opacity < 1) data.opacity = opacity;
|
|
9365
9382
|
if (filters) data.filters = filters;
|
|
9366
9383
|
if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
|
|
9384
|
+
if (interlace) data.interlace = isNumber(interlace) || interlace.type === "percent" ? {
|
|
9385
|
+
type: "x",
|
|
9386
|
+
offset: interlace
|
|
9387
|
+
} : interlace;
|
|
9367
9388
|
return data;
|
|
9368
9389
|
}
|
|
9369
9390
|
function getGapData(gap, repeat, width, height, box) {
|
|
@@ -9484,7 +9505,7 @@ var LeaferUI = function(exports) {
|
|
|
9484
9505
|
if (transform) copy$1(imageMatrix, transform);
|
|
9485
9506
|
scale(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
9486
9507
|
}
|
|
9487
|
-
const imageCanvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth);
|
|
9508
|
+
const imageCanvas = image.getCanvas(width, height, data.opacity, data.filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth, data.interlace);
|
|
9488
9509
|
const pattern = image.getPattern(imageCanvas, data.repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
9489
9510
|
paint.style = pattern;
|
|
9490
9511
|
paint.patternId = id;
|
|
@@ -9504,8 +9525,8 @@ var LeaferUI = function(exports) {
|
|
|
9504
9525
|
}
|
|
9505
9526
|
function checkImage(paint, drawImage, ui, canvas, renderOptions) {
|
|
9506
9527
|
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions);
|
|
9507
|
-
const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting} = renderOptions;
|
|
9508
|
-
if (!data || paint.patternId === scaleX + "-" + scaleY && !exporting) {
|
|
9528
|
+
const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting, snapshot: snapshot} = renderOptions;
|
|
9529
|
+
if (!data || paint.patternId === scaleX + "-" + scaleY && !exporting || snapshot) {
|
|
9509
9530
|
return false;
|
|
9510
9531
|
} else {
|
|
9511
9532
|
if (drawImage) {
|
|
@@ -10098,7 +10119,7 @@ var LeaferUI = function(exports) {
|
|
|
10098
10119
|
const TextMode = 2;
|
|
10099
10120
|
function layoutChar(drawData, style, width, _height) {
|
|
10100
10121
|
const {rows: rows} = drawData;
|
|
10101
|
-
const {textAlign: textAlign, paraIndent: paraIndent,
|
|
10122
|
+
const {textAlign: textAlign, paraIndent: paraIndent, __letterSpacing: __letterSpacing} = style;
|
|
10102
10123
|
const justifyLast = width && textAlign.includes("both");
|
|
10103
10124
|
const justify = justifyLast || width && textAlign.includes("justify");
|
|
10104
10125
|
const justifyLetter = justify && textAlign.includes("letter");
|
|
@@ -10111,8 +10132,8 @@ var LeaferUI = function(exports) {
|
|
|
10111
10132
|
remainingWidth = width - row.width - indentWidth;
|
|
10112
10133
|
if (justifyLetter) addLetterWidth = remainingWidth / (row.words.reduce((total, item) => total + item.data.length, 0) - 1); else addWordWidth = wordsLength > 1 ? remainingWidth / (wordsLength - 1) : 0;
|
|
10113
10134
|
}
|
|
10114
|
-
mode =
|
|
10115
|
-
if (row.isOverflow && !
|
|
10135
|
+
mode = __letterSpacing || row.isOverflow || justifyLetter ? CharMode : addWordWidth ? WordMode : TextMode;
|
|
10136
|
+
if (row.isOverflow && !__letterSpacing) row.textMode = true;
|
|
10116
10137
|
if (mode === TextMode) {
|
|
10117
10138
|
row.x += indentWidth;
|
|
10118
10139
|
toTextChar$1(row);
|
|
@@ -10177,7 +10198,7 @@ var LeaferUI = function(exports) {
|
|
|
10177
10198
|
let {x: x, y: y, width: width, height: height} = bounds, realHeight = __lineHeight * countRows + (paraSpacing ? paraSpacing * (drawData.paraNumber - 1) : 0);
|
|
10178
10199
|
let starY = __baseLine;
|
|
10179
10200
|
if (__clipText && realHeight > height) {
|
|
10180
|
-
realHeight = Math.max(height, __lineHeight);
|
|
10201
|
+
realHeight = Math.max(style.__autoHeight ? realHeight : height, __lineHeight);
|
|
10181
10202
|
if (countRows > 1) drawData.overflow = countRows;
|
|
10182
10203
|
} else if (height || autoSizeAlign) {
|
|
10183
10204
|
switch (verticalAlign) {
|
|
@@ -10233,10 +10254,10 @@ var LeaferUI = function(exports) {
|
|
|
10233
10254
|
bounds.height = realHeight;
|
|
10234
10255
|
}
|
|
10235
10256
|
function clipText(drawData, style, x, width) {
|
|
10236
|
-
if (!width) return;
|
|
10237
10257
|
const {rows: rows, overflow: overflow} = drawData;
|
|
10238
10258
|
let {textOverflow: textOverflow} = style;
|
|
10239
|
-
rows.splice(overflow);
|
|
10259
|
+
if (overflow) rows.splice(overflow);
|
|
10260
|
+
if (!width) return;
|
|
10240
10261
|
if (textOverflow && textOverflow !== "show") {
|
|
10241
10262
|
if (textOverflow === "hide") textOverflow = ""; else if (textOverflow === "ellipsis") textOverflow = "...";
|
|
10242
10263
|
let char, charRight;
|
|
@@ -10483,6 +10504,7 @@ var LeaferUI = function(exports) {
|
|
|
10483
10504
|
exports.UIData = UIData;
|
|
10484
10505
|
exports.UIRender = UIRender;
|
|
10485
10506
|
exports.UnitConvert = UnitConvert;
|
|
10507
|
+
exports.UnitConvertHelper = UnitConvertHelper;
|
|
10486
10508
|
exports.WaitHelper = WaitHelper;
|
|
10487
10509
|
exports.WatchEvent = WatchEvent;
|
|
10488
10510
|
exports.Watcher = Watcher;
|