@leafer-ui/miniapp 1.6.7 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/miniapp.cjs +86 -50
- package/dist/miniapp.esm.js +87 -51
- package/dist/miniapp.esm.min.js +1 -1
- package/dist/miniapp.esm.min.js.map +1 -1
- package/dist/miniapp.min.cjs +1 -1
- package/dist/miniapp.min.cjs.map +1 -1
- package/dist/miniapp.module.js +313 -192
- package/dist/miniapp.module.min.js +1 -1
- package/dist/miniapp.module.min.js.map +1 -1
- package/package.json +12 -12
package/dist/miniapp.module.js
CHANGED
|
@@ -43,7 +43,7 @@ const IncrementId = {
|
|
|
43
43
|
};
|
|
44
44
|
const I$2 = IncrementId;
|
|
45
45
|
|
|
46
|
-
const { round: round$3, pow: pow$1, PI: PI$
|
|
46
|
+
const { round: round$3, pow: pow$1, PI: PI$3 } = Math;
|
|
47
47
|
const MathHelper = {
|
|
48
48
|
within(value, min, max) {
|
|
49
49
|
if (typeof min === 'object')
|
|
@@ -139,9 +139,9 @@ const MathHelper = {
|
|
|
139
139
|
function randInt(num) {
|
|
140
140
|
return Math.round(Math.random() * num);
|
|
141
141
|
}
|
|
142
|
-
const OneRadian = PI$
|
|
143
|
-
const PI2 = PI$
|
|
144
|
-
const PI_2 = PI$
|
|
142
|
+
const OneRadian = PI$3 / 180;
|
|
143
|
+
const PI2 = PI$3 * 2;
|
|
144
|
+
const PI_2 = PI$3 / 2;
|
|
145
145
|
function getPointData() { return { x: 0, y: 0 }; }
|
|
146
146
|
function getBoundsData() { return { x: 0, y: 0, width: 0, height: 0 }; }
|
|
147
147
|
function getMatrixData() { return { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; }
|
|
@@ -436,7 +436,7 @@ const MatrixHelper = {
|
|
|
436
436
|
const M$6 = MatrixHelper;
|
|
437
437
|
|
|
438
438
|
const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3 } = MatrixHelper;
|
|
439
|
-
const { sin: sin$4, cos: cos$4, abs: abs$
|
|
439
|
+
const { sin: sin$4, cos: cos$4, abs: abs$3, sqrt: sqrt$2, atan2: atan2$2, min: min$1, round: round$2 } = Math;
|
|
440
440
|
const PointHelper = {
|
|
441
441
|
defaultPoint: getPointData(),
|
|
442
442
|
tempPoint: {},
|
|
@@ -531,8 +531,8 @@ const PointHelper = {
|
|
|
531
531
|
return getDistanceFrom(t.x, t.y, point.x, point.y);
|
|
532
532
|
},
|
|
533
533
|
getDistanceFrom(x1, y1, x2, y2) {
|
|
534
|
-
const x = abs$
|
|
535
|
-
const y = abs$
|
|
534
|
+
const x = abs$3(x2 - x1);
|
|
535
|
+
const y = abs$3(y2 - y1);
|
|
536
536
|
return sqrt$2(x * x + y * y);
|
|
537
537
|
},
|
|
538
538
|
getMinDistanceFrom(x1, y1, x2, y2, x3, y3) {
|
|
@@ -549,10 +549,11 @@ const PointHelper = {
|
|
|
549
549
|
getRadianFrom(fromX, fromY, originX, originY, toX, toY, toOriginX, toOriginY) {
|
|
550
550
|
if (toOriginX === undefined)
|
|
551
551
|
toOriginX = originX, toOriginY = originY;
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
const
|
|
555
|
-
|
|
552
|
+
const a = fromX - originX;
|
|
553
|
+
const b = fromY - originY;
|
|
554
|
+
const c = toX - toOriginX;
|
|
555
|
+
const d = toY - toOriginY;
|
|
556
|
+
return Math.atan2(a * d - b * c, a * c + b * d);
|
|
556
557
|
},
|
|
557
558
|
getAtan2(t, to) {
|
|
558
559
|
return atan2$2(to.y - t.y, to.x - t.x);
|
|
@@ -762,7 +763,7 @@ class Matrix {
|
|
|
762
763
|
MatrixHelper.reset(this);
|
|
763
764
|
}
|
|
764
765
|
}
|
|
765
|
-
const tempMatrix = new Matrix();
|
|
766
|
+
const tempMatrix$1 = new Matrix();
|
|
766
767
|
|
|
767
768
|
const TwoPointBoundsHelper = {
|
|
768
769
|
tempPointBounds: {},
|
|
@@ -859,6 +860,12 @@ const AroundHelper = {
|
|
|
859
860
|
}
|
|
860
861
|
if (!onlyBoxSize)
|
|
861
862
|
to.x += box.x, to.y += box.y;
|
|
863
|
+
},
|
|
864
|
+
getPoint(around, box, to) {
|
|
865
|
+
if (!to)
|
|
866
|
+
to = {};
|
|
867
|
+
AroundHelper.toPoint(around, box, to, true);
|
|
868
|
+
return to;
|
|
862
869
|
}
|
|
863
870
|
};
|
|
864
871
|
function get$4(around) {
|
|
@@ -1787,10 +1794,13 @@ function contextAttr(realName) {
|
|
|
1787
1794
|
return (target, key) => {
|
|
1788
1795
|
if (!realName)
|
|
1789
1796
|
realName = key;
|
|
1790
|
-
|
|
1797
|
+
const property = {
|
|
1791
1798
|
get() { return this.context[realName]; },
|
|
1792
1799
|
set(value) { this.context[realName] = value; }
|
|
1793
|
-
}
|
|
1800
|
+
};
|
|
1801
|
+
if (key === 'strokeCap')
|
|
1802
|
+
property.set = function (value) { this.context[realName] = value === 'none' ? 'butt' : value; };
|
|
1803
|
+
Object.defineProperty(target, key, property);
|
|
1794
1804
|
};
|
|
1795
1805
|
}
|
|
1796
1806
|
const contextMethodNameList = [];
|
|
@@ -2066,15 +2076,15 @@ __decorate([
|
|
|
2066
2076
|
contextMethod()
|
|
2067
2077
|
], Canvas$1.prototype, "strokeText", null);
|
|
2068
2078
|
|
|
2069
|
-
const { copy: copy$9, multiplyParent: multiplyParent$
|
|
2079
|
+
const { copy: copy$9, multiplyParent: multiplyParent$4 } = MatrixHelper, { round: round$1 } = Math;
|
|
2070
2080
|
const minSize = { width: 1, height: 1, pixelRatio: 1 };
|
|
2071
2081
|
const canvasSizeAttrs = ['width', 'height', 'pixelRatio'];
|
|
2072
2082
|
class LeaferCanvasBase extends Canvas$1 {
|
|
2073
2083
|
get width() { return this.size.width; }
|
|
2074
2084
|
get height() { return this.size.height; }
|
|
2075
2085
|
get pixelRatio() { return this.size.pixelRatio; }
|
|
2076
|
-
get pixelWidth() { return this.width * this.pixelRatio; }
|
|
2077
|
-
get pixelHeight() { return this.height * this.pixelRatio; }
|
|
2086
|
+
get pixelWidth() { return this.width * this.pixelRatio || 0; }
|
|
2087
|
+
get pixelHeight() { return this.height * this.pixelRatio || 0; }
|
|
2078
2088
|
get pixelSnap() { return this.config.pixelSnap; }
|
|
2079
2089
|
set pixelSnap(value) { this.config.pixelSnap = value; }
|
|
2080
2090
|
get allowBackgroundColor() { return this.view && this.parentView; }
|
|
@@ -2139,7 +2149,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2139
2149
|
setWorld(matrix, parentMatrix) {
|
|
2140
2150
|
const { pixelRatio, pixelSnap } = this, w = this.worldTransform;
|
|
2141
2151
|
if (parentMatrix)
|
|
2142
|
-
multiplyParent$
|
|
2152
|
+
multiplyParent$4(matrix, parentMatrix, w);
|
|
2143
2153
|
w.a = matrix.a * pixelRatio;
|
|
2144
2154
|
w.b = matrix.b * pixelRatio;
|
|
2145
2155
|
w.c = matrix.c * pixelRatio;
|
|
@@ -2161,20 +2171,33 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2161
2171
|
if (w)
|
|
2162
2172
|
this.setTransform(w.a, w.b, w.c, w.d, w.e, w.f);
|
|
2163
2173
|
}
|
|
2164
|
-
setStroke(color, strokeWidth, options) {
|
|
2174
|
+
setStroke(color, strokeWidth, options, childOptions) {
|
|
2165
2175
|
if (strokeWidth)
|
|
2166
2176
|
this.strokeWidth = strokeWidth;
|
|
2167
2177
|
if (color)
|
|
2168
2178
|
this.strokeStyle = color;
|
|
2169
2179
|
if (options)
|
|
2170
|
-
this.setStrokeOptions(options);
|
|
2171
|
-
}
|
|
2172
|
-
setStrokeOptions(options) {
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2180
|
+
this.setStrokeOptions(options, childOptions);
|
|
2181
|
+
}
|
|
2182
|
+
setStrokeOptions(options, childOptions) {
|
|
2183
|
+
let { strokeCap, strokeJoin, dashPattern, dashOffset, miterLimit } = options;
|
|
2184
|
+
if (childOptions) {
|
|
2185
|
+
if (childOptions.strokeCap)
|
|
2186
|
+
strokeCap = childOptions.strokeCap;
|
|
2187
|
+
if (childOptions.strokeJoin)
|
|
2188
|
+
strokeJoin = childOptions.strokeJoin;
|
|
2189
|
+
if (childOptions.dashPattern !== undefined)
|
|
2190
|
+
dashPattern = childOptions.dashPattern;
|
|
2191
|
+
if (childOptions.dashOffset !== undefined)
|
|
2192
|
+
dashOffset = childOptions.dashOffset;
|
|
2193
|
+
if (childOptions.miterLimit)
|
|
2194
|
+
miterLimit = childOptions.miterLimit;
|
|
2195
|
+
}
|
|
2196
|
+
this.strokeCap = strokeCap;
|
|
2197
|
+
this.strokeJoin = strokeJoin;
|
|
2198
|
+
this.dashPattern = dashPattern;
|
|
2199
|
+
this.dashOffset = dashOffset;
|
|
2200
|
+
this.miterLimit = miterLimit;
|
|
2178
2201
|
}
|
|
2179
2202
|
saveBlendMode(blendMode) {
|
|
2180
2203
|
this.savedBlendMode = this.blendMode;
|
|
@@ -2408,7 +2431,7 @@ const RectHelper = {
|
|
|
2408
2431
|
}
|
|
2409
2432
|
};
|
|
2410
2433
|
|
|
2411
|
-
const { sin: sin$3, cos: cos$3, atan2: atan2$1, ceil: ceil$1, abs: abs$
|
|
2434
|
+
const { sin: sin$3, cos: cos$3, atan2: atan2$1, ceil: ceil$1, abs: abs$2, PI: PI$2, sqrt: sqrt$1, pow } = Math;
|
|
2412
2435
|
const { setPoint: setPoint$1, addPoint: addPoint$1 } = TwoPointBoundsHelper;
|
|
2413
2436
|
const { set, toNumberPoints } = PointHelper;
|
|
2414
2437
|
const { M: M$5, L: L$6, C: C$4, Q: Q$4, Z: Z$5 } = PathCommandMap;
|
|
@@ -2483,7 +2506,7 @@ const BezierHelper = {
|
|
|
2483
2506
|
let totalRadian = endRadian - startRadian;
|
|
2484
2507
|
if (totalRadian < 0)
|
|
2485
2508
|
totalRadian += PI2;
|
|
2486
|
-
if (totalRadian === PI$2 || (abs$
|
|
2509
|
+
if (totalRadian === PI$2 || (abs$2(BAx + BAy) < 1.e-12) || (abs$2(CBx + CBy) < 1.e-12)) {
|
|
2487
2510
|
if (data)
|
|
2488
2511
|
data.push(L$6, x1, y1);
|
|
2489
2512
|
if (setPointBounds) {
|
|
@@ -2525,7 +2548,7 @@ const BezierHelper = {
|
|
|
2525
2548
|
totalRadian -= PI2;
|
|
2526
2549
|
if (anticlockwise)
|
|
2527
2550
|
totalRadian -= PI2;
|
|
2528
|
-
const parts = ceil$1(abs$
|
|
2551
|
+
const parts = ceil$1(abs$2(totalRadian / PI_2));
|
|
2529
2552
|
const partRadian = totalRadian / parts;
|
|
2530
2553
|
const partRadian4Sin = sin$3(partRadian / 4);
|
|
2531
2554
|
const control = 8 / 3 * partRadian4Sin * partRadian4Sin / sin$3(partRadian / 2);
|
|
@@ -2970,7 +2993,7 @@ const { current, pushData, copyData } = PathConvert;
|
|
|
2970
2993
|
|
|
2971
2994
|
const { M: M$3, L: L$4, C: C$2, Q: Q$2, Z: Z$3, N: N$2, D: D$2, X: X$2, G: G$2, F: F$3, O: O$2, P: P$2, U: U$2 } = PathCommandMap;
|
|
2972
2995
|
const { getMinDistanceFrom, getRadianFrom } = PointHelper;
|
|
2973
|
-
const { tan, min, abs: abs$
|
|
2996
|
+
const { tan, min, abs: abs$1 } = Math;
|
|
2974
2997
|
const startPoint = {};
|
|
2975
2998
|
const PathCommandDataHelper = {
|
|
2976
2999
|
beginPath(data) {
|
|
@@ -3033,7 +3056,7 @@ const PathCommandDataHelper = {
|
|
|
3033
3056
|
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
|
|
3034
3057
|
if (lastX !== undefined) {
|
|
3035
3058
|
const d = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2);
|
|
3036
|
-
radius = min(radius, min(d / 2, d / 2 * abs$
|
|
3059
|
+
radius = min(radius, min(d / 2, d / 2 * abs$1(tan(getRadianFrom(lastX, lastY, x1, y1, x2, y2) / 2))));
|
|
3037
3060
|
}
|
|
3038
3061
|
data.push(U$2, x1, y1, x2, y2, radius);
|
|
3039
3062
|
},
|
|
@@ -3339,7 +3362,7 @@ const { getCenterX, getCenterY } = PointHelper;
|
|
|
3339
3362
|
const { arcTo } = PathCommandDataHelper;
|
|
3340
3363
|
const PathCorner = {
|
|
3341
3364
|
smooth(data, cornerRadius, _cornerSmoothing) {
|
|
3342
|
-
let command, commandLen;
|
|
3365
|
+
let command, lastCommand, commandLen;
|
|
3343
3366
|
let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
|
|
3344
3367
|
const len = data.length;
|
|
3345
3368
|
const smooth = [];
|
|
@@ -3377,8 +3400,10 @@ const PathCorner = {
|
|
|
3377
3400
|
lastY = y;
|
|
3378
3401
|
break;
|
|
3379
3402
|
case Z:
|
|
3380
|
-
|
|
3381
|
-
|
|
3403
|
+
if (lastCommand !== Z) {
|
|
3404
|
+
arcTo(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY);
|
|
3405
|
+
smooth.push(Z);
|
|
3406
|
+
}
|
|
3382
3407
|
i += 1;
|
|
3383
3408
|
break;
|
|
3384
3409
|
default:
|
|
@@ -3387,6 +3412,7 @@ const PathCorner = {
|
|
|
3387
3412
|
smooth.push(data[i + j]);
|
|
3388
3413
|
i += commandLen;
|
|
3389
3414
|
}
|
|
3415
|
+
lastCommand = command;
|
|
3390
3416
|
}
|
|
3391
3417
|
if (command !== Z) {
|
|
3392
3418
|
smooth[1] = startX;
|
|
@@ -3883,12 +3909,12 @@ class LeaferImage {
|
|
|
3883
3909
|
try {
|
|
3884
3910
|
if (transform && pattern.setTransform) {
|
|
3885
3911
|
pattern.setTransform(transform);
|
|
3886
|
-
transform =
|
|
3912
|
+
transform = undefined;
|
|
3887
3913
|
}
|
|
3888
3914
|
}
|
|
3889
3915
|
catch (_a) { }
|
|
3890
3916
|
if (paint)
|
|
3891
|
-
paint
|
|
3917
|
+
DataHelper.stintSet(paint, 'transform', transform);
|
|
3892
3918
|
return pattern;
|
|
3893
3919
|
}
|
|
3894
3920
|
destroy() {
|
|
@@ -3906,6 +3932,13 @@ function defineKey(target, key, descriptor, noConfigurable) {
|
|
|
3906
3932
|
function getDescriptor(object, name) {
|
|
3907
3933
|
return Object.getOwnPropertyDescriptor(object, name);
|
|
3908
3934
|
}
|
|
3935
|
+
function createDescriptor(key, defaultValue) {
|
|
3936
|
+
const privateKey = '_' + key;
|
|
3937
|
+
return {
|
|
3938
|
+
get() { const v = this[privateKey]; return v === undefined ? defaultValue : v; },
|
|
3939
|
+
set(value) { this[privateKey] = value; }
|
|
3940
|
+
};
|
|
3941
|
+
}
|
|
3909
3942
|
function getNames(object) {
|
|
3910
3943
|
return Object.getOwnPropertyNames(object);
|
|
3911
3944
|
}
|
|
@@ -3993,10 +4026,14 @@ function pathInputType(defaultValue) {
|
|
|
3993
4026
|
}));
|
|
3994
4027
|
}
|
|
3995
4028
|
const pathType = boundsType;
|
|
3996
|
-
function affectStrokeBoundsType(defaultValue) {
|
|
4029
|
+
function affectStrokeBoundsType(defaultValue, useStroke) {
|
|
3997
4030
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
3998
4031
|
set(value) {
|
|
3999
|
-
this.__setAttr(key, value)
|
|
4032
|
+
if (this.__setAttr(key, value)) {
|
|
4033
|
+
doStrokeType(this);
|
|
4034
|
+
if (useStroke)
|
|
4035
|
+
this.__.__useStroke = true;
|
|
4036
|
+
}
|
|
4000
4037
|
}
|
|
4001
4038
|
}));
|
|
4002
4039
|
}
|
|
@@ -4134,15 +4171,7 @@ function defineDataProcessor(target, key, defaultValue) {
|
|
|
4134
4171
|
const data = target.__DataProcessor.prototype;
|
|
4135
4172
|
const computedKey = '_' + key;
|
|
4136
4173
|
const setMethodName = getSetMethodName(key);
|
|
4137
|
-
const property =
|
|
4138
|
-
get() {
|
|
4139
|
-
const v = this[computedKey];
|
|
4140
|
-
return v === undefined ? defaultValue : v;
|
|
4141
|
-
},
|
|
4142
|
-
set(value) {
|
|
4143
|
-
this[computedKey] = value;
|
|
4144
|
-
}
|
|
4145
|
-
};
|
|
4174
|
+
const property = createDescriptor(key, defaultValue);
|
|
4146
4175
|
if (defaultValue === undefined) {
|
|
4147
4176
|
property.get = function () { return this[computedKey]; };
|
|
4148
4177
|
}
|
|
@@ -4257,7 +4286,7 @@ function registerUIEvent() {
|
|
|
4257
4286
|
};
|
|
4258
4287
|
}
|
|
4259
4288
|
|
|
4260
|
-
const { copy: copy$7, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$
|
|
4289
|
+
const { copy: copy$7, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$3, divideParent, getLayout } = MatrixHelper;
|
|
4261
4290
|
const matrix$1 = {}, { round } = Math;
|
|
4262
4291
|
const LeafHelper = {
|
|
4263
4292
|
updateAllMatrix(leaf, checkAutoLayout, waitAutoLayout) {
|
|
@@ -4329,6 +4358,14 @@ const LeafHelper = {
|
|
|
4329
4358
|
}
|
|
4330
4359
|
return true;
|
|
4331
4360
|
},
|
|
4361
|
+
copyCanvasByWorld(leaf, currentCanvas, fromCanvas, fromWorld, blendMode, onlyResetTransform) {
|
|
4362
|
+
if (!fromWorld)
|
|
4363
|
+
fromWorld = leaf.__nowWorld;
|
|
4364
|
+
if (leaf.__worldFlipped || Platform.fullImageShadow)
|
|
4365
|
+
currentCanvas.copyWorldByReset(fromCanvas, fromWorld, leaf.__nowWorld, blendMode, onlyResetTransform);
|
|
4366
|
+
else
|
|
4367
|
+
currentCanvas.copyWorldToInner(fromCanvas, fromWorld, leaf.__layout.renderBounds, blendMode);
|
|
4368
|
+
},
|
|
4332
4369
|
moveWorld(t, x, y = 0, isInnerPoint, transition) {
|
|
4333
4370
|
const local = typeof x === 'object' ? Object.assign({}, x) : { x, y };
|
|
4334
4371
|
isInnerPoint ? toOuterPoint$1(t.localTransform, local, local, true) : (t.parent && toInnerPoint$1(t.parent.worldTransform, local, local, true));
|
|
@@ -4388,14 +4425,14 @@ const LeafHelper = {
|
|
|
4388
4425
|
},
|
|
4389
4426
|
transformWorld(t, transform, resize, transition) {
|
|
4390
4427
|
copy$7(matrix$1, t.worldTransform);
|
|
4391
|
-
multiplyParent$
|
|
4428
|
+
multiplyParent$3(matrix$1, transform);
|
|
4392
4429
|
if (t.parent)
|
|
4393
4430
|
divideParent(matrix$1, t.parent.worldTransform);
|
|
4394
4431
|
L.setTransform(t, matrix$1, resize, transition);
|
|
4395
4432
|
},
|
|
4396
4433
|
transform(t, transform, resize, transition) {
|
|
4397
4434
|
copy$7(matrix$1, t.localTransform);
|
|
4398
|
-
multiplyParent$
|
|
4435
|
+
multiplyParent$3(matrix$1, transform);
|
|
4399
4436
|
L.setTransform(t, matrix$1, resize, transition);
|
|
4400
4437
|
},
|
|
4401
4438
|
setTransform(t, transform, resize, transition) {
|
|
@@ -5257,17 +5294,18 @@ const LeafDataProxy = {
|
|
|
5257
5294
|
}
|
|
5258
5295
|
};
|
|
5259
5296
|
|
|
5260
|
-
const { setLayout, multiplyParent: multiplyParent$
|
|
5297
|
+
const { setLayout, multiplyParent: multiplyParent$2, translateInner, defaultWorld } = MatrixHelper;
|
|
5261
5298
|
const { toPoint: toPoint$3, tempPoint } = AroundHelper;
|
|
5262
5299
|
const LeafMatrix = {
|
|
5263
5300
|
__updateWorldMatrix() {
|
|
5264
|
-
|
|
5301
|
+
const { parent, __layout } = this;
|
|
5302
|
+
multiplyParent$2(this.__local || __layout, parent ? parent.__world : defaultWorld, this.__world, !!__layout.affectScaleOrRotation, this.__, parent && (parent.scrollY || parent.scrollX) && parent.__);
|
|
5265
5303
|
},
|
|
5266
5304
|
__updateLocalMatrix() {
|
|
5267
5305
|
if (this.__local) {
|
|
5268
5306
|
const layout = this.__layout, local = this.__local, data = this.__;
|
|
5269
5307
|
if (layout.affectScaleOrRotation) {
|
|
5270
|
-
if ((layout.scaleChanged && (layout.resized = 'scale')) || layout.rotationChanged) {
|
|
5308
|
+
if ((layout.scaleChanged && (layout.resized || (layout.resized = 'scale'))) || layout.rotationChanged) {
|
|
5271
5309
|
setLayout(local, data, null, null, layout.affectRotation);
|
|
5272
5310
|
layout.scaleChanged = layout.rotationChanged = undefined;
|
|
5273
5311
|
}
|
|
@@ -5422,6 +5460,8 @@ const LeafBounds = {
|
|
|
5422
5460
|
|
|
5423
5461
|
const LeafRender = {
|
|
5424
5462
|
__render(canvas, options) {
|
|
5463
|
+
if (options.shape)
|
|
5464
|
+
return this.__renderShape(canvas, options);
|
|
5425
5465
|
if (this.__worldOpacity) {
|
|
5426
5466
|
const data = this.__;
|
|
5427
5467
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
@@ -5431,12 +5471,7 @@ const LeafRender = {
|
|
|
5431
5471
|
return this.__renderEraser(canvas, options);
|
|
5432
5472
|
const tempCanvas = canvas.getSameCanvas(true, true);
|
|
5433
5473
|
this.__draw(tempCanvas, options, canvas);
|
|
5434
|
-
|
|
5435
|
-
canvas.copyWorldByReset(tempCanvas, this.__nowWorld, null, data.__blendMode, true);
|
|
5436
|
-
}
|
|
5437
|
-
else {
|
|
5438
|
-
canvas.copyWorldToInner(tempCanvas, this.__nowWorld, this.__layout.renderBounds, data.__blendMode);
|
|
5439
|
-
}
|
|
5474
|
+
LeafHelper.copyCanvasByWorld(this, canvas, tempCanvas, this.__nowWorld, data.__blendMode, true);
|
|
5440
5475
|
tempCanvas.recycle(this.__nowWorld);
|
|
5441
5476
|
}
|
|
5442
5477
|
else {
|
|
@@ -5446,6 +5481,12 @@ const LeafRender = {
|
|
|
5446
5481
|
Debug.drawBounds(this, canvas, options);
|
|
5447
5482
|
}
|
|
5448
5483
|
},
|
|
5484
|
+
__renderShape(canvas, options) {
|
|
5485
|
+
if (this.__worldOpacity) {
|
|
5486
|
+
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
5487
|
+
this.__drawShape(canvas, options);
|
|
5488
|
+
}
|
|
5489
|
+
},
|
|
5449
5490
|
__clip(canvas, options) {
|
|
5450
5491
|
if (this.__worldOpacity) {
|
|
5451
5492
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
@@ -5478,7 +5519,7 @@ const BranchRender = {
|
|
|
5478
5519
|
options.dimOpacity = data.dim === true ? 0.2 : data.dim;
|
|
5479
5520
|
else if (data.dimskip)
|
|
5480
5521
|
options.dimOpacity && (options.dimOpacity = 0);
|
|
5481
|
-
if (data.__single) {
|
|
5522
|
+
if (data.__single && !this.isBranchLeaf) {
|
|
5482
5523
|
if (data.eraser === 'path')
|
|
5483
5524
|
return this.__renderEraser(canvas, options);
|
|
5484
5525
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
@@ -5500,9 +5541,7 @@ const BranchRender = {
|
|
|
5500
5541
|
else {
|
|
5501
5542
|
const { children } = this;
|
|
5502
5543
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
5503
|
-
|
|
5504
|
-
continue;
|
|
5505
|
-
children[i].__render(canvas, options);
|
|
5544
|
+
excludeRenderBounds$1(children[i], options) || children[i].__render(canvas, options);
|
|
5506
5545
|
}
|
|
5507
5546
|
}
|
|
5508
5547
|
},
|
|
@@ -5510,16 +5549,15 @@ const BranchRender = {
|
|
|
5510
5549
|
if (this.__worldOpacity) {
|
|
5511
5550
|
const { children } = this;
|
|
5512
5551
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
5513
|
-
|
|
5514
|
-
continue;
|
|
5515
|
-
children[i].__clip(canvas, options);
|
|
5552
|
+
excludeRenderBounds$1(children[i], options) || children[i].__clip(canvas, options);
|
|
5516
5553
|
}
|
|
5517
5554
|
}
|
|
5518
5555
|
}
|
|
5519
5556
|
};
|
|
5520
5557
|
|
|
5558
|
+
const tempScaleData$1 = {};
|
|
5521
5559
|
const { LEAF, create } = IncrementId;
|
|
5522
|
-
const { toInnerPoint, toOuterPoint, multiplyParent } = MatrixHelper;
|
|
5560
|
+
const { toInnerPoint, toOuterPoint, multiplyParent: multiplyParent$1 } = MatrixHelper;
|
|
5523
5561
|
const { toOuterOf } = BoundsHelper;
|
|
5524
5562
|
const { copy: copy$4, move } = PointHelper;
|
|
5525
5563
|
const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getFlipTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
|
|
@@ -5701,7 +5739,7 @@ let Leaf = class Leaf {
|
|
|
5701
5739
|
if (!this.__cameraWorld)
|
|
5702
5740
|
this.__cameraWorld = {};
|
|
5703
5741
|
const cameraWorld = this.__cameraWorld, world = this.__world;
|
|
5704
|
-
multiplyParent(world, options.matrix, cameraWorld, undefined, world);
|
|
5742
|
+
multiplyParent$1(world, options.matrix, cameraWorld, undefined, world);
|
|
5705
5743
|
toOuterOf(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
5706
5744
|
cameraWorld.half !== world.half && (cameraWorld.half = world.half);
|
|
5707
5745
|
return cameraWorld;
|
|
@@ -5710,6 +5748,22 @@ let Leaf = class Leaf {
|
|
|
5710
5748
|
return this.__world;
|
|
5711
5749
|
}
|
|
5712
5750
|
}
|
|
5751
|
+
getClampRenderScale() {
|
|
5752
|
+
let { scaleX } = this.__nowWorld || this.__world;
|
|
5753
|
+
if (scaleX < 0)
|
|
5754
|
+
scaleX = -scaleX;
|
|
5755
|
+
return scaleX > 1 ? scaleX : 1;
|
|
5756
|
+
}
|
|
5757
|
+
getRenderScaleData(abs, scaleFixed) {
|
|
5758
|
+
const { scaleX, scaleY } = ImageManager.patternLocked ? this.__world : this.__nowWorld;
|
|
5759
|
+
if (scaleFixed)
|
|
5760
|
+
tempScaleData$1.scaleX = tempScaleData$1.scaleY = 1;
|
|
5761
|
+
else if (abs)
|
|
5762
|
+
tempScaleData$1.scaleX = scaleX < 0 ? -scaleX : scaleX, tempScaleData$1.scaleY = scaleY < 0 ? -scaleY : scaleY;
|
|
5763
|
+
else
|
|
5764
|
+
tempScaleData$1.scaleX = scaleX, tempScaleData$1.scaleY = scaleY;
|
|
5765
|
+
return tempScaleData$1;
|
|
5766
|
+
}
|
|
5713
5767
|
getTransform(relative) {
|
|
5714
5768
|
return this.__layout.getTransform(relative || 'local');
|
|
5715
5769
|
}
|
|
@@ -5865,7 +5919,8 @@ let Leaf = class Leaf {
|
|
|
5865
5919
|
__drawFast(_canvas, _options) { }
|
|
5866
5920
|
__draw(_canvas, _options, _originCanvas) { }
|
|
5867
5921
|
__clip(_canvas, _options) { }
|
|
5868
|
-
__renderShape(_canvas, _options
|
|
5922
|
+
__renderShape(_canvas, _options) { }
|
|
5923
|
+
__drawShape(_canvas, _options) { }
|
|
5869
5924
|
__updateWorldOpacity() { }
|
|
5870
5925
|
__updateChange() { }
|
|
5871
5926
|
__drawPath(_canvas) { }
|
|
@@ -6233,7 +6288,7 @@ class LeafLevelList {
|
|
|
6233
6288
|
}
|
|
6234
6289
|
}
|
|
6235
6290
|
|
|
6236
|
-
const version = "1.
|
|
6291
|
+
const version = "1.8.0";
|
|
6237
6292
|
|
|
6238
6293
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6239
6294
|
get allowBackgroundColor() { return false; }
|
|
@@ -7220,6 +7275,11 @@ function zoomLayerType() {
|
|
|
7220
7275
|
});
|
|
7221
7276
|
};
|
|
7222
7277
|
}
|
|
7278
|
+
function createAttr(defaultValue) {
|
|
7279
|
+
return (target, key) => {
|
|
7280
|
+
defineKey(target, key, createDescriptor(key, defaultValue));
|
|
7281
|
+
};
|
|
7282
|
+
}
|
|
7223
7283
|
|
|
7224
7284
|
function hasTransparent$3(color) {
|
|
7225
7285
|
if (!color || color.length === 7 || color.length === 4)
|
|
@@ -7277,26 +7337,9 @@ const emptyPaint = {};
|
|
|
7277
7337
|
const debug$2 = Debug.get('UIData');
|
|
7278
7338
|
class UIData extends LeafData {
|
|
7279
7339
|
get scale() { const { scaleX, scaleY } = this; return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX; }
|
|
7280
|
-
get __strokeWidth() {
|
|
7281
|
-
|
|
7282
|
-
|
|
7283
|
-
const ui = this.__leaf;
|
|
7284
|
-
let { scaleX } = ui.__nowWorld || ui.__world;
|
|
7285
|
-
if (scaleX < 0)
|
|
7286
|
-
scaleX = -scaleX;
|
|
7287
|
-
return scaleX > 1 ? strokeWidth / scaleX : strokeWidth;
|
|
7288
|
-
}
|
|
7289
|
-
else
|
|
7290
|
-
return strokeWidth;
|
|
7291
|
-
}
|
|
7292
|
-
get __hasStroke() { return this.stroke && this.strokeWidth; }
|
|
7293
|
-
get __hasHalf() { const t = this; return (t.stroke && t.strokeAlign === 'center' && t.strokeWidth % 2) || undefined; }
|
|
7294
|
-
get __hasMultiPaint() {
|
|
7295
|
-
const t = this;
|
|
7296
|
-
if ((t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect)
|
|
7297
|
-
return true;
|
|
7298
|
-
return t.fill && this.__hasStroke;
|
|
7299
|
-
}
|
|
7340
|
+
get __strokeWidth() { return this.__getRealStrokeWidth(); }
|
|
7341
|
+
get __maxStrokeWidth() { const t = this; return t.__hasMultiStrokeStyle ? Math.max(t.__hasMultiStrokeStyle, t.strokeWidth) : t.strokeWidth; }
|
|
7342
|
+
get __hasMultiPaint() { const t = this; return (t.fill && this.__useStroke) || (t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect; }
|
|
7300
7343
|
get __clipAfterFill() { const t = this; return (t.cornerRadius || t.innerShadow || t.__pathInputed); }
|
|
7301
7344
|
get __hasSurface() { const t = this; return (t.fill || t.stroke); }
|
|
7302
7345
|
get __autoWidth() { return !this._width; }
|
|
@@ -7378,6 +7421,21 @@ class UIData extends LeafData {
|
|
|
7378
7421
|
Paint.compute('stroke', this.__leaf);
|
|
7379
7422
|
this.__needComputePaint = undefined;
|
|
7380
7423
|
}
|
|
7424
|
+
__getRealStrokeWidth(childStyle) {
|
|
7425
|
+
let { strokeWidth, strokeWidthFixed } = this;
|
|
7426
|
+
if (childStyle) {
|
|
7427
|
+
if (childStyle.strokeWidth)
|
|
7428
|
+
strokeWidth = childStyle.strokeWidth;
|
|
7429
|
+
if (childStyle.strokeWidthFixed !== undefined)
|
|
7430
|
+
strokeWidthFixed = childStyle.strokeWidthFixed;
|
|
7431
|
+
}
|
|
7432
|
+
if (strokeWidthFixed) {
|
|
7433
|
+
const scale = this.__leaf.getClampRenderScale();
|
|
7434
|
+
return scale > 1 ? strokeWidth / scale : strokeWidth;
|
|
7435
|
+
}
|
|
7436
|
+
else
|
|
7437
|
+
return strokeWidth;
|
|
7438
|
+
}
|
|
7381
7439
|
__setPaint(attrName, value) {
|
|
7382
7440
|
this.__setInput(attrName, value);
|
|
7383
7441
|
const layout = this.__leaf.__layout;
|
|
@@ -7402,6 +7460,7 @@ class UIData extends LeafData {
|
|
|
7402
7460
|
}
|
|
7403
7461
|
else {
|
|
7404
7462
|
stintSet$2(this, '__isAlphaPixelStroke', undefined);
|
|
7463
|
+
stintSet$2(this, '__hasMultiStrokeStyle', undefined);
|
|
7405
7464
|
this._stroke = this.__isStrokes = undefined;
|
|
7406
7465
|
}
|
|
7407
7466
|
}
|
|
@@ -7423,8 +7482,8 @@ class GroupData extends UIData {
|
|
|
7423
7482
|
|
|
7424
7483
|
class BoxData extends GroupData {
|
|
7425
7484
|
get __boxStroke() { return !this.__pathInputed; }
|
|
7426
|
-
get __drawAfterFill() { const t = this; return
|
|
7427
|
-
get __clipAfterFill() { return
|
|
7485
|
+
get __drawAfterFill() { const t = this; return t.__single || t.__clipAfterFill; }
|
|
7486
|
+
get __clipAfterFill() { const t = this; return t.overflow === 'hide' && t.__leaf.children.length && (t.__leaf.isOverflow || super.__clipAfterFill); }
|
|
7428
7487
|
}
|
|
7429
7488
|
|
|
7430
7489
|
class LeaferData extends GroupData {
|
|
@@ -7544,7 +7603,7 @@ class CanvasData extends RectData {
|
|
|
7544
7603
|
const UIBounds = {
|
|
7545
7604
|
__updateStrokeSpread() {
|
|
7546
7605
|
let width = 0, boxWidth = 0;
|
|
7547
|
-
const data = this.__, { strokeAlign, strokeWidth } = data, box = this.__box;
|
|
7606
|
+
const data = this.__, { strokeAlign, __maxStrokeWidth: strokeWidth } = data, box = this.__box;
|
|
7548
7607
|
if ((data.stroke || data.hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
7549
7608
|
boxWidth = width = strokeAlign === 'center' ? strokeWidth / 2 : strokeWidth;
|
|
7550
7609
|
if (!data.__boxStroke) {
|
|
@@ -7564,13 +7623,15 @@ const UIBounds = {
|
|
|
7564
7623
|
},
|
|
7565
7624
|
__updateRenderSpread() {
|
|
7566
7625
|
let width = 0;
|
|
7567
|
-
const { shadow, innerShadow, blur, backgroundBlur, filter } = this.__;
|
|
7626
|
+
const { shadow, innerShadow, blur, backgroundBlur, filter, renderSpread } = this.__;
|
|
7568
7627
|
if (shadow)
|
|
7569
7628
|
shadow.forEach(item => width = Math.max(width, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread > 0 ? item.spread : 0) + item.blur * 1.5));
|
|
7570
7629
|
if (blur)
|
|
7571
7630
|
width = Math.max(width, blur);
|
|
7572
7631
|
if (filter)
|
|
7573
7632
|
width += Filter.getSpread(filter);
|
|
7633
|
+
if (renderSpread)
|
|
7634
|
+
width += renderSpread;
|
|
7574
7635
|
let shapeWidth = width = Math.ceil(width);
|
|
7575
7636
|
if (innerShadow)
|
|
7576
7637
|
innerShadow.forEach(item => shapeWidth = Math.max(shapeWidth, Math.max(Math.abs(item.y), Math.abs(item.x)) + (item.spread < 0 ? -item.spread : 0) + item.blur * 1.5));
|
|
@@ -7586,15 +7647,18 @@ const { stintSet: stintSet$1 } = DataHelper;
|
|
|
7586
7647
|
const UIRender = {
|
|
7587
7648
|
__updateChange() {
|
|
7588
7649
|
const data = this.__;
|
|
7650
|
+
if (data.__useStroke) {
|
|
7651
|
+
const useStroke = data.__useStroke = !!(data.stroke && data.strokeWidth);
|
|
7652
|
+
stintSet$1(this.__world, 'half', useStroke && data.strokeAlign === 'center' && data.strokeWidth % 2);
|
|
7653
|
+
stintSet$1(data, '__fillAfterStroke', useStroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7654
|
+
}
|
|
7589
7655
|
if (data.__useEffect) {
|
|
7590
7656
|
const { shadow, fill, stroke } = data, otherEffect = data.innerShadow || data.blur || data.backgroundBlur || data.filter;
|
|
7591
|
-
stintSet$1(data, '__isFastShadow', shadow && !otherEffect && shadow.length < 2 && !shadow[0].spread &&
|
|
7657
|
+
stintSet$1(data, '__isFastShadow', shadow && !otherEffect && shadow.length < 2 && !shadow[0].spread && fill && !data.__isTransparentFill && !(fill instanceof Array && fill.length > 1) && (this.useFastShadow || !stroke || (stroke && data.strokeAlign === 'inside')));
|
|
7592
7658
|
data.__useEffect = !!(shadow || otherEffect);
|
|
7593
7659
|
}
|
|
7594
|
-
stintSet$1(this.__world, 'half', data.__hasHalf);
|
|
7595
|
-
stintSet$1(data, '__fillAfterStroke', data.stroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7596
7660
|
data.__checkSingle();
|
|
7597
|
-
stintSet$1(data, '__complex', data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect);
|
|
7661
|
+
stintSet$1(data, '__complex', (data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect));
|
|
7598
7662
|
},
|
|
7599
7663
|
__drawFast(canvas, options) {
|
|
7600
7664
|
drawFast(this, canvas, options);
|
|
@@ -7652,18 +7716,15 @@ const UIRender = {
|
|
|
7652
7716
|
this.__drawFast(canvas, options);
|
|
7653
7717
|
}
|
|
7654
7718
|
},
|
|
7655
|
-
|
|
7656
|
-
|
|
7657
|
-
|
|
7658
|
-
|
|
7659
|
-
this.
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
if (stroke && !ignoreStroke)
|
|
7665
|
-
this.__.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7666
|
-
}
|
|
7719
|
+
__drawShape(canvas, options) {
|
|
7720
|
+
this.__drawRenderPath(canvas);
|
|
7721
|
+
const data = this.__, { fill, stroke } = data;
|
|
7722
|
+
if (fill && !options.ignoreFill)
|
|
7723
|
+
data.__isAlphaPixelFill ? Paint.fills(fill, this, canvas) : Paint.fill('#000000', this, canvas);
|
|
7724
|
+
if (data.__isCanvas)
|
|
7725
|
+
this.__drawAfterFill(canvas, options);
|
|
7726
|
+
if (stroke && !options.ignoreStroke)
|
|
7727
|
+
data.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7667
7728
|
},
|
|
7668
7729
|
__drawAfterFill(canvas, options) {
|
|
7669
7730
|
if (this.__.__clipAfterFill) {
|
|
@@ -7700,17 +7761,17 @@ const RectRender = {
|
|
|
7700
7761
|
if (__drawAfterFill)
|
|
7701
7762
|
this.__drawAfterFill(canvas, options);
|
|
7702
7763
|
if (stroke) {
|
|
7703
|
-
const { strokeAlign, __strokeWidth } = this.__;
|
|
7704
|
-
if (!
|
|
7764
|
+
const { strokeAlign, __strokeWidth: strokeWidth } = this.__;
|
|
7765
|
+
if (!strokeWidth)
|
|
7705
7766
|
return;
|
|
7706
|
-
canvas.setStroke(stroke,
|
|
7707
|
-
const half =
|
|
7767
|
+
canvas.setStroke(stroke, strokeWidth, this.__);
|
|
7768
|
+
const half = strokeWidth / 2;
|
|
7708
7769
|
switch (strokeAlign) {
|
|
7709
7770
|
case 'center':
|
|
7710
7771
|
canvas.strokeRect(0, 0, width, height);
|
|
7711
7772
|
break;
|
|
7712
7773
|
case 'inside':
|
|
7713
|
-
width -=
|
|
7774
|
+
width -= strokeWidth, height -= strokeWidth;
|
|
7714
7775
|
if (width < 0 || height < 0) {
|
|
7715
7776
|
canvas.save();
|
|
7716
7777
|
this.__clip(canvas, options);
|
|
@@ -7721,7 +7782,7 @@ const RectRender = {
|
|
|
7721
7782
|
canvas.strokeRect(x + half, y + half, width, height);
|
|
7722
7783
|
break;
|
|
7723
7784
|
case 'outside':
|
|
7724
|
-
canvas.strokeRect(x - half, y - half, width +
|
|
7785
|
+
canvas.strokeRect(x - half, y - half, width + strokeWidth, height + strokeWidth);
|
|
7725
7786
|
break;
|
|
7726
7787
|
}
|
|
7727
7788
|
}
|
|
@@ -7734,6 +7795,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7734
7795
|
get isFrame() { return false; }
|
|
7735
7796
|
set scale(value) { MathHelper.assignScale(this, value); }
|
|
7736
7797
|
get scale() { return this.__.scale; }
|
|
7798
|
+
get isAutoWidth() { const t = this.__; return t.__autoWidth || t.autoWidth; }
|
|
7799
|
+
get isAutoHeight() { const t = this.__; return t.__autoHeight || t.autoHeight; }
|
|
7737
7800
|
get pen() {
|
|
7738
7801
|
const { path } = this.__;
|
|
7739
7802
|
pen.set(this.path = path || []);
|
|
@@ -7788,12 +7851,14 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7788
7851
|
}
|
|
7789
7852
|
}
|
|
7790
7853
|
__updateRenderPath() {
|
|
7791
|
-
|
|
7792
|
-
|
|
7854
|
+
const data = this.__;
|
|
7855
|
+
if (data.path) {
|
|
7793
7856
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
7794
7857
|
if (data.__useArrow)
|
|
7795
7858
|
PathArrow.addArrows(this, !data.cornerRadius);
|
|
7796
7859
|
}
|
|
7860
|
+
else
|
|
7861
|
+
data.__pathForRender && (data.__pathForRender = undefined);
|
|
7797
7862
|
}
|
|
7798
7863
|
__drawRenderPath(canvas) {
|
|
7799
7864
|
canvas.beginPath();
|
|
@@ -7946,6 +8011,9 @@ __decorate([
|
|
|
7946
8011
|
__decorate([
|
|
7947
8012
|
naturalBoundsType(1)
|
|
7948
8013
|
], UI.prototype, "pixelRatio", void 0);
|
|
8014
|
+
__decorate([
|
|
8015
|
+
affectRenderBoundsType(0)
|
|
8016
|
+
], UI.prototype, "renderSpread", void 0);
|
|
7949
8017
|
__decorate([
|
|
7950
8018
|
pathInputType()
|
|
7951
8019
|
], UI.prototype, "path", void 0);
|
|
@@ -8004,13 +8072,13 @@ __decorate([
|
|
|
8004
8072
|
surfaceType()
|
|
8005
8073
|
], UI.prototype, "fill", void 0);
|
|
8006
8074
|
__decorate([
|
|
8007
|
-
strokeType()
|
|
8075
|
+
strokeType(undefined, true)
|
|
8008
8076
|
], UI.prototype, "stroke", void 0);
|
|
8009
8077
|
__decorate([
|
|
8010
8078
|
strokeType('inside')
|
|
8011
8079
|
], UI.prototype, "strokeAlign", void 0);
|
|
8012
8080
|
__decorate([
|
|
8013
|
-
strokeType(1)
|
|
8081
|
+
strokeType(1, true)
|
|
8014
8082
|
], UI.prototype, "strokeWidth", void 0);
|
|
8015
8083
|
__decorate([
|
|
8016
8084
|
strokeType(false)
|
|
@@ -8102,7 +8170,8 @@ let Group = class Group extends UI {
|
|
|
8102
8170
|
}
|
|
8103
8171
|
toJSON(options) {
|
|
8104
8172
|
const data = super.toJSON(options);
|
|
8105
|
-
|
|
8173
|
+
if (!this.childlessJSON)
|
|
8174
|
+
data.children = this.children.map(child => child.toJSON(options));
|
|
8106
8175
|
return data;
|
|
8107
8176
|
}
|
|
8108
8177
|
pick(_hitPoint, _options) { return undefined; }
|
|
@@ -8437,7 +8506,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8437
8506
|
list.push(item);
|
|
8438
8507
|
this.requestRender();
|
|
8439
8508
|
}
|
|
8440
|
-
zoom(_zoomType,
|
|
8509
|
+
zoom(_zoomType, _optionsOrPadding, _scroll, _transition) {
|
|
8441
8510
|
return Plugin.need('view');
|
|
8442
8511
|
}
|
|
8443
8512
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
@@ -8482,7 +8551,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8482
8551
|
Leafer_1.list.remove(this);
|
|
8483
8552
|
try {
|
|
8484
8553
|
this.stop();
|
|
8485
|
-
this.
|
|
8554
|
+
this.emitLeafer(LeaferEvent.END);
|
|
8486
8555
|
this.__removeListenEvents();
|
|
8487
8556
|
this.__controllers.forEach(item => !(this.parent && item === this.interaction) && item.destroy());
|
|
8488
8557
|
this.__controllers.length = 0;
|
|
@@ -8549,8 +8618,8 @@ let Box = class Box extends Group {
|
|
|
8549
8618
|
__updateRenderSpread() { return this.__updateRectRenderSpread() || -1; }
|
|
8550
8619
|
__updateRectBoxBounds() { }
|
|
8551
8620
|
__updateBoxBounds(_secondLayout) {
|
|
8552
|
-
const data = this.__;
|
|
8553
8621
|
if (this.children.length && !this.pathInputed) {
|
|
8622
|
+
const data = this.__;
|
|
8554
8623
|
if (data.__autoSide) {
|
|
8555
8624
|
if (data.__hasSurface)
|
|
8556
8625
|
this.__extraUpdate();
|
|
@@ -8577,20 +8646,26 @@ let Box = class Box extends Group {
|
|
|
8577
8646
|
__updateStrokeBounds() { }
|
|
8578
8647
|
__updateRenderBounds() {
|
|
8579
8648
|
let isOverflow;
|
|
8580
|
-
const { renderBounds } = this.__layout;
|
|
8581
8649
|
if (this.children.length) {
|
|
8650
|
+
const data = this.__, { renderBounds, boxBounds } = this.__layout;
|
|
8582
8651
|
super.__updateRenderBounds();
|
|
8583
8652
|
copy$3(childrenRenderBounds, renderBounds);
|
|
8584
8653
|
this.__updateRectRenderBounds();
|
|
8585
|
-
|
|
8586
|
-
|
|
8654
|
+
if (data.scrollY || data.scrollX) {
|
|
8655
|
+
childrenRenderBounds.x += data.scrollX;
|
|
8656
|
+
childrenRenderBounds.y += data.scrollY;
|
|
8657
|
+
}
|
|
8658
|
+
isOverflow = !includes$1(boxBounds, childrenRenderBounds);
|
|
8659
|
+
if (isOverflow && data.overflow !== 'hide')
|
|
8587
8660
|
add(renderBounds, childrenRenderBounds);
|
|
8588
8661
|
}
|
|
8589
8662
|
else
|
|
8590
8663
|
this.__updateRectRenderBounds();
|
|
8591
8664
|
DataHelper.stintSet(this, 'isOverflow', isOverflow);
|
|
8665
|
+
this.__updateScrollBar();
|
|
8592
8666
|
}
|
|
8593
8667
|
__updateRectRenderBounds() { }
|
|
8668
|
+
__updateScrollBar() { }
|
|
8594
8669
|
__updateRectChange() { }
|
|
8595
8670
|
__updateChange() {
|
|
8596
8671
|
super.__updateChange();
|
|
@@ -8607,10 +8682,12 @@ let Box = class Box extends Group {
|
|
|
8607
8682
|
if (this.children.length)
|
|
8608
8683
|
this.__renderGroup(canvas, options);
|
|
8609
8684
|
}
|
|
8685
|
+
if (this.scrollBar)
|
|
8686
|
+
this.scrollBar.__render(canvas, options);
|
|
8610
8687
|
}
|
|
8611
8688
|
__drawContent(canvas, options) {
|
|
8612
8689
|
this.__renderGroup(canvas, options);
|
|
8613
|
-
if (this.__.
|
|
8690
|
+
if (this.__.__useStroke || this.__.__useEffect) {
|
|
8614
8691
|
canvas.setWorld(this.__nowWorld);
|
|
8615
8692
|
this.__drawRenderPath(canvas);
|
|
8616
8693
|
}
|
|
@@ -8830,8 +8907,8 @@ let Polygon = class Polygon extends UI {
|
|
|
8830
8907
|
for (let i = 1; i < sides; i++) {
|
|
8831
8908
|
lineTo$1(path, rx + rx * sin$1((i * 2 * PI$1) / sides), ry - ry * cos$1((i * 2 * PI$1) / sides));
|
|
8832
8909
|
}
|
|
8910
|
+
closePath$1(path);
|
|
8833
8911
|
}
|
|
8834
|
-
closePath$1(path);
|
|
8835
8912
|
}
|
|
8836
8913
|
__updateRenderPath() { }
|
|
8837
8914
|
__updateBoxBounds() { }
|
|
@@ -9069,6 +9146,11 @@ let Text = class Text extends UI {
|
|
|
9069
9146
|
return;
|
|
9070
9147
|
super.__draw(canvas, options, originCanvas);
|
|
9071
9148
|
}
|
|
9149
|
+
__drawShape(canvas, options) {
|
|
9150
|
+
if (options.shape)
|
|
9151
|
+
this.__box && this.__box.__drawShape(canvas, options);
|
|
9152
|
+
super.__drawShape(canvas, options);
|
|
9153
|
+
}
|
|
9072
9154
|
destroy() {
|
|
9073
9155
|
if (this.boxStyle)
|
|
9074
9156
|
this.boxStyle = null;
|
|
@@ -9890,6 +9972,7 @@ const config = {
|
|
|
9890
9972
|
delta: { x: 80 / 4, y: 8.0 },
|
|
9891
9973
|
},
|
|
9892
9974
|
pointer: {
|
|
9975
|
+
type: 'pointer',
|
|
9893
9976
|
snap: true,
|
|
9894
9977
|
hitRadius: 5,
|
|
9895
9978
|
tapTime: 120,
|
|
@@ -10407,18 +10490,20 @@ leaf.__hitWorld = function (point) {
|
|
|
10407
10490
|
}
|
|
10408
10491
|
return this.__hit(inner);
|
|
10409
10492
|
};
|
|
10410
|
-
leaf.__hitFill = function (inner) {
|
|
10411
|
-
leaf.__hitStroke = function (inner, strokeWidth) {
|
|
10412
|
-
leaf.__hitPixel = function (inner) {
|
|
10413
|
-
leaf.__drawHitPath = function (canvas) {
|
|
10414
|
-
this.__drawRenderPath(canvas); };
|
|
10493
|
+
leaf.__hitFill = function (inner) { const h = this.__hitCanvas; return h && h.hitFill(inner, this.__.windingRule); };
|
|
10494
|
+
leaf.__hitStroke = function (inner, strokeWidth) { const h = this.__hitCanvas; return h && h.hitStroke(inner, strokeWidth); };
|
|
10495
|
+
leaf.__hitPixel = function (inner) { const h = this.__hitCanvas; return h && h.hitPixel(inner, this.__layout.renderBounds, h.hitScale); };
|
|
10496
|
+
leaf.__drawHitPath = function (canvas) { canvas && this.__drawRenderPath(canvas); };
|
|
10415
10497
|
|
|
10416
10498
|
const matrix = new Matrix();
|
|
10417
10499
|
const ui$1 = UI.prototype;
|
|
10418
10500
|
ui$1.__updateHitCanvas = function () {
|
|
10419
10501
|
if (this.__box)
|
|
10420
10502
|
this.__box.__updateHitCanvas();
|
|
10421
|
-
const
|
|
10503
|
+
const leafer = this.leafer || (this.parent && this.parent.leafer);
|
|
10504
|
+
if (!leafer)
|
|
10505
|
+
return;
|
|
10506
|
+
const data = this.__, { hitCanvasManager } = leafer;
|
|
10422
10507
|
const isHitPixelFill = (data.__isAlphaPixelFill || data.__isCanvas) && data.hitFill === 'pixel';
|
|
10423
10508
|
const isHitPixelStroke = data.__isAlphaPixelStroke && data.hitStroke === 'pixel';
|
|
10424
10509
|
const isHitPixel = isHitPixelFill || isHitPixelStroke;
|
|
@@ -10433,7 +10518,7 @@ ui$1.__updateHitCanvas = function () {
|
|
|
10433
10518
|
h.resize({ width, height, pixelRatio: 1 });
|
|
10434
10519
|
h.clear();
|
|
10435
10520
|
ImageManager.patternLocked = true;
|
|
10436
|
-
this.__renderShape(h, { matrix: matrix.setWith(this.__world).scaleWith(1 / scale).invertWith().translate(-x, -y)
|
|
10521
|
+
this.__renderShape(h, { matrix: matrix.setWith(this.__world).scaleWith(1 / scale).invertWith().translate(-x, -y), ignoreFill: !isHitPixelFill, ignoreStroke: !isHitPixelStroke });
|
|
10437
10522
|
ImageManager.patternLocked = false;
|
|
10438
10523
|
h.resetTransform();
|
|
10439
10524
|
data.__isHitPixel = true;
|
|
@@ -10454,7 +10539,7 @@ ui$1.__hit = function (inner) {
|
|
|
10454
10539
|
const needHitFillPath = ((data.fill || data.__isCanvas) && (hitFill === 'path' || (hitFill === 'pixel' && !(data.__isAlphaPixelFill || data.__isCanvas)))) || hitFill === 'all';
|
|
10455
10540
|
if (needHitFillPath && this.__hitFill(inner))
|
|
10456
10541
|
return true;
|
|
10457
|
-
const { hitStroke,
|
|
10542
|
+
const { hitStroke, __maxStrokeWidth: strokeWidth } = data;
|
|
10458
10543
|
const needHitStrokePath = (data.stroke && (hitStroke === 'path' || (hitStroke === 'pixel' && !data.__isAlphaPixelStroke))) || hitStroke === 'all';
|
|
10459
10544
|
if (!needHitFillPath && !needHitStrokePath)
|
|
10460
10545
|
return false;
|
|
@@ -10463,16 +10548,16 @@ ui$1.__hit = function (inner) {
|
|
|
10463
10548
|
if (needHitStrokePath) {
|
|
10464
10549
|
switch (data.strokeAlign) {
|
|
10465
10550
|
case 'inside':
|
|
10466
|
-
hitWidth +=
|
|
10551
|
+
hitWidth += strokeWidth * 2;
|
|
10467
10552
|
if (!needHitFillPath && this.__hitFill(inner) && this.__hitStroke(inner, hitWidth))
|
|
10468
10553
|
return true;
|
|
10469
10554
|
hitWidth = radiusWidth;
|
|
10470
10555
|
break;
|
|
10471
10556
|
case 'center':
|
|
10472
|
-
hitWidth +=
|
|
10557
|
+
hitWidth += strokeWidth;
|
|
10473
10558
|
break;
|
|
10474
10559
|
case 'outside':
|
|
10475
|
-
hitWidth +=
|
|
10560
|
+
hitWidth += strokeWidth * 2;
|
|
10476
10561
|
if (!needHitFillPath) {
|
|
10477
10562
|
if (!this.__hitFill(inner) && this.__hitStroke(inner, hitWidth))
|
|
10478
10563
|
return true;
|
|
@@ -10677,9 +10762,14 @@ function fills(fills, ui, canvas) {
|
|
|
10677
10762
|
}
|
|
10678
10763
|
}
|
|
10679
10764
|
canvas.fillStyle = item.style;
|
|
10680
|
-
if (item.transform) {
|
|
10765
|
+
if (item.transform || item.scaleFixed) {
|
|
10681
10766
|
canvas.save();
|
|
10682
|
-
|
|
10767
|
+
if (item.transform)
|
|
10768
|
+
canvas.transform(item.transform);
|
|
10769
|
+
if (item.scaleFixed) {
|
|
10770
|
+
const { scaleX, scaleY } = ui.getRenderScaleData(true);
|
|
10771
|
+
canvas.scale(1 / scaleX, 1 / scaleY);
|
|
10772
|
+
}
|
|
10683
10773
|
if (item.blendMode)
|
|
10684
10774
|
canvas.blendMode = item.blendMode;
|
|
10685
10775
|
fillPathOrText(ui, canvas);
|
|
@@ -10715,8 +10805,13 @@ function strokeText(stroke, ui, canvas) {
|
|
|
10715
10805
|
}
|
|
10716
10806
|
function drawCenter$1(stroke, strokeWidthScale, ui, canvas) {
|
|
10717
10807
|
const data = ui.__;
|
|
10718
|
-
|
|
10719
|
-
|
|
10808
|
+
if (typeof stroke === 'object') {
|
|
10809
|
+
drawStrokesStyle(stroke, strokeWidthScale, true, ui, canvas);
|
|
10810
|
+
}
|
|
10811
|
+
else {
|
|
10812
|
+
canvas.setStroke(stroke, data.__strokeWidth * strokeWidthScale, data);
|
|
10813
|
+
drawTextStroke(ui, canvas);
|
|
10814
|
+
}
|
|
10720
10815
|
}
|
|
10721
10816
|
function drawAlign(stroke, align, ui, canvas) {
|
|
10722
10817
|
const out = canvas.getSameCanvas(true, true);
|
|
@@ -10725,15 +10820,9 @@ function drawAlign(stroke, align, ui, canvas) {
|
|
|
10725
10820
|
out.blendMode = align === 'outside' ? 'destination-out' : 'destination-in';
|
|
10726
10821
|
fillText(ui, out);
|
|
10727
10822
|
out.blendMode = 'normal';
|
|
10728
|
-
|
|
10823
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
10729
10824
|
out.recycle(ui.__nowWorld);
|
|
10730
10825
|
}
|
|
10731
|
-
function copyWorld(canvas, out, ui) {
|
|
10732
|
-
if (ui.__worldFlipped || Platform.fullImageShadow)
|
|
10733
|
-
canvas.copyWorldByReset(out, ui.__nowWorld);
|
|
10734
|
-
else
|
|
10735
|
-
canvas.copyWorldToInner(out, ui.__nowWorld, ui.__layout.renderBounds);
|
|
10736
|
-
}
|
|
10737
10826
|
function drawTextStroke(ui, canvas) {
|
|
10738
10827
|
let row, data = ui.__.__textDrawData;
|
|
10739
10828
|
const { rows, decorationY } = data;
|
|
@@ -10749,14 +10838,21 @@ function drawTextStroke(ui, canvas) {
|
|
|
10749
10838
|
rows.forEach(row => decorationY.forEach(value => canvas.strokeRect(row.x, row.y + value, row.width, decorationHeight)));
|
|
10750
10839
|
}
|
|
10751
10840
|
}
|
|
10752
|
-
function drawStrokesStyle(strokes, isText, ui, canvas) {
|
|
10841
|
+
function drawStrokesStyle(strokes, strokeWidthScale, isText, ui, canvas) {
|
|
10753
10842
|
let item;
|
|
10843
|
+
const data = ui.__, { __hasMultiStrokeStyle } = data;
|
|
10844
|
+
__hasMultiStrokeStyle || canvas.setStroke(undefined, data.__strokeWidth * strokeWidthScale, data);
|
|
10754
10845
|
for (let i = 0, len = strokes.length; i < len; i++) {
|
|
10755
10846
|
item = strokes[i];
|
|
10756
10847
|
if (item.image && PaintImage.checkImage(ui, canvas, item, false))
|
|
10757
10848
|
continue;
|
|
10758
10849
|
if (item.style) {
|
|
10759
|
-
|
|
10850
|
+
if (__hasMultiStrokeStyle) {
|
|
10851
|
+
const { strokeStyle } = item;
|
|
10852
|
+
strokeStyle ? canvas.setStroke(item.style, data.__getRealStrokeWidth(strokeStyle) * strokeWidthScale, data, strokeStyle) : canvas.setStroke(item.style, data.__strokeWidth * strokeWidthScale, data);
|
|
10853
|
+
}
|
|
10854
|
+
else
|
|
10855
|
+
canvas.strokeStyle = item.style;
|
|
10760
10856
|
if (item.blendMode) {
|
|
10761
10857
|
canvas.saveBlendMode(item.blendMode);
|
|
10762
10858
|
isText ? drawTextStroke(ui, canvas) : canvas.stroke();
|
|
@@ -10795,8 +10891,13 @@ function strokes(strokes, ui, canvas) {
|
|
|
10795
10891
|
}
|
|
10796
10892
|
function drawCenter(stroke, strokeWidthScale, ui, canvas) {
|
|
10797
10893
|
const data = ui.__;
|
|
10798
|
-
|
|
10799
|
-
|
|
10894
|
+
if (typeof stroke === 'object') {
|
|
10895
|
+
drawStrokesStyle(stroke, strokeWidthScale, false, ui, canvas);
|
|
10896
|
+
}
|
|
10897
|
+
else {
|
|
10898
|
+
canvas.setStroke(stroke, data.__strokeWidth * strokeWidthScale, data);
|
|
10899
|
+
canvas.stroke();
|
|
10900
|
+
}
|
|
10800
10901
|
if (data.__useArrow)
|
|
10801
10902
|
Paint.strokeArrow(stroke, ui, canvas);
|
|
10802
10903
|
}
|
|
@@ -10818,7 +10919,7 @@ function drawOutside(stroke, ui, canvas) {
|
|
|
10818
10919
|
drawCenter(stroke, 2, ui, out);
|
|
10819
10920
|
out.clipUI(data);
|
|
10820
10921
|
out.clearWorld(renderBounds);
|
|
10821
|
-
|
|
10922
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
10822
10923
|
out.recycle(ui.__nowWorld);
|
|
10823
10924
|
}
|
|
10824
10925
|
}
|
|
@@ -10873,8 +10974,16 @@ function compute(attrName, ui) {
|
|
|
10873
10974
|
if (!(paints instanceof Array))
|
|
10874
10975
|
paints = [paints];
|
|
10875
10976
|
recycleMap = PaintImage.recycleImage(attrName, data);
|
|
10977
|
+
let maxChildStrokeWidth;
|
|
10876
10978
|
for (let i = 0, len = paints.length, item; i < len; i++) {
|
|
10877
|
-
(item = getLeafPaint(attrName, paints[i], ui))
|
|
10979
|
+
if (item = getLeafPaint(attrName, paints[i], ui)) {
|
|
10980
|
+
leafPaints.push(item);
|
|
10981
|
+
if (item.strokeStyle) {
|
|
10982
|
+
maxChildStrokeWidth || (maxChildStrokeWidth = 1);
|
|
10983
|
+
if (item.strokeStyle.strokeWidth)
|
|
10984
|
+
maxChildStrokeWidth = Math.max(maxChildStrokeWidth, item.strokeStyle.strokeWidth);
|
|
10985
|
+
}
|
|
10986
|
+
}
|
|
10878
10987
|
}
|
|
10879
10988
|
data['_' + attrName] = leafPaints.length ? leafPaints : undefined;
|
|
10880
10989
|
if (leafPaints.length) {
|
|
@@ -10891,6 +11000,7 @@ function compute(attrName, ui) {
|
|
|
10891
11000
|
else {
|
|
10892
11001
|
stintSet(data, '__isAlphaPixelStroke', isAlphaPixel);
|
|
10893
11002
|
stintSet(data, '__isTransparentStroke', isTransparent);
|
|
11003
|
+
stintSet(data, '__hasMultiStrokeStyle', maxChildStrokeWidth);
|
|
10894
11004
|
}
|
|
10895
11005
|
}
|
|
10896
11006
|
function getLeafPaint(attrName, paint, ui) {
|
|
@@ -10922,6 +11032,11 @@ function getLeafPaint(attrName, paint, ui) {
|
|
|
10922
11032
|
if (data) {
|
|
10923
11033
|
if (typeof data.style === 'string' && hasTransparent$1(data.style))
|
|
10924
11034
|
data.isTransparent = true;
|
|
11035
|
+
if (paint.style) {
|
|
11036
|
+
if (paint.style.strokeWidth === 0)
|
|
11037
|
+
return undefined;
|
|
11038
|
+
data.strokeStyle = paint.style;
|
|
11039
|
+
}
|
|
10925
11040
|
if (paint.blendMode)
|
|
10926
11041
|
data.blendMode = paint.blendMode;
|
|
10927
11042
|
}
|
|
@@ -10941,8 +11056,8 @@ const PaintModule = {
|
|
|
10941
11056
|
shape
|
|
10942
11057
|
};
|
|
10943
11058
|
|
|
10944
|
-
let origin = {};
|
|
10945
|
-
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate } = MatrixHelper;
|
|
11059
|
+
let origin = {}, tempMatrix = getMatrixData();
|
|
11060
|
+
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent, scale: scaleHelper, rotate, skew: skewHelper } = MatrixHelper;
|
|
10946
11061
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
10947
11062
|
const transform = get$3();
|
|
10948
11063
|
translate$1(transform, box.x + x, box.y + y);
|
|
@@ -10951,13 +11066,19 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
10951
11066
|
rotateOfOuter$1(transform, { x: box.x + box.width / 2, y: box.y + box.height / 2 }, rotation);
|
|
10952
11067
|
data.transform = transform;
|
|
10953
11068
|
}
|
|
10954
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
11069
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipSize) {
|
|
10955
11070
|
const transform = get$3();
|
|
10956
|
-
translate$1(transform, box.x + x, box.y + y);
|
|
10957
|
-
if (scaleX)
|
|
10958
|
-
scaleHelper(transform, scaleX, scaleY);
|
|
10959
11071
|
if (rotation)
|
|
10960
11072
|
rotate(transform, rotation);
|
|
11073
|
+
if (skew)
|
|
11074
|
+
skewHelper(transform, skew.x, skew.y);
|
|
11075
|
+
if (scaleX)
|
|
11076
|
+
scaleHelper(transform, scaleX, scaleY);
|
|
11077
|
+
translate$1(transform, box.x + x, box.y + y);
|
|
11078
|
+
if (clipSize) {
|
|
11079
|
+
tempMatrix.a = box.width / clipSize.width, tempMatrix.d = box.height / clipSize.height;
|
|
11080
|
+
multiplyParent(transform, tempMatrix);
|
|
11081
|
+
}
|
|
10961
11082
|
data.transform = transform;
|
|
10962
11083
|
}
|
|
10963
11084
|
function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, align) {
|
|
@@ -10994,11 +11115,15 @@ const tempBox = new Bounds();
|
|
|
10994
11115
|
const tempScaleData = {};
|
|
10995
11116
|
const tempImage = {};
|
|
10996
11117
|
function createData(leafPaint, image, paint, box) {
|
|
10997
|
-
const { changeful, sync } = paint;
|
|
11118
|
+
const { changeful, sync, editing, scaleFixed } = paint;
|
|
10998
11119
|
if (changeful)
|
|
10999
11120
|
leafPaint.changeful = changeful;
|
|
11000
11121
|
if (sync)
|
|
11001
11122
|
leafPaint.sync = sync;
|
|
11123
|
+
if (editing)
|
|
11124
|
+
leafPaint.editing = editing;
|
|
11125
|
+
if (scaleFixed)
|
|
11126
|
+
leafPaint.scaleFixed = scaleFixed;
|
|
11002
11127
|
leafPaint.data = getPatternData(paint, box, image);
|
|
11003
11128
|
}
|
|
11004
11129
|
function getPatternData(paint, box, image) {
|
|
@@ -11007,7 +11132,7 @@ function getPatternData(paint, box, image) {
|
|
|
11007
11132
|
if (paint.mode === 'strench')
|
|
11008
11133
|
paint.mode = 'stretch';
|
|
11009
11134
|
let { width, height } = image;
|
|
11010
|
-
const { opacity, mode, align, offset, scale, size, rotation, repeat, filters } = paint;
|
|
11135
|
+
const { opacity, mode, align, offset, scale, size, rotation, skew, clipSize, repeat, filters } = paint;
|
|
11011
11136
|
const sameBox = box.width === width && box.height === height;
|
|
11012
11137
|
const data = { mode };
|
|
11013
11138
|
const swapSize = align !== 'center' && (rotation || 0) % 180 === 90;
|
|
@@ -11041,8 +11166,8 @@ function getPatternData(paint, box, image) {
|
|
|
11041
11166
|
break;
|
|
11042
11167
|
case 'normal':
|
|
11043
11168
|
case 'clip':
|
|
11044
|
-
if (tempImage.x || tempImage.y || scaleX || rotation)
|
|
11045
|
-
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
|
|
11169
|
+
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew)
|
|
11170
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, paint.clipSize);
|
|
11046
11171
|
break;
|
|
11047
11172
|
case 'repeat':
|
|
11048
11173
|
if (!sameBox || scaleX || rotation)
|
|
@@ -11119,11 +11244,11 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
|
11119
11244
|
}
|
|
11120
11245
|
onLoadSuccess(ui, event);
|
|
11121
11246
|
}
|
|
11122
|
-
leafPaint.loadId =
|
|
11247
|
+
leafPaint.loadId = undefined;
|
|
11123
11248
|
}, (error) => {
|
|
11124
11249
|
ignoreRender(ui, false);
|
|
11125
11250
|
onLoadError(ui, event, error);
|
|
11126
|
-
leafPaint.loadId =
|
|
11251
|
+
leafPaint.loadId = undefined;
|
|
11127
11252
|
});
|
|
11128
11253
|
if (ui.placeholderColor) {
|
|
11129
11254
|
if (!ui.placeholderDelay)
|
|
@@ -11179,16 +11304,16 @@ function ignoreRender(ui, value) {
|
|
|
11179
11304
|
}
|
|
11180
11305
|
|
|
11181
11306
|
const { get: get$1, scale, copy: copy$1 } = MatrixHelper;
|
|
11182
|
-
const { ceil, abs
|
|
11307
|
+
const { ceil, abs } = Math;
|
|
11183
11308
|
function createPattern(ui, paint, pixelRatio) {
|
|
11184
|
-
let { scaleX, scaleY } =
|
|
11309
|
+
let { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
11185
11310
|
const id = scaleX + '-' + scaleY + '-' + pixelRatio;
|
|
11186
11311
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
11187
|
-
scaleX = abs$1(scaleX);
|
|
11188
|
-
scaleY = abs$1(scaleY);
|
|
11189
11312
|
const { image, data } = paint;
|
|
11190
11313
|
let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, transform, repeat } = data;
|
|
11191
11314
|
if (sx) {
|
|
11315
|
+
sx = abs(sx);
|
|
11316
|
+
sy = abs(sy);
|
|
11192
11317
|
imageMatrix = get$1();
|
|
11193
11318
|
copy$1(imageMatrix, transform);
|
|
11194
11319
|
scale(imageMatrix, 1 / sx, 1 / sy);
|
|
@@ -11241,9 +11366,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11241
11366
|
}
|
|
11242
11367
|
}
|
|
11243
11368
|
|
|
11244
|
-
const { abs } = Math;
|
|
11245
11369
|
function checkImage(ui, canvas, paint, allowDraw) {
|
|
11246
|
-
const { scaleX, scaleY } =
|
|
11370
|
+
const { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
11247
11371
|
const { pixelRatio } = canvas, { data } = paint;
|
|
11248
11372
|
if (!data || (paint.patternId === scaleX + '-' + scaleY + '-' + pixelRatio && !Export.running)) {
|
|
11249
11373
|
return false;
|
|
@@ -11256,8 +11380,8 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
11256
11380
|
else {
|
|
11257
11381
|
if (!(paint.changeful || ResizeEvent.isResizing(ui) || Export.running)) {
|
|
11258
11382
|
let { width, height } = data;
|
|
11259
|
-
width *=
|
|
11260
|
-
height *=
|
|
11383
|
+
width *= scaleX * pixelRatio;
|
|
11384
|
+
height *= scaleY * pixelRatio;
|
|
11261
11385
|
if (data.scaleX) {
|
|
11262
11386
|
width *= data.scaleX;
|
|
11263
11387
|
height *= data.scaleY;
|
|
@@ -11267,6 +11391,10 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
11267
11391
|
}
|
|
11268
11392
|
}
|
|
11269
11393
|
if (allowDraw) {
|
|
11394
|
+
if (ui.__.__isFastShadow) {
|
|
11395
|
+
canvas.fillStyle = paint.style || '#000';
|
|
11396
|
+
canvas.fill();
|
|
11397
|
+
}
|
|
11270
11398
|
drawImage(ui, canvas, paint, data);
|
|
11271
11399
|
return true;
|
|
11272
11400
|
}
|
|
@@ -11455,10 +11583,7 @@ function shadow(ui, current, shape) {
|
|
|
11455
11583
|
}
|
|
11456
11584
|
worldCanvas ? other.copyWorld(worldCanvas, nowWorld, nowWorld, 'destination-out') : other.copyWorld(shape.canvas, shapeBounds, bounds, 'destination-out');
|
|
11457
11585
|
}
|
|
11458
|
-
|
|
11459
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
11460
|
-
else
|
|
11461
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
11586
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
11462
11587
|
if (end && index < end)
|
|
11463
11588
|
other.clearWorld(copyBounds, true);
|
|
11464
11589
|
});
|
|
@@ -11517,10 +11642,7 @@ function innerShadow(ui, current, shape) {
|
|
|
11517
11642
|
copyBounds = bounds;
|
|
11518
11643
|
}
|
|
11519
11644
|
other.fillWorld(copyBounds, ColorConvert.string(item.color), 'source-in');
|
|
11520
|
-
|
|
11521
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
11522
|
-
else
|
|
11523
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
11645
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
11524
11646
|
if (end && index < end)
|
|
11525
11647
|
other.clearWorld(copyBounds, true);
|
|
11526
11648
|
});
|
|
@@ -11576,12 +11698,11 @@ Group.prototype.__renderMask = function (canvas, options) {
|
|
|
11576
11698
|
contentCanvas = getCanvas(canvas);
|
|
11577
11699
|
child.__render(maskCanvas, options);
|
|
11578
11700
|
}
|
|
11579
|
-
if (
|
|
11580
|
-
|
|
11581
|
-
}
|
|
11582
|
-
if (excludeRenderBounds(child, options))
|
|
11701
|
+
if (mask === 'clipping' || mask === 'clipping-path')
|
|
11702
|
+
excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
11583
11703
|
continue;
|
|
11584
|
-
|
|
11704
|
+
}
|
|
11705
|
+
excludeRenderBounds(child, options) || child.__render(contentCanvas || canvas, options);
|
|
11585
11706
|
}
|
|
11586
11707
|
maskEnd(this, currentMask, canvas, contentCanvas, maskCanvas, maskOpacity);
|
|
11587
11708
|
};
|
|
@@ -12175,4 +12296,4 @@ try {
|
|
|
12175
12296
|
}
|
|
12176
12297
|
catch (_a) { }
|
|
12177
12298
|
|
|
12178
|
-
export { AlignHelper, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Frame, FrameData, Group, GroupData, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, Interaction, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isEmptyData, isNull, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$2 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
|
|
12299
|
+
export { AlignHelper, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Frame, FrameData, Group, GroupData, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, Interaction, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isEmptyData, isNull, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix$1 as tempMatrix, tempPoint$2 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
|