@leafer/core 1.0.0-rc.21 → 1.0.0-rc.23
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/lib/core.cjs +178 -108
- package/lib/core.esm.js +178 -109
- package/lib/core.esm.min.js +1 -1
- package/lib/core.min.cjs +1 -1
- package/package.json +18 -18
package/lib/core.esm.js
CHANGED
|
@@ -3,7 +3,7 @@ const Platform = {
|
|
|
3
3
|
hitCanvasSize: 100,
|
|
4
4
|
maxCacheSize: 2560 * 1600,
|
|
5
5
|
maxPatternSize: 4096 * 2160,
|
|
6
|
-
suffix: '
|
|
6
|
+
suffix: '',
|
|
7
7
|
crossOrigin: 'anonymous'
|
|
8
8
|
}
|
|
9
9
|
};
|
|
@@ -33,24 +33,12 @@ const I$1 = IncrementId;
|
|
|
33
33
|
const { round, pow: pow$1, PI: PI$2 } = Math;
|
|
34
34
|
const MathHelper = {
|
|
35
35
|
within(value, min, max) {
|
|
36
|
-
if (value < min)
|
|
36
|
+
if (min !== undefined && value < min)
|
|
37
37
|
value = min;
|
|
38
|
-
if (value > max)
|
|
38
|
+
if (max !== undefined && value > max)
|
|
39
39
|
value = max;
|
|
40
40
|
return value;
|
|
41
41
|
},
|
|
42
|
-
minus(value, isFourNumber) {
|
|
43
|
-
if (value instanceof Array) {
|
|
44
|
-
if (isFourNumber)
|
|
45
|
-
value = MathHelper.fourNumber(value, 0);
|
|
46
|
-
for (let i = 0; i < value.length; i++)
|
|
47
|
-
value[i] = -value[i];
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
value = -value;
|
|
51
|
-
}
|
|
52
|
-
return value;
|
|
53
|
-
},
|
|
54
42
|
fourNumber(num, maxValue) {
|
|
55
43
|
let data;
|
|
56
44
|
if (num instanceof Array) {
|
|
@@ -147,9 +135,11 @@ const MatrixHelper = {
|
|
|
147
135
|
t.e += x;
|
|
148
136
|
t.f += y;
|
|
149
137
|
},
|
|
150
|
-
translateInner(t, x, y) {
|
|
138
|
+
translateInner(t, x, y, isMoveOrigin) {
|
|
151
139
|
t.e += t.a * x + t.c * y;
|
|
152
140
|
t.f += t.b * x + t.d * y;
|
|
141
|
+
if (isMoveOrigin)
|
|
142
|
+
t.e -= x, t.f -= y;
|
|
153
143
|
},
|
|
154
144
|
scale(t, scaleX, scaleY = scaleX) {
|
|
155
145
|
t.a *= scaleX;
|
|
@@ -216,8 +206,10 @@ const MatrixHelper = {
|
|
|
216
206
|
t.e = child.e * a + child.f * c + e;
|
|
217
207
|
t.f = child.e * b + child.f * d + f;
|
|
218
208
|
},
|
|
219
|
-
multiplyParent(t, parent, to, abcdChanged, childScaleData) {
|
|
220
|
-
|
|
209
|
+
multiplyParent(t, parent, to, abcdChanged, childScaleData, scrollData) {
|
|
210
|
+
let { e, f } = t;
|
|
211
|
+
if (scrollData)
|
|
212
|
+
e += scrollData.scrollX, f += scrollData.scrollY;
|
|
221
213
|
to || (to = t);
|
|
222
214
|
if (abcdChanged === undefined)
|
|
223
215
|
abcdChanged = t.a !== 1 || t.b || t.c || t.d !== 1;
|
|
@@ -338,7 +330,7 @@ const MatrixHelper = {
|
|
|
338
330
|
t.e = x;
|
|
339
331
|
t.f = y;
|
|
340
332
|
if (origin)
|
|
341
|
-
M$6.translateInner(t, -origin.x, -origin.y);
|
|
333
|
+
M$6.translateInner(t, -origin.x, -origin.y, true);
|
|
342
334
|
},
|
|
343
335
|
getLayout(t, origin, firstSkewY) {
|
|
344
336
|
const { a, b, c, d, e, f } = t;
|
|
@@ -758,7 +750,7 @@ const { float, fourNumber } = MathHelper;
|
|
|
758
750
|
const { floor, ceil: ceil$1 } = Math;
|
|
759
751
|
let right, bottom, boundsRight, boundsBottom;
|
|
760
752
|
const point = {};
|
|
761
|
-
const toPoint$
|
|
753
|
+
const toPoint$2 = {};
|
|
762
754
|
const BoundsHelper = {
|
|
763
755
|
tempBounds: {},
|
|
764
756
|
set(t, x = 0, y = 0, width = 0, height = 0) {
|
|
@@ -773,15 +765,17 @@ const BoundsHelper = {
|
|
|
773
765
|
t.width = bounds.width;
|
|
774
766
|
t.height = bounds.height;
|
|
775
767
|
},
|
|
776
|
-
copyAndSpread(t, bounds,
|
|
777
|
-
if (
|
|
778
|
-
const four = fourNumber(
|
|
779
|
-
|
|
768
|
+
copyAndSpread(t, bounds, spread, isShrink) {
|
|
769
|
+
if (spread instanceof Array) {
|
|
770
|
+
const four = fourNumber(spread);
|
|
771
|
+
isShrink
|
|
772
|
+
? B.set(t, bounds.x + four[3], bounds.y + four[0], bounds.width - four[1] - four[3], bounds.height - four[2] - four[0])
|
|
773
|
+
: B.set(t, bounds.x - four[3], bounds.y - four[0], bounds.width + four[1] + four[3], bounds.height + four[2] + four[0]);
|
|
780
774
|
}
|
|
781
775
|
else {
|
|
782
|
-
if (
|
|
783
|
-
|
|
784
|
-
B.set(t, bounds.x -
|
|
776
|
+
if (isShrink)
|
|
777
|
+
spread = -spread;
|
|
778
|
+
B.set(t, bounds.x - spread, bounds.y - spread, bounds.width + spread * 2, bounds.height + spread * 2);
|
|
785
779
|
}
|
|
786
780
|
},
|
|
787
781
|
minX(t) { return t.width > 0 ? t.x : t.x + t.width; },
|
|
@@ -858,17 +852,17 @@ const BoundsHelper = {
|
|
|
858
852
|
else {
|
|
859
853
|
point.x = t.x;
|
|
860
854
|
point.y = t.y;
|
|
861
|
-
toOuterPoint$1(matrix, point, toPoint$
|
|
862
|
-
setPoint$2(tempPointBounds$1, toPoint$
|
|
855
|
+
toOuterPoint$1(matrix, point, toPoint$2);
|
|
856
|
+
setPoint$2(tempPointBounds$1, toPoint$2.x, toPoint$2.y);
|
|
863
857
|
point.x = t.x + t.width;
|
|
864
|
-
toOuterPoint$1(matrix, point, toPoint$
|
|
865
|
-
addPoint$2(tempPointBounds$1, toPoint$
|
|
858
|
+
toOuterPoint$1(matrix, point, toPoint$2);
|
|
859
|
+
addPoint$2(tempPointBounds$1, toPoint$2.x, toPoint$2.y);
|
|
866
860
|
point.y = t.y + t.height;
|
|
867
|
-
toOuterPoint$1(matrix, point, toPoint$
|
|
868
|
-
addPoint$2(tempPointBounds$1, toPoint$
|
|
861
|
+
toOuterPoint$1(matrix, point, toPoint$2);
|
|
862
|
+
addPoint$2(tempPointBounds$1, toPoint$2.x, toPoint$2.y);
|
|
869
863
|
point.x = t.x;
|
|
870
|
-
toOuterPoint$1(matrix, point, toPoint$
|
|
871
|
-
addPoint$2(tempPointBounds$1, toPoint$
|
|
864
|
+
toOuterPoint$1(matrix, point, toPoint$2);
|
|
865
|
+
addPoint$2(tempPointBounds$1, toPoint$2.x, toPoint$2.y);
|
|
872
866
|
toBounds$2(tempPointBounds$1, to);
|
|
873
867
|
}
|
|
874
868
|
},
|
|
@@ -881,13 +875,16 @@ const BoundsHelper = {
|
|
|
881
875
|
const scale = Math.min(baseScale, Math.min(t.width / put.width, t.height / put.height));
|
|
882
876
|
return new Matrix(scale, 0, 0, scale, -put.x * scale, -put.y * scale);
|
|
883
877
|
},
|
|
884
|
-
getSpread(t,
|
|
878
|
+
getSpread(t, spread) {
|
|
885
879
|
const n = {};
|
|
886
|
-
B.copyAndSpread(n, t,
|
|
880
|
+
B.copyAndSpread(n, t, spread);
|
|
887
881
|
return n;
|
|
888
882
|
},
|
|
889
|
-
spread(t,
|
|
890
|
-
B.copyAndSpread(t, t,
|
|
883
|
+
spread(t, spread) {
|
|
884
|
+
B.copyAndSpread(t, t, spread);
|
|
885
|
+
},
|
|
886
|
+
shrink(t, shrink) {
|
|
887
|
+
B.copyAndSpread(t, t, shrink, true);
|
|
891
888
|
},
|
|
892
889
|
ceil(t) {
|
|
893
890
|
const { x, y } = t;
|
|
@@ -1067,12 +1064,12 @@ class Bounds {
|
|
|
1067
1064
|
getFitMatrix(put, baseScale) {
|
|
1068
1065
|
return BoundsHelper.getFitMatrix(this, put, baseScale);
|
|
1069
1066
|
}
|
|
1070
|
-
spread(fourNumber
|
|
1071
|
-
BoundsHelper.spread(this, fourNumber
|
|
1067
|
+
spread(fourNumber) {
|
|
1068
|
+
BoundsHelper.spread(this, fourNumber);
|
|
1072
1069
|
return this;
|
|
1073
1070
|
}
|
|
1074
1071
|
shrink(fourNumber) {
|
|
1075
|
-
BoundsHelper.
|
|
1072
|
+
BoundsHelper.shrink(this, fourNumber);
|
|
1076
1073
|
return this;
|
|
1077
1074
|
}
|
|
1078
1075
|
ceil() {
|
|
@@ -1189,6 +1186,10 @@ var Direction9;
|
|
|
1189
1186
|
Direction9[Direction9["bottomLeft"] = 6] = "bottomLeft";
|
|
1190
1187
|
Direction9[Direction9["left"] = 7] = "left";
|
|
1191
1188
|
Direction9[Direction9["center"] = 8] = "center";
|
|
1189
|
+
Direction9[Direction9["top-left"] = 0] = "top-left";
|
|
1190
|
+
Direction9[Direction9["top-right"] = 2] = "top-right";
|
|
1191
|
+
Direction9[Direction9["bottom-right"] = 4] = "bottom-right";
|
|
1192
|
+
Direction9[Direction9["bottom-left"] = 6] = "bottom-left";
|
|
1192
1193
|
})(Direction9 || (Direction9 = {}));
|
|
1193
1194
|
|
|
1194
1195
|
const directionData = [
|
|
@@ -1202,15 +1203,28 @@ const directionData = [
|
|
|
1202
1203
|
{ x: 0, y: 0.5 },
|
|
1203
1204
|
{ x: 0.5, y: 0.5 }
|
|
1204
1205
|
];
|
|
1206
|
+
directionData.forEach(item => item.type = 'percent');
|
|
1205
1207
|
const AroundHelper = {
|
|
1206
1208
|
directionData,
|
|
1207
1209
|
tempPoint: {},
|
|
1208
1210
|
get,
|
|
1209
|
-
toPoint(around, bounds, to, onlySize) {
|
|
1211
|
+
toPoint(around, bounds, to, onlySize, pointBounds) {
|
|
1210
1212
|
to || (to = {});
|
|
1211
1213
|
const point = get(around);
|
|
1212
|
-
to.x = point.x
|
|
1213
|
-
to.y = point.y
|
|
1214
|
+
to.x = point.x;
|
|
1215
|
+
to.y = point.y;
|
|
1216
|
+
if (point.type === 'percent') {
|
|
1217
|
+
to.x *= bounds.width;
|
|
1218
|
+
to.y *= bounds.height;
|
|
1219
|
+
if (pointBounds) {
|
|
1220
|
+
to.x -= pointBounds.x;
|
|
1221
|
+
to.y -= pointBounds.y;
|
|
1222
|
+
if (point.x)
|
|
1223
|
+
to.x -= (point.x === 1) ? pointBounds.width : (point.x === 0.5 ? point.x * pointBounds.width : 0);
|
|
1224
|
+
if (point.y)
|
|
1225
|
+
to.y -= (point.y === 1) ? pointBounds.height : (point.y === 0.5 ? point.y * pointBounds.height : 0);
|
|
1226
|
+
}
|
|
1227
|
+
}
|
|
1214
1228
|
if (!onlySize) {
|
|
1215
1229
|
to.x += bounds.x;
|
|
1216
1230
|
to.y += bounds.y;
|
|
@@ -1221,6 +1235,13 @@ function get(around) {
|
|
|
1221
1235
|
return typeof around === 'string' ? directionData[Direction9[around]] : around;
|
|
1222
1236
|
}
|
|
1223
1237
|
|
|
1238
|
+
const { toPoint: toPoint$1 } = AroundHelper;
|
|
1239
|
+
const AlignHelper = {
|
|
1240
|
+
toPoint(align, contentBounds, bounds, to, onlySize) {
|
|
1241
|
+
toPoint$1(align, bounds, to, onlySize, contentBounds);
|
|
1242
|
+
}
|
|
1243
|
+
};
|
|
1244
|
+
|
|
1224
1245
|
const StringNumberMap = {
|
|
1225
1246
|
'0': 1,
|
|
1226
1247
|
'1': 1,
|
|
@@ -1453,13 +1474,19 @@ const DataHelper = {
|
|
|
1453
1474
|
},
|
|
1454
1475
|
clone(data) {
|
|
1455
1476
|
return JSON.parse(JSON.stringify(data));
|
|
1477
|
+
},
|
|
1478
|
+
toMap(list) {
|
|
1479
|
+
const map = {};
|
|
1480
|
+
for (let i = 0, len = list.length; i < len; i++)
|
|
1481
|
+
map[list[i]] = true;
|
|
1482
|
+
return map;
|
|
1456
1483
|
}
|
|
1457
1484
|
};
|
|
1458
1485
|
const { assign } = DataHelper;
|
|
1459
1486
|
|
|
1460
1487
|
class LeafData {
|
|
1461
1488
|
get __blendMode() {
|
|
1462
|
-
if (this.eraser)
|
|
1489
|
+
if (this.eraser && this.eraser !== 'path')
|
|
1463
1490
|
return 'destination-out';
|
|
1464
1491
|
const { blendMode } = this;
|
|
1465
1492
|
return blendMode === 'pass-through' ? null : blendMode;
|
|
@@ -2089,7 +2116,7 @@ class LeaferCanvasBase extends Canvas {
|
|
|
2089
2116
|
}
|
|
2090
2117
|
clear() {
|
|
2091
2118
|
const { pixelRatio } = this;
|
|
2092
|
-
this.clearRect(0, 0, this.width * pixelRatio, this.height * pixelRatio);
|
|
2119
|
+
this.clearRect(0, 0, this.width * pixelRatio + 2, this.height * pixelRatio + 2);
|
|
2093
2120
|
}
|
|
2094
2121
|
isSameSize(size) {
|
|
2095
2122
|
return this.width === size.width && this.height === size.height && this.pixelRatio === size.pixelRatio;
|
|
@@ -3745,6 +3772,8 @@ function maskType(defaultValue) {
|
|
|
3745
3772
|
this.__setAttr(key, value);
|
|
3746
3773
|
this.__layout.boxChanged || this.__layout.boxChange();
|
|
3747
3774
|
this.waitParent(() => { this.parent.__updateMask(value); });
|
|
3775
|
+
if (typeof value === 'string')
|
|
3776
|
+
this.maskType = value;
|
|
3748
3777
|
}
|
|
3749
3778
|
}));
|
|
3750
3779
|
}
|
|
@@ -3956,15 +3985,21 @@ const LeafHelper = {
|
|
|
3956
3985
|
}
|
|
3957
3986
|
return true;
|
|
3958
3987
|
},
|
|
3959
|
-
moveWorld(t, x, y) {
|
|
3960
|
-
const local = { x, y };
|
|
3988
|
+
moveWorld(t, x, y = 0) {
|
|
3989
|
+
const local = typeof x === 'object' ? Object.assign({}, x) : { x, y };
|
|
3961
3990
|
if (t.parent)
|
|
3962
3991
|
toInnerPoint$1(t.parent.worldTransform, local, local, true);
|
|
3963
3992
|
L.moveLocal(t, local.x, local.y);
|
|
3964
3993
|
},
|
|
3965
3994
|
moveLocal(t, x, y = 0) {
|
|
3966
|
-
|
|
3967
|
-
|
|
3995
|
+
if (typeof x === 'object') {
|
|
3996
|
+
t.x += x.x;
|
|
3997
|
+
t.y += x.y;
|
|
3998
|
+
}
|
|
3999
|
+
else {
|
|
4000
|
+
t.x += x;
|
|
4001
|
+
t.y += y;
|
|
4002
|
+
}
|
|
3968
4003
|
},
|
|
3969
4004
|
zoomOfWorld(t, origin, scaleX, scaleY, resize) {
|
|
3970
4005
|
L.zoomOfLocal(t, getTempLocal(t, origin), scaleX, scaleY, resize);
|
|
@@ -4168,11 +4203,19 @@ const WaitHelper = {
|
|
|
4168
4203
|
|
|
4169
4204
|
const { getRelativeWorld: getRelativeWorld$1 } = LeafHelper;
|
|
4170
4205
|
const { toOuterOf: toOuterOf$2, getPoints, copy: copy$2 } = BoundsHelper;
|
|
4206
|
+
const localContent = '_localContentBounds';
|
|
4207
|
+
const worldContent = '_worldContentBounds', worldBox = '_worldBoxBounds', worldStroke = '_worldStrokeBounds';
|
|
4171
4208
|
class LeafLayout {
|
|
4209
|
+
get contentBounds() { return this._contentBounds || this.boxBounds; }
|
|
4210
|
+
set contentBounds(bounds) { this._contentBounds = bounds; }
|
|
4172
4211
|
get strokeBounds() { return this._strokeBounds || this.boxBounds; }
|
|
4173
4212
|
get renderBounds() { return this._renderBounds || this.boxBounds; }
|
|
4213
|
+
get localContentBounds() { toOuterOf$2(this.contentBounds, this.leaf.__localMatrix, this[localContent] || (this[localContent] = {})); return this[localContent]; }
|
|
4174
4214
|
get localStrokeBounds() { return this._localStrokeBounds || this; }
|
|
4175
4215
|
get localRenderBounds() { return this._localRenderBounds || this; }
|
|
4216
|
+
get worldContentBounds() { toOuterOf$2(this.contentBounds, this.leaf.__world, this[worldContent] || (this[worldContent] = {})); return this[worldContent]; }
|
|
4217
|
+
get worldBoxBounds() { toOuterOf$2(this.boxBounds, this.leaf.__world, this[worldBox] || (this[worldBox] = {})); return this[worldBox]; }
|
|
4218
|
+
get worldStrokeBounds() { toOuterOf$2(this.strokeBounds, this.leaf.__world, this[worldStroke] || (this[worldStroke] = {})); return this[worldStroke]; }
|
|
4176
4219
|
get a() { return 1; }
|
|
4177
4220
|
get b() { return 0; }
|
|
4178
4221
|
get c() { return 0; }
|
|
@@ -4255,7 +4298,6 @@ class LeafLayout {
|
|
|
4255
4298
|
case 'content':
|
|
4256
4299
|
if (this.contentBounds)
|
|
4257
4300
|
return this.contentBounds;
|
|
4258
|
-
case 'margin':
|
|
4259
4301
|
case 'box':
|
|
4260
4302
|
return this.boxBounds;
|
|
4261
4303
|
case 'stroke':
|
|
@@ -4268,8 +4310,9 @@ class LeafLayout {
|
|
|
4268
4310
|
return this.localRenderBounds;
|
|
4269
4311
|
case 'stroke':
|
|
4270
4312
|
return this.localStrokeBounds;
|
|
4271
|
-
case 'margin':
|
|
4272
4313
|
case 'content':
|
|
4314
|
+
if (this.contentBounds)
|
|
4315
|
+
return this.localContentBounds;
|
|
4273
4316
|
case 'box':
|
|
4274
4317
|
return this.leaf.__localBoxBounds;
|
|
4275
4318
|
}
|
|
@@ -4278,15 +4321,13 @@ class LeafLayout {
|
|
|
4278
4321
|
switch (type) {
|
|
4279
4322
|
case 'render':
|
|
4280
4323
|
return this.leaf.__world;
|
|
4324
|
+
case 'stroke':
|
|
4325
|
+
return this.worldStrokeBounds;
|
|
4281
4326
|
case 'content':
|
|
4282
4327
|
if (this.contentBounds)
|
|
4283
|
-
return this.
|
|
4284
|
-
case 'margin':
|
|
4328
|
+
return this.worldContentBounds;
|
|
4285
4329
|
case 'box':
|
|
4286
|
-
return this.
|
|
4287
|
-
case 'margin':
|
|
4288
|
-
case 'stroke':
|
|
4289
|
-
return this.getWorldStrokeBounds();
|
|
4330
|
+
return this.worldBoxBounds;
|
|
4290
4331
|
}
|
|
4291
4332
|
}
|
|
4292
4333
|
getLayoutBounds(type, relative = 'world', unscale) {
|
|
@@ -4349,20 +4390,24 @@ class LeafLayout {
|
|
|
4349
4390
|
points.forEach(point => leaf.innerToWorld(point, null, false, relativeLeaf));
|
|
4350
4391
|
return points;
|
|
4351
4392
|
}
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4393
|
+
shrinkContent() {
|
|
4394
|
+
const { x, y, width, height } = this.boxBounds;
|
|
4395
|
+
this._contentBounds = { x, y, width, height };
|
|
4396
|
+
}
|
|
4397
|
+
spreadStroke() {
|
|
4398
|
+
const { x, y, width, height } = this.strokeBounds;
|
|
4399
|
+
this._strokeBounds = { x, y, width, height };
|
|
4400
|
+
this._localStrokeBounds = { x, y, width, height };
|
|
4401
|
+
if (!this.renderSpread)
|
|
4402
|
+
this.spreadRenderCancel();
|
|
4356
4403
|
}
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4404
|
+
spreadRender() {
|
|
4405
|
+
const { x, y, width, height } = this.renderBounds;
|
|
4406
|
+
this._renderBounds = { x, y, width, height };
|
|
4407
|
+
this._localRenderBounds = { x, y, width, height };
|
|
4361
4408
|
}
|
|
4362
|
-
|
|
4363
|
-
this.
|
|
4364
|
-
toOuterOf$2(this.strokeBounds, this.leaf.__world, this._worldStrokeBounds);
|
|
4365
|
-
return this._worldStrokeBounds;
|
|
4409
|
+
shrinkContentCancel() {
|
|
4410
|
+
this._contentBounds = undefined;
|
|
4366
4411
|
}
|
|
4367
4412
|
spreadStrokeCancel() {
|
|
4368
4413
|
const same = this.renderBounds === this.strokeBounds;
|
|
@@ -4375,18 +4420,6 @@ class LeafLayout {
|
|
|
4375
4420
|
this._renderBounds = this._strokeBounds;
|
|
4376
4421
|
this._localRenderBounds = this._localStrokeBounds;
|
|
4377
4422
|
}
|
|
4378
|
-
spreadStroke() {
|
|
4379
|
-
const { x, y, width, height } = this.strokeBounds;
|
|
4380
|
-
this._strokeBounds = { x, y, width, height };
|
|
4381
|
-
this._localStrokeBounds = { x, y, width, height };
|
|
4382
|
-
if (!this.renderSpread)
|
|
4383
|
-
this.spreadRenderCancel();
|
|
4384
|
-
}
|
|
4385
|
-
spreadRender() {
|
|
4386
|
-
const { x, y, width, height } = this.renderBounds;
|
|
4387
|
-
this._renderBounds = { x, y, width, height };
|
|
4388
|
-
this._localRenderBounds = { x, y, width, height };
|
|
4389
|
-
}
|
|
4390
4423
|
boxChange() {
|
|
4391
4424
|
this.boxChanged = true;
|
|
4392
4425
|
this.localBoxChanged || this.localBoxChange();
|
|
@@ -4473,24 +4506,40 @@ const LeafEventer = {
|
|
|
4473
4506
|
});
|
|
4474
4507
|
},
|
|
4475
4508
|
off(type, listener, options) {
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4509
|
+
if (type) {
|
|
4510
|
+
const typeList = typeof type === 'string' ? type.split(' ') : type;
|
|
4511
|
+
if (listener) {
|
|
4512
|
+
let capture;
|
|
4513
|
+
if (options)
|
|
4514
|
+
capture = typeof options === 'boolean' ? options : options.capture;
|
|
4515
|
+
let events, index;
|
|
4516
|
+
const map = __getListenerMap(this, capture);
|
|
4517
|
+
typeList.forEach(type => {
|
|
4518
|
+
if (type) {
|
|
4519
|
+
events = map[type];
|
|
4520
|
+
if (events) {
|
|
4521
|
+
index = events.findIndex(item => item.listener === listener);
|
|
4522
|
+
if (index > -1)
|
|
4523
|
+
events.splice(index, 1);
|
|
4524
|
+
if (!events.length)
|
|
4525
|
+
delete map[type];
|
|
4526
|
+
}
|
|
4527
|
+
}
|
|
4528
|
+
});
|
|
4492
4529
|
}
|
|
4493
|
-
|
|
4530
|
+
else {
|
|
4531
|
+
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4532
|
+
typeList.forEach(type => {
|
|
4533
|
+
if (b)
|
|
4534
|
+
delete b[type];
|
|
4535
|
+
if (c)
|
|
4536
|
+
delete c[type];
|
|
4537
|
+
});
|
|
4538
|
+
}
|
|
4539
|
+
}
|
|
4540
|
+
else {
|
|
4541
|
+
this.__bubbleMap = this.__captureMap = undefined;
|
|
4542
|
+
}
|
|
4494
4543
|
},
|
|
4495
4544
|
on_(type, listener, bind, options) {
|
|
4496
4545
|
if (bind)
|
|
@@ -4526,12 +4575,15 @@ const LeafEventer = {
|
|
|
4526
4575
|
break;
|
|
4527
4576
|
}
|
|
4528
4577
|
}
|
|
4578
|
+
this.syncEventer && this.syncEventer.emitEvent(event, capture);
|
|
4529
4579
|
},
|
|
4530
4580
|
emitEvent(event, capture) {
|
|
4531
4581
|
event.current = this;
|
|
4532
4582
|
this.emit(event.type, event, capture);
|
|
4533
4583
|
},
|
|
4534
4584
|
hasEvent(type, capture) {
|
|
4585
|
+
if (this.syncEventer && this.syncEventer.hasEvent(type, capture))
|
|
4586
|
+
return true;
|
|
4535
4587
|
const { __bubbleMap: b, __captureMap: c } = this;
|
|
4536
4588
|
const hasB = b && b[type], hasC = c && c[type];
|
|
4537
4589
|
return !!(capture === undefined ? (hasB || hasC) : (capture ? hasC : hasB));
|
|
@@ -4754,7 +4806,7 @@ const { setLayout, multiplyParent: multiplyParent$1, translateInner, defaultWorl
|
|
|
4754
4806
|
const { toPoint, tempPoint } = AroundHelper;
|
|
4755
4807
|
const LeafMatrix = {
|
|
4756
4808
|
__updateWorldMatrix() {
|
|
4757
|
-
multiplyParent$1(this.__local || this.__layout, this.parent ? this.parent.__world : defaultWorld, this.__world, !!this.__layout.affectScaleOrRotation, this.__);
|
|
4809
|
+
multiplyParent$1(this.__local || this.__layout, this.parent ? this.parent.__world : defaultWorld, this.__world, !!this.__layout.affectScaleOrRotation, this.__, this.parent && this.parent.__);
|
|
4758
4810
|
},
|
|
4759
4811
|
__updateLocalMatrix() {
|
|
4760
4812
|
if (this.__local) {
|
|
@@ -4765,11 +4817,11 @@ const LeafMatrix = {
|
|
|
4765
4817
|
layout.scaleChanged = layout.rotationChanged = false;
|
|
4766
4818
|
}
|
|
4767
4819
|
}
|
|
4768
|
-
local.e = data.x;
|
|
4769
|
-
local.f = data.y;
|
|
4770
|
-
if (data.around) {
|
|
4771
|
-
toPoint(data.around, layout.boxBounds, tempPoint);
|
|
4772
|
-
translateInner(local, -tempPoint.x, -tempPoint.y);
|
|
4820
|
+
local.e = data.x + data.offsetX;
|
|
4821
|
+
local.f = data.y + data.offsetY;
|
|
4822
|
+
if (data.around || data.origin) {
|
|
4823
|
+
toPoint(data.around || data.origin, layout.boxBounds, tempPoint);
|
|
4824
|
+
translateInner(local, -tempPoint.x, -tempPoint.y, data.origin);
|
|
4773
4825
|
}
|
|
4774
4826
|
}
|
|
4775
4827
|
this.__layout.matrixChanged = false;
|
|
@@ -4875,6 +4927,8 @@ const LeafBounds = {
|
|
|
4875
4927
|
if (this.isBranch) {
|
|
4876
4928
|
if (this.leafer)
|
|
4877
4929
|
this.leafer.layouter.addExtra(this);
|
|
4930
|
+
if (this.__.flow)
|
|
4931
|
+
this.__updateFlowLayout();
|
|
4878
4932
|
if (hasParentAutoLayout(this)) {
|
|
4879
4933
|
updateMatrix(this);
|
|
4880
4934
|
}
|
|
@@ -4907,6 +4961,8 @@ const LeafRender = {
|
|
|
4907
4961
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
4908
4962
|
canvas.opacity = this.__.opacity;
|
|
4909
4963
|
if (this.__.__single) {
|
|
4964
|
+
if (this.__.eraser === 'path')
|
|
4965
|
+
return this.__renderEraser(canvas, options);
|
|
4910
4966
|
const tempCanvas = canvas.getSameCanvas(true, true);
|
|
4911
4967
|
this.__draw(tempCanvas, options);
|
|
4912
4968
|
if (this.__worldFlipped) {
|
|
@@ -4949,6 +5005,8 @@ const BranchRender = {
|
|
|
4949
5005
|
__render(canvas, options) {
|
|
4950
5006
|
if (this.__worldOpacity) {
|
|
4951
5007
|
if (this.__.__single) {
|
|
5008
|
+
if (this.__.eraser === 'path')
|
|
5009
|
+
return this.__renderEraser(canvas, options);
|
|
4952
5010
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
4953
5011
|
this.__renderBranch(tempCanvas, options);
|
|
4954
5012
|
const nowWorld = this.__getNowWorld(options);
|
|
@@ -5088,7 +5146,9 @@ let Leaf = class Leaf {
|
|
|
5088
5146
|
setProxyAttr(_attrName, _newValue) { }
|
|
5089
5147
|
getProxyAttr(_attrName) { return undefined; }
|
|
5090
5148
|
find(_condition, _options) { return undefined; }
|
|
5149
|
+
findTag(_tag) { return undefined; }
|
|
5091
5150
|
findOne(_condition, _options) { return undefined; }
|
|
5151
|
+
findId(_id) { return undefined; }
|
|
5092
5152
|
focus(_value) { }
|
|
5093
5153
|
forceUpdate(attrName) {
|
|
5094
5154
|
if (attrName === undefined)
|
|
@@ -5110,9 +5170,11 @@ let Leaf = class Leaf {
|
|
|
5110
5170
|
__updateLocalStrokeBounds() { }
|
|
5111
5171
|
__updateLocalRenderBounds() { }
|
|
5112
5172
|
__updateBoxBounds() { }
|
|
5173
|
+
__updateContentBounds() { }
|
|
5113
5174
|
__updateStrokeBounds() { }
|
|
5114
5175
|
__updateRenderBounds() { }
|
|
5115
5176
|
__updateAutoLayout() { }
|
|
5177
|
+
__updateFlowLayout() { }
|
|
5116
5178
|
__updateNaturalSize() { }
|
|
5117
5179
|
__updateStrokeSpread() { return 0; }
|
|
5118
5180
|
__updateRenderSpread() { return 0; }
|
|
@@ -5120,6 +5182,13 @@ let Leaf = class Leaf {
|
|
|
5120
5182
|
__updateEraser(value) {
|
|
5121
5183
|
this.__hasEraser = value ? true : this.children.some(item => item.__.eraser);
|
|
5122
5184
|
}
|
|
5185
|
+
__renderEraser(canvas, options) {
|
|
5186
|
+
canvas.save();
|
|
5187
|
+
this.__clip(canvas, options);
|
|
5188
|
+
const { renderBounds: r } = this.__layout;
|
|
5189
|
+
canvas.clearRect(r.x, r.y, r.width, r.height);
|
|
5190
|
+
canvas.restore();
|
|
5191
|
+
}
|
|
5123
5192
|
__updateMask(value) {
|
|
5124
5193
|
this.__hasMask = value ? true : this.children.some(item => item.__.mask);
|
|
5125
5194
|
}
|
|
@@ -5300,8 +5369,8 @@ let Leaf = class Leaf {
|
|
|
5300
5369
|
emit(_type, _event, _capture) { }
|
|
5301
5370
|
emitEvent(_event, _capture) { }
|
|
5302
5371
|
hasEvent(_type, _capture) { return false; }
|
|
5303
|
-
static changeAttr(attrName, defaultValue) {
|
|
5304
|
-
defineDataProcessor(this.prototype, attrName, defaultValue);
|
|
5372
|
+
static changeAttr(attrName, defaultValue, fn) {
|
|
5373
|
+
fn ? this.addAttr(attrName, defaultValue, fn) : defineDataProcessor(this.prototype, attrName, defaultValue);
|
|
5305
5374
|
}
|
|
5306
5375
|
static addAttr(attrName, defaultValue, fn) {
|
|
5307
5376
|
if (!fn)
|
|
@@ -5615,4 +5684,4 @@ class LeafLevelList {
|
|
|
5615
5684
|
}
|
|
5616
5685
|
}
|
|
5617
5686
|
|
|
5618
|
-
export { AnimateEvent, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Branch, BranchHelper, BranchRender, CanvasManager, ChildEvent, Creator, DataHelper, Debug, Direction4, Direction9, EllipseHelper, Event, EventCreator, FileHelper, ImageEvent, ImageManager, IncrementId, LayoutEvent, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, LeaferCanvasBase, LeaferEvent, LeaferImage, MathHelper, Matrix, MatrixHelper, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Platform, Point, PointHelper, PropertyEvent, RectHelper, RenderEvent, ResizeEvent, Run, StringNumberMap, TaskItem, TaskProcessor, TwoPointBoundsHelper, UICreator, WaitHelper, WatchEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds, tempMatrix, tempPoint$2 as tempPoint, useModule };
|
|
5687
|
+
export { AlignHelper, AnimateEvent, Answer, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsHelper, Branch, BranchHelper, BranchRender, CanvasManager, ChildEvent, Creator, DataHelper, Debug, Direction4, Direction9, EllipseHelper, Event, EventCreator, FileHelper, ImageEvent, ImageManager, IncrementId, LayoutEvent, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, LeaferCanvasBase, LeaferEvent, LeaferImage, MathHelper, Matrix, MatrixHelper, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, PathBounds, PathCommandDataHelper, PathCommandMap, PathConvert, PathCorner, PathCreator, PathDrawer, PathHelper, PathNumberCommandLengthMap, PathNumberCommandMap, Platform, Point, PointHelper, PropertyEvent, RectHelper, RenderEvent, ResizeEvent, Run, StringNumberMap, TaskItem, TaskProcessor, TwoPointBoundsHelper, UICreator, WaitHelper, WatchEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, doBoundsType, doStrokeType, emptyData, eraserType, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, layoutProcessor, maskType, naturalBoundsType, opacityType, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, rewrite, rewriteAble, rotationType, scaleType, sortType, strokeType, surfaceType, tempBounds, tempMatrix, tempPoint$2 as tempPoint, useModule };
|