@tsparticles/fireworks 4.0.0-beta.0 → 4.0.0-beta.10

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 (168) hide show
  1. package/1241.min.js +1 -0
  2. package/2049.min.js +1 -0
  3. package/2066.min.js +1 -0
  4. package/2127.min.js +1 -0
  5. package/218.min.js +1 -0
  6. package/2191.min.js +1 -0
  7. package/2270.min.js +1 -0
  8. package/2556.min.js +1 -0
  9. package/2602.min.js +1 -0
  10. package/2760.min.js +1 -0
  11. package/{41.min.js → 2865.min.js} +2 -2
  12. package/3047.min.js +1 -0
  13. package/3073.min.js +1 -0
  14. package/3384.min.js +1 -0
  15. package/3443.min.js +1 -0
  16. package/3583.min.js +1 -0
  17. package/374.min.js +1 -0
  18. package/382.min.js +1 -1
  19. package/4068.min.js +1 -0
  20. package/4217.min.js +1 -0
  21. package/4427.min.js +1 -0
  22. package/4519.min.js +1 -0
  23. package/4626.min.js +1 -0
  24. package/5048.min.js +1 -0
  25. package/5218.min.js +1 -0
  26. package/5294.min.js +1 -0
  27. package/5344.min.js +1 -0
  28. package/5445.min.js +1 -0
  29. package/5492.min.js +1 -0
  30. package/5629.min.js +1 -0
  31. package/5675.min.js +1 -0
  32. package/6055.min.js +1 -0
  33. package/6067.min.js +1 -0
  34. package/6171.min.js +1 -0
  35. package/648.min.js +1 -0
  36. package/6602.min.js +1 -0
  37. package/6930.min.js +1 -0
  38. package/6943.min.js +1 -0
  39. package/6996.min.js +1 -0
  40. package/7162.min.js +1 -0
  41. package/7698.min.js +1 -0
  42. package/7711.min.js +1 -0
  43. package/7757.min.js +1 -0
  44. package/7792.min.js +1 -0
  45. package/8272.min.js +1 -0
  46. package/8386.min.js +1 -0
  47. package/8529.min.js +1 -0
  48. package/8607.min.js +1 -0
  49. package/8656.min.js +1 -0
  50. package/8731.min.js +1 -0
  51. package/9497.min.js +1 -0
  52. package/9674.min.js +1 -0
  53. package/README.md +19 -5
  54. package/basic_dist_browser_index_js.js +2 -2
  55. package/browser/FireworkOptions.js +41 -7
  56. package/browser/fireworks.js +51 -83
  57. package/cjs/FireworkOptions.js +41 -7
  58. package/cjs/fireworks.js +51 -83
  59. package/dist_browser_FireworksInstance_js.js +1 -1
  60. package/engine_dist_browser_Core_Container_js.js +24 -14
  61. package/esm/FireworkOptions.js +41 -7
  62. package/esm/fireworks.js +51 -83
  63. package/package.json +13 -12
  64. package/plugins_blend_dist_browser_BlendPluginInstance_js.js +30 -0
  65. package/plugins_blend_dist_browser_BlendPlugin_js.js +40 -0
  66. package/{effects_trail_dist_browser_index_js.js → plugins_blend_dist_browser_index_js.js} +5 -5
  67. package/plugins_colors_hex_dist_browser_HexColorManager_js.js +1 -1
  68. package/plugins_colors_hex_dist_browser_index_js.js +2 -2
  69. package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +1 -1
  70. package/plugins_colors_hsl_dist_browser_index_js.js +2 -2
  71. package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +1 -1
  72. package/plugins_colors_rgb_dist_browser_index_js.js +2 -2
  73. package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +32 -2
  74. package/plugins_emittersShapes_square_dist_browser_index_js.js +2 -2
  75. package/plugins_emitters_dist_browser_EmitterInstance_js.js +2 -2
  76. package/plugins_emitters_dist_browser_EmittersInstancesManager_js.js +2 -2
  77. package/plugins_emitters_dist_browser_EmittersInteractor_js.js +4 -4
  78. package/plugins_emitters_dist_browser_EmittersPluginInstance_js.js +1 -1
  79. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +1 -1
  80. package/plugins_emitters_dist_browser_ShapeManager_js.js +1 -1
  81. package/plugins_emitters_dist_browser_addEmittersShapesManager_js.js +30 -0
  82. package/plugins_emitters_dist_browser_getEmittersInstancesManager_js.js +30 -0
  83. package/plugins_emitters_dist_browser_index_js.js +32 -2
  84. package/plugins_emitters_dist_browser_plugin_js.js +50 -0
  85. package/plugins_interactivity_dist_browser_InteractivityPluginInstance_js.js +4 -4
  86. package/plugins_interactivity_dist_browser_InteractivityPlugin_js.js +3 -3
  87. package/plugins_interactivity_dist_browser_index_js.js +4 -4
  88. package/plugins_move_dist_browser_MovePluginInstance_js.js +3 -3
  89. package/plugins_move_dist_browser_MovePlugin_js.js +2 -2
  90. package/plugins_move_dist_browser_index_js.js +2 -2
  91. package/plugins_sounds_dist_browser_SoundsPluginInstance_js.js +2 -2
  92. package/plugins_sounds_dist_browser_SoundsPlugin_js.js +1 -1
  93. package/plugins_sounds_dist_browser_index_js.js +2 -2
  94. package/report.html +84 -29
  95. package/shapes_circle_dist_browser_CircleDrawer_js.js +1 -1
  96. package/shapes_circle_dist_browser_index_js.js +2 -2
  97. package/shapes_line_dist_browser_LineDrawer_js.js +40 -0
  98. package/shapes_line_dist_browser_index_js.js +30 -0
  99. package/tsparticles.fireworks.bundle.js +34 -14
  100. package/tsparticles.fireworks.bundle.min.js +2 -2
  101. package/tsparticles.fireworks.js +42 -22
  102. package/tsparticles.fireworks.min.js +2 -2
  103. package/updaters_destroy_dist_browser_DestroyUpdater_js.js +3 -3
  104. package/updaters_destroy_dist_browser_index_js.js +2 -2
  105. package/updaters_life_dist_browser_LifeUpdater_js.js +1 -1
  106. package/updaters_life_dist_browser_index_js.js +2 -2
  107. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +2 -2
  108. package/updaters_opacity_dist_browser_index_js.js +2 -2
  109. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +3 -3
  110. package/updaters_outModes_dist_browser_index_js.js +2 -2
  111. package/updaters_paint_dist_browser_PaintUpdater_js.js +30 -0
  112. package/updaters_paint_dist_browser_index_js.js +30 -0
  113. package/updaters_rotate_dist_browser_RotateUpdater_js.js +1 -1
  114. package/updaters_rotate_dist_browser_index_js.js +2 -2
  115. package/updaters_size_dist_browser_SizeUpdater_js.js +2 -2
  116. package/updaters_size_dist_browser_index_js.js +2 -2
  117. package/101.min.js +0 -1
  118. package/102.min.js +0 -1
  119. package/116.min.js +0 -1
  120. package/149.min.js +0 -1
  121. package/161.min.js +0 -1
  122. package/194.min.js +0 -1
  123. package/202.min.js +0 -1
  124. package/214.min.js +0 -1
  125. package/222.min.js +0 -1
  126. package/229.min.js +0 -1
  127. package/256.min.js +0 -1
  128. package/268.min.js +0 -1
  129. package/298.min.js +0 -1
  130. package/299.min.js +0 -1
  131. package/368.min.js +0 -1
  132. package/413.min.js +0 -1
  133. package/449.min.js +0 -1
  134. package/455.min.js +0 -1
  135. package/465.min.js +0 -1
  136. package/478.min.js +0 -1
  137. package/510.min.js +0 -1
  138. package/513.min.js +0 -1
  139. package/514.min.js +0 -1
  140. package/565.min.js +0 -1
  141. package/572.min.js +0 -1
  142. package/578.min.js +0 -1
  143. package/624.min.js +0 -1
  144. package/638.min.js +0 -1
  145. package/646.min.js +0 -1
  146. package/659.min.js +0 -1
  147. package/663.min.js +0 -1
  148. package/715.min.js +0 -1
  149. package/84.min.js +0 -1
  150. package/846.min.js +0 -1
  151. package/876.min.js +0 -1
  152. package/89.min.js +0 -1
  153. package/91.min.js +0 -1
  154. package/912.min.js +0 -1
  155. package/916.min.js +0 -1
  156. package/922.min.js +0 -1
  157. package/947.min.js +0 -1
  158. package/964.min.js +0 -1
  159. package/970.min.js +0 -1
  160. package/effects_trail_dist_browser_TrailDrawer_js.js +0 -30
  161. package/umd/FireworkOptions.js +0 -91
  162. package/umd/FireworksInstance.js +0 -29
  163. package/umd/IFireworkOptions.js +0 -12
  164. package/umd/bundle.js +0 -28
  165. package/umd/fireworks.js +0 -328
  166. package/umd/index.js +0 -27
  167. package/updaters_fillColor_dist_browser_FillColorUpdater_js.js +0 -30
  168. package/updaters_fillColor_dist_browser_index_js.js +0 -30
@@ -16,8 +16,45 @@ export class FireworkOptions {
16
16
  min: -30,
17
17
  max: 30,
18
18
  };
19
- this.colors = ["#ff595e", "#ffca3a", "#8ac926", "#1982c4", "#6a4c93"];
20
- this.gravity = 5;
19
+ this.colors = [
20
+ "#FF0000",
21
+ "#FF2A00",
22
+ "#FF5500",
23
+ "#FF8000",
24
+ "#FFAA00",
25
+ "#FFD400",
26
+ "#FFFF00",
27
+ "#D4FF00",
28
+ "#AAFF00",
29
+ "#80FF00",
30
+ "#55FF00",
31
+ "#2AFF00",
32
+ "#00FF00",
33
+ "#00FF2A",
34
+ "#00FF55",
35
+ "#00FF80",
36
+ "#00FFAA",
37
+ "#00FFD4",
38
+ "#00FFFF",
39
+ "#00D4FF",
40
+ "#00AAFF",
41
+ "#0080FF",
42
+ "#0055FF",
43
+ "#002AFF",
44
+ "#0000FF",
45
+ "#2A00FF",
46
+ "#5500FF",
47
+ "#8000FF",
48
+ "#AA00FF",
49
+ "#D400FF",
50
+ "#FF00FF",
51
+ "#FF00D4",
52
+ "#FF00AA",
53
+ "#FF0080",
54
+ "#FF0055",
55
+ "#FF002A",
56
+ ];
57
+ this.gravity = 30;
21
58
  this.minHeight = {
22
59
  min: 10,
23
60
  max: 30,
@@ -28,11 +65,8 @@ export class FireworkOptions {
28
65
  max: 30,
29
66
  };
30
67
  this.sounds = true;
31
- this.speed = { min: 5, max: 15 };
32
- this.splitCount = {
33
- min: 75,
34
- max: 150,
35
- };
68
+ this.speed = { min: 20, max: 40 };
69
+ this.splitCount = 100;
36
70
  }
37
71
  load(data) {
38
72
  if (isNull(data)) {
@@ -1,10 +1,9 @@
1
1
  import { DestroyType, EventType, MoveDirection, OutMode, StartValueType, getRangeMax, getRangeMin, isNumber, isString, setRangeValue, tsParticles, } from "@tsparticles/engine";
2
2
  import { FireworkOptions } from "./FireworkOptions.js";
3
3
  let initialized = false, initializing = false;
4
- const minSplitCount = 2;
5
4
  const explodeSoundCheck = (args) => {
6
5
  const data = args.data;
7
- return data.particle.shape === "circle" && !!data.particle.splitCount && data.particle.splitCount < minSplitCount;
6
+ return data?.particle?.options.move.gravity.enable ?? false;
8
7
  };
9
8
  async function initPlugins(engine) {
10
9
  if (initialized) {
@@ -22,28 +21,34 @@ async function initPlugins(engine) {
22
21
  });
23
22
  }
24
23
  initializing = true;
25
- engine.checkVersion("4.0.0-beta.0");
26
- await engine.register(async (e) => {
27
- const [{ loadBasic }, { loadEmittersPlugin }, { loadEmittersShapeSquare }, { loadSoundsPlugin }, { loadRotateUpdater }, { loadDestroyUpdater }, { loadLifeUpdater }, { loadTrailEffect },] = await Promise.all([
24
+ engine.checkVersion("4.0.0-beta.10");
25
+ await engine.pluginManager.register(async (e) => {
26
+ const [{ loadBasic }, { loadLineShape }, { loadBlendPlugin }, { loadEmittersPluginSimple }, { loadEmittersShapeSquare }, { loadSoundsPlugin }, { loadRotateUpdater }, { loadDestroyUpdater }, { loadLifeUpdater }, { loadPaintUpdater },] = await Promise.all([
28
27
  import("@tsparticles/basic"),
29
- import("@tsparticles/plugin-emitters"),
28
+ import("@tsparticles/shape-line"),
29
+ import("@tsparticles/plugin-blend"),
30
+ import("@tsparticles/plugin-emitters/plugin"),
30
31
  import("@tsparticles/plugin-emitters-shape-square"),
31
32
  import("@tsparticles/plugin-sounds"),
32
33
  import("@tsparticles/updater-rotate"),
33
34
  import("@tsparticles/updater-destroy"),
34
35
  import("@tsparticles/updater-life"),
35
- import("@tsparticles/effect-trail"),
36
- ]);
36
+ import("@tsparticles/updater-paint"),
37
+ ]), loadEmittersForFireworks = async (e) => {
38
+ await loadEmittersPluginSimple(e);
39
+ await loadEmittersShapeSquare(e);
40
+ };
37
41
  await Promise.all([
38
42
  loadBasic(e),
39
- loadEmittersPlugin(e),
43
+ loadLineShape(e),
44
+ loadBlendPlugin(e),
45
+ loadEmittersForFireworks(e),
40
46
  loadSoundsPlugin(e),
41
47
  loadRotateUpdater(e),
42
48
  loadDestroyUpdater(e),
43
49
  loadLifeUpdater(e),
44
- loadTrailEffect(e),
50
+ loadPaintUpdater(e),
45
51
  ]);
46
- await loadEmittersShapeSquare(e);
47
52
  });
48
53
  initializing = false;
49
54
  initialized = true;
@@ -55,8 +60,12 @@ function getOptions(options, canvas) {
55
60
  background: {
56
61
  color: options.background,
57
62
  },
63
+ blend: {
64
+ enable: true,
65
+ mode: "lighter",
66
+ },
58
67
  fullScreen: {
59
- enable: !!canvas,
68
+ enable: !canvas,
60
69
  },
61
70
  fpsLimit: 60,
62
71
  emitters: {
@@ -85,11 +94,13 @@ function getOptions(options, canvas) {
85
94
  number: {
86
95
  value: 0,
87
96
  },
88
- fill: {
89
- color: {
90
- value: "#fff",
97
+ paint: {
98
+ stroke: {
99
+ color: {
100
+ value: options.colors,
101
+ },
102
+ width: 2,
91
103
  },
92
- enable: true,
93
104
  },
94
105
  destroy: {
95
106
  mode: "split",
@@ -97,7 +108,6 @@ function getOptions(options, canvas) {
97
108
  top: setRangeValue(options.minHeight),
98
109
  },
99
110
  split: {
100
- sizeOffset: false,
101
111
  count: 1,
102
112
  factor: {
103
113
  value: 0.333333,
@@ -105,20 +115,12 @@ function getOptions(options, canvas) {
105
115
  rate: {
106
116
  value: options.splitCount,
107
117
  },
108
- fillColorOffset: {
118
+ strokeColorOffset: {
109
119
  s: options.saturation,
110
120
  l: options.brightness,
111
121
  },
112
122
  particles: {
113
- fill: {
114
- color: {
115
- value: options.colors,
116
- },
117
- enable: true,
118
- },
119
- stroke: {
120
- width: 0,
121
- },
123
+ group: "split",
122
124
  number: {
123
125
  value: 0,
124
126
  },
@@ -129,56 +131,36 @@ function getOptions(options, canvas) {
129
131
  },
130
132
  animation: {
131
133
  enable: true,
132
- speed: 1,
133
- sync: false,
134
+ speed: { min: 2, max: 4 },
135
+ sync: true,
134
136
  startValue: StartValueType.max,
135
137
  destroy: DestroyType.min,
138
+ count: 1,
136
139
  },
137
140
  },
138
- effect: {
139
- type: "trail",
140
- options: {
141
- trail: {
142
- length: {
143
- min: 5,
144
- max: 10,
145
- },
146
- },
147
- },
148
- },
149
- shape: {
150
- type: "circle",
151
- },
152
141
  size: {
153
- value: { min: 1, max: 2 },
154
- animation: {
155
- enable: true,
156
- speed: 5,
157
- count: 1,
158
- sync: false,
159
- startValue: StartValueType.min,
160
- destroy: DestroyType.none,
161
- },
142
+ value: { min: 5, max: 10 },
162
143
  },
163
144
  life: {
164
145
  count: 1,
165
146
  duration: {
166
147
  value: {
167
- min: 0.25,
168
- max: 0.5,
148
+ min: 0.5,
149
+ max: 1,
169
150
  },
170
151
  },
171
152
  },
172
153
  move: {
173
- decay: { min: 0.05, max: 0.1 },
154
+ decay: 0.05,
174
155
  enable: true,
175
156
  gravity: {
176
- enable: true,
177
- inverse: false,
178
- acceleration: setRangeValue(options.gravity),
157
+ enable: false,
158
+ },
159
+ speed: {
160
+ min: 10,
161
+ max: 25,
179
162
  },
180
- speed: setRangeValue(options.speed),
181
- direction: "none",
163
+ direction: "outside",
182
164
  outModes: OutMode.destroy,
183
165
  },
184
166
  },
@@ -187,27 +169,16 @@ function getOptions(options, canvas) {
187
169
  life: {
188
170
  count: 1,
189
171
  },
190
- effect: {
191
- type: "trail",
172
+ shape: {
173
+ type: "line",
192
174
  options: {
193
- trail: {
194
- length: {
195
- min: 10,
196
- max: 30,
197
- },
198
- minWidth: 1,
199
- maxWidth: 1,
175
+ line: {
176
+ cap: "round",
200
177
  },
201
178
  },
202
179
  },
203
- shape: {
204
- type: "circle",
205
- },
206
180
  size: {
207
- value: 1,
208
- },
209
- opacity: {
210
- value: 0.5,
181
+ value: { min: 10, max: 20 },
211
182
  },
212
183
  rotate: {
213
184
  path: true,
@@ -215,15 +186,12 @@ function getOptions(options, canvas) {
215
186
  move: {
216
187
  enable: true,
217
188
  gravity: {
218
- acceleration: 15,
189
+ acceleration: setRangeValue(options.gravity),
219
190
  enable: true,
220
191
  inverse: true,
221
- maxSpeed: 100,
222
- },
223
- speed: {
224
- min: 10,
225
- max: 20,
192
+ maxSpeed: 150,
226
193
  },
194
+ speed: setRangeValue(options.speed),
227
195
  outModes: {
228
196
  default: OutMode.destroy,
229
197
  top: OutMode.none,
@@ -277,5 +245,5 @@ fireworks.create = async (canvas, options) => {
277
245
  fireworks.init = async () => {
278
246
  await initPlugins(tsParticles);
279
247
  };
280
- fireworks.version = "4.0.0-beta.0";
248
+ fireworks.version = "4.0.0-beta.10";
281
249
  globalThis.fireworks = fireworks;
@@ -16,8 +16,45 @@ export class FireworkOptions {
16
16
  min: -30,
17
17
  max: 30,
18
18
  };
19
- this.colors = ["#ff595e", "#ffca3a", "#8ac926", "#1982c4", "#6a4c93"];
20
- this.gravity = 5;
19
+ this.colors = [
20
+ "#FF0000",
21
+ "#FF2A00",
22
+ "#FF5500",
23
+ "#FF8000",
24
+ "#FFAA00",
25
+ "#FFD400",
26
+ "#FFFF00",
27
+ "#D4FF00",
28
+ "#AAFF00",
29
+ "#80FF00",
30
+ "#55FF00",
31
+ "#2AFF00",
32
+ "#00FF00",
33
+ "#00FF2A",
34
+ "#00FF55",
35
+ "#00FF80",
36
+ "#00FFAA",
37
+ "#00FFD4",
38
+ "#00FFFF",
39
+ "#00D4FF",
40
+ "#00AAFF",
41
+ "#0080FF",
42
+ "#0055FF",
43
+ "#002AFF",
44
+ "#0000FF",
45
+ "#2A00FF",
46
+ "#5500FF",
47
+ "#8000FF",
48
+ "#AA00FF",
49
+ "#D400FF",
50
+ "#FF00FF",
51
+ "#FF00D4",
52
+ "#FF00AA",
53
+ "#FF0080",
54
+ "#FF0055",
55
+ "#FF002A",
56
+ ];
57
+ this.gravity = 30;
21
58
  this.minHeight = {
22
59
  min: 10,
23
60
  max: 30,
@@ -28,11 +65,8 @@ export class FireworkOptions {
28
65
  max: 30,
29
66
  };
30
67
  this.sounds = true;
31
- this.speed = { min: 5, max: 15 };
32
- this.splitCount = {
33
- min: 75,
34
- max: 150,
35
- };
68
+ this.speed = { min: 20, max: 40 };
69
+ this.splitCount = 100;
36
70
  }
37
71
  load(data) {
38
72
  if (isNull(data)) {
package/cjs/fireworks.js CHANGED
@@ -1,10 +1,9 @@
1
1
  import { DestroyType, EventType, MoveDirection, OutMode, StartValueType, getRangeMax, getRangeMin, isNumber, isString, setRangeValue, tsParticles, } from "@tsparticles/engine";
2
2
  import { FireworkOptions } from "./FireworkOptions.js";
3
3
  let initialized = false, initializing = false;
4
- const minSplitCount = 2;
5
4
  const explodeSoundCheck = (args) => {
6
5
  const data = args.data;
7
- return data.particle.shape === "circle" && !!data.particle.splitCount && data.particle.splitCount < minSplitCount;
6
+ return data?.particle?.options.move.gravity.enable ?? false;
8
7
  };
9
8
  async function initPlugins(engine) {
10
9
  if (initialized) {
@@ -22,28 +21,34 @@ async function initPlugins(engine) {
22
21
  });
23
22
  }
24
23
  initializing = true;
25
- engine.checkVersion("4.0.0-beta.0");
26
- await engine.register(async (e) => {
27
- const [{ loadBasic }, { loadEmittersPlugin }, { loadEmittersShapeSquare }, { loadSoundsPlugin }, { loadRotateUpdater }, { loadDestroyUpdater }, { loadLifeUpdater }, { loadTrailEffect },] = await Promise.all([
24
+ engine.checkVersion("4.0.0-beta.10");
25
+ await engine.pluginManager.register(async (e) => {
26
+ const [{ loadBasic }, { loadLineShape }, { loadBlendPlugin }, { loadEmittersPluginSimple }, { loadEmittersShapeSquare }, { loadSoundsPlugin }, { loadRotateUpdater }, { loadDestroyUpdater }, { loadLifeUpdater }, { loadPaintUpdater },] = await Promise.all([
28
27
  import("@tsparticles/basic"),
29
- import("@tsparticles/plugin-emitters"),
28
+ import("@tsparticles/shape-line"),
29
+ import("@tsparticles/plugin-blend"),
30
+ import("@tsparticles/plugin-emitters/plugin"),
30
31
  import("@tsparticles/plugin-emitters-shape-square"),
31
32
  import("@tsparticles/plugin-sounds"),
32
33
  import("@tsparticles/updater-rotate"),
33
34
  import("@tsparticles/updater-destroy"),
34
35
  import("@tsparticles/updater-life"),
35
- import("@tsparticles/effect-trail"),
36
- ]);
36
+ import("@tsparticles/updater-paint"),
37
+ ]), loadEmittersForFireworks = async (e) => {
38
+ await loadEmittersPluginSimple(e);
39
+ await loadEmittersShapeSquare(e);
40
+ };
37
41
  await Promise.all([
38
42
  loadBasic(e),
39
- loadEmittersPlugin(e),
43
+ loadLineShape(e),
44
+ loadBlendPlugin(e),
45
+ loadEmittersForFireworks(e),
40
46
  loadSoundsPlugin(e),
41
47
  loadRotateUpdater(e),
42
48
  loadDestroyUpdater(e),
43
49
  loadLifeUpdater(e),
44
- loadTrailEffect(e),
50
+ loadPaintUpdater(e),
45
51
  ]);
46
- await loadEmittersShapeSquare(e);
47
52
  });
48
53
  initializing = false;
49
54
  initialized = true;
@@ -55,8 +60,12 @@ function getOptions(options, canvas) {
55
60
  background: {
56
61
  color: options.background,
57
62
  },
63
+ blend: {
64
+ enable: true,
65
+ mode: "lighter",
66
+ },
58
67
  fullScreen: {
59
- enable: !!canvas,
68
+ enable: !canvas,
60
69
  },
61
70
  fpsLimit: 60,
62
71
  emitters: {
@@ -85,11 +94,13 @@ function getOptions(options, canvas) {
85
94
  number: {
86
95
  value: 0,
87
96
  },
88
- fill: {
89
- color: {
90
- value: "#fff",
97
+ paint: {
98
+ stroke: {
99
+ color: {
100
+ value: options.colors,
101
+ },
102
+ width: 2,
91
103
  },
92
- enable: true,
93
104
  },
94
105
  destroy: {
95
106
  mode: "split",
@@ -97,7 +108,6 @@ function getOptions(options, canvas) {
97
108
  top: setRangeValue(options.minHeight),
98
109
  },
99
110
  split: {
100
- sizeOffset: false,
101
111
  count: 1,
102
112
  factor: {
103
113
  value: 0.333333,
@@ -105,20 +115,12 @@ function getOptions(options, canvas) {
105
115
  rate: {
106
116
  value: options.splitCount,
107
117
  },
108
- fillColorOffset: {
118
+ strokeColorOffset: {
109
119
  s: options.saturation,
110
120
  l: options.brightness,
111
121
  },
112
122
  particles: {
113
- fill: {
114
- color: {
115
- value: options.colors,
116
- },
117
- enable: true,
118
- },
119
- stroke: {
120
- width: 0,
121
- },
123
+ group: "split",
122
124
  number: {
123
125
  value: 0,
124
126
  },
@@ -129,56 +131,36 @@ function getOptions(options, canvas) {
129
131
  },
130
132
  animation: {
131
133
  enable: true,
132
- speed: 1,
133
- sync: false,
134
+ speed: { min: 2, max: 4 },
135
+ sync: true,
134
136
  startValue: StartValueType.max,
135
137
  destroy: DestroyType.min,
138
+ count: 1,
136
139
  },
137
140
  },
138
- effect: {
139
- type: "trail",
140
- options: {
141
- trail: {
142
- length: {
143
- min: 5,
144
- max: 10,
145
- },
146
- },
147
- },
148
- },
149
- shape: {
150
- type: "circle",
151
- },
152
141
  size: {
153
- value: { min: 1, max: 2 },
154
- animation: {
155
- enable: true,
156
- speed: 5,
157
- count: 1,
158
- sync: false,
159
- startValue: StartValueType.min,
160
- destroy: DestroyType.none,
161
- },
142
+ value: { min: 5, max: 10 },
162
143
  },
163
144
  life: {
164
145
  count: 1,
165
146
  duration: {
166
147
  value: {
167
- min: 0.25,
168
- max: 0.5,
148
+ min: 0.5,
149
+ max: 1,
169
150
  },
170
151
  },
171
152
  },
172
153
  move: {
173
- decay: { min: 0.05, max: 0.1 },
154
+ decay: 0.05,
174
155
  enable: true,
175
156
  gravity: {
176
- enable: true,
177
- inverse: false,
178
- acceleration: setRangeValue(options.gravity),
157
+ enable: false,
158
+ },
159
+ speed: {
160
+ min: 10,
161
+ max: 25,
179
162
  },
180
- speed: setRangeValue(options.speed),
181
- direction: "none",
163
+ direction: "outside",
182
164
  outModes: OutMode.destroy,
183
165
  },
184
166
  },
@@ -187,27 +169,16 @@ function getOptions(options, canvas) {
187
169
  life: {
188
170
  count: 1,
189
171
  },
190
- effect: {
191
- type: "trail",
172
+ shape: {
173
+ type: "line",
192
174
  options: {
193
- trail: {
194
- length: {
195
- min: 10,
196
- max: 30,
197
- },
198
- minWidth: 1,
199
- maxWidth: 1,
175
+ line: {
176
+ cap: "round",
200
177
  },
201
178
  },
202
179
  },
203
- shape: {
204
- type: "circle",
205
- },
206
180
  size: {
207
- value: 1,
208
- },
209
- opacity: {
210
- value: 0.5,
181
+ value: { min: 10, max: 20 },
211
182
  },
212
183
  rotate: {
213
184
  path: true,
@@ -215,15 +186,12 @@ function getOptions(options, canvas) {
215
186
  move: {
216
187
  enable: true,
217
188
  gravity: {
218
- acceleration: 15,
189
+ acceleration: setRangeValue(options.gravity),
219
190
  enable: true,
220
191
  inverse: true,
221
- maxSpeed: 100,
222
- },
223
- speed: {
224
- min: 10,
225
- max: 20,
192
+ maxSpeed: 150,
226
193
  },
194
+ speed: setRangeValue(options.speed),
227
195
  outModes: {
228
196
  default: OutMode.destroy,
229
197
  top: OutMode.none,
@@ -277,5 +245,5 @@ fireworks.create = async (canvas, options) => {
277
245
  fireworks.init = async () => {
278
246
  await initPlugins(tsParticles);
279
247
  };
280
- fireworks.version = "4.0.0-beta.0";
248
+ fireworks.version = "4.0.0-beta.10";
281
249
  globalThis.fireworks = fireworks;
@@ -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.0
7
+ * v4.0.0-beta.10
8
8
  */
9
9
  "use strict";
10
10
  /*