@leafer-draw/worker 1.6.6 → 1.7.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/worker.cjs +17 -11
- package/dist/worker.esm.js +17 -11
- package/dist/worker.esm.min.js +1 -1
- package/dist/worker.esm.min.js.map +1 -1
- package/dist/worker.js +86 -62
- package/dist/worker.min.cjs +1 -1
- package/dist/worker.min.cjs.map +1 -1
- package/dist/worker.min.js +1 -1
- package/dist/worker.min.js.map +1 -1
- package/dist/worker.module.js +86 -62
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +9 -9
package/dist/worker.module.js
CHANGED
|
@@ -43,7 +43,7 @@ const IncrementId = {
|
|
|
43
43
|
};
|
|
44
44
|
const I$1 = IncrementId;
|
|
45
45
|
|
|
46
|
-
const { round: round$3, pow: pow$1, PI: PI$
|
|
46
|
+
const { round: round$3, pow: pow$1, PI: PI$3 } = Math;
|
|
47
47
|
const MathHelper = {
|
|
48
48
|
within(value, min, max) {
|
|
49
49
|
if (typeof min === 'object')
|
|
@@ -139,9 +139,9 @@ const MathHelper = {
|
|
|
139
139
|
function randInt(num) {
|
|
140
140
|
return Math.round(Math.random() * num);
|
|
141
141
|
}
|
|
142
|
-
const OneRadian = PI$
|
|
143
|
-
const PI2 = PI$
|
|
144
|
-
const PI_2 = PI$
|
|
142
|
+
const OneRadian = PI$3 / 180;
|
|
143
|
+
const PI2 = PI$3 * 2;
|
|
144
|
+
const PI_2 = PI$3 / 2;
|
|
145
145
|
function getPointData() { return { x: 0, y: 0 }; }
|
|
146
146
|
function getBoundsData() { return { x: 0, y: 0, width: 0, height: 0 }; }
|
|
147
147
|
function getMatrixData() { return { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0 }; }
|
|
@@ -436,7 +436,7 @@ const MatrixHelper = {
|
|
|
436
436
|
const M$6 = MatrixHelper;
|
|
437
437
|
|
|
438
438
|
const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3 } = MatrixHelper;
|
|
439
|
-
const { sin: sin$4, cos: cos$4, abs: abs$4, sqrt: sqrt$2, atan2: atan2$2, min: min$1, round: round$2
|
|
439
|
+
const { sin: sin$4, cos: cos$4, abs: abs$4, sqrt: sqrt$2, atan2: atan2$2, min: min$1, round: round$2 } = Math;
|
|
440
440
|
const PointHelper = {
|
|
441
441
|
defaultPoint: getPointData(),
|
|
442
442
|
tempPoint: {},
|
|
@@ -549,10 +549,11 @@ const PointHelper = {
|
|
|
549
549
|
getRadianFrom(fromX, fromY, originX, originY, toX, toY, toOriginX, toOriginY) {
|
|
550
550
|
if (toOriginX === undefined)
|
|
551
551
|
toOriginX = originX, toOriginY = originY;
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
const
|
|
555
|
-
|
|
552
|
+
const a = fromX - originX;
|
|
553
|
+
const b = fromY - originY;
|
|
554
|
+
const c = toX - toOriginX;
|
|
555
|
+
const d = toY - toOriginY;
|
|
556
|
+
return Math.atan2(a * d - b * c, a * c + b * d);
|
|
556
557
|
},
|
|
557
558
|
getAtan2(t, to) {
|
|
558
559
|
return atan2$2(to.y - t.y, to.x - t.x);
|
|
@@ -3339,7 +3340,7 @@ const { getCenterX, getCenterY } = PointHelper;
|
|
|
3339
3340
|
const { arcTo } = PathCommandDataHelper;
|
|
3340
3341
|
const PathCorner = {
|
|
3341
3342
|
smooth(data, cornerRadius, _cornerSmoothing) {
|
|
3342
|
-
let command, commandLen;
|
|
3343
|
+
let command, lastCommand, commandLen;
|
|
3343
3344
|
let i = 0, x = 0, y = 0, startX = 0, startY = 0, secondX = 0, secondY = 0, lastX = 0, lastY = 0;
|
|
3344
3345
|
const len = data.length;
|
|
3345
3346
|
const smooth = [];
|
|
@@ -3377,8 +3378,10 @@ const PathCorner = {
|
|
|
3377
3378
|
lastY = y;
|
|
3378
3379
|
break;
|
|
3379
3380
|
case Z:
|
|
3380
|
-
|
|
3381
|
-
|
|
3381
|
+
if (lastCommand !== Z) {
|
|
3382
|
+
arcTo(smooth, startX, startY, secondX, secondY, cornerRadius, lastX, lastY);
|
|
3383
|
+
smooth.push(Z);
|
|
3384
|
+
}
|
|
3382
3385
|
i += 1;
|
|
3383
3386
|
break;
|
|
3384
3387
|
default:
|
|
@@ -3387,6 +3390,7 @@ const PathCorner = {
|
|
|
3387
3390
|
smooth.push(data[i + j]);
|
|
3388
3391
|
i += commandLen;
|
|
3389
3392
|
}
|
|
3393
|
+
lastCommand = command;
|
|
3390
3394
|
}
|
|
3391
3395
|
if (command !== Z) {
|
|
3392
3396
|
smooth[1] = startX;
|
|
@@ -3883,12 +3887,12 @@ class LeaferImage {
|
|
|
3883
3887
|
try {
|
|
3884
3888
|
if (transform && pattern.setTransform) {
|
|
3885
3889
|
pattern.setTransform(transform);
|
|
3886
|
-
transform =
|
|
3890
|
+
transform = undefined;
|
|
3887
3891
|
}
|
|
3888
3892
|
}
|
|
3889
3893
|
catch (_a) { }
|
|
3890
3894
|
if (paint)
|
|
3891
|
-
paint
|
|
3895
|
+
DataHelper.stintSet(paint, 'transform', transform);
|
|
3892
3896
|
return pattern;
|
|
3893
3897
|
}
|
|
3894
3898
|
destroy() {
|
|
@@ -3993,10 +3997,14 @@ function pathInputType(defaultValue) {
|
|
|
3993
3997
|
}));
|
|
3994
3998
|
}
|
|
3995
3999
|
const pathType = boundsType;
|
|
3996
|
-
function affectStrokeBoundsType(defaultValue) {
|
|
4000
|
+
function affectStrokeBoundsType(defaultValue, useStroke) {
|
|
3997
4001
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
3998
4002
|
set(value) {
|
|
3999
|
-
this.__setAttr(key, value)
|
|
4003
|
+
if (this.__setAttr(key, value)) {
|
|
4004
|
+
doStrokeType(this);
|
|
4005
|
+
if (useStroke)
|
|
4006
|
+
this.__.__useStroke = true;
|
|
4007
|
+
}
|
|
4000
4008
|
}
|
|
4001
4009
|
}));
|
|
4002
4010
|
}
|
|
@@ -5422,6 +5430,8 @@ const LeafBounds = {
|
|
|
5422
5430
|
|
|
5423
5431
|
const LeafRender = {
|
|
5424
5432
|
__render(canvas, options) {
|
|
5433
|
+
if (options.shape)
|
|
5434
|
+
return this.__renderShape(canvas, options);
|
|
5425
5435
|
if (this.__worldOpacity) {
|
|
5426
5436
|
const data = this.__;
|
|
5427
5437
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
@@ -5431,12 +5441,10 @@ const LeafRender = {
|
|
|
5431
5441
|
return this.__renderEraser(canvas, options);
|
|
5432
5442
|
const tempCanvas = canvas.getSameCanvas(true, true);
|
|
5433
5443
|
this.__draw(tempCanvas, options, canvas);
|
|
5434
|
-
if (this.__worldFlipped)
|
|
5444
|
+
if (this.__worldFlipped)
|
|
5435
5445
|
canvas.copyWorldByReset(tempCanvas, this.__nowWorld, null, data.__blendMode, true);
|
|
5436
|
-
|
|
5437
|
-
else {
|
|
5446
|
+
else
|
|
5438
5447
|
canvas.copyWorldToInner(tempCanvas, this.__nowWorld, this.__layout.renderBounds, data.__blendMode);
|
|
5439
|
-
}
|
|
5440
5448
|
tempCanvas.recycle(this.__nowWorld);
|
|
5441
5449
|
}
|
|
5442
5450
|
else {
|
|
@@ -5446,6 +5454,12 @@ const LeafRender = {
|
|
|
5446
5454
|
Debug.drawBounds(this, canvas, options);
|
|
5447
5455
|
}
|
|
5448
5456
|
},
|
|
5457
|
+
__renderShape(canvas, options) {
|
|
5458
|
+
if (this.__worldOpacity) {
|
|
5459
|
+
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
5460
|
+
this.__drawShape(canvas, options);
|
|
5461
|
+
}
|
|
5462
|
+
},
|
|
5449
5463
|
__clip(canvas, options) {
|
|
5450
5464
|
if (this.__worldOpacity) {
|
|
5451
5465
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
@@ -5865,7 +5879,8 @@ let Leaf = class Leaf {
|
|
|
5865
5879
|
__drawFast(_canvas, _options) { }
|
|
5866
5880
|
__draw(_canvas, _options, _originCanvas) { }
|
|
5867
5881
|
__clip(_canvas, _options) { }
|
|
5868
|
-
__renderShape(_canvas, _options
|
|
5882
|
+
__renderShape(_canvas, _options) { }
|
|
5883
|
+
__drawShape(_canvas, _options) { }
|
|
5869
5884
|
__updateWorldOpacity() { }
|
|
5870
5885
|
__updateChange() { }
|
|
5871
5886
|
__drawPath(_canvas) { }
|
|
@@ -6233,7 +6248,7 @@ class LeafLevelList {
|
|
|
6233
6248
|
}
|
|
6234
6249
|
}
|
|
6235
6250
|
|
|
6236
|
-
const version = "1.
|
|
6251
|
+
const version = "1.7.0";
|
|
6237
6252
|
|
|
6238
6253
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6239
6254
|
get allowBackgroundColor() { return true; }
|
|
@@ -6993,13 +7008,9 @@ class UIData extends LeafData {
|
|
|
6993
7008
|
else
|
|
6994
7009
|
return strokeWidth;
|
|
6995
7010
|
}
|
|
6996
|
-
get __hasStroke() { return this.stroke && this.strokeWidth; }
|
|
6997
|
-
get __hasHalf() { const t = this; return (t.stroke && t.strokeAlign === 'center' && t.strokeWidth % 2) || undefined; }
|
|
6998
7011
|
get __hasMultiPaint() {
|
|
6999
7012
|
const t = this;
|
|
7000
|
-
|
|
7001
|
-
return true;
|
|
7002
|
-
return t.fill && this.__hasStroke;
|
|
7013
|
+
return (t.fill && this.__useStroke) || (t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect;
|
|
7003
7014
|
}
|
|
7004
7015
|
get __clipAfterFill() { const t = this; return (t.cornerRadius || t.innerShadow || t.__pathInputed); }
|
|
7005
7016
|
get __hasSurface() { const t = this; return (t.fill || t.stroke); }
|
|
@@ -7290,15 +7301,18 @@ const { stintSet: stintSet$1 } = DataHelper;
|
|
|
7290
7301
|
const UIRender = {
|
|
7291
7302
|
__updateChange() {
|
|
7292
7303
|
const data = this.__;
|
|
7304
|
+
if (data.__useStroke) {
|
|
7305
|
+
const useStroke = data.__useStroke = !!(data.stroke && data.strokeWidth);
|
|
7306
|
+
stintSet$1(this.__world, 'half', useStroke && data.strokeAlign === 'center' && data.strokeWidth % 2);
|
|
7307
|
+
stintSet$1(data, '__fillAfterStroke', useStroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7308
|
+
}
|
|
7293
7309
|
if (data.__useEffect) {
|
|
7294
7310
|
const { shadow, fill, stroke } = data, otherEffect = data.innerShadow || data.blur || data.backgroundBlur || data.filter;
|
|
7295
7311
|
stintSet$1(data, '__isFastShadow', shadow && !otherEffect && shadow.length < 2 && !shadow[0].spread && !(shadow[0].box && data.__isTransparentFill) && fill && !(fill instanceof Array && fill.length > 1) && (this.useFastShadow || !stroke || (stroke && data.strokeAlign === 'inside')));
|
|
7296
7312
|
data.__useEffect = !!(shadow || otherEffect);
|
|
7297
7313
|
}
|
|
7298
|
-
stintSet$1(this.__world, 'half', data.__hasHalf);
|
|
7299
|
-
stintSet$1(data, '__fillAfterStroke', data.stroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7300
7314
|
data.__checkSingle();
|
|
7301
|
-
stintSet$1(data, '__complex', data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect);
|
|
7315
|
+
stintSet$1(data, '__complex', (data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect));
|
|
7302
7316
|
},
|
|
7303
7317
|
__drawFast(canvas, options) {
|
|
7304
7318
|
drawFast(this, canvas, options);
|
|
@@ -7356,18 +7370,15 @@ const UIRender = {
|
|
|
7356
7370
|
this.__drawFast(canvas, options);
|
|
7357
7371
|
}
|
|
7358
7372
|
},
|
|
7359
|
-
|
|
7360
|
-
|
|
7361
|
-
|
|
7362
|
-
|
|
7363
|
-
this.
|
|
7364
|
-
|
|
7365
|
-
|
|
7366
|
-
|
|
7367
|
-
|
|
7368
|
-
if (stroke && !ignoreStroke)
|
|
7369
|
-
this.__.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7370
|
-
}
|
|
7373
|
+
__drawShape(canvas, options) {
|
|
7374
|
+
this.__drawRenderPath(canvas);
|
|
7375
|
+
const data = this.__, { fill, stroke } = data;
|
|
7376
|
+
if (fill && !options.ignoreFill)
|
|
7377
|
+
data.__isAlphaPixelFill ? Paint.fills(fill, this, canvas) : Paint.fill('#000000', this, canvas);
|
|
7378
|
+
if (data.__isCanvas)
|
|
7379
|
+
this.__drawAfterFill(canvas, options);
|
|
7380
|
+
if (stroke && !options.ignoreStroke)
|
|
7381
|
+
data.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7371
7382
|
},
|
|
7372
7383
|
__drawAfterFill(canvas, options) {
|
|
7373
7384
|
if (this.__.__clipAfterFill) {
|
|
@@ -7492,12 +7503,14 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7492
7503
|
}
|
|
7493
7504
|
}
|
|
7494
7505
|
__updateRenderPath() {
|
|
7495
|
-
|
|
7496
|
-
|
|
7506
|
+
const data = this.__;
|
|
7507
|
+
if (data.path) {
|
|
7497
7508
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
7498
7509
|
if (data.__useArrow)
|
|
7499
7510
|
PathArrow.addArrows(this, !data.cornerRadius);
|
|
7500
7511
|
}
|
|
7512
|
+
else
|
|
7513
|
+
data.__pathForRender && (data.__pathForRender = undefined);
|
|
7501
7514
|
}
|
|
7502
7515
|
__drawRenderPath(canvas) {
|
|
7503
7516
|
canvas.beginPath();
|
|
@@ -7708,13 +7721,13 @@ __decorate([
|
|
|
7708
7721
|
surfaceType()
|
|
7709
7722
|
], UI.prototype, "fill", void 0);
|
|
7710
7723
|
__decorate([
|
|
7711
|
-
strokeType()
|
|
7724
|
+
strokeType(undefined, true)
|
|
7712
7725
|
], UI.prototype, "stroke", void 0);
|
|
7713
7726
|
__decorate([
|
|
7714
7727
|
strokeType('inside')
|
|
7715
7728
|
], UI.prototype, "strokeAlign", void 0);
|
|
7716
7729
|
__decorate([
|
|
7717
|
-
strokeType(1)
|
|
7730
|
+
strokeType(1, true)
|
|
7718
7731
|
], UI.prototype, "strokeWidth", void 0);
|
|
7719
7732
|
__decorate([
|
|
7720
7733
|
strokeType(false)
|
|
@@ -8141,7 +8154,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8141
8154
|
list.push(item);
|
|
8142
8155
|
this.requestRender();
|
|
8143
8156
|
}
|
|
8144
|
-
zoom(_zoomType,
|
|
8157
|
+
zoom(_zoomType, _optionsOrPadding, _scroll, _transition) {
|
|
8145
8158
|
return Plugin.need('view');
|
|
8146
8159
|
}
|
|
8147
8160
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
@@ -8186,7 +8199,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8186
8199
|
Leafer_1.list.remove(this);
|
|
8187
8200
|
try {
|
|
8188
8201
|
this.stop();
|
|
8189
|
-
this.
|
|
8202
|
+
this.emitLeafer(LeaferEvent.END);
|
|
8190
8203
|
this.__removeListenEvents();
|
|
8191
8204
|
this.__controllers.forEach(item => !(this.parent && item === this.interaction) && item.destroy());
|
|
8192
8205
|
this.__controllers.length = 0;
|
|
@@ -8314,7 +8327,7 @@ let Box = class Box extends Group {
|
|
|
8314
8327
|
}
|
|
8315
8328
|
__drawContent(canvas, options) {
|
|
8316
8329
|
this.__renderGroup(canvas, options);
|
|
8317
|
-
if (this.__.
|
|
8330
|
+
if (this.__.__useStroke) {
|
|
8318
8331
|
canvas.setWorld(this.__nowWorld);
|
|
8319
8332
|
this.__drawRenderPath(canvas);
|
|
8320
8333
|
}
|
|
@@ -8534,8 +8547,8 @@ let Polygon = class Polygon extends UI {
|
|
|
8534
8547
|
for (let i = 1; i < sides; i++) {
|
|
8535
8548
|
lineTo$1(path, rx + rx * sin$1((i * 2 * PI$1) / sides), ry - ry * cos$1((i * 2 * PI$1) / sides));
|
|
8536
8549
|
}
|
|
8550
|
+
closePath$1(path);
|
|
8537
8551
|
}
|
|
8538
|
-
closePath$1(path);
|
|
8539
8552
|
}
|
|
8540
8553
|
__updateRenderPath() { }
|
|
8541
8554
|
__updateBoxBounds() { }
|
|
@@ -8769,10 +8782,15 @@ let Text = class Text extends UI {
|
|
|
8769
8782
|
const box = this.__box;
|
|
8770
8783
|
if (box)
|
|
8771
8784
|
box.__nowWorld = this.__nowWorld, box.__draw(canvas, options, originCanvas);
|
|
8772
|
-
if (this.textEditing && !
|
|
8785
|
+
if (this.textEditing && !options.exporting)
|
|
8773
8786
|
return;
|
|
8774
8787
|
super.__draw(canvas, options, originCanvas);
|
|
8775
8788
|
}
|
|
8789
|
+
__drawShape(canvas, options) {
|
|
8790
|
+
if (options.shape)
|
|
8791
|
+
this.__box && this.__box.__drawShape(canvas, options);
|
|
8792
|
+
super.__drawShape(canvas, options);
|
|
8793
|
+
}
|
|
8776
8794
|
destroy() {
|
|
8777
8795
|
if (this.boxStyle)
|
|
8778
8796
|
this.boxStyle = null;
|
|
@@ -9233,7 +9251,7 @@ const PaintModule = {
|
|
|
9233
9251
|
};
|
|
9234
9252
|
|
|
9235
9253
|
let origin = {};
|
|
9236
|
-
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate } = MatrixHelper;
|
|
9254
|
+
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate, skew: skewHelper } = MatrixHelper;
|
|
9237
9255
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
9238
9256
|
const transform = get$3();
|
|
9239
9257
|
translate$1(transform, box.x + x, box.y + y);
|
|
@@ -9242,13 +9260,15 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
9242
9260
|
rotateOfOuter$1(transform, { x: box.x + box.width / 2, y: box.y + box.height / 2 }, rotation);
|
|
9243
9261
|
data.transform = transform;
|
|
9244
9262
|
}
|
|
9245
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
9263
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew) {
|
|
9246
9264
|
const transform = get$3();
|
|
9247
|
-
translate$1(transform, box.x + x, box.y + y);
|
|
9248
|
-
if (scaleX)
|
|
9249
|
-
scaleHelper(transform, scaleX, scaleY);
|
|
9250
9265
|
if (rotation)
|
|
9251
9266
|
rotate(transform, rotation);
|
|
9267
|
+
if (skew)
|
|
9268
|
+
skewHelper(transform, skew.x, skew.y);
|
|
9269
|
+
if (scaleX)
|
|
9270
|
+
scaleHelper(transform, scaleX, scaleY);
|
|
9271
|
+
translate$1(transform, box.x + x, box.y + y);
|
|
9252
9272
|
data.transform = transform;
|
|
9253
9273
|
}
|
|
9254
9274
|
function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, align) {
|
|
@@ -9285,11 +9305,13 @@ const tempBox = new Bounds();
|
|
|
9285
9305
|
const tempScaleData = {};
|
|
9286
9306
|
const tempImage = {};
|
|
9287
9307
|
function createData(leafPaint, image, paint, box) {
|
|
9288
|
-
const { changeful, sync } = paint;
|
|
9308
|
+
const { changeful, sync, editing } = paint;
|
|
9289
9309
|
if (changeful)
|
|
9290
9310
|
leafPaint.changeful = changeful;
|
|
9291
9311
|
if (sync)
|
|
9292
9312
|
leafPaint.sync = sync;
|
|
9313
|
+
if (editing)
|
|
9314
|
+
leafPaint.editing = editing;
|
|
9293
9315
|
leafPaint.data = getPatternData(paint, box, image);
|
|
9294
9316
|
}
|
|
9295
9317
|
function getPatternData(paint, box, image) {
|
|
@@ -9298,7 +9320,7 @@ function getPatternData(paint, box, image) {
|
|
|
9298
9320
|
if (paint.mode === 'strench')
|
|
9299
9321
|
paint.mode = 'stretch';
|
|
9300
9322
|
let { width, height } = image;
|
|
9301
|
-
const { opacity, mode, align, offset, scale, size, rotation, repeat, filters } = paint;
|
|
9323
|
+
const { opacity, mode, align, offset, scale, size, rotation, skew, repeat, filters } = paint;
|
|
9302
9324
|
const sameBox = box.width === width && box.height === height;
|
|
9303
9325
|
const data = { mode };
|
|
9304
9326
|
const swapSize = align !== 'center' && (rotation || 0) % 180 === 90;
|
|
@@ -9332,8 +9354,8 @@ function getPatternData(paint, box, image) {
|
|
|
9332
9354
|
break;
|
|
9333
9355
|
case 'normal':
|
|
9334
9356
|
case 'clip':
|
|
9335
|
-
if (tempImage.x || tempImage.y || scaleX || rotation)
|
|
9336
|
-
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
|
|
9357
|
+
if (tempImage.x || tempImage.y || scaleX || rotation || skew)
|
|
9358
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew);
|
|
9337
9359
|
break;
|
|
9338
9360
|
case 'repeat':
|
|
9339
9361
|
if (!sameBox || scaleX || rotation)
|
|
@@ -9410,11 +9432,11 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
|
9410
9432
|
}
|
|
9411
9433
|
onLoadSuccess(ui, event);
|
|
9412
9434
|
}
|
|
9413
|
-
leafPaint.loadId =
|
|
9435
|
+
leafPaint.loadId = undefined;
|
|
9414
9436
|
}, (error) => {
|
|
9415
9437
|
ignoreRender(ui, false);
|
|
9416
9438
|
onLoadError(ui, event, error);
|
|
9417
|
-
leafPaint.loadId =
|
|
9439
|
+
leafPaint.loadId = undefined;
|
|
9418
9440
|
});
|
|
9419
9441
|
if (ui.placeholderColor) {
|
|
9420
9442
|
if (!ui.placeholderDelay)
|
|
@@ -9480,6 +9502,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
9480
9502
|
const { image, data } = paint;
|
|
9481
9503
|
let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, transform, repeat } = data;
|
|
9482
9504
|
if (sx) {
|
|
9505
|
+
sx = abs$1(sx);
|
|
9506
|
+
sy = abs$1(sy);
|
|
9483
9507
|
imageMatrix = get$1();
|
|
9484
9508
|
copy$1(imageMatrix, transform);
|
|
9485
9509
|
scale(imageMatrix, 1 / sx, 1 / sy);
|