@tsparticles/plugin-emitters 4.0.0-beta.1 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/410.min.js +1 -0
  2. package/49.min.js +1 -0
  3. package/592.min.js +1 -1
  4. package/764.min.js +1 -1
  5. package/browser/addEmittersShapesManager.js +7 -0
  6. package/browser/ensureEmittersPluginLoaded.js +5 -0
  7. package/browser/getEmittersInstancesManager.js +11 -0
  8. package/browser/index.js +5 -24
  9. package/browser/interaction.js +18 -0
  10. package/browser/plugin.js +14 -0
  11. package/cjs/addEmittersShapesManager.js +7 -0
  12. package/cjs/ensureEmittersPluginLoaded.js +5 -0
  13. package/cjs/getEmittersInstancesManager.js +11 -0
  14. package/cjs/index.js +5 -24
  15. package/cjs/interaction.js +18 -0
  16. package/cjs/plugin.js +14 -0
  17. package/dist_browser_EmitterInstance_js.js +1 -1
  18. package/dist_browser_EmittersInstancesManager_js.js +1 -1
  19. package/dist_browser_EmittersInteractor_js.js +1 -1
  20. package/dist_browser_EmittersPluginInstance_js.js +1 -1
  21. package/dist_browser_EmittersPlugin_js.js +1 -1
  22. package/dist_browser_ShapeManager_js.js +1 -1
  23. package/dist_browser_addEmittersShapesManager_js.js +30 -0
  24. package/dist_browser_getEmittersInstancesManager_js.js +30 -0
  25. package/esm/addEmittersShapesManager.js +7 -0
  26. package/esm/ensureEmittersPluginLoaded.js +5 -0
  27. package/esm/getEmittersInstancesManager.js +11 -0
  28. package/esm/index.js +5 -24
  29. package/esm/interaction.js +18 -0
  30. package/esm/plugin.js +14 -0
  31. package/package.json +22 -4
  32. package/report.html +1 -1
  33. package/tsparticles.plugin.emitters.js +32 -2
  34. package/tsparticles.plugin.emitters.min.js +2 -2
  35. package/types/addEmittersShapesManager.d.ts +2 -0
  36. package/types/ensureEmittersPluginLoaded.d.ts +2 -0
  37. package/types/getEmittersInstancesManager.d.ts +3 -0
  38. package/types/index.d.ts +1 -1
  39. package/types/interaction.d.ts +9 -0
  40. package/types/plugin.d.ts +9 -0
  41. package/umd/EmitterContainer.js +0 -12
  42. package/umd/EmitterInstance.js +0 -358
  43. package/umd/EmitterShapeBase.js +0 -30
  44. package/umd/EmittersEngine.js +0 -12
  45. package/umd/EmittersInstancesManager.js +0 -119
  46. package/umd/EmittersInteractor.js +0 -130
  47. package/umd/EmittersPlugin.js +0 -80
  48. package/umd/EmittersPluginInstance.js +0 -58
  49. package/umd/Enums/EmitterClickMode.js +0 -17
  50. package/umd/IEmitterShape.js +0 -12
  51. package/umd/IEmitterShapeGenerator.js +0 -12
  52. package/umd/IRandomPositionData.js +0 -12
  53. package/umd/Options/Classes/Emitter.js +0 -93
  54. package/umd/Options/Classes/EmitterLife.js +0 -41
  55. package/umd/Options/Classes/EmitterRate.js +0 -34
  56. package/umd/Options/Classes/EmitterShape.js +0 -38
  57. package/umd/Options/Classes/EmitterShapeReplace.js +0 -34
  58. package/umd/Options/Classes/EmitterSize.js +0 -39
  59. package/umd/Options/Classes/EmitterSpawn.js +0 -32
  60. package/umd/Options/Interfaces/IEmitter.js +0 -12
  61. package/umd/Options/Interfaces/IEmitterLife.js +0 -12
  62. package/umd/Options/Interfaces/IEmitterRate.js +0 -12
  63. package/umd/Options/Interfaces/IEmitterShape.js +0 -12
  64. package/umd/Options/Interfaces/IEmitterShapeReplace.js +0 -12
  65. package/umd/Options/Interfaces/IEmitterSize.js +0 -12
  66. package/umd/Options/Interfaces/IEmitterSpawn.js +0 -12
  67. package/umd/ShapeManager.js +0 -28
  68. package/umd/constants.js +0 -17
  69. package/umd/index.js +0 -79
  70. package/umd/types.js +0 -12
package/410.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[410],{410(e,t,n){n.r(t),n.d(t,{getEmittersInstancesManager:()=>i});let s=new WeakMap;async function i(e){let t=e.pluginManager,i=s.get(t);if(!i){let{EmittersInstancesManager:e}=await n.e(764).then(n.bind(n,764));i=new e(t),s.set(t,i)}return i}}}]);
package/49.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[49],{49(e,t,a){async function r(e){let{ShapeManager:t}=await a.e(592).then(a.bind(a,592)),r=e.pluginManager;r.emitterShapeManager??=new t,r.addEmitterShapeGenerator??=(e,t)=>{r.emitterShapeManager?.addShapeGenerator(e,t)}}a.r(t),a.d(t,{addEmittersShapesManager:()=>r})}}]);
package/592.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[592],{592(e,t,r){r.r(t),r.d(t,{ShapeManager:()=>s});let a=new Map;class s{addShapeGenerator(e,t){this.getShapeGenerator(e)||a.set(e,t)}getShapeGenerator(e){return a.get(e)}getSupportedShapeGenerators(){return a.keys()}}}}]);
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[592],{592(e,t,r){r.d(t,{ShapeManager:()=>s});let a=new Map;class s{addShapeGenerator(e,t){this.getShapeGenerator(e)||a.set(e,t)}getShapeGenerator(e){return a.get(e)}getSupportedShapeGenerators(){return a.keys()}}}}]);
package/764.min.js CHANGED
@@ -1 +1 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[764],{764(t,i,e){e.r(i),e.d(i,{EmittersInstancesManager:()=>a});var s=e(303),o=e(565);class a{_containerArrays;_pluginManager;constructor(t){this._containerArrays=new Map,this._pluginManager=t}async addEmitter(t,i,s){let a=new o.v;a.load(i);let{EmitterInstance:l}=await e.e(399).then(e.bind(e,399)),r=new l(this._pluginManager,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)}}},565(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(143);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))}}},143(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))}}}}]);
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_emitters=this.webpackChunk_tsparticles_plugin_emitters||[]).push([[764],{764(t,i,e){e.d(i,{EmittersInstancesManager:()=>a});var s=e(303),o=e(565);class a{_containerArrays;_pluginManager;constructor(t){this._containerArrays=new Map,this._pluginManager=t}async addEmitter(t,i,s){let a=new o.v;a.load(i);let{EmitterInstance:l}=await e.e(399).then(e.bind(e,399)),r=new l(this._pluginManager,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)}}},565(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(143);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))}}},143(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))}}}}]);
@@ -0,0 +1,7 @@
1
+ export async function addEmittersShapesManager(e) {
2
+ const { ShapeManager } = await import("./ShapeManager.js"), pluginManager = e.pluginManager;
3
+ pluginManager.emitterShapeManager ??= new ShapeManager();
4
+ pluginManager.addEmitterShapeGenerator ??= (name, generator) => {
5
+ pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);
6
+ };
7
+ }
@@ -0,0 +1,5 @@
1
+ export function ensureEmittersPluginLoaded(e) {
2
+ if (!e.pluginManager.addEmitterShapeGenerator) {
3
+ throw new Error("tsParticles Emitters Plugin is not loaded");
4
+ }
5
+ }
@@ -0,0 +1,11 @@
1
+ const instancesManagers = new WeakMap();
2
+ export async function getEmittersInstancesManager(e) {
3
+ const pluginManager = e.pluginManager;
4
+ let manager = instancesManagers.get(pluginManager);
5
+ if (!manager) {
6
+ const { EmittersInstancesManager } = await import("./EmittersInstancesManager.js");
7
+ manager = new EmittersInstancesManager(pluginManager);
8
+ instancesManagers.set(pluginManager, manager);
9
+ }
10
+ return manager;
11
+ }
package/browser/index.js CHANGED
@@ -1,28 +1,9 @@
1
+ import { loadEmittersInteraction } from "./interaction.js";
2
+ import { loadEmittersPluginSimple } from "./plugin.js";
1
3
  export async function loadEmittersPlugin(engine) {
2
- engine.checkVersion("4.0.0-beta.1");
3
- await engine.pluginManager.register(async (e) => {
4
- const [{ ensureInteractivityPluginLoaded }, { ShapeManager }, { EmittersInstancesManager }, { EmittersPlugin },] = await Promise.all([
5
- import("@tsparticles/plugin-interactivity"),
6
- import("./ShapeManager.js"),
7
- import("./EmittersInstancesManager.js"),
8
- import("./EmittersPlugin.js"),
9
- ]), pluginManager = e.pluginManager, instancesManager = new EmittersInstancesManager(pluginManager);
10
- ensureInteractivityPluginLoaded(e);
11
- pluginManager.emitterShapeManager ??= new ShapeManager();
12
- pluginManager.addEmitterShapeGenerator ??= (name, generator) => {
13
- pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);
14
- };
15
- pluginManager.addPlugin(new EmittersPlugin(instancesManager));
16
- pluginManager.addInteractor?.("externalEmitters", async (container) => {
17
- const { EmittersInteractor } = await import("./EmittersInteractor.js");
18
- return new EmittersInteractor(instancesManager, container);
19
- });
20
- });
21
- }
22
- export function ensureEmittersPluginLoaded(e) {
23
- if (!e.pluginManager.addEmitterShapeGenerator) {
24
- throw new Error("tsParticles Emitters Plugin is not loaded");
25
- }
4
+ await loadEmittersPluginSimple(engine);
5
+ await loadEmittersInteraction(engine);
26
6
  }
7
+ export * from "./ensureEmittersPluginLoaded.js";
27
8
  export * from "./EmitterShapeBase.js";
28
9
  export * from "./Enums/EmitterClickMode.js";
@@ -0,0 +1,18 @@
1
+ export async function loadEmittersInteraction(engine) {
2
+ engine.checkVersion("4.0.0-beta.2");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ ensureInteractivityPluginLoaded }, { addEmittersShapesManager }, { getEmittersInstancesManager },] = await Promise.all([
5
+ import("@tsparticles/plugin-interactivity"),
6
+ import("./addEmittersShapesManager.js"),
7
+ import("./getEmittersInstancesManager.js"),
8
+ ]), instancesManager = await getEmittersInstancesManager(e);
9
+ ensureInteractivityPluginLoaded(e);
10
+ await addEmittersShapesManager(e);
11
+ e.pluginManager.addInteractor?.("externalEmitters", async (container) => {
12
+ const { EmittersInteractor } = await import("./EmittersInteractor.js");
13
+ return new EmittersInteractor(instancesManager, container);
14
+ });
15
+ });
16
+ }
17
+ export * from "./EmitterShapeBase.js";
18
+ export * from "./Enums/EmitterClickMode.js";
@@ -0,0 +1,14 @@
1
+ export async function loadEmittersPluginSimple(engine) {
2
+ engine.checkVersion("4.0.0-beta.2");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ addEmittersShapesManager }, { getEmittersInstancesManager }, { EmittersPlugin },] = await Promise.all([
5
+ import("./addEmittersShapesManager.js"),
6
+ import("./getEmittersInstancesManager.js"),
7
+ import("./EmittersPlugin.js"),
8
+ ]), instancesManager = await getEmittersInstancesManager(e);
9
+ await addEmittersShapesManager(e);
10
+ e.pluginManager.addPlugin(new EmittersPlugin(instancesManager));
11
+ });
12
+ }
13
+ export * from "./EmitterShapeBase.js";
14
+ export * from "./Enums/EmitterClickMode.js";
@@ -0,0 +1,7 @@
1
+ export async function addEmittersShapesManager(e) {
2
+ const { ShapeManager } = await import("./ShapeManager.js"), pluginManager = e.pluginManager;
3
+ pluginManager.emitterShapeManager ??= new ShapeManager();
4
+ pluginManager.addEmitterShapeGenerator ??= (name, generator) => {
5
+ pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);
6
+ };
7
+ }
@@ -0,0 +1,5 @@
1
+ export function ensureEmittersPluginLoaded(e) {
2
+ if (!e.pluginManager.addEmitterShapeGenerator) {
3
+ throw new Error("tsParticles Emitters Plugin is not loaded");
4
+ }
5
+ }
@@ -0,0 +1,11 @@
1
+ const instancesManagers = new WeakMap();
2
+ export async function getEmittersInstancesManager(e) {
3
+ const pluginManager = e.pluginManager;
4
+ let manager = instancesManagers.get(pluginManager);
5
+ if (!manager) {
6
+ const { EmittersInstancesManager } = await import("./EmittersInstancesManager.js");
7
+ manager = new EmittersInstancesManager(pluginManager);
8
+ instancesManagers.set(pluginManager, manager);
9
+ }
10
+ return manager;
11
+ }
package/cjs/index.js CHANGED
@@ -1,28 +1,9 @@
1
+ import { loadEmittersInteraction } from "./interaction.js";
2
+ import { loadEmittersPluginSimple } from "./plugin.js";
1
3
  export async function loadEmittersPlugin(engine) {
2
- engine.checkVersion("4.0.0-beta.1");
3
- await engine.pluginManager.register(async (e) => {
4
- const [{ ensureInteractivityPluginLoaded }, { ShapeManager }, { EmittersInstancesManager }, { EmittersPlugin },] = await Promise.all([
5
- import("@tsparticles/plugin-interactivity"),
6
- import("./ShapeManager.js"),
7
- import("./EmittersInstancesManager.js"),
8
- import("./EmittersPlugin.js"),
9
- ]), pluginManager = e.pluginManager, instancesManager = new EmittersInstancesManager(pluginManager);
10
- ensureInteractivityPluginLoaded(e);
11
- pluginManager.emitterShapeManager ??= new ShapeManager();
12
- pluginManager.addEmitterShapeGenerator ??= (name, generator) => {
13
- pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);
14
- };
15
- pluginManager.addPlugin(new EmittersPlugin(instancesManager));
16
- pluginManager.addInteractor?.("externalEmitters", async (container) => {
17
- const { EmittersInteractor } = await import("./EmittersInteractor.js");
18
- return new EmittersInteractor(instancesManager, container);
19
- });
20
- });
21
- }
22
- export function ensureEmittersPluginLoaded(e) {
23
- if (!e.pluginManager.addEmitterShapeGenerator) {
24
- throw new Error("tsParticles Emitters Plugin is not loaded");
25
- }
4
+ await loadEmittersPluginSimple(engine);
5
+ await loadEmittersInteraction(engine);
26
6
  }
7
+ export * from "./ensureEmittersPluginLoaded.js";
27
8
  export * from "./EmitterShapeBase.js";
28
9
  export * from "./Enums/EmitterClickMode.js";
@@ -0,0 +1,18 @@
1
+ export async function loadEmittersInteraction(engine) {
2
+ engine.checkVersion("4.0.0-beta.2");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ ensureInteractivityPluginLoaded }, { addEmittersShapesManager }, { getEmittersInstancesManager },] = await Promise.all([
5
+ import("@tsparticles/plugin-interactivity"),
6
+ import("./addEmittersShapesManager.js"),
7
+ import("./getEmittersInstancesManager.js"),
8
+ ]), instancesManager = await getEmittersInstancesManager(e);
9
+ ensureInteractivityPluginLoaded(e);
10
+ await addEmittersShapesManager(e);
11
+ e.pluginManager.addInteractor?.("externalEmitters", async (container) => {
12
+ const { EmittersInteractor } = await import("./EmittersInteractor.js");
13
+ return new EmittersInteractor(instancesManager, container);
14
+ });
15
+ });
16
+ }
17
+ export * from "./EmitterShapeBase.js";
18
+ export * from "./Enums/EmitterClickMode.js";
package/cjs/plugin.js ADDED
@@ -0,0 +1,14 @@
1
+ export async function loadEmittersPluginSimple(engine) {
2
+ engine.checkVersion("4.0.0-beta.2");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ addEmittersShapesManager }, { getEmittersInstancesManager }, { EmittersPlugin },] = await Promise.all([
5
+ import("./addEmittersShapesManager.js"),
6
+ import("./getEmittersInstancesManager.js"),
7
+ import("./EmittersPlugin.js"),
8
+ ]), instancesManager = await getEmittersInstancesManager(e);
9
+ await addEmittersShapesManager(e);
10
+ e.pluginManager.addPlugin(new EmittersPlugin(instancesManager));
11
+ });
12
+ }
13
+ export * from "./EmitterShapeBase.js";
14
+ export * from "./Enums/EmitterClickMode.js";
@@ -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.1
7
+ * v4.0.0-beta.2
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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.1
7
+ * v4.0.0-beta.2
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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.1
7
+ * v4.0.0-beta.2
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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.1
7
+ * v4.0.0-beta.2
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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.1
7
+ * v4.0.0-beta.2
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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.1
7
+ * v4.0.0-beta.2
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-beta.2
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_plugin_emitters"] = this["webpackChunk_tsparticles_plugin_emitters"] || []).push([["dist_browser_addEmittersShapesManager_js"],{
19
+
20
+ /***/ "./dist/browser/addEmittersShapesManager.js"
21
+ /*!**************************************************!*\
22
+ !*** ./dist/browser/addEmittersShapesManager.js ***!
23
+ \**************************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addEmittersShapesManager: () => (/* binding */ addEmittersShapesManager)\n/* harmony export */ });\nasync function addEmittersShapesManager(e) {\n const { ShapeManager } = await __webpack_require__.e(/*! import() */ \"dist_browser_ShapeManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./ShapeManager.js */ \"./dist/browser/ShapeManager.js\")), pluginManager = e.pluginManager;\n pluginManager.emitterShapeManager ??= new ShapeManager();\n pluginManager.addEmitterShapeGenerator ??= (name, generator)=>{\n pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);\n };\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-emitters/./dist/browser/addEmittersShapesManager.js?\n}");
27
+
28
+ /***/ }
29
+
30
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-beta.2
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_plugin_emitters"] = this["webpackChunk_tsparticles_plugin_emitters"] || []).push([["dist_browser_getEmittersInstancesManager_js"],{
19
+
20
+ /***/ "./dist/browser/getEmittersInstancesManager.js"
21
+ /*!*****************************************************!*\
22
+ !*** ./dist/browser/getEmittersInstancesManager.js ***!
23
+ \*****************************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getEmittersInstancesManager: () => (/* binding */ getEmittersInstancesManager)\n/* harmony export */ });\nconst instancesManagers = new WeakMap();\nasync function getEmittersInstancesManager(e) {\n const pluginManager = e.pluginManager;\n let manager = instancesManagers.get(pluginManager);\n if (!manager) {\n const { EmittersInstancesManager } = await __webpack_require__.e(/*! import() */ \"dist_browser_EmittersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./EmittersInstancesManager.js */ \"./dist/browser/EmittersInstancesManager.js\"));\n manager = new EmittersInstancesManager(pluginManager);\n instancesManagers.set(pluginManager, manager);\n }\n return manager;\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-emitters/./dist/browser/getEmittersInstancesManager.js?\n}");
27
+
28
+ /***/ }
29
+
30
+ }]);
@@ -0,0 +1,7 @@
1
+ export async function addEmittersShapesManager(e) {
2
+ const { ShapeManager } = await import("./ShapeManager.js"), pluginManager = e.pluginManager;
3
+ pluginManager.emitterShapeManager ??= new ShapeManager();
4
+ pluginManager.addEmitterShapeGenerator ??= (name, generator) => {
5
+ pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);
6
+ };
7
+ }
@@ -0,0 +1,5 @@
1
+ export function ensureEmittersPluginLoaded(e) {
2
+ if (!e.pluginManager.addEmitterShapeGenerator) {
3
+ throw new Error("tsParticles Emitters Plugin is not loaded");
4
+ }
5
+ }
@@ -0,0 +1,11 @@
1
+ const instancesManagers = new WeakMap();
2
+ export async function getEmittersInstancesManager(e) {
3
+ const pluginManager = e.pluginManager;
4
+ let manager = instancesManagers.get(pluginManager);
5
+ if (!manager) {
6
+ const { EmittersInstancesManager } = await import("./EmittersInstancesManager.js");
7
+ manager = new EmittersInstancesManager(pluginManager);
8
+ instancesManagers.set(pluginManager, manager);
9
+ }
10
+ return manager;
11
+ }
package/esm/index.js CHANGED
@@ -1,28 +1,9 @@
1
+ import { loadEmittersInteraction } from "./interaction.js";
2
+ import { loadEmittersPluginSimple } from "./plugin.js";
1
3
  export async function loadEmittersPlugin(engine) {
2
- engine.checkVersion("4.0.0-beta.1");
3
- await engine.pluginManager.register(async (e) => {
4
- const [{ ensureInteractivityPluginLoaded }, { ShapeManager }, { EmittersInstancesManager }, { EmittersPlugin },] = await Promise.all([
5
- import("@tsparticles/plugin-interactivity"),
6
- import("./ShapeManager.js"),
7
- import("./EmittersInstancesManager.js"),
8
- import("./EmittersPlugin.js"),
9
- ]), pluginManager = e.pluginManager, instancesManager = new EmittersInstancesManager(pluginManager);
10
- ensureInteractivityPluginLoaded(e);
11
- pluginManager.emitterShapeManager ??= new ShapeManager();
12
- pluginManager.addEmitterShapeGenerator ??= (name, generator) => {
13
- pluginManager.emitterShapeManager?.addShapeGenerator(name, generator);
14
- };
15
- pluginManager.addPlugin(new EmittersPlugin(instancesManager));
16
- pluginManager.addInteractor?.("externalEmitters", async (container) => {
17
- const { EmittersInteractor } = await import("./EmittersInteractor.js");
18
- return new EmittersInteractor(instancesManager, container);
19
- });
20
- });
21
- }
22
- export function ensureEmittersPluginLoaded(e) {
23
- if (!e.pluginManager.addEmitterShapeGenerator) {
24
- throw new Error("tsParticles Emitters Plugin is not loaded");
25
- }
4
+ await loadEmittersPluginSimple(engine);
5
+ await loadEmittersInteraction(engine);
26
6
  }
7
+ export * from "./ensureEmittersPluginLoaded.js";
27
8
  export * from "./EmitterShapeBase.js";
28
9
  export * from "./Enums/EmitterClickMode.js";
@@ -0,0 +1,18 @@
1
+ export async function loadEmittersInteraction(engine) {
2
+ engine.checkVersion("4.0.0-beta.2");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ ensureInteractivityPluginLoaded }, { addEmittersShapesManager }, { getEmittersInstancesManager },] = await Promise.all([
5
+ import("@tsparticles/plugin-interactivity"),
6
+ import("./addEmittersShapesManager.js"),
7
+ import("./getEmittersInstancesManager.js"),
8
+ ]), instancesManager = await getEmittersInstancesManager(e);
9
+ ensureInteractivityPluginLoaded(e);
10
+ await addEmittersShapesManager(e);
11
+ e.pluginManager.addInteractor?.("externalEmitters", async (container) => {
12
+ const { EmittersInteractor } = await import("./EmittersInteractor.js");
13
+ return new EmittersInteractor(instancesManager, container);
14
+ });
15
+ });
16
+ }
17
+ export * from "./EmitterShapeBase.js";
18
+ export * from "./Enums/EmitterClickMode.js";
package/esm/plugin.js ADDED
@@ -0,0 +1,14 @@
1
+ export async function loadEmittersPluginSimple(engine) {
2
+ engine.checkVersion("4.0.0-beta.2");
3
+ await engine.pluginManager.register(async (e) => {
4
+ const [{ addEmittersShapesManager }, { getEmittersInstancesManager }, { EmittersPlugin },] = await Promise.all([
5
+ import("./addEmittersShapesManager.js"),
6
+ import("./getEmittersInstancesManager.js"),
7
+ import("./EmittersPlugin.js"),
8
+ ]), instancesManager = await getEmittersInstancesManager(e);
9
+ await addEmittersShapesManager(e);
10
+ e.pluginManager.addPlugin(new EmittersPlugin(instancesManager));
11
+ });
12
+ }
13
+ export * from "./EmitterShapeBase.js";
14
+ export * from "./Enums/EmitterClickMode.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/plugin-emitters",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.2",
4
4
  "description": "tsParticles emitters plugin",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -80,15 +80,33 @@
80
80
  "browser": "./browser/index.js",
81
81
  "import": "./esm/index.js",
82
82
  "require": "./cjs/index.js",
83
- "umd": "./umd/index.js",
84
- "default": "./cjs/index.js"
83
+ "default": "./esm/index.js"
84
+ },
85
+ "./interaction": {
86
+ "types": "./types/interaction.d.ts",
87
+ "browser": "./browser/interaction.js",
88
+ "import": "./esm/interaction.js",
89
+ "require": "./cjs/interaction.js",
90
+ "default": "./esm/interaction.js"
91
+ },
92
+ "./plugin": {
93
+ "types": "./types/plugin.d.ts",
94
+ "browser": "./browser/plugin.js",
95
+ "import": "./esm/plugin.js",
96
+ "require": "./cjs/plugin.js",
97
+ "default": "./esm/plugin.js"
85
98
  },
86
99
  "./package.json": "./package.json"
87
100
  },
88
- "dependencies": {
101
+ "peerDependencies": {
89
102
  "@tsparticles/engine": "4.0.0-beta.1",
90
103
  "@tsparticles/plugin-interactivity": "4.0.0-beta.1"
91
104
  },
105
+ "peerDependenciesMeta": {
106
+ "@tsparticles/plugin-interactivity": {
107
+ "optional": true
108
+ }
109
+ },
92
110
  "publishConfig": {
93
111
  "access": "public"
94
112
  },
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-emitters [31 Mar 2026 at 08:46]</title>
6
+ <title>@tsparticles/plugin-emitters [2 Apr 2026 at 07:39]</title>
7
7
  <link
8
8
  rel="shortcut icon"
9
9
  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="
@@ -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.1
7
+ * v4.0.0-beta.2
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -68,13 +68,43 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
68
68
 
69
69
  /***/ },
70
70
 
71
+ /***/ "./dist/browser/ensureEmittersPluginLoaded.js"
72
+ /*!****************************************************!*\
73
+ !*** ./dist/browser/ensureEmittersPluginLoaded.js ***!
74
+ \****************************************************/
75
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
76
+
77
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ensureEmittersPluginLoaded: () => (/* binding */ ensureEmittersPluginLoaded)\n/* harmony export */ });\nfunction ensureEmittersPluginLoaded(e) {\n if (!e.pluginManager.addEmitterShapeGenerator) {\n throw new Error(\"tsParticles Emitters Plugin is not loaded\");\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-emitters/./dist/browser/ensureEmittersPluginLoaded.js?\n}");
78
+
79
+ /***/ },
80
+
71
81
  /***/ "./dist/browser/index.js"
72
82
  /*!*******************************!*\
73
83
  !*** ./dist/browser/index.js ***!
74
84
  \*******************************/
75
85
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
76
86
 
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}");
87
+ 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_4__.EmitterClickMode),\n/* harmony export */ EmitterShapeBase: () => (/* reexport safe */ _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_3__.EmitterShapeBase),\n/* harmony export */ ensureEmittersPluginLoaded: () => (/* reexport safe */ _ensureEmittersPluginLoaded_js__WEBPACK_IMPORTED_MODULE_2__.ensureEmittersPluginLoaded),\n/* harmony export */ loadEmittersPlugin: () => (/* binding */ loadEmittersPlugin)\n/* harmony export */ });\n/* harmony import */ var _interaction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./interaction.js */ \"./dist/browser/interaction.js\");\n/* harmony import */ var _plugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./plugin.js */ \"./dist/browser/plugin.js\");\n/* harmony import */ var _ensureEmittersPluginLoaded_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ensureEmittersPluginLoaded.js */ \"./dist/browser/ensureEmittersPluginLoaded.js\");\n/* harmony import */ var _EmitterShapeBase_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EmitterShapeBase.js */ \"./dist/browser/EmitterShapeBase.js\");\n/* harmony import */ var _Enums_EmitterClickMode_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Enums/EmitterClickMode.js */ \"./dist/browser/Enums/EmitterClickMode.js\");\n\n\nasync function loadEmittersPlugin(engine) {\n await (0,_plugin_js__WEBPACK_IMPORTED_MODULE_1__.loadEmittersPluginSimple)(engine);\n await (0,_interaction_js__WEBPACK_IMPORTED_MODULE_0__.loadEmittersInteraction)(engine);\n}\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/plugin-emitters/./dist/browser/index.js?\n}");
88
+
89
+ /***/ },
90
+
91
+ /***/ "./dist/browser/interaction.js"
92
+ /*!*************************************!*\
93
+ !*** ./dist/browser/interaction.js ***!
94
+ \*************************************/
95
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
96
+
97
+ 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 */ loadEmittersInteraction: () => (/* binding */ loadEmittersInteraction)\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 loadEmittersInteraction(engine) {\n engine.checkVersion(\"4.0.0-beta.2\");\n await engine.pluginManager.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { addEmittersShapesManager }, { getEmittersInstancesManager }] = 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_addEmittersShapesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./addEmittersShapesManager.js */ \"./dist/browser/addEmittersShapesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_getEmittersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./getEmittersInstancesManager.js */ \"./dist/browser/getEmittersInstancesManager.js\"))\n ]), instancesManager = await getEmittersInstancesManager(e);\n ensureInteractivityPluginLoaded(e);\n await addEmittersShapesManager(e);\n e.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}\n\n\n\n\n//# sourceURL=webpack://@tsparticles/plugin-emitters/./dist/browser/interaction.js?\n}");
98
+
99
+ /***/ },
100
+
101
+ /***/ "./dist/browser/plugin.js"
102
+ /*!********************************!*\
103
+ !*** ./dist/browser/plugin.js ***!
104
+ \********************************/
105
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
106
+
107
+ 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 */ loadEmittersPluginSimple: () => (/* binding */ loadEmittersPluginSimple)\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 loadEmittersPluginSimple(engine) {\n engine.checkVersion(\"4.0.0-beta.2\");\n await engine.pluginManager.register(async (e)=>{\n const [{ addEmittersShapesManager }, { getEmittersInstancesManager }, { EmittersPlugin }] = await Promise.all([\n __webpack_require__.e(/*! import() */ \"dist_browser_addEmittersShapesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./addEmittersShapesManager.js */ \"./dist/browser/addEmittersShapesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_getEmittersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./getEmittersInstancesManager.js */ \"./dist/browser/getEmittersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_EmittersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./EmittersPlugin.js */ \"./dist/browser/EmittersPlugin.js\"))\n ]), instancesManager = await getEmittersInstancesManager(e);\n await addEmittersShapesManager(e);\n e.pluginManager.addPlugin(new EmittersPlugin(instancesManager));\n });\n}\n\n\n\n\n//# sourceURL=webpack://@tsparticles/plugin-emitters/./dist/browser/plugin.js?\n}");
78
108
 
79
109
  /***/ }
80
110