@tsparticles/plugin-interactivity 4.0.0-alpha.21 → 4.0.0-alpha.22

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 (108) hide show
  1. package/221.min.js +1 -1
  2. package/703.min.js +1 -1
  3. package/{esm → browser/BaseClasses}/ExternalInteractorBase.js +1 -1
  4. package/browser/BaseClasses/GlobalInteractorBase.js +8 -0
  5. package/browser/{ParticlesInteractorBase.js → BaseClasses/ParticlesInteractorBase.js} +1 -1
  6. package/browser/{InteractorType.js → Enums/InteractorType.js} +1 -0
  7. package/browser/InteractionManager.js +24 -9
  8. package/browser/InteractivityEventListeners.js +13 -5
  9. package/browser/InteractivityPlugin.js +1 -3
  10. package/browser/InteractivityPluginInstance.js +5 -2
  11. package/browser/Options/Classes/Events/DivEvent.js +1 -1
  12. package/browser/Options/Classes/Interactivity.js +1 -1
  13. package/browser/index.js +7 -6
  14. package/{browser → cjs/BaseClasses}/ExternalInteractorBase.js +1 -1
  15. package/cjs/BaseClasses/GlobalInteractorBase.js +8 -0
  16. package/{esm → cjs/BaseClasses}/ParticlesInteractorBase.js +1 -1
  17. package/cjs/{InteractorType.js → Enums/InteractorType.js} +1 -0
  18. package/cjs/InteractionManager.js +24 -9
  19. package/cjs/InteractivityEventListeners.js +13 -5
  20. package/cjs/InteractivityPlugin.js +1 -3
  21. package/cjs/InteractivityPluginInstance.js +5 -2
  22. package/cjs/Options/Classes/Events/DivEvent.js +1 -1
  23. package/cjs/Options/Classes/Interactivity.js +1 -1
  24. package/cjs/index.js +7 -6
  25. package/dist_browser_InteractivityPluginInstance_js.js +4 -4
  26. package/dist_browser_InteractivityPlugin_js.js +3 -3
  27. package/{cjs → esm/BaseClasses}/ExternalInteractorBase.js +1 -1
  28. package/esm/BaseClasses/GlobalInteractorBase.js +8 -0
  29. package/{cjs → esm/BaseClasses}/ParticlesInteractorBase.js +1 -1
  30. package/esm/{InteractorType.js → Enums/InteractorType.js} +1 -0
  31. package/esm/InteractionManager.js +24 -9
  32. package/esm/InteractivityEventListeners.js +13 -5
  33. package/esm/InteractivityPlugin.js +1 -3
  34. package/esm/InteractivityPluginInstance.js +5 -2
  35. package/esm/Interfaces/IGlobalInteractor.js +1 -0
  36. package/esm/Interfaces/IInteractivityData.js +1 -0
  37. package/esm/Interfaces/IInteractor.js +1 -0
  38. package/esm/Interfaces/IMouseData.js +1 -0
  39. package/esm/Interfaces/IParticleInteractorBase.js +1 -0
  40. package/esm/Interfaces/IParticlesInteractor.js +1 -0
  41. package/esm/Options/Classes/Events/DivEvent.js +1 -1
  42. package/esm/Options/Classes/Interactivity.js +1 -1
  43. package/esm/index.js +7 -6
  44. package/package.json +2 -2
  45. package/report.html +1 -1
  46. package/tsparticles.plugin.interactivity.js +48 -38
  47. package/tsparticles.plugin.interactivity.min.js +2 -2
  48. package/types/{ExternalInteractorBase.d.ts → BaseClasses/ExternalInteractorBase.d.ts} +4 -4
  49. package/types/BaseClasses/GlobalInteractorBase.d.ts +12 -0
  50. package/types/{ParticlesInteractorBase.d.ts → BaseClasses/ParticlesInteractorBase.d.ts} +4 -4
  51. package/types/{InteractorType.d.ts → Enums/InteractorType.d.ts} +1 -0
  52. package/types/InteractionManager.d.ts +5 -2
  53. package/types/{IExternalInteractor.d.ts → Interfaces/IExternalInteractor.d.ts} +4 -4
  54. package/types/Interfaces/IGlobalInteractor.d.ts +11 -0
  55. package/types/Interfaces/IInteractor.d.ts +7 -0
  56. package/types/{IInteractor.d.ts → Interfaces/IParticleInteractorBase.d.ts} +4 -7
  57. package/types/{IParticlesInteractor.d.ts → Interfaces/IParticlesInteractor.d.ts} +2 -2
  58. package/types/Options/Classes/Events/DivEvent.d.ts +1 -1
  59. package/types/Options/Classes/Interactivity.d.ts +1 -1
  60. package/types/Options/Interfaces/Events/IDivEvent.d.ts +1 -1
  61. package/types/Options/Interfaces/IInteractivity.d.ts +1 -1
  62. package/types/index.d.ts +12 -9
  63. package/types/types.d.ts +1 -1
  64. package/umd/{ExternalInteractorBase.js → BaseClasses/ExternalInteractorBase.js} +2 -2
  65. package/umd/BaseClasses/GlobalInteractorBase.js +22 -0
  66. package/umd/{ParticlesInteractorBase.js → BaseClasses/ParticlesInteractorBase.js} +2 -2
  67. package/umd/{InteractorType.js → Enums/InteractorType.js} +1 -0
  68. package/umd/InteractionManager.js +25 -10
  69. package/umd/InteractivityEventListeners.js +14 -6
  70. package/umd/InteractivityPlugin.js +1 -3
  71. package/umd/InteractivityPluginInstance.js +5 -2
  72. package/umd/Interfaces/IParticleInteractorBase.js +12 -0
  73. package/umd/Interfaces/IParticlesInteractor.js +12 -0
  74. package/umd/Options/Classes/Events/DivEvent.js +2 -2
  75. package/umd/Options/Classes/Interactivity.js +2 -2
  76. package/umd/index.js +8 -7
  77. /package/browser/{DivType.js → Enums/DivType.js} +0 -0
  78. /package/browser/{InteractivityDetect.js → Enums/InteractivityDetect.js} +0 -0
  79. /package/browser/{IExternalInteractor.js → Interfaces/IExternalInteractor.js} +0 -0
  80. /package/browser/{IInteractivityData.js → Interfaces/IGlobalInteractor.js} +0 -0
  81. /package/{cjs → browser/Interfaces}/IInteractivityData.js +0 -0
  82. /package/browser/{IInteractor.js → Interfaces/IInteractor.js} +0 -0
  83. /package/browser/{IMouseData.js → Interfaces/IMouseData.js} +0 -0
  84. /package/browser/{IParticlesInteractor.js → Interfaces/IParticleInteractorBase.js} +0 -0
  85. /package/{cjs → browser/Interfaces}/IParticlesInteractor.js +0 -0
  86. /package/cjs/{DivType.js → Enums/DivType.js} +0 -0
  87. /package/cjs/{InteractivityDetect.js → Enums/InteractivityDetect.js} +0 -0
  88. /package/cjs/{IExternalInteractor.js → Interfaces/IExternalInteractor.js} +0 -0
  89. /package/cjs/{IInteractor.js → Interfaces/IGlobalInteractor.js} +0 -0
  90. /package/{esm → cjs/Interfaces}/IInteractivityData.js +0 -0
  91. /package/{esm → cjs/Interfaces}/IInteractor.js +0 -0
  92. /package/cjs/{IMouseData.js → Interfaces/IMouseData.js} +0 -0
  93. /package/{esm/IExternalInteractor.js → cjs/Interfaces/IParticleInteractorBase.js} +0 -0
  94. /package/{esm → cjs/Interfaces}/IParticlesInteractor.js +0 -0
  95. /package/esm/{DivType.js → Enums/DivType.js} +0 -0
  96. /package/esm/{InteractivityDetect.js → Enums/InteractivityDetect.js} +0 -0
  97. /package/esm/{IMouseData.js → Interfaces/IExternalInteractor.js} +0 -0
  98. /package/types/{DivType.d.ts → Enums/DivType.d.ts} +0 -0
  99. /package/types/{InteractivityDetect.d.ts → Enums/InteractivityDetect.d.ts} +0 -0
  100. /package/types/{IInteractivityData.d.ts → Interfaces/IInteractivityData.d.ts} +0 -0
  101. /package/types/{IMouseData.d.ts → Interfaces/IMouseData.d.ts} +0 -0
  102. /package/umd/{DivType.js → Enums/DivType.js} +0 -0
  103. /package/umd/{InteractivityDetect.js → Enums/InteractivityDetect.js} +0 -0
  104. /package/umd/{IExternalInteractor.js → Interfaces/IExternalInteractor.js} +0 -0
  105. /package/umd/{IInteractivityData.js → Interfaces/IGlobalInteractor.js} +0 -0
  106. /package/umd/{IInteractor.js → Interfaces/IInteractivityData.js} +0 -0
  107. /package/umd/{IMouseData.js → Interfaces/IInteractor.js} +0 -0
  108. /package/umd/{IParticlesInteractor.js → Interfaces/IMouseData.js} +0 -0
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "@tsparticles/engine", "./InteractivityConstants.js", "./InteractivityEventListeners.js", "./InteractorType.js"], factory);
7
+ define(["require", "exports", "@tsparticles/engine", "./InteractivityConstants.js", "./InteractivityEventListeners.js", "./Enums/InteractorType.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -13,7 +13,7 @@
13
13
  const engine_1 = require("@tsparticles/engine");
14
14
  const InteractivityConstants_js_1 = require("./InteractivityConstants.js");
15
15
  const InteractivityEventListeners_js_1 = require("./InteractivityEventListeners.js");
16
- const InteractorType_js_1 = require("./InteractorType.js");
16
+ const InteractorType_js_1 = require("./Enums/InteractorType.js");
17
17
  class InteractionManager {
18
18
  container;
19
19
  interactivityData;
@@ -21,6 +21,7 @@
21
21
  _engine;
22
22
  _eventListeners;
23
23
  _externalInteractors;
24
+ _globalInteractors;
24
25
  _interactors;
25
26
  _intersectionObserver;
26
27
  _particleInteractors;
@@ -29,6 +30,7 @@
29
30
  this._engine = engine;
30
31
  this._interactors = [];
31
32
  this._externalInteractors = [];
33
+ this._globalInteractors = [];
32
34
  this._particleInteractors = [];
33
35
  this._clickHandlers = new Map();
34
36
  this._eventListeners = new InteractivityEventListeners_js_1.InteractivityEventListeners(container, this);
@@ -135,6 +137,14 @@
135
137
  }
136
138
  }
137
139
  }
140
+ globalInteract(delta) {
141
+ for (const interactor of this._globalInteractors) {
142
+ const { interactivityData } = this;
143
+ if (interactor.isEnabled(interactivityData)) {
144
+ interactor.interact(interactivityData, delta);
145
+ }
146
+ }
147
+ }
138
148
  handleClickMode(mode) {
139
149
  if (this.container.destroyed) {
140
150
  return;
@@ -144,14 +154,7 @@
144
154
  interactor.handleClickMode?.(mode, interactivityData);
145
155
  }
146
156
  }
147
- async init() {
148
- const interactors = await this._engine.getInteractors?.(this.container, true);
149
- if (!interactors) {
150
- return;
151
- }
152
- this._interactors = interactors;
153
- this._externalInteractors = [];
154
- this._particleInteractors = [];
157
+ init() {
155
158
  this._eventListeners.init();
156
159
  for (const interactor of this._interactors) {
157
160
  switch (interactor.type) {
@@ -161,10 +164,22 @@
161
164
  case InteractorType_js_1.InteractorType.particles:
162
165
  this._particleInteractors.push(interactor);
163
166
  break;
167
+ case InteractorType_js_1.InteractorType.global:
168
+ this._globalInteractors.push(interactor);
169
+ break;
164
170
  }
165
171
  interactor.init();
166
172
  }
167
173
  }
174
+ async initInteractors() {
175
+ const interactors = await this._engine.getInteractors?.(this.container, true);
176
+ if (!interactors) {
177
+ return;
178
+ }
179
+ this._interactors = interactors;
180
+ this._externalInteractors = [];
181
+ this._particleInteractors = [];
182
+ }
168
183
  particlesInteract(particle, delta) {
169
184
  const { interactivityData } = this;
170
185
  for (const interactor of this._externalInteractors) {
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "@tsparticles/engine", "./InteractivityConstants.js", "./InteractivityDetect.js"], factory);
7
+ define(["require", "exports", "@tsparticles/engine", "./InteractivityConstants.js", "./Enums/InteractivityDetect.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -12,7 +12,7 @@
12
12
  exports.InteractivityEventListeners = void 0;
13
13
  const engine_1 = require("@tsparticles/engine");
14
14
  const InteractivityConstants_js_1 = require("./InteractivityConstants.js");
15
- const InteractivityDetect_js_1 = require("./InteractivityDetect.js");
15
+ const InteractivityDetect_js_1 = require("./Enums/InteractivityDetect.js");
16
16
  class InteractivityEventListeners {
17
17
  _canPush = true;
18
18
  _clickPositionPlugins;
@@ -103,18 +103,26 @@
103
103
  }
104
104
  const html = interactivityEl, canvas = container.canvas;
105
105
  canvas.setPointerEvents(html === canvas.element ? "initial" : "none");
106
- if (!(options.interactivity?.events.onHover.enable || options.interactivity?.events.onClick.enable)) {
106
+ if (add && !(options.interactivity?.events.onHover.enable || options.interactivity?.events.onClick.enable)) {
107
107
  return;
108
108
  }
109
109
  (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.mouseMoveEvent, handlers.mouseMove, add);
110
110
  (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.touchStartEvent, handlers.touchStart, add);
111
111
  (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.touchMoveEvent, handlers.touchMove, add);
112
- if (options.interactivity.events.onClick.enable) {
112
+ if (add) {
113
+ if (options.interactivity?.events.onClick.enable) {
114
+ (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.touchEndEvent, handlers.touchEndClick, add);
115
+ (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.mouseUpEvent, handlers.mouseUp, add);
116
+ (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.mouseDownEvent, handlers.mouseDown, add);
117
+ }
118
+ else {
119
+ (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.touchEndEvent, handlers.touchEnd, add);
120
+ }
121
+ }
122
+ else {
113
123
  (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.touchEndEvent, handlers.touchEndClick, add);
114
124
  (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.mouseUpEvent, handlers.mouseUp, add);
115
125
  (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.mouseDownEvent, handlers.mouseDown, add);
116
- }
117
- else {
118
126
  (0, engine_1.manageListener)(interactivityEl, InteractivityConstants_js_1.touchEndEvent, handlers.touchEnd, add);
119
127
  }
120
128
  (0, engine_1.manageListener)(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);
@@ -84,9 +84,7 @@ var __importStar = (this && this.__importStar) || (function () {
84
84
  return;
85
85
  }
86
86
  for (const interactor of interactors) {
87
- if (interactor.loadParticlesOptions) {
88
- interactor.loadParticlesOptions(options, source);
89
- }
87
+ interactor.loadParticlesOptions?.(options, source);
90
88
  }
91
89
  }
92
90
  needsPlugin() {
@@ -47,13 +47,16 @@
47
47
  this.interactionManager.particlesInteract(particle, delta);
48
48
  }
49
49
  postUpdate(delta) {
50
+ this.interactionManager.globalInteract(delta);
50
51
  this.interactionManager.externalInteract(delta);
51
52
  }
52
53
  async preInit() {
53
- await this.interactionManager.init();
54
+ await this.interactionManager.initInteractors();
55
+ this.interactionManager.init();
54
56
  }
55
57
  async redrawInit() {
56
- await this.interactionManager.init();
58
+ await this.interactionManager.initInteractors();
59
+ this.interactionManager.init();
57
60
  }
58
61
  start() {
59
62
  this.interactionManager.addListeners();
@@ -0,0 +1,12 @@
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
+ });
@@ -0,0 +1,12 @@
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
+ });
@@ -4,14 +4,14 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "@tsparticles/engine", "../../../DivType.js"], factory);
7
+ define(["require", "exports", "@tsparticles/engine", "../../../Enums/DivType.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.DivEvent = void 0;
13
13
  const engine_1 = require("@tsparticles/engine");
14
- const DivType_js_1 = require("../../../DivType.js");
14
+ const DivType_js_1 = require("../../../Enums/DivType.js");
15
15
  class DivEvent {
16
16
  enable;
17
17
  mode;
@@ -4,7 +4,7 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "@tsparticles/engine", "./Events/Events.js", "../../InteractivityDetect.js", "./Modes/Modes.js"], factory);
7
+ define(["require", "exports", "@tsparticles/engine", "./Events/Events.js", "../../Enums/InteractivityDetect.js", "./Modes/Modes.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
@@ -12,7 +12,7 @@
12
12
  exports.Interactivity = void 0;
13
13
  const engine_1 = require("@tsparticles/engine");
14
14
  const Events_js_1 = require("./Events/Events.js");
15
- const InteractivityDetect_js_1 = require("../../InteractivityDetect.js");
15
+ const InteractivityDetect_js_1 = require("../../Enums/InteractivityDetect.js");
16
16
  const Modes_js_1 = require("./Modes/Modes.js");
17
17
  class Interactivity {
18
18
  detectsOn;
package/umd/index.js CHANGED
@@ -40,7 +40,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
40
40
  if (v !== undefined) module.exports = v;
41
41
  }
42
42
  else if (typeof define === "function" && define.amd) {
43
- define(["require", "exports", "@tsparticles/engine", "./DivType.js", "./ExternalInteractorBase.js", "./InteractivityConstants.js", "./InteractivityDetect.js", "./InteractorType.js", "./ParticlesInteractorBase.js", "./utils.js", "./Options/Classes/Events/DivEvent.js", "./Options/Classes/Modes/Modes.js"], factory);
43
+ define(["require", "exports", "@tsparticles/engine", "./BaseClasses/ExternalInteractorBase.js", "./BaseClasses/GlobalInteractorBase.js", "./BaseClasses/ParticlesInteractorBase.js", "./InteractivityConstants.js", "./Enums/DivType.js", "./Enums/InteractivityDetect.js", "./Enums/InteractorType.js", "./utils.js", "./Options/Classes/Events/DivEvent.js", "./Options/Classes/Modes/Modes.js"], factory);
44
44
  }
45
45
  })(function (require, exports) {
46
46
  "use strict";
@@ -50,7 +50,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
50
50
  exports.ensureInteractivityPluginLoaded = ensureInteractivityPluginLoaded;
51
51
  const engine_1 = require("@tsparticles/engine");
52
52
  async function loadInteractivityPlugin(engine) {
53
- engine.checkVersion("4.0.0-alpha.21");
53
+ engine.checkVersion("4.0.0-alpha.22");
54
54
  await engine.register(async (e) => {
55
55
  const interactivityEngine = e, { InteractivityPlugin } = await (__syncRequire ? Promise.resolve().then(() => __importStar(require("./InteractivityPlugin.js"))) : new Promise((resolve_1, reject_1) => { require(["./InteractivityPlugin.js"], resolve_1, reject_1); }).then(__importStar));
56
56
  interactivityEngine.addPlugin(new InteractivityPlugin(interactivityEngine));
@@ -82,12 +82,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
82
82
  throw new Error("tsParticles Interactivity Plugin is not loaded");
83
83
  }
84
84
  }
85
- __exportStar(require("./DivType.js"), exports);
86
- __exportStar(require("./ExternalInteractorBase.js"), exports);
85
+ __exportStar(require("./BaseClasses/ExternalInteractorBase.js"), exports);
86
+ __exportStar(require("./BaseClasses/GlobalInteractorBase.js"), exports);
87
+ __exportStar(require("./BaseClasses/ParticlesInteractorBase.js"), exports);
87
88
  __exportStar(require("./InteractivityConstants.js"), exports);
88
- __exportStar(require("./InteractivityDetect.js"), exports);
89
- __exportStar(require("./InteractorType.js"), exports);
90
- __exportStar(require("./ParticlesInteractorBase.js"), exports);
89
+ __exportStar(require("./Enums/DivType.js"), exports);
90
+ __exportStar(require("./Enums/InteractivityDetect.js"), exports);
91
+ __exportStar(require("./Enums/InteractorType.js"), exports);
91
92
  __exportStar(require("./utils.js"), exports);
92
93
  __exportStar(require("./Options/Classes/Events/DivEvent.js"), exports);
93
94
  __exportStar(require("./Options/Classes/Modes/Modes.js"), exports);
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes