leafer-game 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/web.js +145 -90
- package/dist/web.min.js +1 -1
- package/dist/web.min.js.map +1 -1
- package/dist/web.module.js +150 -95
- package/dist/web.module.min.js +1 -1
- package/dist/web.module.min.js.map +1 -1
- package/package.json +12 -12
package/dist/web.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$f.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$a = Debug.get("TaskProcessor");
|
|
3562
3566
|
class TaskItem {
|
|
@@ -3796,6 +3800,9 @@ var LeaferUI = function(exports) {
|
|
|
3796
3800
|
const debug$9 = 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$1 = 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
|
const debug$5 = Debug.get("LeaferCanvas");
|
|
6572
6603
|
class LeaferCanvas extends LeaferCanvasBase {
|
|
6573
6604
|
set zIndex(zIndex) {
|
|
@@ -6767,7 +6798,6 @@ var LeaferUI = function(exports) {
|
|
|
6767
6798
|
}
|
|
6768
6799
|
canvasPatch(CanvasRenderingContext2D.prototype);
|
|
6769
6800
|
canvasPatch(Path2D.prototype);
|
|
6770
|
-
const {mineType: mineType, fileType: fileType} = FileHelper;
|
|
6771
6801
|
Object.assign(Creator, {
|
|
6772
6802
|
canvas: (options, manager) => new LeaferCanvas(options, manager),
|
|
6773
6803
|
image: options => new LeaferImage(options)
|
|
@@ -6781,29 +6811,27 @@ var LeaferUI = function(exports) {
|
|
|
6781
6811
|
return canvas;
|
|
6782
6812
|
},
|
|
6783
6813
|
canvasToDataURL: (canvas, type, quality) => {
|
|
6784
|
-
const imageType =
|
|
6814
|
+
const imageType = FileHelper.mimeType(type), url = canvas.toDataURL(imageType, quality);
|
|
6785
6815
|
return imageType === "image/bmp" ? url.replace("image/png;", "image/bmp;") : url;
|
|
6786
6816
|
},
|
|
6787
|
-
canvasToBolb: (canvas, type, quality) => new Promise(resolve => canvas.toBlob(resolve,
|
|
6817
|
+
canvasToBolb: (canvas, type, quality) => new Promise(resolve => canvas.toBlob(resolve, FileHelper.mimeType(type), quality)),
|
|
6788
6818
|
canvasSaveAs: (canvas, filename, quality) => {
|
|
6789
|
-
const url = canvas.toDataURL(
|
|
6819
|
+
const url = canvas.toDataURL(FileHelper.mimeType(FileHelper.fileType(filename)), quality);
|
|
6790
6820
|
return Platform.origin.download(url, filename);
|
|
6791
6821
|
},
|
|
6792
6822
|
download(url, filename) {
|
|
6793
|
-
return
|
|
6823
|
+
return __awaiter(this, void 0, void 0, function*() {
|
|
6794
6824
|
let el = document.createElement("a");
|
|
6795
6825
|
el.href = url;
|
|
6796
6826
|
el.download = filename;
|
|
6797
6827
|
document.body.appendChild(el);
|
|
6798
6828
|
el.click();
|
|
6799
6829
|
document.body.removeChild(el);
|
|
6800
|
-
resolve();
|
|
6801
6830
|
});
|
|
6802
6831
|
},
|
|
6803
|
-
loadImage(src) {
|
|
6832
|
+
loadImage(src, crossOrigin, _leaferImage) {
|
|
6804
6833
|
return new Promise((resolve, reject) => {
|
|
6805
6834
|
const img = new Platform.origin.Image;
|
|
6806
|
-
const {crossOrigin: crossOrigin} = Platform.image;
|
|
6807
6835
|
if (crossOrigin) {
|
|
6808
6836
|
img.setAttribute("crossOrigin", crossOrigin);
|
|
6809
6837
|
img.crossOrigin = crossOrigin;
|
|
@@ -6817,6 +6845,13 @@ var LeaferUI = function(exports) {
|
|
|
6817
6845
|
img.src = Platform.image.getRealURL(src);
|
|
6818
6846
|
});
|
|
6819
6847
|
},
|
|
6848
|
+
loadContent(url_1) {
|
|
6849
|
+
return __awaiter(this, arguments, void 0, function*(url, responseType = "text") {
|
|
6850
|
+
const response = yield fetch(url);
|
|
6851
|
+
if (!response.ok) throw new Error(`${response.status}`);
|
|
6852
|
+
return yield response[responseType]();
|
|
6853
|
+
});
|
|
6854
|
+
},
|
|
6820
6855
|
Image: Image,
|
|
6821
6856
|
PointerEvent: PointerEvent,
|
|
6822
6857
|
DragEvent: DragEvent
|
|
@@ -7308,7 +7343,7 @@ var LeaferUI = function(exports) {
|
|
|
7308
7343
|
getCellList() {
|
|
7309
7344
|
return undefined;
|
|
7310
7345
|
}
|
|
7311
|
-
addBlock(block) {
|
|
7346
|
+
addBlock(block, _leafList) {
|
|
7312
7347
|
if (!this.updateBlocks) this.updateBlocks = [];
|
|
7313
7348
|
this.updateBlocks.push(block);
|
|
7314
7349
|
}
|
|
@@ -7356,7 +7391,8 @@ var LeaferUI = function(exports) {
|
|
|
7356
7391
|
__onLayoutEnd(event) {
|
|
7357
7392
|
if (event.data) event.data.map(item => {
|
|
7358
7393
|
let empty;
|
|
7359
|
-
|
|
7394
|
+
const {updatedList: updatedList} = item;
|
|
7395
|
+
if (updatedList) updatedList.list.some(leaf => {
|
|
7360
7396
|
empty = !leaf.__world.width || !leaf.__world.height;
|
|
7361
7397
|
if (empty) {
|
|
7362
7398
|
if (!leaf.isLeafer) debug$3.tip(leaf.innerName, ": empty");
|
|
@@ -7364,7 +7400,7 @@ var LeaferUI = function(exports) {
|
|
|
7364
7400
|
}
|
|
7365
7401
|
return empty;
|
|
7366
7402
|
});
|
|
7367
|
-
this.addBlock(empty ? this.canvas.bounds : item.updatedBounds);
|
|
7403
|
+
this.addBlock(empty ? this.canvas.bounds : item.updatedBounds, updatedList);
|
|
7368
7404
|
});
|
|
7369
7405
|
}
|
|
7370
7406
|
emitRender(type, bounds, options) {
|
|
@@ -7926,13 +7962,16 @@ var LeaferUI = function(exports) {
|
|
|
7926
7962
|
}
|
|
7927
7963
|
}
|
|
7928
7964
|
class ImageData extends RectData {
|
|
7965
|
+
get __urlType() {
|
|
7966
|
+
return "image";
|
|
7967
|
+
}
|
|
7929
7968
|
setUrl(value) {
|
|
7930
7969
|
this.__setImageFill(value);
|
|
7931
7970
|
this._url = value;
|
|
7932
7971
|
}
|
|
7933
7972
|
__setImageFill(value) {
|
|
7934
7973
|
this.fill = value ? {
|
|
7935
|
-
type:
|
|
7974
|
+
type: this.__urlType,
|
|
7936
7975
|
mode: "stretch",
|
|
7937
7976
|
url: value
|
|
7938
7977
|
} : undefined;
|
|
@@ -8348,7 +8387,10 @@ var LeaferUI = function(exports) {
|
|
|
8348
8387
|
}
|
|
8349
8388
|
toJSON(options) {
|
|
8350
8389
|
const data = super.toJSON(options);
|
|
8351
|
-
if (!this.childlessJSON)
|
|
8390
|
+
if (!this.childlessJSON) {
|
|
8391
|
+
const children = data.children = [];
|
|
8392
|
+
this.children.forEach(child => child.skipJSON || children.push(child.toJSON(options)));
|
|
8393
|
+
}
|
|
8352
8394
|
return data;
|
|
8353
8395
|
}
|
|
8354
8396
|
pick(_hitPoint, _options) {
|
|
@@ -8490,12 +8532,12 @@ var LeaferUI = function(exports) {
|
|
|
8490
8532
|
this.emitLeafer(LeaferEvent.STOP);
|
|
8491
8533
|
}
|
|
8492
8534
|
}
|
|
8493
|
-
unlockLayout() {
|
|
8535
|
+
unlockLayout(updateLayout = true) {
|
|
8494
8536
|
this.layouter.start();
|
|
8495
|
-
this.updateLayout();
|
|
8537
|
+
if (updateLayout) this.updateLayout();
|
|
8496
8538
|
}
|
|
8497
|
-
lockLayout() {
|
|
8498
|
-
this.updateLayout();
|
|
8539
|
+
lockLayout(updateLayout = true) {
|
|
8540
|
+
if (updateLayout) this.updateLayout();
|
|
8499
8541
|
this.layouter.stop();
|
|
8500
8542
|
}
|
|
8501
8543
|
resize(size) {
|
|
@@ -10074,6 +10116,7 @@ var LeaferUI = function(exports) {
|
|
|
10074
10116
|
this.checkPath(data, useDefaultPath);
|
|
10075
10117
|
this.downTime = Date.now();
|
|
10076
10118
|
this.emit(exports.PointerEvent.BEFORE_DOWN, data);
|
|
10119
|
+
if (data.path.needUpdate) this.updateDownData(data);
|
|
10077
10120
|
this.emit(exports.PointerEvent.DOWN, data);
|
|
10078
10121
|
if (PointerButton.left(data)) {
|
|
10079
10122
|
this.tapWait();
|
|
@@ -11247,11 +11290,14 @@ var LeaferUI = function(exports) {
|
|
|
11247
11290
|
function getLeafPaint(attrName, paint, ui) {
|
|
11248
11291
|
if (!isObject(paint) || paint.visible === false || paint.opacity === 0) return undefined;
|
|
11249
11292
|
let leafPaint;
|
|
11250
|
-
const {boxBounds: boxBounds} = ui.__layout;
|
|
11251
|
-
switch (
|
|
11293
|
+
const {boxBounds: boxBounds} = ui.__layout, {type: type} = paint;
|
|
11294
|
+
switch (type) {
|
|
11252
11295
|
case "image":
|
|
11296
|
+
case "film":
|
|
11297
|
+
case "video":
|
|
11253
11298
|
if (!paint.url) return undefined;
|
|
11254
11299
|
leafPaint = PaintImage.image(ui, attrName, paint, boxBounds, !recycleMap || !recycleMap[paint.url]);
|
|
11300
|
+
if (type !== "image") PaintImage[type](leafPaint);
|
|
11255
11301
|
break;
|
|
11256
11302
|
|
|
11257
11303
|
case "linear":
|
|
@@ -11267,7 +11313,7 @@ var LeaferUI = function(exports) {
|
|
|
11267
11313
|
break;
|
|
11268
11314
|
|
|
11269
11315
|
case "solid":
|
|
11270
|
-
const {
|
|
11316
|
+
const {color: color, opacity: opacity} = paint;
|
|
11271
11317
|
leafPaint = {
|
|
11272
11318
|
type: type,
|
|
11273
11319
|
style: ColorConvert.string(color, opacity)
|
|
@@ -11307,7 +11353,7 @@ var LeaferUI = function(exports) {
|
|
|
11307
11353
|
const {isSame: isSame} = BoundsHelper;
|
|
11308
11354
|
function image(ui, attrName, paint, boxBounds, firstUse) {
|
|
11309
11355
|
let leafPaint, event;
|
|
11310
|
-
const image = ImageManager.get(paint);
|
|
11356
|
+
const image = ImageManager.get(paint, paint.type);
|
|
11311
11357
|
if (cache$1 && paint === cache$1.paint && isSame(boxBounds, cache$1.boxBounds)) {
|
|
11312
11358
|
leafPaint = cache$1.leafPaint;
|
|
11313
11359
|
} else {
|
|
@@ -11367,8 +11413,8 @@ var LeaferUI = function(exports) {
|
|
|
11367
11413
|
return leafPaint;
|
|
11368
11414
|
}
|
|
11369
11415
|
function checkSizeAndCreateData(ui, attrName, paint, image, leafPaint, boxBounds) {
|
|
11370
|
-
|
|
11371
|
-
|
|
11416
|
+
const data = ui.__;
|
|
11417
|
+
if (attrName === "fill" && !data.__naturalWidth) {
|
|
11372
11418
|
data.__naturalWidth = image.width / data.pixelRatio;
|
|
11373
11419
|
data.__naturalHeight = image.height / data.pixelRatio;
|
|
11374
11420
|
if (data.__autoSide) {
|
|
@@ -11380,7 +11426,12 @@ var LeaferUI = function(exports) {
|
|
|
11380
11426
|
return false;
|
|
11381
11427
|
}
|
|
11382
11428
|
}
|
|
11383
|
-
if (!leafPaint.data)
|
|
11429
|
+
if (!leafPaint.data) {
|
|
11430
|
+
PaintImage.createData(leafPaint, image, paint, boxBounds);
|
|
11431
|
+
const {transform: transform} = leafPaint.data, {opacity: opacity, blendMode: blendMode} = paint;
|
|
11432
|
+
const clip = transform && !transform.onlyScale || data.path || data.cornerRadius;
|
|
11433
|
+
if (clip || opacity && opacity < 1 || blendMode) leafPaint.complex = clip ? 2 : true;
|
|
11434
|
+
}
|
|
11384
11435
|
return true;
|
|
11385
11436
|
}
|
|
11386
11437
|
function onLoad(ui, event) {
|
|
@@ -11412,7 +11463,7 @@ var LeaferUI = function(exports) {
|
|
|
11412
11463
|
if (paint.padding) box = tempBox.set(box).shrink(paint.padding);
|
|
11413
11464
|
if (paint.mode === "strench") paint.mode = "stretch";
|
|
11414
11465
|
const {width: width, height: height} = image;
|
|
11415
|
-
const {
|
|
11466
|
+
const {mode: mode, align: align, offset: offset, scale: scale, size: size, rotation: rotation, skew: skew, clipSize: clipSize, repeat: repeat, gap: gap, interlace: interlace} = paint;
|
|
11416
11467
|
const sameBox = box.width === width && box.height === height;
|
|
11417
11468
|
const data = {
|
|
11418
11469
|
mode: mode
|
|
@@ -11475,8 +11526,6 @@ var LeaferUI = function(exports) {
|
|
|
11475
11526
|
data.scaleX = scaleX;
|
|
11476
11527
|
data.scaleY = scaleY;
|
|
11477
11528
|
}
|
|
11478
|
-
if (opacity && opacity < 1) data.opacity = opacity;
|
|
11479
|
-
if (filters) data.filters = filters;
|
|
11480
11529
|
if (repeat) data.repeat = isString(repeat) ? repeat === "x" ? "repeat-x" : "repeat-y" : "repeat";
|
|
11481
11530
|
if (interlace) data.interlace = isNumber(interlace) || interlace.type === "percent" ? {
|
|
11482
11531
|
type: "x",
|
|
@@ -11502,7 +11551,7 @@ var LeaferUI = function(exports) {
|
|
|
11502
11551
|
const {get: get$2, set: set, rotateOfOuter: rotateOfOuter$1, translate: translate, scaleOfOuter: scaleOfOuter$1, multiplyParent: multiplyParent, scale: scaleHelper, rotate: rotate, skew: skewHelper} = MatrixHelper;
|
|
11503
11552
|
function stretchMode(data, box, scaleX, scaleY) {
|
|
11504
11553
|
const transform = get$2(), {x: x, y: y} = box;
|
|
11505
|
-
if (x || y) translate(transform, x, y); else transform.onlyScale = true;
|
|
11554
|
+
if (x || y) translate(transform, x, y); else if (scaleX > 0 && scaleY > 0) transform.onlyScale = true;
|
|
11506
11555
|
scaleHelper(transform, scaleX, scaleY);
|
|
11507
11556
|
data.transform = transform;
|
|
11508
11557
|
}
|
|
@@ -11583,10 +11632,10 @@ var LeaferUI = function(exports) {
|
|
|
11583
11632
|
}
|
|
11584
11633
|
}
|
|
11585
11634
|
function createPattern(paint, ui, canvas, renderOptions) {
|
|
11586
|
-
let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = scaleX + "-" + scaleY;
|
|
11635
|
+
let {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
|
|
11587
11636
|
if (paint.patternId !== id && !ui.destroyed) {
|
|
11588
11637
|
if (!(Platform.image.isLarge(paint.image, scaleX, scaleY) && !paint.data.repeat)) {
|
|
11589
|
-
const {image: image, data: data} = paint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
|
|
11638
|
+
const {image: image, data: data} = paint, {opacity: opacity, filters: filters} = paint.originPaint, {transform: transform, gap: gap} = data, fixScale = PaintImage.getPatternFixScale(paint, scaleX, scaleY);
|
|
11590
11639
|
let imageMatrix, xGap, yGap, {width: width, height: height} = image;
|
|
11591
11640
|
if (fixScale) scaleX *= fixScale, scaleY *= fixScale;
|
|
11592
11641
|
width *= scaleX;
|
|
@@ -11602,7 +11651,7 @@ var LeaferUI = function(exports) {
|
|
|
11602
11651
|
if (transform) copy$1(imageMatrix, transform);
|
|
11603
11652
|
scale(imageMatrix, 1 / scaleX, 1 / scaleY);
|
|
11604
11653
|
}
|
|
11605
|
-
const imageCanvas = image.getCanvas(width, height,
|
|
11654
|
+
const imageCanvas = image.getCanvas(width, height, opacity, filters, xGap, yGap, ui.leafer && ui.leafer.config.smooth, data.interlace);
|
|
11606
11655
|
const pattern = image.getPattern(imageCanvas, data.repeat || (Platform.origin.noRepeat || "no-repeat"), imageMatrix, paint);
|
|
11607
11656
|
paint.style = pattern;
|
|
11608
11657
|
paint.patternId = id;
|
|
@@ -11621,15 +11670,15 @@ var LeaferUI = function(exports) {
|
|
|
11621
11670
|
return fixScale;
|
|
11622
11671
|
}
|
|
11623
11672
|
function checkImage(paint, drawImage, ui, canvas, renderOptions) {
|
|
11624
|
-
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions);
|
|
11673
|
+
const {scaleX: scaleX, scaleY: scaleY} = PaintImage.getImageRenderScaleData(paint, ui, canvas, renderOptions), id = paint.film ? paint.nowIndex : scaleX + "-" + scaleY;
|
|
11625
11674
|
const {image: image, data: data, originPaint: originPaint} = paint, {exporting: exporting, snapshot: snapshot} = renderOptions;
|
|
11626
|
-
if (!data || paint.patternId ===
|
|
11675
|
+
if (!data || paint.patternId === id && !exporting || snapshot) {
|
|
11627
11676
|
return false;
|
|
11628
11677
|
} else {
|
|
11629
11678
|
if (drawImage) {
|
|
11630
11679
|
if (data.repeat) {
|
|
11631
11680
|
drawImage = false;
|
|
11632
|
-
} else if (!(originPaint.changeful || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || exporting)) {
|
|
11681
|
+
} else if (!(originPaint.changeful || paint.film || Platform.name === "miniapp" && ResizeEvent.isResizing(ui) || exporting)) {
|
|
11633
11682
|
drawImage = Platform.image.isLarge(image, scaleX, scaleY) || image.width * scaleX > 8096 || image.height * scaleY > 8096;
|
|
11634
11683
|
}
|
|
11635
11684
|
}
|
|
@@ -11646,20 +11695,21 @@ var LeaferUI = function(exports) {
|
|
|
11646
11695
|
}
|
|
11647
11696
|
}
|
|
11648
11697
|
}
|
|
11649
|
-
function drawImage(paint,
|
|
11650
|
-
const {data: data, image: image
|
|
11651
|
-
let {width: width, height: height} = image
|
|
11652
|
-
if (
|
|
11698
|
+
function drawImage(paint, imageScaleX, imageScaleY, ui, canvas, _renderOptions) {
|
|
11699
|
+
const {data: data, image: image, complex: complex} = paint;
|
|
11700
|
+
let {width: width, height: height} = image;
|
|
11701
|
+
if (complex) {
|
|
11702
|
+
const {blendMode: blendMode, opacity: opacity} = paint.originPaint, {transform: transform} = data;
|
|
11653
11703
|
canvas.save();
|
|
11654
|
-
|
|
11704
|
+
complex === 2 && canvas.clipUI(ui);
|
|
11655
11705
|
blendMode && (canvas.blendMode = blendMode);
|
|
11656
11706
|
opacity && (canvas.opacity *= opacity);
|
|
11657
11707
|
transform && canvas.transform(transform);
|
|
11658
|
-
|
|
11708
|
+
image.render(canvas, 0, 0, width, height, ui, paint, imageScaleX, imageScaleY);
|
|
11659
11709
|
canvas.restore();
|
|
11660
11710
|
} else {
|
|
11661
11711
|
if (data.scaleX) width *= data.scaleX, height *= data.scaleY;
|
|
11662
|
-
|
|
11712
|
+
image.render(canvas, 0, 0, width, height, ui, paint, imageScaleX, imageScaleY);
|
|
11663
11713
|
}
|
|
11664
11714
|
}
|
|
11665
11715
|
function getImageRenderScaleData(paint, ui, canvas, _renderOptions) {
|
|
@@ -12524,6 +12574,9 @@ var LeaferUI = function(exports) {
|
|
|
12524
12574
|
constructor(data) {
|
|
12525
12575
|
super(data);
|
|
12526
12576
|
}
|
|
12577
|
+
togglePlay() {
|
|
12578
|
+
this.running ? this.pause() : this.play();
|
|
12579
|
+
}
|
|
12527
12580
|
play() {
|
|
12528
12581
|
this.running = true;
|
|
12529
12582
|
}
|
|
@@ -14489,7 +14542,9 @@ var LeaferUI = function(exports) {
|
|
|
14489
14542
|
exports.LeaferCanvasBase = LeaferCanvasBase;
|
|
14490
14543
|
exports.LeaferData = LeaferData;
|
|
14491
14544
|
exports.LeaferEvent = LeaferEvent;
|
|
14545
|
+
exports.LeaferFilm = LeaferFilm;
|
|
14492
14546
|
exports.LeaferImage = LeaferImage;
|
|
14547
|
+
exports.LeaferVideo = LeaferVideo;
|
|
14493
14548
|
exports.LineData = LineData;
|
|
14494
14549
|
exports.MathHelper = MathHelper;
|
|
14495
14550
|
exports.Matrix = Matrix;
|