@tsparticles/preset-fireworks 3.1.0 → 4.0.0-alpha.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 (144) hide show
  1. package/125.min.js +2 -0
  2. package/125.min.js.LICENSE.txt +1 -0
  3. package/171.min.js +2 -0
  4. package/171.min.js.LICENSE.txt +1 -0
  5. package/213.min.js +2 -0
  6. package/213.min.js.LICENSE.txt +1 -0
  7. package/22.min.js +2 -0
  8. package/22.min.js.LICENSE.txt +1 -0
  9. package/226.min.js +2 -0
  10. package/226.min.js.LICENSE.txt +1 -0
  11. package/237.min.js +2 -0
  12. package/237.min.js.LICENSE.txt +1 -0
  13. package/264.min.js +2 -0
  14. package/264.min.js.LICENSE.txt +1 -0
  15. package/267.min.js +2 -0
  16. package/267.min.js.LICENSE.txt +1 -0
  17. package/280.min.js +2 -0
  18. package/280.min.js.LICENSE.txt +1 -0
  19. package/283.min.js +2 -0
  20. package/283.min.js.LICENSE.txt +1 -0
  21. package/301.min.js +2 -0
  22. package/301.min.js.LICENSE.txt +1 -0
  23. package/313.min.js +2 -0
  24. package/313.min.js.LICENSE.txt +1 -0
  25. package/319.min.js +2 -0
  26. package/319.min.js.LICENSE.txt +1 -0
  27. package/349.min.js +2 -0
  28. package/349.min.js.LICENSE.txt +1 -0
  29. package/389.min.js +2 -0
  30. package/389.min.js.LICENSE.txt +1 -0
  31. package/397.min.js +2 -0
  32. package/397.min.js.LICENSE.txt +1 -0
  33. package/418.min.js +2 -0
  34. package/418.min.js.LICENSE.txt +1 -0
  35. package/453.min.js +2 -0
  36. package/453.min.js.LICENSE.txt +1 -0
  37. package/455.min.js +2 -0
  38. package/455.min.js.LICENSE.txt +1 -0
  39. package/459.min.js +2 -0
  40. package/459.min.js.LICENSE.txt +1 -0
  41. package/477.min.js +2 -0
  42. package/477.min.js.LICENSE.txt +1 -0
  43. package/481.min.js +2 -0
  44. package/481.min.js.LICENSE.txt +1 -0
  45. package/488.min.js +2 -0
  46. package/488.min.js.LICENSE.txt +1 -0
  47. package/49.min.js +2 -0
  48. package/49.min.js.LICENSE.txt +1 -0
  49. package/509.min.js +2 -0
  50. package/509.min.js.LICENSE.txt +1 -0
  51. package/527.min.js +2 -0
  52. package/527.min.js.LICENSE.txt +1 -0
  53. package/541.min.js +2 -0
  54. package/541.min.js.LICENSE.txt +1 -0
  55. package/597.min.js +2 -0
  56. package/597.min.js.LICENSE.txt +1 -0
  57. package/633.min.js +2 -0
  58. package/633.min.js.LICENSE.txt +1 -0
  59. package/637.min.js +2 -0
  60. package/637.min.js.LICENSE.txt +1 -0
  61. package/669.min.js +2 -0
  62. package/669.min.js.LICENSE.txt +1 -0
  63. package/751.min.js +2 -0
  64. package/751.min.js.LICENSE.txt +1 -0
  65. package/802.min.js +2 -0
  66. package/802.min.js.LICENSE.txt +1 -0
  67. package/803.min.js +2 -0
  68. package/803.min.js.LICENSE.txt +1 -0
  69. package/819.min.js +2 -0
  70. package/819.min.js.LICENSE.txt +1 -0
  71. package/829.min.js +2 -0
  72. package/829.min.js.LICENSE.txt +1 -0
  73. package/890.min.js +2 -0
  74. package/890.min.js.LICENSE.txt +1 -0
  75. package/908.min.js +2 -0
  76. package/908.min.js.LICENSE.txt +1 -0
  77. package/926.min.js +2 -0
  78. package/926.min.js.LICENSE.txt +1 -0
  79. package/98.min.js +2 -0
  80. package/98.min.js.LICENSE.txt +1 -0
  81. package/README.md +1 -1
  82. package/browser/bundle.js +2 -3
  83. package/browser/index.js +18 -22
  84. package/browser/options.js +254 -187
  85. package/cjs/bundle.js +2 -7
  86. package/cjs/index.js +18 -26
  87. package/cjs/options.js +254 -190
  88. package/dist_browser_options_js.js +30 -0
  89. package/esm/bundle.js +2 -3
  90. package/esm/index.js +18 -22
  91. package/esm/options.js +254 -187
  92. package/node_modules_pnpm_tsparticles_basic_4_0_0-alpha_2_node_modules_tsparticles_basic_browser_index_js.js +30 -0
  93. package/node_modules_pnpm_tsparticles_effect-trail_4_0_0-alpha_2_node_modules_tsparticles_effect-trai-3395e5.js +30 -0
  94. package/node_modules_pnpm_tsparticles_effect-trail_4_0_0-alpha_2_node_modules_tsparticles_effect-trai-8c7216.js +30 -0
  95. package/node_modules_pnpm_tsparticles_move-base_4_0_0-alpha_2_node_modules_tsparticles_move-base_brow-7d79eb.js +40 -0
  96. package/node_modules_pnpm_tsparticles_move-base_4_0_0-alpha_2_node_modules_tsparticles_move-base_brow-fb148a.js +30 -0
  97. package/node_modules_pnpm_tsparticles_plugin-emitters-shape-square_4_0_0-alpha_2_node_modules_tsparti-cafd8c.js +30 -0
  98. package/node_modules_pnpm_tsparticles_plugin-emitters-shape-square_4_0_0-alpha_2_node_modules_tsparti-cf2f58.js +70 -0
  99. package/node_modules_pnpm_tsparticles_plugin-emitters_4_0_0-alpha_2_node_modules_tsparticles_plugin-e-122a51.js +30 -0
  100. package/node_modules_pnpm_tsparticles_plugin-emitters_4_0_0-alpha_2_node_modules_tsparticles_plugin-e-6bd6f8.js +50 -0
  101. package/node_modules_pnpm_tsparticles_plugin-hex-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--91288b.js +30 -0
  102. package/node_modules_pnpm_tsparticles_plugin-hex-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--d06b2a.js +30 -0
  103. package/node_modules_pnpm_tsparticles_plugin-hsl-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--70976c.js +30 -0
  104. package/node_modules_pnpm_tsparticles_plugin-hsl-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--e141e9.js +30 -0
  105. package/node_modules_pnpm_tsparticles_plugin-rgb-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--60c9df.js +30 -0
  106. package/node_modules_pnpm_tsparticles_plugin-rgb-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--732407.js +30 -0
  107. package/node_modules_pnpm_tsparticles_plugin-sounds_4_0_0-alpha_2_node_modules_tsparticles_plugin-sou-6e6a34.js +30 -0
  108. package/node_modules_pnpm_tsparticles_shape-circle_4_0_0-alpha_2_node_modules_tsparticles_shape-circl-c98489.js +40 -0
  109. package/node_modules_pnpm_tsparticles_shape-circle_4_0_0-alpha_2_node_modules_tsparticles_shape-circl-ce96e8.js +30 -0
  110. package/node_modules_pnpm_tsparticles_shape-line_4_0_0-alpha_2_node_modules_tsparticles_shape-line_br-01d607.js +30 -0
  111. package/node_modules_pnpm_tsparticles_shape-line_4_0_0-alpha_2_node_modules_tsparticles_shape-line_br-eb7b65.js +40 -0
  112. package/node_modules_pnpm_tsparticles_updater-color_4_0_0-alpha_2_node_modules_tsparticles_updater-co-210bd6.js +30 -0
  113. package/node_modules_pnpm_tsparticles_updater-color_4_0_0-alpha_2_node_modules_tsparticles_updater-co-6ff909.js +30 -0
  114. package/node_modules_pnpm_tsparticles_updater-destroy_4_0_0-alpha_2_node_modules_tsparticles_updater--cef2d9.js +100 -0
  115. package/node_modules_pnpm_tsparticles_updater-destroy_4_0_0-alpha_2_node_modules_tsparticles_updater--f71d4c.js +30 -0
  116. package/node_modules_pnpm_tsparticles_updater-life_4_0_0-alpha_2_node_modules_tsparticles_updater-lif-50f821.js +30 -0
  117. package/node_modules_pnpm_tsparticles_updater-life_4_0_0-alpha_2_node_modules_tsparticles_updater-lif-dbf90f.js +70 -0
  118. package/node_modules_pnpm_tsparticles_updater-opacity_4_0_0-alpha_2_node_modules_tsparticles_updater--4e8c57.js +30 -0
  119. package/node_modules_pnpm_tsparticles_updater-opacity_4_0_0-alpha_2_node_modules_tsparticles_updater--ac14ff.js +30 -0
  120. package/node_modules_pnpm_tsparticles_updater-out-modes_4_0_0-alpha_2_node_modules_tsparticles_update-cd317f.js +30 -0
  121. package/node_modules_pnpm_tsparticles_updater-rotate_4_0_0-alpha_2_node_modules_tsparticles_updater-r-0de212.js +30 -0
  122. package/node_modules_pnpm_tsparticles_updater-rotate_4_0_0-alpha_2_node_modules_tsparticles_updater-r-e97427.js +50 -0
  123. package/node_modules_pnpm_tsparticles_updater-size_4_0_0-alpha_2_node_modules_tsparticles_updater-siz-53e0fe.js +30 -0
  124. package/node_modules_pnpm_tsparticles_updater-size_4_0_0-alpha_2_node_modules_tsparticles_updater-siz-aaa117.js +30 -0
  125. package/node_modules_pnpm_tsparticles_updater-stroke-color_4_0_0-alpha_2_node_modules_tsparticles_upd-74b323.js +30 -0
  126. package/node_modules_pnpm_tsparticles_updater-stroke-color_4_0_0-alpha_2_node_modules_tsparticles_upd-ca004c.js +30 -0
  127. package/package.json +30 -13
  128. package/report.html +5 -4
  129. package/tsparticles.preset.fireworks.bundle.js +770 -2539
  130. package/tsparticles.preset.fireworks.bundle.min.js +1 -1
  131. package/tsparticles.preset.fireworks.bundle.min.js.LICENSE.txt +1 -1
  132. package/tsparticles.preset.fireworks.js +306 -57
  133. package/tsparticles.preset.fireworks.min.js +1 -1
  134. package/tsparticles.preset.fireworks.min.js.LICENSE.txt +1 -1
  135. package/types/bundle.d.ts +2 -3
  136. package/types/index.d.ts +1 -1
  137. package/types/options.d.ts +2 -1
  138. package/umd/bundle.js +2 -2
  139. package/umd/index.js +54 -25
  140. package/umd/options.js +255 -187
  141. package/vendors-node_modules_pnpm_tsparticles_engine_4_0_0-alpha_2_node_modules_tsparticles_engine_br-9c0a0f.js +100 -0
  142. package/vendors-node_modules_pnpm_tsparticles_plugin-emitters_4_0_0-alpha_2_node_modules_tsparticles_-1e60b5.js +110 -0
  143. package/vendors-node_modules_pnpm_tsparticles_plugin-sounds_4_0_0-alpha_2_node_modules_tsparticles_pl-a36589.js +140 -0
  144. package/vendors-node_modules_pnpm_tsparticles_updater-out-modes_4_0_0-alpha_2_node_modules_tsparticle-124574.js +80 -0
package/esm/options.js CHANGED
@@ -1,211 +1,278 @@
1
- import { DestroyType, EventType, MoveDirection, OutMode, StartValueType, rgbToHsl, setRangeValue, stringToRgb, } from "@tsparticles/engine";
2
- const explodeSoundCheck = (args) => {
3
- const data = args.data;
4
- return data.particle.shape === "line";
5
- };
6
- const fixRange = (value, min, max) => {
7
- const minValue = 0, diffSMax = value.max > max ? value.max - max : minValue;
8
- let res = setRangeValue(value);
9
- if (diffSMax) {
10
- res = setRangeValue(value.min - diffSMax, max);
11
- }
12
- const diffSMin = value.min < min ? value.min : minValue;
13
- if (diffSMin) {
14
- res = setRangeValue(minValue, value.max + diffSMin);
15
- }
16
- return res;
17
- };
18
- const fireworksOptions = ["#ff595e", "#ffca3a", "#8ac926", "#1982c4", "#6a4c93"]
19
- .map(color => {
20
- const rgb = stringToRgb(color);
21
- if (!rgb) {
22
- return undefined;
23
- }
24
- const hsl = rgbToHsl(rgb), sOffset = 30, lOffset = 30, sBounds = {
25
- min: 0,
26
- max: 100,
27
- }, lBounds = {
28
- min: 0,
29
- max: 100,
30
- }, sRange = fixRange({ min: hsl.s - sOffset, max: hsl.s + sOffset }, sBounds.min, sBounds.max), lRange = fixRange({ min: hsl.l - lOffset, max: hsl.l + lOffset }, lBounds.min, lBounds.max);
31
- return {
32
- color: {
33
- value: {
34
- h: hsl.h,
35
- s: sRange,
36
- l: lRange,
37
- },
38
- },
39
- stroke: {
40
- width: 0,
41
- },
42
- number: {
43
- value: 0,
44
- },
45
- opacity: {
46
- value: {
47
- min: 0.1,
48
- max: 1,
1
+ import { DestroyType, EventType, MoveDirection, OutMode, StartValueType, defaultAlpha, getLogger, none, rgbToHsl, setRangeValue, } from "@tsparticles/engine";
2
+ export const presetName = "fireworks";
3
+ export function initOptions() {
4
+ const explodeSoundCheck = (args) => {
5
+ const data = args.data;
6
+ return data.particle.options.move.gravity.inverse;
7
+ }, fixRange = (value, min, max) => {
8
+ const minValue = 0, diffSMax = value.max > max ? value.max - max : minValue;
9
+ let res = setRangeValue(value);
10
+ if (diffSMax) {
11
+ res = setRangeValue(value.min - diffSMax, max);
12
+ }
13
+ const diffSMin = value.min < min ? value.min : minValue;
14
+ if (diffSMin) {
15
+ res = setRangeValue(minValue, value.max + diffSMin);
16
+ }
17
+ return res;
18
+ }, hexToRgba = (hex) => {
19
+ let hexValue = hex;
20
+ const shortRegex = /^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i;
21
+ if (shortRegex.test(hexValue)) {
22
+ hexValue = hexValue.replace(shortRegex, (_m, r, g, b, a) => r + r + g + g + b + b + (a ? a + a : ""));
23
+ }
24
+ const regex = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i, result = regex.exec(hexValue);
25
+ if (!result) {
26
+ return undefined;
27
+ }
28
+ result.shift();
29
+ const indexes = {
30
+ a: 3,
31
+ b: 2,
32
+ g: 1,
33
+ r: 0,
34
+ }, values = {
35
+ a: result[indexes.a],
36
+ b: result[indexes.b],
37
+ g: result[indexes.g],
38
+ r: result[indexes.r],
39
+ }, hexRadix = 16;
40
+ return {
41
+ r: values.r ? Number.parseInt(values.r, hexRadix) : none,
42
+ g: values.g ? Number.parseInt(values.g, hexRadix) : none,
43
+ b: values.b ? Number.parseInt(values.b, hexRadix) : none,
44
+ a: values.a ? Number.parseInt(values.a, hexRadix) : defaultAlpha,
45
+ };
46
+ }, fireworksOptions = [
47
+ "#FF0000",
48
+ "#FF2A00",
49
+ "#FF5500",
50
+ "#FF8000",
51
+ "#FFAA00",
52
+ "#FFD400",
53
+ "#FFFF00",
54
+ "#D4FF00",
55
+ "#AAFF00",
56
+ "#80FF00",
57
+ "#55FF00",
58
+ "#2AFF00",
59
+ "#00FF00",
60
+ "#00FF2A",
61
+ "#00FF55",
62
+ "#00FF80",
63
+ "#00FFAA",
64
+ "#00FFD4",
65
+ "#00FFFF",
66
+ "#00D4FF",
67
+ "#00AAFF",
68
+ "#0080FF",
69
+ "#0055FF",
70
+ "#002AFF",
71
+ "#0000FF",
72
+ "#2A00FF",
73
+ "#5500FF",
74
+ "#8000FF",
75
+ "#AA00FF",
76
+ "#D400FF",
77
+ "#FF00FF",
78
+ "#FF00D4",
79
+ "#FF00AA",
80
+ "#FF0080",
81
+ "#FF0055",
82
+ "#FF002A",
83
+ ]
84
+ .map(color => {
85
+ const rgb = hexToRgba(color);
86
+ if (!rgb) {
87
+ getLogger().log("color not found", color);
88
+ return undefined;
89
+ }
90
+ const hsl = rgbToHsl(rgb), sOffset = 30, lOffset = 30, sBounds = {
91
+ min: 0,
92
+ max: 100,
93
+ }, lBounds = {
94
+ min: 0,
95
+ max: 100,
96
+ }, sRange = fixRange({ min: hsl.s - sOffset, max: hsl.s + sOffset }, sBounds.min, sBounds.max), lRange = fixRange({ min: hsl.l - lOffset, max: hsl.l + lOffset }, lBounds.min, lBounds.max);
97
+ getLogger().log(hsl.h, sRange, lRange);
98
+ return {
99
+ color: {
100
+ value: {
101
+ h: hsl.h,
102
+ s: sRange,
103
+ l: lRange,
104
+ },
49
105
  },
50
- animation: {
51
- enable: true,
52
- speed: 0.7,
53
- sync: false,
54
- startValue: StartValueType.max,
55
- destroy: DestroyType.min,
106
+ stroke: {
107
+ width: 0,
56
108
  },
57
- },
58
- shape: {
59
- type: "circle",
60
- },
61
- size: {
62
- value: { min: 1, max: 2 },
63
- animation: {
64
- enable: true,
65
- speed: 5,
66
- count: 1,
67
- sync: false,
68
- startValue: StartValueType.min,
69
- destroy: DestroyType.none,
109
+ number: {
110
+ value: 0,
70
111
  },
71
- },
72
- life: {
73
- count: 1,
74
- duration: {
112
+ opacity: {
75
113
  value: {
76
- min: 1,
77
- max: 2,
114
+ min: 0.1,
115
+ max: 1,
116
+ },
117
+ animation: {
118
+ enable: true,
119
+ speed: 0.7,
120
+ sync: false,
121
+ startValue: StartValueType.max,
122
+ destroy: DestroyType.min,
78
123
  },
79
124
  },
80
- },
81
- move: {
82
- decay: { min: 0.075, max: 0.1 },
83
- enable: true,
84
- gravity: {
85
- enable: true,
86
- inverse: false,
87
- acceleration: 5,
125
+ shape: {
126
+ type: "circle",
88
127
  },
89
- speed: { min: 5, max: 15 },
90
- direction: "none",
91
- outModes: OutMode.destroy,
92
- },
93
- };
94
- })
95
- .filter(t => t !== undefined);
96
- export const options = {
97
- detectRetina: true,
98
- background: {
99
- color: "#000",
100
- },
101
- fpsLimit: 120,
102
- emitters: {
103
- direction: MoveDirection.top,
104
- life: {
105
- count: 0,
106
- duration: 0.1,
107
- delay: 0.1,
108
- },
109
- rate: {
110
- delay: 0.05,
111
- quantity: 1,
112
- },
113
- size: {
114
- width: 100,
115
- height: 0,
116
- },
117
- position: {
118
- y: 100,
119
- x: 50,
120
- },
121
- },
122
- particles: {
123
- number: {
124
- value: 0,
125
- },
126
- destroy: {
127
- mode: "split",
128
- bounds: {
129
- top: { min: 10, max: 30 },
128
+ effect: {
129
+ type: "trail",
130
+ options: {
131
+ trail: {
132
+ length: {
133
+ min: 5,
134
+ max: 10,
135
+ },
136
+ },
137
+ },
138
+ },
139
+ size: {
140
+ value: { min: 1, max: 2 },
141
+ animation: {
142
+ enable: true,
143
+ speed: 5,
144
+ count: 1,
145
+ sync: false,
146
+ startValue: StartValueType.min,
147
+ destroy: DestroyType.none,
148
+ },
130
149
  },
131
- split: {
132
- sizeOffset: false,
150
+ life: {
133
151
  count: 1,
134
- factor: {
135
- value: 0.333333,
152
+ duration: {
153
+ value: {
154
+ min: 1,
155
+ max: 2,
156
+ },
136
157
  },
137
- rate: {
138
- value: { min: 75, max: 150 },
158
+ },
159
+ move: {
160
+ decay: { min: 0.075, max: 0.1 },
161
+ enable: true,
162
+ gravity: {
163
+ enable: true,
164
+ inverse: false,
165
+ acceleration: 5,
139
166
  },
140
- particles: fireworksOptions,
167
+ speed: { min: 5, max: 15 },
168
+ direction: "none",
169
+ outModes: OutMode.destroy,
141
170
  },
171
+ };
172
+ })
173
+ .filter(t => t !== undefined);
174
+ return {
175
+ detectRetina: true,
176
+ background: {
177
+ color: "#000",
142
178
  },
143
- life: {
144
- count: 1,
145
- },
146
- shape: {
147
- type: "line",
148
- },
149
- size: {
150
- value: {
151
- min: 0.1,
152
- max: 50,
179
+ fpsLimit: 120,
180
+ emitters: {
181
+ direction: MoveDirection.top,
182
+ rate: {
183
+ delay: 0.3,
184
+ quantity: 1,
153
185
  },
154
- animation: {
155
- enable: true,
156
- sync: true,
157
- speed: 90,
158
- startValue: StartValueType.max,
159
- destroy: DestroyType.min,
186
+ size: {
187
+ width: 100,
188
+ height: 0,
160
189
  },
161
- },
162
- stroke: {
163
- color: {
164
- value: "#ffffff",
190
+ position: {
191
+ y: 100,
192
+ x: 50,
165
193
  },
166
- width: 1,
167
194
  },
168
- rotate: {
169
- path: true,
170
- },
171
- move: {
172
- enable: true,
173
- gravity: {
174
- acceleration: 15,
175
- enable: true,
176
- inverse: true,
177
- maxSpeed: 100,
195
+ particles: {
196
+ number: {
197
+ value: 0,
178
198
  },
179
- speed: {
180
- min: 10,
181
- max: 20,
199
+ destroy: {
200
+ mode: "split",
201
+ bounds: {
202
+ top: { min: 15, max: 35 },
203
+ },
204
+ split: {
205
+ sizeOffset: false,
206
+ count: 1,
207
+ factor: {
208
+ value: 0.333333,
209
+ },
210
+ rate: {
211
+ value: { min: 75, max: 150 },
212
+ },
213
+ particles: fireworksOptions,
214
+ },
182
215
  },
183
- outModes: {
184
- default: OutMode.destroy,
185
- top: OutMode.none,
216
+ life: {
217
+ count: 1,
218
+ },
219
+ shape: {
220
+ type: "circle",
186
221
  },
187
- trail: {
188
- fill: {
189
- color: "#000",
222
+ effect: {
223
+ type: "trail",
224
+ options: {
225
+ trail: {
226
+ length: {
227
+ min: 5,
228
+ max: 15,
229
+ },
230
+ minWidth: 1,
231
+ maxWidth: 1,
232
+ },
190
233
  },
234
+ },
235
+ size: {
236
+ value: 1,
237
+ },
238
+ stroke: {
239
+ color: {
240
+ value: "#ffffff",
241
+ },
242
+ width: 1,
243
+ },
244
+ move: {
191
245
  enable: true,
192
- length: 10,
246
+ gravity: {
247
+ acceleration: 15,
248
+ enable: true,
249
+ inverse: true,
250
+ maxSpeed: 100,
251
+ },
252
+ speed: {
253
+ min: 10,
254
+ max: 20,
255
+ },
256
+ outModes: {
257
+ default: OutMode.destroy,
258
+ top: OutMode.none,
259
+ },
193
260
  },
194
261
  },
195
- },
196
- sounds: {
197
- enable: true,
198
- events: [
199
- {
200
- event: EventType.particleRemoved,
201
- filter: explodeSoundCheck,
202
- audio: [
203
- "https://particles.js.org/audio/explosion0.mp3",
204
- "https://particles.js.org/audio/explosion1.mp3",
205
- "https://particles.js.org/audio/explosion2.mp3",
206
- ],
207
- },
208
- ],
209
- volume: 50,
210
- },
211
- };
262
+ sounds: {
263
+ enable: true,
264
+ events: [
265
+ {
266
+ event: EventType.particleRemoved,
267
+ filter: explodeSoundCheck,
268
+ audio: [
269
+ "https://particles.js.org/audio/explosion0.mp3",
270
+ "https://particles.js.org/audio/explosion1.mp3",
271
+ "https://particles.js.org/audio/explosion2.mp3",
272
+ ],
273
+ },
274
+ ],
275
+ volume: 50,
276
+ },
277
+ };
278
+ }
@@ -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-alpha.0
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_preset_fireworks"] = this["webpackChunk_tsparticles_preset_fireworks"] || []).push([["node_modules_pnpm_tsparticles_basic_4_0_0-alpha_2_node_modules_tsparticles_basic_browser_index_js"],{
19
+
20
+ /***/ "../../node_modules/.pnpm/@tsparticles+basic@4.0.0-alpha.2/node_modules/@tsparticles/basic/browser/index.js"
21
+ /*!******************************************************************************************************************!*\
22
+ !*** ../../node_modules/.pnpm/@tsparticles+basic@4.0.0-alpha.2/node_modules/@tsparticles/basic/browser/index.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 */ loadBasic: () => (/* binding */ loadBasic)\n/* harmony export */ });\nfunction loadBasic(engine) {\n engine.checkVersion(\"4.0.0-alpha.2\");\n engine.register(async (e) => {\n const { loadHexColorPlugin } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_plugin-hex-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--91288b\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-hex-color */ \"../../node_modules/.pnpm/@tsparticles+plugin-hex-color@4.0.0-alpha.2/node_modules/@tsparticles/plugin-hex-color/browser/index.js\")), { loadHslColorPlugin } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_plugin-hsl-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--70976c\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-hsl-color */ \"../../node_modules/.pnpm/@tsparticles+plugin-hsl-color@4.0.0-alpha.2/node_modules/@tsparticles/plugin-hsl-color/browser/index.js\")), { loadRgbColorPlugin } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_plugin-rgb-color_4_0_0-alpha_2_node_modules_tsparticles_plugin--732407\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-rgb-color */ \"../../node_modules/.pnpm/@tsparticles+plugin-rgb-color@4.0.0-alpha.2/node_modules/@tsparticles/plugin-rgb-color/browser/index.js\")), { loadBaseMover } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_move-base_4_0_0-alpha_2_node_modules_tsparticles_move-base_brow-fb148a\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/move-base */ \"../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/index.js\")), { loadCircleShape } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_shape-circle_4_0_0-alpha_2_node_modules_tsparticles_shape-circl-ce96e8\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-circle */ \"../../node_modules/.pnpm/@tsparticles+shape-circle@4.0.0-alpha.2/node_modules/@tsparticles/shape-circle/browser/index.js\")), { loadColorUpdater } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_updater-color_4_0_0-alpha_2_node_modules_tsparticles_updater-co-6ff909\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-color */ \"../../node_modules/.pnpm/@tsparticles+updater-color@4.0.0-alpha.2/node_modules/@tsparticles/updater-color/browser/index.js\")), { loadOpacityUpdater } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_updater-opacity_4_0_0-alpha_2_node_modules_tsparticles_updater--4e8c57\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-opacity */ \"../../node_modules/.pnpm/@tsparticles+updater-opacity@4.0.0-alpha.2/node_modules/@tsparticles/updater-opacity/browser/index.js\")), { loadOutModesUpdater } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_updater-out-modes_4_0_0-alpha_2_node_modules_tsparticles_update-cd317f\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-out-modes */ \"../../node_modules/.pnpm/@tsparticles+updater-out-modes@4.0.0-alpha.2/node_modules/@tsparticles/updater-out-modes/browser/index.js\")), { loadSizeUpdater } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_updater-size_4_0_0-alpha_2_node_modules_tsparticles_updater-siz-53e0fe\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-size */ \"../../node_modules/.pnpm/@tsparticles+updater-size@4.0.0-alpha.2/node_modules/@tsparticles/updater-size/browser/index.js\"));\n loadHexColorPlugin(e);\n loadHslColorPlugin(e);\n loadRgbColorPlugin(e);\n loadBaseMover(e);\n loadCircleShape(e);\n loadColorUpdater(e);\n loadOpacityUpdater(e);\n loadOutModesUpdater(e);\n loadSizeUpdater(e);\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/preset-fireworks/../../node_modules/.pnpm/@tsparticles+basic@4.0.0-alpha.2/node_modules/@tsparticles/basic/browser/index.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-alpha.0
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_preset_fireworks"] = this["webpackChunk_tsparticles_preset_fireworks"] || []).push([["node_modules_pnpm_tsparticles_effect-trail_4_0_0-alpha_2_node_modules_tsparticles_effect-trai-3395e5"],{
19
+
20
+ /***/ "../../node_modules/.pnpm/@tsparticles+effect-trail@4.0.0-alpha.2/node_modules/@tsparticles/effect-trail/browser/TrailDrawer.js"
21
+ /*!**************************************************************************************************************************************!*\
22
+ !*** ../../node_modules/.pnpm/@tsparticles+effect-trail@4.0.0-alpha.2/node_modules/@tsparticles/effect-trail/browser/TrailDrawer.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 */ TrailDrawer: () => (/* binding */ TrailDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../node_modules/.pnpm/@tsparticles+engine@4.0.0-alpha.2/node_modules/@tsparticles/engine/browser/index.js\");\n\nconst minTrailLength = 2, trailLengthOffset = 1, minWidth = -1, defaultLength = 10;\nconst defaultTransform = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n};\nclass TrailDrawer {\n drawAfter(data) {\n const { context, radius, particle, transformData } = data, diameter = radius * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double, pxRatio = particle.container.retina.pixelRatio, currentPos = particle.getPosition(), trail = particle.trail;\n if (!trail || !particle.trailLength) {\n return;\n }\n const pathLength = particle.trailLength + radius;\n trail.push({\n color: context.fillStyle || context.strokeStyle,\n position: {\n x: currentPos.x,\n y: currentPos.y,\n },\n transformData: { ...data.transformData },\n });\n if (trail.length < minTrailLength) {\n return;\n }\n while (trail.length > pathLength) {\n trail.shift();\n }\n const trailLength = Math.min(trail.length, pathLength), canvasSize = {\n width: particle.container.canvas.size.width + diameter,\n height: particle.container.canvas.size.height + diameter,\n };\n const trailPos = trail[trailLength - trailLengthOffset];\n if (!trailPos) {\n return;\n }\n let lastPos = trailPos.position;\n for (let i = trailLength; i > _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.none; i--) {\n const step = trail[i - trailLengthOffset];\n if (!step) {\n continue;\n }\n const position = step.position, stepTransformData = particle.trailTransform\n ? (step.transformData ?? defaultTransform)\n : defaultTransform;\n context.setTransform(stepTransformData.a, stepTransformData.b, stepTransformData.c, stepTransformData.d, position.x, position.y);\n context.beginPath();\n context.moveTo(lastPos.x - position.x, lastPos.y - position.y);\n const warp = {\n x: (lastPos.x + canvasSize.width) % canvasSize.width,\n y: (lastPos.y + canvasSize.height) % canvasSize.height,\n };\n if (Math.abs(lastPos.x - position.x) > canvasSize.width * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half ||\n Math.abs(lastPos.y - position.y) > canvasSize.height * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half) {\n lastPos = position;\n continue;\n }\n context.lineTo(Math.abs(lastPos.x - position.x) > canvasSize.width * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half ? warp.x : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, Math.abs(lastPos.y - position.y) > canvasSize.height * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half ? warp.y : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y);\n const width = Math.max((i / trailLength) * diameter, pxRatio, particle.trailMinWidth ?? minWidth), oldAlpha = context.globalAlpha;\n context.globalAlpha = particle.trailFade ? i / trailLength : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.defaultAlpha;\n context.lineWidth = particle.trailMaxWidth ? Math.min(width, particle.trailMaxWidth) : width;\n context.strokeStyle = step.color;\n context.stroke();\n context.globalAlpha = oldAlpha;\n lastPos = position;\n }\n context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, currentPos.x, currentPos.y);\n }\n particleInit(container, particle) {\n particle.trail = [];\n const effectData = particle.effectData;\n particle.trailFade = effectData?.fade ?? true;\n particle.trailLength = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(effectData?.length ?? defaultLength) * container.retina.pixelRatio;\n particle.trailMaxWidth = effectData?.maxWidth\n ? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(effectData.maxWidth) * container.retina.pixelRatio\n : undefined;\n particle.trailMinWidth = effectData?.minWidth\n ? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(effectData.minWidth) * container.retina.pixelRatio\n : undefined;\n particle.trailTransform = effectData?.transform ?? false;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/preset-fireworks/../../node_modules/.pnpm/@tsparticles+effect-trail@4.0.0-alpha.2/node_modules/@tsparticles/effect-trail/browser/TrailDrawer.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-alpha.0
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_preset_fireworks"] = this["webpackChunk_tsparticles_preset_fireworks"] || []).push([["node_modules_pnpm_tsparticles_effect-trail_4_0_0-alpha_2_node_modules_tsparticles_effect-trai-8c7216"],{
19
+
20
+ /***/ "../../node_modules/.pnpm/@tsparticles+effect-trail@4.0.0-alpha.2/node_modules/@tsparticles/effect-trail/browser/index.js"
21
+ /*!********************************************************************************************************************************!*\
22
+ !*** ../../node_modules/.pnpm/@tsparticles+effect-trail@4.0.0-alpha.2/node_modules/@tsparticles/effect-trail/browser/index.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 */ loadTrailEffect: () => (/* binding */ loadTrailEffect)\n/* harmony export */ });\nfunction loadTrailEffect(engine) {\n engine.checkVersion(\"4.0.0-alpha.2\");\n engine.register(async (e) => {\n const { TrailDrawer } = await __webpack_require__.e(/*! import() */ \"node_modules_pnpm_tsparticles_effect-trail_4_0_0-alpha_2_node_modules_tsparticles_effect-trai-3395e5\").then(__webpack_require__.bind(__webpack_require__, /*! ./TrailDrawer.js */ \"../../node_modules/.pnpm/@tsparticles+effect-trail@4.0.0-alpha.2/node_modules/@tsparticles/effect-trail/browser/TrailDrawer.js\"));\n e.addEffect(\"trail\", new TrailDrawer());\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/preset-fireworks/../../node_modules/.pnpm/@tsparticles+effect-trail@4.0.0-alpha.2/node_modules/@tsparticles/effect-trail/browser/index.js?\n}");
27
+
28
+ /***/ }
29
+
30
+ }]);
@@ -0,0 +1,40 @@
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-alpha.0
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_preset_fireworks"] = this["webpackChunk_tsparticles_preset_fireworks"] || []).push([["node_modules_pnpm_tsparticles_move-base_4_0_0-alpha_2_node_modules_tsparticles_move-base_brow-7d79eb"],{
19
+
20
+ /***/ "../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/BaseMover.js"
21
+ /*!******************************************************************************************************************************!*\
22
+ !*** ../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/BaseMover.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 */ BaseMover: () => (/* binding */ BaseMover)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../node_modules/.pnpm/@tsparticles+engine@4.0.0-alpha.2/node_modules/@tsparticles/engine/browser/index.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/Utils.js\");\n\n\nconst diffFactor = 2, defaultSizeFactor = 1, defaultDeltaFactor = 1;\nclass BaseMover {\n init(particle) {\n const options = particle.options, gravityOptions = options.move.gravity;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.initSpin)(particle);\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n const particleOptions = particle.options, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, pxRatio = container.retina.pixelRatio;\n particle.retina.moveSpeed ??= (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(moveOptions.speed) * pxRatio;\n particle.retina.moveDrift ??= (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(particle.options.move.drift) * pxRatio;\n const slowFactor = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.getProximitySpeedFactor)(particle), reduceFactor = container.retina.reduceFactor, baseSpeed = particle.retina.moveSpeed, moveDrift = particle.retina.moveDrift, maxSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particleOptions.size.value) * pxRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : defaultSizeFactor, deltaFactor = delta.factor || defaultDeltaFactor, moveSpeed = (baseSpeed * sizeFactor * slowFactor * deltaFactor) / diffFactor, maxSpeed = particle.retina.maxSpeed ?? container.retina.maxSpeed;\n if (moveOptions.spin.enable) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.spin)(particle, moveSpeed, reduceFactor);\n }\n else {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.move)(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, reduceFactor, delta);\n }\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.applyDistance)(particle);\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/preset-fireworks/../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/BaseMover.js?\n}");
27
+
28
+ /***/ },
29
+
30
+ /***/ "../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/Utils.js"
31
+ /*!**************************************************************************************************************************!*\
32
+ !*** ../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/Utils.js ***!
33
+ \**************************************************************************************************************************/
34
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
+
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyDistance: () => (/* binding */ applyDistance),\n/* harmony export */ applyPath: () => (/* binding */ applyPath),\n/* harmony export */ getProximitySpeedFactor: () => (/* binding */ getProximitySpeedFactor),\n/* harmony export */ initSpin: () => (/* binding */ initSpin),\n/* harmony export */ move: () => (/* binding */ move),\n/* harmony export */ spin: () => (/* binding */ spin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../node_modules/.pnpm/@tsparticles+engine@4.0.0-alpha.2/node_modules/@tsparticles/engine/browser/index.js\");\n\nconst half = 0.5, double = 2, minVelocity = 0, identity = 1, moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01, doublePI = Math.PI * double;\nfunction applyDistance(particle) {\n const initialPosition = particle.initialPosition, { dx, dy } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), { maxDistance } = particle.retina, hDistance = maxDistance.horizontal, vDistance = maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n const hasHDistance = (hDistance && dxFixed >= hDistance) ?? false, hasVDistance = (vDistance && dyFixed >= vDistance) ?? false;\n if ((hasHDistance || hasVDistance) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y * half - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x * half - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance &&\n ((pos.x < initialPosition.x && vel.x < minVelocity) || (pos.x > initialPosition.x && vel.x > minVelocity))) {\n vel.x *= -(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)();\n }\n if (vDistance &&\n ((pos.y < initialPosition.y && vel.y < minVelocity) || (pos.y > initialPosition.y && vel.y > minVelocity))) {\n vel.y *= -(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)();\n }\n }\n}\nfunction move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, reduceFactor, delta) {\n applyPath(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = gravityOptions?.enable && gravityOptions.inverse ? -identity : identity;\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (moveSpeedFactor * moveSpeed);\n }\n if (gravityOptions?.enable && moveSpeed) {\n particle.velocity.y +=\n (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (moveSpeedFactor * moveSpeed);\n }\n const decay = particle.moveDecay;\n particle.velocity.multTo(decay);\n const velocity = particle.velocity.mult(moveSpeed);\n if (gravityOptions?.enable &&\n maxSpeed > minVelocity &&\n ((!gravityOptions.inverse && velocity.y >= minVelocity && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= minVelocity && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (identity - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n velocity.multTo(zVelocityFactor);\n velocity.multTo(reduceFactor);\n const { position } = particle;\n position.addTo(velocity);\n if (moveOptions.vibrate) {\n position.x += Math.sin(position.x * Math.cos(position.y)) * reduceFactor;\n position.y += Math.cos(position.y * Math.sin(position.x)) * reduceFactor;\n }\n}\nfunction spin(particle, moveSpeed, reduceFactor) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const spinClockwise = particle.spin.direction === _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise, updateFunc = {\n x: spinClockwise ? Math.cos : Math.sin,\n y: spinClockwise ? Math.sin : Math.cos,\n };\n particle.position.x =\n particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle) * reduceFactor;\n particle.position.y =\n particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle) * reduceFactor;\n particle.spin.radius += particle.spin.acceleration * reduceFactor;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height), halfMaxSize = maxCanvasSize * half;\n if (particle.spin.radius > halfMaxSize) {\n particle.spin.radius = halfMaxSize;\n particle.spin.acceleration *= -identity;\n }\n else if (particle.spin.radius < minSpinRadius) {\n particle.spin.radius = minSpinRadius;\n particle.spin.acceleration *= -identity;\n }\n particle.spin.angle += moveSpeed * spinFactor * (identity - particle.spin.radius / maxCanvasSize);\n}\nfunction applyPath(particle, delta) {\n const particlesOptions = particle.options, pathOptions = particlesOptions.move.path, pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = particle.pathGenerator?.generate(particle, delta);\n if (path) {\n particle.velocity.addTo(path);\n }\n if (pathOptions.clamp) {\n particle.velocity.x = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.clamp)(particle.velocity.x, -identity, identity);\n particle.velocity.y = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.clamp)(particle.velocity.y, -identity, identity);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nfunction getProximitySpeedFactor(particle) {\n return particle.slow.inRange ? particle.slow.factor : identity;\n}\nfunction initSpin(particle) {\n const container = particle.container, options = particle.options, spinOptions = options.move.spin;\n if (!spinOptions.enable) {\n return;\n }\n const spinPos = spinOptions.position ?? { x: 50, y: 50 }, spinFactor = 0.01, spinCenter = {\n x: spinPos.x * spinFactor * container.canvas.size.width,\n y: spinPos.y * spinFactor * container.canvas.size.height,\n }, pos = particle.getPosition(), distance = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(pos, spinCenter), spinAcceleration = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= minVelocity ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.counterClockwise,\n angle: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * doublePI,\n radius: distance,\n acceleration: particle.retina.spinAcceleration,\n };\n}\n\n\n//# sourceURL=webpack://@tsparticles/preset-fireworks/../../node_modules/.pnpm/@tsparticles+move-base@4.0.0-alpha.2/node_modules/@tsparticles/move-base/browser/Utils.js?\n}");
37
+
38
+ /***/ }
39
+
40
+ }]);