@leafer-draw/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 +299 -181
- package/dist/miniapp.module.min.js +1 -1
- package/dist/miniapp.module.min.js.map +1 -1
- package/package.json +9 -9
package/dist/miniapp.module.js
CHANGED
|
@@ -43,7 +43,7 @@ const IncrementId = {
|
|
|
43
43
|
};
|
|
44
44
|
const I$1 = 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$8, multiplyParent: multiplyParent$
|
|
2079
|
+
const { copy: copy$8, 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$6, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$
|
|
4289
|
+
const { copy: copy$6, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$3, divideParent, getLayout } = MatrixHelper;
|
|
4261
4290
|
const matrix = {}, { 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$6(matrix, t.worldTransform);
|
|
4391
|
-
multiplyParent$
|
|
4428
|
+
multiplyParent$3(matrix, transform);
|
|
4392
4429
|
if (t.parent)
|
|
4393
4430
|
divideParent(matrix, t.parent.worldTransform);
|
|
4394
4431
|
L.setTransform(t, matrix, resize, transition);
|
|
4395
4432
|
},
|
|
4396
4433
|
transform(t, transform, resize, transition) {
|
|
4397
4434
|
copy$6(matrix, t.localTransform);
|
|
4398
|
-
multiplyParent$
|
|
4435
|
+
multiplyParent$3(matrix, transform);
|
|
4399
4436
|
L.setTransform(t, matrix, 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$3, 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; }
|
|
@@ -7063,6 +7118,11 @@ function zoomLayerType() {
|
|
|
7063
7118
|
});
|
|
7064
7119
|
};
|
|
7065
7120
|
}
|
|
7121
|
+
function createAttr(defaultValue) {
|
|
7122
|
+
return (target, key) => {
|
|
7123
|
+
defineKey(target, key, createDescriptor(key, defaultValue));
|
|
7124
|
+
};
|
|
7125
|
+
}
|
|
7066
7126
|
|
|
7067
7127
|
function hasTransparent$3(color) {
|
|
7068
7128
|
if (!color || color.length === 7 || color.length === 4)
|
|
@@ -7120,26 +7180,9 @@ const emptyPaint = {};
|
|
|
7120
7180
|
const debug$1 = Debug.get('UIData');
|
|
7121
7181
|
class UIData extends LeafData {
|
|
7122
7182
|
get scale() { const { scaleX, scaleY } = this; return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX; }
|
|
7123
|
-
get __strokeWidth() {
|
|
7124
|
-
|
|
7125
|
-
|
|
7126
|
-
const ui = this.__leaf;
|
|
7127
|
-
let { scaleX } = ui.__nowWorld || ui.__world;
|
|
7128
|
-
if (scaleX < 0)
|
|
7129
|
-
scaleX = -scaleX;
|
|
7130
|
-
return scaleX > 1 ? strokeWidth / scaleX : strokeWidth;
|
|
7131
|
-
}
|
|
7132
|
-
else
|
|
7133
|
-
return strokeWidth;
|
|
7134
|
-
}
|
|
7135
|
-
get __hasStroke() { return this.stroke && this.strokeWidth; }
|
|
7136
|
-
get __hasHalf() { const t = this; return (t.stroke && t.strokeAlign === 'center' && t.strokeWidth % 2) || undefined; }
|
|
7137
|
-
get __hasMultiPaint() {
|
|
7138
|
-
const t = this;
|
|
7139
|
-
if ((t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect)
|
|
7140
|
-
return true;
|
|
7141
|
-
return t.fill && this.__hasStroke;
|
|
7142
|
-
}
|
|
7183
|
+
get __strokeWidth() { return this.__getRealStrokeWidth(); }
|
|
7184
|
+
get __maxStrokeWidth() { const t = this; return t.__hasMultiStrokeStyle ? Math.max(t.__hasMultiStrokeStyle, t.strokeWidth) : t.strokeWidth; }
|
|
7185
|
+
get __hasMultiPaint() { const t = this; return (t.fill && this.__useStroke) || (t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect; }
|
|
7143
7186
|
get __clipAfterFill() { const t = this; return (t.cornerRadius || t.innerShadow || t.__pathInputed); }
|
|
7144
7187
|
get __hasSurface() { const t = this; return (t.fill || t.stroke); }
|
|
7145
7188
|
get __autoWidth() { return !this._width; }
|
|
@@ -7221,6 +7264,21 @@ class UIData extends LeafData {
|
|
|
7221
7264
|
Paint.compute('stroke', this.__leaf);
|
|
7222
7265
|
this.__needComputePaint = undefined;
|
|
7223
7266
|
}
|
|
7267
|
+
__getRealStrokeWidth(childStyle) {
|
|
7268
|
+
let { strokeWidth, strokeWidthFixed } = this;
|
|
7269
|
+
if (childStyle) {
|
|
7270
|
+
if (childStyle.strokeWidth)
|
|
7271
|
+
strokeWidth = childStyle.strokeWidth;
|
|
7272
|
+
if (childStyle.strokeWidthFixed !== undefined)
|
|
7273
|
+
strokeWidthFixed = childStyle.strokeWidthFixed;
|
|
7274
|
+
}
|
|
7275
|
+
if (strokeWidthFixed) {
|
|
7276
|
+
const scale = this.__leaf.getClampRenderScale();
|
|
7277
|
+
return scale > 1 ? strokeWidth / scale : strokeWidth;
|
|
7278
|
+
}
|
|
7279
|
+
else
|
|
7280
|
+
return strokeWidth;
|
|
7281
|
+
}
|
|
7224
7282
|
__setPaint(attrName, value) {
|
|
7225
7283
|
this.__setInput(attrName, value);
|
|
7226
7284
|
const layout = this.__leaf.__layout;
|
|
@@ -7245,6 +7303,7 @@ class UIData extends LeafData {
|
|
|
7245
7303
|
}
|
|
7246
7304
|
else {
|
|
7247
7305
|
stintSet$2(this, '__isAlphaPixelStroke', undefined);
|
|
7306
|
+
stintSet$2(this, '__hasMultiStrokeStyle', undefined);
|
|
7248
7307
|
this._stroke = this.__isStrokes = undefined;
|
|
7249
7308
|
}
|
|
7250
7309
|
}
|
|
@@ -7266,8 +7325,8 @@ class GroupData extends UIData {
|
|
|
7266
7325
|
|
|
7267
7326
|
class BoxData extends GroupData {
|
|
7268
7327
|
get __boxStroke() { return !this.__pathInputed; }
|
|
7269
|
-
get __drawAfterFill() { const t = this; return
|
|
7270
|
-
get __clipAfterFill() { return
|
|
7328
|
+
get __drawAfterFill() { const t = this; return t.__single || t.__clipAfterFill; }
|
|
7329
|
+
get __clipAfterFill() { const t = this; return t.overflow === 'hide' && t.__leaf.children.length && (t.__leaf.isOverflow || super.__clipAfterFill); }
|
|
7271
7330
|
}
|
|
7272
7331
|
|
|
7273
7332
|
class LeaferData extends GroupData {
|
|
@@ -7387,7 +7446,7 @@ class CanvasData extends RectData {
|
|
|
7387
7446
|
const UIBounds = {
|
|
7388
7447
|
__updateStrokeSpread() {
|
|
7389
7448
|
let width = 0, boxWidth = 0;
|
|
7390
|
-
const data = this.__, { strokeAlign, strokeWidth } = data, box = this.__box;
|
|
7449
|
+
const data = this.__, { strokeAlign, __maxStrokeWidth: strokeWidth } = data, box = this.__box;
|
|
7391
7450
|
if ((data.stroke || data.hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
7392
7451
|
boxWidth = width = strokeAlign === 'center' ? strokeWidth / 2 : strokeWidth;
|
|
7393
7452
|
if (!data.__boxStroke) {
|
|
@@ -7407,13 +7466,15 @@ const UIBounds = {
|
|
|
7407
7466
|
},
|
|
7408
7467
|
__updateRenderSpread() {
|
|
7409
7468
|
let width = 0;
|
|
7410
|
-
const { shadow, innerShadow, blur, backgroundBlur, filter } = this.__;
|
|
7469
|
+
const { shadow, innerShadow, blur, backgroundBlur, filter, renderSpread } = this.__;
|
|
7411
7470
|
if (shadow)
|
|
7412
7471
|
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));
|
|
7413
7472
|
if (blur)
|
|
7414
7473
|
width = Math.max(width, blur);
|
|
7415
7474
|
if (filter)
|
|
7416
7475
|
width += Filter.getSpread(filter);
|
|
7476
|
+
if (renderSpread)
|
|
7477
|
+
width += renderSpread;
|
|
7417
7478
|
let shapeWidth = width = Math.ceil(width);
|
|
7418
7479
|
if (innerShadow)
|
|
7419
7480
|
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));
|
|
@@ -7429,15 +7490,18 @@ const { stintSet: stintSet$1 } = DataHelper;
|
|
|
7429
7490
|
const UIRender = {
|
|
7430
7491
|
__updateChange() {
|
|
7431
7492
|
const data = this.__;
|
|
7493
|
+
if (data.__useStroke) {
|
|
7494
|
+
const useStroke = data.__useStroke = !!(data.stroke && data.strokeWidth);
|
|
7495
|
+
stintSet$1(this.__world, 'half', useStroke && data.strokeAlign === 'center' && data.strokeWidth % 2);
|
|
7496
|
+
stintSet$1(data, '__fillAfterStroke', useStroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7497
|
+
}
|
|
7432
7498
|
if (data.__useEffect) {
|
|
7433
7499
|
const { shadow, fill, stroke } = data, otherEffect = data.innerShadow || data.blur || data.backgroundBlur || data.filter;
|
|
7434
|
-
stintSet$1(data, '__isFastShadow', shadow && !otherEffect && shadow.length < 2 && !shadow[0].spread &&
|
|
7500
|
+
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')));
|
|
7435
7501
|
data.__useEffect = !!(shadow || otherEffect);
|
|
7436
7502
|
}
|
|
7437
|
-
stintSet$1(this.__world, 'half', data.__hasHalf);
|
|
7438
|
-
stintSet$1(data, '__fillAfterStroke', data.stroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7439
7503
|
data.__checkSingle();
|
|
7440
|
-
stintSet$1(data, '__complex', data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect);
|
|
7504
|
+
stintSet$1(data, '__complex', (data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect));
|
|
7441
7505
|
},
|
|
7442
7506
|
__drawFast(canvas, options) {
|
|
7443
7507
|
drawFast(this, canvas, options);
|
|
@@ -7495,18 +7559,15 @@ const UIRender = {
|
|
|
7495
7559
|
this.__drawFast(canvas, options);
|
|
7496
7560
|
}
|
|
7497
7561
|
},
|
|
7498
|
-
|
|
7499
|
-
|
|
7500
|
-
|
|
7501
|
-
|
|
7502
|
-
this.
|
|
7503
|
-
|
|
7504
|
-
|
|
7505
|
-
|
|
7506
|
-
|
|
7507
|
-
if (stroke && !ignoreStroke)
|
|
7508
|
-
this.__.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7509
|
-
}
|
|
7562
|
+
__drawShape(canvas, options) {
|
|
7563
|
+
this.__drawRenderPath(canvas);
|
|
7564
|
+
const data = this.__, { fill, stroke } = data;
|
|
7565
|
+
if (fill && !options.ignoreFill)
|
|
7566
|
+
data.__isAlphaPixelFill ? Paint.fills(fill, this, canvas) : Paint.fill('#000000', this, canvas);
|
|
7567
|
+
if (data.__isCanvas)
|
|
7568
|
+
this.__drawAfterFill(canvas, options);
|
|
7569
|
+
if (stroke && !options.ignoreStroke)
|
|
7570
|
+
data.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7510
7571
|
},
|
|
7511
7572
|
__drawAfterFill(canvas, options) {
|
|
7512
7573
|
if (this.__.__clipAfterFill) {
|
|
@@ -7543,17 +7604,17 @@ const RectRender = {
|
|
|
7543
7604
|
if (__drawAfterFill)
|
|
7544
7605
|
this.__drawAfterFill(canvas, options);
|
|
7545
7606
|
if (stroke) {
|
|
7546
|
-
const { strokeAlign, __strokeWidth } = this.__;
|
|
7547
|
-
if (!
|
|
7607
|
+
const { strokeAlign, __strokeWidth: strokeWidth } = this.__;
|
|
7608
|
+
if (!strokeWidth)
|
|
7548
7609
|
return;
|
|
7549
|
-
canvas.setStroke(stroke,
|
|
7550
|
-
const half =
|
|
7610
|
+
canvas.setStroke(stroke, strokeWidth, this.__);
|
|
7611
|
+
const half = strokeWidth / 2;
|
|
7551
7612
|
switch (strokeAlign) {
|
|
7552
7613
|
case 'center':
|
|
7553
7614
|
canvas.strokeRect(0, 0, width, height);
|
|
7554
7615
|
break;
|
|
7555
7616
|
case 'inside':
|
|
7556
|
-
width -=
|
|
7617
|
+
width -= strokeWidth, height -= strokeWidth;
|
|
7557
7618
|
if (width < 0 || height < 0) {
|
|
7558
7619
|
canvas.save();
|
|
7559
7620
|
this.__clip(canvas, options);
|
|
@@ -7564,7 +7625,7 @@ const RectRender = {
|
|
|
7564
7625
|
canvas.strokeRect(x + half, y + half, width, height);
|
|
7565
7626
|
break;
|
|
7566
7627
|
case 'outside':
|
|
7567
|
-
canvas.strokeRect(x - half, y - half, width +
|
|
7628
|
+
canvas.strokeRect(x - half, y - half, width + strokeWidth, height + strokeWidth);
|
|
7568
7629
|
break;
|
|
7569
7630
|
}
|
|
7570
7631
|
}
|
|
@@ -7577,6 +7638,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7577
7638
|
get isFrame() { return false; }
|
|
7578
7639
|
set scale(value) { MathHelper.assignScale(this, value); }
|
|
7579
7640
|
get scale() { return this.__.scale; }
|
|
7641
|
+
get isAutoWidth() { const t = this.__; return t.__autoWidth || t.autoWidth; }
|
|
7642
|
+
get isAutoHeight() { const t = this.__; return t.__autoHeight || t.autoHeight; }
|
|
7580
7643
|
get pen() {
|
|
7581
7644
|
const { path } = this.__;
|
|
7582
7645
|
pen.set(this.path = path || []);
|
|
@@ -7631,12 +7694,14 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7631
7694
|
}
|
|
7632
7695
|
}
|
|
7633
7696
|
__updateRenderPath() {
|
|
7634
|
-
|
|
7635
|
-
|
|
7697
|
+
const data = this.__;
|
|
7698
|
+
if (data.path) {
|
|
7636
7699
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
7637
7700
|
if (data.__useArrow)
|
|
7638
7701
|
PathArrow.addArrows(this, !data.cornerRadius);
|
|
7639
7702
|
}
|
|
7703
|
+
else
|
|
7704
|
+
data.__pathForRender && (data.__pathForRender = undefined);
|
|
7640
7705
|
}
|
|
7641
7706
|
__drawRenderPath(canvas) {
|
|
7642
7707
|
canvas.beginPath();
|
|
@@ -7789,6 +7854,9 @@ __decorate([
|
|
|
7789
7854
|
__decorate([
|
|
7790
7855
|
naturalBoundsType(1)
|
|
7791
7856
|
], UI.prototype, "pixelRatio", void 0);
|
|
7857
|
+
__decorate([
|
|
7858
|
+
affectRenderBoundsType(0)
|
|
7859
|
+
], UI.prototype, "renderSpread", void 0);
|
|
7792
7860
|
__decorate([
|
|
7793
7861
|
pathInputType()
|
|
7794
7862
|
], UI.prototype, "path", void 0);
|
|
@@ -7847,13 +7915,13 @@ __decorate([
|
|
|
7847
7915
|
surfaceType()
|
|
7848
7916
|
], UI.prototype, "fill", void 0);
|
|
7849
7917
|
__decorate([
|
|
7850
|
-
strokeType()
|
|
7918
|
+
strokeType(undefined, true)
|
|
7851
7919
|
], UI.prototype, "stroke", void 0);
|
|
7852
7920
|
__decorate([
|
|
7853
7921
|
strokeType('inside')
|
|
7854
7922
|
], UI.prototype, "strokeAlign", void 0);
|
|
7855
7923
|
__decorate([
|
|
7856
|
-
strokeType(1)
|
|
7924
|
+
strokeType(1, true)
|
|
7857
7925
|
], UI.prototype, "strokeWidth", void 0);
|
|
7858
7926
|
__decorate([
|
|
7859
7927
|
strokeType(false)
|
|
@@ -7945,7 +8013,8 @@ let Group = class Group extends UI {
|
|
|
7945
8013
|
}
|
|
7946
8014
|
toJSON(options) {
|
|
7947
8015
|
const data = super.toJSON(options);
|
|
7948
|
-
|
|
8016
|
+
if (!this.childlessJSON)
|
|
8017
|
+
data.children = this.children.map(child => child.toJSON(options));
|
|
7949
8018
|
return data;
|
|
7950
8019
|
}
|
|
7951
8020
|
pick(_hitPoint, _options) { return undefined; }
|
|
@@ -8280,7 +8349,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8280
8349
|
list.push(item);
|
|
8281
8350
|
this.requestRender();
|
|
8282
8351
|
}
|
|
8283
|
-
zoom(_zoomType,
|
|
8352
|
+
zoom(_zoomType, _optionsOrPadding, _scroll, _transition) {
|
|
8284
8353
|
return Plugin.need('view');
|
|
8285
8354
|
}
|
|
8286
8355
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
@@ -8325,7 +8394,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8325
8394
|
Leafer_1.list.remove(this);
|
|
8326
8395
|
try {
|
|
8327
8396
|
this.stop();
|
|
8328
|
-
this.
|
|
8397
|
+
this.emitLeafer(LeaferEvent.END);
|
|
8329
8398
|
this.__removeListenEvents();
|
|
8330
8399
|
this.__controllers.forEach(item => !(this.parent && item === this.interaction) && item.destroy());
|
|
8331
8400
|
this.__controllers.length = 0;
|
|
@@ -8392,8 +8461,8 @@ let Box = class Box extends Group {
|
|
|
8392
8461
|
__updateRenderSpread() { return this.__updateRectRenderSpread() || -1; }
|
|
8393
8462
|
__updateRectBoxBounds() { }
|
|
8394
8463
|
__updateBoxBounds(_secondLayout) {
|
|
8395
|
-
const data = this.__;
|
|
8396
8464
|
if (this.children.length && !this.pathInputed) {
|
|
8465
|
+
const data = this.__;
|
|
8397
8466
|
if (data.__autoSide) {
|
|
8398
8467
|
if (data.__hasSurface)
|
|
8399
8468
|
this.__extraUpdate();
|
|
@@ -8420,20 +8489,26 @@ let Box = class Box extends Group {
|
|
|
8420
8489
|
__updateStrokeBounds() { }
|
|
8421
8490
|
__updateRenderBounds() {
|
|
8422
8491
|
let isOverflow;
|
|
8423
|
-
const { renderBounds } = this.__layout;
|
|
8424
8492
|
if (this.children.length) {
|
|
8493
|
+
const data = this.__, { renderBounds, boxBounds } = this.__layout;
|
|
8425
8494
|
super.__updateRenderBounds();
|
|
8426
8495
|
copy$2(childrenRenderBounds, renderBounds);
|
|
8427
8496
|
this.__updateRectRenderBounds();
|
|
8428
|
-
|
|
8429
|
-
|
|
8497
|
+
if (data.scrollY || data.scrollX) {
|
|
8498
|
+
childrenRenderBounds.x += data.scrollX;
|
|
8499
|
+
childrenRenderBounds.y += data.scrollY;
|
|
8500
|
+
}
|
|
8501
|
+
isOverflow = !includes$1(boxBounds, childrenRenderBounds);
|
|
8502
|
+
if (isOverflow && data.overflow !== 'hide')
|
|
8430
8503
|
add(renderBounds, childrenRenderBounds);
|
|
8431
8504
|
}
|
|
8432
8505
|
else
|
|
8433
8506
|
this.__updateRectRenderBounds();
|
|
8434
8507
|
DataHelper.stintSet(this, 'isOverflow', isOverflow);
|
|
8508
|
+
this.__updateScrollBar();
|
|
8435
8509
|
}
|
|
8436
8510
|
__updateRectRenderBounds() { }
|
|
8511
|
+
__updateScrollBar() { }
|
|
8437
8512
|
__updateRectChange() { }
|
|
8438
8513
|
__updateChange() {
|
|
8439
8514
|
super.__updateChange();
|
|
@@ -8450,10 +8525,12 @@ let Box = class Box extends Group {
|
|
|
8450
8525
|
if (this.children.length)
|
|
8451
8526
|
this.__renderGroup(canvas, options);
|
|
8452
8527
|
}
|
|
8528
|
+
if (this.scrollBar)
|
|
8529
|
+
this.scrollBar.__render(canvas, options);
|
|
8453
8530
|
}
|
|
8454
8531
|
__drawContent(canvas, options) {
|
|
8455
8532
|
this.__renderGroup(canvas, options);
|
|
8456
|
-
if (this.__.
|
|
8533
|
+
if (this.__.__useStroke || this.__.__useEffect) {
|
|
8457
8534
|
canvas.setWorld(this.__nowWorld);
|
|
8458
8535
|
this.__drawRenderPath(canvas);
|
|
8459
8536
|
}
|
|
@@ -8673,8 +8750,8 @@ let Polygon = class Polygon extends UI {
|
|
|
8673
8750
|
for (let i = 1; i < sides; i++) {
|
|
8674
8751
|
lineTo$1(path, rx + rx * sin$1((i * 2 * PI$1) / sides), ry - ry * cos$1((i * 2 * PI$1) / sides));
|
|
8675
8752
|
}
|
|
8753
|
+
closePath$1(path);
|
|
8676
8754
|
}
|
|
8677
|
-
closePath$1(path);
|
|
8678
8755
|
}
|
|
8679
8756
|
__updateRenderPath() { }
|
|
8680
8757
|
__updateBoxBounds() { }
|
|
@@ -8912,6 +8989,11 @@ let Text = class Text extends UI {
|
|
|
8912
8989
|
return;
|
|
8913
8990
|
super.__draw(canvas, options, originCanvas);
|
|
8914
8991
|
}
|
|
8992
|
+
__drawShape(canvas, options) {
|
|
8993
|
+
if (options.shape)
|
|
8994
|
+
this.__box && this.__box.__drawShape(canvas, options);
|
|
8995
|
+
super.__drawShape(canvas, options);
|
|
8996
|
+
}
|
|
8915
8997
|
destroy() {
|
|
8916
8998
|
if (this.boxStyle)
|
|
8917
8999
|
this.boxStyle = null;
|
|
@@ -9107,9 +9189,14 @@ function fills(fills, ui, canvas) {
|
|
|
9107
9189
|
}
|
|
9108
9190
|
}
|
|
9109
9191
|
canvas.fillStyle = item.style;
|
|
9110
|
-
if (item.transform) {
|
|
9192
|
+
if (item.transform || item.scaleFixed) {
|
|
9111
9193
|
canvas.save();
|
|
9112
|
-
|
|
9194
|
+
if (item.transform)
|
|
9195
|
+
canvas.transform(item.transform);
|
|
9196
|
+
if (item.scaleFixed) {
|
|
9197
|
+
const { scaleX, scaleY } = ui.getRenderScaleData(true);
|
|
9198
|
+
canvas.scale(1 / scaleX, 1 / scaleY);
|
|
9199
|
+
}
|
|
9113
9200
|
if (item.blendMode)
|
|
9114
9201
|
canvas.blendMode = item.blendMode;
|
|
9115
9202
|
fillPathOrText(ui, canvas);
|
|
@@ -9145,8 +9232,13 @@ function strokeText(stroke, ui, canvas) {
|
|
|
9145
9232
|
}
|
|
9146
9233
|
function drawCenter$1(stroke, strokeWidthScale, ui, canvas) {
|
|
9147
9234
|
const data = ui.__;
|
|
9148
|
-
|
|
9149
|
-
|
|
9235
|
+
if (typeof stroke === 'object') {
|
|
9236
|
+
drawStrokesStyle(stroke, strokeWidthScale, true, ui, canvas);
|
|
9237
|
+
}
|
|
9238
|
+
else {
|
|
9239
|
+
canvas.setStroke(stroke, data.__strokeWidth * strokeWidthScale, data);
|
|
9240
|
+
drawTextStroke(ui, canvas);
|
|
9241
|
+
}
|
|
9150
9242
|
}
|
|
9151
9243
|
function drawAlign(stroke, align, ui, canvas) {
|
|
9152
9244
|
const out = canvas.getSameCanvas(true, true);
|
|
@@ -9155,15 +9247,9 @@ function drawAlign(stroke, align, ui, canvas) {
|
|
|
9155
9247
|
out.blendMode = align === 'outside' ? 'destination-out' : 'destination-in';
|
|
9156
9248
|
fillText(ui, out);
|
|
9157
9249
|
out.blendMode = 'normal';
|
|
9158
|
-
|
|
9250
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
9159
9251
|
out.recycle(ui.__nowWorld);
|
|
9160
9252
|
}
|
|
9161
|
-
function copyWorld(canvas, out, ui) {
|
|
9162
|
-
if (ui.__worldFlipped || Platform.fullImageShadow)
|
|
9163
|
-
canvas.copyWorldByReset(out, ui.__nowWorld);
|
|
9164
|
-
else
|
|
9165
|
-
canvas.copyWorldToInner(out, ui.__nowWorld, ui.__layout.renderBounds);
|
|
9166
|
-
}
|
|
9167
9253
|
function drawTextStroke(ui, canvas) {
|
|
9168
9254
|
let row, data = ui.__.__textDrawData;
|
|
9169
9255
|
const { rows, decorationY } = data;
|
|
@@ -9179,14 +9265,21 @@ function drawTextStroke(ui, canvas) {
|
|
|
9179
9265
|
rows.forEach(row => decorationY.forEach(value => canvas.strokeRect(row.x, row.y + value, row.width, decorationHeight)));
|
|
9180
9266
|
}
|
|
9181
9267
|
}
|
|
9182
|
-
function drawStrokesStyle(strokes, isText, ui, canvas) {
|
|
9268
|
+
function drawStrokesStyle(strokes, strokeWidthScale, isText, ui, canvas) {
|
|
9183
9269
|
let item;
|
|
9270
|
+
const data = ui.__, { __hasMultiStrokeStyle } = data;
|
|
9271
|
+
__hasMultiStrokeStyle || canvas.setStroke(undefined, data.__strokeWidth * strokeWidthScale, data);
|
|
9184
9272
|
for (let i = 0, len = strokes.length; i < len; i++) {
|
|
9185
9273
|
item = strokes[i];
|
|
9186
9274
|
if (item.image && PaintImage.checkImage(ui, canvas, item, false))
|
|
9187
9275
|
continue;
|
|
9188
9276
|
if (item.style) {
|
|
9189
|
-
|
|
9277
|
+
if (__hasMultiStrokeStyle) {
|
|
9278
|
+
const { strokeStyle } = item;
|
|
9279
|
+
strokeStyle ? canvas.setStroke(item.style, data.__getRealStrokeWidth(strokeStyle) * strokeWidthScale, data, strokeStyle) : canvas.setStroke(item.style, data.__strokeWidth * strokeWidthScale, data);
|
|
9280
|
+
}
|
|
9281
|
+
else
|
|
9282
|
+
canvas.strokeStyle = item.style;
|
|
9190
9283
|
if (item.blendMode) {
|
|
9191
9284
|
canvas.saveBlendMode(item.blendMode);
|
|
9192
9285
|
isText ? drawTextStroke(ui, canvas) : canvas.stroke();
|
|
@@ -9225,8 +9318,13 @@ function strokes(strokes, ui, canvas) {
|
|
|
9225
9318
|
}
|
|
9226
9319
|
function drawCenter(stroke, strokeWidthScale, ui, canvas) {
|
|
9227
9320
|
const data = ui.__;
|
|
9228
|
-
|
|
9229
|
-
|
|
9321
|
+
if (typeof stroke === 'object') {
|
|
9322
|
+
drawStrokesStyle(stroke, strokeWidthScale, false, ui, canvas);
|
|
9323
|
+
}
|
|
9324
|
+
else {
|
|
9325
|
+
canvas.setStroke(stroke, data.__strokeWidth * strokeWidthScale, data);
|
|
9326
|
+
canvas.stroke();
|
|
9327
|
+
}
|
|
9230
9328
|
if (data.__useArrow)
|
|
9231
9329
|
Paint.strokeArrow(stroke, ui, canvas);
|
|
9232
9330
|
}
|
|
@@ -9248,7 +9346,7 @@ function drawOutside(stroke, ui, canvas) {
|
|
|
9248
9346
|
drawCenter(stroke, 2, ui, out);
|
|
9249
9347
|
out.clipUI(data);
|
|
9250
9348
|
out.clearWorld(renderBounds);
|
|
9251
|
-
|
|
9349
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
9252
9350
|
out.recycle(ui.__nowWorld);
|
|
9253
9351
|
}
|
|
9254
9352
|
}
|
|
@@ -9303,8 +9401,16 @@ function compute(attrName, ui) {
|
|
|
9303
9401
|
if (!(paints instanceof Array))
|
|
9304
9402
|
paints = [paints];
|
|
9305
9403
|
recycleMap = PaintImage.recycleImage(attrName, data);
|
|
9404
|
+
let maxChildStrokeWidth;
|
|
9306
9405
|
for (let i = 0, len = paints.length, item; i < len; i++) {
|
|
9307
|
-
(item = getLeafPaint(attrName, paints[i], ui))
|
|
9406
|
+
if (item = getLeafPaint(attrName, paints[i], ui)) {
|
|
9407
|
+
leafPaints.push(item);
|
|
9408
|
+
if (item.strokeStyle) {
|
|
9409
|
+
maxChildStrokeWidth || (maxChildStrokeWidth = 1);
|
|
9410
|
+
if (item.strokeStyle.strokeWidth)
|
|
9411
|
+
maxChildStrokeWidth = Math.max(maxChildStrokeWidth, item.strokeStyle.strokeWidth);
|
|
9412
|
+
}
|
|
9413
|
+
}
|
|
9308
9414
|
}
|
|
9309
9415
|
data['_' + attrName] = leafPaints.length ? leafPaints : undefined;
|
|
9310
9416
|
if (leafPaints.length) {
|
|
@@ -9321,6 +9427,7 @@ function compute(attrName, ui) {
|
|
|
9321
9427
|
else {
|
|
9322
9428
|
stintSet(data, '__isAlphaPixelStroke', isAlphaPixel);
|
|
9323
9429
|
stintSet(data, '__isTransparentStroke', isTransparent);
|
|
9430
|
+
stintSet(data, '__hasMultiStrokeStyle', maxChildStrokeWidth);
|
|
9324
9431
|
}
|
|
9325
9432
|
}
|
|
9326
9433
|
function getLeafPaint(attrName, paint, ui) {
|
|
@@ -9352,6 +9459,11 @@ function getLeafPaint(attrName, paint, ui) {
|
|
|
9352
9459
|
if (data) {
|
|
9353
9460
|
if (typeof data.style === 'string' && hasTransparent$1(data.style))
|
|
9354
9461
|
data.isTransparent = true;
|
|
9462
|
+
if (paint.style) {
|
|
9463
|
+
if (paint.style.strokeWidth === 0)
|
|
9464
|
+
return undefined;
|
|
9465
|
+
data.strokeStyle = paint.style;
|
|
9466
|
+
}
|
|
9355
9467
|
if (paint.blendMode)
|
|
9356
9468
|
data.blendMode = paint.blendMode;
|
|
9357
9469
|
}
|
|
@@ -9371,8 +9483,8 @@ const PaintModule = {
|
|
|
9371
9483
|
shape
|
|
9372
9484
|
};
|
|
9373
9485
|
|
|
9374
|
-
let origin = {};
|
|
9375
|
-
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate } = MatrixHelper;
|
|
9486
|
+
let origin = {}, tempMatrix = getMatrixData();
|
|
9487
|
+
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, multiplyParent, scale: scaleHelper, rotate, skew: skewHelper } = MatrixHelper;
|
|
9376
9488
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
9377
9489
|
const transform = get$3();
|
|
9378
9490
|
translate$1(transform, box.x + x, box.y + y);
|
|
@@ -9381,13 +9493,19 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
9381
9493
|
rotateOfOuter$1(transform, { x: box.x + box.width / 2, y: box.y + box.height / 2 }, rotation);
|
|
9382
9494
|
data.transform = transform;
|
|
9383
9495
|
}
|
|
9384
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
9496
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipSize) {
|
|
9385
9497
|
const transform = get$3();
|
|
9386
|
-
translate$1(transform, box.x + x, box.y + y);
|
|
9387
|
-
if (scaleX)
|
|
9388
|
-
scaleHelper(transform, scaleX, scaleY);
|
|
9389
9498
|
if (rotation)
|
|
9390
9499
|
rotate(transform, rotation);
|
|
9500
|
+
if (skew)
|
|
9501
|
+
skewHelper(transform, skew.x, skew.y);
|
|
9502
|
+
if (scaleX)
|
|
9503
|
+
scaleHelper(transform, scaleX, scaleY);
|
|
9504
|
+
translate$1(transform, box.x + x, box.y + y);
|
|
9505
|
+
if (clipSize) {
|
|
9506
|
+
tempMatrix.a = box.width / clipSize.width, tempMatrix.d = box.height / clipSize.height;
|
|
9507
|
+
multiplyParent(transform, tempMatrix);
|
|
9508
|
+
}
|
|
9391
9509
|
data.transform = transform;
|
|
9392
9510
|
}
|
|
9393
9511
|
function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, align) {
|
|
@@ -9424,11 +9542,15 @@ const tempBox = new Bounds();
|
|
|
9424
9542
|
const tempScaleData = {};
|
|
9425
9543
|
const tempImage = {};
|
|
9426
9544
|
function createData(leafPaint, image, paint, box) {
|
|
9427
|
-
const { changeful, sync } = paint;
|
|
9545
|
+
const { changeful, sync, editing, scaleFixed } = paint;
|
|
9428
9546
|
if (changeful)
|
|
9429
9547
|
leafPaint.changeful = changeful;
|
|
9430
9548
|
if (sync)
|
|
9431
9549
|
leafPaint.sync = sync;
|
|
9550
|
+
if (editing)
|
|
9551
|
+
leafPaint.editing = editing;
|
|
9552
|
+
if (scaleFixed)
|
|
9553
|
+
leafPaint.scaleFixed = scaleFixed;
|
|
9432
9554
|
leafPaint.data = getPatternData(paint, box, image);
|
|
9433
9555
|
}
|
|
9434
9556
|
function getPatternData(paint, box, image) {
|
|
@@ -9437,7 +9559,7 @@ function getPatternData(paint, box, image) {
|
|
|
9437
9559
|
if (paint.mode === 'strench')
|
|
9438
9560
|
paint.mode = 'stretch';
|
|
9439
9561
|
let { width, height } = image;
|
|
9440
|
-
const { opacity, mode, align, offset, scale, size, rotation, repeat, filters } = paint;
|
|
9562
|
+
const { opacity, mode, align, offset, scale, size, rotation, skew, clipSize, repeat, filters } = paint;
|
|
9441
9563
|
const sameBox = box.width === width && box.height === height;
|
|
9442
9564
|
const data = { mode };
|
|
9443
9565
|
const swapSize = align !== 'center' && (rotation || 0) % 180 === 90;
|
|
@@ -9471,8 +9593,8 @@ function getPatternData(paint, box, image) {
|
|
|
9471
9593
|
break;
|
|
9472
9594
|
case 'normal':
|
|
9473
9595
|
case 'clip':
|
|
9474
|
-
if (tempImage.x || tempImage.y || scaleX || rotation)
|
|
9475
|
-
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
|
|
9596
|
+
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew)
|
|
9597
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, paint.clipSize);
|
|
9476
9598
|
break;
|
|
9477
9599
|
case 'repeat':
|
|
9478
9600
|
if (!sameBox || scaleX || rotation)
|
|
@@ -9549,11 +9671,11 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
|
9549
9671
|
}
|
|
9550
9672
|
onLoadSuccess(ui, event);
|
|
9551
9673
|
}
|
|
9552
|
-
leafPaint.loadId =
|
|
9674
|
+
leafPaint.loadId = undefined;
|
|
9553
9675
|
}, (error) => {
|
|
9554
9676
|
ignoreRender(ui, false);
|
|
9555
9677
|
onLoadError(ui, event, error);
|
|
9556
|
-
leafPaint.loadId =
|
|
9678
|
+
leafPaint.loadId = undefined;
|
|
9557
9679
|
});
|
|
9558
9680
|
if (ui.placeholderColor) {
|
|
9559
9681
|
if (!ui.placeholderDelay)
|
|
@@ -9609,16 +9731,16 @@ function ignoreRender(ui, value) {
|
|
|
9609
9731
|
}
|
|
9610
9732
|
|
|
9611
9733
|
const { get: get$1, scale, copy: copy$1 } = MatrixHelper;
|
|
9612
|
-
const { ceil, abs
|
|
9734
|
+
const { ceil, abs } = Math;
|
|
9613
9735
|
function createPattern(ui, paint, pixelRatio) {
|
|
9614
|
-
let { scaleX, scaleY } =
|
|
9736
|
+
let { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
9615
9737
|
const id = scaleX + '-' + scaleY + '-' + pixelRatio;
|
|
9616
9738
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
9617
|
-
scaleX = abs$1(scaleX);
|
|
9618
|
-
scaleY = abs$1(scaleY);
|
|
9619
9739
|
const { image, data } = paint;
|
|
9620
9740
|
let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, transform, repeat } = data;
|
|
9621
9741
|
if (sx) {
|
|
9742
|
+
sx = abs(sx);
|
|
9743
|
+
sy = abs(sy);
|
|
9622
9744
|
imageMatrix = get$1();
|
|
9623
9745
|
copy$1(imageMatrix, transform);
|
|
9624
9746
|
scale(imageMatrix, 1 / sx, 1 / sy);
|
|
@@ -9671,9 +9793,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
9671
9793
|
}
|
|
9672
9794
|
}
|
|
9673
9795
|
|
|
9674
|
-
const { abs } = Math;
|
|
9675
9796
|
function checkImage(ui, canvas, paint, allowDraw) {
|
|
9676
|
-
const { scaleX, scaleY } =
|
|
9797
|
+
const { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
9677
9798
|
const { pixelRatio } = canvas, { data } = paint;
|
|
9678
9799
|
if (!data || (paint.patternId === scaleX + '-' + scaleY + '-' + pixelRatio && !Export.running)) {
|
|
9679
9800
|
return false;
|
|
@@ -9686,8 +9807,8 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
9686
9807
|
else {
|
|
9687
9808
|
if (!(paint.changeful || ResizeEvent.isResizing(ui) || Export.running)) {
|
|
9688
9809
|
let { width, height } = data;
|
|
9689
|
-
width *=
|
|
9690
|
-
height *=
|
|
9810
|
+
width *= scaleX * pixelRatio;
|
|
9811
|
+
height *= scaleY * pixelRatio;
|
|
9691
9812
|
if (data.scaleX) {
|
|
9692
9813
|
width *= data.scaleX;
|
|
9693
9814
|
height *= data.scaleY;
|
|
@@ -9697,6 +9818,10 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
9697
9818
|
}
|
|
9698
9819
|
}
|
|
9699
9820
|
if (allowDraw) {
|
|
9821
|
+
if (ui.__.__isFastShadow) {
|
|
9822
|
+
canvas.fillStyle = paint.style || '#000';
|
|
9823
|
+
canvas.fill();
|
|
9824
|
+
}
|
|
9700
9825
|
drawImage(ui, canvas, paint, data);
|
|
9701
9826
|
return true;
|
|
9702
9827
|
}
|
|
@@ -9885,10 +10010,7 @@ function shadow(ui, current, shape) {
|
|
|
9885
10010
|
}
|
|
9886
10011
|
worldCanvas ? other.copyWorld(worldCanvas, nowWorld, nowWorld, 'destination-out') : other.copyWorld(shape.canvas, shapeBounds, bounds, 'destination-out');
|
|
9887
10012
|
}
|
|
9888
|
-
|
|
9889
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
9890
|
-
else
|
|
9891
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
10013
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
9892
10014
|
if (end && index < end)
|
|
9893
10015
|
other.clearWorld(copyBounds, true);
|
|
9894
10016
|
});
|
|
@@ -9947,10 +10069,7 @@ function innerShadow(ui, current, shape) {
|
|
|
9947
10069
|
copyBounds = bounds;
|
|
9948
10070
|
}
|
|
9949
10071
|
other.fillWorld(copyBounds, ColorConvert.string(item.color), 'source-in');
|
|
9950
|
-
|
|
9951
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
9952
|
-
else
|
|
9953
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
10072
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
9954
10073
|
if (end && index < end)
|
|
9955
10074
|
other.clearWorld(copyBounds, true);
|
|
9956
10075
|
});
|
|
@@ -10006,12 +10125,11 @@ Group.prototype.__renderMask = function (canvas, options) {
|
|
|
10006
10125
|
contentCanvas = getCanvas(canvas);
|
|
10007
10126
|
child.__render(maskCanvas, options);
|
|
10008
10127
|
}
|
|
10009
|
-
if (
|
|
10010
|
-
|
|
10011
|
-
}
|
|
10012
|
-
if (excludeRenderBounds(child, options))
|
|
10128
|
+
if (mask === 'clipping' || mask === 'clipping-path')
|
|
10129
|
+
excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
10013
10130
|
continue;
|
|
10014
|
-
|
|
10131
|
+
}
|
|
10132
|
+
excludeRenderBounds(child, options) || child.__render(contentCanvas || canvas, options);
|
|
10015
10133
|
}
|
|
10016
10134
|
maskEnd(this, currentMask, canvas, contentCanvas, maskCanvas, maskOpacity);
|
|
10017
10135
|
};
|
|
@@ -10597,4 +10715,4 @@ try {
|
|
|
10597
10715
|
}
|
|
10598
10716
|
catch (_a) { }
|
|
10599
10717
|
|
|
10600
|
-
export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, 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 };
|
|
10718
|
+
export { AlignHelper, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, Frame, FrameData, Group, GroupData, Image, ImageData, ImageEvent, ImageManager, IncrementId, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferImage, Line, LineData, MathHelper, Matrix, MatrixHelper, MyImage, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Plugin, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, 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 };
|