@leafer-draw/miniapp 1.0.1 → 1.0.3
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 +2543 -0
- package/dist/miniapp.esm.js +170 -156
- package/dist/miniapp.esm.min.js +1 -1
- package/dist/miniapp.min.cjs +1 -0
- package/dist/miniapp.module.js +627 -520
- package/dist/miniapp.module.min.js +1 -1
- package/package.json +15 -7
- package/src/index.ts +1 -1
package/dist/miniapp.module.js
CHANGED
|
@@ -111,6 +111,26 @@ const MathHelper = {
|
|
|
111
111
|
const a = maxLength ? pow$1(10, maxLength) : 1000000000000;
|
|
112
112
|
num = round(num * a) / a;
|
|
113
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
|
+
MathHelper.assignScale(scaleData, scale);
|
|
124
|
+
return scaleData;
|
|
125
|
+
},
|
|
126
|
+
assignScale(scaleData, scale) {
|
|
127
|
+
if (typeof scale === 'number') {
|
|
128
|
+
scaleData.scaleX = scaleData.scaleY = scale;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
scaleData.scaleX = scale.x;
|
|
132
|
+
scaleData.scaleY = scale.y;
|
|
133
|
+
}
|
|
114
134
|
}
|
|
115
135
|
};
|
|
116
136
|
const OneRadian = PI$4 / 180;
|
|
@@ -409,7 +429,7 @@ const MatrixHelper = {
|
|
|
409
429
|
};
|
|
410
430
|
const M$6 = MatrixHelper;
|
|
411
431
|
|
|
412
|
-
const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$
|
|
432
|
+
const { toInnerPoint: toInnerPoint$2, toOuterPoint: toOuterPoint$3 } = MatrixHelper;
|
|
413
433
|
const { sin: sin$4, cos: cos$4, abs: abs$4, sqrt: sqrt$2, atan2: atan2$2, min: min$1, PI: PI$3 } = Math;
|
|
414
434
|
const PointHelper = {
|
|
415
435
|
defaultPoint: getPointData(),
|
|
@@ -465,7 +485,7 @@ const PointHelper = {
|
|
|
465
485
|
tempToOuterOf(t, matrix) {
|
|
466
486
|
const { tempPoint: temp } = P$5;
|
|
467
487
|
copy$a(temp, t);
|
|
468
|
-
toOuterPoint$
|
|
488
|
+
toOuterPoint$3(matrix, temp, temp);
|
|
469
489
|
return temp;
|
|
470
490
|
},
|
|
471
491
|
tempToInnerRadiusPointOf(t, matrix) {
|
|
@@ -484,7 +504,7 @@ const PointHelper = {
|
|
|
484
504
|
toInnerPoint$2(matrix, t, to);
|
|
485
505
|
},
|
|
486
506
|
toOuterOf(t, matrix, to) {
|
|
487
|
-
toOuterPoint$
|
|
507
|
+
toOuterPoint$3(matrix, t, to);
|
|
488
508
|
},
|
|
489
509
|
getCenter(t, to) {
|
|
490
510
|
return { x: t.x + (to.x - t.x) / 2, y: t.y + (to.y - t.y) / 2 };
|
|
@@ -764,7 +784,7 @@ const TwoPointBoundsHelper = {
|
|
|
764
784
|
const { addPoint: addPoint$4 } = TwoPointBoundsHelper;
|
|
765
785
|
|
|
766
786
|
const { tempPointBounds: tempPointBounds$1, setPoint: setPoint$3, addPoint: addPoint$3, toBounds: toBounds$4 } = TwoPointBoundsHelper;
|
|
767
|
-
const { toOuterPoint: toOuterPoint$
|
|
787
|
+
const { toOuterPoint: toOuterPoint$2 } = MatrixHelper;
|
|
768
788
|
const { float, fourNumber } = MathHelper;
|
|
769
789
|
const { floor, ceil: ceil$2 } = Math;
|
|
770
790
|
let right$1, bottom$1, boundsRight, boundsBottom;
|
|
@@ -784,17 +804,24 @@ const BoundsHelper = {
|
|
|
784
804
|
t.width = bounds.width;
|
|
785
805
|
t.height = bounds.height;
|
|
786
806
|
},
|
|
787
|
-
copyAndSpread(t, bounds, spread, isShrink) {
|
|
807
|
+
copyAndSpread(t, bounds, spread, isShrink, side) {
|
|
808
|
+
const { x, y, width, height } = bounds;
|
|
788
809
|
if (spread instanceof Array) {
|
|
789
810
|
const four = fourNumber(spread);
|
|
790
811
|
isShrink
|
|
791
|
-
? B.set(t,
|
|
792
|
-
: B.set(t,
|
|
812
|
+
? B.set(t, x + four[3], y + four[0], width - four[1] - four[3], height - four[2] - four[0])
|
|
813
|
+
: B.set(t, x - four[3], y - four[0], width + four[1] + four[3], height + four[2] + four[0]);
|
|
793
814
|
}
|
|
794
815
|
else {
|
|
795
816
|
if (isShrink)
|
|
796
817
|
spread = -spread;
|
|
797
|
-
B.set(t,
|
|
818
|
+
B.set(t, x - spread, y - spread, width + spread * 2, height + spread * 2);
|
|
819
|
+
}
|
|
820
|
+
if (side) {
|
|
821
|
+
if (side === 'width')
|
|
822
|
+
t.y = y, t.height = height;
|
|
823
|
+
else
|
|
824
|
+
t.x = x, t.width = width;
|
|
798
825
|
}
|
|
799
826
|
},
|
|
800
827
|
minX(t) { return t.width > 0 ? t.x : t.x + t.width; },
|
|
@@ -871,16 +898,16 @@ const BoundsHelper = {
|
|
|
871
898
|
else {
|
|
872
899
|
point.x = t.x;
|
|
873
900
|
point.y = t.y;
|
|
874
|
-
toOuterPoint$
|
|
901
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
875
902
|
setPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
876
903
|
point.x = t.x + t.width;
|
|
877
|
-
toOuterPoint$
|
|
904
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
878
905
|
addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
879
906
|
point.y = t.y + t.height;
|
|
880
|
-
toOuterPoint$
|
|
907
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
881
908
|
addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
882
909
|
point.x = t.x;
|
|
883
|
-
toOuterPoint$
|
|
910
|
+
toOuterPoint$2(matrix, point, toPoint$5);
|
|
884
911
|
addPoint$3(tempPointBounds$1, toPoint$5.x, toPoint$5.y);
|
|
885
912
|
toBounds$4(tempPointBounds$1, to);
|
|
886
913
|
}
|
|
@@ -894,16 +921,16 @@ const BoundsHelper = {
|
|
|
894
921
|
const scale = Math.min(baseScale, Math.min(t.width / put.width, t.height / put.height));
|
|
895
922
|
return new Matrix(scale, 0, 0, scale, -put.x * scale, -put.y * scale);
|
|
896
923
|
},
|
|
897
|
-
getSpread(t, spread) {
|
|
924
|
+
getSpread(t, spread, side) {
|
|
898
925
|
const n = {};
|
|
899
|
-
B.copyAndSpread(n, t, spread);
|
|
926
|
+
B.copyAndSpread(n, t, spread, false, side);
|
|
900
927
|
return n;
|
|
901
928
|
},
|
|
902
|
-
spread(t, spread) {
|
|
903
|
-
B.copyAndSpread(t, t, spread);
|
|
929
|
+
spread(t, spread, side) {
|
|
930
|
+
B.copyAndSpread(t, t, spread, false, side);
|
|
904
931
|
},
|
|
905
|
-
shrink(t, shrink) {
|
|
906
|
-
B.copyAndSpread(t, t, shrink, true);
|
|
932
|
+
shrink(t, shrink, side) {
|
|
933
|
+
B.copyAndSpread(t, t, shrink, true, side);
|
|
907
934
|
},
|
|
908
935
|
ceil(t) {
|
|
909
936
|
const { x, y } = t;
|
|
@@ -1086,12 +1113,12 @@ class Bounds {
|
|
|
1086
1113
|
getFitMatrix(put, baseScale) {
|
|
1087
1114
|
return BoundsHelper.getFitMatrix(this, put, baseScale);
|
|
1088
1115
|
}
|
|
1089
|
-
spread(fourNumber) {
|
|
1090
|
-
BoundsHelper.spread(this, fourNumber);
|
|
1116
|
+
spread(fourNumber, side) {
|
|
1117
|
+
BoundsHelper.spread(this, fourNumber, side);
|
|
1091
1118
|
return this;
|
|
1092
1119
|
}
|
|
1093
|
-
shrink(fourNumber) {
|
|
1094
|
-
BoundsHelper.shrink(this, fourNumber);
|
|
1120
|
+
shrink(fourNumber, side) {
|
|
1121
|
+
BoundsHelper.shrink(this, fourNumber, side);
|
|
1095
1122
|
return this;
|
|
1096
1123
|
}
|
|
1097
1124
|
ceil() {
|
|
@@ -1235,7 +1262,6 @@ const AroundHelper = {
|
|
|
1235
1262
|
tempPoint: {},
|
|
1236
1263
|
get: get$4,
|
|
1237
1264
|
toPoint(around, bounds, to, onlySize, pointBounds) {
|
|
1238
|
-
to || (to = {});
|
|
1239
1265
|
const point = get$4(around);
|
|
1240
1266
|
to.x = point.x;
|
|
1241
1267
|
to.y = point.y;
|
|
@@ -1370,6 +1396,10 @@ const Run = {
|
|
|
1370
1396
|
};
|
|
1371
1397
|
const R = Run;
|
|
1372
1398
|
|
|
1399
|
+
function needPlugin(name) {
|
|
1400
|
+
console.error('need plugin: @leafer-in/' + name);
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1373
1403
|
const debug$c = Debug.get('UICreator');
|
|
1374
1404
|
const UICreator = {
|
|
1375
1405
|
list: {},
|
|
@@ -1632,6 +1662,9 @@ var Answer;
|
|
|
1632
1662
|
Answer[Answer["YesAndSkip"] = 3] = "YesAndSkip";
|
|
1633
1663
|
})(Answer || (Answer = {}));
|
|
1634
1664
|
const emptyData = {};
|
|
1665
|
+
function isNull(value) {
|
|
1666
|
+
return value === undefined || value === null;
|
|
1667
|
+
}
|
|
1635
1668
|
|
|
1636
1669
|
/******************************************************************************
|
|
1637
1670
|
Copyright (c) Microsoft Corporation.
|
|
@@ -2397,7 +2430,7 @@ const BezierHelper = {
|
|
|
2397
2430
|
let startY = y = rotationSin * radiusX * startCos + rotationCos * radiusY * startSin;
|
|
2398
2431
|
let fromX = cx + x, fromY = cy + y;
|
|
2399
2432
|
if (data)
|
|
2400
|
-
data.push(L$6, fromX, fromY);
|
|
2433
|
+
data.push(data.length ? L$6 : M$5, fromX, fromY);
|
|
2401
2434
|
if (setPointBounds)
|
|
2402
2435
|
setPoint$2(setPointBounds, fromX, fromY);
|
|
2403
2436
|
if (setStartPoint)
|
|
@@ -2908,60 +2941,75 @@ class PathCreator {
|
|
|
2908
2941
|
}
|
|
2909
2942
|
beginPath() {
|
|
2910
2943
|
beginPath(this.__path);
|
|
2944
|
+
this.paint();
|
|
2911
2945
|
return this;
|
|
2912
2946
|
}
|
|
2913
2947
|
moveTo(x, y) {
|
|
2914
2948
|
moveTo$4(this.__path, x, y);
|
|
2949
|
+
this.paint();
|
|
2915
2950
|
return this;
|
|
2916
2951
|
}
|
|
2917
2952
|
lineTo(x, y) {
|
|
2918
2953
|
lineTo$3(this.__path, x, y);
|
|
2954
|
+
this.paint();
|
|
2919
2955
|
return this;
|
|
2920
2956
|
}
|
|
2921
2957
|
bezierCurveTo(x1, y1, x2, y2, x, y) {
|
|
2922
2958
|
bezierCurveTo(this.__path, x1, y1, x2, y2, x, y);
|
|
2959
|
+
this.paint();
|
|
2923
2960
|
return this;
|
|
2924
2961
|
}
|
|
2925
2962
|
quadraticCurveTo(x1, y1, x, y) {
|
|
2926
2963
|
quadraticCurveTo(this.__path, x1, y1, x, y);
|
|
2964
|
+
this.paint();
|
|
2927
2965
|
return this;
|
|
2928
2966
|
}
|
|
2929
2967
|
closePath() {
|
|
2930
2968
|
closePath$3(this.__path);
|
|
2969
|
+
this.paint();
|
|
2931
2970
|
return this;
|
|
2932
2971
|
}
|
|
2933
2972
|
rect(x, y, width, height) {
|
|
2934
2973
|
rect$1(this.__path, x, y, width, height);
|
|
2974
|
+
this.paint();
|
|
2935
2975
|
return this;
|
|
2936
2976
|
}
|
|
2937
2977
|
roundRect(x, y, width, height, cornerRadius) {
|
|
2938
2978
|
roundRect$1(this.__path, x, y, width, height, cornerRadius);
|
|
2979
|
+
this.paint();
|
|
2939
2980
|
return this;
|
|
2940
2981
|
}
|
|
2941
2982
|
ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
|
|
2942
2983
|
ellipse$2(this.__path, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
|
|
2984
|
+
this.paint();
|
|
2943
2985
|
return this;
|
|
2944
2986
|
}
|
|
2945
2987
|
arc(x, y, radius, startAngle, endAngle, anticlockwise) {
|
|
2946
2988
|
arc$1(this.__path, x, y, radius, startAngle, endAngle, anticlockwise);
|
|
2989
|
+
this.paint();
|
|
2947
2990
|
return this;
|
|
2948
2991
|
}
|
|
2949
2992
|
arcTo(x1, y1, x2, y2, radius) {
|
|
2950
2993
|
arcTo$2(this.__path, x1, y1, x2, y2, radius);
|
|
2994
|
+
this.paint();
|
|
2951
2995
|
return this;
|
|
2952
2996
|
}
|
|
2953
2997
|
drawEllipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
|
|
2954
2998
|
drawEllipse(this.__path, x, y, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise);
|
|
2999
|
+
this.paint();
|
|
2955
3000
|
return this;
|
|
2956
3001
|
}
|
|
2957
3002
|
drawArc(x, y, radius, startAngle, endAngle, anticlockwise) {
|
|
2958
3003
|
drawArc(this.__path, x, y, radius, startAngle, endAngle, anticlockwise);
|
|
3004
|
+
this.paint();
|
|
2959
3005
|
return this;
|
|
2960
3006
|
}
|
|
2961
3007
|
drawPoints(points, curve, close) {
|
|
2962
3008
|
drawPoints$2(this.__path, points, curve, close);
|
|
3009
|
+
this.paint();
|
|
2963
3010
|
return this;
|
|
2964
3011
|
}
|
|
3012
|
+
paint() { }
|
|
2965
3013
|
}
|
|
2966
3014
|
|
|
2967
3015
|
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;
|
|
@@ -3051,8 +3099,7 @@ const PathBounds = {
|
|
|
3051
3099
|
toTwoPointBounds(data, setPointBounds) {
|
|
3052
3100
|
if (!data || !data.length)
|
|
3053
3101
|
return setPoint$1(setPointBounds, 0, 0);
|
|
3054
|
-
let command;
|
|
3055
|
-
let i = 0, x = 0, y = 0, x1, y1, toX, toY;
|
|
3102
|
+
let i = 0, x = 0, y = 0, x1, y1, toX, toY, command;
|
|
3056
3103
|
const len = data.length;
|
|
3057
3104
|
while (i < len) {
|
|
3058
3105
|
command = data[i];
|
|
@@ -3708,7 +3755,7 @@ function autoLayoutType(defaultValue) {
|
|
|
3708
3755
|
set(value) {
|
|
3709
3756
|
if (this.__setAttr(key, value)) {
|
|
3710
3757
|
this.__layout.matrixChanged || this.__layout.matrixChange();
|
|
3711
|
-
this.__hasAutoLayout = !!
|
|
3758
|
+
this.__hasAutoLayout = !!(this.origin || this.around || this.flow);
|
|
3712
3759
|
if (!this.__local)
|
|
3713
3760
|
this.__layout.createLocal();
|
|
3714
3761
|
}
|
|
@@ -3801,14 +3848,25 @@ function visibleType(defaultValue) {
|
|
|
3801
3848
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
3802
3849
|
set(value) {
|
|
3803
3850
|
const oldValue = this.visible;
|
|
3804
|
-
if (
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
doBoundsType(this);
|
|
3851
|
+
if (oldValue === true && value === 0) {
|
|
3852
|
+
if (this.animationOut)
|
|
3853
|
+
return this.__runAnimation('out', () => doVisible(this, key, value, oldValue));
|
|
3808
3854
|
}
|
|
3855
|
+
else if (oldValue === 0 && value === true) {
|
|
3856
|
+
if (this.animation)
|
|
3857
|
+
this.__runAnimation('in');
|
|
3858
|
+
}
|
|
3859
|
+
doVisible(this, key, value, oldValue);
|
|
3809
3860
|
}
|
|
3810
3861
|
}));
|
|
3811
3862
|
}
|
|
3863
|
+
function doVisible(leaf, key, value, oldValue) {
|
|
3864
|
+
if (leaf.__setAttr(key, value)) {
|
|
3865
|
+
leaf.__layout.opacityChanged || leaf.__layout.opacityChange();
|
|
3866
|
+
if (oldValue === 0 || value === 0)
|
|
3867
|
+
doBoundsType(leaf);
|
|
3868
|
+
}
|
|
3869
|
+
}
|
|
3812
3870
|
function sortType(defaultValue) {
|
|
3813
3871
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
3814
3872
|
set(value) {
|
|
@@ -3892,7 +3950,16 @@ function defineDataProcessor(target, key, defaultValue) {
|
|
|
3892
3950
|
if (defaultValue === undefined) {
|
|
3893
3951
|
property.get = function () { return this[computedKey]; };
|
|
3894
3952
|
}
|
|
3895
|
-
else if (
|
|
3953
|
+
else if (typeof defaultValue === 'object') {
|
|
3954
|
+
const { clone } = DataHelper;
|
|
3955
|
+
property.get = function () {
|
|
3956
|
+
let v = this[computedKey];
|
|
3957
|
+
if (v === undefined)
|
|
3958
|
+
this[computedKey] = v = clone(defaultValue);
|
|
3959
|
+
return v;
|
|
3960
|
+
};
|
|
3961
|
+
}
|
|
3962
|
+
if (key === 'width') {
|
|
3896
3963
|
property.get = function () {
|
|
3897
3964
|
const v = this[computedKey];
|
|
3898
3965
|
if (v === undefined) {
|
|
@@ -3983,7 +4050,7 @@ function registerUIEvent() {
|
|
|
3983
4050
|
};
|
|
3984
4051
|
}
|
|
3985
4052
|
|
|
3986
|
-
const { copy: copy$6, toInnerPoint: toInnerPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$2, divideParent, getLayout } = MatrixHelper;
|
|
4053
|
+
const { copy: copy$6, toInnerPoint: toInnerPoint$1, toOuterPoint: toOuterPoint$1, scaleOfOuter: scaleOfOuter$2, rotateOfOuter: rotateOfOuter$2, skewOfOuter, multiplyParent: multiplyParent$2, divideParent, getLayout } = MatrixHelper;
|
|
3987
4054
|
const matrix = {};
|
|
3988
4055
|
const LeafHelper = {
|
|
3989
4056
|
updateAllMatrix(leaf, checkAutoLayout, waitAutoLayout) {
|
|
@@ -4048,10 +4115,9 @@ const LeafHelper = {
|
|
|
4048
4115
|
}
|
|
4049
4116
|
return true;
|
|
4050
4117
|
},
|
|
4051
|
-
moveWorld(t, x, y = 0) {
|
|
4118
|
+
moveWorld(t, x, y = 0, isInnerPoint) {
|
|
4052
4119
|
const local = typeof x === 'object' ? Object.assign({}, x) : { x, y };
|
|
4053
|
-
|
|
4054
|
-
toInnerPoint$1(t.parent.worldTransform, local, local, true);
|
|
4120
|
+
isInnerPoint ? toOuterPoint$1(t.localTransform, local, local, true) : (t.parent && toInnerPoint$1(t.parent.worldTransform, local, local, true));
|
|
4055
4121
|
L.moveLocal(t, local.x, local.y);
|
|
4056
4122
|
},
|
|
4057
4123
|
moveLocal(t, x, y = 0) {
|
|
@@ -4560,144 +4626,6 @@ class LeafLayout {
|
|
|
4560
4626
|
destroy() { }
|
|
4561
4627
|
}
|
|
4562
4628
|
|
|
4563
|
-
const empty = {};
|
|
4564
|
-
const LeafEventer = {
|
|
4565
|
-
on(type, listener, options) {
|
|
4566
|
-
let capture, once;
|
|
4567
|
-
if (options) {
|
|
4568
|
-
if (options === 'once') {
|
|
4569
|
-
once = true;
|
|
4570
|
-
}
|
|
4571
|
-
else if (typeof options === 'boolean') {
|
|
4572
|
-
capture = options;
|
|
4573
|
-
}
|
|
4574
|
-
else {
|
|
4575
|
-
capture = options.capture;
|
|
4576
|
-
once = options.once;
|
|
4577
|
-
}
|
|
4578
|
-
}
|
|
4579
|
-
let events;
|
|
4580
|
-
const map = __getListenerMap(this, capture, true);
|
|
4581
|
-
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4582
|
-
const item = once ? { listener, once } : { listener };
|
|
4583
|
-
typeList.forEach(type => {
|
|
4584
|
-
if (type) {
|
|
4585
|
-
events = map[type];
|
|
4586
|
-
if (events) {
|
|
4587
|
-
if (events.findIndex(item => item.listener === listener) === -1)
|
|
4588
|
-
events.push(item);
|
|
4589
|
-
}
|
|
4590
|
-
else {
|
|
4591
|
-
map[type] = [item];
|
|
4592
|
-
}
|
|
4593
|
-
}
|
|
4594
|
-
});
|
|
4595
|
-
},
|
|
4596
|
-
off(type, listener, options) {
|
|
4597
|
-
if (type) {
|
|
4598
|
-
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4599
|
-
if (listener) {
|
|
4600
|
-
let capture;
|
|
4601
|
-
if (options)
|
|
4602
|
-
capture = typeof options === 'boolean' ? options : (options === 'once' ? false : options.capture);
|
|
4603
|
-
let events, index;
|
|
4604
|
-
const map = __getListenerMap(this, capture);
|
|
4605
|
-
typeList.forEach(type => {
|
|
4606
|
-
if (type) {
|
|
4607
|
-
events = map[type];
|
|
4608
|
-
if (events) {
|
|
4609
|
-
index = events.findIndex(item => item.listener === listener);
|
|
4610
|
-
if (index > -1)
|
|
4611
|
-
events.splice(index, 1);
|
|
4612
|
-
if (!events.length)
|
|
4613
|
-
delete map[type];
|
|
4614
|
-
}
|
|
4615
|
-
}
|
|
4616
|
-
});
|
|
4617
|
-
}
|
|
4618
|
-
else {
|
|
4619
|
-
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4620
|
-
typeList.forEach(type => {
|
|
4621
|
-
if (b)
|
|
4622
|
-
delete b[type];
|
|
4623
|
-
if (c)
|
|
4624
|
-
delete c[type];
|
|
4625
|
-
});
|
|
4626
|
-
}
|
|
4627
|
-
}
|
|
4628
|
-
else {
|
|
4629
|
-
this.__bubbleMap = this.__captureMap = undefined;
|
|
4630
|
-
}
|
|
4631
|
-
},
|
|
4632
|
-
on_(type, listener, bind, options) {
|
|
4633
|
-
if (bind)
|
|
4634
|
-
listener = listener.bind(bind);
|
|
4635
|
-
this.on(type, listener, options);
|
|
4636
|
-
return { type, current: this, listener, options };
|
|
4637
|
-
},
|
|
4638
|
-
off_(id) {
|
|
4639
|
-
if (!id)
|
|
4640
|
-
return;
|
|
4641
|
-
const list = id instanceof Array ? id : [id];
|
|
4642
|
-
list.forEach(item => item.current.off(item.type, item.listener, item.options));
|
|
4643
|
-
list.length = 0;
|
|
4644
|
-
},
|
|
4645
|
-
once(type, listener, capture) {
|
|
4646
|
-
this.on(type, listener, { once: true, capture });
|
|
4647
|
-
},
|
|
4648
|
-
emit(type, event, capture) {
|
|
4649
|
-
if (!event && EventCreator.has(type))
|
|
4650
|
-
event = EventCreator.get(type, { type, target: this, current: this });
|
|
4651
|
-
const map = __getListenerMap(this, capture);
|
|
4652
|
-
const list = map[type];
|
|
4653
|
-
if (list) {
|
|
4654
|
-
let item;
|
|
4655
|
-
for (let i = 0, len = list.length; i < len; i++) {
|
|
4656
|
-
item = list[i];
|
|
4657
|
-
item.listener(event);
|
|
4658
|
-
if (item.once) {
|
|
4659
|
-
this.off(type, item.listener, capture);
|
|
4660
|
-
i--, len--;
|
|
4661
|
-
}
|
|
4662
|
-
if (event && event.isStopNow)
|
|
4663
|
-
break;
|
|
4664
|
-
}
|
|
4665
|
-
}
|
|
4666
|
-
this.syncEventer && this.syncEventer.emitEvent(event, capture);
|
|
4667
|
-
},
|
|
4668
|
-
emitEvent(event, capture) {
|
|
4669
|
-
event.current = this;
|
|
4670
|
-
this.emit(event.type, event, capture);
|
|
4671
|
-
},
|
|
4672
|
-
hasEvent(type, capture) {
|
|
4673
|
-
if (this.syncEventer && this.syncEventer.hasEvent(type, capture))
|
|
4674
|
-
return true;
|
|
4675
|
-
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4676
|
-
const hasB = b && b[type], hasC = c && c[type];
|
|
4677
|
-
return !!(capture === undefined ? (hasB || hasC) : (capture ? hasC : hasB));
|
|
4678
|
-
},
|
|
4679
|
-
};
|
|
4680
|
-
function __getListenerMap(eventer, capture, create) {
|
|
4681
|
-
if (capture) {
|
|
4682
|
-
const { __captureMap: c } = eventer;
|
|
4683
|
-
if (c) {
|
|
4684
|
-
return c;
|
|
4685
|
-
}
|
|
4686
|
-
else {
|
|
4687
|
-
return create ? eventer.__captureMap = {} : empty;
|
|
4688
|
-
}
|
|
4689
|
-
}
|
|
4690
|
-
else {
|
|
4691
|
-
const { __bubbleMap: b } = eventer;
|
|
4692
|
-
if (b) {
|
|
4693
|
-
return b;
|
|
4694
|
-
}
|
|
4695
|
-
else {
|
|
4696
|
-
return create ? eventer.__bubbleMap = {} : empty;
|
|
4697
|
-
}
|
|
4698
|
-
}
|
|
4699
|
-
}
|
|
4700
|
-
|
|
4701
4629
|
class Event {
|
|
4702
4630
|
constructor(type, target) {
|
|
4703
4631
|
this.bubbles = false;
|
|
@@ -4732,7 +4660,10 @@ class ChildEvent extends Event {
|
|
|
4732
4660
|
}
|
|
4733
4661
|
ChildEvent.ADD = 'child.add';
|
|
4734
4662
|
ChildEvent.REMOVE = 'child.remove';
|
|
4735
|
-
ChildEvent.
|
|
4663
|
+
ChildEvent.CREATED = 'created';
|
|
4664
|
+
ChildEvent.MOUNTED = 'mounted';
|
|
4665
|
+
ChildEvent.UNMOUNTED = 'unmounted';
|
|
4666
|
+
ChildEvent.DESTROY = 'destroy';
|
|
4736
4667
|
|
|
4737
4668
|
class PropertyEvent extends Event {
|
|
4738
4669
|
constructor(type, target, attrName, oldValue, newValue) {
|
|
@@ -4810,10 +4741,6 @@ LayoutEvent.AFTER = 'layout.after';
|
|
|
4810
4741
|
LayoutEvent.AGAIN = 'layout.again';
|
|
4811
4742
|
LayoutEvent.END = 'layout.end';
|
|
4812
4743
|
|
|
4813
|
-
class AnimateEvent extends Event {
|
|
4814
|
-
}
|
|
4815
|
-
AnimateEvent.FRAME = 'animate.frame';
|
|
4816
|
-
|
|
4817
4744
|
class RenderEvent extends Event {
|
|
4818
4745
|
constructor(type, times, bounds, options) {
|
|
4819
4746
|
super(type);
|
|
@@ -4846,6 +4773,157 @@ LeaferEvent.STOP = 'leafer.stop';
|
|
|
4846
4773
|
LeaferEvent.RESTART = 'leafer.restart';
|
|
4847
4774
|
LeaferEvent.END = 'leafer.end';
|
|
4848
4775
|
|
|
4776
|
+
const empty = {};
|
|
4777
|
+
class Eventer {
|
|
4778
|
+
set event(map) { this.on(map); }
|
|
4779
|
+
on(type, listener, options) {
|
|
4780
|
+
if (!listener) {
|
|
4781
|
+
let event, map = type;
|
|
4782
|
+
for (let key in map)
|
|
4783
|
+
event = map[key], event instanceof Array ? this.on(key, event[0], event[1]) : this.on(key, event);
|
|
4784
|
+
return;
|
|
4785
|
+
}
|
|
4786
|
+
let capture, once;
|
|
4787
|
+
if (options) {
|
|
4788
|
+
if (options === 'once') {
|
|
4789
|
+
once = true;
|
|
4790
|
+
}
|
|
4791
|
+
else if (typeof options === 'boolean') {
|
|
4792
|
+
capture = options;
|
|
4793
|
+
}
|
|
4794
|
+
else {
|
|
4795
|
+
capture = options.capture;
|
|
4796
|
+
once = options.once;
|
|
4797
|
+
}
|
|
4798
|
+
}
|
|
4799
|
+
let events;
|
|
4800
|
+
const map = __getListenerMap(this, capture, true);
|
|
4801
|
+
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4802
|
+
const item = once ? { listener, once } : { listener };
|
|
4803
|
+
typeList.forEach(type => {
|
|
4804
|
+
if (type) {
|
|
4805
|
+
events = map[type];
|
|
4806
|
+
if (events) {
|
|
4807
|
+
if (events.findIndex(item => item.listener === listener) === -1)
|
|
4808
|
+
events.push(item);
|
|
4809
|
+
}
|
|
4810
|
+
else {
|
|
4811
|
+
map[type] = [item];
|
|
4812
|
+
}
|
|
4813
|
+
}
|
|
4814
|
+
});
|
|
4815
|
+
}
|
|
4816
|
+
off(type, listener, options) {
|
|
4817
|
+
if (type) {
|
|
4818
|
+
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4819
|
+
if (listener) {
|
|
4820
|
+
let capture;
|
|
4821
|
+
if (options)
|
|
4822
|
+
capture = typeof options === 'boolean' ? options : (options === 'once' ? false : options.capture);
|
|
4823
|
+
let events, index;
|
|
4824
|
+
const map = __getListenerMap(this, capture);
|
|
4825
|
+
typeList.forEach(type => {
|
|
4826
|
+
if (type) {
|
|
4827
|
+
events = map[type];
|
|
4828
|
+
if (events) {
|
|
4829
|
+
index = events.findIndex(item => item.listener === listener);
|
|
4830
|
+
if (index > -1)
|
|
4831
|
+
events.splice(index, 1);
|
|
4832
|
+
if (!events.length)
|
|
4833
|
+
delete map[type];
|
|
4834
|
+
}
|
|
4835
|
+
}
|
|
4836
|
+
});
|
|
4837
|
+
}
|
|
4838
|
+
else {
|
|
4839
|
+
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4840
|
+
typeList.forEach(type => {
|
|
4841
|
+
if (b)
|
|
4842
|
+
delete b[type];
|
|
4843
|
+
if (c)
|
|
4844
|
+
delete c[type];
|
|
4845
|
+
});
|
|
4846
|
+
}
|
|
4847
|
+
}
|
|
4848
|
+
else {
|
|
4849
|
+
this.__bubbleMap = this.__captureMap = undefined;
|
|
4850
|
+
}
|
|
4851
|
+
}
|
|
4852
|
+
on_(type, listener, bind, options) {
|
|
4853
|
+
if (bind)
|
|
4854
|
+
listener = listener.bind(bind);
|
|
4855
|
+
this.on(type, listener, options);
|
|
4856
|
+
return { type, current: this, listener, options };
|
|
4857
|
+
}
|
|
4858
|
+
off_(id) {
|
|
4859
|
+
if (!id)
|
|
4860
|
+
return;
|
|
4861
|
+
const list = id instanceof Array ? id : [id];
|
|
4862
|
+
list.forEach(item => item.current.off(item.type, item.listener, item.options));
|
|
4863
|
+
list.length = 0;
|
|
4864
|
+
}
|
|
4865
|
+
once(type, listener, capture) {
|
|
4866
|
+
this.on(type, listener, { once: true, capture });
|
|
4867
|
+
}
|
|
4868
|
+
emit(type, event, capture) {
|
|
4869
|
+
if (!event && EventCreator.has(type))
|
|
4870
|
+
event = EventCreator.get(type, { type, target: this, current: this });
|
|
4871
|
+
const map = __getListenerMap(this, capture);
|
|
4872
|
+
const list = map[type];
|
|
4873
|
+
if (list) {
|
|
4874
|
+
let item;
|
|
4875
|
+
for (let i = 0, len = list.length; i < len; i++) {
|
|
4876
|
+
item = list[i];
|
|
4877
|
+
item.listener(event);
|
|
4878
|
+
if (item.once) {
|
|
4879
|
+
this.off(type, item.listener, capture);
|
|
4880
|
+
i--, len--;
|
|
4881
|
+
}
|
|
4882
|
+
if (event && event.isStopNow)
|
|
4883
|
+
break;
|
|
4884
|
+
}
|
|
4885
|
+
}
|
|
4886
|
+
this.syncEventer && this.syncEventer.emitEvent(event, capture);
|
|
4887
|
+
}
|
|
4888
|
+
emitEvent(event, capture) {
|
|
4889
|
+
event.current = this;
|
|
4890
|
+
this.emit(event.type, event, capture);
|
|
4891
|
+
}
|
|
4892
|
+
hasEvent(type, capture) {
|
|
4893
|
+
if (this.syncEventer && this.syncEventer.hasEvent(type, capture))
|
|
4894
|
+
return true;
|
|
4895
|
+
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4896
|
+
const hasB = b && b[type], hasC = c && c[type];
|
|
4897
|
+
return !!(capture === undefined ? (hasB || hasC) : (capture ? hasC : hasB));
|
|
4898
|
+
}
|
|
4899
|
+
destroy() {
|
|
4900
|
+
this.__captureMap = this.__bubbleMap = this.syncEventer = null;
|
|
4901
|
+
}
|
|
4902
|
+
}
|
|
4903
|
+
function __getListenerMap(eventer, capture, create) {
|
|
4904
|
+
if (capture) {
|
|
4905
|
+
const { __captureMap: c } = eventer;
|
|
4906
|
+
if (c) {
|
|
4907
|
+
return c;
|
|
4908
|
+
}
|
|
4909
|
+
else {
|
|
4910
|
+
return create ? eventer.__captureMap = {} : empty;
|
|
4911
|
+
}
|
|
4912
|
+
}
|
|
4913
|
+
else {
|
|
4914
|
+
const { __bubbleMap: b } = eventer;
|
|
4915
|
+
if (b) {
|
|
4916
|
+
return b;
|
|
4917
|
+
}
|
|
4918
|
+
else {
|
|
4919
|
+
return create ? eventer.__bubbleMap = {} : empty;
|
|
4920
|
+
}
|
|
4921
|
+
}
|
|
4922
|
+
}
|
|
4923
|
+
|
|
4924
|
+
const { on, on_, off, off_, once, emit: emit$1, emitEvent, hasEvent, destroy } = Eventer.prototype;
|
|
4925
|
+
const LeafEventer = { on, on_, off, off_, once, emit: emit$1, emitEvent, hasEvent, destroyEventer: destroy };
|
|
4926
|
+
|
|
4849
4927
|
const { isFinite } = Number;
|
|
4850
4928
|
const debug$5 = Debug.get('setAttr');
|
|
4851
4929
|
const LeafDataProxy = {
|
|
@@ -4857,9 +4935,7 @@ const LeafDataProxy = {
|
|
|
4857
4935
|
newValue = undefined;
|
|
4858
4936
|
}
|
|
4859
4937
|
if (typeof newValue === 'object' || oldValue !== newValue) {
|
|
4860
|
-
this.
|
|
4861
|
-
if (this.__proxyData)
|
|
4862
|
-
this.setProxyAttr(name, newValue);
|
|
4938
|
+
this.__realSetAttr(name, newValue);
|
|
4863
4939
|
const { CHANGE } = PropertyEvent;
|
|
4864
4940
|
const event = new PropertyEvent(CHANGE, this, name, oldValue, newValue);
|
|
4865
4941
|
if (this.isLeafer) {
|
|
@@ -4877,12 +4953,18 @@ const LeafDataProxy = {
|
|
|
4877
4953
|
}
|
|
4878
4954
|
}
|
|
4879
4955
|
else {
|
|
4880
|
-
this.
|
|
4881
|
-
if (this.__proxyData)
|
|
4882
|
-
this.setProxyAttr(name, newValue);
|
|
4956
|
+
this.__realSetAttr(name, newValue);
|
|
4883
4957
|
return true;
|
|
4884
4958
|
}
|
|
4885
4959
|
},
|
|
4960
|
+
__realSetAttr(name, newValue) {
|
|
4961
|
+
const data = this.__;
|
|
4962
|
+
data[name] = newValue;
|
|
4963
|
+
if (this.__proxyData)
|
|
4964
|
+
this.setProxyAttr(name, newValue);
|
|
4965
|
+
if (data.normalStyle)
|
|
4966
|
+
this.lockNormalStyle || data.normalStyle[name] === undefined || (data.normalStyle[name] = newValue);
|
|
4967
|
+
},
|
|
4886
4968
|
__getAttr(name) {
|
|
4887
4969
|
if (this.__proxyData)
|
|
4888
4970
|
return this.getProxyAttr(name);
|
|
@@ -4918,7 +5000,7 @@ const LeafMatrix = {
|
|
|
4918
5000
|
|
|
4919
5001
|
const { updateMatrix: updateMatrix$1, updateAllMatrix: updateAllMatrix$2 } = LeafHelper;
|
|
4920
5002
|
const { updateBounds: updateBounds$1 } = BranchHelper;
|
|
4921
|
-
const { toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$
|
|
5003
|
+
const { toOuterOf: toOuterOf$1, copyAndSpread: copyAndSpread$2, copy: copy$4 } = BoundsHelper;
|
|
4922
5004
|
const { toBounds: toBounds$2 } = PathBounds;
|
|
4923
5005
|
const LeafBounds = {
|
|
4924
5006
|
__updateWorldBounds() {
|
|
@@ -4985,6 +5067,8 @@ const LeafBounds = {
|
|
|
4985
5067
|
layout.boundsChanged = false;
|
|
4986
5068
|
},
|
|
4987
5069
|
__updateLocalBoxBounds() {
|
|
5070
|
+
if (this.__hasMotionPath)
|
|
5071
|
+
this.__updateMotionPath();
|
|
4988
5072
|
if (this.__hasAutoLayout)
|
|
4989
5073
|
this.__updateAutoLayout();
|
|
4990
5074
|
toOuterOf$1(this.__layout.boxBounds, this.__local, this.__local);
|
|
@@ -5019,7 +5103,7 @@ const LeafBounds = {
|
|
|
5019
5103
|
updateAllMatrix$2(this);
|
|
5020
5104
|
updateBounds$1(this, this);
|
|
5021
5105
|
if (this.__.__autoSide)
|
|
5022
|
-
this.__updateBoxBounds();
|
|
5106
|
+
this.__updateBoxBounds(true);
|
|
5023
5107
|
}
|
|
5024
5108
|
else {
|
|
5025
5109
|
updateAllMatrix$2(this);
|
|
@@ -5037,11 +5121,11 @@ const LeafBounds = {
|
|
|
5037
5121
|
},
|
|
5038
5122
|
__updateStrokeBounds() {
|
|
5039
5123
|
const layout = this.__layout;
|
|
5040
|
-
copyAndSpread$
|
|
5124
|
+
copyAndSpread$2(layout.strokeBounds, layout.boxBounds, layout.strokeBoxSpread);
|
|
5041
5125
|
},
|
|
5042
5126
|
__updateRenderBounds() {
|
|
5043
5127
|
const layout = this.__layout;
|
|
5044
|
-
layout.renderSpread > 0 ? copyAndSpread$
|
|
5128
|
+
layout.renderSpread > 0 ? copyAndSpread$2(layout.renderBounds, layout.boxBounds, layout.renderSpread) : copy$4(layout.renderBounds, layout.strokeBounds);
|
|
5045
5129
|
}
|
|
5046
5130
|
};
|
|
5047
5131
|
|
|
@@ -5137,7 +5221,7 @@ const BranchRender = {
|
|
|
5137
5221
|
const { LEAF, create } = IncrementId;
|
|
5138
5222
|
const { toInnerPoint, toOuterPoint, multiplyParent } = MatrixHelper;
|
|
5139
5223
|
const { toOuterOf } = BoundsHelper;
|
|
5140
|
-
const { copy: copy$3 } = PointHelper;
|
|
5224
|
+
const { copy: copy$3, move } = PointHelper;
|
|
5141
5225
|
const { moveLocal, zoomOfLocal, rotateOfLocal, skewOfLocal, moveWorld, zoomOfWorld, rotateOfWorld, skewOfWorld, transform, transformWorld, setTransform, getFlipTransform, getLocalOrigin, getRelativeWorld, drop } = LeafHelper;
|
|
5142
5226
|
let Leaf = class Leaf {
|
|
5143
5227
|
get tag() { return this.__tag; }
|
|
@@ -5164,13 +5248,16 @@ let Leaf = class Leaf {
|
|
|
5164
5248
|
get __ignoreHitWorld() { return (this.__hasMask || this.__hasEraser) && this.__.hitChildren; }
|
|
5165
5249
|
get __inLazyBounds() { const { leafer } = this; return leafer && leafer.created && leafer.lazyBounds.hit(this.__world); }
|
|
5166
5250
|
get pathInputed() { return this.__.__pathInputed; }
|
|
5167
|
-
set event(map) {
|
|
5168
|
-
event = map[key], event instanceof Array ? this.on(key, event[0], event[1]) : this.on(key, event); }
|
|
5251
|
+
set event(map) { this.on(map); }
|
|
5169
5252
|
constructor(data) {
|
|
5170
5253
|
this.innerId = create(LEAF);
|
|
5171
5254
|
this.reset(data);
|
|
5255
|
+
if (this.__bubbleMap)
|
|
5256
|
+
this.__emitLifeEvent(ChildEvent.CREATED);
|
|
5172
5257
|
}
|
|
5173
5258
|
reset(data) {
|
|
5259
|
+
if (this.leafer)
|
|
5260
|
+
this.leafer.forceRender(this.__world);
|
|
5174
5261
|
this.__world = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0, x: 0, y: 0, width: 0, height: 0, scaleX: 1, scaleY: 1 };
|
|
5175
5262
|
if (data !== null)
|
|
5176
5263
|
this.__local = { a: 1, b: 0, c: 0, d: 1, e: 0, f: 0, x: 0, y: 0, width: 0, height: 0 };
|
|
@@ -5192,12 +5279,12 @@ let Leaf = class Leaf {
|
|
|
5192
5279
|
waitParent(item, bind) {
|
|
5193
5280
|
if (bind)
|
|
5194
5281
|
item = item.bind(bind);
|
|
5195
|
-
this.parent ? item() :
|
|
5282
|
+
this.parent ? item() : this.on(ChildEvent.ADD, item, 'once');
|
|
5196
5283
|
}
|
|
5197
5284
|
waitLeafer(item, bind) {
|
|
5198
5285
|
if (bind)
|
|
5199
5286
|
item = item.bind(bind);
|
|
5200
|
-
this.leafer ? item() :
|
|
5287
|
+
this.leafer ? item() : this.on(ChildEvent.MOUNTED, item, 'once');
|
|
5201
5288
|
}
|
|
5202
5289
|
nextRender(item, bind, off) {
|
|
5203
5290
|
this.leafer ? this.leafer.nextRender(item, bind, off) : this.waitLeafer(() => this.leafer.nextRender(item, bind, off));
|
|
@@ -5206,18 +5293,21 @@ let Leaf = class Leaf {
|
|
|
5206
5293
|
this.nextRender(item, null, 'off');
|
|
5207
5294
|
}
|
|
5208
5295
|
__bindLeafer(leafer) {
|
|
5209
|
-
if (this.isLeafer)
|
|
5210
|
-
|
|
5211
|
-
leafer = this;
|
|
5212
|
-
}
|
|
5296
|
+
if (this.isLeafer && leafer !== null)
|
|
5297
|
+
leafer = this;
|
|
5213
5298
|
if (this.leafer && !leafer)
|
|
5214
5299
|
this.leafer.leafs--;
|
|
5215
5300
|
this.leafer = leafer;
|
|
5216
5301
|
if (leafer) {
|
|
5217
5302
|
leafer.leafs++;
|
|
5218
5303
|
this.__level = this.parent ? this.parent.__level + 1 : 1;
|
|
5219
|
-
if (this.
|
|
5220
|
-
|
|
5304
|
+
if (this.animation)
|
|
5305
|
+
this.__runAnimation('in');
|
|
5306
|
+
if (this.__bubbleMap)
|
|
5307
|
+
this.__emitLifeEvent(ChildEvent.MOUNTED);
|
|
5308
|
+
}
|
|
5309
|
+
else {
|
|
5310
|
+
this.__emitLifeEvent(ChildEvent.UNMOUNTED);
|
|
5221
5311
|
}
|
|
5222
5312
|
if (this.isBranch) {
|
|
5223
5313
|
const { children } = this;
|
|
@@ -5226,7 +5316,7 @@ let Leaf = class Leaf {
|
|
|
5226
5316
|
}
|
|
5227
5317
|
}
|
|
5228
5318
|
}
|
|
5229
|
-
set(_data) { }
|
|
5319
|
+
set(_data, _isTemp) { }
|
|
5230
5320
|
get(_name) { return undefined; }
|
|
5231
5321
|
setAttr(name, value) { this[name] = value; }
|
|
5232
5322
|
getAttr(name) { return this[name]; }
|
|
@@ -5251,6 +5341,7 @@ let Leaf = class Leaf {
|
|
|
5251
5341
|
findOne(_condition, _options) { return undefined; }
|
|
5252
5342
|
findId(_id) { return undefined; }
|
|
5253
5343
|
focus(_value) { }
|
|
5344
|
+
updateState() { }
|
|
5254
5345
|
updateLayout() {
|
|
5255
5346
|
this.__layout.update();
|
|
5256
5347
|
}
|
|
@@ -5358,11 +5449,24 @@ let Leaf = class Leaf {
|
|
|
5358
5449
|
if (relative)
|
|
5359
5450
|
relative.worldToInner(to ? to : inner, null, distance);
|
|
5360
5451
|
}
|
|
5452
|
+
getBoxPoint(world, relative, distance, change) {
|
|
5453
|
+
return this.getBoxPointByInner(this.getInnerPoint(world, relative, distance, change), null, null, true);
|
|
5454
|
+
}
|
|
5455
|
+
getBoxPointByInner(inner, _relative, _distance, change) {
|
|
5456
|
+
const point = change ? inner : Object.assign({}, inner), { x, y } = this.boxBounds;
|
|
5457
|
+
move(point, -x, -y);
|
|
5458
|
+
return point;
|
|
5459
|
+
}
|
|
5361
5460
|
getInnerPoint(world, relative, distance, change) {
|
|
5362
5461
|
const point = change ? world : {};
|
|
5363
5462
|
this.worldToInner(world, point, distance, relative);
|
|
5364
5463
|
return point;
|
|
5365
5464
|
}
|
|
5465
|
+
getInnerPointByBox(box, _relative, _distance, change) {
|
|
5466
|
+
const point = change ? box : Object.assign({}, box), { x, y } = this.boxBounds;
|
|
5467
|
+
move(point, x, y);
|
|
5468
|
+
return point;
|
|
5469
|
+
}
|
|
5366
5470
|
getInnerPointByLocal(local, _relative, distance, change) {
|
|
5367
5471
|
return this.getInnerPoint(local, this.parent, distance, change);
|
|
5368
5472
|
}
|
|
@@ -5374,20 +5478,23 @@ let Leaf = class Leaf {
|
|
|
5374
5478
|
getLocalPointByInner(inner, _relative, distance, change) {
|
|
5375
5479
|
return this.getWorldPoint(inner, this.parent, distance, change);
|
|
5376
5480
|
}
|
|
5481
|
+
getPagePoint(world, relative, distance, change) {
|
|
5482
|
+
const layer = this.leafer ? this.leafer.zoomLayer : this;
|
|
5483
|
+
return layer.getInnerPoint(world, relative, distance, change);
|
|
5484
|
+
}
|
|
5377
5485
|
getWorldPoint(inner, relative, distance, change) {
|
|
5378
5486
|
const point = change ? inner : {};
|
|
5379
5487
|
this.innerToWorld(inner, point, distance, relative);
|
|
5380
5488
|
return point;
|
|
5381
5489
|
}
|
|
5490
|
+
getWorldPointByBox(box, relative, distance, change) {
|
|
5491
|
+
return this.getWorldPoint(this.getInnerPointByBox(box, null, null, change), relative, distance, true);
|
|
5492
|
+
}
|
|
5382
5493
|
getWorldPointByLocal(local, relative, distance, change) {
|
|
5383
5494
|
const point = change ? local : {};
|
|
5384
5495
|
this.localToWorld(local, point, distance, relative);
|
|
5385
5496
|
return point;
|
|
5386
5497
|
}
|
|
5387
|
-
getPagePoint(world, relative, distance, change) {
|
|
5388
|
-
const layer = this.leafer ? this.leafer.zoomLayer : this;
|
|
5389
|
-
return layer.getInnerPoint(world, relative, distance, change);
|
|
5390
|
-
}
|
|
5391
5498
|
getWorldPointByPage(page, relative, distance, change) {
|
|
5392
5499
|
const layer = this.leafer ? this.leafer.zoomLayer : this;
|
|
5393
5500
|
return layer.getWorldPoint(page, relative, distance, change);
|
|
@@ -5401,6 +5508,9 @@ let Leaf = class Leaf {
|
|
|
5401
5508
|
move(x, y) {
|
|
5402
5509
|
moveLocal(this, x, y);
|
|
5403
5510
|
}
|
|
5511
|
+
moveInner(x, y) {
|
|
5512
|
+
moveWorld(this, x, y, true);
|
|
5513
|
+
}
|
|
5404
5514
|
scaleOf(origin, scaleX, scaleY, resize) {
|
|
5405
5515
|
zoomOfLocal(this, getLocalOrigin(this, origin), scaleX, scaleY, resize);
|
|
5406
5516
|
}
|
|
@@ -5453,6 +5563,17 @@ let Leaf = class Leaf {
|
|
|
5453
5563
|
__drawRenderPath(_canvas) { }
|
|
5454
5564
|
__updatePath() { }
|
|
5455
5565
|
__updateRenderPath() { }
|
|
5566
|
+
getMotionPathData() {
|
|
5567
|
+
return needPlugin('path');
|
|
5568
|
+
}
|
|
5569
|
+
getMotionPoint(_motionDistance) {
|
|
5570
|
+
return needPlugin('path');
|
|
5571
|
+
}
|
|
5572
|
+
getMotionTotal() {
|
|
5573
|
+
return 0;
|
|
5574
|
+
}
|
|
5575
|
+
__updateMotionPath() { }
|
|
5576
|
+
__runAnimation(_type, _complete) { }
|
|
5456
5577
|
__updateSortChildren() { }
|
|
5457
5578
|
add(_child, _index) { }
|
|
5458
5579
|
remove(_child, destroy) {
|
|
@@ -5478,6 +5599,10 @@ let Leaf = class Leaf {
|
|
|
5478
5599
|
fn = boundsType;
|
|
5479
5600
|
fn(defaultValue)(this.prototype, attrName);
|
|
5480
5601
|
}
|
|
5602
|
+
__emitLifeEvent(type) {
|
|
5603
|
+
if (this.hasEvent(type))
|
|
5604
|
+
this.emitEvent(new ChildEvent(type, this, this.parent));
|
|
5605
|
+
}
|
|
5481
5606
|
destroy() {
|
|
5482
5607
|
if (!this.destroyed) {
|
|
5483
5608
|
const { parent } = this;
|
|
@@ -5485,11 +5610,10 @@ let Leaf = class Leaf {
|
|
|
5485
5610
|
this.remove();
|
|
5486
5611
|
if (this.children)
|
|
5487
5612
|
this.removeAll(true);
|
|
5488
|
-
|
|
5489
|
-
this.emitEvent(new ChildEvent(ChildEvent.DESTROY, this, parent));
|
|
5613
|
+
this.__emitLifeEvent(ChildEvent.DESTROY);
|
|
5490
5614
|
this.__.destroy();
|
|
5491
5615
|
this.__layout.destroy();
|
|
5492
|
-
this.
|
|
5616
|
+
this.destroyEventer();
|
|
5493
5617
|
this.destroyed = true;
|
|
5494
5618
|
}
|
|
5495
5619
|
}
|
|
@@ -5555,8 +5679,8 @@ let Branch = class Branch extends Leaf {
|
|
|
5555
5679
|
this.__.__childBranchNumber = (this.__.__childBranchNumber || 0) + 1;
|
|
5556
5680
|
child.__layout.boxChanged || child.__layout.boxChange();
|
|
5557
5681
|
child.__layout.matrixChanged || child.__layout.matrixChange();
|
|
5558
|
-
if (child.
|
|
5559
|
-
|
|
5682
|
+
if (child.__bubbleMap)
|
|
5683
|
+
child.__emitLifeEvent(ChildEvent.ADD);
|
|
5560
5684
|
if (this.leafer) {
|
|
5561
5685
|
child.__bindLeafer(this.leafer);
|
|
5562
5686
|
if (this.leafer.created)
|
|
@@ -5569,16 +5693,10 @@ let Branch = class Branch extends Leaf {
|
|
|
5569
5693
|
}
|
|
5570
5694
|
remove(child, destroy) {
|
|
5571
5695
|
if (child) {
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
this.__.__childBranchNumber = (this.__.__childBranchNumber || 1) - 1;
|
|
5577
|
-
this.__preRemove();
|
|
5578
|
-
this.__realRemoveChild(child);
|
|
5579
|
-
if (destroy)
|
|
5580
|
-
child.destroy();
|
|
5581
|
-
}
|
|
5696
|
+
if (child.animationOut)
|
|
5697
|
+
child.__runAnimation('out', () => this.__remove(child, destroy));
|
|
5698
|
+
else
|
|
5699
|
+
this.__remove(child, destroy);
|
|
5582
5700
|
}
|
|
5583
5701
|
else if (child === undefined) {
|
|
5584
5702
|
super.remove(null, destroy);
|
|
@@ -5600,6 +5718,18 @@ let Branch = class Branch extends Leaf {
|
|
|
5600
5718
|
clear() {
|
|
5601
5719
|
this.removeAll(true);
|
|
5602
5720
|
}
|
|
5721
|
+
__remove(child, destroy) {
|
|
5722
|
+
const index = this.children.indexOf(child);
|
|
5723
|
+
if (index > -1) {
|
|
5724
|
+
this.children.splice(index, 1);
|
|
5725
|
+
if (child.isBranch)
|
|
5726
|
+
this.__.__childBranchNumber = (this.__.__childBranchNumber || 1) - 1;
|
|
5727
|
+
this.__preRemove();
|
|
5728
|
+
this.__realRemoveChild(child);
|
|
5729
|
+
if (destroy)
|
|
5730
|
+
child.destroy();
|
|
5731
|
+
}
|
|
5732
|
+
}
|
|
5603
5733
|
__preRemove() {
|
|
5604
5734
|
if (this.__hasMask)
|
|
5605
5735
|
this.__updateMask();
|
|
@@ -5609,6 +5739,7 @@ let Branch = class Branch extends Leaf {
|
|
|
5609
5739
|
this.__layout.affectChildrenSort && this.__layout.childrenSortChange();
|
|
5610
5740
|
}
|
|
5611
5741
|
__realRemoveChild(child) {
|
|
5742
|
+
child.__emitLifeEvent(ChildEvent.REMOVE);
|
|
5612
5743
|
child.parent = null;
|
|
5613
5744
|
if (this.leafer) {
|
|
5614
5745
|
child.__bindLeafer(null);
|
|
@@ -5621,8 +5752,6 @@ let Branch = class Branch extends Leaf {
|
|
|
5621
5752
|
}
|
|
5622
5753
|
__emitChildEvent(type, child) {
|
|
5623
5754
|
const event = new ChildEvent(type, child, this);
|
|
5624
|
-
if (child.hasEvent(type))
|
|
5625
|
-
child.emitEvent(event);
|
|
5626
5755
|
if (this.hasEvent(type) && !this.isLeafer)
|
|
5627
5756
|
this.emitEvent(event);
|
|
5628
5757
|
this.leafer.emitEvent(event);
|
|
@@ -5785,8 +5914,7 @@ class LeafLevelList {
|
|
|
5785
5914
|
}
|
|
5786
5915
|
}
|
|
5787
5916
|
|
|
5788
|
-
const version = "1.0.
|
|
5789
|
-
const inviteCode = {};
|
|
5917
|
+
const version = "1.0.3";
|
|
5790
5918
|
|
|
5791
5919
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
5792
5920
|
get allowBackgroundColor() { return false; }
|
|
@@ -5827,6 +5955,8 @@ class LeaferCanvas extends LeaferCanvasBase {
|
|
|
5827
5955
|
const size = { width: width || view.width, height: height || view.height, pixelRatio };
|
|
5828
5956
|
this.resize(size);
|
|
5829
5957
|
if (this.context) {
|
|
5958
|
+
if (this.viewSelect)
|
|
5959
|
+
Platform.renderCanvas = this;
|
|
5830
5960
|
if (this.context.roundRect) {
|
|
5831
5961
|
this.roundRect = function (x, y, width, height, radius) {
|
|
5832
5962
|
this.context.roundRect(x, y, width, height, typeof radius === 'number' ? [radius] : radius);
|
|
@@ -5894,119 +6024,120 @@ Object.assign(Creator, {
|
|
|
5894
6024
|
image: (options) => new LeaferImage(options)
|
|
5895
6025
|
});
|
|
5896
6026
|
function useCanvas(_canvasType, app) {
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
|
|
5900
|
-
|
|
5901
|
-
|
|
5902
|
-
|
|
5903
|
-
|
|
5904
|
-
|
|
5905
|
-
|
|
5906
|
-
|
|
5907
|
-
|
|
5908
|
-
|
|
5909
|
-
|
|
5910
|
-
|
|
5911
|
-
|
|
5912
|
-
|
|
5913
|
-
|
|
5914
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
5917
|
-
|
|
5918
|
-
|
|
5919
|
-
|
|
5920
|
-
|
|
5921
|
-
|
|
5922
|
-
fs.unlink({ filePath });
|
|
5923
|
-
resolve();
|
|
5924
|
-
});
|
|
5925
|
-
}
|
|
5926
|
-
else {
|
|
6027
|
+
Platform.origin = {
|
|
6028
|
+
createCanvas: (width, height, _format) => app.createOffscreenCanvas({ type: '2d', width, height }),
|
|
6029
|
+
canvasToDataURL: (canvas, type, quality) => canvas.toDataURL(mineType(type), quality),
|
|
6030
|
+
canvasToBolb: (canvas, type, quality) => canvas.toBuffer(type, { quality }),
|
|
6031
|
+
canvasSaveAs: (canvas, filePath, quality) => {
|
|
6032
|
+
let data = canvas.toDataURL(mineType(fileType(filePath)), quality);
|
|
6033
|
+
data = data.substring(data.indexOf('64,') + 3);
|
|
6034
|
+
return Platform.origin.download(data, filePath);
|
|
6035
|
+
},
|
|
6036
|
+
download(data, filePath) {
|
|
6037
|
+
return new Promise((resolve, reject) => {
|
|
6038
|
+
let toAlbum;
|
|
6039
|
+
if (!filePath.includes('/')) {
|
|
6040
|
+
filePath = `${app.env.USER_DATA_PATH}/` + filePath;
|
|
6041
|
+
toAlbum = true;
|
|
6042
|
+
}
|
|
6043
|
+
const fs = app.getFileSystemManager();
|
|
6044
|
+
fs.writeFile({
|
|
6045
|
+
filePath,
|
|
6046
|
+
data,
|
|
6047
|
+
encoding: 'base64',
|
|
6048
|
+
success() {
|
|
6049
|
+
if (toAlbum) {
|
|
6050
|
+
Platform.miniapp.saveToAlbum(filePath).then(() => {
|
|
6051
|
+
fs.unlink({ filePath });
|
|
5927
6052
|
resolve();
|
|
5928
|
-
}
|
|
5929
|
-
},
|
|
5930
|
-
fail(error) {
|
|
5931
|
-
reject(error);
|
|
6053
|
+
});
|
|
5932
6054
|
}
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
img.onerror = (error) => { reject(error); };
|
|
5941
|
-
img.src = Platform.image.getRealURL(src);
|
|
6055
|
+
else {
|
|
6056
|
+
resolve();
|
|
6057
|
+
}
|
|
6058
|
+
},
|
|
6059
|
+
fail(error) {
|
|
6060
|
+
reject(error);
|
|
6061
|
+
}
|
|
5942
6062
|
});
|
|
5943
|
-
}
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
|
|
5954
|
-
|
|
5955
|
-
|
|
6063
|
+
});
|
|
6064
|
+
},
|
|
6065
|
+
loadImage(src) {
|
|
6066
|
+
return new Promise((resolve, reject) => {
|
|
6067
|
+
const img = Platform.canvas.view.createImage();
|
|
6068
|
+
img.onload = () => { resolve(img); };
|
|
6069
|
+
img.onerror = (error) => { reject(error); };
|
|
6070
|
+
img.src = Platform.image.getRealURL(src);
|
|
6071
|
+
});
|
|
6072
|
+
},
|
|
6073
|
+
noRepeat: 'repeat-x'
|
|
6074
|
+
};
|
|
6075
|
+
Platform.miniapp = {
|
|
6076
|
+
select(name) {
|
|
6077
|
+
return app.createSelectorQuery().select(name);
|
|
6078
|
+
},
|
|
6079
|
+
getBounds(select) {
|
|
6080
|
+
return new Promise((resolve) => {
|
|
6081
|
+
select.boundingClientRect().exec((res) => {
|
|
6082
|
+
const rect = res[1];
|
|
6083
|
+
resolve({ x: rect.top, y: rect.left, width: rect.width, height: rect.height });
|
|
5956
6084
|
});
|
|
5957
|
-
}
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
});
|
|
6085
|
+
});
|
|
6086
|
+
},
|
|
6087
|
+
getSizeView(select) {
|
|
6088
|
+
return new Promise((resolve) => {
|
|
6089
|
+
select.fields({ node: true, size: true }).exec((res) => {
|
|
6090
|
+
const data = res[0];
|
|
6091
|
+
resolve({ view: data.node, width: data.width, height: data.height });
|
|
5964
6092
|
});
|
|
5965
|
-
}
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
}
|
|
5976
|
-
else {
|
|
5977
|
-
app.authorize({
|
|
5978
|
-
scope: 'scope.writePhotosAlbum',
|
|
5979
|
-
success: () => {
|
|
5980
|
-
app.saveImageToPhotosAlbum({
|
|
5981
|
-
filePath: path,
|
|
5982
|
-
success() { resolve(true); }
|
|
5983
|
-
});
|
|
5984
|
-
},
|
|
5985
|
-
fail: () => { }
|
|
5986
|
-
});
|
|
5987
|
-
}
|
|
6093
|
+
});
|
|
6094
|
+
},
|
|
6095
|
+
saveToAlbum(path) {
|
|
6096
|
+
return new Promise((resolve) => {
|
|
6097
|
+
app.getSetting({
|
|
6098
|
+
success: (res) => {
|
|
6099
|
+
if (res.authSetting['scope.writePhotosAlbum']) {
|
|
6100
|
+
app.saveImageToPhotosAlbum({
|
|
6101
|
+
filePath: path,
|
|
6102
|
+
success() { resolve(true); }
|
|
6103
|
+
});
|
|
5988
6104
|
}
|
|
5989
|
-
|
|
6105
|
+
else {
|
|
6106
|
+
app.authorize({
|
|
6107
|
+
scope: 'scope.writePhotosAlbum',
|
|
6108
|
+
success: () => {
|
|
6109
|
+
app.saveImageToPhotosAlbum({
|
|
6110
|
+
filePath: path,
|
|
6111
|
+
success() { resolve(true); }
|
|
6112
|
+
});
|
|
6113
|
+
},
|
|
6114
|
+
fail: () => { }
|
|
6115
|
+
});
|
|
6116
|
+
}
|
|
6117
|
+
}
|
|
5990
6118
|
});
|
|
5991
|
-
}
|
|
5992
|
-
|
|
5993
|
-
|
|
5994
|
-
|
|
5995
|
-
|
|
5996
|
-
|
|
5997
|
-
|
|
5998
|
-
}
|
|
5999
|
-
|
|
6000
|
-
|
|
6001
|
-
|
|
6002
|
-
|
|
6003
|
-
}
|
|
6004
|
-
|
|
6005
|
-
|
|
6006
|
-
|
|
6119
|
+
});
|
|
6120
|
+
},
|
|
6121
|
+
onWindowResize(fun) {
|
|
6122
|
+
app.onWindowResize(fun);
|
|
6123
|
+
},
|
|
6124
|
+
offWindowResize(fun) {
|
|
6125
|
+
app.offWindowResize(fun);
|
|
6126
|
+
}
|
|
6127
|
+
};
|
|
6128
|
+
Platform.event = {
|
|
6129
|
+
stopDefault(_origin) { },
|
|
6130
|
+
stopNow(_origin) { },
|
|
6131
|
+
stop(_origin) { }
|
|
6132
|
+
};
|
|
6133
|
+
Platform.canvas = Creator.canvas();
|
|
6134
|
+
Platform.conicGradientSupport = !!Platform.canvas.context.createConicGradient;
|
|
6007
6135
|
}
|
|
6008
6136
|
Platform.name = 'miniapp';
|
|
6009
|
-
Platform.requestRender = function (render) {
|
|
6137
|
+
Platform.requestRender = function (render) {
|
|
6138
|
+
const { view } = (Platform.renderCanvas || Platform.canvas);
|
|
6139
|
+
view.requestAnimationFrame ? view.requestAnimationFrame(render) : setTimeout(render, 16);
|
|
6140
|
+
};
|
|
6010
6141
|
defineKey(Platform, 'devicePixelRatio', { get() { return Math.max(1, wx.getSystemInfoSync().pixelRatio); } });
|
|
6011
6142
|
|
|
6012
6143
|
class Watcher {
|
|
@@ -6147,9 +6278,13 @@ function updateBounds(boundsList) {
|
|
|
6147
6278
|
});
|
|
6148
6279
|
}
|
|
6149
6280
|
function updateChange(updateList) {
|
|
6281
|
+
let layout;
|
|
6150
6282
|
updateList.list.forEach(leaf => {
|
|
6151
|
-
|
|
6283
|
+
layout = leaf.__layout;
|
|
6284
|
+
if (layout.opacityChanged)
|
|
6152
6285
|
updateAllWorldOpacity(leaf);
|
|
6286
|
+
if (layout.stateStyleChanged)
|
|
6287
|
+
setTimeout(() => layout.stateStyleChanged && leaf.updateState());
|
|
6153
6288
|
leaf.__updateChange();
|
|
6154
6289
|
});
|
|
6155
6290
|
}
|
|
@@ -6515,7 +6650,6 @@ class Renderer {
|
|
|
6515
6650
|
Platform.requestRender(() => {
|
|
6516
6651
|
this.FPS = Math.min(60, Math.ceil(1000 / (Date.now() - startTime)));
|
|
6517
6652
|
if (this.running) {
|
|
6518
|
-
this.target.emit(AnimateEvent.FRAME);
|
|
6519
6653
|
if (this.changed && this.canvas.view)
|
|
6520
6654
|
this.render();
|
|
6521
6655
|
this.target.emit(RenderEvent.NEXT);
|
|
@@ -6589,36 +6723,6 @@ Object.assign(Creator, {
|
|
|
6589
6723
|
});
|
|
6590
6724
|
Platform.layout = Layouter.fullLayout;
|
|
6591
6725
|
|
|
6592
|
-
const TextConvert = {};
|
|
6593
|
-
const ColorConvert = {};
|
|
6594
|
-
const PathArrow = {};
|
|
6595
|
-
const Paint = {};
|
|
6596
|
-
const PaintImage = {};
|
|
6597
|
-
const PaintGradient = {};
|
|
6598
|
-
const Effect = {};
|
|
6599
|
-
const Export = {};
|
|
6600
|
-
const State = {};
|
|
6601
|
-
|
|
6602
|
-
function stateType(defaultValue) {
|
|
6603
|
-
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
6604
|
-
set(value) {
|
|
6605
|
-
this.__setAttr(key, value);
|
|
6606
|
-
this.waitLeafer(() => { if (State.setStyle)
|
|
6607
|
-
State.setStyle(this, key + 'Style', value); });
|
|
6608
|
-
}
|
|
6609
|
-
}));
|
|
6610
|
-
}
|
|
6611
|
-
function arrowType(defaultValue) {
|
|
6612
|
-
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
6613
|
-
set(value) {
|
|
6614
|
-
if (this.__setAttr(key, value)) {
|
|
6615
|
-
const data = this.__;
|
|
6616
|
-
data.__useArrow = data.startArrow !== 'none' || data.endArrow !== 'none';
|
|
6617
|
-
doStrokeType(this);
|
|
6618
|
-
}
|
|
6619
|
-
}
|
|
6620
|
-
}));
|
|
6621
|
-
}
|
|
6622
6726
|
function effectType(defaultValue) {
|
|
6623
6727
|
return decorateLeafAttr(defaultValue, (key) => attr({
|
|
6624
6728
|
set(value) {
|
|
@@ -6653,10 +6757,33 @@ function zoomLayerType() {
|
|
|
6653
6757
|
};
|
|
6654
6758
|
}
|
|
6655
6759
|
|
|
6760
|
+
const TextConvert = {};
|
|
6761
|
+
const ColorConvert = {};
|
|
6762
|
+
const PathArrow = {};
|
|
6763
|
+
const Paint = {};
|
|
6764
|
+
const PaintImage = {};
|
|
6765
|
+
const PaintGradient = {};
|
|
6766
|
+
const Effect = {};
|
|
6767
|
+
const Export = {};
|
|
6768
|
+
const State = {
|
|
6769
|
+
setStyleName(_leaf, _styleName, _value) { return needPlugin('state'); },
|
|
6770
|
+
set(_leaf, _stateName) { return needPlugin('state'); }
|
|
6771
|
+
};
|
|
6772
|
+
const Transition = {
|
|
6773
|
+
list: {},
|
|
6774
|
+
register(attrName, fn) {
|
|
6775
|
+
Transition.list[attrName] = fn;
|
|
6776
|
+
},
|
|
6777
|
+
get(attrName) {
|
|
6778
|
+
return Transition.list[attrName];
|
|
6779
|
+
}
|
|
6780
|
+
};
|
|
6781
|
+
|
|
6656
6782
|
const { parse } = PathConvert;
|
|
6657
6783
|
const emptyPaint = {};
|
|
6658
6784
|
const debug$2 = Debug.get('UIData');
|
|
6659
6785
|
class UIData extends LeafData {
|
|
6786
|
+
get scale() { const { scaleX, scaleY } = this; return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX; }
|
|
6660
6787
|
get __strokeWidth() {
|
|
6661
6788
|
const { strokeWidth, strokeWidthFixed } = this;
|
|
6662
6789
|
if (strokeWidthFixed) {
|
|
@@ -6675,9 +6802,10 @@ class UIData extends LeafData {
|
|
|
6675
6802
|
get __autoSide() { return !this._width || !this._height; }
|
|
6676
6803
|
get __autoSize() { return !this._width && !this._height; }
|
|
6677
6804
|
setVisible(value) {
|
|
6678
|
-
if (this.__leaf.leafer)
|
|
6679
|
-
this.__leaf.leafer.watcher.hasVisible = true;
|
|
6680
6805
|
this._visible = value;
|
|
6806
|
+
const { leafer } = this.__leaf;
|
|
6807
|
+
if (leafer)
|
|
6808
|
+
leafer.watcher.hasVisible = true;
|
|
6681
6809
|
}
|
|
6682
6810
|
setWidth(value) {
|
|
6683
6811
|
if (value < 0) {
|
|
@@ -6801,6 +6929,11 @@ class BoxData extends GroupData {
|
|
|
6801
6929
|
}
|
|
6802
6930
|
|
|
6803
6931
|
class LeaferData extends GroupData {
|
|
6932
|
+
__getInputData() {
|
|
6933
|
+
const data = super.__getInputData();
|
|
6934
|
+
canvasSizeAttrs.forEach(key => delete data[key]);
|
|
6935
|
+
return data;
|
|
6936
|
+
}
|
|
6804
6937
|
}
|
|
6805
6938
|
|
|
6806
6939
|
class FrameData extends BoxData {
|
|
@@ -6863,7 +6996,7 @@ class ImageData extends RectData {
|
|
|
6863
6996
|
__setImageFill(value) {
|
|
6864
6997
|
if (this.__leaf.image)
|
|
6865
6998
|
this.__leaf.image = null;
|
|
6866
|
-
this.fill = value ? { type: 'image', mode: '
|
|
6999
|
+
this.fill = value ? { type: 'image', mode: 'stretch', url: value } : undefined;
|
|
6867
7000
|
}
|
|
6868
7001
|
__getData() {
|
|
6869
7002
|
const data = super.__getData();
|
|
@@ -6878,6 +7011,11 @@ class ImageData extends RectData {
|
|
|
6878
7011
|
}
|
|
6879
7012
|
|
|
6880
7013
|
class CanvasData extends RectData {
|
|
7014
|
+
__getInputData() {
|
|
7015
|
+
const data = super.__getInputData();
|
|
7016
|
+
data.url = this.__leaf.canvas.toDataURL('image/png');
|
|
7017
|
+
return data;
|
|
7018
|
+
}
|
|
6881
7019
|
}
|
|
6882
7020
|
|
|
6883
7021
|
const UIBounds = {
|
|
@@ -7048,19 +7186,8 @@ var UI_1;
|
|
|
7048
7186
|
let UI = UI_1 = class UI extends Leaf {
|
|
7049
7187
|
get app() { return this.leafer && this.leafer.app; }
|
|
7050
7188
|
get isFrame() { return false; }
|
|
7051
|
-
set scale(value) {
|
|
7052
|
-
|
|
7053
|
-
this.scaleX = this.scaleY = value;
|
|
7054
|
-
}
|
|
7055
|
-
else {
|
|
7056
|
-
this.scaleX = value.x;
|
|
7057
|
-
this.scaleY = value.y;
|
|
7058
|
-
}
|
|
7059
|
-
}
|
|
7060
|
-
get scale() {
|
|
7061
|
-
const { scaleX, scaleY } = this;
|
|
7062
|
-
return scaleX !== scaleY ? { x: scaleX, y: scaleY } : scaleX;
|
|
7063
|
-
}
|
|
7189
|
+
set scale(value) { MathHelper.assignScale(this, value); }
|
|
7190
|
+
get scale() { return this.__.scale; }
|
|
7064
7191
|
get pen() {
|
|
7065
7192
|
const { path } = this.__;
|
|
7066
7193
|
pen.set(this.path = path || []);
|
|
@@ -7075,8 +7202,15 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7075
7202
|
super(data);
|
|
7076
7203
|
}
|
|
7077
7204
|
reset(_data) { }
|
|
7078
|
-
set(data) {
|
|
7079
|
-
|
|
7205
|
+
set(data, isTemp) {
|
|
7206
|
+
if (isTemp) {
|
|
7207
|
+
this.lockNormalStyle = true;
|
|
7208
|
+
Object.assign(this, data);
|
|
7209
|
+
this.lockNormalStyle = false;
|
|
7210
|
+
}
|
|
7211
|
+
else {
|
|
7212
|
+
Object.assign(this, data);
|
|
7213
|
+
}
|
|
7080
7214
|
}
|
|
7081
7215
|
get(name) {
|
|
7082
7216
|
return typeof name === 'string' ? this.__.__getInput(name) : this.__.__getInputData(name);
|
|
@@ -7139,11 +7273,18 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7139
7273
|
drawer.rect(x, y, width, height);
|
|
7140
7274
|
}
|
|
7141
7275
|
}
|
|
7276
|
+
animate(_keyframe, _options, _type, _isTemp) {
|
|
7277
|
+
return needPlugin('animate');
|
|
7278
|
+
}
|
|
7279
|
+
killAnimate(_type) { }
|
|
7142
7280
|
export(filename, options) {
|
|
7143
7281
|
return Export.export(this, filename, options);
|
|
7144
7282
|
}
|
|
7145
|
-
clone() {
|
|
7146
|
-
|
|
7283
|
+
clone(newData) {
|
|
7284
|
+
const json = this.toJSON();
|
|
7285
|
+
if (newData)
|
|
7286
|
+
Object.assign(json, newData);
|
|
7287
|
+
return UI_1.one(json);
|
|
7147
7288
|
}
|
|
7148
7289
|
static one(data, x, y, width, height) {
|
|
7149
7290
|
return UICreator.get(data.tag || this.prototype.__tag, data, x, y, width, height);
|
|
@@ -7159,6 +7300,8 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
7159
7300
|
static setEditInner(_editorName) { }
|
|
7160
7301
|
destroy() {
|
|
7161
7302
|
this.fill = this.stroke = null;
|
|
7303
|
+
if (this.__animate)
|
|
7304
|
+
this.killAnimate();
|
|
7162
7305
|
super.destroy();
|
|
7163
7306
|
}
|
|
7164
7307
|
};
|
|
@@ -7186,12 +7329,6 @@ __decorate([
|
|
|
7186
7329
|
__decorate([
|
|
7187
7330
|
visibleType(true)
|
|
7188
7331
|
], UI.prototype, "visible", void 0);
|
|
7189
|
-
__decorate([
|
|
7190
|
-
stateType(false)
|
|
7191
|
-
], UI.prototype, "selected", void 0);
|
|
7192
|
-
__decorate([
|
|
7193
|
-
stateType(false)
|
|
7194
|
-
], UI.prototype, "disabled", void 0);
|
|
7195
7332
|
__decorate([
|
|
7196
7333
|
surfaceType(false)
|
|
7197
7334
|
], UI.prototype, "locked", void 0);
|
|
@@ -7264,45 +7401,9 @@ __decorate([
|
|
|
7264
7401
|
__decorate([
|
|
7265
7402
|
pathType(true)
|
|
7266
7403
|
], UI.prototype, "closed", void 0);
|
|
7267
|
-
__decorate([
|
|
7268
|
-
autoLayoutType(false)
|
|
7269
|
-
], UI.prototype, "flow", void 0);
|
|
7270
7404
|
__decorate([
|
|
7271
7405
|
boundsType(0)
|
|
7272
7406
|
], UI.prototype, "padding", void 0);
|
|
7273
|
-
__decorate([
|
|
7274
|
-
boundsType(0)
|
|
7275
|
-
], UI.prototype, "gap", void 0);
|
|
7276
|
-
__decorate([
|
|
7277
|
-
boundsType('top-left')
|
|
7278
|
-
], UI.prototype, "flowAlign", void 0);
|
|
7279
|
-
__decorate([
|
|
7280
|
-
boundsType(false)
|
|
7281
|
-
], UI.prototype, "flowWrap", void 0);
|
|
7282
|
-
__decorate([
|
|
7283
|
-
boundsType('box')
|
|
7284
|
-
], UI.prototype, "itemBox", void 0);
|
|
7285
|
-
__decorate([
|
|
7286
|
-
boundsType(true)
|
|
7287
|
-
], UI.prototype, "inFlow", void 0);
|
|
7288
|
-
__decorate([
|
|
7289
|
-
boundsType()
|
|
7290
|
-
], UI.prototype, "autoWidth", void 0);
|
|
7291
|
-
__decorate([
|
|
7292
|
-
boundsType()
|
|
7293
|
-
], UI.prototype, "autoHeight", void 0);
|
|
7294
|
-
__decorate([
|
|
7295
|
-
boundsType()
|
|
7296
|
-
], UI.prototype, "lockRatio", void 0);
|
|
7297
|
-
__decorate([
|
|
7298
|
-
boundsType()
|
|
7299
|
-
], UI.prototype, "autoBox", void 0);
|
|
7300
|
-
__decorate([
|
|
7301
|
-
boundsType()
|
|
7302
|
-
], UI.prototype, "widthRange", void 0);
|
|
7303
|
-
__decorate([
|
|
7304
|
-
boundsType()
|
|
7305
|
-
], UI.prototype, "heightRange", void 0);
|
|
7306
7407
|
__decorate([
|
|
7307
7408
|
dataType(false)
|
|
7308
7409
|
], UI.prototype, "draggable", void 0);
|
|
@@ -7366,12 +7467,6 @@ __decorate([
|
|
|
7366
7467
|
__decorate([
|
|
7367
7468
|
strokeType(10)
|
|
7368
7469
|
], UI.prototype, "miterLimit", void 0);
|
|
7369
|
-
__decorate([
|
|
7370
|
-
arrowType('none')
|
|
7371
|
-
], UI.prototype, "startArrow", void 0);
|
|
7372
|
-
__decorate([
|
|
7373
|
-
arrowType('none')
|
|
7374
|
-
], UI.prototype, "endArrow", void 0);
|
|
7375
7470
|
__decorate([
|
|
7376
7471
|
pathType(0)
|
|
7377
7472
|
], UI.prototype, "cornerRadius", void 0);
|
|
@@ -7393,24 +7488,6 @@ __decorate([
|
|
|
7393
7488
|
__decorate([
|
|
7394
7489
|
effectType()
|
|
7395
7490
|
], UI.prototype, "grayscale", void 0);
|
|
7396
|
-
__decorate([
|
|
7397
|
-
dataType()
|
|
7398
|
-
], UI.prototype, "normalStyle", void 0);
|
|
7399
|
-
__decorate([
|
|
7400
|
-
dataType()
|
|
7401
|
-
], UI.prototype, "hoverStyle", void 0);
|
|
7402
|
-
__decorate([
|
|
7403
|
-
dataType()
|
|
7404
|
-
], UI.prototype, "pressStyle", void 0);
|
|
7405
|
-
__decorate([
|
|
7406
|
-
dataType()
|
|
7407
|
-
], UI.prototype, "focusStyle", void 0);
|
|
7408
|
-
__decorate([
|
|
7409
|
-
dataType()
|
|
7410
|
-
], UI.prototype, "selectedStyle", void 0);
|
|
7411
|
-
__decorate([
|
|
7412
|
-
dataType()
|
|
7413
|
-
], UI.prototype, "disabledStyle", void 0);
|
|
7414
7491
|
__decorate([
|
|
7415
7492
|
dataType({})
|
|
7416
7493
|
], UI.prototype, "data", void 0);
|
|
@@ -7437,7 +7514,7 @@ let Group = class Group extends UI {
|
|
|
7437
7514
|
if (!this.children)
|
|
7438
7515
|
this.children = [];
|
|
7439
7516
|
}
|
|
7440
|
-
set(data) {
|
|
7517
|
+
set(data, isTemp) {
|
|
7441
7518
|
if (data.children) {
|
|
7442
7519
|
const { children } = data;
|
|
7443
7520
|
delete data.children;
|
|
@@ -7447,7 +7524,7 @@ let Group = class Group extends UI {
|
|
|
7447
7524
|
else {
|
|
7448
7525
|
this.clear();
|
|
7449
7526
|
}
|
|
7450
|
-
super.set(data);
|
|
7527
|
+
super.set(data, isTemp);
|
|
7451
7528
|
let child;
|
|
7452
7529
|
children.forEach(childData => {
|
|
7453
7530
|
child = childData.__ ? childData : UICreator.get(childData.tag, childData);
|
|
@@ -7456,7 +7533,7 @@ let Group = class Group extends UI {
|
|
|
7456
7533
|
data.children = children;
|
|
7457
7534
|
}
|
|
7458
7535
|
else {
|
|
7459
|
-
super.set(data);
|
|
7536
|
+
super.set(data, isTemp);
|
|
7460
7537
|
}
|
|
7461
7538
|
}
|
|
7462
7539
|
toJSON(options) {
|
|
@@ -7783,13 +7860,20 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
7783
7860
|
}
|
|
7784
7861
|
}
|
|
7785
7862
|
zoom(_zoomType, _padding, _fixedScale) {
|
|
7786
|
-
return
|
|
7863
|
+
return needPlugin('view');
|
|
7787
7864
|
}
|
|
7788
7865
|
getValidMove(moveX, moveY) { return { x: moveX, y: moveY }; }
|
|
7789
7866
|
getValidScale(changeScale) { return changeScale; }
|
|
7790
7867
|
getWorldPointByClient(clientPoint, updateClient) {
|
|
7791
7868
|
return this.interaction && this.interaction.getLocal(clientPoint, updateClient);
|
|
7792
7869
|
}
|
|
7870
|
+
getPagePointByClient(clientPoint, updateClient) {
|
|
7871
|
+
return this.getPagePoint(this.getWorldPointByClient(clientPoint, updateClient));
|
|
7872
|
+
}
|
|
7873
|
+
updateClientBounds() {
|
|
7874
|
+
this.canvas && this.canvas.updateClientBounds();
|
|
7875
|
+
}
|
|
7876
|
+
receiveEvent(_event) { }
|
|
7793
7877
|
__checkUpdateLayout() {
|
|
7794
7878
|
this.__layout.update();
|
|
7795
7879
|
}
|
|
@@ -7873,7 +7957,7 @@ Rect = __decorate([
|
|
|
7873
7957
|
const rect = Rect.prototype;
|
|
7874
7958
|
const group = Group.prototype;
|
|
7875
7959
|
const childrenRenderBounds = {};
|
|
7876
|
-
const { copy: copy$2, add, includes: includes$1 } = BoundsHelper;
|
|
7960
|
+
const { copy: copy$2, add, includes: includes$1, copyAndSpread: copyAndSpread$1 } = BoundsHelper;
|
|
7877
7961
|
let Box = class Box extends Group {
|
|
7878
7962
|
get __tag() { return 'Box'; }
|
|
7879
7963
|
get isBranchLeaf() { return true; }
|
|
@@ -7887,20 +7971,23 @@ let Box = class Box extends Group {
|
|
|
7887
7971
|
return this.__updateRectRenderSpread() || -1;
|
|
7888
7972
|
}
|
|
7889
7973
|
__updateRectBoxBounds() { }
|
|
7890
|
-
__updateBoxBounds() {
|
|
7974
|
+
__updateBoxBounds(secondLayout) {
|
|
7891
7975
|
const data = this.__;
|
|
7892
7976
|
if (this.children.length) {
|
|
7893
7977
|
if (data.__autoSide) {
|
|
7894
7978
|
if (this.leafer && this.leafer.ready)
|
|
7895
7979
|
this.leafer.layouter.addExtra(this);
|
|
7896
7980
|
super.__updateBoxBounds();
|
|
7981
|
+
const { boxBounds } = this.__layout;
|
|
7897
7982
|
if (!data.__autoSize) {
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
|
|
7902
|
-
b.width += b.x, b.height = data.height, b.y = b.x = 0;
|
|
7983
|
+
if (data.__autoWidth)
|
|
7984
|
+
boxBounds.width += boxBounds.x, boxBounds.height = data.height, boxBounds.y = boxBounds.x = 0;
|
|
7985
|
+
else
|
|
7986
|
+
boxBounds.height += boxBounds.y, boxBounds.width = data.width, boxBounds.x = boxBounds.y = 0;
|
|
7903
7987
|
}
|
|
7988
|
+
if (secondLayout && data.flow && data.padding)
|
|
7989
|
+
copyAndSpread$1(boxBounds, boxBounds, data.padding, false, data.__autoSize ? null : (data.__autoWidth ? 'width' : 'height'));
|
|
7990
|
+
this.__updateNaturalSize();
|
|
7904
7991
|
}
|
|
7905
7992
|
else {
|
|
7906
7993
|
this.__updateRectBoxBounds();
|
|
@@ -7920,13 +8007,13 @@ let Box = class Box extends Group {
|
|
|
7920
8007
|
super.__updateRenderBounds();
|
|
7921
8008
|
copy$2(childrenRenderBounds, renderBounds);
|
|
7922
8009
|
this.__updateRectRenderBounds();
|
|
7923
|
-
isOverflow = !includes$1(renderBounds, childrenRenderBounds) ||
|
|
8010
|
+
isOverflow = !includes$1(renderBounds, childrenRenderBounds) || !this.pathInputed || !this.__.cornerRadius;
|
|
7924
8011
|
}
|
|
7925
8012
|
else {
|
|
7926
8013
|
this.__updateRectRenderBounds();
|
|
7927
8014
|
}
|
|
7928
8015
|
this.isOverflow !== isOverflow && (this.isOverflow = isOverflow);
|
|
7929
|
-
if (
|
|
8016
|
+
if (!(this.__.__drawAfterFill = this.__.overflow === 'hide') && isOverflow)
|
|
7930
8017
|
add(renderBounds, childrenRenderBounds);
|
|
7931
8018
|
}
|
|
7932
8019
|
__updateRectRenderBounds() { }
|
|
@@ -8260,14 +8347,26 @@ __decorate([
|
|
|
8260
8347
|
Image = __decorate([
|
|
8261
8348
|
registerUI()
|
|
8262
8349
|
], Image);
|
|
8350
|
+
const MyImage = Image;
|
|
8263
8351
|
|
|
8264
8352
|
let Canvas = class Canvas extends Rect {
|
|
8265
8353
|
get __tag() { return 'Canvas'; }
|
|
8354
|
+
get ready() { return !this.url; }
|
|
8266
8355
|
constructor(data) {
|
|
8267
8356
|
super(data);
|
|
8268
8357
|
this.canvas = Creator.canvas(this.__);
|
|
8269
8358
|
this.context = this.canvas.context;
|
|
8270
8359
|
this.__.__isCanvas = this.__.__drawAfterFill = true;
|
|
8360
|
+
if (data && data.url)
|
|
8361
|
+
this.drawImage(data.url);
|
|
8362
|
+
}
|
|
8363
|
+
drawImage(url) {
|
|
8364
|
+
new LeaferImage({ url }).load((image) => {
|
|
8365
|
+
this.context.drawImage(image.view, 0, 0);
|
|
8366
|
+
this.url = undefined;
|
|
8367
|
+
this.paint();
|
|
8368
|
+
this.emitEvent(new ImageEvent(ImageEvent.LOADED, { image }));
|
|
8369
|
+
});
|
|
8271
8370
|
}
|
|
8272
8371
|
draw(ui, offset, scale, rotation) {
|
|
8273
8372
|
ui.__layout.update();
|
|
@@ -8284,19 +8383,18 @@ let Canvas = class Canvas extends Rect {
|
|
|
8284
8383
|
this.paint();
|
|
8285
8384
|
}
|
|
8286
8385
|
paint() {
|
|
8287
|
-
this.
|
|
8386
|
+
this.forceRender();
|
|
8288
8387
|
}
|
|
8289
8388
|
__drawAfterFill(canvas, _options) {
|
|
8290
|
-
const
|
|
8291
|
-
|
|
8292
|
-
if (this.__.cornerRadius || this.pathInputed) {
|
|
8389
|
+
const { width, height, cornerRadius } = this.__, { view } = this.canvas;
|
|
8390
|
+
if (cornerRadius || this.pathInputed) {
|
|
8293
8391
|
canvas.save();
|
|
8294
8392
|
canvas.clip();
|
|
8295
|
-
canvas.drawImage(
|
|
8393
|
+
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
8296
8394
|
canvas.restore();
|
|
8297
8395
|
}
|
|
8298
8396
|
else {
|
|
8299
|
-
canvas.drawImage(
|
|
8397
|
+
canvas.drawImage(view, 0, 0, view.width, view.height, 0, 0, width, height);
|
|
8300
8398
|
}
|
|
8301
8399
|
}
|
|
8302
8400
|
__updateSize() {
|
|
@@ -8326,7 +8424,7 @@ __decorate([
|
|
|
8326
8424
|
resizeType(100)
|
|
8327
8425
|
], Canvas.prototype, "height", void 0);
|
|
8328
8426
|
__decorate([
|
|
8329
|
-
resizeType(
|
|
8427
|
+
resizeType(1)
|
|
8330
8428
|
], Canvas.prototype, "pixelRatio", void 0);
|
|
8331
8429
|
__decorate([
|
|
8332
8430
|
resizeType(true)
|
|
@@ -8350,13 +8448,13 @@ let Text = class Text extends UI {
|
|
|
8350
8448
|
super(data);
|
|
8351
8449
|
}
|
|
8352
8450
|
__drawHitPath(canvas) {
|
|
8353
|
-
const { __lineHeight, __baseLine, __textDrawData: data } = this.__;
|
|
8451
|
+
const { __lineHeight, fontSize, __baseLine, __textDrawData: data } = this.__;
|
|
8354
8452
|
canvas.beginPath();
|
|
8355
8453
|
if (this.__.__letterSpacing < 0) {
|
|
8356
8454
|
this.__drawPathByData(canvas);
|
|
8357
8455
|
}
|
|
8358
8456
|
else {
|
|
8359
|
-
data.rows.forEach(row => canvas.rect(row.x, row.y - __baseLine, row.width, __lineHeight));
|
|
8457
|
+
data.rows.forEach(row => canvas.rect(row.x, row.y - __baseLine, row.width, __lineHeight < fontSize ? fontSize : __lineHeight));
|
|
8360
8458
|
}
|
|
8361
8459
|
}
|
|
8362
8460
|
__drawPathByData(drawer, _data) {
|
|
@@ -8549,7 +8647,8 @@ let Pen = class Pen extends Group {
|
|
|
8549
8647
|
drawPoints(_points, _curve, _close) { return this; }
|
|
8550
8648
|
clearPath() { return this; }
|
|
8551
8649
|
paint() {
|
|
8552
|
-
this.pathElement.
|
|
8650
|
+
if (!this.pathElement.__layout.boxChanged)
|
|
8651
|
+
this.pathElement.forceUpdate('path');
|
|
8553
8652
|
}
|
|
8554
8653
|
};
|
|
8555
8654
|
__decorate([
|
|
@@ -8559,7 +8658,7 @@ __decorate([
|
|
|
8559
8658
|
penPathType()
|
|
8560
8659
|
], Pen.prototype, "path", void 0);
|
|
8561
8660
|
Pen = __decorate([
|
|
8562
|
-
useModule(PathCreator, ['set', 'beginPath', 'path']),
|
|
8661
|
+
useModule(PathCreator, ['set', 'beginPath', 'path', 'paint']),
|
|
8563
8662
|
registerUI()
|
|
8564
8663
|
], Pen);
|
|
8565
8664
|
function penPathType() {
|
|
@@ -8921,16 +9020,21 @@ function repeatMode(data, box, width, height, x, y, scaleX, scaleY, rotation, al
|
|
|
8921
9020
|
const { get: get$2, translate } = MatrixHelper;
|
|
8922
9021
|
const tempBox = new Bounds();
|
|
8923
9022
|
const tempPoint = {};
|
|
9023
|
+
const tempScaleData = {};
|
|
8924
9024
|
function createData(leafPaint, image, paint, box) {
|
|
8925
|
-
const { blendMode } = paint;
|
|
9025
|
+
const { blendMode, sync } = paint;
|
|
8926
9026
|
if (blendMode)
|
|
8927
9027
|
leafPaint.blendMode = blendMode;
|
|
9028
|
+
if (sync)
|
|
9029
|
+
leafPaint.sync = sync;
|
|
8928
9030
|
leafPaint.data = getPatternData(paint, box, image);
|
|
8929
9031
|
}
|
|
8930
9032
|
function getPatternData(paint, box, image) {
|
|
8931
9033
|
let { width, height } = image;
|
|
8932
9034
|
if (paint.padding)
|
|
8933
9035
|
box = tempBox.set(box).shrink(paint.padding);
|
|
9036
|
+
if (paint.mode === 'strench')
|
|
9037
|
+
paint.mode = 'stretch';
|
|
8934
9038
|
const { opacity, mode, align, offset, scale, size, rotation, repeat } = paint;
|
|
8935
9039
|
const sameBox = box.width === width && box.height === height;
|
|
8936
9040
|
const data = { mode };
|
|
@@ -8944,13 +9048,10 @@ function getPatternData(paint, box, image) {
|
|
|
8944
9048
|
x += (box.width - width * scaleX) / 2, y += (box.height - height * scaleY) / 2;
|
|
8945
9049
|
}
|
|
8946
9050
|
}
|
|
8947
|
-
else if (size) {
|
|
8948
|
-
|
|
8949
|
-
|
|
8950
|
-
|
|
8951
|
-
else if (scale) {
|
|
8952
|
-
scaleX = typeof scale === 'number' ? scale : scale.x;
|
|
8953
|
-
scaleY = typeof scale === 'number' ? scale : scale.y;
|
|
9051
|
+
else if (scale || size) {
|
|
9052
|
+
MathHelper.getScaleData(scale, size, image, tempScaleData);
|
|
9053
|
+
scaleX = tempScaleData.scaleX;
|
|
9054
|
+
scaleY = tempScaleData.scaleY;
|
|
8954
9055
|
}
|
|
8955
9056
|
if (align) {
|
|
8956
9057
|
const imageBounds = { x, y, width: swapWidth, height: swapHeight };
|
|
@@ -8962,7 +9063,7 @@ function getPatternData(paint, box, image) {
|
|
|
8962
9063
|
if (offset)
|
|
8963
9064
|
x += offset.x, y += offset.y;
|
|
8964
9065
|
switch (mode) {
|
|
8965
|
-
case '
|
|
9066
|
+
case 'stretch':
|
|
8966
9067
|
if (!sameBox)
|
|
8967
9068
|
width = box.width, height = box.height;
|
|
8968
9069
|
break;
|
|
@@ -8989,7 +9090,7 @@ function getPatternData(paint, box, image) {
|
|
|
8989
9090
|
translate(data.transform, box.x, box.y);
|
|
8990
9091
|
}
|
|
8991
9092
|
}
|
|
8992
|
-
if (scaleX && mode !== '
|
|
9093
|
+
if (scaleX && mode !== 'stretch') {
|
|
8993
9094
|
data.scaleX = scaleX;
|
|
8994
9095
|
data.scaleY = scaleY;
|
|
8995
9096
|
}
|
|
@@ -9093,7 +9194,7 @@ const { get: get$1, scale, copy: copy$1 } = MatrixHelper;
|
|
|
9093
9194
|
const { ceil, abs: abs$1 } = Math;
|
|
9094
9195
|
function createPattern(ui, paint, pixelRatio) {
|
|
9095
9196
|
let { scaleX, scaleY } = ImageManager.patternLocked ? ui.__world : ui.__nowWorld;
|
|
9096
|
-
const id = scaleX + '-' + scaleY;
|
|
9197
|
+
const id = scaleX + '-' + scaleY + '-' + pixelRatio;
|
|
9097
9198
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
9098
9199
|
scaleX = abs$1(scaleX);
|
|
9099
9200
|
scaleY = abs$1(scaleY);
|
|
@@ -9155,7 +9256,8 @@ function createPattern(ui, paint, pixelRatio) {
|
|
|
9155
9256
|
const { abs } = Math;
|
|
9156
9257
|
function checkImage(ui, canvas, paint, allowPaint) {
|
|
9157
9258
|
const { scaleX, scaleY } = ImageManager.patternLocked ? ui.__world : ui.__nowWorld;
|
|
9158
|
-
|
|
9259
|
+
const { pixelRatio } = canvas;
|
|
9260
|
+
if (!paint.data || (paint.patternId === scaleX + '-' + scaleY + '-' + pixelRatio && !Export.running)) {
|
|
9159
9261
|
return false;
|
|
9160
9262
|
}
|
|
9161
9263
|
else {
|
|
@@ -9163,8 +9265,8 @@ function checkImage(ui, canvas, paint, allowPaint) {
|
|
|
9163
9265
|
if (allowPaint) {
|
|
9164
9266
|
if (!data.repeat) {
|
|
9165
9267
|
let { width, height } = data;
|
|
9166
|
-
width *= abs(scaleX) *
|
|
9167
|
-
height *= abs(scaleY) *
|
|
9268
|
+
width *= abs(scaleX) * pixelRatio;
|
|
9269
|
+
height *= abs(scaleY) * pixelRatio;
|
|
9168
9270
|
if (data.scaleX) {
|
|
9169
9271
|
width *= data.scaleX;
|
|
9170
9272
|
height *= data.scaleY;
|
|
@@ -9189,15 +9291,15 @@ function checkImage(ui, canvas, paint, allowPaint) {
|
|
|
9189
9291
|
return true;
|
|
9190
9292
|
}
|
|
9191
9293
|
else {
|
|
9192
|
-
if (!paint.style || Export.running) {
|
|
9193
|
-
createPattern(ui, paint,
|
|
9294
|
+
if (!paint.style || paint.sync || Export.running) {
|
|
9295
|
+
createPattern(ui, paint, pixelRatio);
|
|
9194
9296
|
}
|
|
9195
9297
|
else {
|
|
9196
9298
|
if (!paint.patternTask) {
|
|
9197
9299
|
paint.patternTask = ImageManager.patternTasker.add(() => __awaiter(this, void 0, void 0, function* () {
|
|
9198
9300
|
paint.patternTask = null;
|
|
9199
9301
|
if (canvas.bounds.hit(ui.__nowWorld))
|
|
9200
|
-
createPattern(ui, paint,
|
|
9302
|
+
createPattern(ui, paint, pixelRatio);
|
|
9201
9303
|
ui.forceUpdate('surface');
|
|
9202
9304
|
}), 300);
|
|
9203
9305
|
}
|
|
@@ -9261,14 +9363,16 @@ function linearGradient(paint, box) {
|
|
|
9261
9363
|
return data;
|
|
9262
9364
|
}
|
|
9263
9365
|
function applyStops(gradient, stops, opacity) {
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9366
|
+
if (stops) {
|
|
9367
|
+
let stop;
|
|
9368
|
+
for (let i = 0, len = stops.length; i < len; i++) {
|
|
9369
|
+
stop = stops[i];
|
|
9370
|
+
if (typeof stop === 'string') {
|
|
9371
|
+
gradient.addColorStop(i / (len - 1), ColorConvert.string(stop, opacity));
|
|
9372
|
+
}
|
|
9373
|
+
else {
|
|
9374
|
+
gradient.addColorStop(stop.offset, ColorConvert.string(stop.color, opacity));
|
|
9375
|
+
}
|
|
9272
9376
|
}
|
|
9273
9377
|
}
|
|
9274
9378
|
}
|
|
@@ -10024,10 +10128,15 @@ const TextConvertModule = {
|
|
|
10024
10128
|
};
|
|
10025
10129
|
|
|
10026
10130
|
function string(color, opacity) {
|
|
10027
|
-
|
|
10028
|
-
|
|
10131
|
+
const doOpacity = typeof opacity === 'number' && opacity !== 1;
|
|
10132
|
+
if (typeof color === 'string') {
|
|
10133
|
+
if (doOpacity && ColorConvert.object)
|
|
10134
|
+
color = ColorConvert.object(color);
|
|
10135
|
+
else
|
|
10136
|
+
return color;
|
|
10137
|
+
}
|
|
10029
10138
|
let a = color.a === undefined ? 1 : color.a;
|
|
10030
|
-
if (
|
|
10139
|
+
if (doOpacity)
|
|
10031
10140
|
a *= opacity;
|
|
10032
10141
|
const rgb = color.r + ',' + color.g + ',' + color.b;
|
|
10033
10142
|
return a === 1 ? 'rgb(' + rgb + ')' : 'rgba(' + rgb + ',' + a + ')';
|
|
@@ -10059,6 +10168,7 @@ const ExportModule = {
|
|
|
10059
10168
|
export(leaf, filename, options) {
|
|
10060
10169
|
this.running = true;
|
|
10061
10170
|
const fileType = FileHelper.fileType(filename);
|
|
10171
|
+
const isDownload = filename.includes('.');
|
|
10062
10172
|
options = FileHelper.getExportOptions(options);
|
|
10063
10173
|
return addTask((success) => new Promise((resolve) => {
|
|
10064
10174
|
const over = (result) => {
|
|
@@ -10068,19 +10178,13 @@ const ExportModule = {
|
|
|
10068
10178
|
};
|
|
10069
10179
|
const { toURL } = Platform;
|
|
10070
10180
|
const { download } = Platform.origin;
|
|
10071
|
-
if (
|
|
10072
|
-
|
|
10073
|
-
|
|
10074
|
-
else if (fileType === 'json') {
|
|
10075
|
-
download(toURL(JSON.stringify(leaf.toJSON(options.json)), 'text'), filename);
|
|
10076
|
-
return over({ data: true });
|
|
10181
|
+
if (fileType === 'json') {
|
|
10182
|
+
isDownload && download(toURL(JSON.stringify(leaf.toJSON(options.json)), 'text'), filename);
|
|
10183
|
+
return over({ data: isDownload ? true : leaf.toJSON(options.json) });
|
|
10077
10184
|
}
|
|
10078
|
-
if (
|
|
10079
|
-
|
|
10080
|
-
|
|
10081
|
-
else if (fileType === 'svg') {
|
|
10082
|
-
download(toURL(leaf.toSVG(), 'svg'), filename);
|
|
10083
|
-
return over({ data: true });
|
|
10185
|
+
if (fileType === 'svg') {
|
|
10186
|
+
isDownload && download(toURL(leaf.toSVG(), 'svg'), filename);
|
|
10187
|
+
return over({ data: isDownload ? true : leaf.toSVG() });
|
|
10084
10188
|
}
|
|
10085
10189
|
const { leafer } = leaf;
|
|
10086
10190
|
if (leafer) {
|
|
@@ -10089,14 +10193,8 @@ const ExportModule = {
|
|
|
10089
10193
|
let renderBounds, trimBounds, scaleX = 1, scaleY = 1;
|
|
10090
10194
|
const { worldTransform, isLeafer, isFrame } = leaf;
|
|
10091
10195
|
const { slice, trim, onCanvas } = options;
|
|
10092
|
-
let scale = options.scale || 1;
|
|
10093
|
-
let pixelRatio = options.pixelRatio || 1;
|
|
10094
10196
|
const smooth = options.smooth === undefined ? leafer.config.smooth : options.smooth;
|
|
10095
10197
|
const contextSettings = options.contextSettings || leafer.config.contextSettings;
|
|
10096
|
-
if (leaf.isApp) {
|
|
10097
|
-
scale *= pixelRatio;
|
|
10098
|
-
pixelRatio = leaf.app.pixelRatio;
|
|
10099
|
-
}
|
|
10100
10198
|
const screenshot = options.screenshot || leaf.isApp;
|
|
10101
10199
|
const fill = (isLeafer && screenshot) ? (options.fill === undefined ? leaf.fill : options.fill) : options.fill;
|
|
10102
10200
|
const needFill = FileHelper.isOpaqueImage(filename) || fill, matrix = new Matrix();
|
|
@@ -10130,9 +10228,17 @@ const ExportModule = {
|
|
|
10130
10228
|
}
|
|
10131
10229
|
renderBounds = leaf.getBounds('render', relative);
|
|
10132
10230
|
}
|
|
10133
|
-
const {
|
|
10231
|
+
const scaleData = { scaleX: 1, scaleY: 1 };
|
|
10232
|
+
MathHelper.getScaleData(options.scale, options.size, renderBounds, scaleData);
|
|
10233
|
+
let pixelRatio = options.pixelRatio || 1;
|
|
10234
|
+
if (leaf.isApp) {
|
|
10235
|
+
scaleData.scaleX *= pixelRatio;
|
|
10236
|
+
scaleData.scaleY *= pixelRatio;
|
|
10237
|
+
pixelRatio = leaf.app.pixelRatio;
|
|
10238
|
+
}
|
|
10239
|
+
const { x, y, width, height } = new Bounds(renderBounds).scale(scaleData.scaleX, scaleData.scaleY);
|
|
10240
|
+
const renderOptions = { matrix: matrix.scale(1 / scaleData.scaleX, 1 / scaleData.scaleY).invert().translate(-x, -y).withScale(1 / scaleX * scaleData.scaleX, 1 / scaleY * scaleData.scaleY) };
|
|
10134
10241
|
let canvas = Creator.canvas({ width: Math.round(width), height: Math.round(height), pixelRatio, smooth, contextSettings });
|
|
10135
|
-
const renderOptions = { matrix: matrix.scale(1 / scale).invert().translate(-x, -y).withScale(1 / scaleX * scale, 1 / scaleY * scale) };
|
|
10136
10242
|
let sliceLeaf;
|
|
10137
10243
|
if (slice) {
|
|
10138
10244
|
sliceLeaf = leaf;
|
|
@@ -10236,8 +10342,9 @@ Object.assign(Effect, EffectModule);
|
|
|
10236
10342
|
Object.assign(Export, ExportModule);
|
|
10237
10343
|
|
|
10238
10344
|
try {
|
|
10239
|
-
|
|
10345
|
+
if (wx)
|
|
10346
|
+
useCanvas('miniapp', wx);
|
|
10240
10347
|
}
|
|
10241
10348
|
catch (_a) { }
|
|
10242
10349
|
|
|
10243
|
-
export { AlignHelper,
|
|
10350
|
+
export { AlignHelper, 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, Eventer, 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, 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, isNull, layoutProcessor, maskType, naturalBoundsType, needPlugin, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds$1 as tempBounds, tempMatrix, tempPoint$3 as tempPoint, useCanvas, useModule, version, visibleType, zoomLayerType };
|