@leafer-ui/worker 2.0.1 → 2.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/worker.cjs +97 -68
- package/dist/worker.esm.js +85 -70
- package/dist/worker.esm.min.js +1 -1
- package/dist/worker.esm.min.js.map +1 -1
- package/dist/worker.js +237 -129
- package/dist/worker.min.cjs +1 -1
- package/dist/worker.min.cjs.map +1 -1
- package/dist/worker.min.js +1 -1
- package/dist/worker.min.js.map +1 -1
- package/dist/worker.module.js +244 -135
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +9 -11
- package/src/index.ts +2 -2
- package/types/index.d.ts +1 -8
- package/src/core.ts +0 -86
package/dist/worker.module.js
CHANGED
|
@@ -7,6 +7,45 @@ var PathNodeHandleType;
|
|
|
7
7
|
PathNodeHandleType[PathNodeHandleType["mirror"] = 4] = "mirror";
|
|
8
8
|
})(PathNodeHandleType || (PathNodeHandleType = {}));
|
|
9
9
|
|
|
10
|
+
function __decorate(decorators, target, key, desc) {
|
|
11
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
12
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
13
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
17
|
+
function adopt(value) {
|
|
18
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
19
|
+
resolve(value);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
23
|
+
function fulfilled(value) {
|
|
24
|
+
try {
|
|
25
|
+
step(generator.next(value));
|
|
26
|
+
} catch (e) {
|
|
27
|
+
reject(e);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function rejected(value) {
|
|
31
|
+
try {
|
|
32
|
+
step(generator["throw"](value));
|
|
33
|
+
} catch (e) {
|
|
34
|
+
reject(e);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function step(result) {
|
|
38
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
39
|
+
}
|
|
40
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
45
|
+
var e = new Error(message);
|
|
46
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
47
|
+
};
|
|
48
|
+
|
|
10
49
|
var Answer;
|
|
11
50
|
|
|
12
51
|
(function(Answer) {
|
|
@@ -213,6 +252,7 @@ class LeafData {
|
|
|
213
252
|
}
|
|
214
253
|
destroy() {
|
|
215
254
|
this.__input = this.__middle = null;
|
|
255
|
+
if (this.__complexData) this.__complexData.destroy();
|
|
216
256
|
}
|
|
217
257
|
}
|
|
218
258
|
|
|
@@ -311,6 +351,8 @@ const {set: set$2, get: get$5, setTemp: setTemp, toTempAB: toTempAB} = FourNumbe
|
|
|
311
351
|
|
|
312
352
|
const {round: round$3, pow: pow$1, max: max$4, floor: floor$2, PI: PI$3} = Math;
|
|
313
353
|
|
|
354
|
+
const tempScaleData$1 = {};
|
|
355
|
+
|
|
314
356
|
const MathHelper = {
|
|
315
357
|
within(value, min, max) {
|
|
316
358
|
if (isObject(min)) max = min.max, min = min.min;
|
|
@@ -354,6 +396,24 @@ const MathHelper = {
|
|
|
354
396
|
} else if (scale) MathHelper.assignScale(scaleData, scale);
|
|
355
397
|
return scaleData;
|
|
356
398
|
},
|
|
399
|
+
getScaleFixedData(worldScaleData, scaleFixed, unscale, abs, _localScaleData) {
|
|
400
|
+
let {scaleX: scaleX, scaleY: scaleY} = worldScaleData;
|
|
401
|
+
if (abs || scaleFixed) scaleX < 0 && (scaleX = -scaleX), scaleY < 0 && (scaleY = -scaleY);
|
|
402
|
+
if (scaleFixed) {
|
|
403
|
+
if (scaleFixed === true) {
|
|
404
|
+
scaleX = scaleY = unscale ? 1 : 1 / scaleX;
|
|
405
|
+
} else {
|
|
406
|
+
let minScale;
|
|
407
|
+
if (isNumber(scaleFixed)) minScale = scaleFixed; else if (scaleFixed === "zoom-in") minScale = 1;
|
|
408
|
+
if (minScale) {
|
|
409
|
+
if (scaleX > minScale || scaleY > minScale) scaleX = scaleY = unscale ? 1 : 1 / scaleX; else scaleX = scaleY = unscale ? 1 : 1 / minScale;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
tempScaleData$1.scaleX = scaleX;
|
|
414
|
+
tempScaleData$1.scaleY = scaleY;
|
|
415
|
+
return tempScaleData$1;
|
|
416
|
+
},
|
|
357
417
|
assignScale(scaleData, scale) {
|
|
358
418
|
if (isNumber(scale)) {
|
|
359
419
|
scaleData.scaleX = scaleData.scaleY = scale;
|
|
@@ -850,8 +910,8 @@ const PointHelper = {
|
|
|
850
910
|
if (isObject(originPoints[0])) points = [], originPoints.forEach(p => points.push(p.x, p.y));
|
|
851
911
|
return points;
|
|
852
912
|
},
|
|
853
|
-
isSame(t, point) {
|
|
854
|
-
return float$2(t.x) === float$2(point.x) && float$2(t.y) === float$2(point.y);
|
|
913
|
+
isSame(t, point, quick) {
|
|
914
|
+
return quick ? t.x === point.x && t.y === point.y : float$2(t.x) === float$2(point.x) && float$2(t.y) === float$2(point.y);
|
|
855
915
|
},
|
|
856
916
|
reset(t) {
|
|
857
917
|
P$5.reset(t);
|
|
@@ -926,8 +986,8 @@ class Point {
|
|
|
926
986
|
getAtan2(to) {
|
|
927
987
|
return PointHelper.getAtan2(this, to);
|
|
928
988
|
}
|
|
929
|
-
isSame(point) {
|
|
930
|
-
return PointHelper.isSame(this, point);
|
|
989
|
+
isSame(point, quick) {
|
|
990
|
+
return PointHelper.isSame(this, point, quick);
|
|
931
991
|
}
|
|
932
992
|
reset() {
|
|
933
993
|
PointHelper.reset(this);
|
|
@@ -1183,9 +1243,9 @@ const AroundHelper = {
|
|
|
1183
1243
|
}
|
|
1184
1244
|
if (!onlyBoxSize) to.x += box.x, to.y += box.y;
|
|
1185
1245
|
},
|
|
1186
|
-
getPoint(around, box, to) {
|
|
1246
|
+
getPoint(around, box, to, onlyBoxSize = true) {
|
|
1187
1247
|
if (!to) to = {};
|
|
1188
|
-
AroundHelper.toPoint(around, box, to,
|
|
1248
|
+
AroundHelper.toPoint(around, box, to, onlyBoxSize);
|
|
1189
1249
|
return to;
|
|
1190
1250
|
}
|
|
1191
1251
|
};
|
|
@@ -1452,6 +1512,9 @@ const BoundsHelper = {
|
|
|
1452
1512
|
y: y + height
|
|
1453
1513
|
} ];
|
|
1454
1514
|
},
|
|
1515
|
+
getPoint(t, around, onlyBoxSize = false, to) {
|
|
1516
|
+
return AroundHelper.getPoint(around, t, to, onlyBoxSize);
|
|
1517
|
+
},
|
|
1455
1518
|
hitRadiusPoint(t, point, pointMatrix) {
|
|
1456
1519
|
if (pointMatrix) point = PointHelper.tempToInnerRadiusPointOf(point, pointMatrix);
|
|
1457
1520
|
return point.x >= t.x - point.radiusX && point.x <= t.x + t.width + point.radiusX && (point.y >= t.y - point.radiusY && point.y <= t.y + t.height + point.radiusY);
|
|
@@ -1623,6 +1686,9 @@ class Bounds {
|
|
|
1623
1686
|
getPoints() {
|
|
1624
1687
|
return BoundsHelper.getPoints(this);
|
|
1625
1688
|
}
|
|
1689
|
+
getPoint(around, onlyBoxSize, to) {
|
|
1690
|
+
return BoundsHelper.getPoint(this, around, onlyBoxSize, to);
|
|
1691
|
+
}
|
|
1626
1692
|
hitPoint(point, pointMatrix) {
|
|
1627
1693
|
return BoundsHelper.hitPoint(this, point, pointMatrix);
|
|
1628
1694
|
}
|
|
@@ -1897,7 +1963,10 @@ const UICreator = {
|
|
|
1897
1963
|
list$1[tag] = UI;
|
|
1898
1964
|
},
|
|
1899
1965
|
get(tag, data, x, y, width, height) {
|
|
1900
|
-
if (!list$1[tag])
|
|
1966
|
+
if (!list$1[tag]) {
|
|
1967
|
+
debug$e.warn("not register " + tag);
|
|
1968
|
+
return undefined;
|
|
1969
|
+
}
|
|
1901
1970
|
const ui = new list$1[tag](data);
|
|
1902
1971
|
if (!isUndefined(x)) {
|
|
1903
1972
|
ui.x = x;
|
|
@@ -1988,45 +2057,6 @@ class CanvasManager {
|
|
|
1988
2057
|
}
|
|
1989
2058
|
}
|
|
1990
2059
|
|
|
1991
|
-
function __decorate(decorators, target, key, desc) {
|
|
1992
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1993
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1994
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1995
|
-
}
|
|
1996
|
-
|
|
1997
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
1998
|
-
function adopt(value) {
|
|
1999
|
-
return value instanceof P ? value : new P(function(resolve) {
|
|
2000
|
-
resolve(value);
|
|
2001
|
-
});
|
|
2002
|
-
}
|
|
2003
|
-
return new (P || (P = Promise))(function(resolve, reject) {
|
|
2004
|
-
function fulfilled(value) {
|
|
2005
|
-
try {
|
|
2006
|
-
step(generator.next(value));
|
|
2007
|
-
} catch (e) {
|
|
2008
|
-
reject(e);
|
|
2009
|
-
}
|
|
2010
|
-
}
|
|
2011
|
-
function rejected(value) {
|
|
2012
|
-
try {
|
|
2013
|
-
step(generator["throw"](value));
|
|
2014
|
-
} catch (e) {
|
|
2015
|
-
reject(e);
|
|
2016
|
-
}
|
|
2017
|
-
}
|
|
2018
|
-
function step(result) {
|
|
2019
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
2020
|
-
}
|
|
2021
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
2022
|
-
});
|
|
2023
|
-
}
|
|
2024
|
-
|
|
2025
|
-
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
2026
|
-
var e = new Error(message);
|
|
2027
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
2028
|
-
};
|
|
2029
|
-
|
|
2030
2060
|
function contextAttr(realName) {
|
|
2031
2061
|
return (target, key) => {
|
|
2032
2062
|
if (!realName) realName = key;
|
|
@@ -3754,10 +3784,10 @@ function canvasPatch(drawer) {
|
|
|
3754
3784
|
const FileHelper = {
|
|
3755
3785
|
alphaPixelTypes: [ "png", "webp", "svg" ],
|
|
3756
3786
|
upperCaseTypeMap: {},
|
|
3757
|
-
|
|
3758
|
-
if (!type || type.startsWith(
|
|
3787
|
+
mimeType(type, base = "image") {
|
|
3788
|
+
if (!type || type.startsWith(base)) return type;
|
|
3759
3789
|
if (type === "jpg") type = "jpeg";
|
|
3760
|
-
return "
|
|
3790
|
+
return base + "/" + type;
|
|
3761
3791
|
},
|
|
3762
3792
|
fileType(filename) {
|
|
3763
3793
|
const l = filename.split(".");
|
|
@@ -3790,6 +3820,8 @@ const FileHelper = {
|
|
|
3790
3820
|
|
|
3791
3821
|
const F = FileHelper;
|
|
3792
3822
|
|
|
3823
|
+
F.mineType = F.mimeType;
|
|
3824
|
+
|
|
3793
3825
|
F.alphaPixelTypes.forEach(type => F.upperCaseTypeMap[type] = type.toUpperCase());
|
|
3794
3826
|
|
|
3795
3827
|
const debug$9 = Debug.get("TaskProcessor");
|
|
@@ -4034,6 +4066,9 @@ const debug$8 = Debug.get("Resource");
|
|
|
4034
4066
|
|
|
4035
4067
|
const Resource = {
|
|
4036
4068
|
tasker: new TaskProcessor,
|
|
4069
|
+
queue: new TaskProcessor({
|
|
4070
|
+
parallel: 1
|
|
4071
|
+
}),
|
|
4037
4072
|
map: {},
|
|
4038
4073
|
get isComplete() {
|
|
4039
4074
|
return R.tasker.isComplete;
|
|
@@ -4070,6 +4105,12 @@ const Resource = {
|
|
|
4070
4105
|
R.set(key, value);
|
|
4071
4106
|
return value;
|
|
4072
4107
|
},
|
|
4108
|
+
loadFilm(_key, _format) {
|
|
4109
|
+
return undefined;
|
|
4110
|
+
},
|
|
4111
|
+
loadVideo(_key, _format) {
|
|
4112
|
+
return undefined;
|
|
4113
|
+
},
|
|
4073
4114
|
destroy() {
|
|
4074
4115
|
R.map = {};
|
|
4075
4116
|
}
|
|
@@ -4080,16 +4121,15 @@ const R = Resource;
|
|
|
4080
4121
|
const ImageManager = {
|
|
4081
4122
|
maxRecycled: 10,
|
|
4082
4123
|
recycledList: [],
|
|
4083
|
-
patternTasker:
|
|
4084
|
-
|
|
4085
|
-
}),
|
|
4086
|
-
get(config) {
|
|
4124
|
+
patternTasker: Resource.queue,
|
|
4125
|
+
get(config, type) {
|
|
4087
4126
|
let image = Resource.get(config.url);
|
|
4088
|
-
if (!image) Resource.set(config.url, image = Creator.image(config));
|
|
4127
|
+
if (!image) Resource.set(config.url, image = type === "film" ? Creator.film(config) : Creator.image(config));
|
|
4089
4128
|
image.use++;
|
|
4090
4129
|
return image;
|
|
4091
4130
|
},
|
|
4092
4131
|
recycle(image) {
|
|
4132
|
+
if (image.parent) image = image.parent;
|
|
4093
4133
|
image.use--;
|
|
4094
4134
|
setTimeout(() => {
|
|
4095
4135
|
if (!image.use) {
|
|
@@ -4120,7 +4160,7 @@ const ImageManager = {
|
|
|
4120
4160
|
if (config.format) return config.format === format;
|
|
4121
4161
|
const {url: url} = config;
|
|
4122
4162
|
if (url.startsWith("data:")) {
|
|
4123
|
-
if (url.startsWith("data:" + FileHelper.
|
|
4163
|
+
if (url.startsWith("data:" + FileHelper.mimeType(format))) return true;
|
|
4124
4164
|
} else {
|
|
4125
4165
|
if (url.includes("." + format) || url.includes("." + FileHelper.upperCaseTypeMap[format])) return true; else if (format === "png" && !url.includes(".")) return true;
|
|
4126
4166
|
}
|
|
@@ -4136,6 +4176,9 @@ const I$1 = ImageManager;
|
|
|
4136
4176
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
4137
4177
|
|
|
4138
4178
|
class LeaferImage {
|
|
4179
|
+
get tag() {
|
|
4180
|
+
return "Image";
|
|
4181
|
+
}
|
|
4139
4182
|
get url() {
|
|
4140
4183
|
return this.config.url;
|
|
4141
4184
|
}
|
|
@@ -4164,7 +4207,7 @@ class LeaferImage {
|
|
|
4164
4207
|
if (!this.loading) {
|
|
4165
4208
|
this.loading = true;
|
|
4166
4209
|
Resource.tasker.add(() => __awaiter(this, void 0, void 0, function*() {
|
|
4167
|
-
return yield Platform.origin.
|
|
4210
|
+
return yield Platform.origin["load" + this.tag](this.getLoadUrl(thumbSize), this.crossOrigin, this).then(img => {
|
|
4168
4211
|
if (thumbSize) this.setThumbView(img);
|
|
4169
4212
|
this.setView(img);
|
|
4170
4213
|
}).catch(e => {
|
|
@@ -4238,6 +4281,9 @@ class LeaferImage {
|
|
|
4238
4281
|
Platform.image.setPatternTransform(pattern, transform, paint);
|
|
4239
4282
|
return pattern;
|
|
4240
4283
|
}
|
|
4284
|
+
render(canvas, x, y, width, height, _leaf, _paint, _imageScaleX, _imageScaleY) {
|
|
4285
|
+
canvas.drawImage(this.view, x, y, width, height);
|
|
4286
|
+
}
|
|
4241
4287
|
getLoadUrl(_thumbSize) {
|
|
4242
4288
|
return this.url;
|
|
4243
4289
|
}
|
|
@@ -4252,8 +4298,10 @@ class LeaferImage {
|
|
|
4252
4298
|
return undefined;
|
|
4253
4299
|
}
|
|
4254
4300
|
clearLevels(_checkUse) {}
|
|
4301
|
+
destroyFilter() {}
|
|
4255
4302
|
destroy() {
|
|
4256
4303
|
this.clearLevels();
|
|
4304
|
+
this.destroyFilter();
|
|
4257
4305
|
const {view: view} = this;
|
|
4258
4306
|
if (view && view.close) view.close();
|
|
4259
4307
|
this.config = {
|
|
@@ -4264,6 +4312,18 @@ class LeaferImage {
|
|
|
4264
4312
|
}
|
|
4265
4313
|
}
|
|
4266
4314
|
|
|
4315
|
+
class LeaferFilm extends LeaferImage {
|
|
4316
|
+
get tag() {
|
|
4317
|
+
return "Film";
|
|
4318
|
+
}
|
|
4319
|
+
}
|
|
4320
|
+
|
|
4321
|
+
class LeaferVideo extends LeaferImage {
|
|
4322
|
+
get tag() {
|
|
4323
|
+
return "Video";
|
|
4324
|
+
}
|
|
4325
|
+
}
|
|
4326
|
+
|
|
4267
4327
|
function defineKey(target, key, descriptor, noConfigurable) {
|
|
4268
4328
|
if (!noConfigurable) descriptor.configurable = descriptor.enumerable = true;
|
|
4269
4329
|
Object.defineProperty(target, key, descriptor);
|
|
@@ -4438,7 +4498,6 @@ function dimType(defaultValue) {
|
|
|
4438
4498
|
if (this.__setAttr(key, value)) {
|
|
4439
4499
|
const data = this.__;
|
|
4440
4500
|
DataHelper.stintSet(data, "__useDim", data.dim || data.bright || data.dimskip);
|
|
4441
|
-
this.__layout.surfaceChange();
|
|
4442
4501
|
}
|
|
4443
4502
|
}
|
|
4444
4503
|
}));
|
|
@@ -4488,7 +4547,6 @@ function sortType(defaultValue) {
|
|
|
4488
4547
|
return decorateLeafAttr(defaultValue, key => attr({
|
|
4489
4548
|
set(value) {
|
|
4490
4549
|
if (this.__setAttr(key, value)) {
|
|
4491
|
-
this.__layout.surfaceChange();
|
|
4492
4550
|
this.waitParent(() => {
|
|
4493
4551
|
this.parent.__layout.childrenSortChange();
|
|
4494
4552
|
});
|
|
@@ -4525,7 +4583,6 @@ function hitType(defaultValue) {
|
|
|
4525
4583
|
set(value) {
|
|
4526
4584
|
if (this.__setAttr(key, value)) {
|
|
4527
4585
|
this.__layout.hitCanvasChanged = true;
|
|
4528
|
-
if (Debug.showBounds === "hit") this.__layout.surfaceChange();
|
|
4529
4586
|
if (this.leafer) this.leafer.updateCursor();
|
|
4530
4587
|
}
|
|
4531
4588
|
}
|
|
@@ -4731,6 +4788,10 @@ const LeafHelper = {
|
|
|
4731
4788
|
if (layout.stateStyleChanged) leaf.updateState();
|
|
4732
4789
|
if (layout.opacityChanged) updateAllWorldOpacity(leaf);
|
|
4733
4790
|
leaf.__updateChange();
|
|
4791
|
+
if (layout.surfaceChanged) {
|
|
4792
|
+
if (leaf.__hasComplex) L.updateComplex(leaf);
|
|
4793
|
+
layout.surfaceChanged = false;
|
|
4794
|
+
}
|
|
4734
4795
|
},
|
|
4735
4796
|
updateAllChange(leaf) {
|
|
4736
4797
|
updateChange$1(leaf);
|
|
@@ -4755,6 +4816,9 @@ const LeafHelper = {
|
|
|
4755
4816
|
if (!fromWorld) fromWorld = leaf.__nowWorld;
|
|
4756
4817
|
if (leaf.__worldFlipped || Platform.fullImageShadow) currentCanvas.copyWorldByReset(fromCanvas, fromWorld, leaf.__nowWorld, blendMode, onlyResetTransform); else currentCanvas.copyWorldToInner(fromCanvas, fromWorld, leaf.__layout.renderBounds, blendMode);
|
|
4757
4818
|
},
|
|
4819
|
+
renderComplex(_leaf, _canvas, _options) {},
|
|
4820
|
+
updateComplex(_leaf) {},
|
|
4821
|
+
checkComplex(_leaf) {},
|
|
4758
4822
|
moveWorld(t, x, y = 0, isInnerPoint, transition) {
|
|
4759
4823
|
const local = isObject(x) ? Object.assign({}, x) : {
|
|
4760
4824
|
x: x,
|
|
@@ -4866,6 +4930,9 @@ const LeafHelper = {
|
|
|
4866
4930
|
divideParent(matrix$1, relative.scrollWorldTransform);
|
|
4867
4931
|
return temp ? matrix$1 : Object.assign({}, matrix$1);
|
|
4868
4932
|
},
|
|
4933
|
+
updateScaleFixedWorld(_t) {},
|
|
4934
|
+
updateOuterBounds(_t) {},
|
|
4935
|
+
cacheId(_t) {},
|
|
4869
4936
|
drop(t, parent, index, resize) {
|
|
4870
4937
|
t.setTransform(L.getRelativeWorld(t, parent, true), resize);
|
|
4871
4938
|
parent.add(t, index);
|
|
@@ -4916,7 +4983,8 @@ const LeafBoundsHelper = {
|
|
|
4916
4983
|
return target.__.eraser || target.__.visible === 0 ? null : target.__layout.localStrokeBounds;
|
|
4917
4984
|
},
|
|
4918
4985
|
localRenderBounds(target) {
|
|
4919
|
-
|
|
4986
|
+
const {__: __, __layout: __layout} = target;
|
|
4987
|
+
return __.eraser || __.visible === 0 ? null : __layout.localOuterBounds || __layout.localRenderBounds;
|
|
4920
4988
|
},
|
|
4921
4989
|
maskLocalBoxBounds(target, index) {
|
|
4922
4990
|
return checkMask(target, index) && target.__localBoxBounds;
|
|
@@ -4925,7 +4993,8 @@ const LeafBoundsHelper = {
|
|
|
4925
4993
|
return checkMask(target, index) && target.__layout.localStrokeBounds;
|
|
4926
4994
|
},
|
|
4927
4995
|
maskLocalRenderBounds(target, index) {
|
|
4928
|
-
|
|
4996
|
+
const {__layout: __layout} = target;
|
|
4997
|
+
return checkMask(target, index) && (__layout.localOuterBounds || __layout.localRenderBounds);
|
|
4929
4998
|
},
|
|
4930
4999
|
excludeRenderBounds(child, options) {
|
|
4931
5000
|
if (options.bounds && !options.bounds.hit(child.__world, options.matrix)) return true;
|
|
@@ -5445,7 +5514,6 @@ class LeafLayout {
|
|
|
5445
5514
|
}
|
|
5446
5515
|
opacityChange() {
|
|
5447
5516
|
this.opacityChanged = true;
|
|
5448
|
-
this.surfaceChanged || this.surfaceChange();
|
|
5449
5517
|
}
|
|
5450
5518
|
childrenSortChange() {
|
|
5451
5519
|
if (!this.childrenSortChanged) {
|
|
@@ -5938,6 +6006,7 @@ const LeafMatrix = {
|
|
|
5938
6006
|
const {parent: parent, __layout: __layout, __world: __world, __scrollWorld: __scrollWorld, __: __} = this;
|
|
5939
6007
|
multiplyParent$2(this.__local || __layout, parent ? parent.__scrollWorld || parent.__world : defaultWorld, __world, !!__layout.affectScaleOrRotation, __);
|
|
5940
6008
|
if (__scrollWorld) translateInner(Object.assign(__scrollWorld, __world), __.scrollX, __.scrollY);
|
|
6009
|
+
if (__layout.scaleFixed) LeafHelper.updateScaleFixedWorld(this);
|
|
5941
6010
|
},
|
|
5942
6011
|
__updateLocalMatrix() {
|
|
5943
6012
|
if (this.__local) {
|
|
@@ -5971,6 +6040,7 @@ const LeafBounds = {
|
|
|
5971
6040
|
__updateWorldBounds() {
|
|
5972
6041
|
const {__layout: __layout, __world: __world} = this;
|
|
5973
6042
|
toOuterOf$2(__layout.renderBounds, __world, __world);
|
|
6043
|
+
if (this.__hasComplex) LeafHelper.checkComplex(this);
|
|
5974
6044
|
if (__layout.resized) {
|
|
5975
6045
|
if (__layout.resized === "inner") this.__onUpdateSize();
|
|
5976
6046
|
if (this.__hasLocalEvent) BoundsEvent.emitLocal(this);
|
|
@@ -6020,6 +6090,7 @@ const LeafBounds = {
|
|
|
6020
6090
|
layout.renderChanged = undefined;
|
|
6021
6091
|
if (this.parent) this.parent.__layout.renderChange();
|
|
6022
6092
|
}
|
|
6093
|
+
if (layout.outerScale) LeafHelper.updateOuterBounds(this);
|
|
6023
6094
|
layout.resized || (layout.resized = "local");
|
|
6024
6095
|
layout.boundsChanged = undefined;
|
|
6025
6096
|
},
|
|
@@ -6086,7 +6157,7 @@ const LeafRender = {
|
|
|
6086
6157
|
const data = this.__;
|
|
6087
6158
|
if (data.bright && !options.topRendering) return options.topList.add(this);
|
|
6088
6159
|
canvas.setWorld(this.__nowWorld = this.__getNowWorld(options));
|
|
6089
|
-
canvas.opacity = options.dimOpacity && !data.dimskip ? data.opacity * options.dimOpacity : data.opacity;
|
|
6160
|
+
canvas.opacity = options.ignoreOpacity ? 1 : options.dimOpacity && !data.dimskip ? data.opacity * options.dimOpacity : data.opacity;
|
|
6090
6161
|
if (this.__.__single) {
|
|
6091
6162
|
if (data.eraser === "path") return this.__renderEraser(canvas, options);
|
|
6092
6163
|
const tempCanvas = canvas.getSameCanvas(true, true);
|
|
@@ -6140,7 +6211,7 @@ const BranchRender = {
|
|
|
6140
6211
|
if (data.eraser === "path") return this.__renderEraser(canvas, options);
|
|
6141
6212
|
const tempCanvas = canvas.getSameCanvas(false, true);
|
|
6142
6213
|
this.__renderBranch(tempCanvas, options);
|
|
6143
|
-
canvas.opacity = options.dimOpacity ? data.opacity * options.dimOpacity : data.opacity;
|
|
6214
|
+
canvas.opacity = options.ignoreOpacity ? 1 : options.dimOpacity ? data.opacity * options.dimOpacity : data.opacity;
|
|
6144
6215
|
canvas.copyWorldByReset(tempCanvas, nowWorld, nowWorld, data.__blendMode, true);
|
|
6145
6216
|
tempCanvas.recycle(nowWorld);
|
|
6146
6217
|
} else {
|
|
@@ -6152,9 +6223,11 @@ const BranchRender = {
|
|
|
6152
6223
|
if (this.__hasMask) {
|
|
6153
6224
|
this.__renderMask(canvas, options);
|
|
6154
6225
|
} else {
|
|
6226
|
+
let child;
|
|
6155
6227
|
const {children: children} = this;
|
|
6156
6228
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
6157
|
-
|
|
6229
|
+
child = children[i];
|
|
6230
|
+
excludeRenderBounds$1(child, options) || (child.__hasComplex ? LeafHelper.renderComplex(child, canvas, options) : child.__render(canvas, options));
|
|
6158
6231
|
}
|
|
6159
6232
|
}
|
|
6160
6233
|
},
|
|
@@ -6168,8 +6241,6 @@ const BranchRender = {
|
|
|
6168
6241
|
}
|
|
6169
6242
|
};
|
|
6170
6243
|
|
|
6171
|
-
const tempScaleData$1 = {};
|
|
6172
|
-
|
|
6173
6244
|
const {LEAF: LEAF, create: create} = IncrementId;
|
|
6174
6245
|
|
|
6175
6246
|
const {stintSet: stintSet$4} = DataHelper;
|
|
@@ -6180,6 +6251,8 @@ const {toOuterOf: toOuterOf$1} = BoundsHelper;
|
|
|
6180
6251
|
|
|
6181
6252
|
const {copy: copy$2, move: move$2} = PointHelper;
|
|
6182
6253
|
|
|
6254
|
+
const {getScaleFixedData: getScaleFixedData} = MathHelper;
|
|
6255
|
+
|
|
6183
6256
|
const {moveLocal: moveLocal, zoomOfLocal: zoomOfLocal, rotateOfLocal: rotateOfLocal, skewOfLocal: skewOfLocal, moveWorld: moveWorld, zoomOfWorld: zoomOfWorld, rotateOfWorld: rotateOfWorld, skewOfWorld: skewOfWorld, transform: transform, transformWorld: transformWorld, setTransform: setTransform, getFlipTransform: getFlipTransform, getLocalOrigin: getLocalOrigin, getRelativeWorld: getRelativeWorld, drop: drop} = LeafHelper;
|
|
6184
6257
|
|
|
6185
6258
|
let Leaf = class Leaf {
|
|
@@ -6338,6 +6411,7 @@ let Leaf = class Leaf {
|
|
|
6338
6411
|
this.__level = this.parent ? this.parent.__level + 1 : 1;
|
|
6339
6412
|
if (this.animation) this.__runAnimation("in");
|
|
6340
6413
|
if (this.__bubbleMap) this.__emitLifeEvent(ChildEvent.MOUNTED);
|
|
6414
|
+
if (leafer.cacheId) LeafHelper.cacheId(this);
|
|
6341
6415
|
} else {
|
|
6342
6416
|
this.__emitLifeEvent(ChildEvent.UNMOUNTED);
|
|
6343
6417
|
}
|
|
@@ -6467,13 +6541,8 @@ let Leaf = class Leaf {
|
|
|
6467
6541
|
if (scaleX < 0) scaleX = -scaleX;
|
|
6468
6542
|
return scaleX > 1 ? scaleX : 1;
|
|
6469
6543
|
}
|
|
6470
|
-
getRenderScaleData(abs, scaleFixed) {
|
|
6471
|
-
|
|
6472
|
-
if (abs) scaleX < 0 && (scaleX = -scaleX), scaleY < 0 && (scaleY = -scaleY);
|
|
6473
|
-
if (scaleFixed === true || scaleFixed === "zoom-in" && scaleX > 1 && scaleY > 1) scaleX = scaleY = 1;
|
|
6474
|
-
tempScaleData$1.scaleX = scaleX;
|
|
6475
|
-
tempScaleData$1.scaleY = scaleY;
|
|
6476
|
-
return tempScaleData$1;
|
|
6544
|
+
getRenderScaleData(abs, scaleFixed, unscale = true) {
|
|
6545
|
+
return getScaleFixedData(ImageManager.patternLocked ? this.__world : this.__nowWorld || this.__world, scaleFixed, unscale, abs);
|
|
6477
6546
|
}
|
|
6478
6547
|
getTransform(relative) {
|
|
6479
6548
|
return this.__layout.getTransform(relative || "local");
|
|
@@ -6645,7 +6714,7 @@ let Leaf = class Leaf {
|
|
|
6645
6714
|
__drawPath(_canvas) {}
|
|
6646
6715
|
__drawRenderPath(_canvas) {}
|
|
6647
6716
|
__updatePath() {}
|
|
6648
|
-
__updateRenderPath() {}
|
|
6717
|
+
__updateRenderPath(_updateCache) {}
|
|
6649
6718
|
getMotionPathData() {
|
|
6650
6719
|
return Plugin.need("path");
|
|
6651
6720
|
}
|
|
@@ -6719,9 +6788,11 @@ let Branch = class Branch extends Leaf {
|
|
|
6719
6788
|
return 0;
|
|
6720
6789
|
}
|
|
6721
6790
|
__updateRenderSpread() {
|
|
6791
|
+
let layout;
|
|
6722
6792
|
const {children: children} = this;
|
|
6723
6793
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
6724
|
-
|
|
6794
|
+
layout = children[i].__layout;
|
|
6795
|
+
if (layout.renderSpread || layout.localOuterBounds) return 1;
|
|
6725
6796
|
}
|
|
6726
6797
|
return 0;
|
|
6727
6798
|
}
|
|
@@ -6754,6 +6825,7 @@ let Branch = class Branch extends Leaf {
|
|
|
6754
6825
|
this.add(item, index);
|
|
6755
6826
|
noIndex || index++;
|
|
6756
6827
|
}); else child = UICreator.get(child.tag, child);
|
|
6828
|
+
if (!child) return;
|
|
6757
6829
|
}
|
|
6758
6830
|
if (child.parent) child.parent.remove(child);
|
|
6759
6831
|
child.parent = this;
|
|
@@ -6979,7 +7051,7 @@ class LeafLevelList {
|
|
|
6979
7051
|
}
|
|
6980
7052
|
}
|
|
6981
7053
|
|
|
6982
|
-
const version = "2.0.
|
|
7054
|
+
const version = "2.0.3";
|
|
6983
7055
|
|
|
6984
7056
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6985
7057
|
get allowBackgroundColor() {
|
|
@@ -7005,8 +7077,6 @@ canvasPatch(OffscreenCanvasRenderingContext2D.prototype);
|
|
|
7005
7077
|
|
|
7006
7078
|
canvasPatch(Path2D.prototype);
|
|
7007
7079
|
|
|
7008
|
-
const {mineType: mineType} = FileHelper;
|
|
7009
|
-
|
|
7010
7080
|
Object.assign(Creator, {
|
|
7011
7081
|
canvas: (options, manager) => new LeaferCanvas(options, manager),
|
|
7012
7082
|
image: options => new LeaferImage(options)
|
|
@@ -7017,7 +7087,7 @@ function useCanvas(_canvasType, _power) {
|
|
|
7017
7087
|
createCanvas: (width, height) => new OffscreenCanvas(width, height),
|
|
7018
7088
|
canvasToDataURL: (canvas, type, quality) => new Promise((resolve, reject) => {
|
|
7019
7089
|
canvas.convertToBlob({
|
|
7020
|
-
type:
|
|
7090
|
+
type: FileHelper.mimeType(type),
|
|
7021
7091
|
quality: quality
|
|
7022
7092
|
}).then(blob => {
|
|
7023
7093
|
var reader = new FileReader;
|
|
@@ -7029,14 +7099,14 @@ function useCanvas(_canvasType, _power) {
|
|
|
7029
7099
|
});
|
|
7030
7100
|
}),
|
|
7031
7101
|
canvasToBolb: (canvas, type, quality) => canvas.convertToBlob({
|
|
7032
|
-
type:
|
|
7102
|
+
type: FileHelper.mimeType(type),
|
|
7033
7103
|
quality: quality
|
|
7034
7104
|
}),
|
|
7035
7105
|
canvasSaveAs: (_canvas, _filename, _quality) => new Promise(resolve => resolve()),
|
|
7036
7106
|
download(_url, _filename) {
|
|
7037
7107
|
return undefined;
|
|
7038
7108
|
},
|
|
7039
|
-
loadImage(src) {
|
|
7109
|
+
loadImage(src, _crossOrigin, _leaferImage) {
|
|
7040
7110
|
return new Promise((resolve, reject) => {
|
|
7041
7111
|
let req = new XMLHttpRequest;
|
|
7042
7112
|
req.open("GET", Platform.image.getRealURL(src), true);
|
|
@@ -7051,6 +7121,13 @@ function useCanvas(_canvasType, _power) {
|
|
|
7051
7121
|
req.onerror = e => reject(e);
|
|
7052
7122
|
req.send();
|
|
7053
7123
|
});
|
|
7124
|
+
},
|
|
7125
|
+
loadContent(url_1) {
|
|
7126
|
+
return __awaiter(this, arguments, void 0, function*(url, responseType = "text") {
|
|
7127
|
+
const response = yield fetch(url);
|
|
7128
|
+
if (!response.ok) throw new Error(`${response.status}`);
|
|
7129
|
+
return yield response[responseType]();
|
|
7130
|
+
});
|
|
7054
7131
|
}
|
|
7055
7132
|
};
|
|
7056
7133
|
Platform.canvas = Creator.canvas();
|
|
@@ -7550,7 +7627,7 @@ class Renderer {
|
|
|
7550
7627
|
getCellList() {
|
|
7551
7628
|
return undefined;
|
|
7552
7629
|
}
|
|
7553
|
-
addBlock(block) {
|
|
7630
|
+
addBlock(block, _leafList) {
|
|
7554
7631
|
if (!this.updateBlocks) this.updateBlocks = [];
|
|
7555
7632
|
this.updateBlocks.push(block);
|
|
7556
7633
|
}
|
|
@@ -7598,7 +7675,8 @@ class Renderer {
|
|
|
7598
7675
|
__onLayoutEnd(event) {
|
|
7599
7676
|
if (event.data) event.data.map(item => {
|
|
7600
7677
|
let empty;
|
|
7601
|
-
|
|
7678
|
+
const {updatedList: updatedList} = item;
|
|
7679
|
+
if (updatedList) updatedList.list.some(leaf => {
|
|
7602
7680
|
empty = !leaf.__world.width || !leaf.__world.height;
|
|
7603
7681
|
if (empty) {
|
|
7604
7682
|
if (!leaf.isLeafer) debug$3.tip(leaf.innerName, ": empty");
|
|
@@ -7606,7 +7684,7 @@ class Renderer {
|
|
|
7606
7684
|
}
|
|
7607
7685
|
return empty;
|
|
7608
7686
|
});
|
|
7609
|
-
this.addBlock(empty ? this.canvas.bounds : item.updatedBounds);
|
|
7687
|
+
this.addBlock(empty ? this.canvas.bounds : item.updatedBounds, updatedList);
|
|
7610
7688
|
});
|
|
7611
7689
|
}
|
|
7612
7690
|
emitRender(type, bounds, options) {
|
|
@@ -7812,7 +7890,7 @@ class Selector {
|
|
|
7812
7890
|
this.config = {};
|
|
7813
7891
|
if (userConfig) this.config = DataHelper.default(userConfig, this.config);
|
|
7814
7892
|
this.picker = new Picker(this.target = target, this);
|
|
7815
|
-
this.finder = Creator.finder && Creator.finder();
|
|
7893
|
+
this.finder = Creator.finder && Creator.finder(target, this.config);
|
|
7816
7894
|
}
|
|
7817
7895
|
getByPoint(hitPoint, hitRadius, options) {
|
|
7818
7896
|
const {target: target, picker: picker} = this;
|
|
@@ -7854,7 +7932,9 @@ function effectType(defaultValue) {
|
|
|
7854
7932
|
set(value) {
|
|
7855
7933
|
this.__setAttr(key, value);
|
|
7856
7934
|
if (value) this.__.__useEffect = true;
|
|
7857
|
-
|
|
7935
|
+
const layout = this.__layout;
|
|
7936
|
+
layout.renderChanged || layout.renderChange();
|
|
7937
|
+
layout.surfaceChange();
|
|
7858
7938
|
}
|
|
7859
7939
|
}));
|
|
7860
7940
|
}
|
|
@@ -8068,15 +8148,16 @@ class UIData extends LeafData {
|
|
|
8068
8148
|
this.__needComputePaint = undefined;
|
|
8069
8149
|
}
|
|
8070
8150
|
__getRealStrokeWidth(childStyle) {
|
|
8071
|
-
let {strokeWidth: strokeWidth,
|
|
8151
|
+
let {strokeWidth: strokeWidth, strokeScaleFixed: strokeScaleFixed} = this;
|
|
8072
8152
|
if (childStyle) {
|
|
8073
8153
|
if (childStyle.strokeWidth) strokeWidth = childStyle.strokeWidth;
|
|
8074
|
-
if (!isUndefined(childStyle.
|
|
8154
|
+
if (!isUndefined(childStyle.strokeScaleFixed)) strokeScaleFixed = childStyle.strokeScaleFixed;
|
|
8155
|
+
}
|
|
8156
|
+
if (strokeScaleFixed) {
|
|
8157
|
+
const {scaleX: scaleX} = this.__leaf.getRenderScaleData(true, strokeScaleFixed, false);
|
|
8158
|
+
if (scaleX !== 1) return strokeWidth * scaleX;
|
|
8075
8159
|
}
|
|
8076
|
-
|
|
8077
|
-
const scale = this.__leaf.getClampRenderScale();
|
|
8078
|
-
return scale > 1 ? strokeWidth / scale : strokeWidth;
|
|
8079
|
-
} else return strokeWidth;
|
|
8160
|
+
return strokeWidth;
|
|
8080
8161
|
}
|
|
8081
8162
|
__setPaint(attrName, value) {
|
|
8082
8163
|
this.__setInput(attrName, value);
|
|
@@ -8214,13 +8295,16 @@ class TextData extends UIData {
|
|
|
8214
8295
|
}
|
|
8215
8296
|
|
|
8216
8297
|
class ImageData extends RectData {
|
|
8298
|
+
get __urlType() {
|
|
8299
|
+
return "image";
|
|
8300
|
+
}
|
|
8217
8301
|
setUrl(value) {
|
|
8218
8302
|
this.__setImageFill(value);
|
|
8219
8303
|
this._url = value;
|
|
8220
8304
|
}
|
|
8221
8305
|
__setImageFill(value) {
|
|
8222
8306
|
this.fill = value ? {
|
|
8223
|
-
type:
|
|
8307
|
+
type: this.__urlType,
|
|
8224
8308
|
mode: "stretch",
|
|
8225
8309
|
url: value
|
|
8226
8310
|
} : undefined;
|
|
@@ -8259,7 +8343,7 @@ const UIBounds = {
|
|
|
8259
8343
|
const data = this.__, {strokeAlign: strokeAlign, __maxStrokeWidth: strokeWidth} = data, box = this.__box;
|
|
8260
8344
|
if ((data.stroke || data.hitStroke === "all") && strokeWidth && strokeAlign !== "inside") {
|
|
8261
8345
|
boxSpread = spread = strokeAlign === "center" ? strokeWidth / 2 : strokeWidth;
|
|
8262
|
-
if (!data.__boxStroke) {
|
|
8346
|
+
if (!data.__boxStroke || data.__useArrow) {
|
|
8263
8347
|
const miterLimitAddWidth = data.__isLinePath ? 0 : 10 * spread;
|
|
8264
8348
|
const storkeCapAddWidth = data.strokeCap === "none" ? 0 : strokeWidth;
|
|
8265
8349
|
spread += Math.max(miterLimitAddWidth, storkeCapAddWidth);
|
|
@@ -8416,6 +8500,12 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8416
8500
|
get isFrame() {
|
|
8417
8501
|
return false;
|
|
8418
8502
|
}
|
|
8503
|
+
set strokeWidthFixed(value) {
|
|
8504
|
+
this.strokeScaleFixed = value;
|
|
8505
|
+
}
|
|
8506
|
+
get strokeWidthFixed() {
|
|
8507
|
+
return this.strokeScaleFixed;
|
|
8508
|
+
}
|
|
8419
8509
|
set scale(value) {
|
|
8420
8510
|
MathHelper.assignScale(this, value);
|
|
8421
8511
|
}
|
|
@@ -8471,6 +8561,9 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8471
8561
|
getPathString(curve, pathForRender, floatLength) {
|
|
8472
8562
|
return PathConvert.stringify(this.getPath(curve, pathForRender), floatLength);
|
|
8473
8563
|
}
|
|
8564
|
+
asPath(curve, pathForRender) {
|
|
8565
|
+
this.path = this.getPath(curve, pathForRender);
|
|
8566
|
+
}
|
|
8474
8567
|
load() {
|
|
8475
8568
|
this.__.__computePaint();
|
|
8476
8569
|
}
|
|
@@ -8480,16 +8573,18 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8480
8573
|
data.lazy && !this.__inLazyBounds && !Export.running ? data.__needComputePaint = true : data.__computePaint();
|
|
8481
8574
|
}
|
|
8482
8575
|
}
|
|
8483
|
-
__updateRenderPath() {
|
|
8576
|
+
__updateRenderPath(updateCache) {
|
|
8484
8577
|
const data = this.__;
|
|
8485
8578
|
if (data.path) {
|
|
8486
8579
|
data.__pathForRender = data.cornerRadius ? PathCorner.smooth(data.path, data.cornerRadius, data.cornerSmoothing) : data.path;
|
|
8487
|
-
if (data.__useArrow) PathArrow.addArrows(this);
|
|
8580
|
+
if (data.__useArrow) PathArrow.addArrows(this, updateCache);
|
|
8488
8581
|
} else data.__pathForRender && (data.__pathForRender = undefined);
|
|
8489
8582
|
}
|
|
8490
8583
|
__drawRenderPath(canvas) {
|
|
8584
|
+
const data = this.__;
|
|
8491
8585
|
canvas.beginPath();
|
|
8492
|
-
|
|
8586
|
+
if (data.__useArrow) PathArrow.updateArrow(this);
|
|
8587
|
+
this.__drawPathByData(canvas, data.__pathForRender);
|
|
8493
8588
|
}
|
|
8494
8589
|
__drawPath(canvas) {
|
|
8495
8590
|
canvas.beginPath();
|
|
@@ -8538,6 +8633,7 @@ let UI = UI_1 = class UI extends Leaf {
|
|
|
8538
8633
|
static setEditOuter(_toolName) {}
|
|
8539
8634
|
static setEditInner(_editorName) {}
|
|
8540
8635
|
destroy() {
|
|
8636
|
+
this.__.__willDestroy = true;
|
|
8541
8637
|
this.fill = this.stroke = null;
|
|
8542
8638
|
if (this.__animate) this.killAnimate();
|
|
8543
8639
|
super.destroy();
|
|
@@ -8654,7 +8750,7 @@ __decorate([ strokeType("inside") ], UI.prototype, "strokeAlign", void 0);
|
|
|
8654
8750
|
|
|
8655
8751
|
__decorate([ strokeType(1, true) ], UI.prototype, "strokeWidth", void 0);
|
|
8656
8752
|
|
|
8657
|
-
__decorate([ strokeType(false) ], UI.prototype, "
|
|
8753
|
+
__decorate([ strokeType(false) ], UI.prototype, "strokeScaleFixed", void 0);
|
|
8658
8754
|
|
|
8659
8755
|
__decorate([ strokeType("none") ], UI.prototype, "strokeCap", void 0);
|
|
8660
8756
|
|
|
@@ -8720,7 +8816,10 @@ let Group = class Group extends UI {
|
|
|
8720
8816
|
}
|
|
8721
8817
|
toJSON(options) {
|
|
8722
8818
|
const data = super.toJSON(options);
|
|
8723
|
-
if (!this.childlessJSON)
|
|
8819
|
+
if (!this.childlessJSON) {
|
|
8820
|
+
const children = data.children = [];
|
|
8821
|
+
this.children.forEach(child => child.skipJSON || children.push(child.toJSON(options)));
|
|
8822
|
+
}
|
|
8724
8823
|
return data;
|
|
8725
8824
|
}
|
|
8726
8825
|
pick(_hitPoint, _options) {
|
|
@@ -8869,12 +8968,12 @@ let Leafer = Leafer_1 = class Leafer extends Group {
|
|
|
8869
8968
|
this.emitLeafer(LeaferEvent.STOP);
|
|
8870
8969
|
}
|
|
8871
8970
|
}
|
|
8872
|
-
unlockLayout() {
|
|
8971
|
+
unlockLayout(updateLayout = true) {
|
|
8873
8972
|
this.layouter.start();
|
|
8874
|
-
this.updateLayout();
|
|
8973
|
+
if (updateLayout) this.updateLayout();
|
|
8875
8974
|
}
|
|
8876
|
-
lockLayout() {
|
|
8877
|
-
this.updateLayout();
|
|
8975
|
+
lockLayout(updateLayout = true) {
|
|
8976
|
+
if (updateLayout) this.updateLayout();
|
|
8878
8977
|
this.layouter.stop();
|
|
8879
8978
|
}
|
|
8880
8979
|
resize(size) {
|
|
@@ -9283,9 +9382,9 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9283
9382
|
return "Ellipse";
|
|
9284
9383
|
}
|
|
9285
9384
|
__updatePath() {
|
|
9286
|
-
const {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} =
|
|
9385
|
+
const data = this.__, {width: width, height: height, innerRadius: innerRadius, startAngle: startAngle, endAngle: endAngle} = data;
|
|
9287
9386
|
const rx = width / 2, ry = height / 2;
|
|
9288
|
-
const path =
|
|
9387
|
+
const path = data.path = [];
|
|
9289
9388
|
let open;
|
|
9290
9389
|
if (innerRadius) {
|
|
9291
9390
|
if (startAngle || endAngle) {
|
|
@@ -9307,7 +9406,7 @@ let Ellipse = class Ellipse extends UI {
|
|
|
9307
9406
|
}
|
|
9308
9407
|
}
|
|
9309
9408
|
if (!open) closePath$2(path);
|
|
9310
|
-
if (Platform.ellipseToCurve)
|
|
9409
|
+
if (Platform.ellipseToCurve || data.__useArrow) data.path = this.getPath(true);
|
|
9311
9410
|
}
|
|
9312
9411
|
};
|
|
9313
9412
|
|
|
@@ -9847,7 +9946,7 @@ let App = class App extends Leafer {
|
|
|
9847
9946
|
if (this.viewReady) this.renderer.update();
|
|
9848
9947
|
}
|
|
9849
9948
|
__render(canvas, options) {
|
|
9850
|
-
if (canvas.context) this.forEach(leafer => options.matrix ? leafer.__render(canvas, options) : canvas.copyWorld(leafer.canvas, options.bounds));
|
|
9949
|
+
if (canvas.context) this.forEach(leafer => options.matrix ? leafer.__render(canvas, options) : canvas.copyWorld(leafer.canvas, options.bounds, undefined, undefined, true));
|
|
9851
9950
|
}
|
|
9852
9951
|
__onResize(event) {
|
|
9853
9952
|
this.forEach(leafer => leafer.resize(event));
|
|
@@ -10667,6 +10766,7 @@ class InteractionBase {
|
|
|
10667
10766
|
this.checkPath(data, useDefaultPath);
|
|
10668
10767
|
this.downTime = Date.now();
|
|
10669
10768
|
this.emit(PointerEvent.BEFORE_DOWN, data);
|
|
10769
|
+
if (data.path.needUpdate) this.updateDownData(data);
|
|
10670
10770
|
this.emit(PointerEvent.DOWN, data);
|
|
10671
10771
|
if (PointerButton.left(data)) {
|
|
10672
10772
|
this.tapWait();
|
|
@@ -11289,8 +11389,8 @@ function fills(fills, ui, canvas, renderOptions) {
|
|
|
11289
11389
|
canvas.save();
|
|
11290
11390
|
if (item.transform) canvas.transform(item.transform);
|
|
11291
11391
|
if (originPaint.scaleFixed) {
|
|
11292
|
-
const {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true);
|
|
11293
|
-
if (
|
|
11392
|
+
const {scaleX: scaleX, scaleY: scaleY} = ui.getRenderScaleData(true, originPaint.scaleFixed, false);
|
|
11393
|
+
if (scaleX !== 1) canvas.scale(scaleX, scaleY);
|
|
11294
11394
|
}
|
|
11295
11395
|
if (originPaint.blendMode) canvas.blendMode = originPaint.blendMode;
|
|
11296
11396
|
fillPathOrText(ui, canvas, renderOptions);
|
|
@@ -11564,11 +11664,14 @@ function compute(attrName, ui) {
|
|
|
11564
11664
|
function getLeafPaint(attrName, paint, ui) {
|
|
11565
11665
|
if (!isObject(paint) || paint.visible === false || paint.opacity === 0) return undefined;
|
|
11566
11666
|
let leafPaint;
|
|
11567
|
-
const {boxBounds: boxBounds} = ui.__layout;
|
|
11568
|
-
switch (
|
|
11667
|
+
const {boxBounds: boxBounds} = ui.__layout, {type: type} = paint;
|
|
11668
|
+
switch (type) {
|
|
11569
11669
|
case "image":
|
|
11670
|
+
case "film":
|
|
11671
|
+
case "video":
|
|
11570
11672
|
if (!paint.url) return undefined;
|
|
11571
11673
|
leafPaint = PaintImage.image(ui, attrName, paint, boxBounds, !recycleMap || !recycleMap[paint.url]);
|
|
11674
|
+
if (type !== "image") PaintImage[type](leafPaint);
|
|
11572
11675
|
break;
|
|
11573
11676
|
|
|
11574
11677
|
case "linear":
|
|
@@ -11584,7 +11687,7 @@ function getLeafPaint(attrName, paint, ui) {
|
|
|
11584
11687
|
break;
|
|
11585
11688
|
|
|
11586
11689
|
case "solid":
|
|
11587
|
-
const {
|
|
11690
|
+
const {color: color, opacity: opacity} = paint;
|
|
11588
11691
|
leafPaint = {
|
|
11589
11692
|
type: type,
|
|
11590
11693
|
style: ColorConvert.string(color, opacity)
|
|
@@ -11628,7 +11731,7 @@ const {isSame: isSame} = BoundsHelper;
|
|
|
11628
11731
|
|
|
11629
11732
|
function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
11630
11733
|
let leafPaint, event;
|
|
11631
|
-
const image = ImageManager.get(paint);
|
|
11734
|
+
const image = ImageManager.get(paint, paint.type);
|
|
11632
11735
|
if (cache && paint === cache.paint && isSame(boxBounds, cache.boxBounds)) {
|
|
11633
11736
|
leafPaint = cache.leafPaint;
|
|
11634
11737
|
} else {
|
|
@@ -11689,8 +11792,8 @@ function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
|
11689
11792
|
}
|
|
11690
11793
|
|
|
11691
11794
|
function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds) {
|
|
11692
|
-
|
|
11693
|
-
|
|
11795
|
+
const data = ui.__;
|
|
11796
|
+
if (attrName === "fill" && !data.__naturalWidth) {
|
|
11694
11797
|
data.__naturalWidth = image.width / data.pixelRatio;
|
|
11695
11798
|
data.__naturalHeight = image.height / data.pixelRatio;
|
|
11696
11799
|
if (data.__autoSide) {
|
|
@@ -11702,7 +11805,13 @@ function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds
|
|
|
11702
11805
|
return false;
|
|
11703
11806
|
}
|
|
11704
11807
|
}
|
|
11705
|
-
if (!leafPaint.data)
|
|
11808
|
+
if (!leafPaint.data) {
|
|
11809
|
+
PaintImage.createData(leafPaint, image, paint, boxBounds);
|
|
11810
|
+
const {transform: transform} = leafPaint.data, {opacity: opacity, blendMode: blendMode} = paint;
|
|
11811
|
+
const clip = transform && !transform.onlyScale || data.path || data.cornerRadius;
|
|
11812
|
+
if (clip || opacity && opacity < 1 || blendMode) leafPaint.complex = clip ? 2 : true;
|
|
11813
|
+
}
|
|
11814
|
+
if (paint.filter) PaintImage.applyFilter(leafPaint, image, paint.filter, ui);
|
|
11706
11815
|
return true;
|
|
11707
11816
|
}
|
|
11708
11817
|
|
|
@@ -11745,7 +11854,7 @@ function getPatternData(paint, box, image) {
|
|
|
11745
11854
|
if (paint.padding) box = tempBox.set(box).shrink(paint.padding);
|
|
11746
11855
|
if (paint.mode === "strench") paint.mode = "stretch";
|
|
11747
11856
|
const {width: width, height: height} = image;
|
|
11748
|
-
const {
|
|
11857
|
+
const {mode: mode, align: align, offset: offset, scale: scale, size: size, rotation: rotation, skew: skew, clipSize: clipSize, repeat: repeat, gap: gap, interlace: interlace} = paint;
|
|
11749
11858
|
const sameBox = box.width === width && box.height === height;
|
|
11750
11859
|
const data = {
|
|
11751
11860
|
mode: mode
|
|
@@ -11808,8 +11917,6 @@ function getPatternData(paint, box, image) {
|
|
|
11808
11917
|
data.scaleX = scaleX;
|
|
11809
11918
|
data.scaleY = scaleY;
|
|
11810
11919
|
}
|
|
11811
|
-
if (opacity && opacity < 1) data.opacity = opacity;
|
|
11812
|
-
if (filters) data.filters = filters;
|
|
11813
11920
|
if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
|
|
11814
11921
|
if (interlace) data.interlace = isNumber(interlace) || interlace.type === "percent" ? {
|
|
11815
11922
|
type: "x",
|
|
@@ -11840,7 +11947,7 @@ const {get: get$2, set: set, rotateOfOuter: rotateOfOuter$1, translate: translat
|
|
|
11840
11947
|
|
|
11841
11948
|
function stretchMode(data, box, scaleX, scaleY) {
|
|
11842
11949
|
const transform = get$2(), {x: x, y: y} = box;
|
|
11843
|
-
if (x || y) translate(transform, x, y); else transform.onlyScale = true;
|
|
11950
|
+
if (x || y) translate(transform, x, y); else if (scaleX > 0 && scaleY > 0) transform.onlyScale = true;
|
|
11844
11951
|
scaleHelper(transform, scaleX, scaleY);
|
|
11845
11952
|
data.transform = transform;
|
|
11846
11953
|
}
|
|
@@ -11929,10 +12036,10 @@ function createPatternTask(paint, ui, canvas, renderOptions) {
|
|
|
11929
12036
|
}
|
|
11930
12037
|
|
|
11931
12038
|
function createPattern(paint, ui, canvas, renderOptions) {
|
|
11932
|
-
let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = scaleX + "-" + scaleY;
|
|
12039
|
+
let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
|
|
11933
12040
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
11934
12041
|
if (!(Platform.image.isLarge(paint.image, scaleX, scaleY) && !paint.data.repeat)) {
|
|
11935
|
-
const {image: image, data: data} = paint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
|
|
12042
|
+
const {image: image, data: data} = paint, {opacity: opacity} = paint.originPaint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
|
|
11936
12043
|
let imageMatrix, xGap, yGap, {width: width, height: height} = image;
|
|
11937
12044
|
if (fixScale) scaleX *= fixScale, scaleY *= fixScale;
|
|
11938
12045
|
width *= scaleX;
|
|
@@ -11948,7 +12055,7 @@ function createPattern(paint, ui, canvas, renderOptions) {
|
|
|
11948
12055
|
if (transform) copy$1(imageMatrix, transform);
|
|
11949
12056
|
scale(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
11950
12057
|
}
|
|
11951
|
-
const imageCanvas = image.getCanvas(width, height,
|
|
12058
|
+
const imageCanvas = image.getCanvas(width, height, opacity, undefined, xGap, yGap, ui.leafer && ui.leafer.config.smooth, data.interlace);
|
|
11952
12059
|
const pattern = image.getPattern(imageCanvas, data.repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
11953
12060
|
paint.style = pattern;
|
|
11954
12061
|
paint.patternId = id;
|
|
@@ -11969,15 +12076,15 @@ function getPatternFixScale(paint, imageScaleX, imageScaleY) {
|
|
|
11969
12076
|
}
|
|
11970
12077
|
|
|
11971
12078
|
function checkImage(paint, drawImage, ui, canvas, renderOptions) {
|
|
11972
|
-
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions);
|
|
12079
|
+
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
|
|
11973
12080
|
const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting, snapshot: snapshot} = renderOptions;
|
|
11974
|
-
if (!data || paint.patternId ===
|
|
12081
|
+
if (!data || paint.patternId === id && !exporting || snapshot) {
|
|
11975
12082
|
return false;
|
|
11976
12083
|
} else {
|
|
11977
12084
|
if (drawImage) {
|
|
11978
12085
|
if (data.repeat) {
|
|
11979
12086
|
drawImage = false;
|
|
11980
|
-
} else if (!(originPaint.changeful || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || exporting)) {
|
|
12087
|
+
} else if (!(originPaint.changeful || paint.film || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || exporting)) {
|
|
11981
12088
|
drawImage = Platform.image.isLarge(image, scaleX, scaleY) || image.width * scaleX > 8096 || image.height * scaleY > 8096;
|
|
11982
12089
|
}
|
|
11983
12090
|
}
|
|
@@ -11995,20 +12102,21 @@ function checkImage(paint, drawImage, ui, canvas, renderOptions) {
|
|
|
11995
12102
|
}
|
|
11996
12103
|
}
|
|
11997
12104
|
|
|
11998
|
-
function drawImage(paint,
|
|
11999
|
-
const {data: data, image: image
|
|
12000
|
-
let {width: width, height: height} = image
|
|
12001
|
-
if (
|
|
12105
|
+
function drawImage(paint, imageScaleX, imageScaleY, ui, canvas, _renderOptions) {
|
|
12106
|
+
const {data: data, image: image, complex: complex} = paint;
|
|
12107
|
+
let {width: width, height: height} = image;
|
|
12108
|
+
if (complex) {
|
|
12109
|
+
const {blendMode: blendMode, opacity: opacity} = paint.originPaint, {transform: transform} = data;
|
|
12002
12110
|
canvas.save();
|
|
12003
|
-
|
|
12111
|
+
complex === 2 && canvas.clipUI(ui);
|
|
12004
12112
|
blendMode && (canvas.blendMode = blendMode);
|
|
12005
12113
|
opacity && (canvas.opacity *= opacity);
|
|
12006
12114
|
transform && canvas.transform(transform);
|
|
12007
|
-
|
|
12115
|
+
image.render(canvas, 0, 0, width, height, ui, paint, imageScaleX, imageScaleY);
|
|
12008
12116
|
canvas.restore();
|
|
12009
12117
|
} else {
|
|
12010
12118
|
if (data.scaleX) width *= data.scaleX, height *= data.scaleY;
|
|
12011
|
-
|
|
12119
|
+
image.render(canvas, 0, 0, width, height, ui, paint, imageScaleX, imageScaleY);
|
|
12012
12120
|
}
|
|
12013
12121
|
}
|
|
12014
12122
|
|
|
@@ -12038,6 +12146,7 @@ function recycleImage(attrName, data) {
|
|
|
12038
12146
|
if (!recycleMap) recycleMap = {};
|
|
12039
12147
|
recycleMap[url] = true;
|
|
12040
12148
|
ImageManager.recyclePaint(paint);
|
|
12149
|
+
if (data.__willDestroy && image.parent) PaintImage.recycleFilter(image, data.__leaf);
|
|
12041
12150
|
if (image.loading) {
|
|
12042
12151
|
if (!input) {
|
|
12043
12152
|
input = data.__input && data.__input[attrName] || [];
|
|
@@ -12953,4 +13062,4 @@ Object.assign(Creator, {
|
|
|
12953
13062
|
|
|
12954
13063
|
useCanvas();
|
|
12955
13064
|
|
|
12956
|
-
export { AlignHelper, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, Frame, FrameData, Group, GroupData, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, InteractionBase, InteractionHelper, KeyEvent, Keyboard, 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, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|
|
13065
|
+
export { AlignHelper, Answer, App, AroundHelper, AutoBounds, BezierHelper, Bounds, BoundsEvent, BoundsHelper, Box, BoxData, Branch, BranchHelper, BranchRender, Canvas, CanvasData, CanvasManager, ChildEvent, ColorConvert, Creator, Cursor, DataHelper, Debug, Direction4, Direction9, DragBoundsHelper, DragEvent, Dragger, DropEvent, Effect, Ellipse, EllipseData, EllipseHelper, Event, EventCreator, Eventer, Export, FileHelper, Filter, FourNumberHelper, Frame, FrameData, Group, GroupData, HitCanvasManager, Image, ImageData, ImageEvent, ImageManager, IncrementId, InteractionBase, InteractionHelper, KeyEvent, Keyboard, LayoutEvent, Layouter, Leaf, LeafBounds, LeafBoundsHelper, LeafData, LeafDataProxy, LeafEventer, LeafHelper, LeafLayout, LeafLevelList, LeafList, LeafMatrix, LeafRender, Leafer, LeaferCanvas, LeaferCanvasBase, LeaferData, LeaferEvent, LeaferFilm, LeaferImage, LeaferVideo, Line, LineData, MathHelper, Matrix, MatrixHelper, MoveEvent, MyDragEvent, MyImage, MyPointerEvent, MyTouchEvent, NeedConvertToCanvasCommandMap, OneRadian, PI2, PI_2, Paint, PaintGradient, PaintImage, Path, PathArrow, PathBounds, PathCommandDataHelper, PathCommandMap, PathCommandNodeHelper, PathConvert, PathCorner, PathCreator, PathData, PathDrawer, PathHelper, PathNodeHandleType, PathNumberCommandLengthMap, PathNumberCommandMap, Pen, PenData, Picker, Platform, Plugin, Point, PointHelper, PointerButton, PointerEvent, Polygon, PolygonData, PropertyEvent, Rect, RectData, RectHelper, RectRender, RenderEvent, Renderer, ResizeEvent, Resource, RotateEvent, Run, Selector, Star, StarData, State, StringNumberMap, SwipeEvent, TaskItem, TaskProcessor, Text, TextConvert, TextData, TouchEvent, Transition, TwoPointBoundsHelper, UI, UIBounds, UICreator, UIData, UIEvent, UIRender, UnitConvert, UnitConvertHelper, WaitHelper, WatchEvent, Watcher, ZoomEvent, affectRenderBoundsType, affectStrokeBoundsType, attr, autoLayoutType, boundsType, canvasPatch, canvasSizeAttrs, createAttr, createDescriptor, cursorType, dataProcessor, dataType, decorateLeafAttr, defineDataProcessor, defineKey, defineLeafAttr, dimType, doBoundsType, doStrokeType, effectType, emptyData, eraserType, extraPropertyEventMap, getBoundsData, getDescriptor, getMatrixData, getPointData, hitType, isArray, isData, isEmptyData, isFinite, isNull, isNumber, isObject, isString, isUndefined, layoutProcessor, leaferTransformAttrMap, maskType, naturalBoundsType, opacityType, path, pathInputType, pathType, pen, positionType, registerUI, registerUIEvent, resizeType, rewrite, rewriteAble, rotationType, scaleType, scrollType, sortType, strokeType, surfaceType, tempBounds$2 as tempBounds, tempMatrix$2 as tempMatrix, tempPoint$3 as tempPoint, tryToNumber, useCanvas, useModule, version, visibleType, zoomLayerType };
|