leafer-ui 1.9.8 → 1.9.10
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/web.cjs +49 -25
- package/dist/web.esm.js +50 -26
- package/dist/web.esm.min.js +1 -1
- package/dist/web.esm.min.js.map +1 -1
- package/dist/web.js +172 -121
- package/dist/web.min.cjs +1 -1
- package/dist/web.min.cjs.map +1 -1
- package/dist/web.min.js +1 -1
- package/dist/web.min.js.map +1 -1
- package/dist/web.module.js +177 -125
- package/dist/web.module.min.js +1 -1
- package/dist/web.module.min.js.map +1 -1
- package/package.json +11 -11
package/dist/web.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
|
},
|
|
@@ -4023,7 +4023,7 @@ const I$1 = ImageManager;
|
|
|
4023
4023
|
|
|
4024
4024
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
4025
4025
|
|
|
4026
|
-
const {floor: floor$1, max: max$
|
|
4026
|
+
const {floor: floor$1, max: max$4} = Math;
|
|
4027
4027
|
|
|
4028
4028
|
class LeaferImage {
|
|
4029
4029
|
get url() {
|
|
@@ -4112,7 +4112,7 @@ class LeaferImage {
|
|
|
4112
4112
|
}
|
|
4113
4113
|
if (data) return data;
|
|
4114
4114
|
}
|
|
4115
|
-
const canvas = Platform.origin.createCanvas(max$
|
|
4115
|
+
const canvas = Platform.origin.createCanvas(max$4(floor$1(width + (xGap || 0)), 1), max$4(floor$1(height + (yGap || 0)), 1));
|
|
4116
4116
|
const ctx = canvas.getContext("2d");
|
|
4117
4117
|
if (opacity) ctx.globalAlpha = opacity;
|
|
4118
4118
|
ctx.imageSmoothingEnabled = smooth === false ? false : true;
|
|
@@ -6815,7 +6815,7 @@ class LeafLevelList {
|
|
|
6815
6815
|
}
|
|
6816
6816
|
}
|
|
6817
6817
|
|
|
6818
|
-
const version = "1.9.
|
|
6818
|
+
const version = "1.9.10";
|
|
6819
6819
|
|
|
6820
6820
|
const debug$5 = Debug.get("LeaferCanvas");
|
|
6821
6821
|
|
|
@@ -7687,7 +7687,7 @@ class Picker {
|
|
|
7687
7687
|
children: [ target ]
|
|
7688
7688
|
} : target);
|
|
7689
7689
|
const {list: list} = this.findList;
|
|
7690
|
-
const leaf = this.getBestMatchLeaf(list, options.bottomList, ignoreHittable);
|
|
7690
|
+
const leaf = this.getBestMatchLeaf(list, options.bottomList, ignoreHittable, !!options.findList);
|
|
7691
7691
|
const path = ignoreHittable ? this.getPath(leaf) : this.getHitablePath(leaf);
|
|
7692
7692
|
this.clear();
|
|
7693
7693
|
return through ? {
|
|
@@ -7702,7 +7702,7 @@ class Picker {
|
|
|
7702
7702
|
hitPoint(hitPoint, hitRadius, options) {
|
|
7703
7703
|
return !!this.getByPoint(hitPoint, hitRadius, options).target;
|
|
7704
7704
|
}
|
|
7705
|
-
getBestMatchLeaf(list, bottomList, ignoreHittable) {
|
|
7705
|
+
getBestMatchLeaf(list, bottomList, ignoreHittable, allowNull) {
|
|
7706
7706
|
const findList = this.findList = new LeafList;
|
|
7707
7707
|
if (list.length) {
|
|
7708
7708
|
let find;
|
|
@@ -7733,15 +7733,27 @@ class Picker {
|
|
|
7733
7733
|
if (findList.length) return findList.list[0];
|
|
7734
7734
|
}
|
|
7735
7735
|
}
|
|
7736
|
+
if (allowNull) return null;
|
|
7736
7737
|
return ignoreHittable ? list[0] : list.find(item => LeafHelper.worldHittable(item));
|
|
7737
7738
|
}
|
|
7738
7739
|
getPath(leaf) {
|
|
7739
|
-
const path = new LeafList;
|
|
7740
|
+
const path = new LeafList, syncList = [], {target: target} = this;
|
|
7740
7741
|
while (leaf) {
|
|
7742
|
+
if (leaf.syncEventer) syncList.push(leaf.syncEventer);
|
|
7741
7743
|
path.add(leaf);
|
|
7742
7744
|
leaf = leaf.parent;
|
|
7745
|
+
if (leaf === target) break;
|
|
7746
|
+
}
|
|
7747
|
+
if (syncList.length) {
|
|
7748
|
+
syncList.forEach(item => {
|
|
7749
|
+
while (item) {
|
|
7750
|
+
if (item.__.hittable) path.add(item);
|
|
7751
|
+
item = item.parent;
|
|
7752
|
+
if (item === target) break;
|
|
7753
|
+
}
|
|
7754
|
+
});
|
|
7743
7755
|
}
|
|
7744
|
-
if (
|
|
7756
|
+
if (target) path.add(target);
|
|
7745
7757
|
return path;
|
|
7746
7758
|
}
|
|
7747
7759
|
getHitablePath(leaf) {
|
|
@@ -8239,12 +8251,12 @@ class ImageData extends RectData {
|
|
|
8239
8251
|
}
|
|
8240
8252
|
__getData() {
|
|
8241
8253
|
const data = super.__getData();
|
|
8242
|
-
delete data.fill;
|
|
8254
|
+
if (data.url) delete data.fill;
|
|
8243
8255
|
return data;
|
|
8244
8256
|
}
|
|
8245
8257
|
__getInputData(names, options) {
|
|
8246
8258
|
const data = super.__getInputData(names, options);
|
|
8247
|
-
delete data.fill;
|
|
8259
|
+
if (data.url) delete data.fill;
|
|
8248
8260
|
return data;
|
|
8249
8261
|
}
|
|
8250
8262
|
}
|
|
@@ -8263,7 +8275,7 @@ class CanvasData extends RectData {
|
|
|
8263
8275
|
}
|
|
8264
8276
|
}
|
|
8265
8277
|
|
|
8266
|
-
const {max: max$
|
|
8278
|
+
const {max: max$3, add: add$1} = FourNumberHelper;
|
|
8267
8279
|
|
|
8268
8280
|
const UIBounds = {
|
|
8269
8281
|
__updateStrokeSpread() {
|
|
@@ -8279,7 +8291,7 @@ const UIBounds = {
|
|
|
8279
8291
|
}
|
|
8280
8292
|
if (data.__useArrow) spread += strokeWidth * 5;
|
|
8281
8293
|
if (box) {
|
|
8282
|
-
spread = max$
|
|
8294
|
+
spread = max$3(spread, box.__layout.strokeSpread = box.__updateStrokeSpread());
|
|
8283
8295
|
boxSpread = Math.max(boxSpread, box.__layout.strokeBoxSpread);
|
|
8284
8296
|
}
|
|
8285
8297
|
this.__layout.strokeBoxSpread = boxSpread;
|
|
@@ -8289,86 +8301,18 @@ const UIBounds = {
|
|
|
8289
8301
|
let spread = 0;
|
|
8290
8302
|
const {shadow: shadow, innerShadow: innerShadow, blur: blur, backgroundBlur: backgroundBlur, filter: filter, renderSpread: renderSpread} = this.__, {strokeSpread: strokeSpread} = this.__layout, box = this.__box;
|
|
8291
8303
|
if (shadow) spread = Effect.getShadowRenderSpread(this, shadow);
|
|
8292
|
-
if (blur) spread = max$
|
|
8304
|
+
if (blur) spread = max$3(spread, blur);
|
|
8293
8305
|
if (filter) spread = add$1(spread, Filter.getSpread(filter));
|
|
8294
8306
|
if (renderSpread) spread = add$1(spread, renderSpread);
|
|
8295
8307
|
if (strokeSpread) spread = add$1(spread, strokeSpread);
|
|
8296
8308
|
let shapeSpread = spread;
|
|
8297
|
-
if (innerShadow) shapeSpread = max$
|
|
8298
|
-
if (backgroundBlur) shapeSpread = max$
|
|
8309
|
+
if (innerShadow) shapeSpread = max$3(shapeSpread, Effect.getInnerShadowSpread(this, innerShadow));
|
|
8310
|
+
if (backgroundBlur) shapeSpread = max$3(shapeSpread, backgroundBlur);
|
|
8299
8311
|
this.__layout.renderShapeSpread = shapeSpread;
|
|
8300
|
-
return box ? max$
|
|
8301
|
-
}
|
|
8302
|
-
};
|
|
8303
|
-
|
|
8304
|
-
const {float: float} = MathHelper;
|
|
8305
|
-
|
|
8306
|
-
const tempContent = new Bounds, tempMerge = new Bounds, tempIntersect = new Bounds;
|
|
8307
|
-
|
|
8308
|
-
const DragBoundsHelper = {
|
|
8309
|
-
limitMove(leaf, move) {
|
|
8310
|
-
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
8311
|
-
if (dragBounds) D.getValidMove(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, move, true);
|
|
8312
|
-
D.axisMove(leaf, move);
|
|
8313
|
-
},
|
|
8314
|
-
limitScaleOf(leaf, origin, scale) {
|
|
8315
|
-
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
8316
|
-
if (dragBounds) D.getValidScaleOf(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, leaf.getLocalPointByInner(leaf.getInnerPointByBox(origin)), scale, true);
|
|
8317
|
-
},
|
|
8318
|
-
axisMove(leaf, move) {
|
|
8319
|
-
const {draggable: draggable} = leaf;
|
|
8320
|
-
if (draggable === "x") move.y = 0;
|
|
8321
|
-
if (draggable === "y") move.x = 0;
|
|
8322
|
-
},
|
|
8323
|
-
getDragBounds(leaf) {
|
|
8324
|
-
const {dragBounds: dragBounds} = leaf;
|
|
8325
|
-
return dragBounds === "parent" ? leaf.parent.boxBounds : dragBounds;
|
|
8326
|
-
},
|
|
8327
|
-
isInnerMode(content, dragBounds, dragBoundsType, sideType) {
|
|
8328
|
-
return dragBoundsType === "inner" || dragBoundsType === "auto" && content[sideType] > dragBounds[sideType];
|
|
8329
|
-
},
|
|
8330
|
-
getValidMove(content, dragBounds, dragBoundsType, move, change) {
|
|
8331
|
-
const x = content.x + move.x, y = content.y + move.y, right = x + content.width, bottom = y + content.height;
|
|
8332
|
-
const boundsRight = dragBounds.x + dragBounds.width, boundsBottom = dragBounds.y + dragBounds.height;
|
|
8333
|
-
if (!change) move = Object.assign({}, move);
|
|
8334
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
8335
|
-
if (x > dragBounds.x) move.x += dragBounds.x - x; else if (right < boundsRight) move.x += boundsRight - right;
|
|
8336
|
-
} else {
|
|
8337
|
-
if (x < dragBounds.x) move.x += dragBounds.x - x; else if (right > boundsRight) move.x += boundsRight - right;
|
|
8338
|
-
}
|
|
8339
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
8340
|
-
if (y > dragBounds.y) move.y += dragBounds.y - y; else if (bottom < boundsBottom) move.y += boundsBottom - bottom;
|
|
8341
|
-
} else {
|
|
8342
|
-
if (y < dragBounds.y) move.y += dragBounds.y - y; else if (bottom > boundsBottom) move.y += boundsBottom - bottom;
|
|
8343
|
-
}
|
|
8344
|
-
move.x = float(move.x);
|
|
8345
|
-
move.y = float(move.y);
|
|
8346
|
-
return move;
|
|
8347
|
-
},
|
|
8348
|
-
getValidScaleOf(content, dragBounds, dragBoundsType, origin, scale, change) {
|
|
8349
|
-
if (!change) scale = Object.assign({}, scale);
|
|
8350
|
-
let fitScaleX, fitScaleY;
|
|
8351
|
-
tempContent.set(content).scaleOf(origin, scale.x, scale.y).unsign();
|
|
8352
|
-
tempMerge.set(tempContent).add(dragBounds);
|
|
8353
|
-
tempIntersect.set(tempContent).intersect(dragBounds);
|
|
8354
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
8355
|
-
fitScaleX = tempMerge.width / tempContent.width;
|
|
8356
|
-
} else {
|
|
8357
|
-
fitScaleX = tempIntersect.width / tempContent.width;
|
|
8358
|
-
}
|
|
8359
|
-
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
8360
|
-
fitScaleY = tempMerge.height / tempContent.height;
|
|
8361
|
-
} else {
|
|
8362
|
-
fitScaleY = tempIntersect.height / tempContent.height;
|
|
8363
|
-
}
|
|
8364
|
-
scale.x = float(tempIntersect.width) ? scale.x * fitScaleX : 1;
|
|
8365
|
-
scale.y = float(tempIntersect.height) ? scale.y * fitScaleY : 1;
|
|
8366
|
-
return scale;
|
|
8312
|
+
return box ? max$3(box.__updateRenderSpread(), spread) : spread;
|
|
8367
8313
|
}
|
|
8368
8314
|
};
|
|
8369
8315
|
|
|
8370
|
-
const D = DragBoundsHelper;
|
|
8371
|
-
|
|
8372
8316
|
const {stintSet: stintSet$1} = DataHelper;
|
|
8373
8317
|
|
|
8374
8318
|
const UIRender = {
|
|
@@ -10034,6 +9978,102 @@ class UIEvent extends Event {
|
|
|
10034
9978
|
}
|
|
10035
9979
|
}
|
|
10036
9980
|
|
|
9981
|
+
const {float: float, sign: sign} = MathHelper, {min: min, max: max$2, abs: abs$2} = Math;
|
|
9982
|
+
|
|
9983
|
+
const tempContent = new Bounds, tempDragBounds = new Bounds;
|
|
9984
|
+
|
|
9985
|
+
const DragBoundsHelper = {
|
|
9986
|
+
limitMove(leaf, move) {
|
|
9987
|
+
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
9988
|
+
if (dragBounds) D.getValidMove(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, move, true);
|
|
9989
|
+
D.axisMove(leaf, move);
|
|
9990
|
+
},
|
|
9991
|
+
limitScaleOf(leaf, origin, scale, lockRatio) {
|
|
9992
|
+
const {dragBounds: dragBounds, dragBoundsType: dragBoundsType} = leaf;
|
|
9993
|
+
if (dragBounds) D.getValidScaleOf(leaf.__localBoxBounds, D.getDragBounds(leaf), dragBoundsType, leaf.getLocalPointByInner(leaf.getInnerPointByBox(origin)), scale, lockRatio, true);
|
|
9994
|
+
},
|
|
9995
|
+
axisMove(leaf, move) {
|
|
9996
|
+
const {draggable: draggable} = leaf;
|
|
9997
|
+
if (draggable === "x") move.y = 0;
|
|
9998
|
+
if (draggable === "y") move.x = 0;
|
|
9999
|
+
},
|
|
10000
|
+
getDragBounds(leaf) {
|
|
10001
|
+
const {dragBounds: dragBounds} = leaf;
|
|
10002
|
+
return dragBounds === "parent" ? leaf.parent.boxBounds : dragBounds;
|
|
10003
|
+
},
|
|
10004
|
+
isInnerMode(content, dragBounds, dragBoundsType, sideType) {
|
|
10005
|
+
return dragBoundsType === "inner" || dragBoundsType === "auto" && content[sideType] > dragBounds[sideType];
|
|
10006
|
+
},
|
|
10007
|
+
getValidMove(content, dragBounds, dragBoundsType, move, change) {
|
|
10008
|
+
const x = content.x + move.x, y = content.y + move.y, right = x + content.width, bottom = y + content.height;
|
|
10009
|
+
const boundsRight = dragBounds.x + dragBounds.width, boundsBottom = dragBounds.y + dragBounds.height;
|
|
10010
|
+
if (!change) move = Object.assign({}, move);
|
|
10011
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
10012
|
+
if (x > dragBounds.x) move.x += dragBounds.x - x; else if (right < boundsRight) move.x += boundsRight - right;
|
|
10013
|
+
} else {
|
|
10014
|
+
if (x < dragBounds.x) move.x += dragBounds.x - x; else if (right > boundsRight) move.x += boundsRight - right;
|
|
10015
|
+
}
|
|
10016
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
10017
|
+
if (y > dragBounds.y) move.y += dragBounds.y - y; else if (bottom < boundsBottom) move.y += boundsBottom - bottom;
|
|
10018
|
+
} else {
|
|
10019
|
+
if (y < dragBounds.y) move.y += dragBounds.y - y; else if (bottom > boundsBottom) move.y += boundsBottom - bottom;
|
|
10020
|
+
}
|
|
10021
|
+
move.x = float(move.x);
|
|
10022
|
+
move.y = float(move.y);
|
|
10023
|
+
return move;
|
|
10024
|
+
},
|
|
10025
|
+
getValidScaleOf(content, dragBounds, dragBoundsType, origin, scale, lockRatio, change) {
|
|
10026
|
+
if (!change) scale = Object.assign({}, scale);
|
|
10027
|
+
tempDragBounds.set(dragBounds);
|
|
10028
|
+
tempContent.set(content).scaleOf(origin, scale.x, scale.y);
|
|
10029
|
+
const originLeftScale = (origin.x - content.x) / content.width, originRightScale = 1 - originLeftScale;
|
|
10030
|
+
const originTopScale = (origin.y - content.y) / content.height, originBottomScale = 1 - originTopScale;
|
|
10031
|
+
let correctScaleX, correctScaleY, aScale, bScale, aSize, bSize;
|
|
10032
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "width")) {
|
|
10033
|
+
correctScaleX = scale.x < 0 ? 1 / scale.x : 1;
|
|
10034
|
+
if (scale.x < 0) tempContent.scaleOf(origin, correctScaleX, 1);
|
|
10035
|
+
aSize = float(tempContent.minX - tempDragBounds.minX);
|
|
10036
|
+
bSize = float(tempDragBounds.maxX - tempContent.maxX);
|
|
10037
|
+
aScale = originLeftScale && aSize > 0 ? 1 + aSize / (originLeftScale * tempContent.width) : 1;
|
|
10038
|
+
bScale = originRightScale && bSize > 0 ? 1 + bSize / (originRightScale * tempContent.width) : 1;
|
|
10039
|
+
correctScaleX *= max$2(aScale, bScale);
|
|
10040
|
+
} else {
|
|
10041
|
+
if (scale.x < 0) tempContent.unsign();
|
|
10042
|
+
aSize = float(tempDragBounds.minX - tempContent.minX);
|
|
10043
|
+
bSize = float(tempContent.maxX - tempDragBounds.maxX);
|
|
10044
|
+
aScale = originLeftScale && aSize > 0 ? 1 - aSize / (originLeftScale * tempContent.width) : 1;
|
|
10045
|
+
bScale = originRightScale && bSize > 0 ? 1 - bSize / (originRightScale * tempContent.width) : 1;
|
|
10046
|
+
correctScaleX = min(aScale, bScale);
|
|
10047
|
+
}
|
|
10048
|
+
if (D.isInnerMode(content, dragBounds, dragBoundsType, "height")) {
|
|
10049
|
+
correctScaleY = scale.y < 0 ? 1 / scale.y : 1;
|
|
10050
|
+
if (scale.y < 0) tempContent.scaleOf(origin, 1, correctScaleY);
|
|
10051
|
+
aSize = float(tempContent.minY - tempDragBounds.minY);
|
|
10052
|
+
bSize = float(tempDragBounds.maxY - tempContent.maxY);
|
|
10053
|
+
aScale = originTopScale && aSize > 0 ? 1 + aSize / (originTopScale * tempContent.height) : 1;
|
|
10054
|
+
bScale = originBottomScale && bSize > 0 ? 1 + bSize / (originBottomScale * tempContent.height) : 1;
|
|
10055
|
+
correctScaleY *= max$2(aScale, bScale);
|
|
10056
|
+
if (lockRatio) {
|
|
10057
|
+
aScale = max$2(abs$2(correctScaleX), abs$2(correctScaleY));
|
|
10058
|
+
correctScaleX = sign(correctScaleX) * aScale;
|
|
10059
|
+
correctScaleY = sign(correctScaleY) * aScale;
|
|
10060
|
+
}
|
|
10061
|
+
} else {
|
|
10062
|
+
if (scale.y < 0) tempContent.unsign();
|
|
10063
|
+
aSize = float(tempDragBounds.minY - tempContent.minY);
|
|
10064
|
+
bSize = float(tempContent.maxY - tempDragBounds.maxY);
|
|
10065
|
+
aScale = originTopScale && aSize > 0 ? 1 - aSize / (originTopScale * tempContent.height) : 1;
|
|
10066
|
+
bScale = originBottomScale && bSize > 0 ? 1 - bSize / (originBottomScale * tempContent.height) : 1;
|
|
10067
|
+
correctScaleY = min(aScale, bScale);
|
|
10068
|
+
}
|
|
10069
|
+
scale.x *= isFinite(correctScaleX) ? correctScaleX : 1;
|
|
10070
|
+
scale.y *= isFinite(correctScaleY) ? correctScaleY : 1;
|
|
10071
|
+
return scale;
|
|
10072
|
+
}
|
|
10073
|
+
};
|
|
10074
|
+
|
|
10075
|
+
const D = DragBoundsHelper;
|
|
10076
|
+
|
|
10037
10077
|
let PointerEvent$1 = class PointerEvent extends UIEvent {};
|
|
10038
10078
|
|
|
10039
10079
|
PointerEvent$1.POINTER = "pointer";
|
|
@@ -11906,7 +11946,14 @@ const PaintModule = {
|
|
|
11906
11946
|
|
|
11907
11947
|
let origin = {}, tempMatrix$1 = getMatrixData();
|
|
11908
11948
|
|
|
11909
|
-
const {get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
11949
|
+
const {get: get$3, set: set, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
11950
|
+
|
|
11951
|
+
function stretchMode(data, box, scaleX, scaleY) {
|
|
11952
|
+
const transform = get$3();
|
|
11953
|
+
translate$1(transform, box.x, box.y);
|
|
11954
|
+
if (scaleX) scaleHelper(transform, scaleX, scaleY);
|
|
11955
|
+
data.transform = transform;
|
|
11956
|
+
}
|
|
11910
11957
|
|
|
11911
11958
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
11912
11959
|
const transform = get$3();
|
|
@@ -11923,8 +11970,11 @@ function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipScaleX, c
|
|
|
11923
11970
|
const transform = get$3();
|
|
11924
11971
|
layout(transform, box, x, y, scaleX, scaleY, rotation, skew);
|
|
11925
11972
|
if (clipScaleX) {
|
|
11926
|
-
|
|
11927
|
-
|
|
11973
|
+
if (rotation || skew) {
|
|
11974
|
+
set(tempMatrix$1);
|
|
11975
|
+
scaleOfOuter$1(tempMatrix$1, box, clipScaleX, clipScaleY);
|
|
11976
|
+
multiplyParent(transform, tempMatrix$1);
|
|
11977
|
+
} else scaleOfOuter$1(transform, box, clipScaleX, clipScaleY);
|
|
11928
11978
|
}
|
|
11929
11979
|
data.transform = transform;
|
|
11930
11980
|
}
|
|
@@ -12020,7 +12070,10 @@ function getPatternData(paint, box, image) {
|
|
|
12020
12070
|
if (offset) PointHelper.move(tempImage, offset);
|
|
12021
12071
|
switch (mode) {
|
|
12022
12072
|
case "stretch":
|
|
12023
|
-
if (!sameBox)
|
|
12073
|
+
if (!sameBox) {
|
|
12074
|
+
scaleX = box.width / width, scaleY = box.height / height;
|
|
12075
|
+
stretchMode(data, box, scaleX, scaleY);
|
|
12076
|
+
}
|
|
12024
12077
|
break;
|
|
12025
12078
|
|
|
12026
12079
|
case "normal":
|
|
@@ -12029,7 +12082,7 @@ function getPatternData(paint, box, image) {
|
|
|
12029
12082
|
let clipScaleX, clipScaleY;
|
|
12030
12083
|
if (clipSize) clipScaleX = box.width / clipSize.width, clipScaleY = box.height / clipSize.height;
|
|
12031
12084
|
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, clipScaleX, clipScaleY);
|
|
12032
|
-
if (clipScaleX) scaleX = scaleX ? scaleX * clipScaleX :
|
|
12085
|
+
if (clipScaleX) scaleX = scaleX ? scaleX * clipScaleX : clipScaleX, scaleY = scaleY ? scaleY * clipScaleY : clipScaleY;
|
|
12033
12086
|
}
|
|
12034
12087
|
break;
|
|
12035
12088
|
|
|
@@ -12046,17 +12099,14 @@ function getPatternData(paint, box, image) {
|
|
|
12046
12099
|
if (scaleX) fillOrFitMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
|
|
12047
12100
|
}
|
|
12048
12101
|
if (!data.transform) {
|
|
12049
|
-
if (box.x || box.y)
|
|
12050
|
-
data.transform = get$2();
|
|
12051
|
-
translate(data.transform, box.x, box.y);
|
|
12052
|
-
}
|
|
12102
|
+
if (box.x || box.y) translate(data.transform = get$2(), box.x, box.y);
|
|
12053
12103
|
}
|
|
12054
|
-
|
|
12104
|
+
data.width = width;
|
|
12105
|
+
data.height = height;
|
|
12106
|
+
if (scaleX) {
|
|
12055
12107
|
data.scaleX = scaleX;
|
|
12056
12108
|
data.scaleY = scaleY;
|
|
12057
12109
|
}
|
|
12058
|
-
data.width = width;
|
|
12059
|
-
data.height = height;
|
|
12060
12110
|
if (opacity) data.opacity = opacity;
|
|
12061
12111
|
if (filters) data.filters = filters;
|
|
12062
12112
|
if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
|
|
@@ -12188,7 +12238,7 @@ function ignoreRender(ui, value) {
|
|
|
12188
12238
|
|
|
12189
12239
|
const {get: get$1, scale: scale, copy: copy$1} = MatrixHelper;
|
|
12190
12240
|
|
|
12191
|
-
const {floor: floor, ceil: ceil, max: max$1, abs: abs} = Math;
|
|
12241
|
+
const {floor: floor, ceil: ceil, max: max$1, abs: abs$1} = Math;
|
|
12192
12242
|
|
|
12193
12243
|
function createPattern(ui, paint, pixelRatio) {
|
|
12194
12244
|
let {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
@@ -12199,8 +12249,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
12199
12249
|
scaleX *= pixelRatio;
|
|
12200
12250
|
scaleY *= pixelRatio;
|
|
12201
12251
|
if (sx) {
|
|
12202
|
-
sx = abs(sx);
|
|
12203
|
-
sy = abs(sy);
|
|
12252
|
+
sx = abs$1(sx);
|
|
12253
|
+
sy = abs$1(sy);
|
|
12204
12254
|
imageMatrix = get$1();
|
|
12205
12255
|
copy$1(imageMatrix, transform);
|
|
12206
12256
|
scale(imageMatrix, 1 / sx, 1 / sy);
|
|
@@ -12342,6 +12392,7 @@ const PaintImageModule = {
|
|
|
12342
12392
|
recycleImage: recycleImage,
|
|
12343
12393
|
createData: createData,
|
|
12344
12394
|
getPatternData: getPatternData,
|
|
12395
|
+
stretchMode: stretchMode,
|
|
12345
12396
|
fillOrFitMode: fillOrFitMode,
|
|
12346
12397
|
clipMode: clipMode,
|
|
12347
12398
|
repeatMode: repeatMode
|
|
@@ -12452,7 +12503,7 @@ const PaintGradientModule = {
|
|
|
12452
12503
|
getTransform: getTransform
|
|
12453
12504
|
};
|
|
12454
12505
|
|
|
12455
|
-
const {copy: copy, move: move, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max} = Math;
|
|
12506
|
+
const {copy: copy, move: move, toOffsetOutBounds: toOffsetOutBounds$1} = BoundsHelper, {max: max, abs: abs} = Math;
|
|
12456
12507
|
|
|
12457
12508
|
const tempBounds = {}, tempMatrix = new Matrix;
|
|
12458
12509
|
|
|
@@ -12472,8 +12523,8 @@ function shadow(ui, current, shape) {
|
|
|
12472
12523
|
const sx = Math.abs(nowWorld.scaleX);
|
|
12473
12524
|
if (sx > 1) otherScale = 1 / sx;
|
|
12474
12525
|
}
|
|
12475
|
-
other.setWorldShadow(offsetOutBounds$1.offsetX + item.x * scaleX * otherScale, offsetOutBounds$1.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale, ColorConvert.string(item.color));
|
|
12476
|
-
transform = getShadowTransform(ui, other, shape, item, offsetOutBounds$1, otherScale);
|
|
12526
|
+
other.setWorldShadow(offsetOutBounds$1.offsetX + (item.x || 0) * scaleX * otherScale, offsetOutBounds$1.offsetY + (item.y || 0) * scaleY * otherScale, (item.blur || 0) * scaleX * otherScale, ColorConvert.string(item.color));
|
|
12527
|
+
transform = Effect.getShadowTransform(ui, other, shape, item, offsetOutBounds$1, otherScale);
|
|
12477
12528
|
if (transform) other.setTransform(transform);
|
|
12478
12529
|
drawWorldShadow(other, offsetOutBounds$1, shape);
|
|
12479
12530
|
if (transform) other.resetTransform();
|
|
@@ -12496,7 +12547,7 @@ function shadow(ui, current, shape) {
|
|
|
12496
12547
|
function getShadowRenderSpread(_ui, shadow) {
|
|
12497
12548
|
let top = 0, right = 0, bottom = 0, left = 0, x, y, spread, blur;
|
|
12498
12549
|
shadow.forEach(item => {
|
|
12499
|
-
x = item.x || 0, y = item.y || 0,
|
|
12550
|
+
x = item.x || 0, y = item.y || 0, blur = (item.blur || 0) * 1.5, spread = abs(item.spread || 0);
|
|
12500
12551
|
top = max(top, spread + blur - y);
|
|
12501
12552
|
right = max(right, spread + blur + x);
|
|
12502
12553
|
bottom = max(bottom, spread + blur + y);
|
|
@@ -12549,8 +12600,8 @@ function innerShadow(ui, current, shape) {
|
|
|
12549
12600
|
if (sx > 1) otherScale = 1 / sx;
|
|
12550
12601
|
}
|
|
12551
12602
|
other.save();
|
|
12552
|
-
other.setWorldShadow(offsetOutBounds.offsetX + item.x * scaleX * otherScale, offsetOutBounds.offsetY + item.y * scaleY * otherScale, item.blur * scaleX * otherScale);
|
|
12553
|
-
transform = getShadowTransform(ui, other, shape, item, offsetOutBounds, otherScale, true);
|
|
12603
|
+
other.setWorldShadow(offsetOutBounds.offsetX + (item.x || 0) * scaleX * otherScale, offsetOutBounds.offsetY + (item.y || 0) * scaleY * otherScale, (item.blur || 0) * scaleX * otherScale);
|
|
12604
|
+
transform = Effect.getShadowTransform(ui, other, shape, item, offsetOutBounds, otherScale, true);
|
|
12554
12605
|
if (transform) other.setTransform(transform);
|
|
12555
12606
|
drawWorldShadow(other, offsetOutBounds, shape);
|
|
12556
12607
|
other.restore();
|
|
@@ -13186,6 +13237,7 @@ const TextConvertModule = {
|
|
|
13186
13237
|
};
|
|
13187
13238
|
|
|
13188
13239
|
function string(color, opacity) {
|
|
13240
|
+
if (!color) return "#000";
|
|
13189
13241
|
const doOpacity = isNumber(opacity) && opacity < 1;
|
|
13190
13242
|
if (isString(color)) {
|
|
13191
13243
|
if (doOpacity && ColorConvert.object) color = ColorConvert.object(color); else return color;
|