@leafer-draw/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 +228 -134
- 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
|
@@ -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$8, multiplyParent: multiplyParent$
|
|
2079
|
+
const { copy: copy$8, 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$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;
|
|
4269
4290
|
const matrix = {}, { 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$6(matrix, t.worldTransform);
|
|
4399
|
-
multiplyParent$
|
|
4428
|
+
multiplyParent$3(matrix, transform);
|
|
4400
4429
|
if (t.parent)
|
|
4401
4430
|
divideParent(matrix, t.parent.worldTransform);
|
|
4402
4431
|
L.setTransform(t, matrix, resize, transition);
|
|
4403
4432
|
},
|
|
4404
4433
|
transform(t, transform, resize, transition) {
|
|
4405
4434
|
copy$6(matrix, t.localTransform);
|
|
4406
|
-
multiplyParent$
|
|
4435
|
+
multiplyParent$3(matrix, transform);
|
|
4407
4436
|
L.setTransform(t, matrix, 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$3, 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; }
|
|
@@ -7078,6 +7118,11 @@ function zoomLayerType() {
|
|
|
7078
7118
|
});
|
|
7079
7119
|
};
|
|
7080
7120
|
}
|
|
7121
|
+
function createAttr(defaultValue) {
|
|
7122
|
+
return (target, key) => {
|
|
7123
|
+
defineKey(target, key, createDescriptor(key, defaultValue));
|
|
7124
|
+
};
|
|
7125
|
+
}
|
|
7081
7126
|
|
|
7082
7127
|
function hasTransparent$3(color) {
|
|
7083
7128
|
if (!color || color.length === 7 || color.length === 4)
|
|
@@ -7135,22 +7180,9 @@ const emptyPaint = {};
|
|
|
7135
7180
|
const debug$1 = Debug.get('UIData');
|
|
7136
7181
|
class UIData extends LeafData {
|
|
7137
7182
|
get scale() { const { scaleX, scaleY } = this; return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX; }
|
|
7138
|
-
get __strokeWidth() {
|
|
7139
|
-
|
|
7140
|
-
|
|
7141
|
-
const ui = this.__leaf;
|
|
7142
|
-
let { scaleX } = ui.__nowWorld || ui.__world;
|
|
7143
|
-
if (scaleX < 0)
|
|
7144
|
-
scaleX = -scaleX;
|
|
7145
|
-
return scaleX > 1 ? strokeWidth / scaleX : strokeWidth;
|
|
7146
|
-
}
|
|
7147
|
-
else
|
|
7148
|
-
return strokeWidth;
|
|
7149
|
-
}
|
|
7150
|
-
get __hasMultiPaint() {
|
|
7151
|
-
const t = this;
|
|
7152
|
-
return (t.fill && this.__useStroke) || (t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect;
|
|
7153
|
-
}
|
|
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; }
|
|
7154
7186
|
get __clipAfterFill() { const t = this; return (t.cornerRadius || t.innerShadow || t.__pathInputed); }
|
|
7155
7187
|
get __hasSurface() { const t = this; return (t.fill || t.stroke); }
|
|
7156
7188
|
get __autoWidth() { return !this._width; }
|
|
@@ -7232,6 +7264,21 @@ class UIData extends LeafData {
|
|
|
7232
7264
|
Paint.compute('stroke', this.__leaf);
|
|
7233
7265
|
this.__needComputePaint = undefined;
|
|
7234
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
|
+
}
|
|
7235
7282
|
__setPaint(attrName, value) {
|
|
7236
7283
|
this.__setInput(attrName, value);
|
|
7237
7284
|
const layout = this.__leaf.__layout;
|
|
@@ -7256,6 +7303,7 @@ class UIData extends LeafData {
|
|
|
7256
7303
|
}
|
|
7257
7304
|
else {
|
|
7258
7305
|
stintSet$2(this, '__isAlphaPixelStroke', undefined);
|
|
7306
|
+
stintSet$2(this, '__hasMultiStrokeStyle', undefined);
|
|
7259
7307
|
this._stroke = this.__isStrokes = undefined;
|
|
7260
7308
|
}
|
|
7261
7309
|
}
|
|
@@ -7277,8 +7325,8 @@ class GroupData extends UIData {
|
|
|
7277
7325
|
|
|
7278
7326
|
class BoxData extends GroupData {
|
|
7279
7327
|
get __boxStroke() { return !this.__pathInputed; }
|
|
7280
|
-
get __drawAfterFill() { const t = this; return
|
|
7281
|
-
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); }
|
|
7282
7330
|
}
|
|
7283
7331
|
|
|
7284
7332
|
class LeaferData extends GroupData {
|
|
@@ -7398,7 +7446,7 @@ class CanvasData extends RectData {
|
|
|
7398
7446
|
const UIBounds = {
|
|
7399
7447
|
__updateStrokeSpread() {
|
|
7400
7448
|
let width = 0, boxWidth = 0;
|
|
7401
|
-
const data = this.__, { strokeAlign, strokeWidth } = data, box = this.__box;
|
|
7449
|
+
const data = this.__, { strokeAlign, __maxStrokeWidth: strokeWidth } = data, box = this.__box;
|
|
7402
7450
|
if ((data.stroke || data.hitStroke === 'all') && strokeWidth && strokeAlign !== 'inside') {
|
|
7403
7451
|
boxWidth = width = strokeAlign === 'center' ? strokeWidth / 2 : strokeWidth;
|
|
7404
7452
|
if (!data.__boxStroke) {
|
|
@@ -7418,13 +7466,15 @@ const UIBounds = {
|
|
|
7418
7466
|
},
|
|
7419
7467
|
__updateRenderSpread() {
|
|
7420
7468
|
let width = 0;
|
|
7421
|
-
const { shadow, innerShadow, blur, backgroundBlur, filter } = this.__;
|
|
7469
|
+
const { shadow, innerShadow, blur, backgroundBlur, filter, renderSpread } = this.__;
|
|
7422
7470
|
if (shadow)
|
|
7423
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));
|
|
7424
7472
|
if (blur)
|
|
7425
7473
|
width = Math.max(width, blur);
|
|
7426
7474
|
if (filter)
|
|
7427
7475
|
width += Filter.getSpread(filter);
|
|
7476
|
+
if (renderSpread)
|
|
7477
|
+
width += renderSpread;
|
|
7428
7478
|
let shapeWidth = width = Math.ceil(width);
|
|
7429
7479
|
if (innerShadow)
|
|
7430
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));
|
|
@@ -7447,7 +7497,7 @@ const UIRender = {
|
|
|
7447
7497
|
}
|
|
7448
7498
|
if (data.__useEffect) {
|
|
7449
7499
|
const { shadow, fill, stroke } = data, otherEffect = data.innerShadow || data.blur || data.backgroundBlur || data.filter;
|
|
7450
|
-
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')));
|
|
7451
7501
|
data.__useEffect = !!(shadow || otherEffect);
|
|
7452
7502
|
}
|
|
7453
7503
|
data.__checkSingle();
|
|
@@ -7554,17 +7604,17 @@ const RectRender = {
|
|
|
7554
7604
|
if (__drawAfterFill)
|
|
7555
7605
|
this.__drawAfterFill(canvas, options);
|
|
7556
7606
|
if (stroke) {
|
|
7557
|
-
const { strokeAlign, __strokeWidth } = this.__;
|
|
7558
|
-
if (!
|
|
7607
|
+
const { strokeAlign, __strokeWidth: strokeWidth } = this.__;
|
|
7608
|
+
if (!strokeWidth)
|
|
7559
7609
|
return;
|
|
7560
|
-
canvas.setStroke(stroke,
|
|
7561
|
-
const half =
|
|
7610
|
+
canvas.setStroke(stroke, strokeWidth, this.__);
|
|
7611
|
+
const half = strokeWidth / 2;
|
|
7562
7612
|
switch (strokeAlign) {
|
|
7563
7613
|
case 'center':
|
|
7564
7614
|
canvas.strokeRect(0, 0, width, height);
|
|
7565
7615
|
break;
|
|
7566
7616
|
case 'inside':
|
|
7567
|
-
width -=
|
|
7617
|
+
width -= strokeWidth, height -= strokeWidth;
|
|
7568
7618
|
if (width < 0 || height < 0) {
|
|
7569
7619
|
canvas.save();
|
|
7570
7620
|
this.__clip(canvas, options);
|
|
@@ -7575,7 +7625,7 @@ const RectRender = {
|
|
|
7575
7625
|
canvas.strokeRect(x + half, y + half, width, height);
|
|
7576
7626
|
break;
|
|
7577
7627
|
case 'outside':
|
|
7578
|
-
canvas.strokeRect(x - half, y - half, width +
|
|
7628
|
+
canvas.strokeRect(x - half, y - half, width + strokeWidth, height + strokeWidth);
|
|
7579
7629
|
break;
|
|
7580
7630
|
}
|
|
7581
7631
|
}
|
|
@@ -7588,6 +7638,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7588
7638
|
get isFrame() { return false; }
|
|
7589
7639
|
set scale(value) { MathHelper.assignScale(this, value); }
|
|
7590
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; }
|
|
7591
7643
|
get pen() {
|
|
7592
7644
|
const { path } = this.__;
|
|
7593
7645
|
pen.set(this.path = path || []);
|
|
@@ -7802,6 +7854,9 @@ __decorate([
|
|
|
7802
7854
|
__decorate([
|
|
7803
7855
|
naturalBoundsType(1)
|
|
7804
7856
|
], UI.prototype, "pixelRatio", void 0);
|
|
7857
|
+
__decorate([
|
|
7858
|
+
affectRenderBoundsType(0)
|
|
7859
|
+
], UI.prototype, "renderSpread", void 0);
|
|
7805
7860
|
__decorate([
|
|
7806
7861
|
pathInputType()
|
|
7807
7862
|
], UI.prototype, "path", void 0);
|
|
@@ -7958,7 +8013,8 @@ let Group = class Group extends UI {
|
|
|
7958
8013
|
}
|
|
7959
8014
|
toJSON(options) {
|
|
7960
8015
|
const data = super.toJSON(options);
|
|
7961
|
-
|
|
8016
|
+
if (!this.childlessJSON)
|
|
8017
|
+
data.children = this.children.map(child => child.toJSON(options));
|
|
7962
8018
|
return data;
|
|
7963
8019
|
}
|
|
7964
8020
|
pick(_hitPoint, _options) { return undefined; }
|
|
@@ -8405,8 +8461,8 @@ let Box = class Box extends Group {
|
|
|
8405
8461
|
__updateRenderSpread() { return this.__updateRectRenderSpread() || -1; }
|
|
8406
8462
|
__updateRectBoxBounds() { }
|
|
8407
8463
|
__updateBoxBounds(_secondLayout) {
|
|
8408
|
-
const data = this.__;
|
|
8409
8464
|
if (this.children.length && !this.pathInputed) {
|
|
8465
|
+
const data = this.__;
|
|
8410
8466
|
if (data.__autoSide) {
|
|
8411
8467
|
if (data.__hasSurface)
|
|
8412
8468
|
this.__extraUpdate();
|
|
@@ -8433,20 +8489,26 @@ let Box = class Box extends Group {
|
|
|
8433
8489
|
__updateStrokeBounds() { }
|
|
8434
8490
|
__updateRenderBounds() {
|
|
8435
8491
|
let isOverflow;
|
|
8436
|
-
const { renderBounds } = this.__layout;
|
|
8437
8492
|
if (this.children.length) {
|
|
8493
|
+
const data = this.__, { renderBounds, boxBounds } = this.__layout;
|
|
8438
8494
|
super.__updateRenderBounds();
|
|
8439
8495
|
copy$2(childrenRenderBounds, renderBounds);
|
|
8440
8496
|
this.__updateRectRenderBounds();
|
|
8441
|
-
|
|
8442
|
-
|
|
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')
|
|
8443
8503
|
add(renderBounds, childrenRenderBounds);
|
|
8444
8504
|
}
|
|
8445
8505
|
else
|
|
8446
8506
|
this.__updateRectRenderBounds();
|
|
8447
8507
|
DataHelper.stintSet(this, 'isOverflow', isOverflow);
|
|
8508
|
+
this.__updateScrollBar();
|
|
8448
8509
|
}
|
|
8449
8510
|
__updateRectRenderBounds() { }
|
|
8511
|
+
__updateScrollBar() { }
|
|
8450
8512
|
__updateRectChange() { }
|
|
8451
8513
|
__updateChange() {
|
|
8452
8514
|
super.__updateChange();
|
|
@@ -8463,10 +8525,12 @@ let Box = class Box extends Group {
|
|
|
8463
8525
|
if (this.children.length)
|
|
8464
8526
|
this.__renderGroup(canvas, options);
|
|
8465
8527
|
}
|
|
8528
|
+
if (this.scrollBar)
|
|
8529
|
+
this.scrollBar.__render(canvas, options);
|
|
8466
8530
|
}
|
|
8467
8531
|
__drawContent(canvas, options) {
|
|
8468
8532
|
this.__renderGroup(canvas, options);
|
|
8469
|
-
if (this.__.__useStroke) {
|
|
8533
|
+
if (this.__.__useStroke || this.__.__useEffect) {
|
|
8470
8534
|
canvas.setWorld(this.__nowWorld);
|
|
8471
8535
|
this.__drawRenderPath(canvas);
|
|
8472
8536
|
}
|
|
@@ -9125,9 +9189,14 @@ function fills(fills, ui, canvas) {
|
|
|
9125
9189
|
}
|
|
9126
9190
|
}
|
|
9127
9191
|
canvas.fillStyle = item.style;
|
|
9128
|
-
if (item.transform) {
|
|
9192
|
+
if (item.transform || item.scaleFixed) {
|
|
9129
9193
|
canvas.save();
|
|
9130
|
-
|
|
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
|
+
}
|
|
9131
9200
|
if (item.blendMode)
|
|
9132
9201
|
canvas.blendMode = item.blendMode;
|
|
9133
9202
|
fillPathOrText(ui, canvas);
|
|
@@ -9163,8 +9232,13 @@ function strokeText(stroke, ui, canvas) {
|
|
|
9163
9232
|
}
|
|
9164
9233
|
function drawCenter$1(stroke, strokeWidthScale, ui, canvas) {
|
|
9165
9234
|
const data = ui.__;
|
|
9166
|
-
|
|
9167
|
-
|
|
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
|
+
}
|
|
9168
9242
|
}
|
|
9169
9243
|
function drawAlign(stroke, align, ui, canvas) {
|
|
9170
9244
|
const out = canvas.getSameCanvas(true, true);
|
|
@@ -9173,15 +9247,9 @@ function drawAlign(stroke, align, ui, canvas) {
|
|
|
9173
9247
|
out.blendMode = align === 'outside' ? 'destination-out' : 'destination-in';
|
|
9174
9248
|
fillText(ui, out);
|
|
9175
9249
|
out.blendMode = 'normal';
|
|
9176
|
-
|
|
9250
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
9177
9251
|
out.recycle(ui.__nowWorld);
|
|
9178
9252
|
}
|
|
9179
|
-
function copyWorld(canvas, out, ui) {
|
|
9180
|
-
if (ui.__worldFlipped || Platform.fullImageShadow)
|
|
9181
|
-
canvas.copyWorldByReset(out, ui.__nowWorld);
|
|
9182
|
-
else
|
|
9183
|
-
canvas.copyWorldToInner(out, ui.__nowWorld, ui.__layout.renderBounds);
|
|
9184
|
-
}
|
|
9185
9253
|
function drawTextStroke(ui, canvas) {
|
|
9186
9254
|
let row, data = ui.__.__textDrawData;
|
|
9187
9255
|
const { rows, decorationY } = data;
|
|
@@ -9197,14 +9265,21 @@ function drawTextStroke(ui, canvas) {
|
|
|
9197
9265
|
rows.forEach(row => decorationY.forEach(value => canvas.strokeRect(row.x, row.y + value, row.width, decorationHeight)));
|
|
9198
9266
|
}
|
|
9199
9267
|
}
|
|
9200
|
-
function drawStrokesStyle(strokes, isText, ui, canvas) {
|
|
9268
|
+
function drawStrokesStyle(strokes, strokeWidthScale, isText, ui, canvas) {
|
|
9201
9269
|
let item;
|
|
9270
|
+
const data = ui.__, { __hasMultiStrokeStyle } = data;
|
|
9271
|
+
__hasMultiStrokeStyle || canvas.setStroke(undefined, data.__strokeWidth * strokeWidthScale, data);
|
|
9202
9272
|
for (let i = 0, len = strokes.length; i < len; i++) {
|
|
9203
9273
|
item = strokes[i];
|
|
9204
9274
|
if (item.image && PaintImage.checkImage(ui, canvas, item, false))
|
|
9205
9275
|
continue;
|
|
9206
9276
|
if (item.style) {
|
|
9207
|
-
|
|
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;
|
|
9208
9283
|
if (item.blendMode) {
|
|
9209
9284
|
canvas.saveBlendMode(item.blendMode);
|
|
9210
9285
|
isText ? drawTextStroke(ui, canvas) : canvas.stroke();
|
|
@@ -9243,8 +9318,13 @@ function strokes(strokes, ui, canvas) {
|
|
|
9243
9318
|
}
|
|
9244
9319
|
function drawCenter(stroke, strokeWidthScale, ui, canvas) {
|
|
9245
9320
|
const data = ui.__;
|
|
9246
|
-
|
|
9247
|
-
|
|
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
|
+
}
|
|
9248
9328
|
if (data.__useArrow)
|
|
9249
9329
|
Paint.strokeArrow(stroke, ui, canvas);
|
|
9250
9330
|
}
|
|
@@ -9266,7 +9346,7 @@ function drawOutside(stroke, ui, canvas) {
|
|
|
9266
9346
|
drawCenter(stroke, 2, ui, out);
|
|
9267
9347
|
out.clipUI(data);
|
|
9268
9348
|
out.clearWorld(renderBounds);
|
|
9269
|
-
|
|
9349
|
+
LeafHelper.copyCanvasByWorld(ui, canvas, out);
|
|
9270
9350
|
out.recycle(ui.__nowWorld);
|
|
9271
9351
|
}
|
|
9272
9352
|
}
|
|
@@ -9321,8 +9401,16 @@ function compute(attrName, ui) {
|
|
|
9321
9401
|
if (!(paints instanceof Array))
|
|
9322
9402
|
paints = [paints];
|
|
9323
9403
|
recycleMap = PaintImage.recycleImage(attrName, data);
|
|
9404
|
+
let maxChildStrokeWidth;
|
|
9324
9405
|
for (let i = 0, len = paints.length, item; i < len; i++) {
|
|
9325
|
-
(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
|
+
}
|
|
9326
9414
|
}
|
|
9327
9415
|
data['_' + attrName] = leafPaints.length ? leafPaints : undefined;
|
|
9328
9416
|
if (leafPaints.length) {
|
|
@@ -9339,6 +9427,7 @@ function compute(attrName, ui) {
|
|
|
9339
9427
|
else {
|
|
9340
9428
|
stintSet(data, '__isAlphaPixelStroke', isAlphaPixel);
|
|
9341
9429
|
stintSet(data, '__isTransparentStroke', isTransparent);
|
|
9430
|
+
stintSet(data, '__hasMultiStrokeStyle', maxChildStrokeWidth);
|
|
9342
9431
|
}
|
|
9343
9432
|
}
|
|
9344
9433
|
function getLeafPaint(attrName, paint, ui) {
|
|
@@ -9370,6 +9459,11 @@ function getLeafPaint(attrName, paint, ui) {
|
|
|
9370
9459
|
if (data) {
|
|
9371
9460
|
if (typeof data.style === 'string' && hasTransparent$1(data.style))
|
|
9372
9461
|
data.isTransparent = true;
|
|
9462
|
+
if (paint.style) {
|
|
9463
|
+
if (paint.style.strokeWidth === 0)
|
|
9464
|
+
return undefined;
|
|
9465
|
+
data.strokeStyle = paint.style;
|
|
9466
|
+
}
|
|
9373
9467
|
if (paint.blendMode)
|
|
9374
9468
|
data.blendMode = paint.blendMode;
|
|
9375
9469
|
}
|
|
@@ -9389,8 +9483,8 @@ const PaintModule = {
|
|
|
9389
9483
|
shape
|
|
9390
9484
|
};
|
|
9391
9485
|
|
|
9392
|
-
let origin = {};
|
|
9393
|
-
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate, skew: skewHelper } = 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;
|
|
9394
9488
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
9395
9489
|
const transform = get$3();
|
|
9396
9490
|
translate$1(transform, box.x + x, box.y + y);
|
|
@@ -9399,7 +9493,7 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
9399
9493
|
rotateOfOuter$1(transform, { x: box.x + box.width / 2, y: box.y + box.height / 2 }, rotation);
|
|
9400
9494
|
data.transform = transform;
|
|
9401
9495
|
}
|
|
9402
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew) {
|
|
9496
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew, clipSize) {
|
|
9403
9497
|
const transform = get$3();
|
|
9404
9498
|
if (rotation)
|
|
9405
9499
|
rotate(transform, rotation);
|
|
@@ -9408,6 +9502,10 @@ function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew) {
|
|
|
9408
9502
|
if (scaleX)
|
|
9409
9503
|
scaleHelper(transform, scaleX, scaleY);
|
|
9410
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
|
+
}
|
|
9411
9509
|
data.transform = transform;
|
|
9412
9510
|
}
|
|
9413
9511
|
function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, align) {
|
|
@@ -9444,13 +9542,15 @@ const tempBox = new Bounds();
|
|
|
9444
9542
|
const tempScaleData = {};
|
|
9445
9543
|
const tempImage = {};
|
|
9446
9544
|
function createData(leafPaint, image, paint, box) {
|
|
9447
|
-
const { changeful, sync, editing } = paint;
|
|
9545
|
+
const { changeful, sync, editing, scaleFixed } = paint;
|
|
9448
9546
|
if (changeful)
|
|
9449
9547
|
leafPaint.changeful = changeful;
|
|
9450
9548
|
if (sync)
|
|
9451
9549
|
leafPaint.sync = sync;
|
|
9452
9550
|
if (editing)
|
|
9453
9551
|
leafPaint.editing = editing;
|
|
9552
|
+
if (scaleFixed)
|
|
9553
|
+
leafPaint.scaleFixed = scaleFixed;
|
|
9454
9554
|
leafPaint.data = getPatternData(paint, box, image);
|
|
9455
9555
|
}
|
|
9456
9556
|
function getPatternData(paint, box, image) {
|
|
@@ -9459,7 +9559,7 @@ function getPatternData(paint, box, image) {
|
|
|
9459
9559
|
if (paint.mode === 'strench')
|
|
9460
9560
|
paint.mode = 'stretch';
|
|
9461
9561
|
let { width, height } = image;
|
|
9462
|
-
const { opacity, mode, align, offset, scale, size, rotation, skew, repeat, filters } = paint;
|
|
9562
|
+
const { opacity, mode, align, offset, scale, size, rotation, skew, clipSize, repeat, filters } = paint;
|
|
9463
9563
|
const sameBox = box.width === width && box.height === height;
|
|
9464
9564
|
const data = { mode };
|
|
9465
9565
|
const swapSize = align !== 'center' && (rotation || 0) % 180 === 90;
|
|
@@ -9493,8 +9593,8 @@ function getPatternData(paint, box, image) {
|
|
|
9493
9593
|
break;
|
|
9494
9594
|
case 'normal':
|
|
9495
9595
|
case 'clip':
|
|
9496
|
-
if (tempImage.x || tempImage.y || scaleX || rotation || skew)
|
|
9497
|
-
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew);
|
|
9596
|
+
if (tempImage.x || tempImage.y || scaleX || clipSize || rotation || skew)
|
|
9597
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew, paint.clipSize);
|
|
9498
9598
|
break;
|
|
9499
9599
|
case 'repeat':
|
|
9500
9600
|
if (!sameBox || scaleX || rotation)
|
|
@@ -9631,18 +9731,16 @@ function ignoreRender(ui, value) {
|
|
|
9631
9731
|
}
|
|
9632
9732
|
|
|
9633
9733
|
const { get: get$1, scale, copy: copy$1 } = MatrixHelper;
|
|
9634
|
-
const { ceil, abs
|
|
9734
|
+
const { ceil, abs } = Math;
|
|
9635
9735
|
function createPattern(ui, paint, pixelRatio) {
|
|
9636
|
-
let { scaleX, scaleY } =
|
|
9736
|
+
let { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
9637
9737
|
const id = scaleX + '-' + scaleY + '-' + pixelRatio;
|
|
9638
9738
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
9639
|
-
scaleX = abs$1(scaleX);
|
|
9640
|
-
scaleY = abs$1(scaleY);
|
|
9641
9739
|
const { image, data } = paint;
|
|
9642
9740
|
let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, transform, repeat } = data;
|
|
9643
9741
|
if (sx) {
|
|
9644
|
-
sx = abs
|
|
9645
|
-
sy = abs
|
|
9742
|
+
sx = abs(sx);
|
|
9743
|
+
sy = abs(sy);
|
|
9646
9744
|
imageMatrix = get$1();
|
|
9647
9745
|
copy$1(imageMatrix, transform);
|
|
9648
9746
|
scale(imageMatrix, 1 / sx, 1 / sy);
|
|
@@ -9695,9 +9793,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
9695
9793
|
}
|
|
9696
9794
|
}
|
|
9697
9795
|
|
|
9698
|
-
const { abs } = Math;
|
|
9699
9796
|
function checkImage(ui, canvas, paint, allowDraw) {
|
|
9700
|
-
const { scaleX, scaleY } =
|
|
9797
|
+
const { scaleX, scaleY } = ui.getRenderScaleData(true, paint.scaleFixed);
|
|
9701
9798
|
const { pixelRatio } = canvas, { data } = paint;
|
|
9702
9799
|
if (!data || (paint.patternId === scaleX + '-' + scaleY + '-' + pixelRatio && !Export.running)) {
|
|
9703
9800
|
return false;
|
|
@@ -9710,8 +9807,8 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
9710
9807
|
else {
|
|
9711
9808
|
if (!(paint.changeful || ResizeEvent.isResizing(ui) || Export.running)) {
|
|
9712
9809
|
let { width, height } = data;
|
|
9713
|
-
width *=
|
|
9714
|
-
height *=
|
|
9810
|
+
width *= scaleX * pixelRatio;
|
|
9811
|
+
height *= scaleY * pixelRatio;
|
|
9715
9812
|
if (data.scaleX) {
|
|
9716
9813
|
width *= data.scaleX;
|
|
9717
9814
|
height *= data.scaleY;
|
|
@@ -9721,6 +9818,10 @@ function checkImage(ui, canvas, paint, allowDraw) {
|
|
|
9721
9818
|
}
|
|
9722
9819
|
}
|
|
9723
9820
|
if (allowDraw) {
|
|
9821
|
+
if (ui.__.__isFastShadow) {
|
|
9822
|
+
canvas.fillStyle = paint.style || '#000';
|
|
9823
|
+
canvas.fill();
|
|
9824
|
+
}
|
|
9724
9825
|
drawImage(ui, canvas, paint, data);
|
|
9725
9826
|
return true;
|
|
9726
9827
|
}
|
|
@@ -9909,10 +10010,7 @@ function shadow(ui, current, shape) {
|
|
|
9909
10010
|
}
|
|
9910
10011
|
worldCanvas ? other.copyWorld(worldCanvas, nowWorld, nowWorld, 'destination-out') : other.copyWorld(shape.canvas, shapeBounds, bounds, 'destination-out');
|
|
9911
10012
|
}
|
|
9912
|
-
|
|
9913
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
9914
|
-
else
|
|
9915
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
10013
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
9916
10014
|
if (end && index < end)
|
|
9917
10015
|
other.clearWorld(copyBounds, true);
|
|
9918
10016
|
});
|
|
@@ -9971,10 +10069,7 @@ function innerShadow(ui, current, shape) {
|
|
|
9971
10069
|
copyBounds = bounds;
|
|
9972
10070
|
}
|
|
9973
10071
|
other.fillWorld(copyBounds, ColorConvert.string(item.color), 'source-in');
|
|
9974
|
-
|
|
9975
|
-
current.copyWorldByReset(other, copyBounds, nowWorld, item.blendMode);
|
|
9976
|
-
else
|
|
9977
|
-
current.copyWorldToInner(other, copyBounds, __layout.renderBounds, item.blendMode);
|
|
10072
|
+
LeafHelper.copyCanvasByWorld(ui, current, other, copyBounds, item.blendMode);
|
|
9978
10073
|
if (end && index < end)
|
|
9979
10074
|
other.clearWorld(copyBounds, true);
|
|
9980
10075
|
});
|
|
@@ -10030,12 +10125,11 @@ Group.prototype.__renderMask = function (canvas, options) {
|
|
|
10030
10125
|
contentCanvas = getCanvas(canvas);
|
|
10031
10126
|
child.__render(maskCanvas, options);
|
|
10032
10127
|
}
|
|
10033
|
-
if (
|
|
10034
|
-
|
|
10035
|
-
}
|
|
10036
|
-
if (excludeRenderBounds(child, options))
|
|
10128
|
+
if (mask === 'clipping' || mask === 'clipping-path')
|
|
10129
|
+
excludeRenderBounds(child, options) || child.__render(canvas, options);
|
|
10037
10130
|
continue;
|
|
10038
|
-
|
|
10131
|
+
}
|
|
10132
|
+
excludeRenderBounds(child, options) || child.__render(contentCanvas || canvas, options);
|
|
10039
10133
|
}
|
|
10040
10134
|
maskEnd(this, currentMask, canvas, contentCanvas, maskCanvas, maskOpacity);
|
|
10041
10135
|
};
|
|
@@ -10621,4 +10715,4 @@ try {
|
|
|
10621
10715
|
}
|
|
10622
10716
|
catch (_a) { }
|
|
10623
10717
|
|
|
10624
|
-
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 };
|