leafer-draw 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/web.cjs +17 -11
- package/dist/web.esm.js +17 -11
- package/dist/web.esm.min.js +1 -1
- package/dist/web.esm.min.js.map +1 -1
- package/dist/web.js +86 -62
- package/dist/web.min.cjs +1 -1
- package/dist/web.min.cjs.map +1 -1
- package/dist/web.min.js +1 -1
- package/dist/web.min.js.map +1 -1
- package/dist/web.module.js +86 -62
- package/dist/web.module.min.js +1 -1
- package/dist/web.module.min.js.map +1 -1
- package/package.json +3 -3
package/dist/web.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
|
const debug$4 = Debug.get('LeaferCanvas');
|
|
6239
6254
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
@@ -7174,13 +7189,9 @@ class UIData extends LeafData {
|
|
|
7174
7189
|
else
|
|
7175
7190
|
return strokeWidth;
|
|
7176
7191
|
}
|
|
7177
|
-
get __hasStroke() { return this.stroke && this.strokeWidth; }
|
|
7178
|
-
get __hasHalf() { const t = this; return (t.stroke && t.strokeAlign === 'center' && t.strokeWidth % 2) || undefined; }
|
|
7179
7192
|
get __hasMultiPaint() {
|
|
7180
7193
|
const t = this;
|
|
7181
|
-
|
|
7182
|
-
return true;
|
|
7183
|
-
return t.fill && this.__hasStroke;
|
|
7194
|
+
return (t.fill && this.__useStroke) || (t.__isFills && t.fill.length > 1) || (t.__isStrokes && t.stroke.length > 1) || t.__useEffect;
|
|
7184
7195
|
}
|
|
7185
7196
|
get __clipAfterFill() { const t = this; return (t.cornerRadius || t.innerShadow || t.__pathInputed); }
|
|
7186
7197
|
get __hasSurface() { const t = this; return (t.fill || t.stroke); }
|
|
@@ -7471,15 +7482,18 @@ const { stintSet: stintSet$1 } = DataHelper;
|
|
|
7471
7482
|
const UIRender = {
|
|
7472
7483
|
__updateChange() {
|
|
7473
7484
|
const data = this.__;
|
|
7485
|
+
if (data.__useStroke) {
|
|
7486
|
+
const useStroke = data.__useStroke = !!(data.stroke && data.strokeWidth);
|
|
7487
|
+
stintSet$1(this.__world, 'half', useStroke && data.strokeAlign === 'center' && data.strokeWidth % 2);
|
|
7488
|
+
stintSet$1(data, '__fillAfterStroke', useStroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7489
|
+
}
|
|
7474
7490
|
if (data.__useEffect) {
|
|
7475
7491
|
const { shadow, fill, stroke } = data, otherEffect = data.innerShadow || data.blur || data.backgroundBlur || data.filter;
|
|
7476
7492
|
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')));
|
|
7477
7493
|
data.__useEffect = !!(shadow || otherEffect);
|
|
7478
7494
|
}
|
|
7479
|
-
stintSet$1(this.__world, 'half', data.__hasHalf);
|
|
7480
|
-
stintSet$1(data, '__fillAfterStroke', data.stroke && data.strokeAlign === 'outside' && data.fill && !data.__isTransparentFill);
|
|
7481
7495
|
data.__checkSingle();
|
|
7482
|
-
stintSet$1(data, '__complex', data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect);
|
|
7496
|
+
stintSet$1(data, '__complex', (data.__isFills || data.__isStrokes || data.cornerRadius || data.__useEffect));
|
|
7483
7497
|
},
|
|
7484
7498
|
__drawFast(canvas, options) {
|
|
7485
7499
|
drawFast(this, canvas, options);
|
|
@@ -7537,18 +7551,15 @@ const UIRender = {
|
|
|
7537
7551
|
this.__drawFast(canvas, options);
|
|
7538
7552
|
}
|
|
7539
7553
|
},
|
|
7540
|
-
|
|
7541
|
-
|
|
7542
|
-
|
|
7543
|
-
|
|
7544
|
-
this.
|
|
7545
|
-
|
|
7546
|
-
|
|
7547
|
-
|
|
7548
|
-
|
|
7549
|
-
if (stroke && !ignoreStroke)
|
|
7550
|
-
this.__.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7551
|
-
}
|
|
7554
|
+
__drawShape(canvas, options) {
|
|
7555
|
+
this.__drawRenderPath(canvas);
|
|
7556
|
+
const data = this.__, { fill, stroke } = data;
|
|
7557
|
+
if (fill && !options.ignoreFill)
|
|
7558
|
+
data.__isAlphaPixelFill ? Paint.fills(fill, this, canvas) : Paint.fill('#000000', this, canvas);
|
|
7559
|
+
if (data.__isCanvas)
|
|
7560
|
+
this.__drawAfterFill(canvas, options);
|
|
7561
|
+
if (stroke && !options.ignoreStroke)
|
|
7562
|
+
data.__isAlphaPixelStroke ? Paint.strokes(stroke, this, canvas) : Paint.stroke('#000000', this, canvas);
|
|
7552
7563
|
},
|
|
7553
7564
|
__drawAfterFill(canvas, options) {
|
|
7554
7565
|
if (this.__.__clipAfterFill) {
|
|
@@ -7673,12 +7684,14 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7673
7684
|
}
|
|
7674
7685
|
}
|
|
7675
7686
|
__updateRenderPath() {
|
|
7676
|
-
|
|
7677
|
-
|
|
7687
|
+
const data = this.__;
|
|
7688
|
+
if (data.path) {
|
|
7678
7689
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
7679
7690
|
if (data.__useArrow)
|
|
7680
7691
|
PathArrow.addArrows(this, !data.cornerRadius);
|
|
7681
7692
|
}
|
|
7693
|
+
else
|
|
7694
|
+
data.__pathForRender && (data.__pathForRender = undefined);
|
|
7682
7695
|
}
|
|
7683
7696
|
__drawRenderPath(canvas) {
|
|
7684
7697
|
canvas.beginPath();
|
|
@@ -7889,13 +7902,13 @@ __decorate([
|
|
|
7889
7902
|
surfaceType()
|
|
7890
7903
|
], UI.prototype, "fill", void 0);
|
|
7891
7904
|
__decorate([
|
|
7892
|
-
strokeType()
|
|
7905
|
+
strokeType(undefined, true)
|
|
7893
7906
|
], UI.prototype, "stroke", void 0);
|
|
7894
7907
|
__decorate([
|
|
7895
7908
|
strokeType('inside')
|
|
7896
7909
|
], UI.prototype, "strokeAlign", void 0);
|
|
7897
7910
|
__decorate([
|
|
7898
|
-
strokeType(1)
|
|
7911
|
+
strokeType(1, true)
|
|
7899
7912
|
], UI.prototype, "strokeWidth", void 0);
|
|
7900
7913
|
__decorate([
|
|
7901
7914
|
strokeType(false)
|
|
@@ -8322,7 +8335,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8322
8335
|
list.push(item);
|
|
8323
8336
|
this.requestRender();
|
|
8324
8337
|
}
|
|
8325
|
-
zoom(_zoomType,
|
|
8338
|
+
zoom(_zoomType, _optionsOrPadding, _scroll, _transition) {
|
|
8326
8339
|
return Plugin.need('view');
|
|
8327
8340
|
}
|
|
8328
8341
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
@@ -8367,7 +8380,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8367
8380
|
Leafer_1.list.remove(this);
|
|
8368
8381
|
try {
|
|
8369
8382
|
this.stop();
|
|
8370
|
-
this.
|
|
8383
|
+
this.emitLeafer(LeaferEvent.END);
|
|
8371
8384
|
this.__removeListenEvents();
|
|
8372
8385
|
this.__controllers.forEach(item => !(this.parent && item === this.interaction) && item.destroy());
|
|
8373
8386
|
this.__controllers.length = 0;
|
|
@@ -8495,7 +8508,7 @@ let Box = class Box extends Group {
|
|
|
8495
8508
|
}
|
|
8496
8509
|
__drawContent(canvas, options) {
|
|
8497
8510
|
this.__renderGroup(canvas, options);
|
|
8498
|
-
if (this.__.
|
|
8511
|
+
if (this.__.__useStroke) {
|
|
8499
8512
|
canvas.setWorld(this.__nowWorld);
|
|
8500
8513
|
this.__drawRenderPath(canvas);
|
|
8501
8514
|
}
|
|
@@ -8715,8 +8728,8 @@ let Polygon = class Polygon extends UI {
|
|
|
8715
8728
|
for (let i = 1; i < sides; i++) {
|
|
8716
8729
|
lineTo$1(path, rx + rx * sin$1((i * 2 * PI$1) / sides), ry - ry * cos$1((i * 2 * PI$1) / sides));
|
|
8717
8730
|
}
|
|
8731
|
+
closePath$1(path);
|
|
8718
8732
|
}
|
|
8719
|
-
closePath$1(path);
|
|
8720
8733
|
}
|
|
8721
8734
|
__updateRenderPath() { }
|
|
8722
8735
|
__updateBoxBounds() { }
|
|
@@ -8950,10 +8963,15 @@ let Text = class Text extends UI {
|
|
|
8950
8963
|
const box = this.__box;
|
|
8951
8964
|
if (box)
|
|
8952
8965
|
box.__nowWorld = this.__nowWorld, box.__draw(canvas, options, originCanvas);
|
|
8953
|
-
if (this.textEditing && !
|
|
8966
|
+
if (this.textEditing && !options.exporting)
|
|
8954
8967
|
return;
|
|
8955
8968
|
super.__draw(canvas, options, originCanvas);
|
|
8956
8969
|
}
|
|
8970
|
+
__drawShape(canvas, options) {
|
|
8971
|
+
if (options.shape)
|
|
8972
|
+
this.__box && this.__box.__drawShape(canvas, options);
|
|
8973
|
+
super.__drawShape(canvas, options);
|
|
8974
|
+
}
|
|
8957
8975
|
destroy() {
|
|
8958
8976
|
if (this.boxStyle)
|
|
8959
8977
|
this.boxStyle = null;
|
|
@@ -9414,7 +9432,7 @@ const PaintModule = {
|
|
|
9414
9432
|
};
|
|
9415
9433
|
|
|
9416
9434
|
let origin = {};
|
|
9417
|
-
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate } = MatrixHelper;
|
|
9435
|
+
const { get: get$3, rotateOfOuter: rotateOfOuter$1, translate: translate$1, scaleOfOuter: scaleOfOuter$1, scale: scaleHelper, rotate, skew: skewHelper } = MatrixHelper;
|
|
9418
9436
|
function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
9419
9437
|
const transform = get$3();
|
|
9420
9438
|
translate$1(transform, box.x + x, box.y + y);
|
|
@@ -9423,13 +9441,15 @@ function fillOrFitMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
|
9423
9441
|
rotateOfOuter$1(transform, { x: box.x + box.width / 2, y: box.y + box.height / 2 }, rotation);
|
|
9424
9442
|
data.transform = transform;
|
|
9425
9443
|
}
|
|
9426
|
-
function clipMode(data, box, x, y, scaleX, scaleY, rotation) {
|
|
9444
|
+
function clipMode(data, box, x, y, scaleX, scaleY, rotation, skew) {
|
|
9427
9445
|
const transform = get$3();
|
|
9428
|
-
translate$1(transform, box.x + x, box.y + y);
|
|
9429
|
-
if (scaleX)
|
|
9430
|
-
scaleHelper(transform, scaleX, scaleY);
|
|
9431
9446
|
if (rotation)
|
|
9432
9447
|
rotate(transform, rotation);
|
|
9448
|
+
if (skew)
|
|
9449
|
+
skewHelper(transform, skew.x, skew.y);
|
|
9450
|
+
if (scaleX)
|
|
9451
|
+
scaleHelper(transform, scaleX, scaleY);
|
|
9452
|
+
translate$1(transform, box.x + x, box.y + y);
|
|
9433
9453
|
data.transform = transform;
|
|
9434
9454
|
}
|
|
9435
9455
|
function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, align) {
|
|
@@ -9466,11 +9486,13 @@ const tempBox = new Bounds();
|
|
|
9466
9486
|
const tempScaleData = {};
|
|
9467
9487
|
const tempImage = {};
|
|
9468
9488
|
function createData(leafPaint, image, paint, box) {
|
|
9469
|
-
const { changeful, sync } = paint;
|
|
9489
|
+
const { changeful, sync, editing } = paint;
|
|
9470
9490
|
if (changeful)
|
|
9471
9491
|
leafPaint.changeful = changeful;
|
|
9472
9492
|
if (sync)
|
|
9473
9493
|
leafPaint.sync = sync;
|
|
9494
|
+
if (editing)
|
|
9495
|
+
leafPaint.editing = editing;
|
|
9474
9496
|
leafPaint.data = getPatternData(paint, box, image);
|
|
9475
9497
|
}
|
|
9476
9498
|
function getPatternData(paint, box, image) {
|
|
@@ -9479,7 +9501,7 @@ function getPatternData(paint, box, image) {
|
|
|
9479
9501
|
if (paint.mode === 'strench')
|
|
9480
9502
|
paint.mode = 'stretch';
|
|
9481
9503
|
let { width, height } = image;
|
|
9482
|
-
const { opacity, mode, align, offset, scale, size, rotation, repeat, filters } = paint;
|
|
9504
|
+
const { opacity, mode, align, offset, scale, size, rotation, skew, repeat, filters } = paint;
|
|
9483
9505
|
const sameBox = box.width === width && box.height === height;
|
|
9484
9506
|
const data = { mode };
|
|
9485
9507
|
const swapSize = align !== 'center' && (rotation || 0) % 180 === 90;
|
|
@@ -9513,8 +9535,8 @@ function getPatternData(paint, box, image) {
|
|
|
9513
9535
|
break;
|
|
9514
9536
|
case 'normal':
|
|
9515
9537
|
case 'clip':
|
|
9516
|
-
if (tempImage.x || tempImage.y || scaleX || rotation)
|
|
9517
|
-
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation);
|
|
9538
|
+
if (tempImage.x || tempImage.y || scaleX || rotation || skew)
|
|
9539
|
+
clipMode(data, box, tempImage.x, tempImage.y, scaleX, scaleY, rotation, skew);
|
|
9518
9540
|
break;
|
|
9519
9541
|
case 'repeat':
|
|
9520
9542
|
if (!sameBox || scaleX || rotation)
|
|
@@ -9591,11 +9613,11 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
|
9591
9613
|
}
|
|
9592
9614
|
onLoadSuccess(ui, event);
|
|
9593
9615
|
}
|
|
9594
|
-
leafPaint.loadId =
|
|
9616
|
+
leafPaint.loadId = undefined;
|
|
9595
9617
|
}, (error) => {
|
|
9596
9618
|
ignoreRender(ui, false);
|
|
9597
9619
|
onLoadError(ui, event, error);
|
|
9598
|
-
leafPaint.loadId =
|
|
9620
|
+
leafPaint.loadId = undefined;
|
|
9599
9621
|
});
|
|
9600
9622
|
if (ui.placeholderColor) {
|
|
9601
9623
|
if (!ui.placeholderDelay)
|
|
@@ -9661,6 +9683,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
9661
9683
|
const { image, data } = paint;
|
|
9662
9684
|
let imageScale, imageMatrix, { width, height, scaleX: sx, scaleY: sy, transform, repeat } = data;
|
|
9663
9685
|
if (sx) {
|
|
9686
|
+
sx = abs$1(sx);
|
|
9687
|
+
sy = abs$1(sy);
|
|
9664
9688
|
imageMatrix = get$1();
|
|
9665
9689
|
copy$1(imageMatrix, transform);
|
|
9666
9690
|
scale(imageMatrix, 1 / sx, 1 / sy);
|