@tsparticles/fireworks 4.0.0-beta.9 → 4.0.0

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 (141) hide show
  1. package/README.md +98 -45
  2. package/browser/browser.js +5 -0
  3. package/browser/bundle.js +4 -0
  4. package/browser/fireworks.js +32 -216
  5. package/browser/fireworks.lazy.js +64 -0
  6. package/browser/index.lazy.js +1 -0
  7. package/browser/types.js +1 -0
  8. package/browser/utils.js +195 -0
  9. package/cjs/browser.js +5 -0
  10. package/cjs/bundle.js +4 -0
  11. package/cjs/fireworks.js +32 -216
  12. package/cjs/fireworks.lazy.js +64 -0
  13. package/cjs/index.lazy.js +1 -0
  14. package/cjs/types.js +1 -0
  15. package/cjs/utils.js +195 -0
  16. package/esm/browser.js +5 -0
  17. package/esm/bundle.js +4 -0
  18. package/esm/fireworks.js +32 -216
  19. package/esm/fireworks.lazy.js +64 -0
  20. package/esm/index.lazy.js +1 -0
  21. package/esm/types.js +1 -0
  22. package/esm/utils.js +195 -0
  23. package/package.json +19 -12
  24. package/report.html +4949 -94
  25. package/tsparticles.fireworks.bundle.js +9132 -977
  26. package/tsparticles.fireworks.bundle.min.js +1 -2
  27. package/tsparticles.fireworks.js +395 -467
  28. package/tsparticles.fireworks.min.js +1 -2
  29. package/types/browser.d.ts +1 -0
  30. package/types/fireworks.d.ts +3 -6
  31. package/types/fireworks.lazy.d.ts +17 -0
  32. package/types/index.lazy.d.ts +4 -0
  33. package/types/types.d.ts +6 -0
  34. package/types/utils.d.ts +6 -0
  35. package/1241.min.js +0 -1
  36. package/1581.min.js +0 -1
  37. package/2049.min.js +0 -1
  38. package/2066.min.js +0 -1
  39. package/2127.min.js +0 -1
  40. package/218.min.js +0 -1
  41. package/2191.min.js +0 -1
  42. package/2270.min.js +0 -1
  43. package/2556.min.js +0 -1
  44. package/2602.min.js +0 -1
  45. package/2760.min.js +0 -1
  46. package/2865.min.js +0 -33
  47. package/3047.min.js +0 -1
  48. package/3073.min.js +0 -1
  49. package/3384.min.js +0 -1
  50. package/3443.min.js +0 -1
  51. package/3583.min.js +0 -1
  52. package/374.min.js +0 -1
  53. package/382.min.js +0 -1
  54. package/4068.min.js +0 -1
  55. package/4186.min.js +0 -1
  56. package/4217.min.js +0 -1
  57. package/4427.min.js +0 -1
  58. package/4519.min.js +0 -1
  59. package/4626.min.js +0 -1
  60. package/5048.min.js +0 -1
  61. package/5218.min.js +0 -1
  62. package/5294.min.js +0 -1
  63. package/5344.min.js +0 -1
  64. package/5445.min.js +0 -1
  65. package/5492.min.js +0 -1
  66. package/5629.min.js +0 -1
  67. package/5675.min.js +0 -1
  68. package/6055.min.js +0 -1
  69. package/6067.min.js +0 -1
  70. package/6099.min.js +0 -1
  71. package/6171.min.js +0 -1
  72. package/648.min.js +0 -1
  73. package/6602.min.js +0 -1
  74. package/6943.min.js +0 -1
  75. package/6996.min.js +0 -1
  76. package/7162.min.js +0 -1
  77. package/7698.min.js +0 -1
  78. package/7711.min.js +0 -1
  79. package/7757.min.js +0 -1
  80. package/7792.min.js +0 -1
  81. package/8272.min.js +0 -1
  82. package/8386.min.js +0 -1
  83. package/8529.min.js +0 -1
  84. package/8607.min.js +0 -1
  85. package/8656.min.js +0 -1
  86. package/8731.min.js +0 -1
  87. package/9407.min.js +0 -1
  88. package/9674.min.js +0 -1
  89. package/basic_dist_browser_index_js.js +0 -30
  90. package/dist_browser_FireworksInstance_js.js +0 -30
  91. package/engine_dist_browser_Core_Container_js.js +0 -100
  92. package/plugins_blend_dist_browser_BlendPluginInstance_js.js +0 -30
  93. package/plugins_blend_dist_browser_BlendPlugin_js.js +0 -40
  94. package/plugins_blend_dist_browser_index_js.js +0 -30
  95. package/plugins_colors_hex_dist_browser_HexColorManager_js.js +0 -30
  96. package/plugins_colors_hex_dist_browser_index_js.js +0 -30
  97. package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +0 -30
  98. package/plugins_colors_hsl_dist_browser_index_js.js +0 -30
  99. package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +0 -30
  100. package/plugins_colors_rgb_dist_browser_index_js.js +0 -30
  101. package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +0 -100
  102. package/plugins_emittersShapes_square_dist_browser_index_js.js +0 -30
  103. package/plugins_emitters_dist_browser_EmitterInstance_js.js +0 -30
  104. package/plugins_emitters_dist_browser_EmittersInstancesManager_js.js +0 -100
  105. package/plugins_emitters_dist_browser_EmittersInteractor_js.js +0 -210
  106. package/plugins_emitters_dist_browser_EmittersPluginInstance_js.js +0 -30
  107. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +0 -100
  108. package/plugins_emitters_dist_browser_ShapeManager_js.js +0 -30
  109. package/plugins_emitters_dist_browser_addEmittersShapesManager_js.js +0 -30
  110. package/plugins_emitters_dist_browser_getEmittersInstancesManager_js.js +0 -30
  111. package/plugins_emitters_dist_browser_index_js.js +0 -80
  112. package/plugins_emitters_dist_browser_plugin_js.js +0 -50
  113. package/plugins_interactivity_dist_browser_InteractivityPluginInstance_js.js +0 -50
  114. package/plugins_interactivity_dist_browser_InteractivityPlugin_js.js +0 -70
  115. package/plugins_interactivity_dist_browser_index_js.js +0 -120
  116. package/plugins_move_dist_browser_MovePluginInstance_js.js +0 -40
  117. package/plugins_move_dist_browser_MovePlugin_js.js +0 -30
  118. package/plugins_move_dist_browser_index_js.js +0 -30
  119. package/plugins_sounds_dist_browser_SoundsPluginInstance_js.js +0 -40
  120. package/plugins_sounds_dist_browser_SoundsPlugin_js.js +0 -130
  121. package/plugins_sounds_dist_browser_index_js.js +0 -30
  122. package/shapes_circle_dist_browser_CircleDrawer_js.js +0 -40
  123. package/shapes_circle_dist_browser_index_js.js +0 -30
  124. package/shapes_line_dist_browser_LineDrawer_js.js +0 -40
  125. package/shapes_line_dist_browser_index_js.js +0 -30
  126. package/updaters_destroy_dist_browser_DestroyUpdater_js.js +0 -100
  127. package/updaters_destroy_dist_browser_index_js.js +0 -30
  128. package/updaters_fillColor_dist_browser_FillColorUpdater_js.js +0 -30
  129. package/updaters_fillColor_dist_browser_index_js.js +0 -30
  130. package/updaters_life_dist_browser_LifeUpdater_js.js +0 -70
  131. package/updaters_life_dist_browser_index_js.js +0 -30
  132. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +0 -30
  133. package/updaters_opacity_dist_browser_index_js.js +0 -30
  134. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +0 -80
  135. package/updaters_outModes_dist_browser_index_js.js +0 -30
  136. package/updaters_rotate_dist_browser_RotateUpdater_js.js +0 -50
  137. package/updaters_rotate_dist_browser_index_js.js +0 -30
  138. package/updaters_size_dist_browser_SizeUpdater_js.js +0 -30
  139. package/updaters_size_dist_browser_index_js.js +0 -30
  140. package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +0 -30
  141. package/updaters_strokeColor_dist_browser_index_js.js +0 -30
package/esm/utils.js ADDED
@@ -0,0 +1,195 @@
1
+ import { DestroyType, EventType, MoveDirection, OutMode, StartValueType, getRangeMax, getRangeMin, isNumber, setRangeValue, } from "@tsparticles/engine";
2
+ import { FireworkOptions } from "./FireworkOptions.js";
3
+ const instances = new Map();
4
+ export const explodeSoundCheck = (args) => {
5
+ const data = args.data;
6
+ return data?.particle?.options.move.gravity.enable ?? false;
7
+ };
8
+ export function getOptions(options, canvas) {
9
+ const identity = 1;
10
+ return {
11
+ detectRetina: true,
12
+ background: {
13
+ color: options.background,
14
+ },
15
+ blend: {
16
+ enable: true,
17
+ mode: "lighter",
18
+ },
19
+ fullScreen: {
20
+ enable: !canvas,
21
+ },
22
+ fpsLimit: 60,
23
+ emitters: {
24
+ direction: MoveDirection.top,
25
+ life: {
26
+ count: 0,
27
+ duration: 0.1,
28
+ delay: 0.1,
29
+ },
30
+ rate: {
31
+ delay: isNumber(options.rate)
32
+ ? identity / options.rate
33
+ : { min: identity / getRangeMin(options.rate), max: identity / getRangeMax(options.rate) },
34
+ quantity: 1,
35
+ },
36
+ size: {
37
+ width: 100,
38
+ height: 0,
39
+ },
40
+ position: {
41
+ y: 100,
42
+ x: 50,
43
+ },
44
+ },
45
+ particles: {
46
+ number: {
47
+ value: 0,
48
+ },
49
+ paint: {
50
+ fill: {
51
+ enable: false,
52
+ },
53
+ stroke: {
54
+ color: {
55
+ value: options.colors,
56
+ },
57
+ width: 2,
58
+ },
59
+ },
60
+ destroy: {
61
+ mode: "split",
62
+ bounds: {
63
+ top: setRangeValue(options.minHeight),
64
+ },
65
+ split: {
66
+ count: 1,
67
+ factor: {
68
+ value: 0.333333,
69
+ },
70
+ rate: {
71
+ value: options.splitCount,
72
+ },
73
+ strokeColorOffset: {
74
+ s: options.saturation,
75
+ l: options.brightness,
76
+ },
77
+ particles: {
78
+ group: "split",
79
+ number: {
80
+ value: 0,
81
+ },
82
+ opacity: {
83
+ value: {
84
+ min: 0.1,
85
+ max: 1,
86
+ },
87
+ animation: {
88
+ enable: true,
89
+ speed: { min: 2, max: 4 },
90
+ sync: true,
91
+ startValue: StartValueType.max,
92
+ destroy: DestroyType.min,
93
+ count: 1,
94
+ },
95
+ },
96
+ size: {
97
+ value: { min: 5, max: 10 },
98
+ },
99
+ life: {
100
+ count: 1,
101
+ duration: {
102
+ value: {
103
+ min: 0.5,
104
+ max: 1,
105
+ },
106
+ },
107
+ },
108
+ move: {
109
+ decay: 0.05,
110
+ enable: true,
111
+ gravity: {
112
+ enable: false,
113
+ },
114
+ speed: {
115
+ min: 10,
116
+ max: 25,
117
+ },
118
+ direction: "outside",
119
+ outModes: OutMode.destroy,
120
+ },
121
+ },
122
+ },
123
+ },
124
+ life: {
125
+ count: 1,
126
+ },
127
+ shape: {
128
+ type: "line",
129
+ options: {
130
+ line: {
131
+ cap: "round",
132
+ },
133
+ },
134
+ },
135
+ size: {
136
+ value: { min: 10, max: 20 },
137
+ },
138
+ rotate: {
139
+ path: true,
140
+ },
141
+ move: {
142
+ enable: true,
143
+ gravity: {
144
+ acceleration: setRangeValue(options.gravity),
145
+ enable: true,
146
+ inverse: true,
147
+ maxSpeed: 150,
148
+ },
149
+ speed: setRangeValue(options.speed),
150
+ outModes: {
151
+ default: OutMode.destroy,
152
+ top: OutMode.none,
153
+ },
154
+ },
155
+ },
156
+ sounds: {
157
+ enable: options.sounds,
158
+ events: [
159
+ {
160
+ event: EventType.particleRemoved,
161
+ filter: explodeSoundCheck,
162
+ audio: [
163
+ "https://particles.js.org/audio/explosion0.mp3",
164
+ "https://particles.js.org/audio/explosion1.mp3",
165
+ "https://particles.js.org/audio/explosion2.mp3",
166
+ ],
167
+ },
168
+ ],
169
+ volume: 50,
170
+ },
171
+ };
172
+ }
173
+ export async function getFireworksInstance(engine, id, sourceOptions, canvas) {
174
+ const existing = instances.get(id);
175
+ if (existing instanceof Promise) {
176
+ return existing;
177
+ }
178
+ if (existing) {
179
+ return existing;
180
+ }
181
+ const create = async () => {
182
+ const options = new FireworkOptions();
183
+ options.load(sourceOptions);
184
+ const particlesOptions = getOptions(options, canvas), container = await engine.load({ id, element: canvas, options: particlesOptions });
185
+ if (!container) {
186
+ instances.delete(id);
187
+ return;
188
+ }
189
+ const { FireworksInstance } = await import("./FireworksInstance.js"), instance = new FireworksInstance(container);
190
+ instances.set(id, instance);
191
+ return instance;
192
+ }, createPromise = create();
193
+ instances.set(id, createPromise);
194
+ return createPromise;
195
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/fireworks",
3
- "version": "4.0.0-beta.9",
3
+ "version": "4.0.0",
4
4
  "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -95,20 +95,27 @@
95
95
  "require": "./cjs/index.js",
96
96
  "default": "./esm/index.js"
97
97
  },
98
+ "./lazy": {
99
+ "types": "./types/index.lazy.d.ts",
100
+ "browser": "./browser/index.lazy.js",
101
+ "import": "./esm/index.lazy.js",
102
+ "require": "./cjs/index.lazy.js",
103
+ "default": "./esm/index.lazy.js"
104
+ },
98
105
  "./package.json": "./package.json"
99
106
  },
100
107
  "dependencies": {
101
- "@tsparticles/basic": "4.0.0-beta.9",
102
- "@tsparticles/engine": "4.0.0-beta.9",
103
- "@tsparticles/plugin-blend": "4.0.0-beta.9",
104
- "@tsparticles/plugin-emitters": "4.0.0-beta.9",
105
- "@tsparticles/plugin-emitters-shape-square": "4.0.0-beta.9",
106
- "@tsparticles/plugin-sounds": "4.0.0-beta.9",
107
- "@tsparticles/shape-line": "4.0.0-beta.9",
108
- "@tsparticles/updater-destroy": "4.0.0-beta.9",
109
- "@tsparticles/updater-life": "4.0.0-beta.9",
110
- "@tsparticles/updater-rotate": "4.0.0-beta.9",
111
- "@tsparticles/updater-stroke-color": "4.0.0-beta.9"
108
+ "@tsparticles/basic": "4.0.0",
109
+ "@tsparticles/engine": "4.0.0",
110
+ "@tsparticles/plugin-blend": "4.0.0",
111
+ "@tsparticles/plugin-emitters": "4.0.0",
112
+ "@tsparticles/plugin-emitters-shape-square": "4.0.0",
113
+ "@tsparticles/plugin-sounds": "4.0.0",
114
+ "@tsparticles/shape-line": "4.0.0",
115
+ "@tsparticles/updater-destroy": "4.0.0",
116
+ "@tsparticles/updater-life": "4.0.0",
117
+ "@tsparticles/updater-paint": "4.0.0",
118
+ "@tsparticles/updater-rotate": "4.0.0"
112
119
  },
113
120
  "publishConfig": {
114
121
  "access": "public"