@leafer-draw/worker 1.0.0 → 1.0.2
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 +2389 -0
- package/dist/worker.esm.js +37 -35
- package/dist/worker.esm.min.js +1 -1
- package/dist/worker.js +215 -112
- package/dist/worker.min.cjs +1 -0
- package/dist/worker.min.js +1 -1
- package/dist/worker.module.js +215 -113
- package/dist/worker.module.min.js +1 -1
- package/package.json +13 -7
package/dist/worker.module.js
CHANGED
|
@@ -48,6 +48,8 @@ const I$1 = IncrementId;
|
|
|
48
48
|
const { round, pow: pow$1, PI: PI$4 } = Math;
|
|
49
49
|
const MathHelper = {
|
|
50
50
|
within(value, min, max) {
|
|
51
|
+
if (typeof min === 'object')
|
|
52
|
+
max = min.max, min = min.min;
|
|
51
53
|
if (min !== undefined && value < min)
|
|
52
54
|
value = min;
|
|
53
55
|
if (max !== undefined && value > max)
|
|
@@ -109,6 +111,19 @@ const MathHelper = {
|
|
|
109
111
|
const a = maxLength ? pow$1(10, maxLength) : 1000000000000;
|
|
110
112
|
num = round(num * a) / a;
|
|
111
113
|
return num === -0 ? 0 : num;
|
|
114
|
+
},
|
|
115
|
+
getScaleData(scale, size, originSize, scaleData) {
|
|
116
|
+
if (!scaleData)
|
|
117
|
+
scaleData = {};
|
|
118
|
+
if (size) {
|
|
119
|
+
scaleData.scaleX = (typeof size === 'number' ? size : size.width) / originSize.width;
|
|
120
|
+
scaleData.scaleY = (typeof size === 'number' ? size : size.height) / originSize.height;
|
|
121
|
+
}
|
|
122
|
+
else if (scale) {
|
|
123
|
+
scaleData.scaleX = typeof scale === 'number' ? scale : scale.x;
|
|
124
|
+
scaleData.scaleY = typeof scale === 'number' ? scale : scale.y;
|
|
125
|
+
}
|
|
126
|
+
return scaleData;
|
|
112
127
|
}
|
|
113
128
|
};
|
|
114
129
|
const OneRadian = PI$4 / 180;
|
|
@@ -150,10 +165,10 @@ const MatrixHelper = {
|
|
|
150
165
|
t.e += x;
|
|
151
166
|
t.f += y;
|
|
152
167
|
},
|
|
153
|
-
translateInner(t, x, y,
|
|
168
|
+
translateInner(t, x, y, hasOrigin) {
|
|
154
169
|
t.e += t.a * x + t.c * y;
|
|
155
170
|
t.f += t.b * x + t.d * y;
|
|
156
|
-
if (
|
|
171
|
+
if (hasOrigin)
|
|
157
172
|
t.e -= x, t.f -= y;
|
|
158
173
|
},
|
|
159
174
|
scale(t, scaleX, scaleY = scaleX) {
|
|
@@ -312,7 +327,7 @@ const MatrixHelper = {
|
|
|
312
327
|
to.y -= (f * a - e * b) * s;
|
|
313
328
|
}
|
|
314
329
|
},
|
|
315
|
-
setLayout(t, layout, origin, bcChanged) {
|
|
330
|
+
setLayout(t, layout, origin, around, bcChanged) {
|
|
316
331
|
const { x, y, scaleX, scaleY } = layout;
|
|
317
332
|
if (bcChanged === undefined)
|
|
318
333
|
bcChanged = layout.rotation || layout.skewX || layout.skewY;
|
|
@@ -344,10 +359,10 @@ const MatrixHelper = {
|
|
|
344
359
|
}
|
|
345
360
|
t.e = x;
|
|
346
361
|
t.f = y;
|
|
347
|
-
if (origin)
|
|
348
|
-
M$6.translateInner(t, -origin.x, -origin.y,
|
|
362
|
+
if (origin = origin || around)
|
|
363
|
+
M$6.translateInner(t, -origin.x, -origin.y, !around);
|
|
349
364
|
},
|
|
350
|
-
getLayout(t, origin, firstSkewY) {
|
|
365
|
+
getLayout(t, origin, around, firstSkewY) {
|
|
351
366
|
const { a, b, c, d, e, f } = t;
|
|
352
367
|
let x = e, y = f, scaleX, scaleY, rotation, skewX, skewY;
|
|
353
368
|
if (b || c) {
|
|
@@ -376,9 +391,11 @@ const MatrixHelper = {
|
|
|
376
391
|
scaleY = d;
|
|
377
392
|
rotation = skewX = skewY = 0;
|
|
378
393
|
}
|
|
379
|
-
if (origin) {
|
|
394
|
+
if (origin = around || origin) {
|
|
380
395
|
x += origin.x * a + origin.y * c;
|
|
381
396
|
y += origin.x * b + origin.y * d;
|
|
397
|
+
if (!around)
|
|
398
|
+
x -= origin.x, y -= origin.y;
|
|
382
399
|
}
|
|
383
400
|
return { x, y, scaleX, scaleY, rotation, skewX, skewY };
|
|
384
401
|
},
|
|
@@ -405,7 +422,7 @@ const MatrixHelper = {
|
|
|
405
422
|
};
|
|
406
423
|
const M$6 = MatrixHelper;
|
|
407
424
|
|
|
408
|
-
const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$
|
|
425
|
+
const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3 } = MatrixHelper;
|
|
409
426
|
const { sin: sin$4, cos: cos$4, abs: abs$4, sqrt: sqrt$2, atan2: atan2$2, min: min$1, PI: PI$3 } = Math;
|
|
410
427
|
const PointHelper = {
|
|
411
428
|
defaultPoint: getPointData(),
|
|
@@ -461,7 +478,7 @@ const PointHelper = {
|
|
|
461
478
|
tempToOuterOf(t, matrix) {
|
|
462
479
|
const { tempPoint: temp } = P$5;
|
|
463
480
|
copy$a(temp, t);
|
|
464
|
-
toOuterPoint$
|
|
481
|
+
toOuterPoint$3(matrix, temp, temp);
|
|
465
482
|
return temp;
|
|
466
483
|
},
|
|
467
484
|
tempToInnerRadiusPointOf(t, matrix) {
|
|
@@ -480,7 +497,7 @@ const PointHelper = {
|
|
|
480
497
|
toInnerPoint$2(matrix, t, to);
|
|
481
498
|
},
|
|
482
499
|
toOuterOf(t, matrix, to) {
|
|
483
|
-
toOuterPoint$
|
|
500
|
+
toOuterPoint$3(matrix, t, to);
|
|
484
501
|
},
|
|
485
502
|
getCenter(t, to) {
|
|
486
503
|
return { x: t.x + (to.x - t.x) / 2, y: t.y + (to.y - t.y) / 2 };
|
|
@@ -706,12 +723,12 @@ class Matrix {
|
|
|
706
723
|
toInnerPoint(outer, to, distance) {
|
|
707
724
|
MatrixHelper.toInnerPoint(this, outer, to, distance);
|
|
708
725
|
}
|
|
709
|
-
setLayout(data, origin) {
|
|
710
|
-
MatrixHelper.setLayout(this, data, origin);
|
|
726
|
+
setLayout(data, origin, around) {
|
|
727
|
+
MatrixHelper.setLayout(this, data, origin, around);
|
|
711
728
|
return this;
|
|
712
729
|
}
|
|
713
|
-
getLayout(origin, firstSkewY) {
|
|
714
|
-
return MatrixHelper.getLayout(this, origin, firstSkewY);
|
|
730
|
+
getLayout(origin, around, firstSkewY) {
|
|
731
|
+
return MatrixHelper.getLayout(this, origin, around, firstSkewY);
|
|
715
732
|
}
|
|
716
733
|
withScale(scaleX, scaleY) {
|
|
717
734
|
return MatrixHelper.withScale(this, scaleX, scaleY);
|
|
@@ -760,7 +777,7 @@ const TwoPointBoundsHelper = {
|
|
|
760
777
|
const { addPoint: addPoint$4 } = TwoPointBoundsHelper;
|
|
761
778
|
|
|
762
779
|
const { tempPointBounds: tempPointBounds$1, setPoint: setPoint$3, addPoint: addPoint$3, toBounds: toBounds$4 } = TwoPointBoundsHelper;
|
|
763
|
-
const { toOuterPoint: toOuterPoint$
|
|
780
|
+
const { toOuterPoint: toOuterPoint$2 } = MatrixHelper;
|
|
764
781
|
const { float, fourNumber } = MathHelper;
|
|
765
782
|
const { floor, ceil: ceil$2 } = Math;
|
|
766
783
|
let right$1, bottom$1, boundsRight, boundsBottom;
|
|
@@ -780,17 +797,24 @@ const BoundsHelper = {
|
|
|
780
797
|
t.width = bounds.width;
|
|
781
798
|
t.height = bounds.height;
|
|
782
799
|
},
|
|
783
|
-
copyAndSpread(t, bounds, spread, isShrink) {
|
|
800
|
+
copyAndSpread(t, bounds, spread, isShrink, side) {
|
|
801
|
+
const { x, y, width, height } = bounds;
|
|
784
802
|
if (spread instanceof Array) {
|
|
785
803
|
const four = fourNumber(spread);
|
|
786
804
|
isShrink
|
|
787
|
-
? B.set(t,
|
|
788
|
-
: B.set(t,
|
|
805
|
+
? B.set(t, x + four[3], y + four[0], width - four[1] - four[3], height - four[2] - four[0])
|
|
806
|
+
: B.set(t, x - four[3], y - four[0], width + four[1] + four[3], height + four[2] + four[0]);
|
|
789
807
|
}
|
|
790
808
|
else {
|
|
791
809
|
if (isShrink)
|
|
792
810
|
spread = -spread;
|
|
793
|
-
B.set(t,
|
|
811
|
+
B.set(t, x - spread, y - spread, width + spread * 2, height + spread * 2);
|
|
812
|
+
}
|
|
813
|
+
if (side) {
|
|
814
|
+
if (side === 'width')
|
|
815
|
+
t.y = y, t.height = height;
|
|
816
|
+
else
|
|
817
|
+
t.x = x, t.width = width;
|
|
794
818
|
}
|
|
795
819
|
},
|
|
796
820
|
minX(t) { return t.width > 0 ? t.x : t.x + t.width; },
|
|
@@ -867,16 +891,16 @@ const BoundsHelper = {
|
|
|
867
891
|
else {
|
|
868
892
|
point.x = t.x;
|
|
869
893
|
point.y = t.y;
|
|
870
|
-
toOuterPoint$
|
|
894
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
871
895
|
setPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
872
896
|
point.x = t.x + t.width;
|
|
873
|
-
toOuterPoint$
|
|
897
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
874
898
|
addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
875
899
|
point.y = t.y + t.height;
|
|
876
|
-
toOuterPoint$
|
|
900
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
877
901
|
addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
878
902
|
point.x = t.x;
|
|
879
|
-
toOuterPoint$
|
|
903
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
880
904
|
addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
881
905
|
toBounds$4(tempPointBounds$1, to);
|
|
882
906
|
}
|
|
@@ -890,16 +914,16 @@ const BoundsHelper = {
|
|
|
890
914
|
const scale = Math.min(baseScale, Math.min(t.width / put.width, t.height / put.height));
|
|
891
915
|
return new Matrix(scale, 0, 0, scale, -put.x * scale, -put.y * scale);
|
|
892
916
|
},
|
|
893
|
-
getSpread(t, spread) {
|
|
917
|
+
getSpread(t, spread, side) {
|
|
894
918
|
const n = {};
|
|
895
|
-
B.copyAndSpread(n, t, spread);
|
|
919
|
+
B.copyAndSpread(n, t, spread, false, side);
|
|
896
920
|
return n;
|
|
897
921
|
},
|
|
898
|
-
spread(t, spread) {
|
|
899
|
-
B.copyAndSpread(t, t, spread);
|
|
922
|
+
spread(t, spread, side) {
|
|
923
|
+
B.copyAndSpread(t, t, spread, false, side);
|
|
900
924
|
},
|
|
901
|
-
shrink(t, shrink) {
|
|
902
|
-
B.copyAndSpread(t, t, shrink, true);
|
|
925
|
+
shrink(t, shrink, side) {
|
|
926
|
+
B.copyAndSpread(t, t, shrink, true, side);
|
|
903
927
|
},
|
|
904
928
|
ceil(t) {
|
|
905
929
|
const { x, y } = t;
|
|
@@ -1082,12 +1106,12 @@ class Bounds {
|
|
|
1082
1106
|
getFitMatrix(put, baseScale) {
|
|
1083
1107
|
return BoundsHelper.getFitMatrix(this, put, baseScale);
|
|
1084
1108
|
}
|
|
1085
|
-
spread(fourNumber) {
|
|
1086
|
-
BoundsHelper.spread(this, fourNumber);
|
|
1109
|
+
spread(fourNumber, side) {
|
|
1110
|
+
BoundsHelper.spread(this, fourNumber, side);
|
|
1087
1111
|
return this;
|
|
1088
1112
|
}
|
|
1089
|
-
shrink(fourNumber) {
|
|
1090
|
-
BoundsHelper.shrink(this, fourNumber);
|
|
1113
|
+
shrink(fourNumber, side) {
|
|
1114
|
+
BoundsHelper.shrink(this, fourNumber, side);
|
|
1091
1115
|
return this;
|
|
1092
1116
|
}
|
|
1093
1117
|
ceil() {
|
|
@@ -1999,7 +2023,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
1999
2023
|
DataHelper.copyAttrs(this.size, size, canvasSizeAttrs);
|
|
2000
2024
|
this.size.pixelRatio || (this.size.pixelRatio = 1);
|
|
2001
2025
|
this.bounds = new Bounds(0, 0, this.width, this.height);
|
|
2002
|
-
if (!this.unreal) {
|
|
2026
|
+
if (this.context && !this.unreal) {
|
|
2003
2027
|
this.updateViewSize();
|
|
2004
2028
|
this.smooth = this.config.smooth;
|
|
2005
2029
|
}
|
|
@@ -2172,7 +2196,7 @@ class LeaferCanvasBase extends Canvas$1 {
|
|
|
2172
2196
|
this.manager ? this.manager.recycle(this) : this.destroy();
|
|
2173
2197
|
}
|
|
2174
2198
|
}
|
|
2175
|
-
updateRender() { }
|
|
2199
|
+
updateRender(_bounds) { }
|
|
2176
2200
|
unrealCanvas() { }
|
|
2177
2201
|
destroy() {
|
|
2178
2202
|
this.manager = this.view = this.parentView = null;
|
|
@@ -2904,60 +2928,75 @@ class PathCreator {
|
|
|
2904
2928
|
}
|
|
2905
2929
|
beginPath() {
|
|
2906
2930
|
beginPath(this.__path);
|
|
2931
|
+
this.paint();
|
|
2907
2932
|
return this;
|
|
2908
2933
|
}
|
|
2909
2934
|
moveTo(x, y) {
|
|
2910
2935
|
moveTo$4(this.__path, x, y);
|
|
2936
|
+
this.paint();
|
|
2911
2937
|
return this;
|
|
2912
2938
|
}
|
|
2913
2939
|
lineTo(x, y) {
|
|
2914
2940
|
lineTo$3(this.__path, x, y);
|
|
2941
|
+
this.paint();
|
|
2915
2942
|
return this;
|
|
2916
2943
|
}
|
|
2917
2944
|
bezierCurveTo(x1, y1, x2, y2, x, y) {
|
|
2918
2945
|
bezierCurveTo(this.__path, x1, y1, x2, y2, x, y);
|
|
2946
|
+
this.paint();
|
|
2919
2947
|
return this;
|
|
2920
2948
|
}
|
|
2921
2949
|
quadraticCurveTo(x1, y1, x, y) {
|
|
2922
2950
|
quadraticCurveTo(this.__path, x1, y1, x, y);
|
|
2951
|
+
this.paint();
|
|
2923
2952
|
return this;
|
|
2924
2953
|
}
|
|
2925
2954
|
closePath() {
|
|
2926
2955
|
closePath$3(this.__path);
|
|
2956
|
+
this.paint();
|
|
2927
2957
|
return this;
|
|
2928
2958
|
}
|
|
2929
2959
|
rect(x, y, width, height) {
|
|
2930
2960
|
rect$1(this.__path, x, y, width, height);
|
|
2961
|
+
this.paint();
|
|
2931
2962
|
return this;
|
|
2932
2963
|
}
|
|
2933
2964
|
roundRect(x, y, width, height, cornerRadius) {
|
|
2934
2965
|
roundRect$1(this.__path, x, y, width, height, cornerRadius);
|
|
2966
|
+
this.paint();
|
|
2935
2967
|
return this;
|
|
2936
2968
|
}
|
|
2937
2969
|
ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
|
|
2938
2970
|
ellipse$2(this.__path, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
|
|
2971
|
+
this.paint();
|
|
2939
2972
|
return this;
|
|
2940
2973
|
}
|
|
2941
2974
|
arc(x, y, radius, startAngle, endAngle, anticlockwise) {
|
|
2942
2975
|
arc$1(this.__path, x, y, radius, startAngle, endAngle, anticlockwise);
|
|
2976
|
+
this.paint();
|
|
2943
2977
|
return this;
|
|
2944
2978
|
}
|
|
2945
2979
|
arcTo(x1, y1, x2, y2, radius) {
|
|
2946
2980
|
arcTo$2(this.__path, x1, y1, x2, y2, radius);
|
|
2981
|
+
this.paint();
|
|
2947
2982
|
return this;
|
|
2948
2983
|
}
|
|
2949
2984
|
drawEllipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
|
|
2950
2985
|
drawEllipse(this.__path, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
|
|
2986
|
+
this.paint();
|
|
2951
2987
|
return this;
|
|
2952
2988
|
}
|
|
2953
2989
|
drawArc(x, y, radius, startAngle, endAngle, anticlockwise) {
|
|
2954
2990
|
drawArc(this.__path, x, y, radius, startAngle, endAngle, anticlockwise);
|
|
2991
|
+
this.paint();
|
|
2955
2992
|
return this;
|
|
2956
2993
|
}
|
|
2957
2994
|
drawPoints(points, curve, close) {
|
|
2958
2995
|
drawPoints$2(this.__path, points, curve, close);
|
|
2996
|
+
this.paint();
|
|
2959
2997
|
return this;
|
|
2960
2998
|
}
|
|
2999
|
+
paint() { }
|
|
2961
3000
|
}
|
|
2962
3001
|
|
|
2963
3002
|
const { M: M$2, L: L$3, C: C$2, Q: Q$1, Z: Z$2, N: N$1, D: D$1, X: X$1, G: G$1, F: F$2, O: O$1, P: P$1, U: U$1 } = PathCommandMap;
|
|
@@ -3979,7 +4018,7 @@ function registerUIEvent() {
|
|
|
3979
4018
|
};
|
|
3980
4019
|
}
|
|
3981
4020
|
|
|
3982
|
-
const { copy: copy$6, toInnerPoint: toInnerPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$2, divideParent, getLayout } = MatrixHelper;
|
|
4021
|
+
const { copy: copy$6, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$2, divideParent, getLayout } = MatrixHelper;
|
|
3983
4022
|
const matrix = {};
|
|
3984
4023
|
const LeafHelper = {
|
|
3985
4024
|
updateAllMatrix(leaf, checkAutoLayout, waitAutoLayout) {
|
|
@@ -4044,10 +4083,9 @@ const LeafHelper = {
|
|
|
4044
4083
|
}
|
|
4045
4084
|
return true;
|
|
4046
4085
|
},
|
|
4047
|
-
moveWorld(t, x, y = 0) {
|
|
4086
|
+
moveWorld(t, x, y = 0, isInnerPoint) {
|
|
4048
4087
|
const local = typeof x === 'object' ? Object.assign({}, x) : { x, y };
|
|
4049
|
-
|
|
4050
|
-
toInnerPoint$1(t.parent.worldTransform, local, local, true);
|
|
4088
|
+
isInnerPoint ? toOuterPoint$1(t.localTransform, local, local, true) : (t.parent && toInnerPoint$1(t.parent.worldTransform, local, local, true));
|
|
4051
4089
|
L.moveLocal(t, local.x, local.y);
|
|
4052
4090
|
},
|
|
4053
4091
|
moveLocal(t, x, y = 0) {
|
|
@@ -4066,8 +4104,13 @@ const LeafHelper = {
|
|
|
4066
4104
|
zoomOfLocal(t, origin, scaleX, scaleY = scaleX, resize) {
|
|
4067
4105
|
copy$6(matrix, t.__localMatrix);
|
|
4068
4106
|
scaleOfOuter$2(matrix, origin, scaleX, scaleY);
|
|
4069
|
-
|
|
4070
|
-
|
|
4107
|
+
if (t.origin || t.around) {
|
|
4108
|
+
L.setTransform(t, matrix, resize);
|
|
4109
|
+
}
|
|
4110
|
+
else {
|
|
4111
|
+
moveByMatrix(t, matrix);
|
|
4112
|
+
t.scaleResize(scaleX, scaleY, resize !== true);
|
|
4113
|
+
}
|
|
4071
4114
|
},
|
|
4072
4115
|
rotateOfWorld(t, origin, angle) {
|
|
4073
4116
|
L.rotateOfLocal(t, getTempLocal(t, origin), angle);
|
|
@@ -4075,8 +4118,13 @@ const LeafHelper = {
|
|
|
4075
4118
|
rotateOfLocal(t, origin, angle) {
|
|
4076
4119
|
copy$6(matrix, t.__localMatrix);
|
|
4077
4120
|
rotateOfOuter$2(matrix, origin, angle);
|
|
4078
|
-
|
|
4079
|
-
|
|
4121
|
+
if (t.origin || t.around) {
|
|
4122
|
+
L.setTransform(t, matrix);
|
|
4123
|
+
}
|
|
4124
|
+
else {
|
|
4125
|
+
moveByMatrix(t, matrix);
|
|
4126
|
+
t.rotation = MathHelper.formatRotation(t.rotation + angle);
|
|
4127
|
+
}
|
|
4080
4128
|
},
|
|
4081
4129
|
skewOfWorld(t, origin, skewX, skewY, resize) {
|
|
4082
4130
|
L.skewOfLocal(t, getTempLocal(t, origin), skewX, skewY, resize);
|
|
@@ -4099,7 +4147,7 @@ const LeafHelper = {
|
|
|
4099
4147
|
L.setTransform(t, matrix, resize);
|
|
4100
4148
|
},
|
|
4101
4149
|
setTransform(t, transform, resize) {
|
|
4102
|
-
const layout = getLayout(transform);
|
|
4150
|
+
const layout = getLayout(transform, t.origin && L.getInnerOrigin(t, t.origin), t.around && L.getInnerOrigin(t, t.around));
|
|
4103
4151
|
if (resize) {
|
|
4104
4152
|
const scaleX = layout.scaleX / t.scaleX;
|
|
4105
4153
|
const scaleY = layout.scaleY / t.scaleY;
|
|
@@ -4112,13 +4160,19 @@ const LeafHelper = {
|
|
|
4112
4160
|
t.set(layout);
|
|
4113
4161
|
}
|
|
4114
4162
|
},
|
|
4163
|
+
getFlipTransform(t, axis) {
|
|
4164
|
+
const m = getMatrixData();
|
|
4165
|
+
const sign = axis === 'x' ? 1 : -1;
|
|
4166
|
+
scaleOfOuter$2(m, L.getLocalOrigin(t, 'center'), -1 * sign, 1 * sign);
|
|
4167
|
+
return m;
|
|
4168
|
+
},
|
|
4115
4169
|
getLocalOrigin(t, origin) {
|
|
4116
4170
|
return PointHelper.tempToOuterOf(L.getInnerOrigin(t, origin), t.localTransform);
|
|
4117
4171
|
},
|
|
4118
4172
|
getInnerOrigin(t, origin) {
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
return
|
|
4173
|
+
const innerOrigin = {};
|
|
4174
|
+
AroundHelper.toPoint(origin, t.boxBounds, innerOrigin);
|
|
4175
|
+
return innerOrigin;
|
|
4122
4176
|
},
|
|
4123
4177
|
getRelativeWorld(t, relative, temp) {
|
|
4124
4178
|
copy$6(matrix, t.worldTransform);
|
|
@@ -4545,7 +4599,10 @@ const LeafEventer = {
|
|
|
4545
4599
|
on(type, listener, options) {
|
|
4546
4600
|
let capture, once;
|
|
4547
4601
|
if (options) {
|
|
4548
|
-
if (
|
|
4602
|
+
if (options === 'once') {
|
|
4603
|
+
once = true;
|
|
4604
|
+
}
|
|
4605
|
+
else if (typeof options === 'boolean') {
|
|
4549
4606
|
capture = options;
|
|
4550
4607
|
}
|
|
4551
4608
|
else {
|
|
@@ -4576,7 +4633,7 @@ const LeafEventer = {
|
|
|
4576
4633
|
if (listener) {
|
|
4577
4634
|
let capture;
|
|
4578
4635
|
if (options)
|
|
4579
|
-
capture = typeof options === 'boolean' ? options : options.capture;
|
|
4636
|
+
capture = typeof options === 'boolean' ? options : (options === 'once' ? false : options.capture);
|
|
4580
4637
|
let events, index;
|
|
4581
4638
|
const map = __getListenerMap(this, capture);
|
|
4582
4639
|
typeList.forEach(type => {
|
|
@@ -4878,7 +4935,7 @@ const LeafMatrix = {
|
|
|
4878
4935
|
const layout = this.__layout, local = this.__local, data = this.__;
|
|
4879
4936
|
if (layout.affectScaleOrRotation) {
|
|
4880
4937
|
if (layout.scaleChanged || layout.rotationChanged) {
|
|
4881
|
-
setLayout(local, data, null, layout.affectRotation);
|
|
4938
|
+
setLayout(local, data, null, null, layout.affectRotation);
|
|
4882
4939
|
layout.scaleChanged = layout.rotationChanged = false;
|
|
4883
4940
|
}
|
|
4884
4941
|
}
|
|
@@ -4886,7 +4943,7 @@ const LeafMatrix = {
|
|
|
4886
4943
|
local.f = data.y + data.offsetY;
|
|
4887
4944
|
if (data.around || data.origin) {
|
|
4888
4945
|
toPoint$3(data.around || data.origin, layout.boxBounds, tempPoint$1);
|
|
4889
|
-
translateInner(local, -tempPoint$1.x, -tempPoint$1.y, data.
|
|
4946
|
+
translateInner(local, -tempPoint$1.x, -tempPoint$1.y, !data.around);
|
|
4890
4947
|
}
|
|
4891
4948
|
}
|
|
4892
4949
|
this.__layout.matrixChanged = false;
|
|
@@ -4895,7 +4952,7 @@ const LeafMatrix = {
|
|
|
4895
4952
|
|
|
4896
4953
|
const { updateMatrix: updateMatrix$1, updateAllMatrix: updateAllMatrix$2 } = LeafHelper;
|
|
4897
4954
|
const { updateBounds: updateBounds$1 } = BranchHelper;
|
|
4898
|
-
const { toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$
|
|
4955
|
+
const { toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$2, copy: copy$4 } = BoundsHelper;
|
|
4899
4956
|
const { toBounds: toBounds$2 } = PathBounds;
|
|
4900
4957
|
const LeafBounds = {
|
|
4901
4958
|
__updateWorldBounds() {
|
|
@@ -4996,7 +5053,7 @@ const LeafBounds = {
|
|
|
4996
5053
|
updateAllMatrix$2(this);
|
|
4997
5054
|
updateBounds$1(this, this);
|
|
4998
5055
|
if (this.__.__autoSide)
|
|
4999
|
-
this.__updateBoxBounds();
|
|
5056
|
+
this.__updateBoxBounds(true);
|
|
5000
5057
|
}
|
|
5001
5058
|
else {
|
|
5002
5059
|
updateAllMatrix$2(this);
|
|
@@ -5014,11 +5071,11 @@ const LeafBounds = {
|
|
|
5014
5071
|
},
|
|
5015
5072
|
__updateStrokeBounds() {
|
|
5016
5073
|
const layout = this.__layout;
|
|
5017
|
-
copyAndSpread$
|
|
5074
|
+
copyAndSpread$2(layout.strokeBounds, layout.boxBounds, layout.strokeBoxSpread);
|
|
5018
5075
|
},
|
|
5019
5076
|
__updateRenderBounds() {
|
|
5020
5077
|
const layout = this.__layout;
|
|
5021
|
-
layout.renderSpread > 0 ? copyAndSpread$
|
|
5078
|
+
layout.renderSpread > 0 ? copyAndSpread$2(layout.renderBounds, layout.boxBounds, layout.renderSpread) : copy$4(layout.renderBounds, layout.strokeBounds);
|
|
5022
5079
|
}
|
|
5023
5080
|
};
|
|
5024
5081
|
|
|
@@ -5115,7 +5172,7 @@ const { LEAF, create } = IncrementId;
|
|
|
5115
5172
|
const { toInnerPoint, toOuterPoint, multiplyParent } = MatrixHelper;
|
|
5116
5173
|
const { toOuterOf } = BoundsHelper;
|
|
5117
5174
|
const { copy: copy$3 } = PointHelper;
|
|
5118
|
-
const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
|
|
5175
|
+
const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getFlipTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
|
|
5119
5176
|
let Leaf = class Leaf {
|
|
5120
5177
|
get tag() { return this.__tag; }
|
|
5121
5178
|
set tag(_value) { }
|
|
@@ -5141,6 +5198,8 @@ let Leaf = class Leaf {
|
|
|
5141
5198
|
get __ignoreHitWorld() { return (this.__hasMask || this.__hasEraser) && this.__.hitChildren; }
|
|
5142
5199
|
get __inLazyBounds() { const { leafer } = this; return leafer && leafer.created && leafer.lazyBounds.hit(this.__world); }
|
|
5143
5200
|
get pathInputed() { return this.__.__pathInputed; }
|
|
5201
|
+
set event(map) { let event; for (let key in map)
|
|
5202
|
+
event = map[key], event instanceof Array ? this.on(key, event[0], event[1]) : this.on(key, event); }
|
|
5144
5203
|
constructor(data) {
|
|
5145
5204
|
this.innerId = create(LEAF);
|
|
5146
5205
|
this.reset(data);
|
|
@@ -5376,6 +5435,9 @@ let Leaf = class Leaf {
|
|
|
5376
5435
|
move(x, y) {
|
|
5377
5436
|
moveLocal(this, x, y);
|
|
5378
5437
|
}
|
|
5438
|
+
moveInner(x, y) {
|
|
5439
|
+
moveWorld(this, x, y, true);
|
|
5440
|
+
}
|
|
5379
5441
|
scaleOf(origin, scaleX, scaleY, resize) {
|
|
5380
5442
|
zoomOfLocal(this, getLocalOrigin(this, origin), scaleX, scaleY, resize);
|
|
5381
5443
|
}
|
|
@@ -5400,6 +5462,9 @@ let Leaf = class Leaf {
|
|
|
5400
5462
|
skewOfWorld(worldOrigin, skewX, skewY, resize) {
|
|
5401
5463
|
skewOfWorld(this, worldOrigin, skewX, skewY, resize);
|
|
5402
5464
|
}
|
|
5465
|
+
flip(axis) {
|
|
5466
|
+
transform(this, getFlipTransform(this, axis));
|
|
5467
|
+
}
|
|
5403
5468
|
scaleResize(scaleX, scaleY = scaleX, _noResize) {
|
|
5404
5469
|
this.scaleX *= scaleX;
|
|
5405
5470
|
this.scaleY *= scaleY;
|
|
@@ -5757,7 +5822,7 @@ class LeafLevelList {
|
|
|
5757
5822
|
}
|
|
5758
5823
|
}
|
|
5759
5824
|
|
|
5760
|
-
const version = "1.0.
|
|
5825
|
+
const version = "1.0.1";
|
|
5761
5826
|
const inviteCode = {};
|
|
5762
5827
|
|
|
5763
5828
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
@@ -5827,7 +5892,7 @@ function useCanvas(_canvasType, _power) {
|
|
|
5827
5892
|
Platform.name = 'web';
|
|
5828
5893
|
Platform.isWorker = true;
|
|
5829
5894
|
Platform.requestRender = function (render) { requestAnimationFrame(render); };
|
|
5830
|
-
Platform
|
|
5895
|
+
defineKey(Platform, 'devicePixelRatio', { get() { return 1; } });
|
|
5831
5896
|
const { userAgent } = navigator;
|
|
5832
5897
|
if (userAgent.indexOf("Firefox") > -1) {
|
|
5833
5898
|
Platform.conicGradientRotate90 = true;
|
|
@@ -6323,14 +6388,14 @@ class Renderer {
|
|
|
6323
6388
|
if (Debug.showRepaint)
|
|
6324
6389
|
this.canvas.strokeWorld(bounds, 'red');
|
|
6325
6390
|
this.target.__render(this.canvas, options);
|
|
6326
|
-
this.renderBounds = realBounds || bounds;
|
|
6391
|
+
this.renderBounds = realBounds = realBounds || bounds;
|
|
6327
6392
|
this.renderOptions = options;
|
|
6328
|
-
this.totalBounds.isEmpty() ? this.totalBounds =
|
|
6393
|
+
this.totalBounds.isEmpty() ? this.totalBounds = realBounds : this.totalBounds.add(realBounds);
|
|
6329
6394
|
if (Debug.showHitView)
|
|
6330
6395
|
this.renderHitView(options);
|
|
6331
6396
|
if (Debug.showBoundsView)
|
|
6332
6397
|
this.renderBoundsView(options);
|
|
6333
|
-
this.canvas.updateRender();
|
|
6398
|
+
this.canvas.updateRender(realBounds);
|
|
6334
6399
|
}
|
|
6335
6400
|
renderHitView(_options) { }
|
|
6336
6401
|
renderBoundsView(_options) { }
|
|
@@ -6639,6 +6704,11 @@ class BoxData extends GroupData {
|
|
|
6639
6704
|
}
|
|
6640
6705
|
|
|
6641
6706
|
class LeaferData extends GroupData {
|
|
6707
|
+
__getInputData() {
|
|
6708
|
+
const data = super.__getInputData();
|
|
6709
|
+
canvasSizeAttrs.forEach(key => delete data[key]);
|
|
6710
|
+
return data;
|
|
6711
|
+
}
|
|
6642
6712
|
}
|
|
6643
6713
|
|
|
6644
6714
|
class FrameData extends BoxData {
|
|
@@ -6716,6 +6786,11 @@ class ImageData extends RectData {
|
|
|
6716
6786
|
}
|
|
6717
6787
|
|
|
6718
6788
|
class CanvasData extends RectData {
|
|
6789
|
+
__getInputData() {
|
|
6790
|
+
const data = super.__getInputData();
|
|
6791
|
+
data.url = this.__leaf.canvas.toDataURL('image/png');
|
|
6792
|
+
return data;
|
|
6793
|
+
}
|
|
6719
6794
|
}
|
|
6720
6795
|
|
|
6721
6796
|
const UIBounds = {
|
|
@@ -7381,7 +7456,7 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
7381
7456
|
this.__controllers.push(this.renderer = Creator.renderer(this, canvas, config), this.watcher = Creator.watcher(this, config), this.layouter = Creator.layouter(this, config));
|
|
7382
7457
|
if (this.isApp)
|
|
7383
7458
|
this.__setApp();
|
|
7384
|
-
this.__checkAutoLayout(config);
|
|
7459
|
+
this.__checkAutoLayout(config, parentApp);
|
|
7385
7460
|
this.view = canvas.view;
|
|
7386
7461
|
if (parentApp) {
|
|
7387
7462
|
this.__bindApp(parentApp);
|
|
@@ -7482,9 +7557,10 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
7482
7557
|
this.leafer = leafer;
|
|
7483
7558
|
this.__level = 1;
|
|
7484
7559
|
}
|
|
7485
|
-
__checkAutoLayout(config) {
|
|
7486
|
-
if (!
|
|
7487
|
-
|
|
7560
|
+
__checkAutoLayout(config, parentApp) {
|
|
7561
|
+
if (!parentApp) {
|
|
7562
|
+
if (!config.width || !config.height)
|
|
7563
|
+
this.autoLayout = new AutoBounds(config);
|
|
7488
7564
|
this.canvas.startAutoLayout(this.autoLayout, this.__onResize.bind(this));
|
|
7489
7565
|
}
|
|
7490
7566
|
}
|
|
@@ -7619,12 +7695,21 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
7619
7695
|
list.push(item);
|
|
7620
7696
|
}
|
|
7621
7697
|
}
|
|
7622
|
-
zoom(_zoomType, _padding, _fixedScale) {
|
|
7698
|
+
zoom(_zoomType, _padding, _fixedScale) {
|
|
7699
|
+
return debug$1.error('need @leafer-in/view');
|
|
7700
|
+
}
|
|
7623
7701
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
7624
7702
|
getValidScale(changeScale) { return changeScale; }
|
|
7625
7703
|
getWorldPointByClient(clientPoint, updateClient) {
|
|
7626
7704
|
return this.interaction && this.interaction.getLocal(clientPoint, updateClient);
|
|
7627
7705
|
}
|
|
7706
|
+
getPagePointByClient(clientPoint, updateClient) {
|
|
7707
|
+
return this.getPagePoint(this.getWorldPointByClient(clientPoint, updateClient));
|
|
7708
|
+
}
|
|
7709
|
+
updateClientBounds() {
|
|
7710
|
+
this.canvas && this.canvas.updateClientBounds();
|
|
7711
|
+
}
|
|
7712
|
+
receiveEvent(_event) { }
|
|
7628
7713
|
__checkUpdateLayout() {
|
|
7629
7714
|
this.__layout.update();
|
|
7630
7715
|
}
|
|
@@ -7708,7 +7793,7 @@ Rect = __decorate([
|
|
|
7708
7793
|
const rect = Rect.prototype;
|
|
7709
7794
|
const group = Group.prototype;
|
|
7710
7795
|
const childrenRenderBounds = {};
|
|
7711
|
-
const { copy: copy$2, add, includes: includes$1 } = BoundsHelper;
|
|
7796
|
+
const { copy: copy$2, add, includes: includes$1, copyAndSpread: copyAndSpread$1 } = BoundsHelper;
|
|
7712
7797
|
let Box = class Box extends Group {
|
|
7713
7798
|
get __tag() { return 'Box'; }
|
|
7714
7799
|
get isBranchLeaf() { return true; }
|
|
@@ -7722,20 +7807,23 @@ let Box = class Box extends Group {
|
|
|
7722
7807
|
return this.__updateRectRenderSpread() || -1;
|
|
7723
7808
|
}
|
|
7724
7809
|
__updateRectBoxBounds() { }
|
|
7725
|
-
__updateBoxBounds() {
|
|
7810
|
+
__updateBoxBounds(secondLayout) {
|
|
7726
7811
|
const data = this.__;
|
|
7727
7812
|
if (this.children.length) {
|
|
7728
7813
|
if (data.__autoSide) {
|
|
7729
7814
|
if (this.leafer && this.leafer.ready)
|
|
7730
7815
|
this.leafer.layouter.addExtra(this);
|
|
7731
7816
|
super.__updateBoxBounds();
|
|
7817
|
+
const { boxBounds } = this.__layout;
|
|
7732
7818
|
if (!data.__autoSize) {
|
|
7733
|
-
|
|
7734
|
-
|
|
7735
|
-
|
|
7736
|
-
|
|
7737
|
-
b.width += b.x, b.height = data.height, b.y = b.x = 0;
|
|
7819
|
+
if (data.__autoWidth)
|
|
7820
|
+
boxBounds.width += boxBounds.x, boxBounds.height = data.height, boxBounds.y = boxBounds.x = 0;
|
|
7821
|
+
else
|
|
7822
|
+
boxBounds.height += boxBounds.y, boxBounds.width = data.width, boxBounds.x = boxBounds.y = 0;
|
|
7738
7823
|
}
|
|
7824
|
+
if (secondLayout && data.flow && data.padding)
|
|
7825
|
+
copyAndSpread$1(boxBounds, boxBounds, data.padding, false, data.__autoSize ? null : (data.__autoWidth ? 'width' : 'height'));
|
|
7826
|
+
this.__updateNaturalSize();
|
|
7739
7827
|
}
|
|
7740
7828
|
else {
|
|
7741
7829
|
this.__updateRectBoxBounds();
|
|
@@ -7755,13 +7843,13 @@ let Box = class Box extends Group {
|
|
|
7755
7843
|
super.__updateRenderBounds();
|
|
7756
7844
|
copy$2(childrenRenderBounds, renderBounds);
|
|
7757
7845
|
this.__updateRectRenderBounds();
|
|
7758
|
-
isOverflow = !includes$1(renderBounds, childrenRenderBounds) ||
|
|
7846
|
+
isOverflow = !includes$1(renderBounds, childrenRenderBounds) || !this.pathInputed || !this.__.cornerRadius;
|
|
7759
7847
|
}
|
|
7760
7848
|
else {
|
|
7761
7849
|
this.__updateRectRenderBounds();
|
|
7762
7850
|
}
|
|
7763
7851
|
this.isOverflow !== isOverflow && (this.isOverflow = isOverflow);
|
|
7764
|
-
if (
|
|
7852
|
+
if (!(this.__.__drawAfterFill = this.__.overflow === 'hide') && isOverflow)
|
|
7765
7853
|
add(renderBounds, childrenRenderBounds);
|
|
7766
7854
|
}
|
|
7767
7855
|
__updateRectRenderBounds() { }
|
|
@@ -8095,14 +8183,26 @@ __decorate([
|
|
|
8095
8183
|
Image = __decorate([
|
|
8096
8184
|
registerUI()
|
|
8097
8185
|
], Image);
|
|
8186
|
+
const MyImage = Image;
|
|
8098
8187
|
|
|
8099
8188
|
let Canvas = class Canvas extends Rect {
|
|
8100
8189
|
get __tag() { return 'Canvas'; }
|
|
8190
|
+
get ready() { return !this.url; }
|
|
8101
8191
|
constructor(data) {
|
|
8102
8192
|
super(data);
|
|
8103
8193
|
this.canvas = Creator.canvas(this.__);
|
|
8104
8194
|
this.context = this.canvas.context;
|
|
8105
8195
|
this.__.__isCanvas = this.__.__drawAfterFill = true;
|
|
8196
|
+
if (data && data.url)
|
|
8197
|
+
this.drawImage(data.url);
|
|
8198
|
+
}
|
|
8199
|
+
drawImage(url) {
|
|
8200
|
+
new LeaferImage({ url }).load((image) => {
|
|
8201
|
+
this.context.drawImage(image.view, 0, 0);
|
|
8202
|
+
this.url = undefined;
|
|
8203
|
+
this.paint();
|
|
8204
|
+
this.emitEvent(new ImageEvent(ImageEvent.LOADED, { image }));
|
|
8205
|
+
});
|
|
8106
8206
|
}
|
|
8107
8207
|
draw(ui, offset, scale, rotation) {
|
|
8108
8208
|
ui.__layout.update();
|
|
@@ -8146,8 +8246,7 @@ let Canvas = class Canvas extends Rect {
|
|
|
8146
8246
|
destroy() {
|
|
8147
8247
|
if (this.canvas) {
|
|
8148
8248
|
this.canvas.destroy();
|
|
8149
|
-
this.canvas = null;
|
|
8150
|
-
this.context = null;
|
|
8249
|
+
this.canvas = this.context = null;
|
|
8151
8250
|
}
|
|
8152
8251
|
super.destroy();
|
|
8153
8252
|
}
|
|
@@ -8162,7 +8261,7 @@ __decorate([
|
|
|
8162
8261
|
resizeType(100)
|
|
8163
8262
|
], Canvas.prototype, "height", void 0);
|
|
8164
8263
|
__decorate([
|
|
8165
|
-
resizeType(
|
|
8264
|
+
resizeType(1)
|
|
8166
8265
|
], Canvas.prototype, "pixelRatio", void 0);
|
|
8167
8266
|
__decorate([
|
|
8168
8267
|
resizeType(true)
|
|
@@ -8186,13 +8285,13 @@ let Text = class Text extends UI {
|
|
|
8186
8285
|
super(data);
|
|
8187
8286
|
}
|
|
8188
8287
|
__drawHitPath(canvas) {
|
|
8189
|
-
const { __lineHeight, __baseLine, __textDrawData: data } = this.__;
|
|
8288
|
+
const { __lineHeight, fontSize, __baseLine, __textDrawData: data } = this.__;
|
|
8190
8289
|
canvas.beginPath();
|
|
8191
8290
|
if (this.__.__letterSpacing < 0) {
|
|
8192
8291
|
this.__drawPathByData(canvas);
|
|
8193
8292
|
}
|
|
8194
8293
|
else {
|
|
8195
|
-
data.rows.forEach(row => canvas.rect(row.x, row.y - __baseLine, row.width, __lineHeight));
|
|
8294
|
+
data.rows.forEach(row => canvas.rect(row.x, row.y - __baseLine, row.width, __lineHeight < fontSize ? fontSize : __lineHeight));
|
|
8196
8295
|
}
|
|
8197
8296
|
}
|
|
8198
8297
|
__drawPathByData(drawer, _data) {
|
|
@@ -8385,7 +8484,8 @@ let Pen = class Pen extends Group {
|
|
|
8385
8484
|
drawPoints(_points, _curve, _close) { return this; }
|
|
8386
8485
|
clearPath() { return this; }
|
|
8387
8486
|
paint() {
|
|
8388
|
-
this.pathElement.
|
|
8487
|
+
if (!this.pathElement.__layout.boxChanged)
|
|
8488
|
+
this.pathElement.forceUpdate('path');
|
|
8389
8489
|
}
|
|
8390
8490
|
};
|
|
8391
8491
|
__decorate([
|
|
@@ -8395,7 +8495,7 @@ __decorate([
|
|
|
8395
8495
|
penPathType()
|
|
8396
8496
|
], Pen.prototype, "path", void 0);
|
|
8397
8497
|
Pen = __decorate([
|
|
8398
|
-
useModule(PathCreator, ['set', 'beginPath', 'path']),
|
|
8498
|
+
useModule(PathCreator, ['set', 'beginPath', 'path', 'paint']),
|
|
8399
8499
|
registerUI()
|
|
8400
8500
|
], Pen);
|
|
8401
8501
|
function penPathType() {
|
|
@@ -8757,10 +8857,13 @@ function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, al
|
|
|
8757
8857
|
const { get: get$2, translate } = MatrixHelper;
|
|
8758
8858
|
const tempBox = new Bounds();
|
|
8759
8859
|
const tempPoint = {};
|
|
8860
|
+
const tempScaleData = {};
|
|
8760
8861
|
function createData(leafPaint, image, paint, box) {
|
|
8761
|
-
const { blendMode } = paint;
|
|
8862
|
+
const { blendMode, sync } = paint;
|
|
8762
8863
|
if (blendMode)
|
|
8763
8864
|
leafPaint.blendMode = blendMode;
|
|
8865
|
+
if (sync)
|
|
8866
|
+
leafPaint.sync = sync;
|
|
8764
8867
|
leafPaint.data = getPatternData(paint, box, image);
|
|
8765
8868
|
}
|
|
8766
8869
|
function getPatternData(paint, box, image) {
|
|
@@ -8780,13 +8883,10 @@ function getPatternData(paint, box, image) {
|
|
|
8780
8883
|
x += (box.width - width * scaleX) / 2, y += (box.height - height * scaleY) / 2;
|
|
8781
8884
|
}
|
|
8782
8885
|
}
|
|
8783
|
-
else if (size) {
|
|
8784
|
-
|
|
8785
|
-
|
|
8786
|
-
|
|
8787
|
-
else if (scale) {
|
|
8788
|
-
scaleX = typeof scale === 'number' ? scale : scale.x;
|
|
8789
|
-
scaleY = typeof scale === 'number' ? scale : scale.y;
|
|
8886
|
+
else if (scale || size) {
|
|
8887
|
+
MathHelper.getScaleData(scale, size, image, tempScaleData);
|
|
8888
|
+
scaleX = tempScaleData.scaleX;
|
|
8889
|
+
scaleY = tempScaleData.scaleY;
|
|
8790
8890
|
}
|
|
8791
8891
|
if (align) {
|
|
8792
8892
|
const imageBounds = { x, y, width: swapWidth, height: swapHeight };
|
|
@@ -8991,7 +9091,7 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
8991
9091
|
const { abs } = Math;
|
|
8992
9092
|
function checkImage(ui, canvas, paint, allowPaint) {
|
|
8993
9093
|
const { scaleX, scaleY } = ImageManager.patternLocked ? ui.__world : ui.__nowWorld;
|
|
8994
|
-
if (!paint.data || paint.patternId === scaleX + '-' + scaleY) {
|
|
9094
|
+
if (!paint.data || (paint.patternId === scaleX + '-' + scaleY && !Export.running)) {
|
|
8995
9095
|
return false;
|
|
8996
9096
|
}
|
|
8997
9097
|
else {
|
|
@@ -9025,7 +9125,7 @@ function checkImage(ui, canvas, paint, allowPaint) {
|
|
|
9025
9125
|
return true;
|
|
9026
9126
|
}
|
|
9027
9127
|
else {
|
|
9028
|
-
if (!paint.style || Export.running) {
|
|
9128
|
+
if (!paint.style || paint.sync || Export.running) {
|
|
9029
9129
|
createPattern(ui, paint, canvas.pixelRatio);
|
|
9030
9130
|
}
|
|
9031
9131
|
else {
|
|
@@ -9895,6 +9995,7 @@ const ExportModule = {
|
|
|
9895
9995
|
export(leaf, filename, options) {
|
|
9896
9996
|
this.running = true;
|
|
9897
9997
|
const fileType = FileHelper.fileType(filename);
|
|
9998
|
+
const isDownload = filename.includes('.');
|
|
9898
9999
|
options = FileHelper.getExportOptions(options);
|
|
9899
10000
|
return addTask((success) => new Promise((resolve) => {
|
|
9900
10001
|
const over = (result) => {
|
|
@@ -9904,19 +10005,13 @@ const ExportModule = {
|
|
|
9904
10005
|
};
|
|
9905
10006
|
const { toURL } = Platform;
|
|
9906
10007
|
const { download } = Platform.origin;
|
|
9907
|
-
if (
|
|
9908
|
-
|
|
9909
|
-
|
|
9910
|
-
else if (fileType === 'json') {
|
|
9911
|
-
download(toURL(JSON.stringify(leaf.toJSON(options.json)), 'text'), filename);
|
|
9912
|
-
return over({ data: true });
|
|
10008
|
+
if (fileType === 'json') {
|
|
10009
|
+
isDownload && download(toURL(JSON.stringify(leaf.toJSON(options.json)), 'text'), filename);
|
|
10010
|
+
return over({ data: isDownload ? true : leaf.toJSON(options.json) });
|
|
9913
10011
|
}
|
|
9914
|
-
if (
|
|
9915
|
-
|
|
9916
|
-
|
|
9917
|
-
else if (fileType === 'svg') {
|
|
9918
|
-
download(toURL(leaf.toSVG(), 'svg'), filename);
|
|
9919
|
-
return over({ data: true });
|
|
10012
|
+
if (fileType === 'svg') {
|
|
10013
|
+
isDownload && download(toURL(leaf.toSVG(), 'svg'), filename);
|
|
10014
|
+
return over({ data: isDownload ? true : leaf.toSVG() });
|
|
9920
10015
|
}
|
|
9921
10016
|
const { leafer } = leaf;
|
|
9922
10017
|
if (leafer) {
|
|
@@ -9925,14 +10020,8 @@ const ExportModule = {
|
|
|
9925
10020
|
let renderBounds, trimBounds, scaleX = 1, scaleY = 1;
|
|
9926
10021
|
const { worldTransform, isLeafer, isFrame } = leaf;
|
|
9927
10022
|
const { slice, trim, onCanvas } = options;
|
|
9928
|
-
let scale = options.scale || 1;
|
|
9929
|
-
let pixelRatio = options.pixelRatio || 1;
|
|
9930
10023
|
const smooth = options.smooth === undefined ? leafer.config.smooth : options.smooth;
|
|
9931
10024
|
const contextSettings = options.contextSettings || leafer.config.contextSettings;
|
|
9932
|
-
if (leaf.isApp) {
|
|
9933
|
-
scale *= pixelRatio;
|
|
9934
|
-
pixelRatio = leaf.app.pixelRatio;
|
|
9935
|
-
}
|
|
9936
10025
|
const screenshot = options.screenshot || leaf.isApp;
|
|
9937
10026
|
const fill = (isLeafer && screenshot) ? (options.fill === undefined ? leaf.fill : options.fill) : options.fill;
|
|
9938
10027
|
const needFill = FileHelper.isOpaqueImage(filename) || fill, matrix = new Matrix();
|
|
@@ -9966,10 +10055,21 @@ const ExportModule = {
|
|
|
9966
10055
|
}
|
|
9967
10056
|
renderBounds = leaf.getBounds('render', relative);
|
|
9968
10057
|
}
|
|
9969
|
-
const {
|
|
10058
|
+
const scaleData = { scaleX: 1, scaleY: 1 };
|
|
10059
|
+
MathHelper.getScaleData(options.scale, options.size, renderBounds, scaleData);
|
|
10060
|
+
let pixelRatio = options.pixelRatio || 1;
|
|
10061
|
+
if (leaf.isApp) {
|
|
10062
|
+
scaleData.scaleX *= pixelRatio;
|
|
10063
|
+
scaleData.scaleY *= pixelRatio;
|
|
10064
|
+
pixelRatio = leaf.app.pixelRatio;
|
|
10065
|
+
}
|
|
10066
|
+
const { x, y, width, height } = new Bounds(renderBounds).scale(scaleData.scaleX, scaleData.scaleY);
|
|
10067
|
+
const renderOptions = { matrix: matrix.scale(1 / scaleData.scaleX, 1 / scaleData.scaleY).invert().translate(-x, -y).withScale(1 / scaleX * scaleData.scaleX, 1 / scaleY * scaleData.scaleY) };
|
|
9970
10068
|
let canvas = Creator.canvas({ width: Math.round(width), height: Math.round(height), pixelRatio, smooth, contextSettings });
|
|
9971
|
-
|
|
10069
|
+
let sliceLeaf;
|
|
9972
10070
|
if (slice) {
|
|
10071
|
+
sliceLeaf = leaf;
|
|
10072
|
+
sliceLeaf.__worldOpacity = 0;
|
|
9973
10073
|
leaf = leafer;
|
|
9974
10074
|
renderOptions.bounds = canvas.bounds;
|
|
9975
10075
|
}
|
|
@@ -9984,6 +10084,8 @@ const ExportModule = {
|
|
|
9984
10084
|
leaf.__render(canvas, renderOptions);
|
|
9985
10085
|
}
|
|
9986
10086
|
canvas.restore();
|
|
10087
|
+
if (sliceLeaf)
|
|
10088
|
+
sliceLeaf.__updateWorldOpacity();
|
|
9987
10089
|
if (trim) {
|
|
9988
10090
|
trimBounds = getTrimBounds(canvas);
|
|
9989
10091
|
const old = canvas, { width, height } = trimBounds;
|
|
@@ -10068,4 +10170,4 @@ Object.assign(Export, ExportModule);
|
|
|
10068
10170
|
|
|
10069
10171
|
useCanvas();
|
|
10070
10172
|
|
|
10071
|
-
export { AlignHelper, AnimateEvent, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Export, FileHelper, 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, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Platform, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, arrowType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, inviteCode, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
|
|
10173
|
+
export { AlignHelper, AnimateEvent, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, DataHelper, Debug, Direction4, Direction9, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Export, FileHelper, 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, Point, PointHelper, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Run, Star, StarData, State, StringNumberMap, TaskItem, TaskProcessor, Text, TextConvert, TextData, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIRender, UnitConvert, WaitHelper, WatchEvent, Watcher, affectRenderBoundsType, affectStrokeBoundsType, arrowType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, effectType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, inviteCode, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, stateType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
|