@tsparticles/plugin-absorbers 3.1.0 → 3.2.1
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/142.min.js +2 -0
- package/142.min.js.LICENSE.txt +1 -0
- package/28.min.js +2 -0
- package/28.min.js.LICENSE.txt +1 -0
- package/327.min.js +2 -0
- package/327.min.js.LICENSE.txt +1 -0
- package/browser/AbsorberInstance.js +2 -1
- package/browser/Absorbers.js +14 -10
- package/browser/AbsorbersPlugin.js +45 -0
- package/browser/index.js +1 -45
- package/cjs/AbsorberInstance.js +2 -1
- package/cjs/Absorbers.js +37 -10
- package/cjs/AbsorbersPlugin.js +72 -0
- package/cjs/index.js +13 -45
- package/dist_browser_AbsorberInstance_js.js +30 -0
- package/dist_browser_AbsorbersPlugin_js.js +60 -0
- package/dist_browser_Absorbers_js.js +30 -0
- package/esm/AbsorberInstance.js +2 -1
- package/esm/Absorbers.js +14 -10
- package/esm/AbsorbersPlugin.js +45 -0
- package/esm/index.js +1 -45
- package/package.json +2 -2
- package/report.html +3 -3
- package/tsparticles.plugin.absorbers.js +241 -387
- package/tsparticles.plugin.absorbers.min.js +1 -1
- package/tsparticles.plugin.absorbers.min.js.LICENSE.txt +1 -1
- package/types/AbsorberContainer.d.ts +1 -1
- package/types/AbsorberInstance.d.ts +1 -1
- package/types/Absorbers.d.ts +3 -3
- package/types/AbsorbersPlugin.d.ts +11 -0
- package/umd/AbsorberInstance.js +2 -1
- package/umd/Absorbers.js +39 -11
- package/umd/AbsorbersPlugin.js +83 -0
- package/umd/index.js +15 -46
package/esm/Absorbers.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { executeOnSingleOrMultiple, isNumber, itemFromSingleOrMultiple, } from "@tsparticles/engine";
|
|
2
|
-
import { AbsorberInstance } from "./AbsorberInstance.js";
|
|
3
2
|
const defaultIndex = 0;
|
|
4
3
|
export class Absorbers {
|
|
5
4
|
constructor(container) {
|
|
@@ -10,32 +9,37 @@ export class Absorbers {
|
|
|
10
9
|
container.getAbsorber = (idxOrName) => idxOrName === undefined || isNumber(idxOrName)
|
|
11
10
|
? this.array[idxOrName ?? defaultIndex]
|
|
12
11
|
: this.array.find((t) => t.name === idxOrName);
|
|
13
|
-
container.addAbsorber = (options, position) => this.addAbsorber(options, position);
|
|
12
|
+
container.addAbsorber = async (options, position) => this.addAbsorber(options, position);
|
|
14
13
|
}
|
|
15
|
-
addAbsorber(options, position) {
|
|
16
|
-
const absorber = new AbsorberInstance(this, this.container, options, position);
|
|
14
|
+
async addAbsorber(options, position) {
|
|
15
|
+
const { AbsorberInstance } = await import("./AbsorberInstance.js"), absorber = new AbsorberInstance(this, this.container, options, position);
|
|
17
16
|
this.array.push(absorber);
|
|
18
17
|
return absorber;
|
|
19
18
|
}
|
|
20
|
-
draw(context) {
|
|
19
|
+
async draw(context) {
|
|
21
20
|
for (const absorber of this.array) {
|
|
22
|
-
absorber.draw(context);
|
|
21
|
+
await absorber.draw(context);
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
handleClickMode(mode) {
|
|
26
25
|
const absorberOptions = this.absorbers, modeAbsorbers = this.interactivityAbsorbers;
|
|
27
26
|
if (mode === "absorber") {
|
|
28
27
|
const absorbersModeOptions = itemFromSingleOrMultiple(modeAbsorbers), absorbersOptions = absorbersModeOptions ?? itemFromSingleOrMultiple(absorberOptions), aPosition = this.container.interactivity.mouse.clickPosition;
|
|
29
|
-
this.addAbsorber(absorbersOptions, aPosition);
|
|
28
|
+
void this.addAbsorber(absorbersOptions, aPosition);
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
async init() {
|
|
33
32
|
this.absorbers = this.container.actualOptions.absorbers;
|
|
34
33
|
this.interactivityAbsorbers = this.container.actualOptions.interactivity.modes.absorbers;
|
|
35
|
-
executeOnSingleOrMultiple(this.absorbers, (absorber) => {
|
|
36
|
-
this.addAbsorber(absorber);
|
|
34
|
+
const promises = executeOnSingleOrMultiple(this.absorbers, async (absorber) => {
|
|
35
|
+
await this.addAbsorber(absorber);
|
|
37
36
|
});
|
|
38
|
-
|
|
37
|
+
if (promises instanceof Array) {
|
|
38
|
+
await Promise.all(promises);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
await promises;
|
|
42
|
+
}
|
|
39
43
|
}
|
|
40
44
|
particleUpdate(particle) {
|
|
41
45
|
for (const absorber of this.array) {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { executeOnSingleOrMultiple, isArray, isInArray, } from "@tsparticles/engine";
|
|
2
|
+
import { Absorber } from "./Options/Classes/Absorber.js";
|
|
3
|
+
export class AbsorbersPlugin {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.id = "absorbers";
|
|
6
|
+
}
|
|
7
|
+
async getPlugin(container) {
|
|
8
|
+
const { Absorbers } = await import("./Absorbers.js");
|
|
9
|
+
return new Absorbers(container);
|
|
10
|
+
}
|
|
11
|
+
loadOptions(options, source) {
|
|
12
|
+
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (source?.absorbers) {
|
|
16
|
+
options.absorbers = executeOnSingleOrMultiple(source.absorbers, (absorber) => {
|
|
17
|
+
const tmp = new Absorber();
|
|
18
|
+
tmp.load(absorber);
|
|
19
|
+
return tmp;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
options.interactivity.modes.absorbers = executeOnSingleOrMultiple(source?.interactivity?.modes?.absorbers, (absorber) => {
|
|
23
|
+
const tmp = new Absorber();
|
|
24
|
+
tmp.load(absorber);
|
|
25
|
+
return tmp;
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
needsPlugin(options) {
|
|
29
|
+
if (!options) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
const absorbers = options.absorbers;
|
|
33
|
+
if (isArray(absorbers)) {
|
|
34
|
+
return !!absorbers.length;
|
|
35
|
+
}
|
|
36
|
+
else if (absorbers) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
else if (options.interactivity?.events?.onClick?.mode &&
|
|
40
|
+
isInArray("absorber", options.interactivity.events.onClick.mode)) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
package/esm/index.js
CHANGED
|
@@ -1,49 +1,5 @@
|
|
|
1
|
-
import { executeOnSingleOrMultiple, isArray, isInArray, } from "@tsparticles/engine";
|
|
2
|
-
import { Absorber } from "./Options/Classes/Absorber.js";
|
|
3
|
-
import { Absorbers } from "./Absorbers.js";
|
|
4
|
-
class AbsorbersPlugin {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.id = "absorbers";
|
|
7
|
-
}
|
|
8
|
-
getPlugin(container) {
|
|
9
|
-
return new Absorbers(container);
|
|
10
|
-
}
|
|
11
|
-
loadOptions(options, source) {
|
|
12
|
-
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (source?.absorbers) {
|
|
16
|
-
options.absorbers = executeOnSingleOrMultiple(source.absorbers, (absorber) => {
|
|
17
|
-
const tmp = new Absorber();
|
|
18
|
-
tmp.load(absorber);
|
|
19
|
-
return tmp;
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
options.interactivity.modes.absorbers = executeOnSingleOrMultiple(source?.interactivity?.modes?.absorbers, (absorber) => {
|
|
23
|
-
const tmp = new Absorber();
|
|
24
|
-
tmp.load(absorber);
|
|
25
|
-
return tmp;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
needsPlugin(options) {
|
|
29
|
-
if (!options) {
|
|
30
|
-
return false;
|
|
31
|
-
}
|
|
32
|
-
const absorbers = options.absorbers;
|
|
33
|
-
if (isArray(absorbers)) {
|
|
34
|
-
return !!absorbers.length;
|
|
35
|
-
}
|
|
36
|
-
else if (absorbers) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
else if (options.interactivity?.events?.onClick?.mode &&
|
|
40
|
-
isInArray("absorber", options.interactivity.events.onClick.mode)) {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
1
|
export async function loadAbsorbersPlugin(engine, refresh = true) {
|
|
2
|
+
const { AbsorbersPlugin } = await import("./AbsorbersPlugin.js");
|
|
47
3
|
await engine.addPlugin(new AbsorbersPlugin(), refresh);
|
|
48
4
|
}
|
|
49
5
|
export * from "./AbsorberContainer.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsparticles/plugin-absorbers",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "tsParticles absorbers plugin",
|
|
5
5
|
"homepage": "https://particles.js.org",
|
|
6
6
|
"repository": {
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"./package.json": "./package.json"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@tsparticles/engine": "^3.1
|
|
89
|
+
"@tsparticles/engine": "^3.2.1"
|
|
90
90
|
},
|
|
91
91
|
"publishConfig": {
|
|
92
92
|
"access": "public"
|
package/report.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>@tsparticles/plugin-absorbers [
|
|
6
|
+
<title>@tsparticles/plugin-absorbers [31 Jan 2024 at 09:51]</title>
|
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
|
8
8
|
|
|
9
9
|
<script>
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
<body>
|
|
32
32
|
<div id="app"></div>
|
|
33
33
|
<script>
|
|
34
|
-
window.chartData = [
|
|
35
|
-
window.entrypoints = ["tsparticles.plugin.absorbers
|
|
34
|
+
window.chartData = [];
|
|
35
|
+
window.entrypoints = ["tsparticles.plugin.absorbers.min"];
|
|
36
36
|
window.defaultSizes = "parsed";
|
|
37
37
|
</script>
|
|
38
38
|
</body>
|