@tsparticles/all 4.0.0-alpha.25 → 4.0.0-alpha.27

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 (795) hide show
  1. package/102.min.js +1 -0
  2. package/1053.min.js +1 -0
  3. package/{1913.min.js → 1060.min.js} +1 -1
  4. package/1098.min.js +1 -0
  5. package/1146.min.js +1 -0
  6. package/{2406.min.js → 1154.min.js} +1 -1
  7. package/1171.min.js +1 -0
  8. package/1196.min.js +1 -0
  9. package/1220.min.js +1 -0
  10. package/1276.min.js +1 -0
  11. package/1283.min.js +1 -0
  12. package/{7293.min.js → 1298.min.js} +1 -1
  13. package/1302.min.js +1 -0
  14. package/1304.min.js +1 -0
  15. package/134.min.js +1 -0
  16. package/1368.min.js +1 -0
  17. package/1411.min.js +1 -0
  18. package/1510.min.js +1 -0
  19. package/1513.min.js +1 -0
  20. package/1553.min.js +1 -0
  21. package/1556.min.js +1 -0
  22. package/161.min.js +1 -0
  23. package/{3936.min.js → 1624.min.js} +1 -1
  24. package/1667.min.js +1 -0
  25. package/1739.min.js +1 -1
  26. package/1766.min.js +1 -0
  27. package/1812.min.js +1 -0
  28. package/1821.min.js +1 -0
  29. package/1906.min.js +1 -0
  30. package/2086.min.js +1 -0
  31. package/{5533.min.js → 2123.min.js} +2 -2
  32. package/2142.min.js +1 -0
  33. package/2167.min.js +1 -0
  34. package/2217.min.js +1 -0
  35. package/2218.min.js +1 -0
  36. package/229.min.js +1 -0
  37. package/2292.min.js +1 -0
  38. package/2295.min.js +1 -0
  39. package/{1228.min.js → 2317.min.js} +1 -1
  40. package/2346.min.js +1 -0
  41. package/{4026.min.js → 2382.min.js} +1 -1
  42. package/2397.min.js +1 -0
  43. package/241.min.js +1 -0
  44. package/243.min.js +1 -0
  45. package/2488.min.js +1 -0
  46. package/2513.min.js +1 -0
  47. package/2541.min.js +1 -0
  48. package/2553.min.js +1 -0
  49. package/2569.min.js +1 -0
  50. package/2609.min.js +1 -0
  51. package/2616.min.js +1 -0
  52. package/2618.min.js +1 -0
  53. package/2642.min.js +1 -0
  54. package/2715.min.js +1 -0
  55. package/{3092.min.js → 2738.min.js} +1 -1
  56. package/{4566.min.js → 2846.min.js} +1 -1
  57. package/2917.min.js +1 -0
  58. package/{9797.min.js → 2926.min.js} +1 -1
  59. package/2940.min.js +1 -0
  60. package/{2919.min.js → 3003.min.js} +1 -1
  61. package/{9292.min.js → 3019.min.js} +1 -1
  62. package/3037.min.js +1 -0
  63. package/3091.min.js +1 -0
  64. package/3093.min.js +1 -0
  65. package/3130.min.js +1 -0
  66. package/3136.min.js +1 -0
  67. package/3138.min.js +1 -0
  68. package/3150.min.js +1 -0
  69. package/3194.min.js +1 -0
  70. package/3216.min.js +1 -0
  71. package/{4634.min.js → 3233.min.js} +1 -1
  72. package/3257.min.js +1 -0
  73. package/3296.min.js +1 -0
  74. package/{8085.min.js → 3338.min.js} +2 -2
  75. package/{7960.min.js → 3391.min.js} +1 -1
  76. package/3407.min.js +1 -0
  77. package/{4609.min.js → 3413.min.js} +1 -1
  78. package/342.min.js +1 -0
  79. package/3433.min.js +1 -0
  80. package/3455.min.js +1 -0
  81. package/{8361.min.js → 3464.min.js} +1 -1
  82. package/3509.min.js +1 -0
  83. package/3573.min.js +1 -0
  84. package/358.min.js +1 -0
  85. package/3618.min.js +1 -0
  86. package/{2542.min.js → 3657.min.js} +1 -1
  87. package/3659.min.js +1 -0
  88. package/366.min.js +1 -0
  89. package/3663.min.js +1 -0
  90. package/3693.min.js +1 -0
  91. package/3713.min.js +1 -0
  92. package/3715.min.js +1 -0
  93. package/3747.min.js +1 -0
  94. package/3750.min.js +1 -0
  95. package/{8477.min.js → 3766.min.js} +1 -1
  96. package/379.min.js +1 -0
  97. package/{3725.min.js → 3793.min.js} +1 -1
  98. package/{8868.min.js → 3813.min.js} +1 -1
  99. package/{9282.min.js → 3853.min.js} +1 -1
  100. package/{7899.min.js → 3912.min.js} +1 -1
  101. package/{2800.min.js → 3924.min.js} +1 -1
  102. package/4067.min.js +1 -0
  103. package/4073.min.js +1 -0
  104. package/4082.min.js +1 -0
  105. package/4089.min.js +1 -0
  106. package/4141.min.js +1 -1
  107. package/4149.min.js +1 -0
  108. package/4191.min.js +1 -0
  109. package/{3755.min.js → 4204.min.js} +1 -1
  110. package/4234.min.js +1 -0
  111. package/4257.min.js +1 -0
  112. package/4268.min.js +1 -0
  113. package/4270.min.js +1 -0
  114. package/4285.min.js +1 -0
  115. package/{9474.min.js → 4292.min.js} +1 -1
  116. package/4303.min.js +1 -0
  117. package/4385.min.js +1 -0
  118. package/439.min.js +1 -0
  119. package/4413.min.js +1 -0
  120. package/{3785.min.js → 4424.min.js} +1 -1
  121. package/4433.min.js +1 -0
  122. package/4462.min.js +1 -0
  123. package/4463.min.js +1 -0
  124. package/449.min.js +1 -0
  125. package/4532.min.js +1 -0
  126. package/4570.min.js +1 -0
  127. package/4572.min.js +1 -0
  128. package/{9433.min.js → 4588.min.js} +1 -1
  129. package/465.min.js +1 -0
  130. package/4660.min.js +1 -0
  131. package/{6787.min.js → 4662.min.js} +1 -1
  132. package/4669.min.js +1 -0
  133. package/4671.min.js +1 -0
  134. package/468.min.js +1 -0
  135. package/4683.min.js +1 -0
  136. package/4689.min.js +1 -0
  137. package/{5349.min.js → 4708.min.js} +1 -1
  138. package/4724.min.js +1 -1
  139. package/4792.min.js +1 -0
  140. package/485.min.js +1 -0
  141. package/4894.min.js +1 -0
  142. package/4932.min.js +1 -0
  143. package/5055.min.js +1 -0
  144. package/{8690.min.js → 5133.min.js} +1 -1
  145. package/514.min.js +1 -1
  146. package/5157.min.js +1 -1
  147. package/5206.min.js +1 -0
  148. package/521.min.js +1 -0
  149. package/5249.min.js +1 -0
  150. package/5315.min.js +1 -0
  151. package/5322.min.js +1 -0
  152. package/533.min.js +1 -0
  153. package/5390.min.js +1 -0
  154. package/5406.min.js +1 -0
  155. package/{2681.min.js → 5411.min.js} +1 -1
  156. package/{4363.min.js → 5478.min.js} +1 -1
  157. package/5531.min.js +1 -0
  158. package/5538.min.js +1 -0
  159. package/5552.min.js +1 -0
  160. package/5558.min.js +1 -0
  161. package/5638.min.js +1 -0
  162. package/{9894.min.js → 5665.min.js} +1 -1
  163. package/{5547.min.js → 5712.min.js} +1 -1
  164. package/5723.min.js +1 -0
  165. package/5740.min.js +1 -0
  166. package/5833.min.js +1 -0
  167. package/5855.min.js +1 -0
  168. package/5901.min.js +1 -0
  169. package/5964.min.js +1 -0
  170. package/{2082.min.js → 5997.min.js} +1 -1
  171. package/6041.min.js +1 -0
  172. package/6058.min.js +1 -0
  173. package/{6213.min.js → 6066.min.js} +1 -1
  174. package/608.min.js +1 -0
  175. package/6098.min.js +1 -0
  176. package/6101.min.js +1 -0
  177. package/6179.min.js +1 -0
  178. package/6193.min.js +1 -0
  179. package/{5902.min.js → 6211.min.js} +1 -1
  180. package/622.min.js +1 -0
  181. package/6221.min.js +1 -0
  182. package/6299.min.js +1 -0
  183. package/{1986.min.js → 6351.min.js} +1 -1
  184. package/6361.min.js +1 -0
  185. package/6387.min.js +1 -0
  186. package/6405.min.js +1 -0
  187. package/644.min.js +1 -0
  188. package/{3437.min.js → 6450.min.js} +1 -1
  189. package/{9859.min.js → 6458.min.js} +1 -1
  190. package/6465.min.js +1 -0
  191. package/65.min.js +1 -0
  192. package/653.min.js +1 -0
  193. package/6583.min.js +1 -0
  194. package/6638.min.js +1 -0
  195. package/6684.min.js +1 -0
  196. package/6725.min.js +1 -0
  197. package/6808.min.js +1 -0
  198. package/{7771.min.js → 6839.min.js} +1 -1
  199. package/{6501.min.js → 6900.min.js} +1 -1
  200. package/{7153.min.js → 6970.min.js} +1 -1
  201. package/6982.min.js +1 -1
  202. package/6986.min.js +1 -0
  203. package/701.min.js +1 -0
  204. package/702.min.js +1 -0
  205. package/7028.min.js +1 -0
  206. package/{4956.min.js → 7041.min.js} +2 -2
  207. package/7116.min.js +1 -0
  208. package/7256.min.js +1 -0
  209. package/{7329.min.js → 7258.min.js} +1 -1
  210. package/7318.min.js +1 -0
  211. package/7377.min.js +1 -0
  212. package/7398.min.js +1 -0
  213. package/742.min.js +1 -0
  214. package/7449.min.js +1 -0
  215. package/7475.min.js +1 -0
  216. package/7520.min.js +1 -0
  217. package/{4038.min.js → 7554.min.js} +1 -1
  218. package/7559.min.js +1 -0
  219. package/7608.min.js +1 -0
  220. package/{9873.min.js → 7622.min.js} +2 -2
  221. package/{2380.min.js → 7636.min.js} +1 -1
  222. package/7646.min.js +1 -0
  223. package/7724.min.js +1 -0
  224. package/7812.min.js +1 -0
  225. package/787.min.js +1 -0
  226. package/{9777.min.js → 7876.min.js} +1 -1
  227. package/{3685.min.js → 7922.min.js} +1 -1
  228. package/7925.min.js +1 -0
  229. package/7937.min.js +1 -0
  230. package/7977.min.js +1 -0
  231. package/{3459.min.js → 7982.min.js} +1 -1
  232. package/8032.min.js +1 -0
  233. package/8061.min.js +1 -0
  234. package/8109.min.js +1 -0
  235. package/811.min.js +1 -0
  236. package/8214.min.js +1 -0
  237. package/8222.min.js +1 -0
  238. package/{7415.min.js → 8248.min.js} +1 -1
  239. package/8315.min.js +1 -0
  240. package/{3788.min.js → 8319.min.js} +1 -1
  241. package/8322.min.js +1 -0
  242. package/8360.min.js +1 -0
  243. package/8383.min.js +1 -0
  244. package/8386.min.js +1 -0
  245. package/84.min.js +1 -0
  246. package/8476.min.js +1 -0
  247. package/{7973.min.js → 8484.min.js} +1 -1
  248. package/8517.min.js +1 -0
  249. package/8553.min.js +1 -0
  250. package/8565.min.js +1 -0
  251. package/8589.min.js +1 -0
  252. package/{5169.min.js → 8606.min.js} +1 -1
  253. package/8620.min.js +1 -0
  254. package/{1740.min.js → 8639.min.js} +1 -1
  255. package/8684.min.js +1 -0
  256. package/8689.min.js +1 -0
  257. package/8756.min.js +1 -0
  258. package/881.min.js +1 -0
  259. package/8815.min.js +1 -0
  260. package/8819.min.js +1 -0
  261. package/8826.min.js +1 -0
  262. package/8841.min.js +1 -0
  263. package/8843.min.js +1 -0
  264. package/8902.min.js +1 -0
  265. package/{99.min.js → 8926.min.js} +2 -2
  266. package/{4099.min.js → 9082.min.js} +1 -1
  267. package/916.min.js +1 -0
  268. package/9177.min.js +1 -0
  269. package/9202.min.js +1 -0
  270. package/9279.min.js +1 -0
  271. package/9345.min.js +1 -0
  272. package/9352.min.js +1 -0
  273. package/9398.min.js +2 -0
  274. package/9544.min.js +1 -0
  275. package/9555.min.js +1 -0
  276. package/9565.min.js +1 -0
  277. package/9569.min.js +1 -0
  278. package/9578.min.js +1 -0
  279. package/9611.min.js +1 -0
  280. package/9613.min.js +1 -0
  281. package/9666.min.js +1 -0
  282. package/9739.min.js +1 -0
  283. package/{1555.min.js → 9761.min.js} +1 -1
  284. package/{5582.min.js → 9929.min.js} +1 -1
  285. package/9956.min.js +1 -0
  286. package/basic_dist_browser_index_js.js +2 -2
  287. package/browser/index.js +6 -2
  288. package/cjs/index.js +6 -2
  289. package/effects_bubble_dist_browser_BubbleDrawer_js.js +1 -1
  290. package/effects_bubble_dist_browser_index_js.js +2 -2
  291. package/effects_particles_dist_browser_ParticlesDrawer_js.js +1 -1
  292. package/effects_particles_dist_browser_index_js.js +2 -2
  293. package/effects_shadow_dist_browser_ShadowDrawer_js.js +2 -2
  294. package/effects_shadow_dist_browser_index_js.js +2 -2
  295. package/effects_trail_dist_browser_TrailDrawer_js.js +1 -1
  296. package/effects_trail_dist_browser_index_js.js +2 -2
  297. package/engine_dist_browser_Core_Container_js.js +4 -4
  298. package/esm/index.js +6 -2
  299. package/full_dist_browser_index_js.js +2 -2
  300. package/interactions_external_attract_dist_browser_Attractor_js.js +3 -3
  301. package/interactions_external_attract_dist_browser_index_js.js +2 -2
  302. package/interactions_external_bounce_dist_browser_Bouncer_js.js +2 -2
  303. package/interactions_external_bounce_dist_browser_index_js.js +2 -2
  304. package/interactions_external_bubble_dist_browser_Bubbler_js.js +2 -2
  305. package/interactions_external_bubble_dist_browser_index_js.js +2 -2
  306. package/interactions_external_connect_dist_browser_Connector_js.js +2 -2
  307. package/interactions_external_connect_dist_browser_index_js.js +2 -2
  308. package/interactions_external_grab_dist_browser_Grabber_js.js +2 -2
  309. package/interactions_external_grab_dist_browser_index_js.js +2 -2
  310. package/interactions_external_parallax_dist_browser_Parallaxer_js.js +2 -2
  311. package/interactions_external_parallax_dist_browser_index_js.js +2 -2
  312. package/interactions_external_particle_dist_browser_InteractivityParticleMaker_js.js +2 -2
  313. package/interactions_external_particle_dist_browser_index_js.js +2 -2
  314. package/interactions_external_pause_dist_browser_Pauser_js.js +2 -2
  315. package/interactions_external_pause_dist_browser_index_js.js +2 -2
  316. package/interactions_external_pop_dist_browser_Popper_js.js +2 -2
  317. package/interactions_external_pop_dist_browser_index_js.js +2 -2
  318. package/interactions_external_push_dist_browser_Pusher_js.js +2 -2
  319. package/interactions_external_push_dist_browser_index_js.js +2 -2
  320. package/interactions_external_remove_dist_browser_Remover_js.js +2 -2
  321. package/interactions_external_remove_dist_browser_index_js.js +2 -2
  322. package/interactions_external_repulse_dist_browser_Repulser_js.js +3 -3
  323. package/interactions_external_repulse_dist_browser_index_js.js +2 -2
  324. package/interactions_external_slow_dist_browser_Slower_js.js +2 -2
  325. package/interactions_external_slow_dist_browser_index_js.js +2 -2
  326. package/interactions_external_trail_dist_browser_TrailMaker_js.js +3 -3
  327. package/interactions_external_trail_dist_browser_index_js.js +2 -2
  328. package/interactions_light_dist_browser_ExternalLighter_js.js +2 -2
  329. package/interactions_light_dist_browser_ParticlesLighter_js.js +2 -2
  330. package/interactions_light_dist_browser_index_js.js +2 -2
  331. package/interactions_particles_attract_dist_browser_Attractor_js.js +13 -3
  332. package/interactions_particles_attract_dist_browser_index_js.js +2 -2
  333. package/interactions_particles_collisions_dist_browser_Collider_js.js +5 -5
  334. package/interactions_particles_collisions_dist_browser_OverlapPluginInstance_js.js +1 -1
  335. package/interactions_particles_collisions_dist_browser_OverlapPlugin_js.js +1 -1
  336. package/interactions_particles_collisions_dist_browser_index_js.js +2 -2
  337. package/interactions_particles_links_dist_browser_LinkInstance_js.js +3 -3
  338. package/interactions_particles_links_dist_browser_Linker_js.js +2 -2
  339. package/interactions_particles_links_dist_browser_LinksPlugin_js.js +1 -1
  340. package/interactions_particles_links_dist_browser_index_js.js +2 -2
  341. package/interactions_particles_repulse_dist_browser_Repulser_js.js +3 -3
  342. package/interactions_particles_repulse_dist_browser_index_js.js +2 -2
  343. package/package.json +77 -75
  344. package/paths_branches_dist_browser_BranchesPathGenerator_js.js +2 -2
  345. package/paths_branches_dist_browser_index_js.js +2 -2
  346. package/paths_brownian_dist_browser_BrownianPathGenerator_js.js +2 -2
  347. package/paths_brownian_dist_browser_index_js.js +2 -2
  348. package/paths_curlNoise_dist_browser_CurlNoiseGenerator_js.js +2 -2
  349. package/paths_curlNoise_dist_browser_index_js.js +2 -2
  350. package/paths_curves_dist_browser_CurvesPathGenerator_js.js +1 -1
  351. package/paths_curves_dist_browser_index_js.js +2 -2
  352. package/paths_fractalNoise_dist_browser_FractalNoiseGenerator_js.js +2 -2
  353. package/paths_fractalNoise_dist_browser_index_js.js +2 -2
  354. package/paths_grid_dist_browser_GridPathGenerator_js.js +2 -2
  355. package/paths_grid_dist_browser_index_js.js +2 -2
  356. package/paths_levy_dist_browser_LevyPathGenerator_js.js +2 -2
  357. package/paths_levy_dist_browser_index_js.js +2 -2
  358. package/paths_perlinNoise_dist_browser_PerlinNoiseGenerator_js.js +2 -2
  359. package/paths_perlinNoise_dist_browser_index_js.js +2 -2
  360. package/paths_polygon_dist_browser_PolygonPathGenerator_js.js +2 -2
  361. package/paths_polygon_dist_browser_index_js.js +2 -2
  362. package/paths_random_dist_browser_RandomPathGenerator_js.js +2 -2
  363. package/paths_random_dist_browser_index_js.js +2 -2
  364. package/paths_simplexNoise_dist_browser_SimplexNoiseGenerator_js.js +2 -2
  365. package/paths_simplexNoise_dist_browser_index_js.js +2 -2
  366. package/paths_spiral_dist_browser_SpiralPathGenerator_js.js +2 -2
  367. package/paths_spiral_dist_browser_index_js.js +2 -2
  368. package/paths_svg_dist_browser_SVGPathGenerator_js.js +2 -2
  369. package/paths_svg_dist_browser_index_js.js +2 -2
  370. package/paths_zigzag_dist_browser_ZigZagPathGenerator_js.js +2 -2
  371. package/paths_zigzag_dist_browser_index_js.js +2 -2
  372. package/plugins_absorbers_dist_browser_AbsorberInstance_js.js +1 -1
  373. package/plugins_absorbers_dist_browser_AbsorbersInstancesManager_js.js +1 -1
  374. package/plugins_absorbers_dist_browser_AbsorbersInteractor_js.js +2 -2
  375. package/plugins_absorbers_dist_browser_AbsorbersPluginInstance_js.js +1 -1
  376. package/plugins_absorbers_dist_browser_AbsorbersPlugin_js.js +1 -1
  377. package/plugins_absorbers_dist_browser_index_js.js +2 -2
  378. package/plugins_backgroundMask_dist_browser_BackgroundMaskPluginInstance_js.js +1 -1
  379. package/plugins_backgroundMask_dist_browser_BackgroundMaskPlugin_js.js +1 -1
  380. package/plugins_backgroundMask_dist_browser_index_js.js +2 -2
  381. package/plugins_blend_dist_browser_BlendPluginInstance_js.js +2 -2
  382. package/plugins_blend_dist_browser_BlendPlugin_js.js +1 -1
  383. package/plugins_blend_dist_browser_index_js.js +2 -2
  384. package/plugins_canvasMask_dist_browser_CanvasMaskPluginInstance_js.js +2 -2
  385. package/plugins_canvasMask_dist_browser_CanvasMaskPlugin_js.js +2 -2
  386. package/plugins_canvasMask_dist_browser_index_js.js +2 -2
  387. package/plugins_colors_hex_dist_browser_HexColorManager_js.js +1 -1
  388. package/plugins_colors_hex_dist_browser_index_js.js +2 -2
  389. package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +2 -2
  390. package/plugins_colors_hsl_dist_browser_index_js.js +2 -2
  391. package/plugins_colors_hsv_dist_browser_HsvColorManager_js.js +2 -2
  392. package/plugins_colors_hsv_dist_browser_index_js.js +2 -2
  393. package/plugins_colors_hwb_dist_browser_HwbColorManager_js.js +2 -2
  394. package/plugins_colors_hwb_dist_browser_index_js.js +2 -2
  395. package/plugins_colors_lab_dist_browser_LabColorManager_js.js +2 -2
  396. package/plugins_colors_lab_dist_browser_index_js.js +2 -2
  397. package/plugins_colors_lch_dist_browser_LchColorManager_js.js +2 -2
  398. package/plugins_colors_lch_dist_browser_index_js.js +2 -2
  399. package/plugins_colors_named_dist_browser_NamedColorManager_js.js +1 -1
  400. package/plugins_colors_named_dist_browser_index_js.js +2 -2
  401. package/plugins_colors_oklab_dist_browser_OklabColorManager_js.js +2 -2
  402. package/plugins_colors_oklab_dist_browser_index_js.js +2 -2
  403. package/plugins_colors_oklch_dist_browser_OklchColorManager_js.js +2 -2
  404. package/plugins_colors_oklch_dist_browser_index_js.js +2 -2
  405. package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +2 -2
  406. package/plugins_colors_rgb_dist_browser_index_js.js +2 -2
  407. package/plugins_easings_back_dist_browser_easingsFunctions_js.js +1 -1
  408. package/plugins_easings_back_dist_browser_index_js.js +2 -2
  409. package/plugins_easings_bounce_dist_browser_easingsFunctions_js.js +1 -1
  410. package/plugins_easings_bounce_dist_browser_index_js.js +2 -2
  411. package/plugins_easings_circ_dist_browser_easingsFunctions_js.js +1 -1
  412. package/plugins_easings_circ_dist_browser_index_js.js +2 -2
  413. package/plugins_easings_cubic_dist_browser_easingsFunctions_js.js +1 -1
  414. package/plugins_easings_cubic_dist_browser_index_js.js +2 -2
  415. package/plugins_easings_elastic_dist_browser_easingsFunctions_js.js +1 -1
  416. package/plugins_easings_elastic_dist_browser_index_js.js +2 -2
  417. package/plugins_easings_expo_dist_browser_easingsFunctions_js.js +1 -1
  418. package/plugins_easings_expo_dist_browser_index_js.js +2 -2
  419. package/plugins_easings_gaussian_dist_browser_easingsFunctions_js.js +1 -1
  420. package/plugins_easings_gaussian_dist_browser_index_js.js +2 -2
  421. package/plugins_easings_linear_dist_browser_easingsFunctions_js.js +1 -1
  422. package/plugins_easings_linear_dist_browser_index_js.js +2 -2
  423. package/plugins_easings_quad_dist_browser_easingsFunctions_js.js +1 -1
  424. package/plugins_easings_quad_dist_browser_index_js.js +2 -2
  425. package/plugins_easings_quart_dist_browser_easingsFunctions_js.js +1 -1
  426. package/plugins_easings_quart_dist_browser_index_js.js +2 -2
  427. package/plugins_easings_quint_dist_browser_easingsFunctions_js.js +1 -1
  428. package/plugins_easings_quint_dist_browser_index_js.js +2 -2
  429. package/plugins_easings_sigmoid_dist_browser_easingsFunctions_js.js +1 -1
  430. package/plugins_easings_sigmoid_dist_browser_index_js.js +2 -2
  431. package/plugins_easings_sine_dist_browser_easingsFunctions_js.js +1 -1
  432. package/plugins_easings_sine_dist_browser_index_js.js +2 -2
  433. package/plugins_easings_smoothstep_dist_browser_easingsFunctions_js.js +1 -1
  434. package/plugins_easings_smoothstep_dist_browser_index_js.js +2 -2
  435. package/plugins_emittersShapes_canvas_dist_browser_EmittersCanvasShapeGenerator_js.js +3 -3
  436. package/plugins_emittersShapes_canvas_dist_browser_index_js.js +2 -2
  437. package/plugins_emittersShapes_circle_dist_browser_EmittersCircleShapeGenerator_js.js +2 -2
  438. package/plugins_emittersShapes_circle_dist_browser_index_js.js +2 -2
  439. package/plugins_emittersShapes_path_dist_browser_EmittersPathShapeGenerator_js.js +2 -2
  440. package/plugins_emittersShapes_path_dist_browser_index_js.js +2 -2
  441. package/plugins_emittersShapes_polygon_dist_browser_EmittersPolygonShapeGenerator_js.js +2 -2
  442. package/plugins_emittersShapes_polygon_dist_browser_index_js.js +2 -2
  443. package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +2 -2
  444. package/plugins_emittersShapes_square_dist_browser_index_js.js +2 -2
  445. package/plugins_emitters_dist_browser_EmitterInstance_js.js +2 -2
  446. package/plugins_emitters_dist_browser_EmittersInstancesManager_js.js +12 -2
  447. package/plugins_emitters_dist_browser_EmittersInteractor_js.js +14 -4
  448. package/plugins_emitters_dist_browser_EmittersPluginInstance_js.js +1 -1
  449. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +12 -2
  450. package/plugins_emitters_dist_browser_ShapeManager_js.js +1 -1
  451. package/plugins_emitters_dist_browser_index_js.js +2 -2
  452. package/plugins_exports_image_dist_browser_ExportImagePluginInstance_js.js +1 -1
  453. package/plugins_exports_image_dist_browser_ExportImagePlugin_js.js +1 -1
  454. package/plugins_exports_image_dist_browser_index_js.js +2 -2
  455. package/plugins_exports_json_dist_browser_ExportJSONPluginInstance_js.js +1 -1
  456. package/plugins_exports_json_dist_browser_ExportJSONPlugin_js.js +1 -1
  457. package/plugins_exports_json_dist_browser_index_js.js +2 -2
  458. package/plugins_exports_video_dist_browser_ExportVideoPluginInstance_js.js +1 -1
  459. package/plugins_exports_video_dist_browser_ExportVideoPlugin_js.js +1 -1
  460. package/plugins_exports_video_dist_browser_index_js.js +2 -2
  461. package/plugins_infection_dist_browser_InfectionPluginInstance_js.js +1 -1
  462. package/plugins_infection_dist_browser_InfectionPlugin_js.js +1 -1
  463. package/plugins_infection_dist_browser_ParticlesInfecter_js.js +2 -2
  464. package/plugins_infection_dist_browser_index_js.js +2 -2
  465. package/plugins_interactivity_dist_browser_InteractivityPluginInstance_js.js +1 -1
  466. package/plugins_interactivity_dist_browser_InteractivityPlugin_js.js +1 -1
  467. package/plugins_interactivity_dist_browser_index_js.js +2 -2
  468. package/plugins_manualParticles_dist_browser_ManualParticlesPluginInstance_js.js +1 -1
  469. package/plugins_manualParticles_dist_browser_ManualParticlesPlugin_js.js +1 -1
  470. package/plugins_manualParticles_dist_browser_index_js.js +2 -2
  471. package/plugins_motion_dist_browser_MotionPluginInstance_js.js +1 -1
  472. package/plugins_motion_dist_browser_MotionPlugin_js.js +1 -1
  473. package/plugins_motion_dist_browser_index_js.js +2 -2
  474. package/plugins_move_dist_browser_MovePluginInstance_js.js +40 -0
  475. package/plugins_move_dist_browser_MovePlugin_js.js +30 -0
  476. package/plugins_move_dist_browser_index_js.js +30 -0
  477. package/plugins_poisson_dist_browser_PoissonDiscPluginInstance_js.js +2 -12
  478. package/plugins_poisson_dist_browser_PoissonDiscPlugin_js.js +1 -1
  479. package/plugins_poisson_dist_browser_PoissonDisc_js.js +30 -0
  480. package/plugins_poisson_dist_browser_index_js.js +2 -2
  481. package/plugins_polygonMask_dist_browser_PolygonMaskInstance_js.js +1 -1
  482. package/plugins_polygonMask_dist_browser_PolygonMaskPlugin_js.js +1 -1
  483. package/plugins_polygonMask_dist_browser_index_js.js +2 -2
  484. package/plugins_responsive_dist_browser_ResponsivePluginInstance_js.js +1 -1
  485. package/plugins_responsive_dist_browser_ResponsivePlugin_js.js +3 -3
  486. package/plugins_responsive_dist_browser_index_js.js +2 -2
  487. package/plugins_sounds_dist_browser_SoundsPluginInstance_js.js +1 -1
  488. package/plugins_sounds_dist_browser_SoundsPlugin_js.js +1 -1
  489. package/plugins_sounds_dist_browser_index_js.js +2 -2
  490. package/plugins_themes_dist_browser_ThemesPluginInstance_js.js +2 -2
  491. package/plugins_themes_dist_browser_ThemesPlugin_js.js +1 -1
  492. package/plugins_themes_dist_browser_index_js.js +2 -2
  493. package/plugins_trail_dist_browser_TrailPluginInstance_js.js +1 -1
  494. package/plugins_trail_dist_browser_TrailPlugin_js.js +1 -1
  495. package/plugins_trail_dist_browser_index_js.js +2 -2
  496. package/plugins_zoom_dist_browser_ZoomPluginInstance_js.js +1 -1
  497. package/plugins_zoom_dist_browser_ZoomPlugin_js.js +1 -1
  498. package/plugins_zoom_dist_browser_index_js.js +2 -2
  499. package/report.html +1 -1
  500. package/shapes_arrow_dist_browser_ArrowDrawer_js.js +1 -1
  501. package/shapes_arrow_dist_browser_index_js.js +2 -2
  502. package/shapes_cards_dist_browser_cards_CardDrawer_js.js +1 -1
  503. package/shapes_cards_dist_browser_clubs_ClubDrawer_js.js +1 -1
  504. package/shapes_cards_dist_browser_diamonds_DiamondDrawer_js.js +1 -1
  505. package/shapes_cards_dist_browser_hearts_HeartDrawer_js.js +1 -1
  506. package/shapes_cards_dist_browser_index_js.js +7 -7
  507. package/shapes_cards_dist_browser_paths_js.js +1 -1
  508. package/shapes_cards_dist_browser_spades_SpadeDrawer_js.js +1 -1
  509. package/shapes_circle_dist_browser_CircleDrawer_js.js +1 -1
  510. package/shapes_circle_dist_browser_index_js.js +2 -2
  511. package/shapes_cog_dist_browser_CogDrawer_js.js +1 -1
  512. package/shapes_cog_dist_browser_index_js.js +2 -2
  513. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +1 -1
  514. package/shapes_emoji_dist_browser_index_js.js +2 -2
  515. package/shapes_heart_dist_browser_HeartDrawer_js.js +1 -1
  516. package/shapes_heart_dist_browser_index_js.js +2 -2
  517. package/shapes_image_dist_browser_GifUtils_Utils_js.js +3 -3
  518. package/shapes_image_dist_browser_ImageDrawer_js.js +2 -2
  519. package/shapes_image_dist_browser_ImagePreloaderInstance_js.js +1 -1
  520. package/shapes_image_dist_browser_ImagePreloader_js.js +1 -1
  521. package/shapes_image_dist_browser_index_js.js +2 -2
  522. package/shapes_infinity_dist_browser_InfinityDrawer_js.js +1 -1
  523. package/shapes_infinity_dist_browser_index_js.js +2 -2
  524. package/shapes_line_dist_browser_LineDrawer_js.js +1 -1
  525. package/shapes_line_dist_browser_index_js.js +2 -2
  526. package/shapes_matrix_dist_browser_MatrixDrawer_js.js +40 -0
  527. package/{move_base_dist_browser_index_js.js → shapes_matrix_dist_browser_index_js.js} +7 -7
  528. package/shapes_path_dist_browser_PathDrawer_js.js +1 -1
  529. package/shapes_path_dist_browser_index_js.js +2 -2
  530. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +1 -1
  531. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +1 -1
  532. package/shapes_polygon_dist_browser_index_js.js +2 -2
  533. package/shapes_rounded-polygon_dist_browser_RoundedPolygonDrawer_js.js +1 -1
  534. package/shapes_rounded-polygon_dist_browser_index_js.js +2 -2
  535. package/shapes_rounded-rect_dist_browser_RoundedRectDrawer_js.js +1 -1
  536. package/shapes_rounded-rect_dist_browser_index_js.js +2 -2
  537. package/shapes_spiral_dist_browser_SpiralDrawer_js.js +1 -1
  538. package/shapes_spiral_dist_browser_index_js.js +2 -2
  539. package/shapes_square_dist_browser_SquareDrawer_js.js +1 -1
  540. package/shapes_square_dist_browser_index_js.js +2 -2
  541. package/shapes_squircle_dist_browser_SquircleDrawer_js.js +40 -0
  542. package/{updaters_color_dist_browser_index_js.js → shapes_squircle_dist_browser_index_js.js} +7 -7
  543. package/shapes_star_dist_browser_StarDrawer_js.js +1 -1
  544. package/shapes_star_dist_browser_index_js.js +2 -2
  545. package/shapes_text_dist_browser_TextDrawer_js.js +1 -1
  546. package/shapes_text_dist_browser_index_js.js +2 -2
  547. package/slim_dist_browser_index_js.js +2 -2
  548. package/tsparticles.all.bundle.js +36 -36
  549. package/tsparticles.all.bundle.min.js +2 -2
  550. package/tsparticles.all.js +32 -12
  551. package/tsparticles.all.min.js +1 -1
  552. package/umd/index.js +13 -9
  553. package/updaters_destroy_dist_browser_DestroyUpdater_js.js +4 -4
  554. package/updaters_destroy_dist_browser_index_js.js +2 -2
  555. package/updaters_fillColor_dist_browser_FillColorUpdater_js.js +30 -0
  556. package/updaters_fillColor_dist_browser_index_js.js +30 -0
  557. package/updaters_gradient_dist_browser_GradientUpdater_js.js +1 -1
  558. package/updaters_gradient_dist_browser_index_js.js +2 -2
  559. package/updaters_life_dist_browser_LifeUpdater_js.js +1 -1
  560. package/updaters_life_dist_browser_index_js.js +2 -2
  561. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +1 -1
  562. package/updaters_opacity_dist_browser_index_js.js +2 -2
  563. package/updaters_orbit_dist_browser_OrbitUpdater_js.js +1 -1
  564. package/updaters_orbit_dist_browser_index_js.js +2 -2
  565. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +4 -4
  566. package/updaters_outModes_dist_browser_index_js.js +2 -2
  567. package/updaters_roll_dist_browser_RollUpdater_js.js +1 -1
  568. package/updaters_roll_dist_browser_index_js.js +2 -2
  569. package/updaters_rotate_dist_browser_RotateUpdater_js.js +1 -1
  570. package/updaters_rotate_dist_browser_index_js.js +2 -2
  571. package/updaters_size_dist_browser_SizeUpdater_js.js +1 -1
  572. package/updaters_size_dist_browser_index_js.js +2 -2
  573. package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +1 -1
  574. package/updaters_strokeColor_dist_browser_index_js.js +2 -2
  575. package/updaters_tilt_dist_browser_TiltUpdater_js.js +1 -1
  576. package/updaters_tilt_dist_browser_index_js.js +2 -2
  577. package/updaters_twinkle_dist_browser_TwinkleUpdater_js.js +18 -8
  578. package/updaters_twinkle_dist_browser_index_js.js +2 -2
  579. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +2 -2
  580. package/updaters_wobble_dist_browser_index_js.js +2 -2
  581. package/utils_simplexNoise_dist_browser_index_js.js +1 -1
  582. package/1028.min.js +0 -1
  583. package/1031.min.js +0 -1
  584. package/1124.min.js +0 -1
  585. package/1165.min.js +0 -1
  586. package/1167.min.js +0 -1
  587. package/12.min.js +0 -1
  588. package/125.min.js +0 -1
  589. package/1256.min.js +0 -1
  590. package/1295.min.js +0 -1
  591. package/1340.min.js +0 -1
  592. package/1357.min.js +0 -1
  593. package/1363.min.js +0 -1
  594. package/1366.min.js +0 -1
  595. package/1435.min.js +0 -1
  596. package/1446.min.js +0 -1
  597. package/1515.min.js +0 -1
  598. package/1523.min.js +0 -1
  599. package/1574.min.js +0 -1
  600. package/1599.min.js +0 -1
  601. package/1650.min.js +0 -1
  602. package/1681.min.js +0 -1
  603. package/1724.min.js +0 -1
  604. package/1798.min.js +0 -1
  605. package/1816.min.js +0 -1
  606. package/182.min.js +0 -1
  607. package/1825.min.js +0 -1
  608. package/1884.min.js +0 -1
  609. package/1959.min.js +0 -1
  610. package/2068.min.js +0 -1
  611. package/2274.min.js +0 -1
  612. package/2401.min.js +0 -1
  613. package/2481.min.js +0 -1
  614. package/2521.min.js +0 -1
  615. package/2563.min.js +0 -1
  616. package/261.min.js +0 -1
  617. package/2650.min.js +0 -1
  618. package/269.min.js +0 -1
  619. package/2690.min.js +0 -1
  620. package/2696.min.js +0 -1
  621. package/2748.min.js +0 -1
  622. package/2772.min.js +0 -1
  623. package/2805.min.js +0 -1
  624. package/2810.min.js +0 -1
  625. package/284.min.js +0 -1
  626. package/2880.min.js +0 -1
  627. package/2981.min.js +0 -1
  628. package/3006.min.js +0 -1
  629. package/3023.min.js +0 -1
  630. package/3041.min.js +0 -1
  631. package/3067.min.js +0 -1
  632. package/310.min.js +0 -1
  633. package/3122.min.js +0 -1
  634. package/3148.min.js +0 -1
  635. package/3205.min.js +0 -1
  636. package/3258.min.js +0 -1
  637. package/3306.min.js +0 -1
  638. package/3346.min.js +0 -1
  639. package/3415.min.js +0 -1
  640. package/3486.min.js +0 -1
  641. package/3499.min.js +0 -1
  642. package/3517.min.js +0 -1
  643. package/3546.min.js +0 -1
  644. package/3575.min.js +0 -1
  645. package/3610.min.js +0 -1
  646. package/3616.min.js +0 -1
  647. package/362.min.js +0 -1
  648. package/3626.min.js +0 -1
  649. package/3647.min.js +0 -1
  650. package/374.min.js +0 -1
  651. package/3822.min.js +0 -1
  652. package/3891.min.js +0 -1
  653. package/3904.min.js +0 -1
  654. package/3951.min.js +0 -1
  655. package/3996.min.js +0 -1
  656. package/4013.min.js +0 -1
  657. package/4014.min.js +0 -1
  658. package/4021.min.js +0 -1
  659. package/4184.min.js +0 -1
  660. package/4198.min.js +0 -1
  661. package/4233.min.js +0 -1
  662. package/4272.min.js +0 -1
  663. package/4344.min.js +0 -1
  664. package/4369.min.js +0 -1
  665. package/4404.min.js +0 -1
  666. package/4432.min.js +0 -1
  667. package/4508.min.js +0 -1
  668. package/452.min.js +0 -1
  669. package/455.min.js +0 -1
  670. package/4551.min.js +0 -1
  671. package/4590.min.js +0 -1
  672. package/4659.min.js +0 -1
  673. package/4777.min.js +0 -1
  674. package/4779.min.js +0 -1
  675. package/4815.min.js +0 -1
  676. package/4818.min.js +0 -1
  677. package/4990.min.js +0 -1
  678. package/5061.min.js +0 -1
  679. package/5134.min.js +0 -1
  680. package/5174.min.js +0 -1
  681. package/5208.min.js +0 -1
  682. package/5223.min.js +0 -1
  683. package/5253.min.js +0 -1
  684. package/5287.min.js +0 -1
  685. package/5288.min.js +0 -1
  686. package/5293.min.js +0 -1
  687. package/538.min.js +0 -1
  688. package/5395.min.js +0 -1
  689. package/5434.min.js +0 -1
  690. package/5614.min.js +0 -1
  691. package/5742.min.js +0 -1
  692. package/5752.min.js +0 -1
  693. package/5809.min.js +0 -1
  694. package/5818.min.js +0 -1
  695. package/584.min.js +0 -1
  696. package/5894.min.js +0 -1
  697. package/5897.min.js +0 -1
  698. package/592.min.js +0 -1
  699. package/5924.min.js +0 -1
  700. package/600.min.js +0 -1
  701. package/6015.min.js +0 -1
  702. package/6073.min.js +0 -1
  703. package/6094.min.js +0 -1
  704. package/6097.min.js +0 -1
  705. package/6151.min.js +0 -1
  706. package/6178.min.js +0 -1
  707. package/6251.min.js +0 -1
  708. package/6275.min.js +0 -1
  709. package/6298.min.js +0 -1
  710. package/6310.min.js +0 -1
  711. package/6397.min.js +0 -1
  712. package/6472.min.js +0 -1
  713. package/658.min.js +0 -1
  714. package/6588.min.js +0 -1
  715. package/6604.min.js +0 -1
  716. package/679.min.js +0 -1
  717. package/6801.min.js +0 -1
  718. package/6837.min.js +0 -1
  719. package/6893.min.js +0 -1
  720. package/6916.min.js +0 -1
  721. package/7011.min.js +0 -1
  722. package/7029.min.js +0 -1
  723. package/7046.min.js +0 -1
  724. package/7128.min.js +0 -1
  725. package/7136.min.js +0 -1
  726. package/7180.min.js +0 -1
  727. package/7193.min.js +0 -1
  728. package/7283.min.js +0 -1
  729. package/7344.min.js +0 -1
  730. package/7366.min.js +0 -1
  731. package/7390.min.js +0 -1
  732. package/7485.min.js +0 -1
  733. package/7516.min.js +0 -1
  734. package/7536.min.js +0 -1
  735. package/7778.min.js +0 -1
  736. package/7790.min.js +0 -1
  737. package/7803.min.js +0 -1
  738. package/782.min.js +0 -1
  739. package/7828.min.js +0 -1
  740. package/7843.min.js +0 -1
  741. package/7881.min.js +0 -1
  742. package/80.min.js +0 -1
  743. package/8038.min.js +0 -1
  744. package/8071.min.js +0 -1
  745. package/8097.min.js +0 -1
  746. package/8117.min.js +0 -1
  747. package/8135.min.js +0 -1
  748. package/8154.min.js +0 -1
  749. package/8182.min.js +0 -1
  750. package/8204.min.js +0 -1
  751. package/8208.min.js +0 -1
  752. package/821.min.js +0 -2
  753. package/8300.min.js +0 -1
  754. package/8335.min.js +0 -1
  755. package/8353.min.js +0 -1
  756. package/8370.min.js +0 -1
  757. package/8403.min.js +0 -1
  758. package/8425.min.js +0 -1
  759. package/8426.min.js +0 -1
  760. package/8529.min.js +0 -1
  761. package/8538.min.js +0 -1
  762. package/8677.min.js +0 -1
  763. package/8804.min.js +0 -1
  764. package/882.min.js +0 -1
  765. package/8833.min.js +0 -1
  766. package/8840.min.js +0 -1
  767. package/8857.min.js +0 -1
  768. package/9006.min.js +0 -1
  769. package/909.min.js +0 -1
  770. package/9150.min.js +0 -1
  771. package/9171.min.js +0 -1
  772. package/92.min.js +0 -1
  773. package/9225.min.js +0 -1
  774. package/9259.min.js +0 -1
  775. package/9336.min.js +0 -1
  776. package/9405.min.js +0 -1
  777. package/9436.min.js +0 -1
  778. package/9494.min.js +0 -1
  779. package/9522.min.js +0 -1
  780. package/9531.min.js +0 -1
  781. package/9537.min.js +0 -1
  782. package/9560.min.js +0 -1
  783. package/9653.min.js +0 -1
  784. package/9731.min.js +0 -1
  785. package/9733.min.js +0 -1
  786. package/9745.min.js +0 -1
  787. package/9757.min.js +0 -1
  788. package/9769.min.js +0 -1
  789. package/9775.min.js +0 -1
  790. package/9792.min.js +0 -1
  791. package/9822.min.js +0 -1
  792. package/9825.min.js +0 -1
  793. package/9935.min.js +0 -1
  794. package/move_base_dist_browser_BaseMover_js.js +0 -40
  795. package/updaters_color_dist_browser_ColorUpdater_js.js +0 -30
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -33,7 +33,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
33
33
  \*********************************************************************/
34
34
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
35
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Repulser: () => (/* binding */ Repulser)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/plugin-interactivity */ \"../../plugins/interactivity/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_ParticlesRepulse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/ParticlesRepulse.js */ \"../../interactions/particles/repulse/dist/browser/Options/Classes/ParticlesRepulse.js\");\n\n\n\nconst minDistance = 0, identity = 1, squareExp = 2, minVelocity = 0;\nclass Repulser extends _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__.ParticlesInteractorBase {\n _maxDistance;\n constructor(container){\n super(container);\n this._maxDistance = 0;\n }\n get maxDistance() {\n return this._maxDistance;\n }\n clear() {}\n init() {}\n interact(p1) {\n const container = this.container;\n if (!p1.repulse) {\n const repulseOpt1 = p1.options.repulse;\n if (!repulseOpt1) {\n return;\n }\n const repulseDistance = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(repulseOpt1.distance);\n if (repulseDistance > this.maxDistance) {\n this._maxDistance = repulseDistance;\n }\n p1.repulse = {\n distance: repulseDistance * container.retina.pixelRatio,\n speed: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(repulseOpt1.speed),\n factor: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(repulseOpt1.factor)\n };\n }\n const pos1 = p1.getPosition(), query = container.particles.grid.queryCircle(pos1, p1.repulse.distance);\n for (const p2 of query){\n if (p1 === p2 || p2.destroyed) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy, distance } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistances)(pos2, pos1), velocity = p1.repulse.speed * p1.repulse.factor;\n if (distance > minDistance) {\n const repulseFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.clamp)((identity - Math.pow(distance / p1.repulse.distance, squareExp)) * velocity, minVelocity, velocity), normVec = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.Vector.create(dx / distance * repulseFactor, dy / distance * repulseFactor);\n p2.position.addTo(normVec);\n } else {\n const velocityVec = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.Vector.create(velocity, velocity);\n p2.position.addTo(velocityVec);\n }\n }\n }\n isEnabled(particle) {\n return particle.options.repulse?.enabled ?? false;\n }\n loadParticlesOptions(options, ...sources) {\n options.repulse ??= new _Options_Classes_ParticlesRepulse_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesRepulse();\n for (const source of sources){\n options.repulse.load(source?.repulse);\n }\n }\n reset() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../interactions/particles/repulse/dist/browser/Repulser.js?\n}");
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Repulser: () => (/* binding */ Repulser)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/plugin-interactivity */ \"../../plugins/interactivity/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_ParticlesRepulse_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/ParticlesRepulse.js */ \"../../interactions/particles/repulse/dist/browser/Options/Classes/ParticlesRepulse.js\");\n\n\n\nconst minDistance = 0, identity = 1, squareExp = 2, minVelocity = 0;\nclass Repulser extends _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__.ParticlesInteractorBase {\n _maxDistance;\n _normVec;\n _velocityVec;\n constructor(container){\n super(container);\n this._maxDistance = 0;\n this._normVec = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.Vector.origin;\n this._velocityVec = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.Vector.origin;\n }\n get maxDistance() {\n return this._maxDistance;\n }\n clear() {}\n init() {}\n interact(p1) {\n const container = this.container;\n if (!p1.repulse) {\n const repulseOpt1 = p1.options.repulse;\n if (!repulseOpt1) {\n return;\n }\n const repulseDistance = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(repulseOpt1.distance);\n if (repulseDistance > this.maxDistance) {\n this._maxDistance = repulseDistance;\n }\n p1.repulse = {\n distance: repulseDistance * container.retina.pixelRatio,\n speed: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(repulseOpt1.speed),\n factor: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getRangeValue)(repulseOpt1.factor)\n };\n }\n const pos1 = p1.getPosition(), query = container.particles.grid.queryCircle(pos1, p1.repulse.distance), p1DistanceFactor = identity / p1.repulse.distance;\n for (const p2 of query){\n if (p1 === p2 || p2.destroyed) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy, distance } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistances)(pos2, pos1), distanceFactor = identity / distance, velocity = p1.repulse.speed * p1.repulse.factor;\n if (distance > minDistance) {\n const repulseFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.clamp)((identity - Math.pow(distance * p1DistanceFactor, squareExp)) * velocity, minVelocity, velocity) * distanceFactor;\n this._normVec.x = dx * repulseFactor;\n this._normVec.y = dy * repulseFactor;\n p2.position.addTo(this._normVec);\n } else {\n this._velocityVec.x = velocity;\n this._velocityVec.y = velocity;\n p2.position.addTo(this._velocityVec);\n }\n }\n }\n isEnabled(particle) {\n return particle.options.repulse?.enabled ?? false;\n }\n loadParticlesOptions(options, ...sources) {\n options.repulse ??= new _Options_Classes_ParticlesRepulse_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesRepulse();\n for (const source of sources){\n options.repulse.load(source?.repulse);\n }\n }\n reset() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../interactions/particles/repulse/dist/browser/Repulser.js?\n}");
37
37
 
38
38
  /***/ },
39
39
 
@@ -123,7 +123,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
123
123
  \*********************************************************/
124
124
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
125
125
 
126
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DivEvent: () => (/* reexport safe */ _Options_Classes_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_8__.DivEvent),\n/* harmony export */ DivType: () => (/* reexport safe */ _Enums_DivType_js__WEBPACK_IMPORTED_MODULE_4__.DivType),\n/* harmony export */ ExternalInteractorBase: () => (/* reexport safe */ _BaseClasses_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_1__.ExternalInteractorBase),\n/* harmony export */ InteractivityDetect: () => (/* reexport safe */ _Enums_InteractivityDetect_js__WEBPACK_IMPORTED_MODULE_5__.InteractivityDetect),\n/* harmony export */ InteractorType: () => (/* reexport safe */ _Enums_InteractorType_js__WEBPACK_IMPORTED_MODULE_6__.InteractorType),\n/* harmony export */ Modes: () => (/* reexport safe */ _Options_Classes_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_9__.Modes),\n/* harmony export */ ParticlesInteractorBase: () => (/* reexport safe */ _BaseClasses_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesInteractorBase),\n/* harmony export */ clickEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.clickEvent),\n/* harmony export */ divMode: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.divMode),\n/* harmony export */ divModeExecute: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.divModeExecute),\n/* harmony export */ ensureInteractivityPluginLoaded: () => (/* binding */ ensureInteractivityPluginLoaded),\n/* harmony export */ isDivModeEnabled: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.isDivModeEnabled),\n/* harmony export */ loadInteractivityPlugin: () => (/* binding */ loadInteractivityPlugin),\n/* harmony export */ mouseDownEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseUpEvent),\n/* harmony export */ singleDivModeExecute: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.singleDivModeExecute),\n/* harmony export */ touchCancelEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchStartEvent)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _BaseClasses_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseClasses/ExternalInteractorBase.js */ \"../../plugins/interactivity/dist/browser/BaseClasses/ExternalInteractorBase.js\");\n/* harmony import */ var _BaseClasses_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BaseClasses/ParticlesInteractorBase.js */ \"../../plugins/interactivity/dist/browser/BaseClasses/ParticlesInteractorBase.js\");\n/* harmony import */ var _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./InteractivityConstants.js */ \"../../plugins/interactivity/dist/browser/InteractivityConstants.js\");\n/* harmony import */ var _Enums_DivType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Enums/DivType.js */ \"../../plugins/interactivity/dist/browser/Enums/DivType.js\");\n/* harmony import */ var _Enums_InteractivityDetect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Enums/InteractivityDetect.js */ \"../../plugins/interactivity/dist/browser/Enums/InteractivityDetect.js\");\n/* harmony import */ var _Enums_InteractorType_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Enums/InteractorType.js */ \"../../plugins/interactivity/dist/browser/Enums/InteractorType.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils.js */ \"../../plugins/interactivity/dist/browser/utils.js\");\n/* harmony import */ var _Options_Classes_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Options/Classes/Events/DivEvent.js */ \"../../plugins/interactivity/dist/browser/Options/Classes/Events/DivEvent.js\");\n/* harmony import */ var _Options_Classes_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Options/Classes/Modes/Modes.js */ \"../../plugins/interactivity/dist/browser/Options/Classes/Modes/Modes.js\");\n\nasync function loadInteractivityPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.25\");\n await engine.register(async (e)=>{\n const interactivityEngine = e, { InteractivityPlugin } = await __webpack_require__.e(/*! import() */ \"plugins_interactivity_dist_browser_InteractivityPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./InteractivityPlugin.js */ \"../../plugins/interactivity/dist/browser/InteractivityPlugin.js\"));\n interactivityEngine.addPlugin(new InteractivityPlugin(interactivityEngine));\n interactivityEngine.initializers.interactors ??= new Map();\n interactivityEngine.interactors ??= new Map();\n interactivityEngine.addInteractor = (name, interactorInitializer)=>{\n interactivityEngine.initializers.interactors ??= new Map();\n interactivityEngine.initializers.interactors.set(name, interactorInitializer);\n };\n interactivityEngine.getInteractors = async (container, force = false)=>{\n interactivityEngine.interactors ??= new Map();\n interactivityEngine.initializers.interactors ??= new Map();\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getItemsFromInitializer)(container, interactivityEngine.interactors, interactivityEngine.initializers.interactors, force);\n };\n interactivityEngine.setOnClickHandler = (callback)=>{\n const { items } = interactivityEngine;\n if (!items.length) {\n throw new Error(\"Click handlers can only be set after calling tsParticles.load()\");\n }\n items.forEach((item)=>{\n const interactivityContainer = item;\n interactivityContainer.addClickHandler?.(callback);\n });\n };\n });\n}\nfunction ensureInteractivityPluginLoaded(e) {\n if (!e.addInteractor) {\n throw new Error(\"tsParticles Interactivity Plugin is not loaded\");\n }\n}\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/interactivity/dist/browser/index.js?\n}");
126
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DivEvent: () => (/* reexport safe */ _Options_Classes_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_8__.DivEvent),\n/* harmony export */ DivType: () => (/* reexport safe */ _Enums_DivType_js__WEBPACK_IMPORTED_MODULE_4__.DivType),\n/* harmony export */ ExternalInteractorBase: () => (/* reexport safe */ _BaseClasses_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_1__.ExternalInteractorBase),\n/* harmony export */ InteractivityDetect: () => (/* reexport safe */ _Enums_InteractivityDetect_js__WEBPACK_IMPORTED_MODULE_5__.InteractivityDetect),\n/* harmony export */ InteractorType: () => (/* reexport safe */ _Enums_InteractorType_js__WEBPACK_IMPORTED_MODULE_6__.InteractorType),\n/* harmony export */ Modes: () => (/* reexport safe */ _Options_Classes_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_9__.Modes),\n/* harmony export */ ParticlesInteractorBase: () => (/* reexport safe */ _BaseClasses_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__.ParticlesInteractorBase),\n/* harmony export */ clickEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.clickEvent),\n/* harmony export */ divMode: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.divMode),\n/* harmony export */ divModeExecute: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.divModeExecute),\n/* harmony export */ ensureInteractivityPluginLoaded: () => (/* binding */ ensureInteractivityPluginLoaded),\n/* harmony export */ isDivModeEnabled: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.isDivModeEnabled),\n/* harmony export */ loadInteractivityPlugin: () => (/* binding */ loadInteractivityPlugin),\n/* harmony export */ mouseDownEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseUpEvent),\n/* harmony export */ singleDivModeExecute: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.singleDivModeExecute),\n/* harmony export */ touchCancelEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchStartEvent)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _BaseClasses_ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./BaseClasses/ExternalInteractorBase.js */ \"../../plugins/interactivity/dist/browser/BaseClasses/ExternalInteractorBase.js\");\n/* harmony import */ var _BaseClasses_ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./BaseClasses/ParticlesInteractorBase.js */ \"../../plugins/interactivity/dist/browser/BaseClasses/ParticlesInteractorBase.js\");\n/* harmony import */ var _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./InteractivityConstants.js */ \"../../plugins/interactivity/dist/browser/InteractivityConstants.js\");\n/* harmony import */ var _Enums_DivType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Enums/DivType.js */ \"../../plugins/interactivity/dist/browser/Enums/DivType.js\");\n/* harmony import */ var _Enums_InteractivityDetect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Enums/InteractivityDetect.js */ \"../../plugins/interactivity/dist/browser/Enums/InteractivityDetect.js\");\n/* harmony import */ var _Enums_InteractorType_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Enums/InteractorType.js */ \"../../plugins/interactivity/dist/browser/Enums/InteractorType.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils.js */ \"../../plugins/interactivity/dist/browser/utils.js\");\n/* harmony import */ var _Options_Classes_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Options/Classes/Events/DivEvent.js */ \"../../plugins/interactivity/dist/browser/Options/Classes/Events/DivEvent.js\");\n/* harmony import */ var _Options_Classes_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Options/Classes/Modes/Modes.js */ \"../../plugins/interactivity/dist/browser/Options/Classes/Modes/Modes.js\");\n\nasync function loadInteractivityPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.27\");\n await engine.register(async (e)=>{\n const interactivityEngine = e, { InteractivityPlugin } = await __webpack_require__.e(/*! import() */ \"plugins_interactivity_dist_browser_InteractivityPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./InteractivityPlugin.js */ \"../../plugins/interactivity/dist/browser/InteractivityPlugin.js\"));\n interactivityEngine.addPlugin(new InteractivityPlugin(interactivityEngine));\n interactivityEngine.initializers.interactors ??= new Map();\n interactivityEngine.interactors ??= new Map();\n interactivityEngine.addInteractor = (name, interactorInitializer)=>{\n interactivityEngine.initializers.interactors ??= new Map();\n interactivityEngine.initializers.interactors.set(name, interactorInitializer);\n };\n interactivityEngine.getInteractors = async (container, force = false)=>{\n interactivityEngine.interactors ??= new Map();\n interactivityEngine.initializers.interactors ??= new Map();\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getItemsFromInitializer)(container, interactivityEngine.interactors, interactivityEngine.initializers.interactors, force);\n };\n interactivityEngine.setOnClickHandler = (callback)=>{\n const { items } = interactivityEngine;\n if (!items.length) {\n throw new Error(\"Click handlers can only be set after calling tsParticles.load()\");\n }\n items.forEach((item)=>{\n const interactivityContainer = item;\n interactivityContainer.addClickHandler?.(callback);\n });\n };\n });\n}\nfunction ensureInteractivityPluginLoaded(e) {\n if (!e.addInteractor) {\n throw new Error(\"tsParticles Interactivity Plugin is not loaded\");\n }\n}\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/interactivity/dist/browser/index.js?\n}");
127
127
 
128
128
  /***/ },
129
129
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \******************************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadParticlesRepulseInteraction: () => (/* binding */ loadParticlesRepulseInteraction)\n/* harmony export */ });\nasync function loadParticlesRepulseInteraction(engine) {\n engine.checkVersion(\"4.0.0-alpha.25\");\n await engine.register(async (e)=>{\n const { ensureInteractivityPluginLoaded } = await __webpack_require__.e(/*! import() */ \"plugins_interactivity_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"../../plugins/interactivity/dist/browser/index.js\"));\n ensureInteractivityPluginLoaded(e);\n e.addInteractor?.(\"particlesRepulse\", async (container)=>{\n const { Repulser } = await __webpack_require__.e(/*! import() */ \"interactions_particles_repulse_dist_browser_Repulser_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Repulser.js */ \"../../interactions/particles/repulse/dist/browser/Repulser.js\"));\n return new Repulser(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../interactions/particles/repulse/dist/browser/index.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadParticlesRepulseInteraction: () => (/* binding */ loadParticlesRepulseInteraction)\n/* harmony export */ });\nasync function loadParticlesRepulseInteraction(engine) {\n engine.checkVersion(\"4.0.0-alpha.27\");\n await engine.register(async (e)=>{\n const { ensureInteractivityPluginLoaded } = await __webpack_require__.e(/*! import() */ \"plugins_interactivity_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"../../plugins/interactivity/dist/browser/index.js\"));\n ensureInteractivityPluginLoaded(e);\n e.addInteractor?.(\"particlesRepulse\", async (container)=>{\n const { Repulser } = await __webpack_require__.e(/*! import() */ \"interactions_particles_repulse_dist_browser_Repulser_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Repulser.js */ \"../../interactions/particles/repulse/dist/browser/Repulser.js\"));\n return new Repulser(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../interactions/particles/repulse/dist/browser/index.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/all",
3
- "version": "4.0.0-alpha.25",
3
+ "version": "4.0.0-alpha.27",
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": {
@@ -99,80 +99,82 @@
99
99
  "./package.json": "./package.json"
100
100
  },
101
101
  "dependencies": {
102
- "@tsparticles/effect-bubble": "4.0.0-alpha.25",
103
- "@tsparticles/effect-particles": "4.0.0-alpha.25",
104
- "@tsparticles/effect-shadow": "4.0.0-alpha.25",
105
- "@tsparticles/effect-trail": "4.0.0-alpha.25",
106
- "@tsparticles/engine": "4.0.0-alpha.25",
107
- "@tsparticles/interaction-external-particle": "4.0.0-alpha.25",
108
- "@tsparticles/interaction-external-pop": "4.0.0-alpha.25",
109
- "@tsparticles/interaction-light": "4.0.0-alpha.25",
110
- "@tsparticles/interaction-particles-repulse": "4.0.0-alpha.25",
111
- "@tsparticles/path-branches": "4.0.0-alpha.25",
112
- "@tsparticles/path-brownian": "4.0.0-alpha.25",
113
- "@tsparticles/path-curl-noise": "4.0.0-alpha.25",
114
- "@tsparticles/path-curves": "4.0.0-alpha.25",
115
- "@tsparticles/path-fractal-noise": "4.0.0-alpha.25",
116
- "@tsparticles/path-grid": "4.0.0-alpha.25",
117
- "@tsparticles/path-levy": "4.0.0-alpha.25",
118
- "@tsparticles/path-perlin-noise": "4.0.0-alpha.25",
119
- "@tsparticles/path-polygon": "4.0.0-alpha.25",
120
- "@tsparticles/path-random": "4.0.0-alpha.25",
121
- "@tsparticles/path-simplex-noise": "4.0.0-alpha.25",
122
- "@tsparticles/path-spiral": "4.0.0-alpha.25",
123
- "@tsparticles/path-svg": "4.0.0-alpha.25",
124
- "@tsparticles/path-zig-zag": "4.0.0-alpha.25",
125
- "@tsparticles/plugin-background-mask": "4.0.0-alpha.25",
126
- "@tsparticles/plugin-blend": "4.0.0-alpha.25",
127
- "@tsparticles/plugin-canvas-mask": "4.0.0-alpha.25",
128
- "@tsparticles/plugin-easing-back": "4.0.0-alpha.25",
129
- "@tsparticles/plugin-easing-bounce": "4.0.0-alpha.25",
130
- "@tsparticles/plugin-easing-circ": "4.0.0-alpha.25",
131
- "@tsparticles/plugin-easing-cubic": "4.0.0-alpha.25",
132
- "@tsparticles/plugin-easing-elastic": "4.0.0-alpha.25",
133
- "@tsparticles/plugin-easing-expo": "4.0.0-alpha.25",
134
- "@tsparticles/plugin-easing-gaussian": "4.0.0-alpha.25",
135
- "@tsparticles/plugin-easing-linear": "4.0.0-alpha.25",
136
- "@tsparticles/plugin-easing-quart": "4.0.0-alpha.25",
137
- "@tsparticles/plugin-easing-quint": "4.0.0-alpha.25",
138
- "@tsparticles/plugin-easing-sigmoid": "4.0.0-alpha.25",
139
- "@tsparticles/plugin-easing-sine": "4.0.0-alpha.25",
140
- "@tsparticles/plugin-easing-smoothstep": "4.0.0-alpha.25",
141
- "@tsparticles/plugin-emitters-shape-canvas": "4.0.0-alpha.25",
142
- "@tsparticles/plugin-emitters-shape-path": "4.0.0-alpha.25",
143
- "@tsparticles/plugin-emitters-shape-polygon": "4.0.0-alpha.25",
144
- "@tsparticles/plugin-export-image": "4.0.0-alpha.25",
145
- "@tsparticles/plugin-export-json": "4.0.0-alpha.25",
146
- "@tsparticles/plugin-export-video": "4.0.0-alpha.25",
147
- "@tsparticles/plugin-hsv-color": "4.0.0-alpha.25",
148
- "@tsparticles/plugin-hwb-color": "4.0.0-alpha.25",
149
- "@tsparticles/plugin-infection": "4.0.0-alpha.25",
150
- "@tsparticles/plugin-lab-color": "4.0.0-alpha.25",
151
- "@tsparticles/plugin-lch-color": "4.0.0-alpha.25",
152
- "@tsparticles/plugin-manual-particles": "4.0.0-alpha.25",
153
- "@tsparticles/plugin-motion": "4.0.0-alpha.25",
154
- "@tsparticles/plugin-named-color": "4.0.0-alpha.25",
155
- "@tsparticles/plugin-oklab-color": "4.0.0-alpha.25",
156
- "@tsparticles/plugin-oklch-color": "4.0.0-alpha.25",
157
- "@tsparticles/plugin-poisson-disc": "4.0.0-alpha.25",
158
- "@tsparticles/plugin-polygon-mask": "4.0.0-alpha.25",
159
- "@tsparticles/plugin-responsive": "4.0.0-alpha.25",
160
- "@tsparticles/plugin-sounds": "4.0.0-alpha.25",
161
- "@tsparticles/plugin-themes": "4.0.0-alpha.25",
162
- "@tsparticles/plugin-trail": "4.0.0-alpha.25",
163
- "@tsparticles/plugin-zoom": "4.0.0-alpha.25",
164
- "@tsparticles/shape-arrow": "4.0.0-alpha.25",
165
- "@tsparticles/shape-cards": "4.0.0-alpha.25",
166
- "@tsparticles/shape-cog": "4.0.0-alpha.25",
167
- "@tsparticles/shape-heart": "4.0.0-alpha.25",
168
- "@tsparticles/shape-infinity": "4.0.0-alpha.25",
169
- "@tsparticles/shape-path": "4.0.0-alpha.25",
170
- "@tsparticles/shape-rounded-polygon": "4.0.0-alpha.25",
171
- "@tsparticles/shape-rounded-rect": "4.0.0-alpha.25",
172
- "@tsparticles/shape-spiral": "4.0.0-alpha.25",
173
- "@tsparticles/updater-gradient": "4.0.0-alpha.25",
174
- "@tsparticles/updater-orbit": "4.0.0-alpha.25",
175
- "tsparticles": "4.0.0-alpha.25"
102
+ "@tsparticles/effect-bubble": "4.0.0-alpha.27",
103
+ "@tsparticles/effect-particles": "4.0.0-alpha.27",
104
+ "@tsparticles/effect-shadow": "4.0.0-alpha.27",
105
+ "@tsparticles/effect-trail": "4.0.0-alpha.27",
106
+ "@tsparticles/engine": "4.0.0-alpha.27",
107
+ "@tsparticles/interaction-external-particle": "4.0.0-alpha.27",
108
+ "@tsparticles/interaction-external-pop": "4.0.0-alpha.27",
109
+ "@tsparticles/interaction-light": "4.0.0-alpha.27",
110
+ "@tsparticles/interaction-particles-repulse": "4.0.0-alpha.27",
111
+ "@tsparticles/path-branches": "4.0.0-alpha.27",
112
+ "@tsparticles/path-brownian": "4.0.0-alpha.27",
113
+ "@tsparticles/path-curl-noise": "4.0.0-alpha.27",
114
+ "@tsparticles/path-curves": "4.0.0-alpha.27",
115
+ "@tsparticles/path-fractal-noise": "4.0.0-alpha.27",
116
+ "@tsparticles/path-grid": "4.0.0-alpha.27",
117
+ "@tsparticles/path-levy": "4.0.0-alpha.27",
118
+ "@tsparticles/path-perlin-noise": "4.0.0-alpha.27",
119
+ "@tsparticles/path-polygon": "4.0.0-alpha.27",
120
+ "@tsparticles/path-random": "4.0.0-alpha.27",
121
+ "@tsparticles/path-simplex-noise": "4.0.0-alpha.27",
122
+ "@tsparticles/path-spiral": "4.0.0-alpha.27",
123
+ "@tsparticles/path-svg": "4.0.0-alpha.27",
124
+ "@tsparticles/path-zig-zag": "4.0.0-alpha.27",
125
+ "@tsparticles/plugin-background-mask": "4.0.0-alpha.27",
126
+ "@tsparticles/plugin-blend": "4.0.0-alpha.27",
127
+ "@tsparticles/plugin-canvas-mask": "4.0.0-alpha.27",
128
+ "@tsparticles/plugin-easing-back": "4.0.0-alpha.27",
129
+ "@tsparticles/plugin-easing-bounce": "4.0.0-alpha.27",
130
+ "@tsparticles/plugin-easing-circ": "4.0.0-alpha.27",
131
+ "@tsparticles/plugin-easing-cubic": "4.0.0-alpha.27",
132
+ "@tsparticles/plugin-easing-elastic": "4.0.0-alpha.27",
133
+ "@tsparticles/plugin-easing-expo": "4.0.0-alpha.27",
134
+ "@tsparticles/plugin-easing-gaussian": "4.0.0-alpha.27",
135
+ "@tsparticles/plugin-easing-linear": "4.0.0-alpha.27",
136
+ "@tsparticles/plugin-easing-quart": "4.0.0-alpha.27",
137
+ "@tsparticles/plugin-easing-quint": "4.0.0-alpha.27",
138
+ "@tsparticles/plugin-easing-sigmoid": "4.0.0-alpha.27",
139
+ "@tsparticles/plugin-easing-sine": "4.0.0-alpha.27",
140
+ "@tsparticles/plugin-easing-smoothstep": "4.0.0-alpha.27",
141
+ "@tsparticles/plugin-emitters-shape-canvas": "4.0.0-alpha.27",
142
+ "@tsparticles/plugin-emitters-shape-path": "4.0.0-alpha.27",
143
+ "@tsparticles/plugin-emitters-shape-polygon": "4.0.0-alpha.27",
144
+ "@tsparticles/plugin-export-image": "4.0.0-alpha.27",
145
+ "@tsparticles/plugin-export-json": "4.0.0-alpha.27",
146
+ "@tsparticles/plugin-export-video": "4.0.0-alpha.27",
147
+ "@tsparticles/plugin-hsv-color": "4.0.0-alpha.27",
148
+ "@tsparticles/plugin-hwb-color": "4.0.0-alpha.27",
149
+ "@tsparticles/plugin-infection": "4.0.0-alpha.27",
150
+ "@tsparticles/plugin-lab-color": "4.0.0-alpha.27",
151
+ "@tsparticles/plugin-lch-color": "4.0.0-alpha.27",
152
+ "@tsparticles/plugin-manual-particles": "4.0.0-alpha.27",
153
+ "@tsparticles/plugin-motion": "4.0.0-alpha.27",
154
+ "@tsparticles/plugin-named-color": "4.0.0-alpha.27",
155
+ "@tsparticles/plugin-oklab-color": "4.0.0-alpha.27",
156
+ "@tsparticles/plugin-oklch-color": "4.0.0-alpha.27",
157
+ "@tsparticles/plugin-poisson-disc": "4.0.0-alpha.27",
158
+ "@tsparticles/plugin-polygon-mask": "4.0.0-alpha.27",
159
+ "@tsparticles/plugin-responsive": "4.0.0-alpha.27",
160
+ "@tsparticles/plugin-sounds": "4.0.0-alpha.27",
161
+ "@tsparticles/plugin-themes": "4.0.0-alpha.27",
162
+ "@tsparticles/plugin-trail": "4.0.0-alpha.27",
163
+ "@tsparticles/plugin-zoom": "4.0.0-alpha.27",
164
+ "@tsparticles/shape-arrow": "4.0.0-alpha.27",
165
+ "@tsparticles/shape-cards": "4.0.0-alpha.27",
166
+ "@tsparticles/shape-cog": "4.0.0-alpha.27",
167
+ "@tsparticles/shape-heart": "4.0.0-alpha.27",
168
+ "@tsparticles/shape-infinity": "4.0.0-alpha.27",
169
+ "@tsparticles/shape-matrix": "4.0.0-alpha.27",
170
+ "@tsparticles/shape-path": "4.0.0-alpha.27",
171
+ "@tsparticles/shape-rounded-polygon": "4.0.0-alpha.27",
172
+ "@tsparticles/shape-rounded-rect": "4.0.0-alpha.27",
173
+ "@tsparticles/shape-spiral": "4.0.0-alpha.27",
174
+ "@tsparticles/shape-squircle": "4.0.0-alpha.27",
175
+ "@tsparticles/updater-gradient": "4.0.0-alpha.27",
176
+ "@tsparticles/updater-orbit": "4.0.0-alpha.27",
177
+ "tsparticles": "4.0.0-alpha.27"
176
178
  },
177
179
  "publishConfig": {
178
180
  "access": "public"
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \******************************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BranchesPathGenerator: () => (/* binding */ BranchesPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst defaultOptions = {\n segmentLength: 20,\n branchChance: 0.2,\n maxAngle: Math.PI / 3,\n speedVariation: 0.3\n};\nclass BranchesPathGenerator {\n options;\n _container;\n constructor(container){\n this._container = container;\n this.options = {\n ...defaultOptions\n };\n }\n generate(p) {\n const opts = this.options;\n p.branching ??= {\n angle: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI,\n remaining: opts.segmentLength,\n speed: p.velocity.length\n };\n const b = p.branching;\n if (b.remaining <= 0) {\n const branch = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() < (opts.branchChance ?? 0), maxAngle = opts.maxAngle ?? defaultOptions.maxAngle, delta = ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 2 - 1) * (branch ? maxAngle : maxAngle * 0.3);\n b.angle += delta;\n b.remaining = opts.segmentLength;\n const speedFactor = 1 + ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 2 - 1) * (opts.speedVariation ?? 0);\n b.speed = p.velocity.length * speedFactor;\n }\n b.remaining -= b.speed;\n const vx = Math.cos(b.angle) * b.speed, vy = Math.sin(b.angle) * b.speed;\n p.velocity.x = 0;\n p.velocity.y = 0;\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(vx, vy);\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.segmentLength = source[\"segmentLength\"] ?? this.options.segmentLength;\n this.options.branchChance = source[\"branchChance\"] ?? this.options.branchChance;\n this.options.maxAngle = source[\"maxAngle\"] ?? this.options.maxAngle;\n this.options.speedVariation = source[\"speedVariation\"] ?? this.options.speedVariation;\n }\n reset(p) {\n delete p.branching;\n }\n update() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/branches/dist/browser/BranchesPathGenerator.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BranchesPathGenerator: () => (/* binding */ BranchesPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst defaultOptions = {\n segmentLength: 20,\n branchChance: 0.2,\n maxAngle: Math.PI / 3,\n speedVariation: 0.3,\n inertia: {\n enable: false,\n factor: 0.1\n }\n};\nclass BranchesPathGenerator {\n options;\n _container;\n _res;\n constructor(container){\n this._container = container;\n this._res = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n this.options = {\n ...defaultOptions,\n inertia: {\n ...defaultOptions.inertia\n }\n };\n }\n generate(p) {\n const opts = this.options;\n p.branching ??= {\n angle: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI,\n remaining: opts.segmentLength,\n baseSpeed: p.velocity.length,\n speed: p.velocity.length\n };\n const b = p.branching;\n if (b.remaining <= 0) {\n const branch = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() < (opts.branchChance ?? 0), maxAngle = opts.maxAngle ?? defaultOptions.maxAngle, delta = ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 2 - 1) * (branch ? maxAngle : maxAngle * 0.3);\n b.angle += delta;\n b.remaining = opts.segmentLength;\n const speedFactor = 1 + ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 2 - 1) * (opts.speedVariation ?? 0);\n b.speed = b.baseSpeed * speedFactor;\n }\n b.remaining -= b.speed;\n const targetX = Math.cos(b.angle) * b.speed, targetY = Math.sin(b.angle) * b.speed, inertia = opts.inertia;\n if (inertia?.enable) {\n const factor = inertia.factor ?? 0.1;\n p.velocity.x += (targetX - p.velocity.x) * factor;\n p.velocity.y += (targetY - p.velocity.y) * factor;\n this._res.x = p.velocity.x;\n this._res.y = p.velocity.y;\n } else {\n p.velocity.x = 0;\n p.velocity.y = 0;\n this._res.x = targetX;\n this._res.y = targetY;\n }\n return this._res;\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.segmentLength = source[\"segmentLength\"] ?? this.options.segmentLength;\n this.options.branchChance = source[\"branchChance\"] ?? this.options.branchChance;\n this.options.maxAngle = source[\"maxAngle\"] ?? this.options.maxAngle;\n this.options.speedVariation = source[\"speedVariation\"] ?? this.options.speedVariation;\n const inertiaSource = source[\"inertia\"];\n if (inertiaSource) {\n const inertiaOptions = {\n ...defaultOptions.inertia\n };\n inertiaOptions.enable = inertiaSource.enable ?? inertiaOptions.enable;\n inertiaOptions.factor = inertiaSource.factor ?? inertiaOptions.factor;\n this.options.inertia = inertiaOptions;\n }\n }\n reset(p) {\n delete p.branching;\n }\n update() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/branches/dist/browser/BranchesPathGenerator.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \**************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ branchingPathName: () => (/* binding */ branchingPathName),\n/* harmony export */ loadBranchesPath: () => (/* binding */ loadBranchesPath)\n/* harmony export */ });\nconst branchingPathName = \"branchesPathGenerator\";\nasync function loadBranchesPath(engine) {\n engine.checkVersion(\"4.0.0-alpha.25\");\n await engine.register((e)=>{\n e.addPathGenerator(branchingPathName, async (container)=>{\n const { BranchesPathGenerator } = await __webpack_require__.e(/*! import() */ \"paths_branches_dist_browser_BranchesPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./BranchesPathGenerator.js */ \"../../paths/branches/dist/browser/BranchesPathGenerator.js\"));\n return new BranchesPathGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/branches/dist/browser/index.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ branchingPathName: () => (/* binding */ branchingPathName),\n/* harmony export */ loadBranchesPath: () => (/* binding */ loadBranchesPath)\n/* harmony export */ });\nconst branchingPathName = \"branchesPathGenerator\";\nasync function loadBranchesPath(engine) {\n engine.checkVersion(\"4.0.0-alpha.27\");\n await engine.register(async (e)=>{\n const { ensureBaseMoverLoaded } = await __webpack_require__.e(/*! import() */ \"plugins_move_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-move */ \"../../plugins/move/dist/browser/index.js\"));\n ensureBaseMoverLoaded(e);\n e.addPathGenerator?.(branchingPathName, async (container)=>{\n const { BranchesPathGenerator } = await __webpack_require__.e(/*! import() */ \"paths_branches_dist_browser_BranchesPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./BranchesPathGenerator.js */ \"../../paths/branches/dist/browser/BranchesPathGenerator.js\"));\n return new BranchesPathGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/branches/dist/browser/index.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \******************************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BrownianPathGenerator: () => (/* binding */ BrownianPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass BrownianPathGenerator {\n options;\n _container;\n constructor(container){\n this._container = container;\n this.options = {\n angleDelta: Math.PI / 12,\n damping: 1\n };\n }\n generate(p) {\n p.brownian ??= {\n angle: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * Math.PI * 2,\n speed: p.velocity.length\n };\n const b = p.brownian, delta = ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 2 - 1) * (this.options.angleDelta ?? 0);\n b.angle += delta;\n const damping = this.options.damping ?? 1;\n p.velocity.x = 0;\n p.velocity.y = 0;\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(Math.cos(b.angle) * b.speed * damping, Math.sin(b.angle) * b.speed * damping);\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.angleDelta = source[\"angleDelta\"] ?? this.options.angleDelta;\n this.options.damping = source[\"damping\"] ?? this.options.damping;\n }\n reset(p) {\n delete p.brownian;\n }\n update() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/brownian/dist/browser/BrownianPathGenerator.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BrownianPathGenerator: () => (/* binding */ BrownianPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass BrownianPathGenerator {\n options;\n _container;\n _res;\n constructor(container){\n this._container = container;\n this._res = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n this.options = {\n angleDelta: Math.PI / 12,\n damping: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity\n };\n }\n generate(p) {\n p.brownian ??= {\n angle: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI,\n speed: p.velocity.length\n };\n const b = p.brownian, delta = ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 2 - 1) * (this.options.angleDelta ?? 0);\n b.angle += delta;\n const damping = this.options.damping ?? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity;\n p.velocity.x = 0;\n p.velocity.y = 0;\n this._res.length = b.speed * damping;\n this._res.angle = b.angle;\n return this._res;\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.angleDelta = source[\"angleDelta\"] ?? this.options.angleDelta;\n this.options.damping = source[\"damping\"] ?? this.options.damping;\n }\n reset(p) {\n delete p.brownian;\n }\n update() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/brownian/dist/browser/BrownianPathGenerator.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \**************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ brownianPathName: () => (/* binding */ brownianPathName),\n/* harmony export */ loadBrownianPath: () => (/* binding */ loadBrownianPath)\n/* harmony export */ });\nconst brownianPathName = \"brownianPathGenerator\";\nasync function loadBrownianPath(engine) {\n engine.checkVersion(\"4.0.0-alpha.25\");\n await engine.register((e)=>{\n e.addPathGenerator(brownianPathName, async (container)=>{\n const { BrownianPathGenerator } = await __webpack_require__.e(/*! import() */ \"paths_brownian_dist_browser_BrownianPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./BrownianPathGenerator.js */ \"../../paths/brownian/dist/browser/BrownianPathGenerator.js\"));\n return new BrownianPathGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/brownian/dist/browser/index.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ brownianPathName: () => (/* binding */ brownianPathName),\n/* harmony export */ loadBrownianPath: () => (/* binding */ loadBrownianPath)\n/* harmony export */ });\nconst brownianPathName = \"brownianPathGenerator\";\nasync function loadBrownianPath(engine) {\n engine.checkVersion(\"4.0.0-alpha.27\");\n await engine.register(async (e)=>{\n const { ensureBaseMoverLoaded } = await __webpack_require__.e(/*! import() */ \"plugins_move_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-move */ \"../../plugins/move/dist/browser/index.js\"));\n ensureBaseMoverLoaded(e);\n e.addPathGenerator?.(brownianPathName, async (container)=>{\n const { BrownianPathGenerator } = await __webpack_require__.e(/*! import() */ \"paths_brownian_dist_browser_BrownianPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./BrownianPathGenerator.js */ \"../../paths/brownian/dist/browser/BrownianPathGenerator.js\"));\n return new BrownianPathGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/brownian/dist/browser/index.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \****************************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CurlNoiseGenerator: () => (/* binding */ CurlNoiseGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_simplex_noise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/simplex-noise */ \"../../utils/simplexNoise/dist/browser/index.js\");\n\n\nconst defaultOptions = {\n speed: 0.2,\n step: 250\n};\nclass CurlNoiseGenerator {\n options;\n _container;\n _simplex;\n constructor(container){\n this._container = container;\n const simplex = new _tsparticles_simplex_noise__WEBPACK_IMPORTED_MODULE_1__.SimplexNoise();\n this._simplex = simplex.noise2d;\n this.options = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, defaultOptions);\n }\n generate(particle) {\n const pos = particle.getPosition(), { speed, step } = this.options, x = pos.x / step, y = pos.y / step, eps = 0.001, n1a = this._simplex.noise(x, y + eps), n2a = this._simplex.noise(x, y - eps), a = (n1a - n2a) / (_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double * eps), n1b = this._simplex.noise(x + eps, y), n2b = this._simplex.noise(x - eps, y), b = (n1b - n2b) / (_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double * eps);\n particle.velocity.x = 0;\n particle.velocity.y = 0;\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(speed * a, speed * -b);\n }\n init() {\n const container = this._container, sourceOptions = container.actualOptions.particles.move.path.options;\n this.options.seed = sourceOptions[\"seed\"];\n this.options.speed = (sourceOptions[\"speed\"] ?? defaultOptions.speed) * container.retina.pixelRatio;\n this.options.step = sourceOptions[\"step\"] ?? defaultOptions.step;\n this._simplex.seed(this.options.seed ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)());\n }\n reset() {}\n update() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/curlNoise/dist/browser/CurlNoiseGenerator.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CurlNoiseGenerator: () => (/* binding */ CurlNoiseGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_simplex_noise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/simplex-noise */ \"../../utils/simplexNoise/dist/browser/index.js\");\n\n\nconst defaultOptions = {\n speed: 0.2,\n step: 250\n};\nclass CurlNoiseGenerator {\n options;\n _container;\n _res;\n _simplex;\n constructor(container){\n this._container = container;\n this._res = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n const simplex = new _tsparticles_simplex_noise__WEBPACK_IMPORTED_MODULE_1__.SimplexNoise();\n this._simplex = simplex.noise2d;\n this.options = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, defaultOptions);\n }\n generate(particle) {\n const pos = particle.getPosition(), { speed, step } = this.options, x = pos.x / step, y = pos.y / step, eps = 0.001, n1a = this._simplex.noise(x, y + eps), n2a = this._simplex.noise(x, y - eps), a = (n1a - n2a) / (_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double * eps), n1b = this._simplex.noise(x + eps, y), n2b = this._simplex.noise(x - eps, y), b = (n1b - n2b) / (_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double * eps);\n particle.velocity.x = 0;\n particle.velocity.y = 0;\n this._res.x = speed * a;\n this._res.y = speed * -b;\n return this._res;\n }\n init() {\n const container = this._container, sourceOptions = container.actualOptions.particles.move.path.options;\n this.options.seed = sourceOptions[\"seed\"];\n this.options.speed = (sourceOptions[\"speed\"] ?? defaultOptions.speed) * container.retina.pixelRatio;\n this.options.step = sourceOptions[\"step\"] ?? defaultOptions.step;\n this._simplex.seed(this.options.seed ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)());\n }\n reset() {}\n update() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/curlNoise/dist/browser/CurlNoiseGenerator.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \***************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ curlNoisePathName: () => (/* binding */ curlNoisePathName),\n/* harmony export */ loadCurlNoisePath: () => (/* binding */ loadCurlNoisePath)\n/* harmony export */ });\nconst curlNoisePathName = \"curlNoise\";\nasync function loadCurlNoisePath(engine) {\n engine.checkVersion(\"4.0.0-alpha.25\");\n await engine.register((e)=>{\n e.addPathGenerator(curlNoisePathName, async (container)=>{\n const { CurlNoiseGenerator } = await Promise.all(/*! import() */[__webpack_require__.e(\"utils_simplexNoise_dist_browser_index_js\"), __webpack_require__.e(\"paths_curlNoise_dist_browser_CurlNoiseGenerator_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./CurlNoiseGenerator.js */ \"../../paths/curlNoise/dist/browser/CurlNoiseGenerator.js\"));\n return new CurlNoiseGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/curlNoise/dist/browser/index.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ curlNoisePathName: () => (/* binding */ curlNoisePathName),\n/* harmony export */ loadCurlNoisePath: () => (/* binding */ loadCurlNoisePath)\n/* harmony export */ });\nconst curlNoisePathName = \"curlNoise\";\nasync function loadCurlNoisePath(engine) {\n engine.checkVersion(\"4.0.0-alpha.27\");\n await engine.register(async (e)=>{\n const { ensureBaseMoverLoaded } = await __webpack_require__.e(/*! import() */ \"plugins_move_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-move */ \"../../plugins/move/dist/browser/index.js\"));\n ensureBaseMoverLoaded(e);\n e.addPathGenerator?.(curlNoisePathName, async (container)=>{\n const { CurlNoiseGenerator } = await Promise.all(/*! import() */[__webpack_require__.e(\"utils_simplexNoise_dist_browser_index_js\"), __webpack_require__.e(\"paths_curlNoise_dist_browser_CurlNoiseGenerator_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./CurlNoiseGenerator.js */ \"../../paths/curlNoise/dist/browser/CurlNoiseGenerator.js\"));\n return new CurlNoiseGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/curlNoise/dist/browser/index.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ curvesPathName: () => (/* binding */ curvesPathName),\n/* harmony export */ loadCurvesPath: () => (/* binding */ loadCurvesPath)\n/* harmony export */ });\nconst curvesPathName = \"curvesPathGenerator\";\nasync function loadCurvesPath(engine) {\n engine.checkVersion(\"4.0.0-alpha.25\");\n await engine.register((e)=>{\n e.addPathGenerator(curvesPathName, async (container)=>{\n const { CurvesPathGenerator } = await __webpack_require__.e(/*! import() */ \"paths_curves_dist_browser_CurvesPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./CurvesPathGenerator.js */ \"../../paths/curves/dist/browser/CurvesPathGenerator.js\"));\n return new CurvesPathGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/curves/dist/browser/index.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ curvesPathName: () => (/* binding */ curvesPathName),\n/* harmony export */ loadCurvesPath: () => (/* binding */ loadCurvesPath)\n/* harmony export */ });\nconst curvesPathName = \"curvesPathGenerator\";\nasync function loadCurvesPath(engine) {\n engine.checkVersion(\"4.0.0-alpha.27\");\n await engine.register(async (e)=>{\n const { ensureBaseMoverLoaded } = await __webpack_require__.e(/*! import() */ \"plugins_move_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-move */ \"../../plugins/move/dist/browser/index.js\"));\n ensureBaseMoverLoaded(e);\n e.addPathGenerator?.(curvesPathName, async (container)=>{\n const { CurvesPathGenerator } = await __webpack_require__.e(/*! import() */ \"paths_curves_dist_browser_CurvesPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./CurvesPathGenerator.js */ \"../../paths/curves/dist/browser/CurvesPathGenerator.js\"));\n return new CurvesPathGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/curves/dist/browser/index.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -53,7 +53,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
53
53
  \******************************************************************/
54
54
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
55
55
 
56
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NoiseFieldGenerator: () => (/* binding */ NoiseFieldGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst originCoordinate = 0, firstIndex = 0, empty = 0, optionsSizeOffset = 1, transformDefaultValues = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n}, defaultOptions = {\n draw: false,\n size: 20,\n increment: 0.004,\n columns: 0,\n rows: 0,\n layers: 0,\n width: 0,\n height: 0,\n factor: {\n angle: 0.02,\n length: 0.01\n },\n offset: {\n x: 40000,\n y: 40000,\n z: 40000\n }\n};\nclass NoiseFieldGenerator {\n container;\n field;\n noiseGen;\n noiseW;\n options;\n constructor(container, noiseGen){\n this.container = container;\n this.noiseGen = noiseGen;\n this.field = [];\n this.noiseW = 0;\n this.options = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, defaultOptions);\n }\n generate(particle) {\n const pos = particle.getPosition(), { size } = this.options, point = {\n x: Math.max(Math.floor(pos.x / size), originCoordinate),\n y: Math.max(Math.floor(pos.y / size), originCoordinate),\n z: Math.max(Math.floor(pos.z / size), originCoordinate)\n }, { field } = this, fieldPoint = field[point.x]?.[point.y]?.[point.z];\n return fieldPoint ? fieldPoint.copy() : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n }\n init() {\n this._setup();\n }\n reset() {}\n update() {\n this._calculateField();\n this.noiseW += this.options.increment;\n if (!this.options.draw) {\n return;\n }\n this.container.canvas.draw((ctx)=>{\n this._drawField(ctx);\n });\n }\n _calculateField() {\n const { field, noiseGen, options, noiseW } = this, lengthFactor = options.factor.length, angleFactor = options.factor.angle;\n for(let x = 0; x < options.columns; x++){\n const xColumn = field[x];\n if (!xColumn) {\n continue;\n }\n for(let y = 0; y < options.rows; y++){\n const yColumn = xColumn[y];\n if (!yColumn) {\n continue;\n }\n for(let z = 0; z < options.layers; z++){\n const cell = yColumn[z];\n if (!cell) {\n continue;\n }\n cell.length = noiseGen.noise4d(x * lengthFactor + options.offset.x, y * lengthFactor + options.offset.y, z * lengthFactor + options.offset.z, noiseW);\n cell.angle = noiseGen.noise4d(x * angleFactor, y * angleFactor, z * angleFactor, noiseW) * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI;\n }\n }\n }\n }\n _drawField(ctx) {\n const { field, options } = this;\n for(let x = 0; x < options.columns; x++){\n const xColumn = field[x];\n if (!xColumn) {\n continue;\n }\n for(let y = 0; y < options.rows; y++){\n const yColumn = xColumn[y];\n if (!yColumn) {\n continue;\n }\n const cell = yColumn[firstIndex];\n if (!cell) {\n continue;\n }\n const { angle, length } = cell;\n ctx.setTransform(transformDefaultValues.a, transformDefaultValues.b, transformDefaultValues.c, transformDefaultValues.d, x * this.options.size, y * this.options.size);\n ctx.rotate(angle);\n ctx.strokeStyle = \"white\";\n ctx.beginPath();\n ctx.moveTo(originCoordinate, originCoordinate);\n ctx.lineTo(originCoordinate, this.options.size * length);\n ctx.stroke();\n ctx.setTransform(transformDefaultValues.a, transformDefaultValues.b, transformDefaultValues.c, transformDefaultValues.d, transformDefaultValues.e, transformDefaultValues.f);\n }\n }\n }\n _initField() {\n const { columns, rows, layers } = this.options;\n this.field = new Array(columns);\n for(let x = 0; x < columns; x++){\n const newX = new Array(rows);\n for(let y = 0; y < rows; y++){\n const newY = new Array(layers);\n for(let z = 0; z < layers; z++){\n newY[z] = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n }\n newX[y] = newY;\n }\n this.field[x] = newX;\n }\n }\n _resetField() {\n const container = this.container, sourceOptions = container.actualOptions.particles.move.path.options, { options } = this;\n options.width = container.canvas.size.width;\n options.height = container.canvas.size.height;\n options.size = sourceOptions[\"size\"] > empty ? sourceOptions[\"size\"] : defaultOptions.size;\n options.increment = sourceOptions[\"increment\"] > empty ? sourceOptions[\"increment\"] : defaultOptions.increment;\n options.draw = !!sourceOptions[\"draw\"];\n const offset = sourceOptions[\"offset\"];\n options.offset.x = offset?.x ?? defaultOptions.offset.x;\n options.offset.y = offset?.y ?? defaultOptions.offset.y;\n options.offset.z = offset?.z ?? defaultOptions.offset.z;\n const factor = sourceOptions[\"factor\"];\n options.factor.angle = factor?.angle ?? defaultOptions.factor.angle;\n options.factor.length = factor?.length ?? defaultOptions.factor.length;\n options.seed = sourceOptions[\"seed\"];\n this.noiseGen.seed(options.seed ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)());\n options.columns = Math.floor(options.width / options.size) + optionsSizeOffset;\n options.rows = Math.floor(options.height / options.size) + optionsSizeOffset;\n options.layers = Math.floor(container.zLayers / options.size) + optionsSizeOffset;\n this._initField();\n }\n _setup() {\n this.noiseW = 0;\n this._resetField();\n addEventListener(\"resize\", ()=>{\n this._resetField();\n });\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../utils/noiseField/dist/browser/NoiseFieldGenerator.js?\n}");
56
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NoiseFieldGenerator: () => (/* binding */ NoiseFieldGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst originCoordinate = 0, firstIndex = 0, empty = 0, optionsSizeOffset = 1, transformDefaultValues = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n}, defaultOptions = {\n draw: false,\n size: 20,\n increment: 0.004,\n columns: 0,\n rows: 0,\n layers: 0,\n width: 0,\n height: 0,\n factor: {\n angle: 0.02,\n length: 0.01\n },\n offset: {\n x: 40000,\n y: 40000,\n z: 40000\n }\n};\nclass NoiseFieldGenerator {\n container;\n field;\n noiseGen;\n noiseW;\n options;\n _res;\n constructor(container, noiseGen){\n this.container = container;\n this.noiseGen = noiseGen;\n this.field = [];\n this.noiseW = 0;\n this._res = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n this.options = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, defaultOptions);\n }\n generate(particle) {\n const pos = particle.getPosition(), { size } = this.options, point = {\n x: Math.max(Math.floor(pos.x / size), originCoordinate),\n y: Math.max(Math.floor(pos.y / size), originCoordinate),\n z: Math.max(Math.floor(pos.z / size), originCoordinate)\n }, { field } = this, fieldPoint = field[point.x]?.[point.y]?.[point.z];\n if (fieldPoint) {\n this._res.x = fieldPoint.x;\n this._res.y = fieldPoint.y;\n } else {\n this._res.x = 0;\n this._res.y = 0;\n }\n return this._res;\n }\n init() {\n this._setup();\n }\n reset() {}\n update() {\n this._calculateField();\n this.noiseW += this.options.increment;\n if (!this.options.draw) {\n return;\n }\n this.container.canvas.draw((ctx)=>{\n this._drawField(ctx);\n });\n }\n _calculateField() {\n const { field, noiseGen, options, noiseW } = this, lengthFactor = options.factor.length, angleFactor = options.factor.angle;\n for(let x = 0; x < options.columns; x++){\n const xColumn = field[x];\n if (!xColumn) {\n continue;\n }\n for(let y = 0; y < options.rows; y++){\n const yColumn = xColumn[y];\n if (!yColumn) {\n continue;\n }\n for(let z = 0; z < options.layers; z++){\n const cell = yColumn[z];\n if (!cell) {\n continue;\n }\n cell.length = noiseGen.noise4d(x * lengthFactor + options.offset.x, y * lengthFactor + options.offset.y, z * lengthFactor + options.offset.z, noiseW);\n cell.angle = noiseGen.noise4d(x * angleFactor, y * angleFactor, z * angleFactor, noiseW) * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI;\n }\n }\n }\n }\n _drawField(ctx) {\n const { field, options } = this;\n for(let x = 0; x < options.columns; x++){\n const xColumn = field[x];\n if (!xColumn) {\n continue;\n }\n for(let y = 0; y < options.rows; y++){\n const yColumn = xColumn[y];\n if (!yColumn) {\n continue;\n }\n const cell = yColumn[firstIndex];\n if (!cell) {\n continue;\n }\n const { angle, length } = cell;\n ctx.setTransform(transformDefaultValues.a, transformDefaultValues.b, transformDefaultValues.c, transformDefaultValues.d, x * this.options.size, y * this.options.size);\n ctx.rotate(angle);\n ctx.strokeStyle = \"white\";\n ctx.beginPath();\n ctx.moveTo(originCoordinate, originCoordinate);\n ctx.lineTo(originCoordinate, this.options.size * length);\n ctx.stroke();\n ctx.setTransform(transformDefaultValues.a, transformDefaultValues.b, transformDefaultValues.c, transformDefaultValues.d, transformDefaultValues.e, transformDefaultValues.f);\n }\n }\n }\n _initField() {\n const { columns, rows, layers } = this.options;\n this.field = new Array(columns);\n for(let x = 0; x < columns; x++){\n const newX = new Array(rows);\n for(let y = 0; y < rows; y++){\n const newY = new Array(layers);\n for(let z = 0; z < layers; z++){\n newY[z] = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n }\n newX[y] = newY;\n }\n this.field[x] = newX;\n }\n }\n _resetField() {\n const container = this.container, sourceOptions = container.actualOptions.particles.move.path.options, { options } = this;\n options.width = container.canvas.size.width;\n options.height = container.canvas.size.height;\n options.size = sourceOptions[\"size\"] > empty ? sourceOptions[\"size\"] : defaultOptions.size;\n options.increment = sourceOptions[\"increment\"] > empty ? sourceOptions[\"increment\"] : defaultOptions.increment;\n options.draw = !!sourceOptions[\"draw\"];\n const offset = sourceOptions[\"offset\"];\n options.offset.x = offset?.x ?? defaultOptions.offset.x;\n options.offset.y = offset?.y ?? defaultOptions.offset.y;\n options.offset.z = offset?.z ?? defaultOptions.offset.z;\n const factor = sourceOptions[\"factor\"];\n options.factor.angle = factor?.angle ?? defaultOptions.factor.angle;\n options.factor.length = factor?.length ?? defaultOptions.factor.length;\n options.seed = sourceOptions[\"seed\"];\n this.noiseGen.seed(options.seed ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)());\n options.columns = Math.floor(options.width / options.size) + optionsSizeOffset;\n options.rows = Math.floor(options.height / options.size) + optionsSizeOffset;\n options.layers = Math.floor(container.zLayers / options.size) + optionsSizeOffset;\n this._initField();\n }\n _setup() {\n this.noiseW = 0;\n this._resetField();\n addEventListener(\"resize\", ()=>{\n this._resetField();\n });\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../utils/noiseField/dist/browser/NoiseFieldGenerator.js?\n}");
57
57
 
58
58
  /***/ },
59
59
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \******************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fractalNoisePathName: () => (/* binding */ fractalNoisePathName),\n/* harmony export */ loadFractalNoisePath: () => (/* binding */ loadFractalNoisePath)\n/* harmony export */ });\nconst fractalNoisePathName = \"fractalNoise\";\nasync function loadFractalNoisePath(engine) {\n engine.checkVersion(\"4.0.0-alpha.25\");\n await engine.register((e)=>{\n e.addPathGenerator(fractalNoisePathName, async (container)=>{\n const { FractalNoiseGenerator } = await __webpack_require__.e(/*! import() */ \"paths_fractalNoise_dist_browser_FractalNoiseGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./FractalNoiseGenerator.js */ \"../../paths/fractalNoise/dist/browser/FractalNoiseGenerator.js\"));\n return new FractalNoiseGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/fractalNoise/dist/browser/index.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fractalNoisePathName: () => (/* binding */ fractalNoisePathName),\n/* harmony export */ loadFractalNoisePath: () => (/* binding */ loadFractalNoisePath)\n/* harmony export */ });\nconst fractalNoisePathName = \"fractalNoise\";\nasync function loadFractalNoisePath(engine) {\n engine.checkVersion(\"4.0.0-alpha.27\");\n await engine.register(async (e)=>{\n const { ensureBaseMoverLoaded } = await __webpack_require__.e(/*! import() */ \"plugins_move_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-move */ \"../../plugins/move/dist/browser/index.js\"));\n ensureBaseMoverLoaded(e);\n e.addPathGenerator?.(fractalNoisePathName, async (container)=>{\n const { FractalNoiseGenerator } = await __webpack_require__.e(/*! import() */ \"paths_fractalNoise_dist_browser_FractalNoiseGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./FractalNoiseGenerator.js */ \"../../paths/fractalNoise/dist/browser/FractalNoiseGenerator.js\"));\n return new FractalNoiseGenerator(container);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/fractalNoise/dist/browser/index.js?\n}");
27
27
 
28
28
  /***/ }
29
29
 
@@ -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-alpha.25
7
+ * v4.0.0-alpha.27
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \**********************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GridPathGenerator: () => (/* binding */ GridPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst dirs = [\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(-_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, -_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity)\n], opposite = [\n 2,\n 3,\n 0,\n 1\n], minLength = 0;\nclass GridPathGenerator {\n options;\n _container;\n constructor(container){\n this._container = container;\n this.options = {\n cellSize: 40,\n graph: undefined,\n autoMaze: false\n };\n }\n generate(p) {\n const size = this.options.cellSize;\n p.grid ??= {\n direction: Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * dirs.length),\n speed: p.velocity.length,\n cellPosition: {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n }\n };\n const grid = p.grid, c = {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n };\n if (c.x !== grid.cellPosition.x || c.y !== grid.cellPosition.y) {\n grid.cellPosition.x = c.x;\n grid.cellPosition.y = c.y;\n const key = `${c.x},${c.y}`, allowed = this.options.graph?.[key];\n if (allowed && allowed.length > minLength) {\n grid.direction = allowed[Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * allowed.length)];\n } else if (!this.options.graph) {\n const turn = Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 3) - 1;\n grid.direction = (grid.direction + turn + 4) % dirs.length;\n }\n }\n p.velocity.x = 0;\n p.velocity.y = 0;\n const d = dirs[grid.direction];\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(d.x * grid.speed, d.y * grid.speed);\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.cellSize = source[\"cellSize\"] ?? this.options.cellSize;\n this.options.autoMaze = source[\"autoMaze\"] ?? this.options.autoMaze;\n this.options.graph = source[\"graph\"];\n if (this.options.autoMaze) {\n const canvas = this._container.canvas.size, cellSize = this.options.cellSize, size = {\n width: Math.ceil(canvas.width / cellSize),\n height: Math.ceil(canvas.height / cellSize)\n };\n this.options.graph = this._generateMazeGraph(size);\n }\n }\n reset(p) {\n delete p.grid;\n }\n update() {}\n _generateMazeGraph({ height, width }) {\n const graph = {}, visited = [];\n for(let y = 0; y < height; y++){\n visited[y] = [];\n }\n const stack = [\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y\n }\n ];\n while(stack.length > 0){\n const { x, y } = stack[stack.length - 1];\n if (!visited[y][x]) {\n visited[y][x] = true;\n }\n const dirsOrder = [\n 0,\n 1,\n 2,\n 3\n ].sort(()=>(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() - 0.5);\n let moved = false;\n for (const d of dirsOrder){\n const n = {\n x: x + (d === 0 ? 1 : d === 2 ? -1 : 0),\n y: y + (d === 1 ? 1 : d === 3 ? -1 : 0)\n };\n if (n.x < 0 || n.y < 0 || n.x >= width || n.y >= height) {\n continue;\n }\n if (!visited[n.y][n.x]) {\n const key = `${x},${y}`, nKey = `${n.x},${n.y}`;\n graph[key] ??= [];\n graph[nKey] ??= [];\n graph[key].push(d);\n graph[nKey].push(opposite[d]);\n stack.push(n);\n moved = true;\n break;\n }\n }\n if (!moved) {\n stack.pop();\n }\n }\n return graph;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/grid/dist/browser/GridPathGenerator.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GridPathGenerator: () => (/* binding */ GridPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst dirs = [\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(-_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y),\n _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, -_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.identity)\n], opposite = [\n 2,\n 3,\n 0,\n 1\n], minLength = 0;\nclass GridPathGenerator {\n options;\n _container;\n _res;\n constructor(container){\n this._container = container;\n this._res = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n this.options = {\n cellSize: 40,\n graph: undefined,\n autoMaze: false\n };\n }\n generate(p) {\n const size = this.options.cellSize;\n p.grid ??= {\n direction: Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * dirs.length),\n speed: p.velocity.length,\n cellPosition: {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n }\n };\n const grid = p.grid, c = {\n x: Math.floor(p.position.x / size),\n y: Math.floor(p.position.y / size)\n };\n if (c.x !== grid.cellPosition.x || c.y !== grid.cellPosition.y) {\n grid.cellPosition.x = c.x;\n grid.cellPosition.y = c.y;\n const key = `${c.x},${c.y}`, allowed = this.options.graph?.[key];\n if (allowed && allowed.length > minLength) {\n grid.direction = allowed[Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * allowed.length)];\n } else if (!this.options.graph) {\n const turn = Math.trunc((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * 3) - 1;\n grid.direction = (grid.direction + turn + 4) % dirs.length;\n }\n }\n p.velocity.x = 0;\n p.velocity.y = 0;\n const d = dirs[grid.direction];\n this._res.x = d.x * grid.speed;\n this._res.y = d.y * grid.speed;\n return this._res;\n }\n init() {\n const source = this._container.actualOptions.particles.move.path.options;\n this.options.cellSize = source[\"cellSize\"] ?? this.options.cellSize;\n this.options.autoMaze = source[\"autoMaze\"] ?? this.options.autoMaze;\n this.options.graph = source[\"graph\"];\n if (this.options.autoMaze) {\n const canvas = this._container.canvas.size, cellSize = this.options.cellSize, size = {\n width: Math.ceil(canvas.width / cellSize),\n height: Math.ceil(canvas.height / cellSize)\n };\n this.options.graph = this._generateMazeGraph(size);\n }\n }\n reset(p) {\n delete p.grid;\n }\n update() {}\n _generateMazeGraph({ height, width }) {\n const graph = {}, visited = [];\n for(let y = 0; y < height; y++){\n visited[y] = [];\n }\n const stack = [\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y\n }\n ];\n while(stack.length > 0){\n const { x, y } = stack[stack.length - 1];\n if (!visited[y][x]) {\n visited[y][x] = true;\n }\n const dirsOrder = [\n 0,\n 1,\n 2,\n 3\n ].sort(()=>(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() - 0.5);\n let moved = false;\n for (const d of dirsOrder){\n const n = {\n x: x + (d === 0 ? 1 : d === 2 ? -1 : 0),\n y: y + (d === 1 ? 1 : d === 3 ? -1 : 0)\n };\n if (n.x < 0 || n.y < 0 || n.x >= width || n.y >= height) {\n continue;\n }\n if (!visited[n.y][n.x]) {\n const key = `${x},${y}`, nKey = `${n.x},${n.y}`;\n graph[key] ??= [];\n graph[nKey] ??= [];\n graph[key].push(d);\n graph[nKey].push(opposite[d]);\n stack.push(n);\n moved = true;\n break;\n }\n }\n if (!moved) {\n stack.pop();\n }\n }\n return graph;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/grid/dist/browser/GridPathGenerator.js?\n}");
27
27
 
28
28
  /***/ }
29
29