@tsparticles/plugin-absorbers 4.0.0-alpha.2 → 4.0.0-alpha.4
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/215.min.js +2 -0
- package/215.min.js.LICENSE.txt +1 -0
- package/384.min.js +2 -0
- package/384.min.js.LICENSE.txt +1 -0
- package/688.min.js +2 -0
- package/688.min.js.LICENSE.txt +1 -0
- package/903.min.js +2 -0
- package/903.min.js.LICENSE.txt +1 -0
- package/980.min.js +2 -0
- package/980.min.js.LICENSE.txt +1 -0
- package/browser/AbsorberInstance.js +6 -24
- package/browser/AbsorbersInstancesManager.js +47 -0
- package/browser/AbsorbersInteractor.js +90 -0
- package/browser/AbsorbersPlugin.js +6 -16
- package/browser/AbsorbersPluginInstance.js +40 -0
- package/browser/index.js +8 -4
- package/cjs/AbsorberInstance.js +6 -24
- package/cjs/AbsorbersInstancesManager.js +47 -0
- package/cjs/AbsorbersInteractor.js +90 -0
- package/cjs/AbsorbersPlugin.js +6 -16
- package/cjs/AbsorbersPluginInstance.js +40 -0
- package/cjs/index.js +8 -4
- package/dist_browser_AbsorberInstance_js.js +60 -0
- package/dist_browser_AbsorbersInstancesManager_js.js +30 -0
- package/dist_browser_AbsorbersInteractor_js.js +60 -0
- package/dist_browser_AbsorbersPluginInstance_js.js +30 -0
- package/dist_browser_AbsorbersPlugin_js.js +2 -22
- package/esm/AbsorberInstance.js +6 -24
- package/esm/AbsorbersInstancesManager.js +47 -0
- package/esm/AbsorbersInteractor.js +90 -0
- package/esm/AbsorbersPlugin.js +6 -16
- package/esm/AbsorbersPluginInstance.js +40 -0
- package/esm/index.js +8 -4
- package/package.json +3 -2
- package/report.html +1 -1
- package/tsparticles.plugin.absorbers.js +48 -30
- package/tsparticles.plugin.absorbers.min.js +1 -1
- package/tsparticles.plugin.absorbers.min.js.LICENSE.txt +1 -1
- package/types/AbsorberContainer.d.ts +5 -4
- package/types/AbsorberInstance.d.ts +5 -5
- package/types/AbsorbersInstancesManager.d.ts +14 -0
- package/types/AbsorbersInteractor.d.ts +18 -0
- package/types/AbsorbersPlugin.d.ts +6 -6
- package/types/AbsorbersPluginInstance.d.ts +13 -0
- package/types/index.d.ts +0 -1
- package/types/types.d.ts +12 -9
- package/umd/AbsorberInstance.js +5 -23
- package/umd/AbsorbersInstancesManager.js +95 -0
- package/umd/AbsorbersInteractor.js +104 -0
- package/umd/AbsorbersPlugin.js +40 -16
- package/umd/AbsorbersPluginInstance.js +54 -0
- package/umd/index.js +9 -8
- package/47.min.js +0 -2
- package/47.min.js.LICENSE.txt +0 -1
- package/browser/Absorbers.js +0 -70
- package/browser/Enums/AbsorberClickMode.js +0 -4
- package/cjs/Absorbers.js +0 -70
- package/cjs/Enums/AbsorberClickMode.js +0 -4
- package/esm/Absorbers.js +0 -70
- package/esm/Enums/AbsorberClickMode.js +0 -4
- package/types/Absorbers.d.ts +0 -21
- package/types/Enums/AbsorberClickMode.d.ts +0 -3
- package/umd/Absorbers.js +0 -84
- package/umd/Enums/AbsorberClickMode.js +0 -17
package/umd/AbsorbersPlugin.js
CHANGED
|
@@ -1,28 +1,61 @@
|
|
|
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 () {
|
|
18
|
+
var ownKeys = function(o) {
|
|
19
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
20
|
+
var ar = [];
|
|
21
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
22
|
+
return ar;
|
|
23
|
+
};
|
|
24
|
+
return ownKeys(o);
|
|
25
|
+
};
|
|
26
|
+
return function (mod) {
|
|
27
|
+
if (mod && mod.__esModule) return mod;
|
|
28
|
+
var result = {};
|
|
29
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
30
|
+
__setModuleDefault(result, mod);
|
|
31
|
+
return result;
|
|
32
|
+
};
|
|
33
|
+
})();
|
|
1
34
|
(function (factory) {
|
|
2
35
|
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
36
|
var v = factory(require, exports);
|
|
4
37
|
if (v !== undefined) module.exports = v;
|
|
5
38
|
}
|
|
6
39
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "@tsparticles/engine", "./Options/Classes/Absorber.js"
|
|
40
|
+
define(["require", "exports", "@tsparticles/engine", "./Options/Classes/Absorber.js"], factory);
|
|
8
41
|
}
|
|
9
42
|
})(function (require, exports) {
|
|
10
43
|
"use strict";
|
|
44
|
+
var __syncRequire = typeof module === "object" && typeof module.exports === "object";
|
|
11
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
46
|
exports.AbsorbersPlugin = void 0;
|
|
13
47
|
const engine_1 = require("@tsparticles/engine");
|
|
14
48
|
const Absorber_js_1 = require("./Options/Classes/Absorber.js");
|
|
15
|
-
const AbsorberClickMode_js_1 = require("./Enums/AbsorberClickMode.js");
|
|
16
|
-
const Absorbers_js_1 = require("./Absorbers.js");
|
|
17
49
|
class AbsorbersPlugin {
|
|
18
|
-
constructor(
|
|
50
|
+
constructor(instancesManager) {
|
|
19
51
|
this.id = "absorbers";
|
|
20
|
-
this.
|
|
52
|
+
this._instancesManager = instancesManager;
|
|
21
53
|
}
|
|
22
54
|
async getPlugin(container) {
|
|
23
|
-
|
|
55
|
+
const { AbsorbersPluginInstance } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./AbsorbersPluginInstance.js"))) : new Promise((resolve_1, reject_1) => { require(["./AbsorbersPluginInstance.js"], resolve_1, reject_1); }).then(__importStar));
|
|
56
|
+
return new AbsorbersPluginInstance(container, this._instancesManager);
|
|
24
57
|
}
|
|
25
|
-
loadOptions(options, source) {
|
|
58
|
+
loadOptions(_container, options, source) {
|
|
26
59
|
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
27
60
|
return;
|
|
28
61
|
}
|
|
@@ -33,11 +66,6 @@
|
|
|
33
66
|
return tmp;
|
|
34
67
|
});
|
|
35
68
|
}
|
|
36
|
-
options.interactivity.modes.absorbers = (0, engine_1.executeOnSingleOrMultiple)(source?.interactivity?.modes?.absorbers, absorber => {
|
|
37
|
-
const tmp = new Absorber_js_1.Absorber();
|
|
38
|
-
tmp.load(absorber);
|
|
39
|
-
return tmp;
|
|
40
|
-
});
|
|
41
69
|
}
|
|
42
70
|
needsPlugin(options) {
|
|
43
71
|
if (!options) {
|
|
@@ -50,10 +78,6 @@
|
|
|
50
78
|
else if (absorbers) {
|
|
51
79
|
return true;
|
|
52
80
|
}
|
|
53
|
-
else if (options.interactivity?.events?.onClick?.mode &&
|
|
54
|
-
(0, engine_1.isInArray)(AbsorberClickMode_js_1.AbsorberClickMode.absorber, options.interactivity.events.onClick.mode)) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
81
|
return false;
|
|
58
82
|
}
|
|
59
83
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.AbsorbersPluginInstance = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
14
|
+
class AbsorbersPluginInstance {
|
|
15
|
+
constructor(container, instancesManager) {
|
|
16
|
+
this._container = container;
|
|
17
|
+
this._instancesManager = instancesManager;
|
|
18
|
+
this._instancesManager.initContainer(container);
|
|
19
|
+
}
|
|
20
|
+
draw(context) {
|
|
21
|
+
for (const absorber of this._instancesManager.getArray(this._container)) {
|
|
22
|
+
absorber.draw(context);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async init() {
|
|
26
|
+
const absorbers = this._container.actualOptions.absorbers, promises = (0, engine_1.executeOnSingleOrMultiple)(absorbers, async (absorber) => {
|
|
27
|
+
await this._instancesManager.addAbsorber(this._container, absorber);
|
|
28
|
+
});
|
|
29
|
+
if ((0, engine_1.isArray)(promises)) {
|
|
30
|
+
await Promise.all(promises);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
await promises;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
particleUpdate(particle, delta) {
|
|
37
|
+
for (const absorber of this._instancesManager.getArray(this._container)) {
|
|
38
|
+
absorber.attract(particle, delta);
|
|
39
|
+
if (particle.destroyed) {
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
resize() {
|
|
45
|
+
for (const absorber of this._instancesManager.getArray(this._container)) {
|
|
46
|
+
absorber.resize();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
stop() {
|
|
50
|
+
this._instancesManager.clear(this._container);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.AbsorbersPluginInstance = AbsorbersPluginInstance;
|
|
54
|
+
});
|
package/umd/index.js
CHANGED
|
@@ -31,16 +31,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
31
31
|
return result;
|
|
32
32
|
};
|
|
33
33
|
})();
|
|
34
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
35
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
36
|
-
};
|
|
37
34
|
(function (factory) {
|
|
38
35
|
if (typeof module === "object" && typeof module.exports === "object") {
|
|
39
36
|
var v = factory(require, exports);
|
|
40
37
|
if (v !== undefined) module.exports = v;
|
|
41
38
|
}
|
|
42
39
|
else if (typeof define === "function" && define.amd) {
|
|
43
|
-
define(["require", "exports"
|
|
40
|
+
define(["require", "exports"], factory);
|
|
44
41
|
}
|
|
45
42
|
})(function (require, exports) {
|
|
46
43
|
"use strict";
|
|
@@ -48,11 +45,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
48
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
46
|
exports.loadAbsorbersPlugin = loadAbsorbersPlugin;
|
|
50
47
|
function loadAbsorbersPlugin(engine) {
|
|
51
|
-
engine.checkVersion("4.0.0-alpha.
|
|
48
|
+
engine.checkVersion("4.0.0-alpha.4");
|
|
52
49
|
engine.register(async (e) => {
|
|
53
|
-
const { AbsorbersPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./AbsorbersPlugin.js"))) : new Promise((
|
|
54
|
-
|
|
50
|
+
const { loadInteractivityPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("@tsparticles/plugin-interactivity"))) : new Promise((resolve_1, reject_1) => { require(["@tsparticles/plugin-interactivity"], resolve_1, reject_1); }).then(__importStar)), { AbsorbersInstancesManager } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./AbsorbersInstancesManager.js"))) : new Promise((resolve_2, reject_2) => { require(["./AbsorbersInstancesManager.js"], resolve_2, reject_2); }).then(__importStar)), { AbsorbersPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./AbsorbersPlugin.js"))) : new Promise((resolve_3, reject_3) => { require(["./AbsorbersPlugin.js"], resolve_3, reject_3); }).then(__importStar)), instancesManager = new AbsorbersInstancesManager(e);
|
|
51
|
+
loadInteractivityPlugin(e);
|
|
52
|
+
e.addPlugin(new AbsorbersPlugin(instancesManager));
|
|
53
|
+
e.addInteractor?.("externalAbsorbers", async (container) => {
|
|
54
|
+
const { AbsorbersInteractor } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./AbsorbersInteractor.js"))) : new Promise((resolve_4, reject_4) => { require(["./AbsorbersInteractor.js"], resolve_4, reject_4); }).then(__importStar));
|
|
55
|
+
return new AbsorbersInteractor(container, instancesManager);
|
|
56
|
+
});
|
|
55
57
|
});
|
|
56
58
|
}
|
|
57
|
-
__exportStar(require("./Enums/AbsorberClickMode.js"), exports);
|
|
58
59
|
});
|
package/47.min.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! For license information please see 47.min.js.LICENSE.txt */
|
|
2
|
-
(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[47],{47(i,t,s){s.d(t,{AbsorbersPlugin:()=>d});var o=s(303);class e{constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{constructor(){super(),this.density=5,this.value=50,this.limit=new e}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class n{constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}var a=s(633);const c=2*Math.PI;class h{constructor(i,t,s,e){this._calcPosition=()=>{const i=(0,o.calcPositionOrRandomFromSizeRanged)({size:this._container.canvas.size,position:this.options.position});return o.Vector.create(i.x,i.y)},this._updateParticlePosition=(i,t)=>{if(i.destroyed)return;const s=this._container,e=s.canvas.size;if(i.needsNewPosition){const t=(0,o.calcPositionOrRandomFromSize)({size:e});i.position.setTo(t),i.velocity.setTo(i.initialVelocity),i.absorberOrbit=void 0,i.needsNewPosition=!1}if(this.options.orbits){if(void 0===i.absorberOrbit&&(i.absorberOrbit=o.Vector.origin,i.absorberOrbit.length=(0,o.getDistance)(i.getPosition(),this.position),i.absorberOrbit.angle=(0,o.getRandom)()*c),i.absorberOrbit.length<=this.size&&!this.options.destroy){const t=Math.min(e.width,e.height),s=1,r=.1,n=.2;i.absorberOrbit.length=t*(s+((0,o.getRandom)()*n-r))}i.absorberOrbitDirection??=i.velocity.x>=0?o.RotateDirection.clockwise:o.RotateDirection.counterClockwise;const r=i.absorberOrbit.length,n=i.absorberOrbit.angle,a=i.absorberOrbitDirection;i.velocity.setTo(o.Vector.origin);const h={x:a===o.RotateDirection.clockwise?Math.cos:Math.sin,y:a===o.RotateDirection.clockwise?Math.sin:Math.cos};i.position.x=this.position.x+r*h.x(n),i.position.y=this.position.y+r*h.y(n),i.absorberOrbit.length-=t.length,i.absorberOrbit.angle+=(i.retina.moveSpeed??0)*s.retina.pixelRatio/o.percentDenominator*s.retina.reduceFactor}else{const s=o.Vector.origin;s.length=t.length,s.angle=t.angle,i.velocity.addTo(s)}},this._container=i,this._engine=t,this.initialPosition=e?o.Vector.create(e.x,e.y):void 0,s instanceof n?this.options=s:(this.options=new n,this.options.load(s)),this.dragging=!1,this.name=this.options.name,this.opacity=this.options.opacity,this.size=(0,o.getRangeValue)(this.options.size.value)*i.retina.pixelRatio,this.mass=this.size*this.options.size.density*i.retina.reduceFactor;const r=this.options.size.limit;this.limit={radius:r.radius*i.retina.pixelRatio*i.retina.reduceFactor,mass:r.mass},this.color=(0,o.rangeColorToRgb)(this._engine,this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition()}attract(i){const t=this._container,s=this.options;if(s.draggable){const i=t.interactivity.mouse;if(i.clicking&&i.downPosition){(0,o.getDistance)(this.position,i.downPosition)<=this.size&&(this.dragging=!0)}else this.dragging=!1;this.dragging&&i.position&&(this.position.x=i.position.x,this.position.y=i.position.y)}const e=i.getPosition(),{dx:r,dy:n,distance:a}=(0,o.getDistances)(this.position,e),c=o.Vector.create(r,n);if(c.length=this.mass/Math.pow(a,2)*t.retina.reduceFactor,a<this.size+i.getRadius()){const o=.033*i.getRadius()*t.retina.pixelRatio;this.size>i.getRadius()&&a<this.size-i.getRadius()||void 0!==i.absorberOrbit&&i.absorberOrbit.length<0?s.destroy?i.destroy():(i.needsNewPosition=!0,this._updateParticlePosition(i,c)):(s.destroy&&(i.size.value-=o),this._updateParticlePosition(i,c)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=o),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=o*this.options.size.density*t.retina.reduceFactor)}else this._updateParticlePosition(i,c)}draw(i){i.translate(this.position.x,this.position.y),i.beginPath(),i.arc(o.originPoint.x,o.originPoint.y,this.size,0,c,!1),i.closePath(),i.fillStyle=(0,o.getStyleFromRgb)(this.color,this._container.hdr,this.opacity),i.fill()}resize(){const i=this.initialPosition;this.position=i&&(0,o.isPointInside)(i,this._container.canvas.size,o.Vector.origin)?i:this._calcPosition()}}class l{constructor(i,t){this._container=i,this._engine=t,this.array=[],this.absorbers=[],this.interactivityAbsorbers=[],i.getAbsorber=i=>void 0===i||(0,o.isNumber)(i)?this.array[i??0]:this.array.find((t=>t.name===i)),i.addAbsorber=async(i,t)=>this.addAbsorber(i,t)}async addAbsorber(i,t){const s=new h(this._container,this._engine,i,t);return this.array.push(s),Promise.resolve(s)}draw(i){for(const t of this.array)t.draw(i)}handleClickMode(i){const t=this.interactivityAbsorbers;if(i===a.w.absorber){const i=(0,o.itemFromSingleOrMultiple)(t)??new n,s=this._container.interactivity.mouse.clickPosition;this.addAbsorber(i,s)}}async init(){this.absorbers=this._container.actualOptions.absorbers,this.interactivityAbsorbers=this._container.actualOptions.interactivity.modes.absorbers;const i=(0,o.executeOnSingleOrMultiple)(this.absorbers,(async i=>{await this.addAbsorber(i)}));i instanceof Array?await Promise.all(i):await i}particleUpdate(i){for(const t of this.array)if(t.attract(i),i.destroyed)break}removeAbsorber(i){const t=this.array.indexOf(i);t>=0&&this.array.splice(t,1)}resize(){for(const i of this.array)i.resize()}stop(){this.array=[]}}class d{constructor(i){this.id="absorbers",this._engine=i}async getPlugin(i){return Promise.resolve(new l(i,this._engine))}loadOptions(i,t){(this.needsPlugin(i)||this.needsPlugin(t))&&(t?.absorbers&&(i.absorbers=(0,o.executeOnSingleOrMultiple)(t.absorbers,(i=>{const t=new n;return t.load(i),t}))),i.interactivity.modes.absorbers=(0,o.executeOnSingleOrMultiple)(t?.interactivity?.modes?.absorbers,(i=>{const t=new n;return t.load(i),t})))}needsPlugin(i){if(!i)return!1;const t=i.absorbers;return(0,o.isArray)(t)?!!t.length:!!t||!(!i.interactivity?.events?.onClick?.mode||!(0,o.isInArray)(a.w.absorber,i.interactivity.events.onClick.mode))}}}}]);
|
package/47.min.js.LICENSE.txt
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! tsParticles Absorbers Plugin v4.0.0-alpha.2 by Matteo Bruni */
|
package/browser/Absorbers.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { executeOnSingleOrMultiple, isNumber, itemFromSingleOrMultiple, } from "@tsparticles/engine";
|
|
2
|
-
import { Absorber } from "./Options/Classes/Absorber.js";
|
|
3
|
-
import { AbsorberClickMode } from "./Enums/AbsorberClickMode.js";
|
|
4
|
-
import { AbsorberInstance } from "./AbsorberInstance.js";
|
|
5
|
-
const defaultIndex = 0;
|
|
6
|
-
export class Absorbers {
|
|
7
|
-
constructor(container, engine) {
|
|
8
|
-
this._container = container;
|
|
9
|
-
this._engine = engine;
|
|
10
|
-
this.array = [];
|
|
11
|
-
this.absorbers = [];
|
|
12
|
-
this.interactivityAbsorbers = [];
|
|
13
|
-
container.getAbsorber = (idxOrName) => idxOrName === undefined || isNumber(idxOrName)
|
|
14
|
-
? this.array[idxOrName ?? defaultIndex]
|
|
15
|
-
: this.array.find(t => t.name === idxOrName);
|
|
16
|
-
container.addAbsorber = async (options, position) => this.addAbsorber(options, position);
|
|
17
|
-
}
|
|
18
|
-
async addAbsorber(options, position) {
|
|
19
|
-
const absorber = new AbsorberInstance(this._container, this._engine, options, position);
|
|
20
|
-
this.array.push(absorber);
|
|
21
|
-
return Promise.resolve(absorber);
|
|
22
|
-
}
|
|
23
|
-
draw(context) {
|
|
24
|
-
for (const absorber of this.array) {
|
|
25
|
-
absorber.draw(context);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
handleClickMode(mode) {
|
|
29
|
-
const modeAbsorbers = this.interactivityAbsorbers;
|
|
30
|
-
if (mode === AbsorberClickMode.absorber) {
|
|
31
|
-
const absorbersModeOptions = itemFromSingleOrMultiple(modeAbsorbers) ?? new Absorber(), aPosition = this._container.interactivity.mouse.clickPosition;
|
|
32
|
-
void this.addAbsorber(absorbersModeOptions, aPosition);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async init() {
|
|
36
|
-
this.absorbers = this._container.actualOptions.absorbers;
|
|
37
|
-
this.interactivityAbsorbers = this._container.actualOptions.interactivity.modes.absorbers;
|
|
38
|
-
const promises = executeOnSingleOrMultiple(this.absorbers, async (absorber) => {
|
|
39
|
-
await this.addAbsorber(absorber);
|
|
40
|
-
});
|
|
41
|
-
if (promises instanceof Array) {
|
|
42
|
-
await Promise.all(promises);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
await promises;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
particleUpdate(particle) {
|
|
49
|
-
for (const absorber of this.array) {
|
|
50
|
-
absorber.attract(particle);
|
|
51
|
-
if (particle.destroyed) {
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
removeAbsorber(absorber) {
|
|
57
|
-
const index = this.array.indexOf(absorber), deleteCount = 1;
|
|
58
|
-
if (index >= defaultIndex) {
|
|
59
|
-
this.array.splice(index, deleteCount);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
resize() {
|
|
63
|
-
for (const absorber of this.array) {
|
|
64
|
-
absorber.resize();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
stop() {
|
|
68
|
-
this.array = [];
|
|
69
|
-
}
|
|
70
|
-
}
|
package/cjs/Absorbers.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { executeOnSingleOrMultiple, isNumber, itemFromSingleOrMultiple, } from "@tsparticles/engine";
|
|
2
|
-
import { Absorber } from "./Options/Classes/Absorber.js";
|
|
3
|
-
import { AbsorberClickMode } from "./Enums/AbsorberClickMode.js";
|
|
4
|
-
import { AbsorberInstance } from "./AbsorberInstance.js";
|
|
5
|
-
const defaultIndex = 0;
|
|
6
|
-
export class Absorbers {
|
|
7
|
-
constructor(container, engine) {
|
|
8
|
-
this._container = container;
|
|
9
|
-
this._engine = engine;
|
|
10
|
-
this.array = [];
|
|
11
|
-
this.absorbers = [];
|
|
12
|
-
this.interactivityAbsorbers = [];
|
|
13
|
-
container.getAbsorber = (idxOrName) => idxOrName === undefined || isNumber(idxOrName)
|
|
14
|
-
? this.array[idxOrName ?? defaultIndex]
|
|
15
|
-
: this.array.find(t => t.name === idxOrName);
|
|
16
|
-
container.addAbsorber = async (options, position) => this.addAbsorber(options, position);
|
|
17
|
-
}
|
|
18
|
-
async addAbsorber(options, position) {
|
|
19
|
-
const absorber = new AbsorberInstance(this._container, this._engine, options, position);
|
|
20
|
-
this.array.push(absorber);
|
|
21
|
-
return Promise.resolve(absorber);
|
|
22
|
-
}
|
|
23
|
-
draw(context) {
|
|
24
|
-
for (const absorber of this.array) {
|
|
25
|
-
absorber.draw(context);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
handleClickMode(mode) {
|
|
29
|
-
const modeAbsorbers = this.interactivityAbsorbers;
|
|
30
|
-
if (mode === AbsorberClickMode.absorber) {
|
|
31
|
-
const absorbersModeOptions = itemFromSingleOrMultiple(modeAbsorbers) ?? new Absorber(), aPosition = this._container.interactivity.mouse.clickPosition;
|
|
32
|
-
void this.addAbsorber(absorbersModeOptions, aPosition);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async init() {
|
|
36
|
-
this.absorbers = this._container.actualOptions.absorbers;
|
|
37
|
-
this.interactivityAbsorbers = this._container.actualOptions.interactivity.modes.absorbers;
|
|
38
|
-
const promises = executeOnSingleOrMultiple(this.absorbers, async (absorber) => {
|
|
39
|
-
await this.addAbsorber(absorber);
|
|
40
|
-
});
|
|
41
|
-
if (promises instanceof Array) {
|
|
42
|
-
await Promise.all(promises);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
await promises;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
particleUpdate(particle) {
|
|
49
|
-
for (const absorber of this.array) {
|
|
50
|
-
absorber.attract(particle);
|
|
51
|
-
if (particle.destroyed) {
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
removeAbsorber(absorber) {
|
|
57
|
-
const index = this.array.indexOf(absorber), deleteCount = 1;
|
|
58
|
-
if (index >= defaultIndex) {
|
|
59
|
-
this.array.splice(index, deleteCount);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
resize() {
|
|
63
|
-
for (const absorber of this.array) {
|
|
64
|
-
absorber.resize();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
stop() {
|
|
68
|
-
this.array = [];
|
|
69
|
-
}
|
|
70
|
-
}
|
package/esm/Absorbers.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { executeOnSingleOrMultiple, isNumber, itemFromSingleOrMultiple, } from "@tsparticles/engine";
|
|
2
|
-
import { Absorber } from "./Options/Classes/Absorber.js";
|
|
3
|
-
import { AbsorberClickMode } from "./Enums/AbsorberClickMode.js";
|
|
4
|
-
import { AbsorberInstance } from "./AbsorberInstance.js";
|
|
5
|
-
const defaultIndex = 0;
|
|
6
|
-
export class Absorbers {
|
|
7
|
-
constructor(container, engine) {
|
|
8
|
-
this._container = container;
|
|
9
|
-
this._engine = engine;
|
|
10
|
-
this.array = [];
|
|
11
|
-
this.absorbers = [];
|
|
12
|
-
this.interactivityAbsorbers = [];
|
|
13
|
-
container.getAbsorber = (idxOrName) => idxOrName === undefined || isNumber(idxOrName)
|
|
14
|
-
? this.array[idxOrName ?? defaultIndex]
|
|
15
|
-
: this.array.find(t => t.name === idxOrName);
|
|
16
|
-
container.addAbsorber = async (options, position) => this.addAbsorber(options, position);
|
|
17
|
-
}
|
|
18
|
-
async addAbsorber(options, position) {
|
|
19
|
-
const absorber = new AbsorberInstance(this._container, this._engine, options, position);
|
|
20
|
-
this.array.push(absorber);
|
|
21
|
-
return Promise.resolve(absorber);
|
|
22
|
-
}
|
|
23
|
-
draw(context) {
|
|
24
|
-
for (const absorber of this.array) {
|
|
25
|
-
absorber.draw(context);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
handleClickMode(mode) {
|
|
29
|
-
const modeAbsorbers = this.interactivityAbsorbers;
|
|
30
|
-
if (mode === AbsorberClickMode.absorber) {
|
|
31
|
-
const absorbersModeOptions = itemFromSingleOrMultiple(modeAbsorbers) ?? new Absorber(), aPosition = this._container.interactivity.mouse.clickPosition;
|
|
32
|
-
void this.addAbsorber(absorbersModeOptions, aPosition);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
async init() {
|
|
36
|
-
this.absorbers = this._container.actualOptions.absorbers;
|
|
37
|
-
this.interactivityAbsorbers = this._container.actualOptions.interactivity.modes.absorbers;
|
|
38
|
-
const promises = executeOnSingleOrMultiple(this.absorbers, async (absorber) => {
|
|
39
|
-
await this.addAbsorber(absorber);
|
|
40
|
-
});
|
|
41
|
-
if (promises instanceof Array) {
|
|
42
|
-
await Promise.all(promises);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
await promises;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
particleUpdate(particle) {
|
|
49
|
-
for (const absorber of this.array) {
|
|
50
|
-
absorber.attract(particle);
|
|
51
|
-
if (particle.destroyed) {
|
|
52
|
-
break;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
removeAbsorber(absorber) {
|
|
57
|
-
const index = this.array.indexOf(absorber), deleteCount = 1;
|
|
58
|
-
if (index >= defaultIndex) {
|
|
59
|
-
this.array.splice(index, deleteCount);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
resize() {
|
|
63
|
-
for (const absorber of this.array) {
|
|
64
|
-
absorber.resize();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
stop() {
|
|
68
|
-
this.array = [];
|
|
69
|
-
}
|
|
70
|
-
}
|
package/types/Absorbers.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type Engine, type IContainerPlugin, type ICoordinates, type Particle, type RecursivePartial, type SingleOrMultiple } from "@tsparticles/engine";
|
|
2
|
-
import { Absorber } from "./Options/Classes/Absorber.js";
|
|
3
|
-
import type { AbsorberContainer } from "./AbsorberContainer.js";
|
|
4
|
-
import { AbsorberInstance } from "./AbsorberInstance.js";
|
|
5
|
-
import type { IAbsorber } from "./Options/Interfaces/IAbsorber.js";
|
|
6
|
-
export declare class Absorbers implements IContainerPlugin {
|
|
7
|
-
absorbers: SingleOrMultiple<Absorber>;
|
|
8
|
-
array: AbsorberInstance[];
|
|
9
|
-
interactivityAbsorbers: SingleOrMultiple<Absorber>;
|
|
10
|
-
private readonly _container;
|
|
11
|
-
private readonly _engine;
|
|
12
|
-
constructor(container: AbsorberContainer, engine: Engine);
|
|
13
|
-
addAbsorber(options: RecursivePartial<IAbsorber>, position?: ICoordinates): Promise<AbsorberInstance>;
|
|
14
|
-
draw(context: CanvasRenderingContext2D): void;
|
|
15
|
-
handleClickMode(mode: string): void;
|
|
16
|
-
init(): Promise<void>;
|
|
17
|
-
particleUpdate(particle: Particle): void;
|
|
18
|
-
removeAbsorber(absorber: AbsorberInstance): void;
|
|
19
|
-
resize(): void;
|
|
20
|
-
stop(): void;
|
|
21
|
-
}
|
package/umd/Absorbers.js
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "@tsparticles/engine", "./Options/Classes/Absorber.js", "./Enums/AbsorberClickMode.js", "./AbsorberInstance.js"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Absorbers = void 0;
|
|
13
|
-
const engine_1 = require("@tsparticles/engine");
|
|
14
|
-
const Absorber_js_1 = require("./Options/Classes/Absorber.js");
|
|
15
|
-
const AbsorberClickMode_js_1 = require("./Enums/AbsorberClickMode.js");
|
|
16
|
-
const AbsorberInstance_js_1 = require("./AbsorberInstance.js");
|
|
17
|
-
const defaultIndex = 0;
|
|
18
|
-
class Absorbers {
|
|
19
|
-
constructor(container, engine) {
|
|
20
|
-
this._container = container;
|
|
21
|
-
this._engine = engine;
|
|
22
|
-
this.array = [];
|
|
23
|
-
this.absorbers = [];
|
|
24
|
-
this.interactivityAbsorbers = [];
|
|
25
|
-
container.getAbsorber = (idxOrName) => idxOrName === undefined || (0, engine_1.isNumber)(idxOrName)
|
|
26
|
-
? this.array[idxOrName ?? defaultIndex]
|
|
27
|
-
: this.array.find(t => t.name === idxOrName);
|
|
28
|
-
container.addAbsorber = async (options, position) => this.addAbsorber(options, position);
|
|
29
|
-
}
|
|
30
|
-
async addAbsorber(options, position) {
|
|
31
|
-
const absorber = new AbsorberInstance_js_1.AbsorberInstance(this._container, this._engine, options, position);
|
|
32
|
-
this.array.push(absorber);
|
|
33
|
-
return Promise.resolve(absorber);
|
|
34
|
-
}
|
|
35
|
-
draw(context) {
|
|
36
|
-
for (const absorber of this.array) {
|
|
37
|
-
absorber.draw(context);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
handleClickMode(mode) {
|
|
41
|
-
const modeAbsorbers = this.interactivityAbsorbers;
|
|
42
|
-
if (mode === AbsorberClickMode_js_1.AbsorberClickMode.absorber) {
|
|
43
|
-
const absorbersModeOptions = (0, engine_1.itemFromSingleOrMultiple)(modeAbsorbers) ?? new Absorber_js_1.Absorber(), aPosition = this._container.interactivity.mouse.clickPosition;
|
|
44
|
-
void this.addAbsorber(absorbersModeOptions, aPosition);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
async init() {
|
|
48
|
-
this.absorbers = this._container.actualOptions.absorbers;
|
|
49
|
-
this.interactivityAbsorbers = this._container.actualOptions.interactivity.modes.absorbers;
|
|
50
|
-
const promises = (0, engine_1.executeOnSingleOrMultiple)(this.absorbers, async (absorber) => {
|
|
51
|
-
await this.addAbsorber(absorber);
|
|
52
|
-
});
|
|
53
|
-
if (promises instanceof Array) {
|
|
54
|
-
await Promise.all(promises);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
await promises;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
particleUpdate(particle) {
|
|
61
|
-
for (const absorber of this.array) {
|
|
62
|
-
absorber.attract(particle);
|
|
63
|
-
if (particle.destroyed) {
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
removeAbsorber(absorber) {
|
|
69
|
-
const index = this.array.indexOf(absorber), deleteCount = 1;
|
|
70
|
-
if (index >= defaultIndex) {
|
|
71
|
-
this.array.splice(index, deleteCount);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
resize() {
|
|
75
|
-
for (const absorber of this.array) {
|
|
76
|
-
absorber.resize();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
stop() {
|
|
80
|
-
this.array = [];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
exports.Absorbers = Absorbers;
|
|
84
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
(function (factory) {
|
|
2
|
-
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
-
var v = factory(require, exports);
|
|
4
|
-
if (v !== undefined) module.exports = v;
|
|
5
|
-
}
|
|
6
|
-
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
8
|
-
}
|
|
9
|
-
})(function (require, exports) {
|
|
10
|
-
"use strict";
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.AbsorberClickMode = void 0;
|
|
13
|
-
var AbsorberClickMode;
|
|
14
|
-
(function (AbsorberClickMode) {
|
|
15
|
-
AbsorberClickMode["absorber"] = "absorber";
|
|
16
|
-
})(AbsorberClickMode || (exports.AbsorberClickMode = AbsorberClickMode = {}));
|
|
17
|
-
});
|