@tsparticles/plugin-emitters 4.0.0-beta.0 → 4.0.0-beta.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/{588.min.js → 392.min.js} +1 -1
- package/399.min.js +1 -0
- package/{526.min.js → 414.min.js} +1 -1
- package/{772.min.js → 592.min.js} +1 -1
- package/764.min.js +1 -0
- package/{803.min.js → 815.min.js} +1 -1
- package/browser/EmitterInstance.js +26 -34
- package/browser/EmittersInstancesManager.js +4 -4
- package/browser/index.js +9 -9
- package/cjs/EmitterInstance.js +26 -34
- package/cjs/EmittersInstancesManager.js +4 -4
- package/cjs/index.js +9 -9
- package/dist_browser_EmitterInstance_js.js +2 -2
- package/dist_browser_EmittersInstancesManager_js.js +2 -2
- package/dist_browser_EmittersInteractor_js.js +1 -1
- package/dist_browser_EmittersPluginInstance_js.js +1 -1
- package/dist_browser_EmittersPlugin_js.js +1 -1
- package/dist_browser_ShapeManager_js.js +1 -1
- package/esm/EmitterInstance.js +26 -34
- package/esm/EmittersInstancesManager.js +4 -4
- package/esm/index.js +9 -9
- package/package.json +3 -3
- package/report.html +84 -29
- package/tsparticles.plugin.emitters.js +2 -2
- package/tsparticles.plugin.emitters.min.js +2 -2
- package/types/EmitterInstance.d.ts +5 -5
- package/types/EmittersEngine.d.ts +5 -2
- package/types/EmittersInstancesManager.d.ts +3 -3
- package/umd/EmitterInstance.js +26 -34
- package/umd/EmittersInstancesManager.js +4 -4
- package/umd/index.js +9 -9
- package/784.min.js +0 -1
- package/795.min.js +0 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Demo / Generator : https://particles.js.org/
|
|
5
5
|
* GitHub : https://www.github.com/matteobruni/tsparticles
|
|
6
6
|
* How to use? : Check the GitHub README
|
|
7
|
-
* v4.0.0-beta.
|
|
7
|
+
* v4.0.0-beta.1
|
|
8
8
|
*/
|
|
9
9
|
/*
|
|
10
10
|
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
|
@@ -74,7 +74,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
74
74
|
\*******************************/
|
|
75
75
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
76
76
|
|
|
77
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmitterClickMode: () => (/* reexport safe */ _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_1__.EmitterClickMode),\n/* harmony export */ EmitterShapeBase: () => (/* reexport safe */ _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_0__.EmitterShapeBase),\n/* harmony export */ ensureEmittersPluginLoaded: () => (/* binding */ ensureEmittersPluginLoaded),\n/* harmony export */ loadEmittersPlugin: () => (/* binding */ loadEmittersPlugin)\n/* harmony export */ });\n/* harmony import */ var _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmitterShapeBase.js */ \"./dist/browser/EmitterShapeBase.js\");\n/* harmony import */ var _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enums/EmitterClickMode.js */ \"./dist/browser/Enums/EmitterClickMode.js\");\nasync function loadEmittersPlugin(engine) {\n engine.checkVersion(\"4.0.0-beta.
|
|
77
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmitterClickMode: () => (/* reexport safe */ _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_1__.EmitterClickMode),\n/* harmony export */ EmitterShapeBase: () => (/* reexport safe */ _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_0__.EmitterShapeBase),\n/* harmony export */ ensureEmittersPluginLoaded: () => (/* binding */ ensureEmittersPluginLoaded),\n/* harmony export */ loadEmittersPlugin: () => (/* binding */ loadEmittersPlugin)\n/* harmony export */ });\n/* harmony import */ var _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EmitterShapeBase.js */ \"./dist/browser/EmitterShapeBase.js\");\n/* harmony import */ var _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enums/EmitterClickMode.js */ \"./dist/browser/Enums/EmitterClickMode.js\");\nasync function loadEmittersPlugin(engine) {\n engine.checkVersion(\"4.0.0-beta.1\");\n await engine.pluginManager.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { ShapeManager }, { EmittersInstancesManager }, { EmittersPlugin }] = await Promise.all([\n Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\", 19)),\n __webpack_require__.e(/*! import() */ \"dist_browser_ShapeManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./ShapeManager.js */ \"./dist/browser/ShapeManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_EmittersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./EmittersInstancesManager.js */ \"./dist/browser/EmittersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_EmittersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./EmittersPlugin.js */ \"./dist/browser/EmittersPlugin.js\"))\n ]), pluginManager = e.pluginManager, instancesManager = new EmittersInstancesManager(pluginManager);\n ensureInteractivityPluginLoaded(e);\n pluginManager.emitterShapeManager ??= new ShapeManager();\n pluginManager.addEmitterShapeGenerator ??= (name, generator)=>{\n pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);\n };\n pluginManager.addPlugin(new EmittersPlugin(instancesManager));\n pluginManager.addInteractor?.(\"externalEmitters\", async (container)=>{\n const { EmittersInteractor } = await __webpack_require__.e(/*! import() */ \"dist_browser_EmittersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./EmittersInteractor.js */ \"./dist/browser/EmittersInteractor.js\"));\n return new EmittersInteractor(instancesManager, container);\n });\n });\n}\nfunction ensureEmittersPluginLoaded(e) {\n if (!e.pluginManager.addEmitterShapeGenerator) {\n throw new Error(\"tsParticles Emitters Plugin is not loaded\");\n }\n}\n\n\n\n\n//# sourceURL=webpack://@tsparticles/plugin-emitters/./dist/browser/index.js?\n}");
|
|
78
78
|
|
|
79
79
|
/***/ }
|
|
80
80
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/plugin-interactivity","@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):t(e.window,e.window);for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(this,(e,t)=>(()=>{"use strict";var r,i,o,
|
|
2
|
-
(`+
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/plugin-interactivity","@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):t(e.window,e.window);for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(this,(e,t)=>(()=>{"use strict";var r,i,n,o,a={303(e){e.exports=t},702(t){t.exports=e}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var r=s[e]={exports:{}};return a[e](r,r.exports,l),r.exports}l.m=a,c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(e,t){if(1&t&&(e=this(e)),8&t||"object"==typeof e&&e&&(4&t&&e.__esModule||16&t&&"function"==typeof e.then))return e;var r=Object.create(null);l.r(r);var i={};p=p||[null,c({}),c([]),c(c)];for(var n=2&t&&e;("object"==typeof n||"function"==typeof n)&&!~p.indexOf(n);n=c(n))Object.getOwnPropertyNames(n).forEach(t=>i[t]=()=>e[t]);return i.default=()=>e,l.d(r,i),r},l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((t,r)=>(l.f[r](e,t),t),[])),l.u=e=>""+e+".min.js",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),u={},l.l=(e,t,r,i)=>{if(u[e])return void u[e].push(t);if(void 0!==r)for(var n,o,a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var p=a[s];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")=="@tsparticles/plugin-emitters:"+r){n=p;break}}n||(o=!0,(n=document.createElement("script")).charset="utf-8",l.nc&&n.setAttribute("nonce",l.nc),n.setAttribute("data-webpack","@tsparticles/plugin-emitters:"+r),n.src=e),u[e]=[t];var c=(t,r)=>{n.onerror=n.onload=null,clearTimeout(d);var i=u[e];if(delete u[e],n.parentNode&&n.parentNode.removeChild(n),i&&i.forEach(e=>e(r)),t)return t(r)},d=setTimeout(c.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=c.bind(null,n.onerror),n.onload=c.bind(null,n.onload),o&&document.head.appendChild(n)},l.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.g.importScripts&&(d=l.g.location+"");var p,c,u,d,f=l.g.document;if(!d&&f&&(f.currentScript&&"SCRIPT"===f.currentScript.tagName.toUpperCase()&&(d=f.currentScript.src),!d)){var h=f.getElementsByTagName("script");if(h.length)for(var g=h.length-1;g>-1&&(!d||!/^http(s?):/.test(d));)d=h[g--].src}if(!d)throw Error("Automatic publicPath is not supported in this browser");l.p=d=d.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={833:0},l.f.j=(e,t)=>{var i=l.o(r,e)?r[e]:void 0;if(0!==i)if(i)t.push(i[2]);else{var n=new Promise((t,n)=>i=r[e]=[t,n]);t.push(i[2]=n);var o=l.p+l.u(e),a=Error();l.l(o,t=>{if(l.o(r,e)&&(0!==(i=r[e])&&(r[e]=void 0),i)){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;a.message="Loading chunk "+e+` failed.
|
|
2
|
+
(`+n+": "+o+")",a.name="ChunkLoadError",a.type=n,a.request=o,i[1](a)}},"chunk-"+e,e)}},i=(e,t)=>{var i,n,[o,a,s]=t,p=0;if(o.some(e=>0!==r[e])){for(i in a)l.o(a,i)&&(l.m[i]=a[i]);s&&s(l)}for(e&&e(t);p<o.length;p++)n=o[p],l.o(r,n)&&r[n]&&r[n][0](),r[n]=0},(n=this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).forEach(i.bind(null,0)),n.push=i.bind(null,n.push.bind(n));var m={};l.r(m),l.d(m,{EmitterClickMode:()=>o,EmitterShapeBase:()=>b,ensureEmittersPluginLoaded:()=>v,loadEmittersPlugin:()=>y});class b{fill;options;position;size;constructor(e,t,r,i){this.position=e,this.size=t,this.fill=r,this.options=i}resize(e,t){this.position=e,this.size=t}}async function y(e){e.checkVersion("4.0.0-beta.1"),await e.pluginManager.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{ShapeManager:r},{EmittersInstancesManager:i},{EmittersPlugin:n}]=await Promise.all([Promise.resolve().then(l.t.bind(l,702,19)),l.e(592).then(l.bind(l,592)),l.e(764).then(l.bind(l,764)),l.e(392).then(l.bind(l,392))]),o=e.pluginManager,a=new i(o);t(e),o.emitterShapeManager??=new r,o.addEmitterShapeGenerator??=(e,t)=>{o.emitterShapeManager?.addShapeGenerator(e,t)},o.addPlugin(new n(a)),o.addInteractor?.("externalEmitters",async e=>{let{EmittersInteractor:t}=await l.e(414).then(l.bind(l,414));return new t(a,e)})})}function v(e){if(!e.pluginManager.addEmitterShapeGenerator)throw Error("tsParticles Emitters Plugin is not loaded")}return(o||(o={})).emitter="emitter",m})());
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { type Container, type ICoordinates, type IDelta, type IDimension, type IHsl, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import { Emitter } from "./Options/Classes/Emitter.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { EmittersPluginManager } from "./EmittersEngine.js";
|
|
4
4
|
import type { IEmitter } from "./Options/Interfaces/IEmitter.js";
|
|
5
5
|
export declare class EmitterInstance {
|
|
6
|
-
private readonly container;
|
|
7
|
-
private readonly removeCallback;
|
|
8
6
|
fill: boolean;
|
|
9
7
|
readonly name?: string;
|
|
10
8
|
options: Emitter;
|
|
@@ -16,12 +14,12 @@ export declare class EmitterInstance {
|
|
|
16
14
|
spawnStrokeColor?: IHsl;
|
|
17
15
|
spawnStrokeOpacity?: number;
|
|
18
16
|
spawnStrokeWidth?: number;
|
|
17
|
+
private readonly _container;
|
|
19
18
|
private _currentDuration;
|
|
20
19
|
private _currentEmitDelay;
|
|
21
20
|
private _currentSpawnDelay;
|
|
22
21
|
private _duration?;
|
|
23
22
|
private _emitDelay?;
|
|
24
|
-
private readonly _engine;
|
|
25
23
|
private _firstSpawn;
|
|
26
24
|
private readonly _immortal;
|
|
27
25
|
private readonly _initialPosition?;
|
|
@@ -29,12 +27,14 @@ export declare class EmitterInstance {
|
|
|
29
27
|
private _mutationObserver?;
|
|
30
28
|
private readonly _particlesOptions;
|
|
31
29
|
private _paused;
|
|
30
|
+
private readonly _pluginManager;
|
|
31
|
+
private readonly _removeCallback;
|
|
32
32
|
private _resizeObserver?;
|
|
33
33
|
private readonly _shape?;
|
|
34
34
|
private _size;
|
|
35
35
|
private _spawnDelay?;
|
|
36
36
|
private _startParticlesAdded;
|
|
37
|
-
constructor(
|
|
37
|
+
constructor(pluginManager: EmittersPluginManager, container: Container, removeCallback: (emitter: EmitterInstance) => void, options: Emitter | RecursivePartial<IEmitter>, position?: ICoordinates);
|
|
38
38
|
externalPause(): void;
|
|
39
39
|
externalPlay(): void;
|
|
40
40
|
init(): Promise<void>;
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { InteractivityEngine, InteractivityPluginManager } from "@tsparticles/plugin-interactivity";
|
|
1
2
|
import type { IEmitterShapeGenerator } from "./IEmitterShapeGenerator.js";
|
|
2
|
-
import type { InteractivityEngine } from "@tsparticles/plugin-interactivity";
|
|
3
3
|
import type { ShapeManager } from "./ShapeManager.js";
|
|
4
|
-
export type
|
|
4
|
+
export type EmittersPluginManager = InteractivityPluginManager & {
|
|
5
5
|
addEmitterShapeGenerator?: (name: string, shape: IEmitterShapeGenerator) => void;
|
|
6
6
|
emitterShapeManager?: ShapeManager;
|
|
7
7
|
};
|
|
8
|
+
export type EmittersEngine = InteractivityEngine & {
|
|
9
|
+
pluginManager: EmittersPluginManager;
|
|
10
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type ICoordinates, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import type { EmitterContainer } from "./EmitterContainer.js";
|
|
3
3
|
import type { EmitterInstance } from "./EmitterInstance.js";
|
|
4
|
-
import type {
|
|
4
|
+
import type { EmittersPluginManager } from "./EmittersEngine.js";
|
|
5
5
|
import type { IEmitter } from "./Options/Interfaces/IEmitter.js";
|
|
6
6
|
export declare class EmittersInstancesManager {
|
|
7
7
|
private readonly _containerArrays;
|
|
8
|
-
private readonly
|
|
9
|
-
constructor(
|
|
8
|
+
private readonly _pluginManager;
|
|
9
|
+
constructor(pluginManager: EmittersPluginManager);
|
|
10
10
|
addEmitter(container: EmitterContainer, options: RecursivePartial<IEmitter>, position?: ICoordinates): Promise<EmitterInstance>;
|
|
11
11
|
clear(container: EmitterContainer): void;
|
|
12
12
|
getArray(container: EmitterContainer): EmitterInstance[];
|
package/umd/EmitterInstance.js
CHANGED
|
@@ -27,8 +27,6 @@
|
|
|
27
27
|
particlesOptions.stroke.width = width;
|
|
28
28
|
}
|
|
29
29
|
class EmitterInstance {
|
|
30
|
-
container;
|
|
31
|
-
removeCallback;
|
|
32
30
|
fill;
|
|
33
31
|
name;
|
|
34
32
|
options;
|
|
@@ -40,12 +38,12 @@
|
|
|
40
38
|
spawnStrokeColor;
|
|
41
39
|
spawnStrokeOpacity;
|
|
42
40
|
spawnStrokeWidth;
|
|
41
|
+
_container;
|
|
43
42
|
_currentDuration;
|
|
44
43
|
_currentEmitDelay;
|
|
45
44
|
_currentSpawnDelay;
|
|
46
45
|
_duration;
|
|
47
46
|
_emitDelay;
|
|
48
|
-
_engine;
|
|
49
47
|
_firstSpawn;
|
|
50
48
|
_immortal;
|
|
51
49
|
_initialPosition;
|
|
@@ -53,15 +51,17 @@
|
|
|
53
51
|
_mutationObserver;
|
|
54
52
|
_particlesOptions;
|
|
55
53
|
_paused;
|
|
54
|
+
_pluginManager;
|
|
55
|
+
_removeCallback;
|
|
56
56
|
_resizeObserver;
|
|
57
57
|
_shape;
|
|
58
58
|
_size;
|
|
59
59
|
_spawnDelay;
|
|
60
60
|
_startParticlesAdded;
|
|
61
|
-
constructor(
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
64
|
-
this.
|
|
61
|
+
constructor(pluginManager, container, removeCallback, options, position) {
|
|
62
|
+
this._pluginManager = pluginManager;
|
|
63
|
+
this._container = container;
|
|
64
|
+
this._removeCallback = removeCallback;
|
|
65
65
|
this._currentDuration = 0;
|
|
66
66
|
this._currentEmitDelay = 0;
|
|
67
67
|
this._currentSpawnDelay = 0;
|
|
@@ -86,15 +86,15 @@
|
|
|
86
86
|
particlesOptions.move ??= {};
|
|
87
87
|
particlesOptions.move.direction ??= this.options.direction;
|
|
88
88
|
if (this.options.spawn.fill?.color) {
|
|
89
|
-
this.spawnFillColor = (0, engine_1.rangeColorToHsl)(this.
|
|
89
|
+
this.spawnFillColor = (0, engine_1.rangeColorToHsl)(this._pluginManager, this.options.spawn.fill.color);
|
|
90
90
|
}
|
|
91
91
|
if (this.options.spawn.stroke?.color) {
|
|
92
|
-
this.spawnStrokeColor = (0, engine_1.rangeColorToHsl)(this.
|
|
92
|
+
this.spawnStrokeColor = (0, engine_1.rangeColorToHsl)(this._pluginManager, this.options.spawn.stroke.color);
|
|
93
93
|
}
|
|
94
94
|
this._paused = !this.options.autoPlay;
|
|
95
95
|
this._particlesOptions = particlesOptions;
|
|
96
96
|
this._size = this._calcSize();
|
|
97
|
-
this.size = (0, engine_1.getSize)(this._size, this.
|
|
97
|
+
this.size = (0, engine_1.getSize)(this._size, this._container.canvas.size);
|
|
98
98
|
this._lifeCount = this.options.life.count ?? defaultLifeCount;
|
|
99
99
|
this._immortal = this._lifeCount <= minLifeCount;
|
|
100
100
|
if (this.options.domId) {
|
|
@@ -113,15 +113,12 @@
|
|
|
113
113
|
this._resizeObserver.observe(element);
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
const shapeOptions = this.options.shape, shapeGenerator = this.
|
|
116
|
+
const shapeOptions = this.options.shape, shapeGenerator = this._pluginManager.emitterShapeManager?.getShapeGenerator(shapeOptions.type);
|
|
117
117
|
if (shapeGenerator) {
|
|
118
|
-
this._shape = shapeGenerator.generate(this.
|
|
118
|
+
this._shape = shapeGenerator.generate(this._container, this.position, this.size, this.fill, shapeOptions.options);
|
|
119
119
|
}
|
|
120
|
-
this.
|
|
121
|
-
|
|
122
|
-
data: {
|
|
123
|
-
emitter: this,
|
|
124
|
-
},
|
|
120
|
+
this._container.dispatchEvent("emitterCreated", {
|
|
121
|
+
emitter: this,
|
|
125
122
|
});
|
|
126
123
|
this.play();
|
|
127
124
|
}
|
|
@@ -150,7 +147,7 @@
|
|
|
150
147
|
(this._firstSpawn || this._currentSpawnDelay >= (this._spawnDelay ?? defaultSpawnDelay)))) {
|
|
151
148
|
return;
|
|
152
149
|
}
|
|
153
|
-
const container = this.
|
|
150
|
+
const container = this._container;
|
|
154
151
|
if (this._emitDelay === undefined) {
|
|
155
152
|
const delay = (0, engine_1.getRangeValue)(this.options.rate.delay);
|
|
156
153
|
this._emitDelay = container.retina.reduceFactor
|
|
@@ -162,7 +159,7 @@
|
|
|
162
159
|
}
|
|
163
160
|
}
|
|
164
161
|
resize() {
|
|
165
|
-
const initialPosition = this._initialPosition, container = this.
|
|
162
|
+
const initialPosition = this._initialPosition, container = this._container;
|
|
166
163
|
this.position =
|
|
167
164
|
initialPosition && (0, engine_1.isPointInside)(initialPosition, container.canvas.size, engine_1.Vector.origin)
|
|
168
165
|
? initialPosition
|
|
@@ -175,7 +172,7 @@
|
|
|
175
172
|
if (this._paused) {
|
|
176
173
|
return;
|
|
177
174
|
}
|
|
178
|
-
const container = this.
|
|
175
|
+
const container = this._container;
|
|
179
176
|
if (this._firstSpawn) {
|
|
180
177
|
this._firstSpawn = false;
|
|
181
178
|
this._currentSpawnDelay = this._spawnDelay ?? defaultSpawnDelay;
|
|
@@ -213,9 +210,7 @@
|
|
|
213
210
|
if (this._spawnDelay !== undefined) {
|
|
214
211
|
this._currentSpawnDelay += delta.value;
|
|
215
212
|
if (this._currentSpawnDelay >= this._spawnDelay) {
|
|
216
|
-
this.
|
|
217
|
-
container: this.container,
|
|
218
|
-
});
|
|
213
|
+
this._container.dispatchEvent("emitterPlay");
|
|
219
214
|
this.play();
|
|
220
215
|
this._currentSpawnDelay -= this._spawnDelay;
|
|
221
216
|
delete this._spawnDelay;
|
|
@@ -230,7 +225,7 @@
|
|
|
230
225
|
}
|
|
231
226
|
}
|
|
232
227
|
_calcPosition() {
|
|
233
|
-
const container = this.
|
|
228
|
+
const container = this._container;
|
|
234
229
|
if (this.options.domId) {
|
|
235
230
|
const element = (0, engine_1.safeDocument)().getElementById(this.options.domId);
|
|
236
231
|
if (element) {
|
|
@@ -247,7 +242,7 @@
|
|
|
247
242
|
});
|
|
248
243
|
}
|
|
249
244
|
_calcSize() {
|
|
250
|
-
const container = this.
|
|
245
|
+
const container = this._container;
|
|
251
246
|
if (this.options.domId) {
|
|
252
247
|
const element = (0, engine_1.safeDocument)().getElementById(this.options.domId);
|
|
253
248
|
if (element) {
|
|
@@ -275,12 +270,9 @@
|
|
|
275
270
|
this._mutationObserver = undefined;
|
|
276
271
|
this._resizeObserver?.disconnect();
|
|
277
272
|
this._resizeObserver = undefined;
|
|
278
|
-
this.
|
|
279
|
-
this.
|
|
280
|
-
|
|
281
|
-
data: {
|
|
282
|
-
emitter: this,
|
|
283
|
-
},
|
|
273
|
+
this._removeCallback(this);
|
|
274
|
+
this._container.dispatchEvent("emitterDestroyed", {
|
|
275
|
+
emitter: this,
|
|
284
276
|
});
|
|
285
277
|
};
|
|
286
278
|
_emit() {
|
|
@@ -298,7 +290,7 @@
|
|
|
298
290
|
? engine_1.defaultOpacity
|
|
299
291
|
: (0, engine_1.getRangeValue)(this.options.spawn.stroke.opacity), strokeWidth = this.options.spawn.stroke?.width === undefined
|
|
300
292
|
? defaultStrokeWidth
|
|
301
|
-
: (0, engine_1.getRangeValue)(this.options.spawn.stroke.width), reduceFactor = this.
|
|
293
|
+
: (0, engine_1.getRangeValue)(this.options.spawn.stroke.width), reduceFactor = this._container.retina.reduceFactor, needsFillColorAnimation = !!fillHslAnimation, needsStrokeColorAnimation = !!strokeHslAnimation, needsShapeData = !!this._shape, needsColorAnimation = needsFillColorAnimation || needsStrokeColorAnimation, needsCopy = needsColorAnimation || needsShapeData, maxValues = needsColorAnimation ? { h: engine_1.hMax, s: engine_1.sMax, l: engine_1.lMax } : null, shapeOptions = this.options.shape;
|
|
302
294
|
for (let i = 0; i < quantity * reduceFactor; i++) {
|
|
303
295
|
const particlesOptions = needsCopy
|
|
304
296
|
? (0, engine_1.deepExtend)({}, singleParticlesOptions)
|
|
@@ -338,7 +330,7 @@
|
|
|
338
330
|
}
|
|
339
331
|
}
|
|
340
332
|
if (position) {
|
|
341
|
-
this.
|
|
333
|
+
this._container.particles.addParticle(position, particlesOptions);
|
|
342
334
|
}
|
|
343
335
|
}
|
|
344
336
|
}
|
|
@@ -352,7 +344,7 @@
|
|
|
352
344
|
}
|
|
353
345
|
};
|
|
354
346
|
_setColorAnimation = (animation, initValue, maxValue, factor = defaultColorAnimationFactor) => {
|
|
355
|
-
const container = this.
|
|
347
|
+
const container = this._container;
|
|
356
348
|
if (!animation.enable) {
|
|
357
349
|
return initValue;
|
|
358
350
|
}
|
|
@@ -49,15 +49,15 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
49
49
|
const defaultIndex = 0;
|
|
50
50
|
class EmittersInstancesManager {
|
|
51
51
|
_containerArrays;
|
|
52
|
-
|
|
53
|
-
constructor(
|
|
52
|
+
_pluginManager;
|
|
53
|
+
constructor(pluginManager) {
|
|
54
54
|
this._containerArrays = new Map();
|
|
55
|
-
this.
|
|
55
|
+
this._pluginManager = pluginManager;
|
|
56
56
|
}
|
|
57
57
|
async addEmitter(container, options, position) {
|
|
58
58
|
const emitterOptions = new Emitter_js_1.Emitter();
|
|
59
59
|
emitterOptions.load(options);
|
|
60
|
-
const { EmitterInstance } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./EmitterInstance.js"))) : new Promise((resolve_1, reject_1) => { require(["./EmitterInstance.js"], resolve_1, reject_1); }).then(__importStar)), emitter = new EmitterInstance(this.
|
|
60
|
+
const { EmitterInstance } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./EmitterInstance.js"))) : new Promise((resolve_1, reject_1) => { require(["./EmitterInstance.js"], resolve_1, reject_1); }).then(__importStar)), emitter = new EmitterInstance(this._pluginManager, container, (emitter) => {
|
|
61
61
|
this.removeEmitter(container, emitter);
|
|
62
62
|
}, emitterOptions, position);
|
|
63
63
|
await emitter.init();
|
package/umd/index.js
CHANGED
|
@@ -49,28 +49,28 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
49
49
|
exports.loadEmittersPlugin = loadEmittersPlugin;
|
|
50
50
|
exports.ensureEmittersPluginLoaded = ensureEmittersPluginLoaded;
|
|
51
51
|
async function loadEmittersPlugin(engine) {
|
|
52
|
-
engine.checkVersion("4.0.0-beta.
|
|
53
|
-
await engine.register(async (e) => {
|
|
52
|
+
engine.checkVersion("4.0.0-beta.1");
|
|
53
|
+
await engine.pluginManager.register(async (e) => {
|
|
54
54
|
const [{ ensureInteractivityPluginLoaded }, { ShapeManager }, { EmittersInstancesManager }, { EmittersPlugin },] = await Promise.all([
|
|
55
55
|
__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),
|
|
56
56
|
__syncRequire ? Promise.resolve().then(() => __importStar(require("./ShapeManager.js"))) : new Promise((resolve_2, reject_2) => { require(["./ShapeManager.js"], resolve_2, reject_2); }).then(__importStar),
|
|
57
57
|
__syncRequire ? Promise.resolve().then(() => __importStar(require("./EmittersInstancesManager.js"))) : new Promise((resolve_3, reject_3) => { require(["./EmittersInstancesManager.js"], resolve_3, reject_3); }).then(__importStar),
|
|
58
58
|
__syncRequire ? Promise.resolve().then(() => __importStar(require("./EmittersPlugin.js"))) : new Promise((resolve_4, reject_4) => { require(["./EmittersPlugin.js"], resolve_4, reject_4); }).then(__importStar),
|
|
59
|
-
]), instancesManager = new EmittersInstancesManager(
|
|
59
|
+
]), pluginManager = e.pluginManager, instancesManager = new EmittersInstancesManager(pluginManager);
|
|
60
60
|
ensureInteractivityPluginLoaded(e);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
pluginManager.emitterShapeManager ??= new ShapeManager();
|
|
62
|
+
pluginManager.addEmitterShapeGenerator ??= (name, generator) => {
|
|
63
|
+
pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);
|
|
64
64
|
};
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
pluginManager.addPlugin(new EmittersPlugin(instancesManager));
|
|
66
|
+
pluginManager.addInteractor?.("externalEmitters", async (container) => {
|
|
67
67
|
const { EmittersInteractor } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./EmittersInteractor.js"))) : new Promise((resolve_5, reject_5) => { require(["./EmittersInteractor.js"], resolve_5, reject_5); }).then(__importStar));
|
|
68
68
|
return new EmittersInteractor(instancesManager, container);
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
function ensureEmittersPluginLoaded(e) {
|
|
73
|
-
if (!e.addEmitterShapeGenerator) {
|
|
73
|
+
if (!e.pluginManager.addEmitterShapeGenerator) {
|
|
74
74
|
throw new Error("tsParticles Emitters Plugin is not loaded");
|
|
75
75
|
}
|
|
76
76
|
}
|
package/784.min.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[784],{784(t,i,e){e.r(i),e.d(i,{EmittersInstancesManager:()=>a});var s=e(303),o=e(982);class a{_containerArrays;_engine;constructor(t){this._containerArrays=new Map,this._engine=t}async addEmitter(t,i,s){let a=new o.v;a.load(i);let{EmitterInstance:l}=await e.e(795).then(e.bind(e,795)),r=new l(this._engine,t,i=>{this.removeEmitter(t,i)},a,s);return await r.init(),this.getArray(t).push(r),r}clear(t){this.initContainer(t),this._containerArrays.set(t,[])}getArray(t){this.initContainer(t);let i=this._containerArrays.get(t);return i||(i=[],this._containerArrays.set(t,i)),i}initContainer(t){this._containerArrays.has(t)||(this._containerArrays.set(t,[]),t.getEmitter=i=>{let e=this.getArray(t);return void 0===i||(0,s.isNumber)(i)?e[i??0]:e.find(t=>t.name===i)},t.addEmitter=async(i,e)=>this.addEmitter(t,i,e),t.removeEmitter=i=>{let e=t.getEmitter?.(i);e&&this.removeEmitter(t,e)},t.playEmitter=i=>{let e=t.getEmitter?.(i);e&&e.externalPlay()},t.pauseEmitter=i=>{let e=t.getEmitter?.(i);e&&e.externalPause()})}removeEmitter(t,i){let e=this.getArray(t).indexOf(i);e>=0&&this.getArray(t).splice(e,1)}}},982(t,i,e){e.d(i,{v:()=>d});var s=e(303);class o{count;delay;duration;wait;constructor(){this.wait=!1}load(t){(0,s.isNull)(t)||(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=(0,s.setRangeValue)(t.delay)),void 0!==t.duration&&(this.duration=(0,s.setRangeValue)(t.duration)),void 0!==t.wait&&(this.wait=t.wait))}}class a{delay;quantity;constructor(){this.quantity=1,this.delay=.1}load(t){(0,s.isNull)(t)||(void 0!==t.quantity&&(this.quantity=(0,s.setRangeValue)(t.quantity)),void 0!==t.delay&&(this.delay=(0,s.setRangeValue)(t.delay)))}}class l{color;opacity;constructor(){this.color=!1,this.opacity=!1}load(t){(0,s.isNull)(t)||(void 0!==t.color&&(this.color=t.color),void 0!==t.opacity&&(this.opacity=t.opacity))}}class r{options;replace;type;constructor(){this.options={},this.replace=new l,this.type="square"}load(t){(0,s.isNull)(t)||(void 0!==t.options&&(this.options=(0,s.deepExtend)({},t.options??{})),this.replace.load(t.replace),void 0!==t.type&&(this.type=t.type))}}var n=e(747);class h{fill;stroke;load(t){!(0,s.isNull)(t)&&(t.fill&&(this.fill??=new s.Fill,this.fill.load(t.fill)),t.stroke&&(this.stroke??=new s.Stroke,this.stroke.load(t.stroke)))}}class d{autoPlay;direction;domId;fill;life;name;particles;position;rate;shape;size;spawn;spawnFillColor;spawnStrokeColor;startCount;constructor(){this.autoPlay=!0,this.fill=!0,this.life=new o,this.rate=new a,this.shape=new r,this.spawn=new h,this.startCount=0}load(t){(0,s.isNull)(t)||(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.size&&(this.size??=new n.G,this.size.load(t.size)),void 0!==t.direction&&(this.direction=t.direction),this.domId=t.domId,void 0!==t.fill&&(this.fill=t.fill),this.life.load(t.life),this.name=t.name,this.particles=(0,s.executeOnSingleOrMultiple)(t.particles,t=>(0,s.deepExtend)({},t)),this.rate.load(t.rate),this.shape.load(t.shape),this.spawn.load(t.spawn),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=(0,s.setRangeValue)(t.position.x)),void 0!==t.position.y&&(this.position.y=(0,s.setRangeValue)(t.position.y))),void 0!==t.spawnFillColor&&(this.spawnFillColor??=new s.AnimatableColor,this.spawnFillColor.load(t.spawnFillColor)),void 0!==t.spawnStrokeColor&&(this.spawnStrokeColor??=new s.AnimatableColor,this.spawnStrokeColor.load(t.spawnStrokeColor)),void 0!==t.startCount&&(this.startCount=t.startCount))}}},747(t,i,e){e.d(i,{G:()=>o});var s=e(303);class o{height;mode;width;constructor(){this.mode=s.PixelMode.percent,this.height=0,this.width=0}load(t){(0,s.isNull)(t)||(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.height&&(this.height=t.height),void 0!==t.width&&(this.width=t.width))}}}}]);
|
package/795.min.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[795],{795(t,i,e){e.d(i,{EmitterInstance:()=>r});var s=e(303),o=e(982),n=e(747);let a=1;function l(t,i,e,o){t.fill=new s.Fill,t.fill.color=s.AnimatableColor.create(void 0,{value:i}),t.fill.enable=o,t.fill.opacity=e}class r{container;removeCallback;fill;name;options;position;size;spawnFillColor;spawnFillEnabled;spawnFillOpacity;spawnStrokeColor;spawnStrokeOpacity;spawnStrokeWidth;_currentDuration;_currentEmitDelay;_currentSpawnDelay;_duration;_emitDelay;_engine;_firstSpawn;_immortal;_initialPosition;_lifeCount;_mutationObserver;_particlesOptions;_paused;_resizeObserver;_shape;_size;_spawnDelay;_startParticlesAdded;constructor(t,i,e,n,a){this.container=i,this.removeCallback=e,this._engine=t,this._currentDuration=0,this._currentEmitDelay=0,this._currentSpawnDelay=0,this._initialPosition=a,n instanceof o.v?this.options=n:(this.options=new o.v,this.options.load(n)),this._spawnDelay=i.retina.reduceFactor?(0,s.getRangeValue)(this.options.life.delay??0)*s.millisecondsToSeconds/i.retina.reduceFactor:1/0,this.position=this._initialPosition??this._calcPosition(),this.name=this.options.name,this.fill=this.options.fill,this._firstSpawn=!this.options.life.wait,this._startParticlesAdded=!1;const l=(0,s.deepExtend)({},this.options.particles);if(l.move??={},l.move.direction??=this.options.direction,this.options.spawn.fill?.color&&(this.spawnFillColor=(0,s.rangeColorToHsl)(this._engine,this.options.spawn.fill.color)),this.options.spawn.stroke?.color&&(this.spawnStrokeColor=(0,s.rangeColorToHsl)(this._engine,this.options.spawn.stroke.color)),this._paused=!this.options.autoPlay,this._particlesOptions=l,this._size=this._calcSize(),this.size=(0,s.getSize)(this._size,this.container.canvas.size),this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this.options.domId){const t=(0,s.safeDocument)().getElementById(this.options.domId);t&&(this._mutationObserver=new MutationObserver(()=>{this.resize()}),this._resizeObserver=new ResizeObserver(()=>{this.resize()}),this._mutationObserver.observe(t,{attributes:!0,attributeFilter:["style","width","height"]}),this._resizeObserver.observe(t))}const r=this.options.shape,h=this._engine.emitterShapeManager?.getShapeGenerator(r.type);h&&(this._shape=h.generate(this.container,this.position,this.size,this.fill,r.options)),this._engine.dispatchEvent("emitterCreated",{container:i,data:{emitter:this}}),this.play()}externalPause(){this._paused=!0,this.pause()}externalPlay(){this._paused=!1,this.play()}async init(){await this._shape?.init()}pause(){this._paused||delete this._emitDelay}play(){if(this._paused||!((this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))))return;let t=this.container;if(void 0===this._emitDelay){let i=(0,s.getRangeValue)(this.options.rate.delay);this._emitDelay=t.retina.reduceFactor?i*s.millisecondsToSeconds/t.retina.reduceFactor:1/0}(this._lifeCount>0||this._immortal)&&this._prepareToDie()}resize(){let t=this._initialPosition,i=this.container;this.position=t&&(0,s.isPointInside)(t,i.canvas.size,s.Vector.origin)?t:this._calcPosition(),this._size=this._calcSize(),this.size=(0,s.getSize)(this._size,i.canvas.size),this._shape?.resize(this.position,this.size)}update(t){if(this._paused)return;let i=this.container;this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0,this._currentEmitDelay=this._emitDelay??0),this._startParticlesAdded||(this._startParticlesAdded=!0,this._emitParticles(this.options.startCount)),void 0!==this._duration&&(this._currentDuration+=t.value,this._currentDuration>=this._duration&&(this.pause(),void 0!==this._spawnDelay&&delete this._spawnDelay,!this._immortal&&this._lifeCount--,this._lifeCount>0||this._immortal?(this.position=this._calcPosition(),this._shape?.resize(this.position,this.size),this._spawnDelay=i.retina.reduceFactor?(0,s.getRangeValue)(this.options.life.delay??0)*s.millisecondsToSeconds/i.retina.reduceFactor:1/0):this._destroy(),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=t.value,this._currentSpawnDelay>=this._spawnDelay&&(this._engine.dispatchEvent("emitterPlay",{container:this.container}),this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay)),void 0!==this._emitDelay&&(this._currentEmitDelay+=t.value,this._currentEmitDelay>=this._emitDelay&&(this._emit(),this._currentEmitDelay-=this._emitDelay))}_calcPosition(){let t=this.container;if(this.options.domId){let i=(0,s.safeDocument)().getElementById(this.options.domId);if(i){let e=i.getBoundingClientRect(),o=t.retina.pixelRatio;return{x:(e.x+e.width*s.half)*o,y:(e.y+e.height*s.half)*o}}}return(0,s.calcPositionOrRandomFromSizeRanged)({size:t.canvas.size,position:this.options.position})}_calcSize(){let t,i=this.container;if(this.options.domId){let t=(0,s.safeDocument)().getElementById(this.options.domId);if(t){let e=t.getBoundingClientRect();return{width:e.width*i.retina.pixelRatio,height:e.height*i.retina.pixelRatio,mode:s.PixelMode.precise}}}return this.options.size??((t=new n.G).load({height:0,mode:s.PixelMode.percent,width:0}),t)}_destroy=()=>{this._mutationObserver?.disconnect(),this._mutationObserver=void 0,this._resizeObserver?.disconnect(),this._resizeObserver=void 0,this.removeCallback(this),this._engine.dispatchEvent("emitterDestroyed",{container:this.container,data:{emitter:this}})};_emit(){if(this._paused)return;let t=(0,s.getRangeValue)(this.options.rate.quantity);this._emitParticles(t)}_emitParticles(t){let i=(0,s.itemFromSingleOrMultiple)(this._particlesOptions)??{},e=this.options.spawn.fill?.color.animation,o=this.options.spawn.fill?.enable??!!this.options.spawn.fill?.color,n=this.options.spawn.fill?.opacity===void 0?s.defaultOpacity:(0,s.getRangeValue)(this.options.spawn.fill.opacity),a=this.options.spawn.stroke?.color?.animation,r=this.options.spawn.stroke?.opacity===void 0?s.defaultOpacity:(0,s.getRangeValue)(this.options.spawn.stroke.opacity),h=this.options.spawn.stroke?.width===void 0?1:(0,s.getRangeValue)(this.options.spawn.stroke.width),p=this.container.retina.reduceFactor,c=!!e,_=!!a,d=!!this._shape,u=c||_,m=u||d,w=u?{h:s.hMax,s:s.sMax,l:s.lMax}:null,y=this.options.shape;for(let c=0;c<t*p;c++){let t=m?(0,s.deepExtend)({},i):i;if(this.spawnFillOpacity=n,this.spawnFillEnabled=o,this.spawnStrokeOpacity=r,this.spawnStrokeWidth=h,this.spawnFillColor&&(e&&w&&(this.spawnFillColor.h=this._setColorAnimation(e.h,this.spawnFillColor.h,w.h,3.6),this.spawnFillColor.s=this._setColorAnimation(e.s,this.spawnFillColor.s,w.s),this.spawnFillColor.l=this._setColorAnimation(e.l,this.spawnFillColor.l,w.l)),l(t,this.spawnFillColor,this.spawnFillOpacity,this.spawnFillEnabled)),this.spawnStrokeColor){var f,g,v;a&&w&&(this.spawnStrokeColor.h=this._setColorAnimation(a.h,this.spawnStrokeColor.h,w.h,3.6),this.spawnStrokeColor.s=this._setColorAnimation(a.s,this.spawnStrokeColor.s,w.s),this.spawnStrokeColor.l=this._setColorAnimation(a.l,this.spawnStrokeColor.l,w.l)),f=this.spawnStrokeColor,g=this.spawnStrokeOpacity,v=this.spawnStrokeWidth,t.stroke=new s.Stroke,t.stroke.color=s.AnimatableColor.create(void 0,{value:f}),t.stroke.opacity=g,t.stroke.width=v}let p=this.position;if(this._shape){let i=this._shape.randomPosition();if(i){p=i.position;let e=y.replace;e.color&&i.color&&l(t,i.color,e.opacity?i.opacity??s.defaultOpacity:s.defaultOpacity,!0)}else p=null}p&&this.container.particles.addParticle(p,t)}}_prepareToDie=()=>{if(this._paused)return;let t=void 0!==this.options.life.duration?(0,s.getRangeValue)(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==t&&t>0&&(this._duration=t*s.millisecondsToSeconds)};_setColorAnimation=(t,i,e,o=a)=>{let n=this.container;if(!t.enable)return i;let l=(0,s.randomInRangeValue)(t.offset),r=(0,s.getRangeValue)(this.options.rate.delay),h=n.retina.reduceFactor?r*s.millisecondsToSeconds/n.retina.reduceFactor:1/0;return(i+(0,s.getRangeValue)(t.speed)*n.fpsLimit/h+l*o)%e}}}}]);
|