@tsparticles/shape-image 3.0.3 → 3.2.0
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/21.min.js +2 -0
- package/21.min.js.LICENSE.txt +1 -0
- package/618.min.js +2 -0
- package/618.min.js.LICENSE.txt +1 -0
- package/623.min.js +2 -0
- package/623.min.js.LICENSE.txt +1 -0
- package/browser/GifUtils/ByteStream.js +13 -9
- package/browser/GifUtils/Utils.js +113 -10
- package/browser/ImageDrawer.js +44 -109
- package/browser/ImagePreloader.js +3 -2
- package/browser/Utils.js +6 -23
- package/browser/index.js +12 -5
- package/cjs/GifUtils/ByteStream.js +13 -9
- package/cjs/GifUtils/Utils.js +139 -11
- package/cjs/ImageDrawer.js +67 -109
- package/cjs/ImagePreloader.js +3 -2
- package/cjs/Utils.js +7 -25
- package/cjs/index.js +36 -6
- package/dist_browser_GifUtils_Utils_js.js +50 -0
- package/dist_browser_ImageDrawer_js.js +30 -0
- package/dist_browser_ImagePreloader_js.js +40 -0
- package/esm/GifUtils/ByteStream.js +13 -9
- package/esm/GifUtils/Utils.js +113 -10
- package/esm/ImageDrawer.js +44 -109
- package/esm/ImagePreloader.js +3 -2
- package/esm/Utils.js +6 -23
- package/esm/index.js +12 -5
- package/package.json +2 -2
- package/report.html +3 -3
- package/tsparticles.shape.image.js +251 -862
- package/tsparticles.shape.image.min.js +1 -1
- package/tsparticles.shape.image.min.js.LICENSE.txt +1 -1
- package/types/GifUtils/Utils.d.ts +4 -0
- package/types/ImageDrawer.d.ts +3 -3
- package/types/ImagePreloader.d.ts +1 -1
- package/types/Utils.d.ts +0 -1
- package/umd/GifUtils/ByteStream.js +13 -9
- package/umd/GifUtils/Utils.js +140 -11
- package/umd/ImageDrawer.js +69 -110
- package/umd/ImagePreloader.js +3 -2
- package/umd/Utils.js +8 -26
- package/umd/index.js +38 -7
package/umd/Utils.js
CHANGED
|
@@ -4,14 +4,14 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "@tsparticles/engine"
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.replaceImageColor = exports.downloadSvgImage = exports.
|
|
12
|
+
exports.replaceImageColor = exports.downloadSvgImage = exports.loadImage = void 0;
|
|
13
13
|
const engine_1 = require("@tsparticles/engine");
|
|
14
|
-
const
|
|
14
|
+
const stringStart = 0, defaultOpacity = 1;
|
|
15
15
|
const currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;
|
|
16
16
|
function replaceColorSvg(imageShape, color, opacity) {
|
|
17
17
|
const { svgData } = imageShape;
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
return svgData.replace(currentColorRegex, () => colorStyle);
|
|
24
24
|
}
|
|
25
25
|
const preFillIndex = svgData.indexOf(">");
|
|
26
|
-
return `${svgData.substring(
|
|
26
|
+
return `${svgData.substring(stringStart, preFillIndex)} fill="${colorStyle}"${svgData.substring(preFillIndex)}`;
|
|
27
27
|
}
|
|
28
28
|
async function loadImage(image) {
|
|
29
29
|
return new Promise((resolve) => {
|
|
@@ -45,25 +45,6 @@
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
exports.loadImage = loadImage;
|
|
48
|
-
async function loadGifImage(image) {
|
|
49
|
-
if (image.type !== "gif") {
|
|
50
|
-
await loadImage(image);
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
image.loading = true;
|
|
54
|
-
try {
|
|
55
|
-
image.gifData = await (0, Utils_js_1.decodeGIF)(image.source);
|
|
56
|
-
image.gifLoopCount = (0, Utils_js_1.getGIFLoopAmount)(image.gifData) ?? 0;
|
|
57
|
-
if (image.gifLoopCount === 0) {
|
|
58
|
-
image.gifLoopCount = Infinity;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
image.error = true;
|
|
63
|
-
}
|
|
64
|
-
image.loading = false;
|
|
65
|
-
}
|
|
66
|
-
exports.loadGifImage = loadGifImage;
|
|
67
48
|
async function downloadSvgImage(image) {
|
|
68
49
|
if (image.type !== "svg") {
|
|
69
50
|
await loadImage(image);
|
|
@@ -82,7 +63,7 @@
|
|
|
82
63
|
}
|
|
83
64
|
exports.downloadSvgImage = downloadSvgImage;
|
|
84
65
|
function replaceImageColor(image, imageData, color, particle) {
|
|
85
|
-
const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ??
|
|
66
|
+
const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ?? defaultOpacity), imageRes = {
|
|
86
67
|
color,
|
|
87
68
|
gif: imageData.gif,
|
|
88
69
|
data: {
|
|
@@ -102,7 +83,7 @@
|
|
|
102
83
|
resolve(imageRes);
|
|
103
84
|
domUrl.revokeObjectURL(url);
|
|
104
85
|
});
|
|
105
|
-
|
|
86
|
+
const errorHandler = async () => {
|
|
106
87
|
domUrl.revokeObjectURL(url);
|
|
107
88
|
const img2 = {
|
|
108
89
|
...image,
|
|
@@ -113,7 +94,8 @@
|
|
|
113
94
|
imageRes.loaded = true;
|
|
114
95
|
imageRes.element = img2.element;
|
|
115
96
|
resolve(imageRes);
|
|
116
|
-
}
|
|
97
|
+
};
|
|
98
|
+
img.addEventListener("error", () => void errorHandler());
|
|
117
99
|
img.src = url;
|
|
118
100
|
});
|
|
119
101
|
}
|
package/umd/index.js
CHANGED
|
@@ -1,19 +1,42 @@
|
|
|
1
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
2
|
+
if (k2 === undefined) k2 = k;
|
|
3
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
5
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
6
|
+
}
|
|
7
|
+
Object.defineProperty(o, k2, desc);
|
|
8
|
+
}) : (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
o[k2] = m[k];
|
|
11
|
+
}));
|
|
12
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
13
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
14
|
+
}) : function(o, v) {
|
|
15
|
+
o["default"] = v;
|
|
16
|
+
});
|
|
17
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
18
|
+
if (mod && mod.__esModule) return mod;
|
|
19
|
+
var result = {};
|
|
20
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
21
|
+
__setModuleDefault(result, mod);
|
|
22
|
+
return result;
|
|
23
|
+
};
|
|
1
24
|
(function (factory) {
|
|
2
25
|
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
26
|
var v = factory(require, exports);
|
|
4
27
|
if (v !== undefined) module.exports = v;
|
|
5
28
|
}
|
|
6
29
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./Utils.js", "
|
|
30
|
+
define(["require", "exports", "./Utils.js", "@tsparticles/engine"], factory);
|
|
8
31
|
}
|
|
9
32
|
})(function (require, exports) {
|
|
10
33
|
"use strict";
|
|
34
|
+
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
|
11
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
36
|
exports.loadImageShape = void 0;
|
|
13
37
|
const Utils_js_1 = require("./Utils.js");
|
|
14
|
-
const ImageDrawer_js_1 = require("./ImageDrawer.js");
|
|
15
|
-
const ImagePreloader_js_1 = require("./ImagePreloader.js");
|
|
16
38
|
const engine_1 = require("@tsparticles/engine");
|
|
39
|
+
const extLength = 3;
|
|
17
40
|
function addLoadImageToEngine(engine) {
|
|
18
41
|
if (engine.loadImage) {
|
|
19
42
|
return;
|
|
@@ -33,14 +56,21 @@
|
|
|
33
56
|
gif: data.gif ?? false,
|
|
34
57
|
name: data.name ?? data.src,
|
|
35
58
|
source: data.src,
|
|
36
|
-
type: data.src.substring(data.src.length -
|
|
59
|
+
type: data.src.substring(data.src.length - extLength),
|
|
37
60
|
error: false,
|
|
38
61
|
loading: true,
|
|
39
62
|
replaceColor: data.replaceColor,
|
|
40
63
|
ratio: data.width && data.height ? data.width / data.height : undefined,
|
|
41
64
|
};
|
|
42
65
|
engine.images.push(image);
|
|
43
|
-
|
|
66
|
+
let imageFunc;
|
|
67
|
+
if (data.gif) {
|
|
68
|
+
const { loadGifImage } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./GifUtils/Utils.js"))) : new Promise((resolve_1, reject_1) => { require(["./GifUtils/Utils.js"], resolve_1, reject_1); }).then(__importStar));
|
|
69
|
+
imageFunc = loadGifImage;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
imageFunc = data.replaceColor ? Utils_js_1.downloadSvgImage : Utils_js_1.loadImage;
|
|
73
|
+
}
|
|
44
74
|
await imageFunc(image);
|
|
45
75
|
}
|
|
46
76
|
catch {
|
|
@@ -50,9 +80,10 @@
|
|
|
50
80
|
}
|
|
51
81
|
async function loadImageShape(engine, refresh = true) {
|
|
52
82
|
addLoadImageToEngine(engine);
|
|
53
|
-
const
|
|
83
|
+
const { ImagePreloaderPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./ImagePreloader.js"))) : new Promise((resolve_2, reject_2) => { require(["./ImagePreloader.js"], resolve_2, reject_2); }).then(__importStar)), { ImageDrawer } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./ImageDrawer.js"))) : new Promise((resolve_3, reject_3) => { require(["./ImageDrawer.js"], resolve_3, reject_3); }).then(__importStar));
|
|
84
|
+
const preloader = new ImagePreloaderPlugin(engine);
|
|
54
85
|
await engine.addPlugin(preloader, refresh);
|
|
55
|
-
await engine.addShape(["image", "images"], new
|
|
86
|
+
await engine.addShape(["image", "images"], new ImageDrawer(engine), refresh);
|
|
56
87
|
}
|
|
57
88
|
exports.loadImageShape = loadImageShape;
|
|
58
89
|
});
|