@leafer-draw/worker 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/worker.cjs +92 -65
- package/dist/worker.esm.js +80 -67
- package/dist/worker.esm.min.js +1 -1
- package/dist/worker.esm.min.js.map +1 -1
- package/dist/worker.js +139 -86
- 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 +144 -91
- package/dist/worker.module.min.js +1 -1
- package/dist/worker.module.min.js.map +1 -1
- package/package.json +7 -9
- package/src/index.ts +2 -2
- package/types/index.d.ts +1 -8
- package/src/core.ts +0 -86
package/dist/worker.js
CHANGED
|
@@ -7,6 +7,42 @@ var LeaferUI = function(exports) {
|
|
|
7
7
|
PathNodeHandleType[PathNodeHandleType["mirrorAngle"] = 3] = "mirrorAngle";
|
|
8
8
|
PathNodeHandleType[PathNodeHandleType["mirror"] = 4] = "mirror";
|
|
9
9
|
})(exports.PathNodeHandleType || (exports.PathNodeHandleType = {}));
|
|
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
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
16
|
+
function adopt(value) {
|
|
17
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
18
|
+
resolve(value);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
22
|
+
function fulfilled(value) {
|
|
23
|
+
try {
|
|
24
|
+
step(generator.next(value));
|
|
25
|
+
} catch (e) {
|
|
26
|
+
reject(e);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function rejected(value) {
|
|
30
|
+
try {
|
|
31
|
+
step(generator["throw"](value));
|
|
32
|
+
} catch (e) {
|
|
33
|
+
reject(e);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function step(result) {
|
|
37
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
38
|
+
}
|
|
39
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
43
|
+
var e = new Error(message);
|
|
44
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
45
|
+
};
|
|
10
46
|
exports.Answer = void 0;
|
|
11
47
|
(function(Answer) {
|
|
12
48
|
Answer[Answer["No"] = 0] = "No";
|
|
@@ -1803,7 +1839,10 @@ var LeaferUI = function(exports) {
|
|
|
1803
1839
|
list$1[tag] = UI;
|
|
1804
1840
|
},
|
|
1805
1841
|
get(tag, data, x, y, width, height) {
|
|
1806
|
-
if (!list$1[tag])
|
|
1842
|
+
if (!list$1[tag]) {
|
|
1843
|
+
debug$d.warn("not register " + tag);
|
|
1844
|
+
return undefined;
|
|
1845
|
+
}
|
|
1807
1846
|
const ui = new list$1[tag](data);
|
|
1808
1847
|
if (!isUndefined(x)) {
|
|
1809
1848
|
ui.x = x;
|
|
@@ -1888,42 +1927,6 @@ var LeaferUI = function(exports) {
|
|
|
1888
1927
|
this.clear();
|
|
1889
1928
|
}
|
|
1890
1929
|
}
|
|
1891
|
-
function __decorate(decorators, target, key, desc) {
|
|
1892
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1893
|
-
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;
|
|
1894
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1895
|
-
}
|
|
1896
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
1897
|
-
function adopt(value) {
|
|
1898
|
-
return value instanceof P ? value : new P(function(resolve) {
|
|
1899
|
-
resolve(value);
|
|
1900
|
-
});
|
|
1901
|
-
}
|
|
1902
|
-
return new (P || (P = Promise))(function(resolve, reject) {
|
|
1903
|
-
function fulfilled(value) {
|
|
1904
|
-
try {
|
|
1905
|
-
step(generator.next(value));
|
|
1906
|
-
} catch (e) {
|
|
1907
|
-
reject(e);
|
|
1908
|
-
}
|
|
1909
|
-
}
|
|
1910
|
-
function rejected(value) {
|
|
1911
|
-
try {
|
|
1912
|
-
step(generator["throw"](value));
|
|
1913
|
-
} catch (e) {
|
|
1914
|
-
reject(e);
|
|
1915
|
-
}
|
|
1916
|
-
}
|
|
1917
|
-
function step(result) {
|
|
1918
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
1919
|
-
}
|
|
1920
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
1921
|
-
});
|
|
1922
|
-
}
|
|
1923
|
-
typeof SuppressedError === "function" ? SuppressedError : function(error, suppressed, message) {
|
|
1924
|
-
var e = new Error(message);
|
|
1925
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
1926
|
-
};
|
|
1927
1930
|
function contextAttr(realName) {
|
|
1928
1931
|
return (target, key) => {
|
|
1929
1932
|
if (!realName) realName = key;
|
|
@@ -3523,10 +3526,10 @@ var LeaferUI = function(exports) {
|
|
|
3523
3526
|
const FileHelper = {
|
|
3524
3527
|
alphaPixelTypes: [ "png", "webp", "svg" ],
|
|
3525
3528
|
upperCaseTypeMap: {},
|
|
3526
|
-
|
|
3527
|
-
if (!type || type.startsWith(
|
|
3529
|
+
mimeType(type, base = "image") {
|
|
3530
|
+
if (!type || type.startsWith(base)) return type;
|
|
3528
3531
|
if (type === "jpg") type = "jpeg";
|
|
3529
|
-
return "
|
|
3532
|
+
return base + "/" + type;
|
|
3530
3533
|
},
|
|
3531
3534
|
fileType(filename) {
|
|
3532
3535
|
const l = filename.split(".");
|
|
@@ -3557,6 +3560,7 @@ var LeaferUI = function(exports) {
|
|
|
3557
3560
|
}
|
|
3558
3561
|
};
|
|
3559
3562
|
const F = FileHelper;
|
|
3563
|
+
F.mineType = F.mimeType;
|
|
3560
3564
|
F.alphaPixelTypes.forEach(type => F.upperCaseTypeMap[type] = type.toUpperCase());
|
|
3561
3565
|
const debug$8 = Debug.get("TaskProcessor");
|
|
3562
3566
|
class TaskItem {
|
|
@@ -3796,6 +3800,9 @@ var LeaferUI = function(exports) {
|
|
|
3796
3800
|
const debug$7 = Debug.get("Resource");
|
|
3797
3801
|
const Resource = {
|
|
3798
3802
|
tasker: new TaskProcessor,
|
|
3803
|
+
queue: new TaskProcessor({
|
|
3804
|
+
parallel: 1
|
|
3805
|
+
}),
|
|
3799
3806
|
map: {},
|
|
3800
3807
|
get isComplete() {
|
|
3801
3808
|
return R.tasker.isComplete;
|
|
@@ -3832,6 +3839,12 @@ var LeaferUI = function(exports) {
|
|
|
3832
3839
|
R.set(key, value);
|
|
3833
3840
|
return value;
|
|
3834
3841
|
},
|
|
3842
|
+
loadFilm(_key, _format) {
|
|
3843
|
+
return undefined;
|
|
3844
|
+
},
|
|
3845
|
+
loadVideo(_key, _format) {
|
|
3846
|
+
return undefined;
|
|
3847
|
+
},
|
|
3835
3848
|
destroy() {
|
|
3836
3849
|
R.map = {};
|
|
3837
3850
|
}
|
|
@@ -3840,12 +3853,10 @@ var LeaferUI = function(exports) {
|
|
|
3840
3853
|
const ImageManager = {
|
|
3841
3854
|
maxRecycled: 10,
|
|
3842
3855
|
recycledList: [],
|
|
3843
|
-
patternTasker:
|
|
3844
|
-
|
|
3845
|
-
}),
|
|
3846
|
-
get(config) {
|
|
3856
|
+
patternTasker: Resource.queue,
|
|
3857
|
+
get(config, type) {
|
|
3847
3858
|
let image = Resource.get(config.url);
|
|
3848
|
-
if (!image) Resource.set(config.url, image = Creator.image(config));
|
|
3859
|
+
if (!image) Resource.set(config.url, image = type === "film" ? Creator.film(config) : Creator.image(config));
|
|
3849
3860
|
image.use++;
|
|
3850
3861
|
return image;
|
|
3851
3862
|
},
|
|
@@ -3880,7 +3891,7 @@ var LeaferUI = function(exports) {
|
|
|
3880
3891
|
if (config.format) return config.format === format;
|
|
3881
3892
|
const {url: url} = config;
|
|
3882
3893
|
if (url.startsWith("data:")) {
|
|
3883
|
-
if (url.startsWith("data:" + FileHelper.
|
|
3894
|
+
if (url.startsWith("data:" + FileHelper.mimeType(format))) return true;
|
|
3884
3895
|
} else {
|
|
3885
3896
|
if (url.includes("." + format) || url.includes("." + FileHelper.upperCaseTypeMap[format])) return true; else if (format === "png" && !url.includes(".")) return true;
|
|
3886
3897
|
}
|
|
@@ -3893,6 +3904,9 @@ var LeaferUI = function(exports) {
|
|
|
3893
3904
|
const I = ImageManager;
|
|
3894
3905
|
const {IMAGE: IMAGE, create: create$1} = IncrementId;
|
|
3895
3906
|
class LeaferImage {
|
|
3907
|
+
get tag() {
|
|
3908
|
+
return "Image";
|
|
3909
|
+
}
|
|
3896
3910
|
get url() {
|
|
3897
3911
|
return this.config.url;
|
|
3898
3912
|
}
|
|
@@ -3921,7 +3935,7 @@ var LeaferUI = function(exports) {
|
|
|
3921
3935
|
if (!this.loading) {
|
|
3922
3936
|
this.loading = true;
|
|
3923
3937
|
Resource.tasker.add(() => __awaiter(this, void 0, void 0, function*() {
|
|
3924
|
-
return yield Platform.origin.
|
|
3938
|
+
return yield Platform.origin["load" + this.tag](this.getLoadUrl(thumbSize), this.crossOrigin, this).then(img => {
|
|
3925
3939
|
if (thumbSize) this.setThumbView(img);
|
|
3926
3940
|
this.setView(img);
|
|
3927
3941
|
}).catch(e => {
|
|
@@ -3995,6 +4009,9 @@ var LeaferUI = function(exports) {
|
|
|
3995
4009
|
Platform.image.setPatternTransform(pattern, transform, paint);
|
|
3996
4010
|
return pattern;
|
|
3997
4011
|
}
|
|
4012
|
+
render(canvas, x, y, width, height, _leaf, _paint, _imageScaleX, _imageScaleY) {
|
|
4013
|
+
canvas.drawImage(this.view, x, y, width, height);
|
|
4014
|
+
}
|
|
3998
4015
|
getLoadUrl(_thumbSize) {
|
|
3999
4016
|
return this.url;
|
|
4000
4017
|
}
|
|
@@ -4020,6 +4037,16 @@ var LeaferUI = function(exports) {
|
|
|
4020
4037
|
this.waitComplete.length = 0;
|
|
4021
4038
|
}
|
|
4022
4039
|
}
|
|
4040
|
+
class LeaferFilm extends LeaferImage {
|
|
4041
|
+
get tag() {
|
|
4042
|
+
return "Film";
|
|
4043
|
+
}
|
|
4044
|
+
}
|
|
4045
|
+
class LeaferVideo extends LeaferImage {
|
|
4046
|
+
get tag() {
|
|
4047
|
+
return "Video";
|
|
4048
|
+
}
|
|
4049
|
+
}
|
|
4023
4050
|
function defineKey(target, key, descriptor, noConfigurable) {
|
|
4024
4051
|
if (!noConfigurable) descriptor.configurable = descriptor.enumerable = true;
|
|
4025
4052
|
Object.defineProperty(target, key, descriptor);
|
|
@@ -5758,9 +5785,11 @@ var LeaferUI = function(exports) {
|
|
|
5758
5785
|
if (this.__hasMask) {
|
|
5759
5786
|
this.__renderMask(canvas, options);
|
|
5760
5787
|
} else {
|
|
5788
|
+
let child;
|
|
5761
5789
|
const {children: children} = this;
|
|
5762
5790
|
for (let i = 0, len = children.length; i < len; i++) {
|
|
5763
|
-
|
|
5791
|
+
child = children[i];
|
|
5792
|
+
excludeRenderBounds$1(child, options) || (child.__.complex ? child.__renderComplex(canvas, options) : child.__render(canvas, options));
|
|
5764
5793
|
}
|
|
5765
5794
|
}
|
|
5766
5795
|
},
|
|
@@ -6233,6 +6262,7 @@ var LeaferUI = function(exports) {
|
|
|
6233
6262
|
__drawHitPath(_canvas) {}
|
|
6234
6263
|
__updateHitCanvas() {}
|
|
6235
6264
|
__render(_canvas, _options) {}
|
|
6265
|
+
__renderComplex(_canvas, _options) {}
|
|
6236
6266
|
__drawFast(_canvas, _options) {}
|
|
6237
6267
|
__draw(_canvas, _options, _originCanvas) {}
|
|
6238
6268
|
__clip(_canvas, _options) {}
|
|
@@ -6346,6 +6376,7 @@ var LeaferUI = function(exports) {
|
|
|
6346
6376
|
this.add(item, index);
|
|
6347
6377
|
noIndex || index++;
|
|
6348
6378
|
}); else child = UICreator.get(child.tag, child);
|
|
6379
|
+
if (!child) return;
|
|
6349
6380
|
}
|
|
6350
6381
|
if (child.parent) child.parent.remove(child);
|
|
6351
6382
|
child.parent = this;
|
|
@@ -6567,7 +6598,7 @@ var LeaferUI = function(exports) {
|
|
|
6567
6598
|
this.levelMap = null;
|
|
6568
6599
|
}
|
|
6569
6600
|
}
|
|
6570
|
-
const version = "2.0.
|
|
6601
|
+
const version = "2.0.2";
|
|
6571
6602
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6572
6603
|
get allowBackgroundColor() {
|
|
6573
6604
|
return true;
|
|
@@ -6589,7 +6620,6 @@ var LeaferUI = function(exports) {
|
|
|
6589
6620
|
}
|
|
6590
6621
|
canvasPatch(OffscreenCanvasRenderingContext2D.prototype);
|
|
6591
6622
|
canvasPatch(Path2D.prototype);
|
|
6592
|
-
const {mineType: mineType} = FileHelper;
|
|
6593
6623
|
Object.assign(Creator, {
|
|
6594
6624
|
canvas: (options, manager) => new LeaferCanvas(options, manager),
|
|
6595
6625
|
image: options => new LeaferImage(options)
|
|
@@ -6599,7 +6629,7 @@ var LeaferUI = function(exports) {
|
|
|
6599
6629
|
createCanvas: (width, height) => new OffscreenCanvas(width, height),
|
|
6600
6630
|
canvasToDataURL: (canvas, type, quality) => new Promise((resolve, reject) => {
|
|
6601
6631
|
canvas.convertToBlob({
|
|
6602
|
-
type:
|
|
6632
|
+
type: FileHelper.mimeType(type),
|
|
6603
6633
|
quality: quality
|
|
6604
6634
|
}).then(blob => {
|
|
6605
6635
|
var reader = new FileReader;
|
|
@@ -6611,14 +6641,14 @@ var LeaferUI = function(exports) {
|
|
|
6611
6641
|
});
|
|
6612
6642
|
}),
|
|
6613
6643
|
canvasToBolb: (canvas, type, quality) => canvas.convertToBlob({
|
|
6614
|
-
type:
|
|
6644
|
+
type: FileHelper.mimeType(type),
|
|
6615
6645
|
quality: quality
|
|
6616
6646
|
}),
|
|
6617
6647
|
canvasSaveAs: (_canvas, _filename, _quality) => new Promise(resolve => resolve()),
|
|
6618
6648
|
download(_url, _filename) {
|
|
6619
6649
|
return undefined;
|
|
6620
6650
|
},
|
|
6621
|
-
loadImage(src) {
|
|
6651
|
+
loadImage(src, _crossOrigin, _leaferImage) {
|
|
6622
6652
|
return new Promise((resolve, reject) => {
|
|
6623
6653
|
let req = new XMLHttpRequest;
|
|
6624
6654
|
req.open("GET", Platform.image.getRealURL(src), true);
|
|
@@ -6633,6 +6663,13 @@ var LeaferUI = function(exports) {
|
|
|
6633
6663
|
req.onerror = e => reject(e);
|
|
6634
6664
|
req.send();
|
|
6635
6665
|
});
|
|
6666
|
+
},
|
|
6667
|
+
loadContent(url_1) {
|
|
6668
|
+
return __awaiter(this, arguments, void 0, function*(url, responseType = "text") {
|
|
6669
|
+
const response = yield fetch(url);
|
|
6670
|
+
if (!response.ok) throw new Error(`${response.status}`);
|
|
6671
|
+
return yield response[responseType]();
|
|
6672
|
+
});
|
|
6636
6673
|
}
|
|
6637
6674
|
};
|
|
6638
6675
|
Platform.canvas = Creator.canvas();
|
|
@@ -7111,7 +7148,7 @@ var LeaferUI = function(exports) {
|
|
|
7111
7148
|
getCellList() {
|
|
7112
7149
|
return undefined;
|
|
7113
7150
|
}
|
|
7114
|
-
addBlock(block) {
|
|
7151
|
+
addBlock(block, _leafList) {
|
|
7115
7152
|
if (!this.updateBlocks) this.updateBlocks = [];
|
|
7116
7153
|
this.updateBlocks.push(block);
|
|
7117
7154
|
}
|
|
@@ -7159,7 +7196,8 @@ var LeaferUI = function(exports) {
|
|
|
7159
7196
|
__onLayoutEnd(event) {
|
|
7160
7197
|
if (event.data) event.data.map(item => {
|
|
7161
7198
|
let empty;
|
|
7162
|
-
|
|
7199
|
+
const {updatedList: updatedList} = item;
|
|
7200
|
+
if (updatedList) updatedList.list.some(leaf => {
|
|
7163
7201
|
empty = !leaf.__world.width || !leaf.__world.height;
|
|
7164
7202
|
if (empty) {
|
|
7165
7203
|
if (!leaf.isLeafer) debug$2.tip(leaf.innerName, ": empty");
|
|
@@ -7167,7 +7205,7 @@ var LeaferUI = function(exports) {
|
|
|
7167
7205
|
}
|
|
7168
7206
|
return empty;
|
|
7169
7207
|
});
|
|
7170
|
-
this.addBlock(empty ? this.canvas.bounds : item.updatedBounds);
|
|
7208
|
+
this.addBlock(empty ? this.canvas.bounds : item.updatedBounds, updatedList);
|
|
7171
7209
|
});
|
|
7172
7210
|
}
|
|
7173
7211
|
emitRender(type, bounds, options) {
|
|
@@ -7534,13 +7572,16 @@ var LeaferUI = function(exports) {
|
|
|
7534
7572
|
}
|
|
7535
7573
|
}
|
|
7536
7574
|
class ImageData extends RectData {
|
|
7575
|
+
get __urlType() {
|
|
7576
|
+
return "image";
|
|
7577
|
+
}
|
|
7537
7578
|
setUrl(value) {
|
|
7538
7579
|
this.__setImageFill(value);
|
|
7539
7580
|
this._url = value;
|
|
7540
7581
|
}
|
|
7541
7582
|
__setImageFill(value) {
|
|
7542
7583
|
this.fill = value ? {
|
|
7543
|
-
type:
|
|
7584
|
+
type: this.__urlType,
|
|
7544
7585
|
mode: "stretch",
|
|
7545
7586
|
url: value
|
|
7546
7587
|
} : undefined;
|
|
@@ -7956,7 +7997,10 @@ var LeaferUI = function(exports) {
|
|
|
7956
7997
|
}
|
|
7957
7998
|
toJSON(options) {
|
|
7958
7999
|
const data = super.toJSON(options);
|
|
7959
|
-
if (!this.childlessJSON)
|
|
8000
|
+
if (!this.childlessJSON) {
|
|
8001
|
+
const children = data.children = [];
|
|
8002
|
+
this.children.forEach(child => child.skipJSON || children.push(child.toJSON(options)));
|
|
8003
|
+
}
|
|
7960
8004
|
return data;
|
|
7961
8005
|
}
|
|
7962
8006
|
pick(_hitPoint, _options) {
|
|
@@ -8098,12 +8142,12 @@ var LeaferUI = function(exports) {
|
|
|
8098
8142
|
this.emitLeafer(LeaferEvent.STOP);
|
|
8099
8143
|
}
|
|
8100
8144
|
}
|
|
8101
|
-
unlockLayout() {
|
|
8145
|
+
unlockLayout(updateLayout = true) {
|
|
8102
8146
|
this.layouter.start();
|
|
8103
|
-
this.updateLayout();
|
|
8147
|
+
if (updateLayout) this.updateLayout();
|
|
8104
8148
|
}
|
|
8105
|
-
lockLayout() {
|
|
8106
|
-
this.updateLayout();
|
|
8149
|
+
lockLayout(updateLayout = true) {
|
|
8150
|
+
if (updateLayout) this.updateLayout();
|
|
8107
8151
|
this.layouter.stop();
|
|
8108
8152
|
}
|
|
8109
8153
|
resize(size) {
|
|
@@ -9150,11 +9194,14 @@ var LeaferUI = function(exports) {
|
|
|
9150
9194
|
function getLeafPaint(attrName, paint, ui) {
|
|
9151
9195
|
if (!isObject(paint) || paint.visible === false || paint.opacity === 0) return undefined;
|
|
9152
9196
|
let leafPaint;
|
|
9153
|
-
const {boxBounds: boxBounds} = ui.__layout;
|
|
9154
|
-
switch (
|
|
9197
|
+
const {boxBounds: boxBounds} = ui.__layout, {type: type} = paint;
|
|
9198
|
+
switch (type) {
|
|
9155
9199
|
case "image":
|
|
9200
|
+
case "film":
|
|
9201
|
+
case "video":
|
|
9156
9202
|
if (!paint.url) return undefined;
|
|
9157
9203
|
leafPaint = PaintImage.image(ui, attrName, paint, boxBounds, !recycleMap || !recycleMap[paint.url]);
|
|
9204
|
+
if (type !== "image") PaintImage[type](leafPaint);
|
|
9158
9205
|
break;
|
|
9159
9206
|
|
|
9160
9207
|
case "linear":
|
|
@@ -9170,7 +9217,7 @@ var LeaferUI = function(exports) {
|
|
|
9170
9217
|
break;
|
|
9171
9218
|
|
|
9172
9219
|
case "solid":
|
|
9173
|
-
const {
|
|
9220
|
+
const {color: color, opacity: opacity} = paint;
|
|
9174
9221
|
leafPaint = {
|
|
9175
9222
|
type: type,
|
|
9176
9223
|
style: ColorConvert.string(color, opacity)
|
|
@@ -9210,7 +9257,7 @@ var LeaferUI = function(exports) {
|
|
|
9210
9257
|
const {isSame: isSame} = BoundsHelper;
|
|
9211
9258
|
function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
9212
9259
|
let leafPaint, event;
|
|
9213
|
-
const image = ImageManager.get(paint);
|
|
9260
|
+
const image = ImageManager.get(paint, paint.type);
|
|
9214
9261
|
if (cache && paint === cache.paint && isSame(boxBounds, cache.boxBounds)) {
|
|
9215
9262
|
leafPaint = cache.leafPaint;
|
|
9216
9263
|
} else {
|
|
@@ -9270,8 +9317,8 @@ var LeaferUI = function(exports) {
|
|
|
9270
9317
|
return leafPaint;
|
|
9271
9318
|
}
|
|
9272
9319
|
function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds) {
|
|
9273
|
-
|
|
9274
|
-
|
|
9320
|
+
const data = ui.__;
|
|
9321
|
+
if (attrName === "fill" && !data.__naturalWidth) {
|
|
9275
9322
|
data.__naturalWidth = image.width / data.pixelRatio;
|
|
9276
9323
|
data.__naturalHeight = image.height / data.pixelRatio;
|
|
9277
9324
|
if (data.__autoSide) {
|
|
@@ -9283,7 +9330,12 @@ var LeaferUI = function(exports) {
|
|
|
9283
9330
|
return false;
|
|
9284
9331
|
}
|
|
9285
9332
|
}
|
|
9286
|
-
if (!leafPaint.data)
|
|
9333
|
+
if (!leafPaint.data) {
|
|
9334
|
+
PaintImage.createData(leafPaint, image, paint, boxBounds);
|
|
9335
|
+
const {transform: transform} = leafPaint.data, {opacity: opacity, blendMode: blendMode} = paint;
|
|
9336
|
+
const clip = transform && !transform.onlyScale || data.path || data.cornerRadius;
|
|
9337
|
+
if (clip || opacity && opacity < 1 || blendMode) leafPaint.complex = clip ? 2 : true;
|
|
9338
|
+
}
|
|
9287
9339
|
return true;
|
|
9288
9340
|
}
|
|
9289
9341
|
function onLoad(ui, event) {
|
|
@@ -9315,7 +9367,7 @@ var LeaferUI = function(exports) {
|
|
|
9315
9367
|
if (paint.padding) box = tempBox.set(box).shrink(paint.padding);
|
|
9316
9368
|
if (paint.mode === "strench") paint.mode = "stretch";
|
|
9317
9369
|
const {width: width, height: height} = image;
|
|
9318
|
-
const {
|
|
9370
|
+
const {mode: mode, align: align, offset: offset, scale: scale, size: size, rotation: rotation, skew: skew, clipSize: clipSize, repeat: repeat, gap: gap, interlace: interlace} = paint;
|
|
9319
9371
|
const sameBox = box.width === width && box.height === height;
|
|
9320
9372
|
const data = {
|
|
9321
9373
|
mode: mode
|
|
@@ -9378,8 +9430,6 @@ var LeaferUI = function(exports) {
|
|
|
9378
9430
|
data.scaleX = scaleX;
|
|
9379
9431
|
data.scaleY = scaleY;
|
|
9380
9432
|
}
|
|
9381
|
-
if (opacity && opacity < 1) data.opacity = opacity;
|
|
9382
|
-
if (filters) data.filters = filters;
|
|
9383
9433
|
if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
|
|
9384
9434
|
if (interlace) data.interlace = isNumber(interlace) || interlace.type === "percent" ? {
|
|
9385
9435
|
type: "x",
|
|
@@ -9405,7 +9455,7 @@ var LeaferUI = function(exports) {
|
|
|
9405
9455
|
const {get: get$2, set: set, rotateOfOuter: rotateOfOuter$1, translate: translate, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
9406
9456
|
function stretchMode(data, box, scaleX, scaleY) {
|
|
9407
9457
|
const transform = get$2(), {x: x, y: y} = box;
|
|
9408
|
-
if (x || y) translate(transform, x, y); else transform.onlyScale = true;
|
|
9458
|
+
if (x || y) translate(transform, x, y); else if (scaleX > 0 && scaleY > 0) transform.onlyScale = true;
|
|
9409
9459
|
scaleHelper(transform, scaleX, scaleY);
|
|
9410
9460
|
data.transform = transform;
|
|
9411
9461
|
}
|
|
@@ -9486,10 +9536,10 @@ var LeaferUI = function(exports) {
|
|
|
9486
9536
|
}
|
|
9487
9537
|
}
|
|
9488
9538
|
function createPattern(paint, ui, canvas, renderOptions) {
|
|
9489
|
-
let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = scaleX + "-" + scaleY;
|
|
9539
|
+
let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
|
|
9490
9540
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
9491
9541
|
if (!(Platform.image.isLarge(paint.image, scaleX, scaleY) && !paint.data.repeat)) {
|
|
9492
|
-
const {image: image, data: data} = paint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
|
|
9542
|
+
const {image: image, data: data} = paint, {opacity: opacity, filters: filters} = paint.originPaint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
|
|
9493
9543
|
let imageMatrix, xGap, yGap, {width: width, height: height} = image;
|
|
9494
9544
|
if (fixScale) scaleX *= fixScale, scaleY *= fixScale;
|
|
9495
9545
|
width *= scaleX;
|
|
@@ -9505,7 +9555,7 @@ var LeaferUI = function(exports) {
|
|
|
9505
9555
|
if (transform) copy$1(imageMatrix, transform);
|
|
9506
9556
|
scale(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
9507
9557
|
}
|
|
9508
|
-
const imageCanvas = image.getCanvas(width, height,
|
|
9558
|
+
const imageCanvas = image.getCanvas(width, height, opacity, filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth, data.interlace);
|
|
9509
9559
|
const pattern = image.getPattern(imageCanvas, data.repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
9510
9560
|
paint.style = pattern;
|
|
9511
9561
|
paint.patternId = id;
|
|
@@ -9524,15 +9574,15 @@ var LeaferUI = function(exports) {
|
|
|
9524
9574
|
return fixScale;
|
|
9525
9575
|
}
|
|
9526
9576
|
function checkImage(paint, drawImage, ui, canvas, renderOptions) {
|
|
9527
|
-
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions);
|
|
9577
|
+
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
|
|
9528
9578
|
const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting, snapshot: snapshot} = renderOptions;
|
|
9529
|
-
if (!data || paint.patternId ===
|
|
9579
|
+
if (!data || paint.patternId === id && !exporting || snapshot) {
|
|
9530
9580
|
return false;
|
|
9531
9581
|
} else {
|
|
9532
9582
|
if (drawImage) {
|
|
9533
9583
|
if (data.repeat) {
|
|
9534
9584
|
drawImage = false;
|
|
9535
|
-
} else if (!(originPaint.changeful || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || exporting)) {
|
|
9585
|
+
} else if (!(originPaint.changeful || paint.film || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || exporting)) {
|
|
9536
9586
|
drawImage = Platform.image.isLarge(image, scaleX, scaleY) || image.width * scaleX > 8096 || image.height * scaleY > 8096;
|
|
9537
9587
|
}
|
|
9538
9588
|
}
|
|
@@ -9549,20 +9599,21 @@ var LeaferUI = function(exports) {
|
|
|
9549
9599
|
}
|
|
9550
9600
|
}
|
|
9551
9601
|
}
|
|
9552
|
-
function drawImage(paint,
|
|
9553
|
-
const {data: data, image: image
|
|
9554
|
-
let {width: width, height: height} = image
|
|
9555
|
-
if (
|
|
9602
|
+
function drawImage(paint, imageScaleX, imageScaleY, ui, canvas, _renderOptions) {
|
|
9603
|
+
const {data: data, image: image, complex: complex} = paint;
|
|
9604
|
+
let {width: width, height: height} = image;
|
|
9605
|
+
if (complex) {
|
|
9606
|
+
const {blendMode: blendMode, opacity: opacity} = paint.originPaint, {transform: transform} = data;
|
|
9556
9607
|
canvas.save();
|
|
9557
|
-
|
|
9608
|
+
complex === 2 && canvas.clipUI(ui);
|
|
9558
9609
|
blendMode && (canvas.blendMode = blendMode);
|
|
9559
9610
|
opacity && (canvas.opacity *= opacity);
|
|
9560
9611
|
transform && canvas.transform(transform);
|
|
9561
|
-
|
|
9612
|
+
image.render(canvas, 0, 0, width, height, ui, paint, imageScaleX, imageScaleY);
|
|
9562
9613
|
canvas.restore();
|
|
9563
9614
|
} else {
|
|
9564
9615
|
if (data.scaleX) width *= data.scaleX, height *= data.scaleY;
|
|
9565
|
-
|
|
9616
|
+
image.render(canvas, 0, 0, width, height, ui, paint, imageScaleX, imageScaleY);
|
|
9566
9617
|
}
|
|
9567
9618
|
}
|
|
9568
9619
|
function getImageRenderScaleData(paint, ui, canvas, _renderOptions) {
|
|
@@ -10449,7 +10500,9 @@ var LeaferUI = function(exports) {
|
|
|
10449
10500
|
exports.LeaferCanvasBase = LeaferCanvasBase;
|
|
10450
10501
|
exports.LeaferData = LeaferData;
|
|
10451
10502
|
exports.LeaferEvent = LeaferEvent;
|
|
10503
|
+
exports.LeaferFilm = LeaferFilm;
|
|
10452
10504
|
exports.LeaferImage = LeaferImage;
|
|
10505
|
+
exports.LeaferVideo = LeaferVideo;
|
|
10453
10506
|
exports.LineData = LineData;
|
|
10454
10507
|
exports.MathHelper = MathHelper;
|
|
10455
10508
|
exports.Matrix = Matrix;
|