@leafer-ui/worker 1.9.9 → 1.9.11
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 +46 -23
- package/dist/worker.esm.js +46 -23
- package/dist/worker.esm.min.js +1 -1
- package/dist/worker.esm.min.js.map +1 -1
- package/dist/worker.js +189 -131
- 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 +194 -135
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +11 -11
package/dist/worker.module.js
CHANGED
|
@@ -249,7 +249,7 @@ class LeafData {
|
|
|
249
249
|
|
|
250
250
|
let tempA, tempB, tempTo;
|
|
251
251
|
|
|
252
|
-
const {max: max$
|
|
252
|
+
const {max: max$5} = Math, tempFour = [ 0, 0, 0, 0 ];
|
|
253
253
|
|
|
254
254
|
const FourNumberHelper = {
|
|
255
255
|
zero: [ ...tempFour ],
|
|
@@ -263,7 +263,7 @@ const FourNumberHelper = {
|
|
|
263
263
|
return to;
|
|
264
264
|
},
|
|
265
265
|
setTemp(top, right, bottom, left) {
|
|
266
|
-
return set$
|
|
266
|
+
return set$2(tempFour, top, right, bottom, left);
|
|
267
267
|
},
|
|
268
268
|
toTempAB(a, b, change) {
|
|
269
269
|
tempTo = change ? isNumber(a) ? b : a : [];
|
|
@@ -301,24 +301,24 @@ const FourNumberHelper = {
|
|
|
301
301
|
return data;
|
|
302
302
|
},
|
|
303
303
|
max(t, other, change) {
|
|
304
|
-
if (isNumber(t) && isNumber(other)) return max$
|
|
304
|
+
if (isNumber(t) && isNumber(other)) return max$5(t, other);
|
|
305
305
|
toTempAB(t, other, change);
|
|
306
|
-
return set$
|
|
306
|
+
return set$2(tempTo, max$5(tempA[0], tempB[0]), max$5(tempA[1], tempB[1]), max$5(tempA[2], tempB[2]), max$5(tempA[3], tempB[3]));
|
|
307
307
|
},
|
|
308
308
|
add(t, other, change) {
|
|
309
309
|
if (isNumber(t) && isNumber(other)) return t + other;
|
|
310
310
|
toTempAB(t, other, change);
|
|
311
|
-
return set$
|
|
311
|
+
return set$2(tempTo, tempA[0] + tempB[0], tempA[1] + tempB[1], tempA[2] + tempB[2], tempA[3] + tempB[3]);
|
|
312
312
|
},
|
|
313
313
|
swapAndScale(t, scaleX, scaleY, change) {
|
|
314
314
|
if (isNumber(t)) return scaleX === scaleY ? t * scaleX : [ t * scaleY, t * scaleX ];
|
|
315
315
|
const to = change ? t : [];
|
|
316
316
|
const [top, right, bottom, left] = t.length === 4 ? t : get$5(t);
|
|
317
|
-
return set$
|
|
317
|
+
return set$2(to, bottom * scaleY, left * scaleX, top * scaleY, right * scaleX);
|
|
318
318
|
}
|
|
319
319
|
};
|
|
320
320
|
|
|
321
|
-
const {set: set$
|
|
321
|
+
const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumberHelper;
|
|
322
322
|
|
|
323
323
|
const {round: round$3, pow: pow$1, PI: PI$3} = Math;
|
|
324
324
|
|
|
@@ -720,7 +720,7 @@ const M$6 = MatrixHelper;
|
|
|
720
720
|
|
|
721
721
|
const {toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3} = MatrixHelper;
|
|
722
722
|
|
|
723
|
-
const {sin: sin$4, cos: cos$4, abs: abs$
|
|
723
|
+
const {sin: sin$4, cos: cos$4, abs: abs$5, sqrt: sqrt$2, atan2: atan2$2, min: min$2, round: round$2} = Math;
|
|
724
724
|
|
|
725
725
|
const PointHelper = {
|
|
726
726
|
defaultPoint: getPointData(),
|
|
@@ -813,12 +813,12 @@ const PointHelper = {
|
|
|
813
813
|
return getDistanceFrom(t.x, t.y, point.x, point.y);
|
|
814
814
|
},
|
|
815
815
|
getDistanceFrom(x1, y1, x2, y2) {
|
|
816
|
-
const x = abs$
|
|
817
|
-
const y = abs$
|
|
816
|
+
const x = abs$5(x2 - x1);
|
|
817
|
+
const y = abs$5(y2 - y1);
|
|
818
818
|
return sqrt$2(x * x + y * y);
|
|
819
819
|
},
|
|
820
820
|
getMinDistanceFrom(x1, y1, x2, y2, x3, y3) {
|
|
821
|
-
return min$
|
|
821
|
+
return min$2(getDistanceFrom(x1, y1, x2, y2), getDistanceFrom(x2, y2, x3, y3));
|
|
822
822
|
},
|
|
823
823
|
getAngle(t, to) {
|
|
824
824
|
return getAtan2(t, to) / OneRadian;
|
|
@@ -2592,11 +2592,11 @@ const RectHelper = {
|
|
|
2592
2592
|
}
|
|
2593
2593
|
};
|
|
2594
2594
|
|
|
2595
|
-
const {sin: sin$3, cos: cos$3, hypot: hypot, atan2: atan2$1, ceil: ceil$1, abs: abs$
|
|
2595
|
+
const {sin: sin$3, cos: cos$3, hypot: hypot, atan2: atan2$1, ceil: ceil$1, abs: abs$4, PI: PI$2, sqrt: sqrt$1, pow: pow} = Math;
|
|
2596
2596
|
|
|
2597
2597
|
const {setPoint: setPoint$1, addPoint: addPoint$1} = TwoPointBoundsHelper;
|
|
2598
2598
|
|
|
2599
|
-
const {set: set, toNumberPoints: toNumberPoints} = PointHelper;
|
|
2599
|
+
const {set: set$1, toNumberPoints: toNumberPoints} = PointHelper;
|
|
2600
2600
|
|
|
2601
2601
|
const {M: M$5, L: L$6, C: C$4, Q: Q$4, Z: Z$5} = PathCommandMap;
|
|
2602
2602
|
|
|
@@ -2667,14 +2667,14 @@ const BezierHelper = {
|
|
|
2667
2667
|
const lenCB = hypot(CBx, CBy);
|
|
2668
2668
|
let totalRadian = endRadian - startRadian;
|
|
2669
2669
|
if (totalRadian < 0) totalRadian += PI2;
|
|
2670
|
-
if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$
|
|
2670
|
+
if (lenBA < 1e-12 || lenCB < 1e-12 || totalRadian < 1e-12 || abs$4(totalRadian - PI$2) < 1e-12) {
|
|
2671
2671
|
if (data) data.push(L$6, x1, y1);
|
|
2672
2672
|
if (setPointBounds) {
|
|
2673
2673
|
setPoint$1(setPointBounds, fromX, fromY);
|
|
2674
2674
|
addPoint$1(setPointBounds, x1, y1);
|
|
2675
2675
|
}
|
|
2676
|
-
if (setStartPoint) set(setStartPoint, fromX, fromY);
|
|
2677
|
-
if (setEndPoint) set(setEndPoint, x1, y1);
|
|
2676
|
+
if (setStartPoint) set$1(setStartPoint, fromX, fromY);
|
|
2677
|
+
if (setEndPoint) set$1(setEndPoint, x1, y1);
|
|
2678
2678
|
return;
|
|
2679
2679
|
}
|
|
2680
2680
|
const anticlockwise = BAx * CBy - CBx * BAy < 0;
|
|
@@ -2700,7 +2700,7 @@ const BezierHelper = {
|
|
|
2700
2700
|
let totalRadian = endRadian - startRadian;
|
|
2701
2701
|
if (totalRadian < 0) totalRadian += PI2; else if (totalRadian > PI2) totalRadian -= PI2;
|
|
2702
2702
|
if (anticlockwise) totalRadian -= PI2;
|
|
2703
|
-
const parts = ceil$1(abs$
|
|
2703
|
+
const parts = ceil$1(abs$4(totalRadian / PI_2));
|
|
2704
2704
|
const partRadian = totalRadian / parts;
|
|
2705
2705
|
const partRadian4Sin = sin$3(partRadian / 4);
|
|
2706
2706
|
const control = 8 / 3 * partRadian4Sin * partRadian4Sin / sin$3(partRadian / 2);
|
|
@@ -2714,7 +2714,7 @@ const BezierHelper = {
|
|
|
2714
2714
|
let fromX = cx + x, fromY = cy + y;
|
|
2715
2715
|
if (data) data.push(data.length ? L$6 : M$5, fromX, fromY);
|
|
2716
2716
|
if (setPointBounds) setPoint$1(setPointBounds, fromX, fromY);
|
|
2717
|
-
if (setStartPoint) set(setStartPoint, fromX, fromY);
|
|
2717
|
+
if (setStartPoint) set$1(setStartPoint, fromX, fromY);
|
|
2718
2718
|
for (let i = 0; i < parts; i++) {
|
|
2719
2719
|
endCos = cos$3(endRadian);
|
|
2720
2720
|
endSin = sin$3(endRadian);
|
|
@@ -2733,7 +2733,7 @@ const BezierHelper = {
|
|
|
2733
2733
|
startRadian = endRadian;
|
|
2734
2734
|
endRadian += partRadian;
|
|
2735
2735
|
}
|
|
2736
|
-
if (setEndPoint) set(setEndPoint, cx + x, cy + y);
|
|
2736
|
+
if (setEndPoint) set$1(setEndPoint, cx + x, cy + y);
|
|
2737
2737
|
},
|
|
2738
2738
|
quadraticCurveTo(data, fromX, fromY, x1, y1, toX, toY) {
|
|
2739
2739
|
data.push(C$4, (fromX + 2 * x1) / 3, (fromY + 2 * y1) / 3, (toX + 2 * x1) / 3, (toY + 2 * y1) / 3, toX, toY);
|
|
@@ -3167,7 +3167,7 @@ const {M: M$3, L: L$4, C: C$2, Q: Q$2, Z: Z$3, N: N$2, D: D$3, X: X$2, G: G$2, F
|
|
|
3167
3167
|
|
|
3168
3168
|
const {getMinDistanceFrom: getMinDistanceFrom, getRadianFrom: getRadianFrom} = PointHelper;
|
|
3169
3169
|
|
|
3170
|
-
const {tan: tan, min: min, abs: abs$
|
|
3170
|
+
const {tan: tan, min: min$1, abs: abs$3} = Math;
|
|
3171
3171
|
|
|
3172
3172
|
const startPoint = {};
|
|
3173
3173
|
|
|
@@ -3225,7 +3225,7 @@ const PathCommandDataHelper = {
|
|
|
3225
3225
|
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
|
|
3226
3226
|
if (!isUndefined(lastX)) {
|
|
3227
3227
|
const d = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2);
|
|
3228
|
-
radius = min(radius, min(d / 2, d / 2 * abs$
|
|
3228
|
+
radius = min$1(radius, min$1(d / 2, d / 2 * abs$3(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
|
|
3229
3229
|
}
|
|
3230
3230
|
data.push(U$2, x1, y1, x2, y2, radius);
|
|
3231
3231
|
},
|
|
@@ -3840,7 +3840,12 @@ class TaskProcessor {
|
|
|
3840
3840
|
runTask() {
|
|
3841
3841
|
const task = this.list[this.index];
|
|
3842
3842
|
if (!task) {
|
|
3843
|
-
this.nextTask();
|
|
3843
|
+
this.timer = setTimeout(() => this.nextTask());
|
|
3844
|
+
return;
|
|
3845
|
+
}
|
|
3846
|
+
if (task.isCancel) {
|
|
3847
|
+
this.index++;
|
|
3848
|
+
this.runTask();
|
|
3844
3849
|
return;
|
|
3845
3850
|
}
|
|
3846
3851
|
task.run().then(() => {
|
|
@@ -3871,16 +3876,15 @@ class TaskProcessor {
|
|
|
3871
3876
|
}
|
|
3872
3877
|
setParallelList() {
|
|
3873
3878
|
let task;
|
|
3879
|
+
const {config: config, list: list, index: index} = this;
|
|
3874
3880
|
this.parallelList = [];
|
|
3875
3881
|
this.parallelSuccessNumber = 0;
|
|
3876
|
-
let end =
|
|
3877
|
-
if (end >
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
|
|
3881
|
-
this.parallelList.push(task);
|
|
3882
|
-
} else {
|
|
3883
|
-
break;
|
|
3882
|
+
let end = index + config.parallel;
|
|
3883
|
+
if (end > list.length) end = list.length;
|
|
3884
|
+
if (config.parallel > 1) {
|
|
3885
|
+
for (let i = index; i < end; i++) {
|
|
3886
|
+
task = list[i];
|
|
3887
|
+
if (task.parallel) this.parallelList.push(task); else break;
|
|
3884
3888
|
}
|
|
3885
3889
|
}
|
|
3886
3890
|
}
|
|
@@ -4023,7 +4027,7 @@ const I$1 = ImageManager;
|
|
|
4023
4027
|
|
|
4024
4028
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
4025
4029
|
|
|
4026
|
-
const {floor: floor$1, max: max$
|
|
4030
|
+
const {floor: floor$1, max: max$4} = Math;
|
|
4027
4031
|
|
|
4028
4032
|
class LeaferImage {
|
|
4029
4033
|
get url() {
|
|
@@ -4112,7 +4116,7 @@ class LeaferImage {
|
|
|
4112
4116
|
}
|
|
4113
4117
|
if (data) return data;
|
|
4114
4118
|
}
|
|
4115
|
-
const canvas = Platform.origin.createCanvas(max$
|
|
4119
|
+
const canvas = Platform.origin.createCanvas(max$4(floor$1(width + (xGap || 0)), 1), max$4(floor$1(height + (yGap || 0)), 1));
|
|
4116
4120
|
const ctx = canvas.getContext("2d");
|
|
4117
4121
|
if (opacity) ctx.globalAlpha = opacity;
|
|
4118
4122
|
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
@@ -6815,7 +6819,7 @@ class LeafLevelList {
|
|
|
6815
6819
|
}
|
|
6816
6820
|
}
|
|
6817
6821
|
|
|
6818
|
-
const version = "1.9.
|
|
6822
|
+
const version = "1.9.11";
|
|
6819
6823
|
|
|
6820
6824
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6821
6825
|
get allowBackgroundColor() {
|
|
@@ -7481,7 +7485,7 @@ class Picker {
|
|
|
7481
7485
|
children: [ target ]
|
|
7482
7486
|
} : target);
|
|
7483
7487
|
const {list: list} = this.findList;
|
|
7484
|
-
const leaf = this.getBestMatchLeaf(list, options.bottomList, ignoreHittable);
|
|
7488
|
+
const leaf = this.getBestMatchLeaf(list, options.bottomList, ignoreHittable, !!options.findList);
|
|
7485
7489
|
const path = ignoreHittable ? this.getPath(leaf) : this.getHitablePath(leaf);
|
|
7486
7490
|
this.clear();
|
|
7487
7491
|
return through ? {
|
|
@@ -7496,7 +7500,7 @@ class Picker {
|
|
|
7496
7500
|
hitPoint(hitPoint, hitRadius, options) {
|
|
7497
7501
|
return !!this.getByPoint(hitPoint, hitRadius, options).target;
|
|
7498
7502
|
}
|
|
7499
|
-
getBestMatchLeaf(list, bottomList, ignoreHittable) {
|
|
7503
|
+
getBestMatchLeaf(list, bottomList, ignoreHittable, allowNull) {
|
|
7500
7504
|
const findList = this.findList = new LeafList;
|
|
7501
7505
|
if (list.length) {
|
|
7502
7506
|
let find;
|
|
@@ -7527,15 +7531,27 @@ class Picker {
|
|
|
7527
7531
|
if (findList.length) return findList.list[0];
|
|
7528
7532
|
}
|
|
7529
7533
|
}
|
|
7534
|
+
if (allowNull) return null;
|
|
7530
7535
|
return ignoreHittable ? list[0] : list.find(item => LeafHelper.worldHittable(item));
|
|
7531
7536
|
}
|
|
7532
7537
|
getPath(leaf) {
|
|
7533
|
-
const path = new LeafList;
|
|
7538
|
+
const path = new LeafList, syncList = [], {target: target} = this;
|
|
7534
7539
|
while (leaf) {
|
|
7540
|
+
if (leaf.syncEventer) syncList.push(leaf.syncEventer);
|
|
7535
7541
|
path.add(leaf);
|
|
7536
7542
|
leaf = leaf.parent;
|
|
7543
|
+
if (leaf === target) break;
|
|
7544
|
+
}
|
|
7545
|
+
if (syncList.length) {
|
|
7546
|
+
syncList.forEach(item => {
|
|
7547
|
+
while (item) {
|
|
7548
|
+
if (item.__.hittable) path.add(item);
|
|
7549
|
+
item = item.parent;
|
|
7550
|
+
if (item === target) break;
|
|
7551
|
+
}
|
|
7552
|
+
});
|
|
7537
7553
|
}
|
|
7538
|
-
if (
|
|
7554
|
+
if (target) path.add(target);
|
|
7539
7555
|
return path;
|
|
7540
7556
|
}
|
|
7541
7557
|
getHitablePath(leaf) {
|
|
@@ -8033,12 +8049,12 @@ class ImageData extends RectData {
|
|
|
8033
8049
|
}
|
|
8034
8050
|
__getData() {
|
|
8035
8051
|
const data = super.__getData();
|
|
8036
|
-
delete data.fill;
|
|
8052
|
+
if (data.url) delete data.fill;
|
|
8037
8053
|
return data;
|
|
8038
8054
|
}
|
|
8039
8055
|
__getInputData(names, options) {
|
|
8040
8056
|
const data = super.__getInputData(names, options);
|
|
8041
|
-
delete data.fill;
|
|
8057
|
+
if (data.url) delete data.fill;
|
|
8042
8058
|
return data;
|
|
8043
8059
|
}
|
|
8044
8060
|
}
|
|
@@ -8057,7 +8073,7 @@ class CanvasData extends RectData {
|
|
|
8057
8073
|
}
|
|
8058
8074
|
}
|
|
8059
8075
|
|
|
8060
|
-
const {max: max$
|
|
8076
|
+
const {max: max$3, add: add$1} = FourNumberHelper;
|
|
8061
8077
|
|
|
8062
8078
|
const UIBounds = {
|
|
8063
8079
|
__updateStrokeSpread() {
|
|
@@ -8073,7 +8089,7 @@ const UIBounds = {
|
|
|
8073
8089
|
}
|
|
8074
8090
|
if (data.__useArrow) spread += strokeWidth * 5;
|
|
8075
8091
|
if (box) {
|
|
8076
|
-
spread = max$
|
|
8092
|
+
spread = max$3(spread, box.__layout.strokeSpread = box.__updateStrokeSpread());
|
|
8077
8093
|
boxSpread = Math.max(boxSpread, box.__layout.strokeBoxSpread);
|
|
8078
8094
|
}
|
|
8079
8095
|
this.__layout.strokeBoxSpread = boxSpread;
|
|
@@ -8083,86 +8099,18 @@ const UIBounds = {
|
|
|
8083
8099
|
let spread = 0;
|
|
8084
8100
|
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__, {strokeSpread: strokeSpread} = this.__layout, box = this.__box;
|
|
8085
8101
|
if (shadow) spread = Effect.getShadowRenderSpread(this, shadow);
|
|
8086
|
-
if (blur) spread = max$
|
|
8102
|
+
if (blur) spread = max$3(spread, blur);
|
|
8087
8103
|
if (filter) spread = add$1(spread, Filter.getSpread(filter));
|
|
8088
8104
|
if (renderSpread) spread = add$1(spread, renderSpread);
|
|
8089
8105
|
if (strokeSpread) spread = add$1(spread, strokeSpread);
|
|
8090
8106
|
let shapeSpread = spread;
|
|
8091
|
-
if (innerShadow) shapeSpread = max$
|
|
8092
|
-
if (backgroundBlur) shapeSpread = max$
|
|
8107
|
+
if (innerShadow) shapeSpread = max$3(shapeSpread, Effect.getInnerShadowSpread(this, innerShadow));
|
|
8108
|
+
if (backgroundBlur) shapeSpread = max$3(shapeSpread, backgroundBlur);
|
|
8093
8109
|
this.__layout.renderShapeSpread = shapeSpread;
|
|
8094
|
-
return box ? max$
|
|
8095
|
-
}
|
|
8096
|
-
};
|
|
8097
|
-
|
|
8098
|
-
const {float: float} = MathHelper;
|
|
8099
|
-
|
|
8100
|
-
const tempContent = new Bounds, tempMerge = new Bounds, tempIntersect = new Bounds;
|
|
8101
|
-
|
|
8102
|
-
const DragBoundsHelper = {
|
|
8103
|
-
limitMove(leaf, move) {
|
|
8104
|
-
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
8105
|
-
if (dragBounds) D.getValidMove(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, move, true);
|
|
8106
|
-
D.axisMove(leaf, move);
|
|
8107
|
-
},
|
|
8108
|
-
limitScaleOf(leaf, origin, scale) {
|
|
8109
|
-
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
8110
|
-
if (dragBounds) D.getValidScaleOf(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, leaf.getLocalPointByInner(leaf.getInnerPointByBox(origin)), scale, true);
|
|
8111
|
-
},
|
|
8112
|
-
axisMove(leaf, move) {
|
|
8113
|
-
const {draggable: draggable} = leaf;
|
|
8114
|
-
if (draggable === "x") move.y = 0;
|
|
8115
|
-
if (draggable === "y") move.x = 0;
|
|
8116
|
-
},
|
|
8117
|
-
getDragBounds(leaf) {
|
|
8118
|
-
const {dragBounds: dragBounds} = leaf;
|
|
8119
|
-
return dragBounds === "parent" ? leaf.parent.boxBounds : dragBounds;
|
|
8120
|
-
},
|
|
8121
|
-
isInnerMode(content, dragBounds, dragBoundsType, sideType) {
|
|
8122
|
-
return dragBoundsType === "inner" || dragBoundsType === "auto" && content[sideType] > dragBounds[sideType];
|
|
8123
|
-
},
|
|
8124
|
-
getValidMove(content, dragBounds, dragBoundsType, move, change) {
|
|
8125
|
-
const x = content.x + move.x, y = content.y + move.y, right = x + content.width, bottom = y + content.height;
|
|
8126
|
-
const boundsRight = dragBounds.x + dragBounds.width, boundsBottom = dragBounds.y + dragBounds.height;
|
|
8127
|
-
if (!change) move = Object.assign({}, move);
|
|
8128
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
8129
|
-
if (x > dragBounds.x) move.x += dragBounds.x - x; else if (right < boundsRight) move.x += boundsRight - right;
|
|
8130
|
-
} else {
|
|
8131
|
-
if (x < dragBounds.x) move.x += dragBounds.x - x; else if (right > boundsRight) move.x += boundsRight - right;
|
|
8132
|
-
}
|
|
8133
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
8134
|
-
if (y > dragBounds.y) move.y += dragBounds.y - y; else if (bottom < boundsBottom) move.y += boundsBottom - bottom;
|
|
8135
|
-
} else {
|
|
8136
|
-
if (y < dragBounds.y) move.y += dragBounds.y - y; else if (bottom > boundsBottom) move.y += boundsBottom - bottom;
|
|
8137
|
-
}
|
|
8138
|
-
move.x = float(move.x);
|
|
8139
|
-
move.y = float(move.y);
|
|
8140
|
-
return move;
|
|
8141
|
-
},
|
|
8142
|
-
getValidScaleOf(content, dragBounds, dragBoundsType, origin, scale, change) {
|
|
8143
|
-
if (!change) scale = Object.assign({}, scale);
|
|
8144
|
-
let fitScaleX, fitScaleY;
|
|
8145
|
-
tempContent.set(content).scaleOf(origin, scale.x, scale.y).unsign();
|
|
8146
|
-
tempMerge.set(tempContent).add(dragBounds);
|
|
8147
|
-
tempIntersect.set(tempContent).intersect(dragBounds);
|
|
8148
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
8149
|
-
fitScaleX = tempMerge.width / tempContent.width;
|
|
8150
|
-
} else {
|
|
8151
|
-
fitScaleX = tempIntersect.width / tempContent.width;
|
|
8152
|
-
}
|
|
8153
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
8154
|
-
fitScaleY = tempMerge.height / tempContent.height;
|
|
8155
|
-
} else {
|
|
8156
|
-
fitScaleY = tempIntersect.height / tempContent.height;
|
|
8157
|
-
}
|
|
8158
|
-
scale.x = float(tempIntersect.width) ? scale.x * fitScaleX : 1;
|
|
8159
|
-
scale.y = float(tempIntersect.height) ? scale.y * fitScaleY : 1;
|
|
8160
|
-
return scale;
|
|
8110
|
+
return box ? max$3(box.__updateRenderSpread(), spread) : spread;
|
|
8161
8111
|
}
|
|
8162
8112
|
};
|
|
8163
8113
|
|
|
8164
|
-
const D = DragBoundsHelper;
|
|
8165
|
-
|
|
8166
8114
|
const {stintSet: stintSet$1} = DataHelper;
|
|
8167
8115
|
|
|
8168
8116
|
const UIRender = {
|
|
@@ -9828,6 +9776,106 @@ class UIEvent extends Event {
|
|
|
9828
9776
|
}
|
|
9829
9777
|
}
|
|
9830
9778
|
|
|
9779
|
+
const {min: min, max: max$2, abs: abs$2} = Math, {float: float, sign: sign} = MathHelper, {minX: minX, maxX: maxX, minY: minY, maxY: maxY} = BoundsHelper;
|
|
9780
|
+
|
|
9781
|
+
const tempContent = new Bounds, tempDragBounds = new Bounds;
|
|
9782
|
+
|
|
9783
|
+
const DragBoundsHelper = {
|
|
9784
|
+
limitMove(leaf, move) {
|
|
9785
|
+
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
9786
|
+
if (dragBounds) D.getValidMove(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, move, true);
|
|
9787
|
+
D.axisMove(leaf, move);
|
|
9788
|
+
},
|
|
9789
|
+
limitScaleOf(leaf, origin, scale, lockRatio) {
|
|
9790
|
+
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
9791
|
+
if (dragBounds) D.getValidScaleOf(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, leaf.getLocalPointByInner(leaf.getInnerPointByBox(origin)), scale, lockRatio, true);
|
|
9792
|
+
},
|
|
9793
|
+
axisMove(leaf, move) {
|
|
9794
|
+
const {draggable: draggable} = leaf;
|
|
9795
|
+
if (draggable === "x") move.y = 0;
|
|
9796
|
+
if (draggable === "y") move.x = 0;
|
|
9797
|
+
},
|
|
9798
|
+
getDragBounds(leaf) {
|
|
9799
|
+
const {dragBounds: dragBounds} = leaf;
|
|
9800
|
+
return dragBounds === "parent" ? leaf.parent.boxBounds : dragBounds;
|
|
9801
|
+
},
|
|
9802
|
+
isInnerMode(content, dragBounds, dragBoundsType, sideType) {
|
|
9803
|
+
return dragBoundsType === "inner" || dragBoundsType === "auto" && content[sideType] > dragBounds[sideType];
|
|
9804
|
+
},
|
|
9805
|
+
getValidMove(content, dragBounds, dragBoundsType, move, change) {
|
|
9806
|
+
const x = content.x + move.x, y = content.y + move.y, right = x + content.width, bottom = y + content.height;
|
|
9807
|
+
const boundsRight = dragBounds.x + dragBounds.width, boundsBottom = dragBounds.y + dragBounds.height;
|
|
9808
|
+
if (!change) move = Object.assign({}, move);
|
|
9809
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
9810
|
+
if (x > dragBounds.x) move.x += dragBounds.x - x; else if (right < boundsRight) move.x += boundsRight - right;
|
|
9811
|
+
} else {
|
|
9812
|
+
if (x < dragBounds.x) move.x += dragBounds.x - x; else if (right > boundsRight) move.x += boundsRight - right;
|
|
9813
|
+
}
|
|
9814
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
9815
|
+
if (y > dragBounds.y) move.y += dragBounds.y - y; else if (bottom < boundsBottom) move.y += boundsBottom - bottom;
|
|
9816
|
+
} else {
|
|
9817
|
+
if (y < dragBounds.y) move.y += dragBounds.y - y; else if (bottom > boundsBottom) move.y += boundsBottom - bottom;
|
|
9818
|
+
}
|
|
9819
|
+
move.x = float(move.x);
|
|
9820
|
+
move.y = float(move.y);
|
|
9821
|
+
return move;
|
|
9822
|
+
},
|
|
9823
|
+
getValidScaleOf(content, dragBounds, dragBoundsType, origin, scale, lockRatio, change) {
|
|
9824
|
+
if (!change) scale = Object.assign({}, scale);
|
|
9825
|
+
tempDragBounds.set(dragBounds);
|
|
9826
|
+
tempContent.set(content).scaleOf(origin, scale.x, scale.y);
|
|
9827
|
+
const originLeftScale = (origin.x - content.x) / content.width, originRightScale = 1 - originLeftScale;
|
|
9828
|
+
const originTopScale = (origin.y - content.y) / content.height, originBottomScale = 1 - originTopScale;
|
|
9829
|
+
let correctScaleX = 1, correctScaleY = 1, aScale, bScale, aSize, bSize;
|
|
9830
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
9831
|
+
if (scale.x < 0) tempContent.scaleOf(origin, correctScaleX = 1 / scale.x, 1);
|
|
9832
|
+
aSize = float(tempContent.minX - tempDragBounds.minX);
|
|
9833
|
+
bSize = float(tempDragBounds.maxX - tempContent.maxX);
|
|
9834
|
+
aScale = originLeftScale && aSize > 0 ? 1 + aSize / (originLeftScale * tempContent.width) : 1;
|
|
9835
|
+
bScale = originRightScale && bSize > 0 ? 1 + bSize / (originRightScale * tempContent.width) : 1;
|
|
9836
|
+
correctScaleX *= max$2(aScale, bScale);
|
|
9837
|
+
} else {
|
|
9838
|
+
if (scale.x < 0) {
|
|
9839
|
+
if (float(minX(content) - minX(dragBounds)) <= 0 || float(maxX(dragBounds) - maxX(content)) <= 0) tempContent.scaleOf(origin, correctScaleX = 1 / scale.x, 1);
|
|
9840
|
+
tempContent.unsign();
|
|
9841
|
+
}
|
|
9842
|
+
aSize = float(tempDragBounds.minX - tempContent.minX);
|
|
9843
|
+
bSize = float(tempContent.maxX - tempDragBounds.maxX);
|
|
9844
|
+
aScale = originLeftScale && aSize > 0 ? 1 - aSize / (originLeftScale * tempContent.width) : 1;
|
|
9845
|
+
bScale = originRightScale && bSize > 0 ? 1 - bSize / (originRightScale * tempContent.width) : 1;
|
|
9846
|
+
correctScaleX *= min(aScale, bScale);
|
|
9847
|
+
}
|
|
9848
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
9849
|
+
if (scale.y < 0) tempContent.scaleOf(origin, 1, correctScaleY = 1 / scale.y);
|
|
9850
|
+
aSize = float(tempContent.minY - tempDragBounds.minY);
|
|
9851
|
+
bSize = float(tempDragBounds.maxY - tempContent.maxY);
|
|
9852
|
+
aScale = originTopScale && aSize > 0 ? 1 + aSize / (originTopScale * tempContent.height) : 1;
|
|
9853
|
+
bScale = originBottomScale && bSize > 0 ? 1 + bSize / (originBottomScale * tempContent.height) : 1;
|
|
9854
|
+
correctScaleY *= max$2(aScale, bScale);
|
|
9855
|
+
if (lockRatio) {
|
|
9856
|
+
aScale = max$2(abs$2(correctScaleX), abs$2(correctScaleY));
|
|
9857
|
+
correctScaleX = sign(correctScaleX) * aScale;
|
|
9858
|
+
correctScaleY = sign(correctScaleY) * aScale;
|
|
9859
|
+
}
|
|
9860
|
+
} else {
|
|
9861
|
+
if (scale.y < 0) {
|
|
9862
|
+
if (float(minY(content) - minY(dragBounds)) <= 0 || float(maxY(dragBounds) - maxY(content)) <= 0) tempContent.scaleOf(origin, 1, correctScaleY = 1 / scale.y);
|
|
9863
|
+
tempContent.unsign();
|
|
9864
|
+
}
|
|
9865
|
+
aSize = float(tempDragBounds.minY - tempContent.minY);
|
|
9866
|
+
bSize = float(tempContent.maxY - tempDragBounds.maxY);
|
|
9867
|
+
aScale = originTopScale && aSize > 0 ? 1 - aSize / (originTopScale * tempContent.height) : 1;
|
|
9868
|
+
bScale = originBottomScale && bSize > 0 ? 1 - bSize / (originBottomScale * tempContent.height) : 1;
|
|
9869
|
+
correctScaleY *= min(aScale, bScale);
|
|
9870
|
+
}
|
|
9871
|
+
scale.x *= isFinite(correctScaleX) ? correctScaleX : 1;
|
|
9872
|
+
scale.y *= isFinite(correctScaleY) ? correctScaleY : 1;
|
|
9873
|
+
return scale;
|
|
9874
|
+
}
|
|
9875
|
+
};
|
|
9876
|
+
|
|
9877
|
+
const D = DragBoundsHelper;
|
|
9878
|
+
|
|
9831
9879
|
let PointerEvent = class PointerEvent extends UIEvent {};
|
|
9832
9880
|
|
|
9833
9881
|
PointerEvent.POINTER = "pointer";
|
|
@@ -10898,9 +10946,9 @@ const ui$1 = UI.prototype;
|
|
|
10898
10946
|
|
|
10899
10947
|
ui$1.__updateHitCanvas = function() {
|
|
10900
10948
|
if (this.__box) this.__box.__updateHitCanvas();
|
|
10901
|
-
const
|
|
10902
|
-
if (!
|
|
10903
|
-
const data = this.__
|
|
10949
|
+
const {hitCanvasManager: hitCanvasManager} = this.leafer || this.parent && this.parent.leafer || {};
|
|
10950
|
+
if (!hitCanvasManager) return;
|
|
10951
|
+
const data = this.__;
|
|
10904
10952
|
const isHitPixelFill = (data.__isAlphaPixelFill || data.__isCanvas) && data.hitFill === "pixel";
|
|
10905
10953
|
const isHitPixelStroke = data.__isAlphaPixelStroke && data.hitStroke === "pixel";
|
|
10906
10954
|
const isHitPixel = isHitPixelFill || isHitPixelStroke;
|
|
@@ -11372,7 +11420,14 @@ const PaintModule = {
|
|
|
11372
11420
|
|
|
11373
11421
|
let origin = {}, tempMatrix$1 = getMatrixData();
|
|
11374
11422
|
|
|
11375
|
-
const {get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
11423
|
+
const {get: get$3, set: set, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
11424
|
+
|
|
11425
|
+
function stretchMode(data, box, scaleX, scaleY) {
|
|
11426
|
+
const transform = get$3();
|
|
11427
|
+
translate$1(transform, box.x, box.y);
|
|
11428
|
+
if (scaleX) scaleHelper(transform, scaleX, scaleY);
|
|
11429
|
+
data.transform = transform;
|
|
11430
|
+
}
|
|
11376
11431
|
|
|
11377
11432
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
11378
11433
|
const transform = get$3();
|
|
@@ -11389,8 +11444,11 @@ function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipScaleX, c
|
|
|
11389
11444
|
const transform = get$3();
|
|
11390
11445
|
layout(transform, box, x, y, scaleX, scaleY, rotation, skew);
|
|
11391
11446
|
if (clipScaleX) {
|
|
11392
|
-
|
|
11393
|
-
|
|
11447
|
+
if (rotation || skew) {
|
|
11448
|
+
set(tempMatrix$1);
|
|
11449
|
+
scaleOfOuter$1(tempMatrix$1, box, clipScaleX, clipScaleY);
|
|
11450
|
+
multiplyParent(transform, tempMatrix$1);
|
|
11451
|
+
} else scaleOfOuter$1(transform, box, clipScaleX, clipScaleY);
|
|
11394
11452
|
}
|
|
11395
11453
|
data.transform = transform;
|
|
11396
11454
|
}
|
|
@@ -11486,7 +11544,10 @@ function getPatternData(paint, box, image) {
|
|
|
11486
11544
|
if (offset) PointHelper.move(tempImage, offset);
|
|
11487
11545
|
switch (mode) {
|
|
11488
11546
|
case "stretch":
|
|
11489
|
-
if (!sameBox)
|
|
11547
|
+
if (!sameBox) {
|
|
11548
|
+
scaleX = box.width / width, scaleY = box.height / height;
|
|
11549
|
+
stretchMode(data, box, scaleX, scaleY);
|
|
11550
|
+
}
|
|
11490
11551
|
break;
|
|
11491
11552
|
|
|
11492
11553
|
case "normal":
|
|
@@ -11495,7 +11556,7 @@ function getPatternData(paint, box, image) {
|
|
|
11495
11556
|
let clipScaleX, clipScaleY;
|
|
11496
11557
|
if (clipSize) clipScaleX = box.width / clipSize.width, clipScaleY = box.height / clipSize.height;
|
|
11497
11558
|
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, clipScaleX, clipScaleY);
|
|
11498
|
-
if (clipScaleX) scaleX = scaleX ? scaleX * clipScaleX :
|
|
11559
|
+
if (clipScaleX) scaleX = scaleX ? scaleX * clipScaleX : clipScaleX, scaleY = scaleY ? scaleY * clipScaleY : clipScaleY;
|
|
11499
11560
|
}
|
|
11500
11561
|
break;
|
|
11501
11562
|
|
|
@@ -11512,17 +11573,14 @@ function getPatternData(paint, box, image) {
|
|
|
11512
11573
|
if (scaleX) fillOrFitMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
|
|
11513
11574
|
}
|
|
11514
11575
|
if (!data.transform) {
|
|
11515
|
-
if (box.x || box.y)
|
|
11516
|
-
data.transform = get$2();
|
|
11517
|
-
translate(data.transform, box.x, box.y);
|
|
11518
|
-
}
|
|
11576
|
+
if (box.x || box.y) translate(data.transform = get$2(), box.x, box.y);
|
|
11519
11577
|
}
|
|
11520
|
-
|
|
11578
|
+
data.width = width;
|
|
11579
|
+
data.height = height;
|
|
11580
|
+
if (scaleX) {
|
|
11521
11581
|
data.scaleX = scaleX;
|
|
11522
11582
|
data.scaleY = scaleY;
|
|
11523
11583
|
}
|
|
11524
|
-
data.width = width;
|
|
11525
|
-
data.height = height;
|
|
11526
11584
|
if (opacity) data.opacity = opacity;
|
|
11527
11585
|
if (filters) data.filters = filters;
|
|
11528
11586
|
if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
|
|
@@ -11654,7 +11712,7 @@ function ignoreRender(ui, value) {
|
|
|
11654
11712
|
|
|
11655
11713
|
const {get: get$1, scale: scale, copy: copy$1} = MatrixHelper;
|
|
11656
11714
|
|
|
11657
|
-
const {floor: floor, ceil: ceil, max: max$1, abs: abs} = Math;
|
|
11715
|
+
const {floor: floor, ceil: ceil, max: max$1, abs: abs$1} = Math;
|
|
11658
11716
|
|
|
11659
11717
|
function createPattern(ui, paint, pixelRatio) {
|
|
11660
11718
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
@@ -11665,8 +11723,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11665
11723
|
scaleX *= pixelRatio;
|
|
11666
11724
|
scaleY *= pixelRatio;
|
|
11667
11725
|
if (sx) {
|
|
11668
|
-
sx = abs(sx);
|
|
11669
|
-
sy = abs(sy);
|
|
11726
|
+
sx = abs$1(sx);
|
|
11727
|
+
sy = abs$1(sy);
|
|
11670
11728
|
imageMatrix = get$1();
|
|
11671
11729
|
copy$1(imageMatrix, transform);
|
|
11672
11730
|
scale(imageMatrix, 1 / sx, 1 / sy);
|
|
@@ -11808,6 +11866,7 @@ const PaintImageModule = {
|
|
|
11808
11866
|
recycleImage: recycleImage,
|
|
11809
11867
|
createData: createData,
|
|
11810
11868
|
getPatternData: getPatternData,
|
|
11869
|
+
stretchMode: stretchMode,
|
|
11811
11870
|
fillOrFitMode: fillOrFitMode,
|
|
11812
11871
|
clipMode: clipMode,
|
|
11813
11872
|
repeatMode: repeatMode
|
|
@@ -11918,7 +11977,7 @@ const PaintGradientModule = {
|
|
|
11918
11977
|
getTransform: getTransform
|
|
11919
11978
|
};
|
|
11920
11979
|
|
|
11921
|
-
const {copy: copy, move: move, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max} = Math;
|
|
11980
|
+
const {copy: copy, move: move, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max, abs: abs} = Math;
|
|
11922
11981
|
|
|
11923
11982
|
const tempBounds = {}, tempMatrix = new Matrix;
|
|
11924
11983
|
|
|
@@ -11962,7 +12021,7 @@ function shadow(ui, current, shape) {
|
|
|
11962
12021
|
function getShadowRenderSpread(_ui, shadow) {
|
|
11963
12022
|
let top = 0, right = 0, bottom = 0, left = 0, x, y, spread, blur;
|
|
11964
12023
|
shadow.forEach(item => {
|
|
11965
|
-
x = item.x || 0, y = item.y || 0,
|
|
12024
|
+
x = item.x || 0, y = item.y || 0, blur = (item.blur || 0) * 1.5, spread = abs(item.spread || 0);
|
|
11966
12025
|
top = max(top, spread + blur - y);
|
|
11967
12026
|
right = max(right, spread + blur + x);
|
|
11968
12027
|
bottom = max(bottom, spread + blur + y);
|
|
@@ -11973,11 +12032,11 @@ function getShadowRenderSpread(_ui, shadow) {
|
|
|
11973
12032
|
|
|
11974
12033
|
function getShadowTransform(ui, canvas, _shape, shadow, outBounds, otherScale, isInnerShaodw) {
|
|
11975
12034
|
if (shadow.spread) {
|
|
11976
|
-
const
|
|
12035
|
+
const spread = shadow.spread * 2 * otherScale * (isInnerShaodw ? -1 : 1), {width: width, height: height} = ui.__layout.strokeBounds;
|
|
11977
12036
|
tempMatrix.set().scaleOfOuter({
|
|
11978
12037
|
x: (outBounds.x + outBounds.width / 2) * canvas.pixelRatio,
|
|
11979
12038
|
y: (outBounds.y + outBounds.height / 2) * canvas.pixelRatio
|
|
11980
|
-
},
|
|
12039
|
+
}, 1 + spread / width, 1 + spread / height);
|
|
11981
12040
|
return tempMatrix;
|
|
11982
12041
|
}
|
|
11983
12042
|
return undefined;
|