@leafer-ui/miniapp 1.7.0 → 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 +77 -47
- package/dist/miniapp.esm.js +78 -48
- 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 +240 -144
- 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
|
@@ -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) {
|
|
@@ -763,7 +763,7 @@ class Matrix {
|
|
|
763
763
|
MatrixHelper.reset(this);
|
|
764
764
|
}
|
|
765
765
|
}
|
|
766
|
-
const tempMatrix = new Matrix();
|
|
766
|
+
const tempMatrix$1 = new Matrix();
|
|
767
767
|
|
|
768
768
|
const TwoPointBoundsHelper = {
|
|
769
769
|
tempPointBounds: {},
|
|
@@ -860,6 +860,12 @@ const AroundHelper = {
|
|
|
860
860
|
}
|
|
861
861
|
if (!onlyBoxSize)
|
|
862
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;
|
|
863
869
|
}
|
|
864
870
|
};
|
|
865
871
|
function get$4(around) {
|
|
@@ -1788,10 +1794,13 @@ function contextAttr(realName) {
|
|
|
1788
1794
|
return (target, key) => {
|
|
1789
1795
|
if (!realName)
|
|
1790
1796
|
realName = key;
|
|
1791
|
-
|
|
1797
|
+
const property = {
|
|
1792
1798
|
get() { return this.context[realName]; },
|
|
1793
1799
|
set(value) { this.context[realName] = value; }
|
|
1794
|
-
}
|
|
1800
|
+
};
|
|
1801
|
+
if (key === 'strokeCap')
|
|
1802
|
+
property.set = function (value) { this.context[realName] = value === 'none' ? 'butt' : value; };
|
|
1803
|
+
Object.defineProperty(target, key, property);
|
|
1795
1804
|
};
|
|
1796
1805
|
}
|
|
1797
1806
|
const contextMethodNameList = [];
|
|
@@ -2067,15 +2076,15 @@ __decorate([
|
|
|
2067
2076
|
contextMethod()
|
|
2068
2077
|
], Canvas$1.prototype, "strokeText", null);
|
|
2069
2078
|
|
|
2070
|
-
const { copy: copy$9, multiplyParent: multiplyParent$
|
|
2079
|
+
const { copy: copy$9, multiplyParent: multiplyParent$4 } = MatrixHelper, { round: round$1 } = Math;
|
|
2071
2080
|
const minSize = { width: 1, height: 1, pixelRatio: 1 };
|
|
2072
2081
|
const canvasSizeAttrs = ['width', 'height', 'pixelRatio'];
|
|
2073
2082
|
class LeaferCanvasBase extends Canvas$1 {
|
|
2074
2083
|
get width() { return this.size.width; }
|
|
2075
2084
|
get height() { return this.size.height; }
|
|
2076
2085
|
get pixelRatio() { return this.size.pixelRatio; }
|
|
2077
|
-
get pixelWidth() { return this.width * this.pixelRatio; }
|
|
2078
|
-
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; }
|
|
2079
2088
|
get pixelSnap() { return this.config.pixelSnap; }
|
|
2080
2089
|
set pixelSnap(value) { this.config.pixelSnap = value; }
|
|
2081
2090
|
get allowBackgroundColor() { return this.view && this.parentView; }
|
|
@@ -2140,7 +2149,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2140
2149
|
setWorld(matrix, parentMatrix) {
|
|
2141
2150
|
const { pixelRatio, pixelSnap } = this, w = this.worldTransform;
|
|
2142
2151
|
if (parentMatrix)
|
|
2143
|
-
multiplyParent$
|
|
2152
|
+
multiplyParent$4(matrix, parentMatrix, w);
|
|
2144
2153
|
w.a = matrix.a * pixelRatio;
|
|
2145
2154
|
w.b = matrix.b * pixelRatio;
|
|
2146
2155
|
w.c = matrix.c * pixelRatio;
|
|
@@ -2162,20 +2171,33 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2162
2171
|
if (w)
|
|
2163
2172
|
this.setTransform(w.a, w.b, w.c, w.d, w.e, w.f);
|
|
2164
2173
|
}
|
|
2165
|
-
setStroke(color, strokeWidth, options) {
|
|
2174
|
+
setStroke(color, strokeWidth, options, childOptions) {
|
|
2166
2175
|
if (strokeWidth)
|
|
2167
2176
|
this.strokeWidth = strokeWidth;
|
|
2168
2177
|
if (color)
|
|
2169
2178
|
this.strokeStyle = color;
|
|
2170
2179
|
if (options)
|
|
2171
|
-
this.setStrokeOptions(options);
|
|
2172
|
-
}
|
|
2173
|
-
setStrokeOptions(options) {
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
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;
|
|
2179
2201
|
}
|
|
2180
2202
|
saveBlendMode(blendMode) {
|
|
2181
2203
|
this.savedBlendMode = this.blendMode;
|
|
@@ -2409,7 +2431,7 @@ const RectHelper = {
|
|
|
2409
2431
|
}
|
|
2410
2432
|
};
|
|
2411
2433
|
|
|
2412
|
-
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;
|
|
2413
2435
|
const { setPoint: setPoint$1, addPoint: addPoint$1 } = TwoPointBoundsHelper;
|
|
2414
2436
|
const { set, toNumberPoints } = PointHelper;
|
|
2415
2437
|
const { M: M$5, L: L$6, C: C$4, Q: Q$4, Z: Z$5 } = PathCommandMap;
|
|
@@ -2484,7 +2506,7 @@ const BezierHelper = {
|
|
|
2484
2506
|
let totalRadian = endRadian - startRadian;
|
|
2485
2507
|
if (totalRadian < 0)
|
|
2486
2508
|
totalRadian += PI2;
|
|
2487
|
-
if (totalRadian === PI$2 || (abs$
|
|
2509
|
+
if (totalRadian === PI$2 || (abs$2(BAx + BAy) < 1.e-12) || (abs$2(CBx + CBy) < 1.e-12)) {
|
|
2488
2510
|
if (data)
|
|
2489
2511
|
data.push(L$6, x1, y1);
|
|
2490
2512
|
if (setPointBounds) {
|
|
@@ -2526,7 +2548,7 @@ const BezierHelper = {
|
|
|
2526
2548
|
totalRadian -= PI2;
|
|
2527
2549
|
if (anticlockwise)
|
|
2528
2550
|
totalRadian -= PI2;
|
|
2529
|
-
const parts = ceil$1(abs$
|
|
2551
|
+
const parts = ceil$1(abs$2(totalRadian / PI_2));
|
|
2530
2552
|
const partRadian = totalRadian / parts;
|
|
2531
2553
|
const partRadian4Sin = sin$3(partRadian / 4);
|
|
2532
2554
|
const control = 8 / 3 * partRadian4Sin * partRadian4Sin / sin$3(partRadian / 2);
|
|
@@ -2971,7 +2993,7 @@ const { current, pushData, copyData } = PathConvert;
|
|
|
2971
2993
|
|
|
2972
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;
|
|
2973
2995
|
const { getMinDistanceFrom, getRadianFrom } = PointHelper;
|
|
2974
|
-
const { tan, min, abs: abs$
|
|
2996
|
+
const { tan, min, abs: abs$1 } = Math;
|
|
2975
2997
|
const startPoint = {};
|
|
2976
2998
|
const PathCommandDataHelper = {
|
|
2977
2999
|
beginPath(data) {
|
|
@@ -3034,7 +3056,7 @@ const PathCommandDataHelper = {
|
|
|
3034
3056
|
arcTo(data, x1, y1, x2, y2, radius, lastX, lastY) {
|
|
3035
3057
|
if (lastX !== undefined) {
|
|
3036
3058
|
const d = getMinDistanceFrom(lastX, lastY, x1, y1, x2, y2);
|
|
3037
|
-
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))));
|
|
3038
3060
|
}
|
|
3039
3061
|
data.push(U$2, x1, y1, x2, y2, radius);
|
|
3040
3062
|
},
|
|
@@ -3910,6 +3932,13 @@ function defineKey(target, key, descriptor, noConfigurable) {
|
|
|
3910
3932
|
function getDescriptor(object, name) {
|
|
3911
3933
|
return Object.getOwnPropertyDescriptor(object, name);
|
|
3912
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
|
+
}
|
|
3913
3942
|
function getNames(object) {
|
|
3914
3943
|
return Object.getOwnPropertyNames(object);
|
|
3915
3944
|
}
|
|
@@ -4142,15 +4171,7 @@ function defineDataProcessor(target, key, defaultValue) {
|
|
|
4142
4171
|
const data = target.__DataProcessor.prototype;
|
|
4143
4172
|
const computedKey = '_' + key;
|
|
4144
4173
|
const setMethodName = getSetMethodName(key);
|
|
4145
|
-
const property =
|
|
4146
|
-
get() {
|
|
4147
|
-
const v = this[computedKey];
|
|
4148
|
-
return v === undefined ? defaultValue : v;
|
|
4149
|
-
},
|
|
4150
|
-
set(value) {
|
|
4151
|
-
this[computedKey] = value;
|
|
4152
|
-
}
|
|
4153
|
-
};
|
|
4174
|
+
const property = createDescriptor(key, defaultValue);
|
|
4154
4175
|
if (defaultValue === undefined) {
|
|
4155
4176
|
property.get = function () { return this[computedKey]; };
|
|
4156
4177
|
}
|
|
@@ -4265,7 +4286,7 @@ function registerUIEvent() {
|
|
|
4265
4286
|
};
|
|
4266
4287
|
}
|
|
4267
4288
|
|
|
4268
|
-
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;
|
|
4269
4290
|
const matrix$1 = {}, { round } = Math;
|
|
4270
4291
|
const LeafHelper = {
|
|
4271
4292
|
updateAllMatrix(leaf, checkAutoLayout, waitAutoLayout) {
|
|
@@ -4337,6 +4358,14 @@ const LeafHelper = {
|
|
|
4337
4358
|
}
|
|
4338
4359
|
return true;
|
|
4339
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
|
+
},
|
|
4340
4369
|
moveWorld(t, x, y = 0, isInnerPoint, transition) {
|
|
4341
4370
|
const local = typeof x === 'object' ? Object.assign({}, x) : { x, y };
|
|
4342
4371
|
isInnerPoint ? toOuterPoint$1(t.localTransform, local, local, true) : (t.parent && toInnerPoint$1(t.parent.worldTransform, local, local, true));
|
|
@@ -4396,14 +4425,14 @@ const LeafHelper = {
|
|
|
4396
4425
|
},
|
|
4397
4426
|
transformWorld(t, transform, resize, transition) {
|
|
4398
4427
|
copy$7(matrix$1, t.worldTransform);
|
|
4399
|
-
multiplyParent$
|
|
4428
|
+
multiplyParent$3(matrix$1, transform);
|
|
4400
4429
|
if (t.parent)
|
|
4401
4430
|
divideParent(matrix$1, t.parent.worldTransform);
|
|
4402
4431
|
L.setTransform(t, matrix$1, resize, transition);
|
|
4403
4432
|
},
|
|
4404
4433
|
transform(t, transform, resize, transition) {
|
|
4405
4434
|
copy$7(matrix$1, t.localTransform);
|
|
4406
|
-
multiplyParent$
|
|
4435
|
+
multiplyParent$3(matrix$1, transform);
|
|
4407
4436
|
L.setTransform(t, matrix$1, resize, transition);
|
|
4408
4437
|
},
|
|
4409
4438
|
setTransform(t, transform, resize, transition) {
|
|
@@ -5265,17 +5294,18 @@ const LeafDataProxy = {
|
|
|
5265
5294
|
}
|
|
5266
5295
|
};
|
|
5267
5296
|
|
|
5268
|
-
const { setLayout, multiplyParent: multiplyParent$
|
|
5297
|
+
const { setLayout, multiplyParent: multiplyParent$2, translateInner, defaultWorld } = MatrixHelper;
|
|
5269
5298
|
const { toPoint: toPoint$3, tempPoint } = AroundHelper;
|
|
5270
5299
|
const LeafMatrix = {
|
|
5271
5300
|
__updateWorldMatrix() {
|
|
5272
|
-
|
|
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.__);
|
|
5273
5303
|
},
|
|
5274
5304
|
__updateLocalMatrix() {
|
|
5275
5305
|
if (this.__local) {
|
|
5276
5306
|
const layout = this.__layout, local = this.__local, data = this.__;
|
|
5277
5307
|
if (layout.affectScaleOrRotation) {
|
|
5278
|
-
if ((layout.scaleChanged && (layout.resized = 'scale')) || layout.rotationChanged) {
|
|
5308
|
+
if ((layout.scaleChanged && (layout.resized || (layout.resized = 'scale'))) || layout.rotationChanged) {
|
|
5279
5309
|
setLayout(local, data, null, null, layout.affectRotation);
|
|
5280
5310
|
layout.scaleChanged = layout.rotationChanged = undefined;
|
|
5281
5311
|
}
|
|
@@ -5441,10 +5471,7 @@ const LeafRender = {
|
|
|
5441
5471
|
return this.__renderEraser(canvas, options);
|
|
5442
5472
|
const tempCanvas = canvas.getSameCanvas(true, true);
|
|
5443
5473
|
this.__draw(tempCanvas, options, canvas);
|
|
5444
|
-
|
|
5445
|
-
canvas.copyWorldByReset(tempCanvas, this.__nowWorld, null, data.__blendMode, true);
|
|
5446
|
-
else
|
|
5447
|
-
canvas.copyWorldToInner(tempCanvas, this.__nowWorld, this.__layout.renderBounds, data.__blendMode);
|
|
5474
|
+
LeafHelper.copyCanvasByWorld(this, canvas, tempCanvas, this.__nowWorld, data.__blendMode, true);
|
|
5448
5475
|
tempCanvas.recycle(this.__nowWorld);
|
|
5449
5476
|
}
|
|
5450
5477
|
else {
|
|
@@ -5492,7 +5519,7 @@ const BranchRender = {
|
|
|
5492
5519
|
options.dimOpacity = data.dim === true ? 0.2 : data.dim;
|
|
5493
5520
|
else if (data.dimskip)
|
|
5494
5521
|
options.dimOpacity && (options.dimOpacity = 0);
|
|
5495
|
-
if (data.__single) {
|
|
5522
|
+
if (data.__single && !this.isBranchLeaf) {
|
|
5496
5523
|
if (data.eraser === 'path')
|
|
5497
5524
|
return this.__renderEraser(canvas, options);
|
|
5498
5525
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
@@ -5514,9 +5541,7 @@ const BranchRender = {
|
|
|
5514
5541
|
else {
|
|
5515
5542
|
const { children } = this;
|
|
5516
5543
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
5517
|
-
|
|
5518
|
-
continue;
|
|
5519
|
-
children[i].__render(canvas, options);
|
|
5544
|
+
excludeRenderBounds$1(children[i], options) || children[i].__render(canvas, options);
|
|
5520
5545
|
}
|
|
5521
5546
|
}
|
|
5522
5547
|
},
|
|
@@ -5524,16 +5549,15 @@ const BranchRender = {
|
|
|
5524
5549
|
if (this.__worldOpacity) {
|
|
5525
5550
|
const { children } = this;
|
|
5526
5551
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
5527
|
-
|
|
5528
|
-
continue;
|
|
5529
|
-
children[i].__clip(canvas, options);
|
|
5552
|
+
excludeRenderBounds$1(children[i], options) || children[i].__clip(canvas, options);
|
|
5530
5553
|
}
|
|
5531
5554
|
}
|
|
5532
5555
|
}
|
|
5533
5556
|
};
|
|
5534
5557
|
|
|
5558
|
+
const tempScaleData$1 = {};
|
|
5535
5559
|
const { LEAF, create } = IncrementId;
|
|
5536
|
-
const { toInnerPoint, toOuterPoint, multiplyParent } = MatrixHelper;
|
|
5560
|
+
const { toInnerPoint, toOuterPoint, multiplyParent: multiplyParent$1 } = MatrixHelper;
|
|
5537
5561
|
const { toOuterOf } = BoundsHelper;
|
|
5538
5562
|
const { copy: copy$4, move } = PointHelper;
|
|
5539
5563
|
const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getFlipTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
|
|
@@ -5715,7 +5739,7 @@ let Leaf = class Leaf {
|
|
|
5715
5739
|
if (!this.__cameraWorld)
|
|
5716
5740
|
this.__cameraWorld = {};
|
|
5717
5741
|
const cameraWorld = this.__cameraWorld, world = this.__world;
|
|
5718
|
-
multiplyParent(world, options.matrix, cameraWorld, undefined, world);
|
|
5742
|
+
multiplyParent$1(world, options.matrix, cameraWorld, undefined, world);
|
|
5719
5743
|
toOuterOf(this.__layout.renderBounds, cameraWorld, cameraWorld);
|
|
5720
5744
|
cameraWorld.half !== world.half && (cameraWorld.half = world.half);
|
|
5721
5745
|
return cameraWorld;
|
|
@@ -5724,6 +5748,22 @@ let Leaf = class Leaf {
|
|
|
5724
5748
|
return this.__world;
|
|
5725
5749
|
}
|
|
5726
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
|
+
}
|
|
5727
5767
|
getTransform(relative) {
|
|
5728
5768
|
return this.__layout.getTransform(relative || 'local');
|
|
5729
5769
|
}
|
|
@@ -6248,7 +6288,7 @@ class LeafLevelList {
|
|
|
6248
6288
|
}
|
|
6249
6289
|
}
|
|
6250
6290
|
|
|
6251
|
-
const version = "1.
|
|
6291
|
+
const version = "1.8.0";
|
|
6252
6292
|
|
|
6253
6293
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6254
6294
|
get allowBackgroundColor() { return false; }
|
|
@@ -7235,6 +7275,11 @@ function zoomLayerType() {
|
|
|
7235
7275
|
});
|
|
7236
7276
|
};
|
|
7237
7277
|
}
|
|
7278
|
+
function createAttr(defaultValue) {
|
|
7279
|
+
return (target, key) => {
|
|
7280
|
+
defineKey(target, key, createDescriptor(key, defaultValue));
|
|
7281
|
+
};
|
|
7282
|
+
}
|
|
7238
7283
|
|
|
7239
7284
|
function hasTransparent$3(color) {
|
|
7240
7285
|
if (!color || color.length === 7 || color.length === 4)
|
|
@@ -7292,22 +7337,9 @@ const emptyPaint = {};
|
|
|
7292
7337
|
const debug$2 = Debug.get('UIData');
|
|
7293
7338
|
class UIData extends LeafData {
|
|
7294
7339
|
get scale() { const { scaleX, scaleY } = this; return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX; }
|
|
7295
|
-
get __strokeWidth() {
|
|
7296
|
-
|
|
7297
|
-
|
|
7298
|
-
const ui = this.__leaf;
|
|
7299
|
-
let { scaleX } = ui.__nowWorld || ui.__world;
|
|
7300
|
-
if (scaleX < 0)
|
|
7301
|
-
scaleX = -scaleX;
|
|
7302
|
-
return scaleX > 1 ? strokeWidth / scaleX : strokeWidth;
|
|
7303
|
-
}
|
|
7304
|
-
else
|
|
7305
|
-
return strokeWidth;
|
|
7306
|
-
}
|
|
7307
|
-
get __hasMultiPaint() {
|
|
7308
|
-
const t = this;
|
|
7309
|
-
return (t.fill && this.__useStroke) || (t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect;
|
|
7310
|
-
}
|
|
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; }
|
|
7311
7343
|
get __clipAfterFill() { const t = this; return (t.cornerRadius || t.innerShadow || t.__pathInputed); }
|
|
7312
7344
|
get __hasSurface() { const t = this; return (t.fill || t.stroke); }
|
|
7313
7345
|
get __autoWidth() { return !this._width; }
|
|
@@ -7389,6 +7421,21 @@ class UIData extends LeafData {
|
|
|
7389
7421
|
Paint.compute('stroke', this.__leaf);
|
|
7390
7422
|
this.__needComputePaint = undefined;
|
|
7391
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
|
+
}
|
|
7392
7439
|
__setPaint(attrName, value) {
|
|
7393
7440
|
this.__setInput(attrName, value);
|
|
7394
7441
|
const layout = this.__leaf.__layout;
|
|
@@ -7413,6 +7460,7 @@ class UIData extends LeafData {
|
|
|
7413
7460
|
}
|
|
7414
7461
|
else {
|
|
7415
7462
|
stintSet$2(this, '__isAlphaPixelStroke', undefined);
|
|
7463
|
+
stintSet$2(this, '__hasMultiStrokeStyle', undefined);
|
|
7416
7464
|
this._stroke = this.__isStrokes = undefined;
|
|
7417
7465
|
}
|
|
7418
7466
|
}
|
|
@@ -7434,8 +7482,8 @@ class GroupData extends UIData {
|
|
|
7434
7482
|
|
|
7435
7483
|
class BoxData extends GroupData {
|
|
7436
7484
|
get __boxStroke() { return !this.__pathInputed; }
|
|
7437
|
-
get __drawAfterFill() { const t = this; return
|
|
7438
|
-
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); }
|
|
7439
7487
|
}
|
|
7440
7488
|
|
|
7441
7489
|
class LeaferData extends GroupData {
|
|
@@ -7555,7 +7603,7 @@ class CanvasData extends RectData {
|
|
|
7555
7603
|
const UIBounds = {
|
|
7556
7604
|
__updateStrokeSpread() {
|
|
7557
7605
|
let width = 0, boxWidth = 0;
|
|
7558
|
-
const data = this.__, { strokeAlign, strokeWidth } = data, box = this.__box;
|
|
7606
|
+
const data = this.__, { strokeAlign, __maxStrokeWidth: strokeWidth } = data, box = this.__box;
|
|
7559
7607
|
if ((data.stroke || data.hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
7560
7608
|
boxWidth = width = strokeAlign === 'center' ? strokeWidth / 2 : strokeWidth;
|
|
7561
7609
|
if (!data.__boxStroke) {
|
|
@@ -7575,13 +7623,15 @@ const UIBounds = {
|
|
|
7575
7623
|
},
|
|
7576
7624
|
__updateRenderSpread() {
|
|
7577
7625
|
let width = 0;
|
|
7578
|
-
const { shadow, innerShadow, blur, backgroundBlur, filter } = this.__;
|
|
7626
|
+
const { shadow, innerShadow, blur, backgroundBlur, filter, renderSpread } = this.__;
|
|
7579
7627
|
if (shadow)
|
|
7580
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));
|
|
7581
7629
|
if (blur)
|
|
7582
7630
|
width = Math.max(width, blur);
|
|
7583
7631
|
if (filter)
|
|
7584
7632
|
width += Filter.getSpread(filter);
|
|
7633
|
+
if (renderSpread)
|
|
7634
|
+
width += renderSpread;
|
|
7585
7635
|
let shapeWidth = width = Math.ceil(width);
|
|
7586
7636
|
if (innerShadow)
|
|
7587
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));
|
|
@@ -7604,7 +7654,7 @@ const UIRender = {
|
|
|
7604
7654
|
}
|
|
7605
7655
|
if (data.__useEffect) {
|
|
7606
7656
|
const { shadow, fill, stroke } = data, otherEffect = data.innerShadow || data.blur || data.backgroundBlur || data.filter;
|
|
7607
|
-
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')));
|
|
7608
7658
|
data.__useEffect = !!(shadow || otherEffect);
|
|
7609
7659
|
}
|
|
7610
7660
|
data.__checkSingle();
|
|
@@ -7711,17 +7761,17 @@ const RectRender = {
|
|
|
7711
7761
|
if (__drawAfterFill)
|
|
7712
7762
|
this.__drawAfterFill(canvas, options);
|
|
7713
7763
|
if (stroke) {
|
|
7714
|
-
const { strokeAlign, __strokeWidth } = this.__;
|
|
7715
|
-
if (!
|
|
7764
|
+
const { strokeAlign, __strokeWidth: strokeWidth } = this.__;
|
|
7765
|
+
if (!strokeWidth)
|
|
7716
7766
|
return;
|
|
7717
|
-
canvas.setStroke(stroke,
|
|
7718
|
-
const half =
|
|
7767
|
+
canvas.setStroke(stroke, strokeWidth, this.__);
|
|
7768
|
+
const half = strokeWidth / 2;
|
|
7719
7769
|
switch (strokeAlign) {
|
|
7720
7770
|
case 'center':
|
|
7721
7771
|
canvas.strokeRect(0, 0, width, height);
|
|
7722
7772
|
break;
|
|
7723
7773
|
case 'inside':
|
|
7724
|
-
width -=
|
|
7774
|
+
width -= strokeWidth, height -= strokeWidth;
|
|
7725
7775
|
if (width < 0 || height < 0) {
|
|
7726
7776
|
canvas.save();
|
|
7727
7777
|
this.__clip(canvas, options);
|
|
@@ -7732,7 +7782,7 @@ const RectRender = {
|
|
|
7732
7782
|
canvas.strokeRect(x + half, y + half, width, height);
|
|
7733
7783
|
break;
|
|
7734
7784
|
case 'outside':
|
|
7735
|
-
canvas.strokeRect(x - half, y - half, width +
|
|
7785
|
+
canvas.strokeRect(x - half, y - half, width + strokeWidth, height + strokeWidth);
|
|
7736
7786
|
break;
|
|
7737
7787
|
}
|
|
7738
7788
|
}
|
|
@@ -7745,6 +7795,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7745
7795
|
get isFrame() { return false; }
|
|
7746
7796
|
set scale(value) { MathHelper.assignScale(this, value); }
|
|
7747
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; }
|
|
7748
7800
|
get pen() {
|
|
7749
7801
|
const { path } = this.__;
|
|
7750
7802
|
pen.set(this.path = path || []);
|
|
@@ -7959,6 +8011,9 @@ __decorate([
|
|
|
7959
8011
|
__decorate([
|
|
7960
8012
|
naturalBoundsType(1)
|
|
7961
8013
|
], UI.prototype, "pixelRatio", void 0);
|
|
8014
|
+
__decorate([
|
|
8015
|
+
affectRenderBoundsType(0)
|
|
8016
|
+
], UI.prototype, "renderSpread", void 0);
|
|
7962
8017
|
__decorate([
|
|
7963
8018
|
pathInputType()
|
|
7964
8019
|
], UI.prototype, "path", void 0);
|
|
@@ -8115,7 +8170,8 @@ let Group = class Group extends UI {
|
|
|
8115
8170
|
}
|
|
8116
8171
|
toJSON(options) {
|
|
8117
8172
|
const data = super.toJSON(options);
|
|
8118
|
-
|
|
8173
|
+
if (!this.childlessJSON)
|
|
8174
|
+
data.children = this.children.map(child => child.toJSON(options));
|
|
8119
8175
|
return data;
|
|
8120
8176
|
}
|
|
8121
8177
|
pick(_hitPoint, _options) { return undefined; }
|
|
@@ -8562,8 +8618,8 @@ let Box = class Box extends Group {
|
|
|
8562
8618
|
__updateRenderSpread() { return this.__updateRectRenderSpread() || -1; }
|
|
8563
8619
|
__updateRectBoxBounds() { }
|
|
8564
8620
|
__updateBoxBounds(_secondLayout) {
|
|
8565
|
-
const data = this.__;
|
|
8566
8621
|
if (this.children.length && !this.pathInputed) {
|
|
8622
|
+
const data = this.__;
|
|
8567
8623
|
if (data.__autoSide) {
|
|
8568
8624
|
if (data.__hasSurface)
|
|
8569
8625
|
this.__extraUpdate();
|
|
@@ -8590,20 +8646,26 @@ let Box = class Box extends Group {
|
|
|
8590
8646
|
__updateStrokeBounds() { }
|
|
8591
8647
|
__updateRenderBounds() {
|
|
8592
8648
|
let isOverflow;
|
|
8593
|
-
const { renderBounds } = this.__layout;
|
|
8594
8649
|
if (this.children.length) {
|
|
8650
|
+
const data = this.__, { renderBounds, boxBounds } = this.__layout;
|
|
8595
8651
|
super.__updateRenderBounds();
|
|
8596
8652
|
copy$3(childrenRenderBounds, renderBounds);
|
|
8597
8653
|
this.__updateRectRenderBounds();
|
|
8598
|
-
|
|
8599
|
-
|
|
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')
|
|
8600
8660
|
add(renderBounds, childrenRenderBounds);
|
|
8601
8661
|
}
|
|
8602
8662
|
else
|
|
8603
8663
|
this.__updateRectRenderBounds();
|
|
8604
8664
|
DataHelper.stintSet(this, 'isOverflow', isOverflow);
|
|
8665
|
+
this.__updateScrollBar();
|
|
8605
8666
|
}
|
|
8606
8667
|
__updateRectRenderBounds() { }
|
|
8668
|
+
__updateScrollBar() { }
|
|
8607
8669
|
__updateRectChange() { }
|
|
8608
8670
|
__updateChange() {
|
|
8609
8671
|
super.__updateChange();
|
|
@@ -8620,10 +8682,12 @@ let Box = class Box extends Group {
|
|
|
8620
8682
|
if (this.children.length)
|
|
8621
8683
|
this.__renderGroup(canvas, options);
|
|
8622
8684
|
}
|
|
8685
|
+
if (this.scrollBar)
|
|
8686
|
+
this.scrollBar.__render(canvas, options);
|
|
8623
8687
|
}
|
|
8624
8688
|
__drawContent(canvas, options) {
|
|
8625
8689
|
this.__renderGroup(canvas, options);
|
|
8626
|
-
if (this.__.__useStroke) {
|
|
8690
|
+
if (this.__.__useStroke || this.__.__useEffect) {
|
|
8627
8691
|
canvas.setWorld(this.__nowWorld);
|
|
8628
8692
|
this.__drawRenderPath(canvas);
|
|
8629
8693
|
}
|
|
@@ -10426,18 +10490,20 @@ leaf.__hitWorld = function (point) {
|
|
|
10426
10490
|
}
|
|
10427
10491
|
return this.__hit(inner);
|
|
10428
10492
|
};
|
|
10429
|
-
leaf.__hitFill = function (inner) {
|
|
10430
|
-
leaf.__hitStroke = function (inner, strokeWidth) {
|
|
10431
|
-
leaf.__hitPixel = function (inner) {
|
|
10432
|
-
leaf.__drawHitPath = function (canvas) {
|
|
10433
|
-
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); };
|
|
10434
10497
|
|
|
10435
10498
|
const matrix = new Matrix();
|
|
10436
10499
|
const ui$1 = UI.prototype;
|
|
10437
10500
|
ui$1.__updateHitCanvas = function () {
|
|
10438
10501
|
if (this.__box)
|
|
10439
10502
|
this.__box.__updateHitCanvas();
|
|
10440
|
-
const
|
|
10503
|
+
const leafer = this.leafer || (this.parent && this.parent.leafer);
|
|
10504
|
+
if (!leafer)
|
|
10505
|
+
return;
|
|
10506
|
+
const data = this.__, { hitCanvasManager } = leafer;
|
|
10441
10507
|
const isHitPixelFill = (data.__isAlphaPixelFill || data.__isCanvas) && data.hitFill === 'pixel';
|
|
10442
10508
|
const isHitPixelStroke = data.__isAlphaPixelStroke && data.hitStroke === 'pixel';
|
|
10443
10509
|
const isHitPixel = isHitPixelFill || isHitPixelStroke;
|
|
@@ -10473,7 +10539,7 @@ ui$1.__hit = function (inner) {
|
|
|
10473
10539
|
const needHitFillPath = ((data.fill || data.__isCanvas) && (hitFill === 'path' || (hitFill === 'pixel' && !(data.__isAlphaPixelFill || data.__isCanvas)))) || hitFill === 'all';
|
|
10474
10540
|
if (needHitFillPath && this.__hitFill(inner))
|
|
10475
10541
|
return true;
|
|
10476
|
-
const { hitStroke,
|
|
10542
|
+
const { hitStroke, __maxStrokeWidth: strokeWidth } = data;
|
|
10477
10543
|
const needHitStrokePath = (data.stroke && (hitStroke === 'path' || (hitStroke === 'pixel' && !data.__isAlphaPixelStroke))) || hitStroke === 'all';
|
|
10478
10544
|
if (!needHitFillPath && !needHitStrokePath)
|
|
10479
10545
|
return false;
|
|
@@ -10482,16 +10548,16 @@ ui$1.__hit = function (inner) {
|
|
|
10482
10548
|
if (needHitStrokePath) {
|
|
10483
10549
|
switch (data.strokeAlign) {
|
|
10484
10550
|
case 'inside':
|
|
10485
|
-
hitWidth +=
|
|
10551
|
+
hitWidth += strokeWidth * 2;
|
|
10486
10552
|
if (!needHitFillPath && this.__hitFill(inner) && this.__hitStroke(inner, hitWidth))
|
|
10487
10553
|
return true;
|
|
10488
10554
|
hitWidth = radiusWidth;
|
|
10489
10555
|
break;
|
|
10490
10556
|
case 'center':
|
|
10491
|
-
hitWidth +=
|
|
10557
|
+
hitWidth += strokeWidth;
|
|
10492
10558
|
break;
|
|
10493
10559
|
case 'outside':
|
|
10494
|
-
hitWidth +=
|
|
10560
|
+
hitWidth += strokeWidth * 2;
|
|
10495
10561
|
if (!needHitFillPath) {
|
|
10496
10562
|
if (!this.__hitFill(inner) && this.__hitStroke(inner, hitWidth))
|
|
10497
10563
|
return true;
|
|
@@ -10696,9 +10762,14 @@ function fills(fills, ui, canvas) {
|
|
|
10696
10762
|
}
|
|
10697
10763
|
}
|
|
10698
10764
|
canvas.fillStyle = item.style;
|
|
10699
|
-
if (item.transform) {
|
|
10765
|
+
if (item.transform || item.scaleFixed) {
|
|
10700
10766
|
canvas.save();
|
|
10701
|
-
|
|
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
|
+
}
|
|
10702
10773
|
if (item.blendMode)
|
|
10703
10774
|
canvas.blendMode = item.blendMode;
|
|
10704
10775
|
fillPathOrText(ui, canvas);
|
|
@@ -10734,8 +10805,13 @@ function strokeText(stroke, ui, canvas) {
|
|
|
10734
10805
|
}
|
|
10735
10806
|
function drawCenter$1(stroke, strokeWidthScale, ui, canvas) {
|
|
10736
10807
|
const data = ui.__;
|
|
10737
|
-
|
|
10738
|
-
|
|
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
|
+
}
|
|
10739
10815
|
}
|
|
10740
10816
|
function drawAlign(stroke, align, ui, canvas) {
|
|
10741
10817
|
const out = canvas.getSameCanvas(true, true);
|
|
@@ -10744,15 +10820,9 @@ function drawAlign(stroke, align, ui, canvas) {
|
|
|
10744
10820
|
out.blendMode = align === 'outside' ? 'destination-out' : 'destination-in';
|
|
10745
10821
|
fillText(ui, out);
|
|
10746
10822
|
out.blendMode = 'normal';
|
|
10747
|
-
|
|
10823
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
10748
10824
|
out.recycle(ui.__nowWorld);
|
|
10749
10825
|
}
|
|
10750
|
-
function copyWorld(canvas, out, ui) {
|
|
10751
|
-
if (ui.__worldFlipped || Platform.fullImageShadow)
|
|
10752
|
-
canvas.copyWorldByReset(out, ui.__nowWorld);
|
|
10753
|
-
else
|
|
10754
|
-
canvas.copyWorldToInner(out, ui.__nowWorld, ui.__layout.renderBounds);
|
|
10755
|
-
}
|
|
10756
10826
|
function drawTextStroke(ui, canvas) {
|
|
10757
10827
|
let row, data = ui.__.__textDrawData;
|
|
10758
10828
|
const { rows, decorationY } = data;
|
|
@@ -10768,14 +10838,21 @@ function drawTextStroke(ui, canvas) {
|
|
|
10768
10838
|
rows.forEach(row => decorationY.forEach(value => canvas.strokeRect(row.x, row.y + value, row.width, decorationHeight)));
|
|
10769
10839
|
}
|
|
10770
10840
|
}
|
|
10771
|
-
function drawStrokesStyle(strokes, isText, ui, canvas) {
|
|
10841
|
+
function drawStrokesStyle(strokes, strokeWidthScale, isText, ui, canvas) {
|
|
10772
10842
|
let item;
|
|
10843
|
+
const data = ui.__, { __hasMultiStrokeStyle } = data;
|
|
10844
|
+
__hasMultiStrokeStyle || canvas.setStroke(undefined, data.__strokeWidth * strokeWidthScale, data);
|
|
10773
10845
|
for (let i = 0, len = strokes.length; i < len; i++) {
|
|
10774
10846
|
item = strokes[i];
|
|
10775
10847
|
if (item.image && PaintImage.checkImage(ui, canvas, item, false))
|
|
10776
10848
|
continue;
|
|
10777
10849
|
if (item.style) {
|
|
10778
|
-
|
|
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;
|
|
10779
10856
|
if (item.blendMode) {
|
|
10780
10857
|
canvas.saveBlendMode(item.blendMode);
|
|
10781
10858
|
isText ? drawTextStroke(ui, canvas) : canvas.stroke();
|
|
@@ -10814,8 +10891,13 @@ function strokes(strokes, ui, canvas) {
|
|
|
10814
10891
|
}
|
|
10815
10892
|
function drawCenter(stroke, strokeWidthScale, ui, canvas) {
|
|
10816
10893
|
const data = ui.__;
|
|
10817
|
-
|
|
10818
|
-
|
|
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
|
+
}
|
|
10819
10901
|
if (data.__useArrow)
|
|
10820
10902
|
Paint.strokeArrow(stroke, ui, canvas);
|
|
10821
10903
|
}
|
|
@@ -10837,7 +10919,7 @@ function drawOutside(stroke, ui, canvas) {
|
|
|
10837
10919
|
drawCenter(stroke, 2, ui, out);
|
|
10838
10920
|
out.clipUI(data);
|
|
10839
10921
|
out.clearWorld(renderBounds);
|
|
10840
|
-
|
|
10922
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
10841
10923
|
out.recycle(ui.__nowWorld);
|
|
10842
10924
|
}
|
|
10843
10925
|
}
|
|
@@ -10892,8 +10974,16 @@ function compute(attrName, ui) {
|
|
|
10892
10974
|
if (!(paints instanceof Array))
|
|
10893
10975
|
paints = [paints];
|
|
10894
10976
|
recycleMap = PaintImage.recycleImage(attrName, data);
|
|
10977
|
+
let maxChildStrokeWidth;
|
|
10895
10978
|
for (let i = 0, len = paints.length, item; i < len; i++) {
|
|
10896
|
-
(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
|
+
}
|
|
10897
10987
|
}
|
|
10898
10988
|
data['_' + attrName] = leafPaints.length ? leafPaints : undefined;
|
|
10899
10989
|
if (leafPaints.length) {
|
|
@@ -10910,6 +11000,7 @@ function compute(attrName, ui) {
|
|
|
10910
11000
|
else {
|
|
10911
11001
|
stintSet(data, '__isAlphaPixelStroke', isAlphaPixel);
|
|
10912
11002
|
stintSet(data, '__isTransparentStroke', isTransparent);
|
|
11003
|
+
stintSet(data, '__hasMultiStrokeStyle', maxChildStrokeWidth);
|
|
10913
11004
|
}
|
|
10914
11005
|
}
|
|
10915
11006
|
function getLeafPaint(attrName, paint, ui) {
|
|
@@ -10941,6 +11032,11 @@ function getLeafPaint(attrName, paint, ui) {
|
|
|
10941
11032
|
if (data) {
|
|
10942
11033
|
if (typeof data.style === 'string' && hasTransparent$1(data.style))
|
|
10943
11034
|
data.isTransparent = true;
|
|
11035
|
+
if (paint.style) {
|
|
11036
|
+
if (paint.style.strokeWidth === 0)
|
|
11037
|
+
return undefined;
|
|
11038
|
+
data.strokeStyle = paint.style;
|
|
11039
|
+
}
|
|
10944
11040
|
if (paint.blendMode)
|
|
10945
11041
|
data.blendMode = paint.blendMode;
|
|
10946
11042
|
}
|
|
@@ -10960,8 +11056,8 @@ const PaintModule = {
|
|
|
10960
11056
|
shape
|
|
10961
11057
|
};
|
|
10962
11058
|
|
|
10963
|
-
let origin = {};
|
|
10964
|
-
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate, skew: skewHelper } = 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;
|
|
10965
11061
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
10966
11062
|
const transform = get$3();
|
|
10967
11063
|
translate$1(transform, box.x + x, box.y + y);
|
|
@@ -10970,7 +11066,7 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
10970
11066
|
rotateOfOuter$1(transform, { x: box.x + box.width / 2, y: box.y + box.height / 2 }, rotation);
|
|
10971
11067
|
data.transform = transform;
|
|
10972
11068
|
}
|
|
10973
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew) {
|
|
11069
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipSize) {
|
|
10974
11070
|
const transform = get$3();
|
|
10975
11071
|
if (rotation)
|
|
10976
11072
|
rotate(transform, rotation);
|
|
@@ -10979,6 +11075,10 @@ function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew) {
|
|
|
10979
11075
|
if (scaleX)
|
|
10980
11076
|
scaleHelper(transform, scaleX, scaleY);
|
|
10981
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
|
+
}
|
|
10982
11082
|
data.transform = transform;
|
|
10983
11083
|
}
|
|
10984
11084
|
function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, align) {
|
|
@@ -11015,13 +11115,15 @@ const tempBox = new Bounds();
|
|
|
11015
11115
|
const tempScaleData = {};
|
|
11016
11116
|
const tempImage = {};
|
|
11017
11117
|
function createData(leafPaint, image, paint, box) {
|
|
11018
|
-
const { changeful, sync, editing } = paint;
|
|
11118
|
+
const { changeful, sync, editing, scaleFixed } = paint;
|
|
11019
11119
|
if (changeful)
|
|
11020
11120
|
leafPaint.changeful = changeful;
|
|
11021
11121
|
if (sync)
|
|
11022
11122
|
leafPaint.sync = sync;
|
|
11023
11123
|
if (editing)
|
|
11024
11124
|
leafPaint.editing = editing;
|
|
11125
|
+
if (scaleFixed)
|
|
11126
|
+
leafPaint.scaleFixed = scaleFixed;
|
|
11025
11127
|
leafPaint.data = getPatternData(paint, box, image);
|
|
11026
11128
|
}
|
|
11027
11129
|
function getPatternData(paint, box, image) {
|
|
@@ -11030,7 +11132,7 @@ function getPatternData(paint, box, image) {
|
|
|
11030
11132
|
if (paint.mode === 'strench')
|
|
11031
11133
|
paint.mode = 'stretch';
|
|
11032
11134
|
let { width, height } = image;
|
|
11033
|
-
const { opacity, mode, align, offset, scale, size, rotation, skew, repeat, filters } = paint;
|
|
11135
|
+
const { opacity, mode, align, offset, scale, size, rotation, skew, clipSize, repeat, filters } = paint;
|
|
11034
11136
|
const sameBox = box.width === width && box.height === height;
|
|
11035
11137
|
const data = { mode };
|
|
11036
11138
|
const swapSize = align !== 'center' && (rotation || 0) % 180 === 90;
|
|
@@ -11064,8 +11166,8 @@ function getPatternData(paint, box, image) {
|
|
|
11064
11166
|
break;
|
|
11065
11167
|
case 'normal':
|
|
11066
11168
|
case 'clip':
|
|
11067
|
-
if (tempImage.x || tempImage.y || scaleX || rotation || skew)
|
|
11068
|
-
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew);
|
|
11169
|
+
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew)
|
|
11170
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, paint.clipSize);
|
|
11069
11171
|
break;
|
|
11070
11172
|
case 'repeat':
|
|
11071
11173
|
if (!sameBox || scaleX || rotation)
|
|
@@ -11202,18 +11304,16 @@ function ignoreRender(ui, value) {
|
|
|
11202
11304
|
}
|
|
11203
11305
|
|
|
11204
11306
|
const { get: get$1, scale, copy: copy$1 } = MatrixHelper;
|
|
11205
|
-
const { ceil, abs
|
|
11307
|
+
const { ceil, abs } = Math;
|
|
11206
11308
|
function createPattern(ui, paint, pixelRatio) {
|
|
11207
|
-
let { scaleX, scaleY } =
|
|
11309
|
+
let { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
11208
11310
|
const id = scaleX + '-' + scaleY + '-' + pixelRatio;
|
|
11209
11311
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
11210
|
-
scaleX = abs$1(scaleX);
|
|
11211
|
-
scaleY = abs$1(scaleY);
|
|
11212
11312
|
const { image, data } = paint;
|
|
11213
11313
|
let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, transform, repeat } = data;
|
|
11214
11314
|
if (sx) {
|
|
11215
|
-
sx = abs
|
|
11216
|
-
sy = abs
|
|
11315
|
+
sx = abs(sx);
|
|
11316
|
+
sy = abs(sy);
|
|
11217
11317
|
imageMatrix = get$1();
|
|
11218
11318
|
copy$1(imageMatrix, transform);
|
|
11219
11319
|
scale(imageMatrix, 1 / sx, 1 / sy);
|
|
@@ -11266,9 +11366,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
11266
11366
|
}
|
|
11267
11367
|
}
|
|
11268
11368
|
|
|
11269
|
-
const { abs } = Math;
|
|
11270
11369
|
function checkImage(ui, canvas, paint, allowDraw) {
|
|
11271
|
-
const { scaleX, scaleY } =
|
|
11370
|
+
const { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
11272
11371
|
const { pixelRatio } = canvas, { data } = paint;
|
|
11273
11372
|
if (!data || (paint.patternId === scaleX + '-' + scaleY + '-' + pixelRatio && !Export.running)) {
|
|
11274
11373
|
return false;
|
|
@@ -11281,8 +11380,8 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
11281
11380
|
else {
|
|
11282
11381
|
if (!(paint.changeful || ResizeEvent.isResizing(ui) || Export.running)) {
|
|
11283
11382
|
let { width, height } = data;
|
|
11284
|
-
width *=
|
|
11285
|
-
height *=
|
|
11383
|
+
width *= scaleX * pixelRatio;
|
|
11384
|
+
height *= scaleY * pixelRatio;
|
|
11286
11385
|
if (data.scaleX) {
|
|
11287
11386
|
width *= data.scaleX;
|
|
11288
11387
|
height *= data.scaleY;
|
|
@@ -11292,6 +11391,10 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
11292
11391
|
}
|
|
11293
11392
|
}
|
|
11294
11393
|
if (allowDraw) {
|
|
11394
|
+
if (ui.__.__isFastShadow) {
|
|
11395
|
+
canvas.fillStyle = paint.style || '#000';
|
|
11396
|
+
canvas.fill();
|
|
11397
|
+
}
|
|
11295
11398
|
drawImage(ui, canvas, paint, data);
|
|
11296
11399
|
return true;
|
|
11297
11400
|
}
|
|
@@ -11480,10 +11583,7 @@ function shadow(ui, current, shape) {
|
|
|
11480
11583
|
}
|
|
11481
11584
|
worldCanvas ? other.copyWorld(worldCanvas, nowWorld, nowWorld, 'destination-out') : other.copyWorld(shape.canvas, shapeBounds, bounds, 'destination-out');
|
|
11482
11585
|
}
|
|
11483
|
-
|
|
11484
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
11485
|
-
else
|
|
11486
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
11586
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
11487
11587
|
if (end && index < end)
|
|
11488
11588
|
other.clearWorld(copyBounds, true);
|
|
11489
11589
|
});
|
|
@@ -11542,10 +11642,7 @@ function innerShadow(ui, current, shape) {
|
|
|
11542
11642
|
copyBounds = bounds;
|
|
11543
11643
|
}
|
|
11544
11644
|
other.fillWorld(copyBounds, ColorConvert.string(item.color), 'source-in');
|
|
11545
|
-
|
|
11546
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
11547
|
-
else
|
|
11548
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
11645
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
11549
11646
|
if (end && index < end)
|
|
11550
11647
|
other.clearWorld(copyBounds, true);
|
|
11551
11648
|
});
|
|
@@ -11601,12 +11698,11 @@ Group.prototype.__renderMask = function (canvas, options) {
|
|
|
11601
11698
|
contentCanvas = getCanvas(canvas);
|
|
11602
11699
|
child.__render(maskCanvas, options);
|
|
11603
11700
|
}
|
|
11604
|
-
if (
|
|
11605
|
-
|
|
11606
|
-
}
|
|
11607
|
-
if (excludeRenderBounds(child, options))
|
|
11701
|
+
if (mask === 'clipping' || mask === 'clipping-path')
|
|
11702
|
+
excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
11608
11703
|
continue;
|
|
11609
|
-
|
|
11704
|
+
}
|
|
11705
|
+
excludeRenderBounds(child, options) || child.__render(contentCanvas || canvas, options);
|
|
11610
11706
|
}
|
|
11611
11707
|
maskEnd(this, currentMask, canvas, contentCanvas, maskCanvas, maskOpacity);
|
|
11612
11708
|
};
|
|
@@ -12200,4 +12296,4 @@ try {
|
|
|
12200
12296
|
}
|
|
12201
12297
|
catch (_a) { }
|
|
12202
12298
|
|
|
12203
|
-
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 };
|