@tsparticles/all 4.0.0-alpha.2 → 4.0.0-alpha.3

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 (558) hide show
  1. package/1013.min.js.LICENSE.txt +1 -1
  2. package/1080.min.js +1 -1
  3. package/1080.min.js.LICENSE.txt +1 -1
  4. package/1081.min.js +1 -1
  5. package/1081.min.js.LICENSE.txt +1 -1
  6. package/1143.min.js +1 -1
  7. package/1143.min.js.LICENSE.txt +1 -1
  8. package/1392.min.js +1 -1
  9. package/1392.min.js.LICENSE.txt +1 -1
  10. package/1406.min.js.LICENSE.txt +1 -1
  11. package/1581.min.js.LICENSE.txt +1 -1
  12. package/1761.min.js +1 -1
  13. package/1761.min.js.LICENSE.txt +1 -1
  14. package/1816.min.js +1 -1
  15. package/1816.min.js.LICENSE.txt +1 -1
  16. package/1842.min.js.LICENSE.txt +1 -1
  17. package/1866.min.js +1 -1
  18. package/1866.min.js.LICENSE.txt +1 -1
  19. package/1872.min.js +1 -1
  20. package/1872.min.js.LICENSE.txt +1 -1
  21. package/1878.min.js.LICENSE.txt +1 -1
  22. package/1887.min.js +1 -1
  23. package/1887.min.js.LICENSE.txt +1 -1
  24. package/1916.min.js.LICENSE.txt +1 -1
  25. package/198.min.js +1 -1
  26. package/198.min.js.LICENSE.txt +1 -1
  27. package/201.min.js +1 -1
  28. package/201.min.js.LICENSE.txt +1 -1
  29. package/2058.min.js.LICENSE.txt +1 -1
  30. package/2124.min.js.LICENSE.txt +1 -1
  31. package/2126.min.js.LICENSE.txt +1 -1
  32. package/2142.min.js.LICENSE.txt +1 -1
  33. package/2164.min.js +1 -1
  34. package/2164.min.js.LICENSE.txt +1 -1
  35. package/2175.min.js +1 -1
  36. package/2175.min.js.LICENSE.txt +1 -1
  37. package/2201.min.js +1 -1
  38. package/2201.min.js.LICENSE.txt +1 -1
  39. package/2243.min.js.LICENSE.txt +1 -1
  40. package/2264.min.js +1 -1
  41. package/2264.min.js.LICENSE.txt +1 -1
  42. package/2370.min.js +1 -1
  43. package/2370.min.js.LICENSE.txt +1 -1
  44. package/2399.min.js.LICENSE.txt +1 -1
  45. package/2422.min.js +1 -1
  46. package/2422.min.js.LICENSE.txt +1 -1
  47. package/2534.min.js +1 -1
  48. package/2534.min.js.LICENSE.txt +1 -1
  49. package/2554.min.js.LICENSE.txt +1 -1
  50. package/2572.min.js +1 -1
  51. package/2572.min.js.LICENSE.txt +1 -1
  52. package/262.min.js +1 -1
  53. package/262.min.js.LICENSE.txt +1 -1
  54. package/2636.min.js.LICENSE.txt +1 -1
  55. package/2739.min.js +1 -1
  56. package/2739.min.js.LICENSE.txt +1 -1
  57. package/2745.min.js.LICENSE.txt +1 -1
  58. package/276.min.js +1 -1
  59. package/276.min.js.LICENSE.txt +1 -1
  60. package/2819.min.js +1 -1
  61. package/2819.min.js.LICENSE.txt +1 -1
  62. package/2885.min.js.LICENSE.txt +1 -1
  63. package/29.min.js +1 -1
  64. package/29.min.js.LICENSE.txt +1 -1
  65. package/2953.min.js +1 -1
  66. package/2953.min.js.LICENSE.txt +1 -1
  67. package/3017.min.js +1 -1
  68. package/3017.min.js.LICENSE.txt +1 -1
  69. package/303.min.js.LICENSE.txt +1 -1
  70. package/3089.min.js.LICENSE.txt +1 -1
  71. package/3101.min.js.LICENSE.txt +1 -1
  72. package/3156.min.js +1 -1
  73. package/3156.min.js.LICENSE.txt +1 -1
  74. package/3206.min.js +1 -1
  75. package/3206.min.js.LICENSE.txt +1 -1
  76. package/3214.min.js +1 -1
  77. package/3214.min.js.LICENSE.txt +1 -1
  78. package/3225.min.js.LICENSE.txt +1 -1
  79. package/3241.min.js +1 -1
  80. package/3241.min.js.LICENSE.txt +1 -1
  81. package/3289.min.js.LICENSE.txt +1 -1
  82. package/3309.min.js +1 -1
  83. package/3309.min.js.LICENSE.txt +1 -1
  84. package/3435.min.js.LICENSE.txt +1 -1
  85. package/3465.min.js.LICENSE.txt +1 -1
  86. package/3493.min.js +1 -1
  87. package/3493.min.js.LICENSE.txt +1 -1
  88. package/350.min.js +1 -1
  89. package/350.min.js.LICENSE.txt +1 -1
  90. package/3522.min.js.LICENSE.txt +1 -1
  91. package/3561.min.js.LICENSE.txt +1 -1
  92. package/3595.min.js +1 -1
  93. package/3595.min.js.LICENSE.txt +1 -1
  94. package/3636.min.js.LICENSE.txt +1 -1
  95. package/3658.min.js.LICENSE.txt +1 -1
  96. package/368.min.js +1 -1
  97. package/368.min.js.LICENSE.txt +1 -1
  98. package/3710.min.js +1 -1
  99. package/3710.min.js.LICENSE.txt +1 -1
  100. package/3753.min.js +1 -1
  101. package/3753.min.js.LICENSE.txt +1 -1
  102. package/3809.min.js.LICENSE.txt +1 -1
  103. package/3828.min.js.LICENSE.txt +1 -1
  104. package/3853.min.js.LICENSE.txt +1 -1
  105. package/3872.min.js.LICENSE.txt +1 -1
  106. package/3897.min.js.LICENSE.txt +1 -1
  107. package/3920.min.js +1 -1
  108. package/3920.min.js.LICENSE.txt +1 -1
  109. package/3922.min.js +1 -1
  110. package/3922.min.js.LICENSE.txt +1 -1
  111. package/404.min.js +1 -1
  112. package/404.min.js.LICENSE.txt +1 -1
  113. package/408.min.js.LICENSE.txt +1 -1
  114. package/41.min.js.LICENSE.txt +1 -1
  115. package/4125.min.js.LICENSE.txt +1 -1
  116. package/4159.min.js +1 -1
  117. package/4159.min.js.LICENSE.txt +1 -1
  118. package/4204.min.js +1 -1
  119. package/4204.min.js.LICENSE.txt +1 -1
  120. package/4231.min.js.LICENSE.txt +1 -1
  121. package/4242.min.js.LICENSE.txt +1 -1
  122. package/4339.min.js.LICENSE.txt +1 -1
  123. package/4398.min.js.LICENSE.txt +1 -1
  124. package/4469.min.js.LICENSE.txt +1 -1
  125. package/4482.min.js +1 -1
  126. package/4482.min.js.LICENSE.txt +1 -1
  127. package/4493.min.js.LICENSE.txt +1 -1
  128. package/4510.min.js +1 -1
  129. package/4510.min.js.LICENSE.txt +1 -1
  130. package/4565.min.js +1 -1
  131. package/4565.min.js.LICENSE.txt +1 -1
  132. package/458.min.js.LICENSE.txt +1 -1
  133. package/4606.min.js.LICENSE.txt +1 -1
  134. package/4620.min.js +1 -1
  135. package/4620.min.js.LICENSE.txt +1 -1
  136. package/4688.min.js.LICENSE.txt +1 -1
  137. package/4717.min.js.LICENSE.txt +1 -1
  138. package/4743.min.js +1 -1
  139. package/4743.min.js.LICENSE.txt +1 -1
  140. package/4817.min.js.LICENSE.txt +1 -1
  141. package/4894.min.js.LICENSE.txt +1 -1
  142. package/491.min.js +1 -1
  143. package/491.min.js.LICENSE.txt +1 -1
  144. package/4915.min.js.LICENSE.txt +1 -1
  145. package/508.min.js.LICENSE.txt +1 -1
  146. package/5082.min.js +1 -1
  147. package/5082.min.js.LICENSE.txt +1 -1
  148. package/5090.min.js +1 -1
  149. package/5090.min.js.LICENSE.txt +1 -1
  150. package/5169.min.js.LICENSE.txt +1 -1
  151. package/5187.min.js +1 -1
  152. package/5187.min.js.LICENSE.txt +1 -1
  153. package/5202.min.js.LICENSE.txt +1 -1
  154. package/5226.min.js.LICENSE.txt +1 -1
  155. package/5243.min.js.LICENSE.txt +1 -1
  156. package/5322.min.js +1 -1
  157. package/5322.min.js.LICENSE.txt +1 -1
  158. package/5367.min.js +1 -1
  159. package/5367.min.js.LICENSE.txt +1 -1
  160. package/5433.min.js +1 -1
  161. package/5433.min.js.LICENSE.txt +1 -1
  162. package/5504.min.js +1 -1
  163. package/5504.min.js.LICENSE.txt +1 -1
  164. package/5563.min.js.LICENSE.txt +1 -1
  165. package/5627.min.js +1 -1
  166. package/5627.min.js.LICENSE.txt +1 -1
  167. package/5635.min.js +1 -1
  168. package/5635.min.js.LICENSE.txt +1 -1
  169. package/5689.min.js.LICENSE.txt +1 -1
  170. package/5693.min.js +1 -1
  171. package/5693.min.js.LICENSE.txt +1 -1
  172. package/5711.min.js +1 -1
  173. package/5711.min.js.LICENSE.txt +1 -1
  174. package/5713.min.js +1 -1
  175. package/5713.min.js.LICENSE.txt +1 -1
  176. package/5727.min.js.LICENSE.txt +1 -1
  177. package/5728.min.js +1 -1
  178. package/5728.min.js.LICENSE.txt +1 -1
  179. package/5749.min.js +1 -1
  180. package/5749.min.js.LICENSE.txt +1 -1
  181. package/5770.min.js.LICENSE.txt +1 -1
  182. package/582.min.js +1 -1
  183. package/582.min.js.LICENSE.txt +1 -1
  184. package/5849.min.js +1 -1
  185. package/5849.min.js.LICENSE.txt +1 -1
  186. package/5885.min.js.LICENSE.txt +1 -1
  187. package/5898.min.js +1 -1
  188. package/5898.min.js.LICENSE.txt +1 -1
  189. package/590.min.js.LICENSE.txt +1 -1
  190. package/5917.min.js.LICENSE.txt +1 -1
  191. package/6024.min.js.LICENSE.txt +1 -1
  192. package/6137.min.js +1 -1
  193. package/6137.min.js.LICENSE.txt +1 -1
  194. package/617.min.js +1 -1
  195. package/617.min.js.LICENSE.txt +1 -1
  196. package/6203.min.js.LICENSE.txt +1 -1
  197. package/6284.min.js +1 -1
  198. package/6284.min.js.LICENSE.txt +1 -1
  199. package/6314.min.js +1 -1
  200. package/6314.min.js.LICENSE.txt +1 -1
  201. package/6315.min.js +1 -1
  202. package/6315.min.js.LICENSE.txt +1 -1
  203. package/6408.min.js +1 -1
  204. package/6408.min.js.LICENSE.txt +1 -1
  205. package/6416.min.js +1 -1
  206. package/6416.min.js.LICENSE.txt +1 -1
  207. package/6434.min.js +1 -1
  208. package/6434.min.js.LICENSE.txt +1 -1
  209. package/6528.min.js +1 -1
  210. package/6528.min.js.LICENSE.txt +1 -1
  211. package/6560.min.js +1 -1
  212. package/6560.min.js.LICENSE.txt +1 -1
  213. package/6573.min.js.LICENSE.txt +1 -1
  214. package/6606.min.js.LICENSE.txt +1 -1
  215. package/6625.min.js +1 -1
  216. package/6625.min.js.LICENSE.txt +1 -1
  217. package/6660.min.js +1 -1
  218. package/6660.min.js.LICENSE.txt +1 -1
  219. package/6674.min.js.LICENSE.txt +1 -1
  220. package/6687.min.js.LICENSE.txt +1 -1
  221. package/669.min.js.LICENSE.txt +1 -1
  222. package/6848.min.js +1 -1
  223. package/6848.min.js.LICENSE.txt +1 -1
  224. package/6866.min.js.LICENSE.txt +1 -1
  225. package/7009.min.js +1 -1
  226. package/7009.min.js.LICENSE.txt +1 -1
  227. package/704.min.js.LICENSE.txt +1 -1
  228. package/7094.min.js +1 -1
  229. package/7094.min.js.LICENSE.txt +1 -1
  230. package/7146.min.js.LICENSE.txt +1 -1
  231. package/7152.min.js +1 -1
  232. package/7152.min.js.LICENSE.txt +1 -1
  233. package/7278.min.js +1 -1
  234. package/7278.min.js.LICENSE.txt +1 -1
  235. package/7281.min.js.LICENSE.txt +1 -1
  236. package/731.min.js +1 -1
  237. package/731.min.js.LICENSE.txt +1 -1
  238. package/7321.min.js.LICENSE.txt +1 -1
  239. package/7342.min.js +1 -1
  240. package/7342.min.js.LICENSE.txt +1 -1
  241. package/7358.min.js +1 -1
  242. package/7358.min.js.LICENSE.txt +1 -1
  243. package/7406.min.js.LICENSE.txt +1 -1
  244. package/7426.min.js +1 -1
  245. package/7426.min.js.LICENSE.txt +1 -1
  246. package/745.min.js +1 -1
  247. package/745.min.js.LICENSE.txt +1 -1
  248. package/7485.min.js +1 -1
  249. package/7485.min.js.LICENSE.txt +1 -1
  250. package/7489.min.js +1 -1
  251. package/7489.min.js.LICENSE.txt +1 -1
  252. package/7571.min.js +1 -1
  253. package/7571.min.js.LICENSE.txt +1 -1
  254. package/7586.min.js +1 -1
  255. package/7586.min.js.LICENSE.txt +1 -1
  256. package/7679.min.js +1 -1
  257. package/7679.min.js.LICENSE.txt +1 -1
  258. package/774.min.js +1 -1
  259. package/774.min.js.LICENSE.txt +1 -1
  260. package/7753.min.js +1 -1
  261. package/7753.min.js.LICENSE.txt +1 -1
  262. package/7839.min.js +1 -1
  263. package/7839.min.js.LICENSE.txt +1 -1
  264. package/7962.min.js +1 -1
  265. package/7962.min.js.LICENSE.txt +1 -1
  266. package/7998.min.js +1 -1
  267. package/7998.min.js.LICENSE.txt +1 -1
  268. package/8127.min.js +1 -1
  269. package/8127.min.js.LICENSE.txt +1 -1
  270. package/8182.min.js +1 -1
  271. package/8182.min.js.LICENSE.txt +1 -1
  272. package/8191.min.js +1 -1
  273. package/8191.min.js.LICENSE.txt +1 -1
  274. package/8204.min.js.LICENSE.txt +1 -1
  275. package/8230.min.js.LICENSE.txt +1 -1
  276. package/8245.min.js +1 -1
  277. package/8245.min.js.LICENSE.txt +1 -1
  278. package/8365.min.js.LICENSE.txt +1 -1
  279. package/8404.min.js +1 -1
  280. package/8404.min.js.LICENSE.txt +1 -1
  281. package/8420.min.js +1 -1
  282. package/8420.min.js.LICENSE.txt +1 -1
  283. package/8440.min.js +1 -1
  284. package/8440.min.js.LICENSE.txt +1 -1
  285. package/8457.min.js.LICENSE.txt +1 -1
  286. package/8470.min.js +1 -1
  287. package/8470.min.js.LICENSE.txt +1 -1
  288. package/8484.min.js.LICENSE.txt +1 -1
  289. package/8520.min.js +1 -1
  290. package/8520.min.js.LICENSE.txt +1 -1
  291. package/8582.min.js +1 -1
  292. package/8582.min.js.LICENSE.txt +1 -1
  293. package/869.min.js.LICENSE.txt +1 -1
  294. package/8770.min.js +1 -1
  295. package/8770.min.js.LICENSE.txt +1 -1
  296. package/8848.min.js.LICENSE.txt +1 -1
  297. package/8926.min.js.LICENSE.txt +1 -1
  298. package/8930.min.js +1 -1
  299. package/8930.min.js.LICENSE.txt +1 -1
  300. package/8952.min.js +1 -1
  301. package/8952.min.js.LICENSE.txt +1 -1
  302. package/9076.min.js +1 -1
  303. package/9076.min.js.LICENSE.txt +1 -1
  304. package/9095.min.js +1 -1
  305. package/9095.min.js.LICENSE.txt +1 -1
  306. package/91.min.js +1 -1
  307. package/91.min.js.LICENSE.txt +1 -1
  308. package/9113.min.js.LICENSE.txt +1 -1
  309. package/9149.min.js +1 -1
  310. package/9149.min.js.LICENSE.txt +1 -1
  311. package/917.min.js.LICENSE.txt +1 -1
  312. package/9213.min.js.LICENSE.txt +1 -1
  313. package/9234.min.js +1 -1
  314. package/9234.min.js.LICENSE.txt +1 -1
  315. package/9287.min.js.LICENSE.txt +1 -1
  316. package/9312.min.js +1 -1
  317. package/9312.min.js.LICENSE.txt +1 -1
  318. package/9438.min.js +1 -1
  319. package/9438.min.js.LICENSE.txt +1 -1
  320. package/9475.min.js +1 -1
  321. package/9475.min.js.LICENSE.txt +1 -1
  322. package/9648.min.js.LICENSE.txt +1 -1
  323. package/9754.min.js.LICENSE.txt +1 -1
  324. package/9825.min.js.LICENSE.txt +1 -1
  325. package/986.min.js +1 -1
  326. package/986.min.js.LICENSE.txt +1 -1
  327. package/9907.min.js +1 -1
  328. package/9907.min.js.LICENSE.txt +1 -1
  329. package/9915.min.js +1 -1
  330. package/9915.min.js.LICENSE.txt +1 -1
  331. package/9944.min.js +1 -1
  332. package/9944.min.js.LICENSE.txt +1 -1
  333. package/9950.min.js +1 -1
  334. package/9950.min.js.LICENSE.txt +1 -1
  335. package/9965.min.js.LICENSE.txt +1 -1
  336. package/9966.min.js +1 -1
  337. package/9966.min.js.LICENSE.txt +1 -1
  338. package/basic_dist_browser_index_js.js +2 -2
  339. package/browser/index.js +5 -5
  340. package/cjs/index.js +5 -5
  341. package/effects_bubble_dist_browser_BubbleDrawer_js.js +1 -1
  342. package/effects_bubble_dist_browser_index_js.js +2 -2
  343. package/effects_shadow_dist_browser_ShadowDrawer_js.js +1 -1
  344. package/effects_shadow_dist_browser_index_js.js +2 -2
  345. package/effects_trail_dist_browser_TrailDrawer_js.js +2 -2
  346. package/effects_trail_dist_browser_index_js.js +2 -2
  347. package/engine_dist_browser_Core_Container_js.js +4 -4
  348. package/esm/index.js +5 -5
  349. package/full_dist_browser_index_js.js +2 -2
  350. package/interactions_external_attract_dist_browser_Attractor_js.js +1 -1
  351. package/interactions_external_attract_dist_browser_index_js.js +2 -2
  352. package/interactions_external_bounce_dist_browser_Bouncer_js.js +1 -1
  353. package/interactions_external_bounce_dist_browser_index_js.js +2 -2
  354. package/interactions_external_bubble_dist_browser_Bubbler_js.js +1 -1
  355. package/interactions_external_bubble_dist_browser_index_js.js +2 -2
  356. package/interactions_external_connect_dist_browser_Connector_js.js +1 -1
  357. package/interactions_external_connect_dist_browser_index_js.js +2 -2
  358. package/interactions_external_grab_dist_browser_Grabber_js.js +1 -1
  359. package/interactions_external_grab_dist_browser_index_js.js +2 -2
  360. package/interactions_external_particle_dist_browser_InteractivityParticleMaker_js.js +1 -1
  361. package/interactions_external_particle_dist_browser_index_js.js +2 -2
  362. package/interactions_external_pause_dist_browser_Pauser_js.js +1 -1
  363. package/interactions_external_pause_dist_browser_index_js.js +2 -2
  364. package/interactions_external_pop_dist_browser_Popper_js.js +1 -1
  365. package/interactions_external_pop_dist_browser_index_js.js +2 -2
  366. package/interactions_external_push_dist_browser_Pusher_js.js +1 -1
  367. package/interactions_external_push_dist_browser_index_js.js +2 -2
  368. package/interactions_external_remove_dist_browser_Remover_js.js +1 -1
  369. package/interactions_external_remove_dist_browser_index_js.js +2 -2
  370. package/interactions_external_repulse_dist_browser_Repulser_js.js +1 -1
  371. package/interactions_external_repulse_dist_browser_index_js.js +2 -2
  372. package/interactions_external_slow_dist_browser_Slower_js.js +1 -1
  373. package/interactions_external_slow_dist_browser_index_js.js +2 -2
  374. package/interactions_external_trail_dist_browser_TrailMaker_js.js +1 -1
  375. package/interactions_external_trail_dist_browser_index_js.js +2 -2
  376. package/interactions_light_dist_browser_ExternalLighter_js.js +1 -1
  377. package/interactions_light_dist_browser_ParticlesLighter_js.js +1 -1
  378. package/interactions_light_dist_browser_index_js.js +2 -2
  379. package/interactions_particles_attract_dist_browser_Attractor_js.js +1 -1
  380. package/interactions_particles_attract_dist_browser_index_js.js +2 -2
  381. package/interactions_particles_collisions_dist_browser_Collider_js.js +1 -1
  382. package/interactions_particles_collisions_dist_browser_OverlapPlugin_js.js +2 -2
  383. package/interactions_particles_collisions_dist_browser_index_js.js +2 -2
  384. package/interactions_particles_links_dist_browser_Linker_js.js +1 -1
  385. package/interactions_particles_links_dist_browser_LinksPlugin_js.js +1 -1
  386. package/interactions_particles_links_dist_browser_index_js.js +2 -2
  387. package/interactions_particles_links_dist_browser_interaction_js.js +1 -1
  388. package/interactions_particles_links_dist_browser_plugin_js.js +1 -1
  389. package/interactions_particles_repulse_dist_browser_Repulser_js.js +1 -1
  390. package/interactions_particles_repulse_dist_browser_index_js.js +2 -2
  391. package/move_base_dist_browser_BaseMover_js.js +1 -1
  392. package/move_base_dist_browser_index_js.js +2 -2
  393. package/move_parallax_dist_browser_ParallaxMover_js.js +1 -1
  394. package/move_parallax_dist_browser_index_js.js +2 -2
  395. package/package.json +59 -59
  396. package/paths_curlNoise_dist_browser_CurlNoiseGenerator_js.js +1 -1
  397. package/paths_curlNoise_dist_browser_index_js.js +2 -2
  398. package/paths_curves_dist_browser_CurvesPathGenerator_js.js +1 -1
  399. package/paths_curves_dist_browser_index_js.js +2 -2
  400. package/paths_fractalNoise_dist_browser_FractalNoiseGenerator_js.js +1 -1
  401. package/paths_fractalNoise_dist_browser_index_js.js +2 -2
  402. package/paths_perlinNoise_dist_browser_PerlinNoiseGenerator_js.js +1 -1
  403. package/paths_perlinNoise_dist_browser_index_js.js +2 -2
  404. package/paths_polygon_dist_browser_PolygonPathGenerator_js.js +1 -1
  405. package/paths_polygon_dist_browser_index_js.js +2 -2
  406. package/paths_simplexNoise_dist_browser_SimplexNoiseGenerator_js.js +1 -1
  407. package/paths_simplexNoise_dist_browser_index_js.js +2 -2
  408. package/paths_svg_dist_browser_SVGPathGenerator_js.js +1 -1
  409. package/paths_svg_dist_browser_index_js.js +2 -2
  410. package/paths_zigzag_dist_browser_ZigZagPathGenerator_js.js +1 -1
  411. package/paths_zigzag_dist_browser_index_js.js +2 -2
  412. package/pjs_dist_browser_index_js.js +2 -2
  413. package/plugins_absorbers_dist_browser_AbsorbersPlugin_js.js +1 -1
  414. package/plugins_absorbers_dist_browser_index_js.js +2 -2
  415. package/plugins_backgroundMask_dist_browser_BackgroundMaskPlugin_js.js +1 -1
  416. package/plugins_backgroundMask_dist_browser_index_js.js +2 -2
  417. package/plugins_canvasMask_dist_browser_CanvasMaskPlugin_js.js +1 -1
  418. package/plugins_canvasMask_dist_browser_index_js.js +2 -2
  419. package/plugins_colors_hex_dist_browser_HexColorManager_js.js +1 -1
  420. package/plugins_colors_hex_dist_browser_index_js.js +2 -2
  421. package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +2 -2
  422. package/plugins_colors_hsl_dist_browser_index_js.js +2 -2
  423. package/plugins_colors_hsv_dist_browser_HsvColorManager_js.js +2 -2
  424. package/plugins_colors_hsv_dist_browser_index_js.js +2 -2
  425. package/plugins_colors_hwb_dist_browser_HwbColorManager_js.js +2 -2
  426. package/plugins_colors_hwb_dist_browser_index_js.js +2 -2
  427. package/plugins_colors_lab_dist_browser_LabColorManager_js.js +2 -2
  428. package/plugins_colors_lab_dist_browser_index_js.js +2 -2
  429. package/plugins_colors_lch_dist_browser_LchColorManager_js.js +2 -2
  430. package/plugins_colors_lch_dist_browser_index_js.js +2 -2
  431. package/plugins_colors_named_dist_browser_NamedColorManager_js.js +1 -1
  432. package/plugins_colors_named_dist_browser_index_js.js +2 -2
  433. package/plugins_colors_oklab_dist_browser_OklabColorManager_js.js +1 -1
  434. package/plugins_colors_oklab_dist_browser_index_js.js +2 -2
  435. package/plugins_colors_oklch_dist_browser_OklchColorManager_js.js +2 -2
  436. package/plugins_colors_oklch_dist_browser_index_js.js +2 -2
  437. package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +2 -2
  438. package/plugins_colors_rgb_dist_browser_index_js.js +2 -2
  439. package/plugins_easings_back_dist_browser_index_js.js +2 -2
  440. package/plugins_easings_circ_dist_browser_index_js.js +2 -2
  441. package/plugins_easings_cubic_dist_browser_index_js.js +2 -2
  442. package/plugins_easings_expo_dist_browser_index_js.js +2 -2
  443. package/plugins_easings_linear_dist_browser_index_js.js +2 -2
  444. package/plugins_easings_quad_dist_browser_index_js.js +2 -2
  445. package/plugins_easings_quart_dist_browser_index_js.js +2 -2
  446. package/plugins_easings_quint_dist_browser_index_js.js +2 -2
  447. package/plugins_easings_sine_dist_browser_index_js.js +2 -2
  448. package/plugins_emittersShapes_canvas_dist_browser_EmittersCanvasShapeGenerator_js.js +2 -2
  449. package/plugins_emittersShapes_canvas_dist_browser_index_js.js +2 -2
  450. package/plugins_emittersShapes_circle_dist_browser_EmittersCircleShapeGenerator_js.js +2 -2
  451. package/plugins_emittersShapes_circle_dist_browser_index_js.js +2 -2
  452. package/plugins_emittersShapes_path_dist_browser_EmittersPathShapeGenerator_js.js +2 -2
  453. package/plugins_emittersShapes_path_dist_browser_index_js.js +2 -2
  454. package/plugins_emittersShapes_polygon_dist_browser_EmittersPolygonShapeGenerator_js.js +2 -2
  455. package/plugins_emittersShapes_polygon_dist_browser_index_js.js +2 -2
  456. package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +2 -2
  457. package/plugins_emittersShapes_square_dist_browser_index_js.js +2 -2
  458. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +4 -4
  459. package/plugins_emitters_dist_browser_ShapeManager_js.js +2 -2
  460. package/plugins_emitters_dist_browser_index_js.js +2 -2
  461. package/plugins_exports_image_dist_browser_ExportImagePlugin_js.js +1 -1
  462. package/plugins_exports_image_dist_browser_index_js.js +2 -2
  463. package/plugins_exports_json_dist_browser_ExportJSONPlugin_js.js +1 -1
  464. package/plugins_exports_json_dist_browser_index_js.js +2 -2
  465. package/plugins_exports_video_dist_browser_ExportVideoPlugin_js.js +1 -1
  466. package/plugins_exports_video_dist_browser_index_js.js +2 -2
  467. package/plugins_infection_dist_browser_InfectionPlugin_js.js +1 -1
  468. package/plugins_infection_dist_browser_ParticlesInfecter_js.js +1 -1
  469. package/plugins_infection_dist_browser_index_js.js +2 -2
  470. package/plugins_motion_dist_browser_MotionPlugin_js.js +1 -1
  471. package/plugins_motion_dist_browser_index_js.js +2 -2
  472. package/plugins_poisson_dist_browser_PoissonDiscPlugin_js.js +1 -1
  473. package/plugins_poisson_dist_browser_index_js.js +2 -2
  474. package/plugins_polygonMask_dist_browser_PolygonMaskPlugin_js.js +1 -1
  475. package/plugins_polygonMask_dist_browser_index_js.js +2 -2
  476. package/plugins_sounds_dist_browser_SoundsPlugin_js.js +2 -2
  477. package/plugins_sounds_dist_browser_index_js.js +2 -2
  478. package/plugins_trail_dist_browser_TrailPlugin_js.js +1 -1
  479. package/plugins_trail_dist_browser_index_js.js +2 -2
  480. package/report.html +1 -1
  481. package/shapes_arrow_dist_browser_ArrowDrawer_js.js +1 -1
  482. package/shapes_arrow_dist_browser_index_js.js +2 -2
  483. package/shapes_cards_dist_browser_clubs_ClubDrawer_js.js +1 -1
  484. package/shapes_cards_dist_browser_diamonds_DiamondDrawer_js.js +1 -1
  485. package/shapes_cards_dist_browser_hearts_HeartDrawer_js.js +1 -1
  486. package/shapes_cards_dist_browser_index_js.js +6 -6
  487. package/shapes_cards_dist_browser_spades_SpadeDrawer_js.js +1 -1
  488. package/shapes_circle_dist_browser_CircleDrawer_js.js +1 -1
  489. package/shapes_circle_dist_browser_index_js.js +2 -2
  490. package/shapes_cog_dist_browser_CogDrawer_js.js +1 -1
  491. package/shapes_cog_dist_browser_index_js.js +2 -2
  492. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +1 -1
  493. package/shapes_emoji_dist_browser_index_js.js +2 -2
  494. package/shapes_heart_dist_browser_HeartDrawer_js.js +1 -1
  495. package/shapes_heart_dist_browser_index_js.js +2 -2
  496. package/shapes_image_dist_browser_GifUtils_Utils_js.js +1 -1
  497. package/shapes_image_dist_browser_ImageDrawer_js.js +1 -1
  498. package/shapes_image_dist_browser_ImagePreloader_js.js +1 -1
  499. package/shapes_image_dist_browser_Utils_js.js +1 -1
  500. package/shapes_image_dist_browser_index_js.js +2 -2
  501. package/shapes_infinity_dist_browser_InfinityDrawer_js.js +1 -1
  502. package/shapes_infinity_dist_browser_index_js.js +2 -2
  503. package/shapes_line_dist_browser_LineDrawer_js.js +1 -1
  504. package/shapes_line_dist_browser_index_js.js +2 -2
  505. package/shapes_path_dist_browser_PathDrawer_js.js +1 -1
  506. package/shapes_path_dist_browser_index_js.js +2 -2
  507. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +1 -1
  508. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +1 -1
  509. package/shapes_polygon_dist_browser_index_js.js +2 -2
  510. package/shapes_rounded-polygon_dist_browser_RoundedPolygonDrawer_js.js +1 -1
  511. package/shapes_rounded-polygon_dist_browser_index_js.js +2 -2
  512. package/shapes_rounded-rect_dist_browser_RoundedRectDrawer_js.js +1 -1
  513. package/shapes_rounded-rect_dist_browser_index_js.js +2 -2
  514. package/shapes_spiral_dist_browser_SpiralDrawer_js.js +1 -1
  515. package/shapes_spiral_dist_browser_index_js.js +2 -2
  516. package/shapes_square_dist_browser_SquareDrawer_js.js +1 -1
  517. package/shapes_square_dist_browser_index_js.js +2 -2
  518. package/shapes_star_dist_browser_StarDrawer_js.js +1 -1
  519. package/shapes_star_dist_browser_index_js.js +2 -2
  520. package/shapes_text_dist_browser_TextDrawer_js.js +1 -1
  521. package/shapes_text_dist_browser_index_js.js +2 -2
  522. package/slim_dist_browser_index_js.js +2 -2
  523. package/tsparticles.all.bundle.js +7 -7
  524. package/tsparticles.all.bundle.min.js +1 -1
  525. package/tsparticles.all.bundle.min.js.LICENSE.txt +1 -1
  526. package/tsparticles.all.js +6 -6
  527. package/tsparticles.all.min.js +1 -1
  528. package/tsparticles.all.min.js.LICENSE.txt +1 -1
  529. package/umd/index.js +5 -5
  530. package/updaters_color_dist_browser_ColorUpdater_js.js +1 -1
  531. package/updaters_color_dist_browser_index_js.js +2 -2
  532. package/updaters_destroy_dist_browser_DestroyUpdater_js.js +1 -1
  533. package/updaters_destroy_dist_browser_index_js.js +2 -2
  534. package/updaters_gradient_dist_browser_GradientUpdater_js.js +1 -1
  535. package/updaters_gradient_dist_browser_index_js.js +2 -2
  536. package/updaters_life_dist_browser_LifeUpdater_js.js +1 -1
  537. package/updaters_life_dist_browser_index_js.js +2 -2
  538. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +1 -1
  539. package/updaters_opacity_dist_browser_index_js.js +2 -2
  540. package/updaters_orbit_dist_browser_OrbitUpdater_js.js +1 -1
  541. package/updaters_orbit_dist_browser_index_js.js +2 -2
  542. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +1 -1
  543. package/updaters_outModes_dist_browser_index_js.js +2 -2
  544. package/updaters_roll_dist_browser_RollUpdater_js.js +1 -1
  545. package/updaters_roll_dist_browser_index_js.js +2 -2
  546. package/updaters_rotate_dist_browser_RotateUpdater_js.js +1 -1
  547. package/updaters_rotate_dist_browser_index_js.js +2 -2
  548. package/updaters_size_dist_browser_SizeUpdater_js.js +1 -1
  549. package/updaters_size_dist_browser_index_js.js +2 -2
  550. package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +1 -1
  551. package/updaters_strokeColor_dist_browser_index_js.js +2 -2
  552. package/updaters_tilt_dist_browser_TiltUpdater_js.js +1 -1
  553. package/updaters_tilt_dist_browser_index_js.js +2 -2
  554. package/updaters_twinkle_dist_browser_TwinkleUpdater_js.js +1 -1
  555. package/updaters_twinkle_dist_browser_index_js.js +2 -2
  556. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +1 -1
  557. package/updaters_wobble_dist_browser_index_js.js +2 -2
  558. package/utils_simplexNoise_dist_browser_index_js.js +1 -1
@@ -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.2
7
+ * v4.0.0-alpha.3
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -34,7 +34,7 @@ return /******/ (() => { // webpackBootstrap
34
34
  \************************************************/
35
35
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
36
36
 
37
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Engine: () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"../../engine/dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/Types/EventType.js */ \"../../engine/dist/browser/Enums/Types/EventType.js\");\n/* harmony import */ var _Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Utils/LogUtils.js */ \"../../engine/dist/browser/Utils/LogUtils.js\");\n/* harmony import */ var _Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/MathUtils.js */ \"../../engine/dist/browser/Utils/MathUtils.js\");\n\n\n\n\n\n\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__.getLogger)().error(`${response.status.toString()} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = domContainer => {\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag) {\n canvasEl = domContainer;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] ??= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n const existingCanvases = domContainer.getElementsByTagName(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag),\n foundCanvas = existingCanvases[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasFirstIndex];\n if (foundCanvas) {\n canvasEl = foundCanvas;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n canvasEl = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().createElement(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n const fullPercent = \"100%\";\n if (!canvasEl.style.width) {\n canvasEl.style.width = fullPercent;\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = fullPercent;\n }\n return canvasEl;\n },\n getDomContainer = (id, source) => {\n let domContainer = source ?? (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)().body.append(domContainer);\n return domContainer;\n };\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__.EventDispatcher();\n this._initialized = false;\n this._loadPromises = new Set();\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map()\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"4.0.0-alpha.2\";\n }\n addColorManager(manager) {\n this.colorManagers.set(manager.key, manager);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(_Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_3__.EventType.configAdded, {\n data: {\n name: key,\n config\n }\n });\n }\n addEasing(name, easing) {\n if (this.easingFunctions.get(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n }\n addEffect(effect, drawer) {\n if (this.getEffectDrawer(effect)) {\n return;\n }\n this.effectDrawers.set(effect, drawer);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n addInteractor(name, interactorInitializer) {\n this._initializers.interactors.set(name, interactorInitializer);\n }\n addMover(name, moverInitializer) {\n this._initializers.movers.set(name, moverInitializer);\n }\n addParticleUpdater(name, updaterInitializer) {\n this._initializers.updaters.set(name, updaterInitializer);\n }\n addPathGenerator(name, generator) {\n if (this.getPathGenerator(name)) {\n return;\n }\n this.pathGenerators.set(name, generator);\n }\n addPlugin(plugin) {\n if (this.getPlugin(plugin.id)) {\n return;\n }\n this.plugins.push(plugin);\n }\n addPreset(preset, options, override = false) {\n if (!(override || !this.getPreset(preset))) {\n return;\n }\n this.presets.set(preset, options);\n }\n addShape(drawer) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n }\n checkVersion(pluginVersion) {\n if (this.version === pluginVersion) {\n return;\n }\n throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${pluginVersion}`);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? (value => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n async init() {\n if (this._initialized) {\n return;\n }\n for (const loadPromise of this._loadPromises) {\n await loadPromise(this);\n }\n this._loadPromises.clear();\n this._initialized = true;\n }\n item(index) {\n const {\n items\n } = this,\n item = items[index];\n if (item?.destroyed) {\n items.splice(index, _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.removeDeleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n await this.init();\n const {\n Container\n } = await __webpack_require__.e(/*! import() */ \"engine_dist_browser_Core_Container_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Container.js */ \"../../engine/dist/browser/Core/Container.js\")),\n id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_5__.getRandom)() * _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadRandomFactor).toString()}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options,\n currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(options, index),\n {\n items\n } = this,\n oldIndex = items.findIndex(v => v.id.description === id),\n newItem = new Container(this, id, currentOptions);\n if (oldIndex >= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadMinIndex) {\n const old = this.item(oldIndex),\n deleteCount = old ? _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.one : _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n } else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element),\n canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => {\n plugin.loadOptions(options, sourceOptions);\n });\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n register(...loadPromises) {\n if (this._initialized) {\n throw new Error(`Register plugins can only be done before calling tsParticles.load()`);\n }\n for (const loadPromise of loadPromises) {\n this._loadPromises.add(loadPromise);\n }\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const {\n items\n } = this;\n if (!items.length) {\n throw new Error(\"Click handlers can only be set after calling tsParticles.load()\");\n }\n items.forEach(item => {\n item.addClickHandler(callback);\n });\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Core/Engine.js?\n}");
37
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Engine: () => (/* binding */ Engine)\n/* harmony export */ });\n/* harmony import */ var _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n/* harmony import */ var _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/EventDispatcher.js */ \"../../engine/dist/browser/Utils/EventDispatcher.js\");\n/* harmony import */ var _Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/Types/EventType.js */ \"../../engine/dist/browser/Enums/Types/EventType.js\");\n/* harmony import */ var _Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Utils/LogUtils.js */ \"../../engine/dist/browser/Utils/LogUtils.js\");\n/* harmony import */ var _Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/MathUtils.js */ \"../../engine/dist/browser/Utils/MathUtils.js\");\n\n\n\n\n\n\nconst fullPercent = \"100%\";\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return await response.json();\n }\n (0,_Utils_LogUtils_js__WEBPACK_IMPORTED_MODULE_4__.getLogger)().error(`${response.status.toString()} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = domContainer => {\n const documentSafe = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)();\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag) {\n canvasEl = domContainer;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] ??= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n const existingCanvases = domContainer.getElementsByTagName(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag),\n foundCanvas = existingCanvases[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasFirstIndex];\n if (foundCanvas) {\n canvasEl = foundCanvas;\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedFalse;\n } else {\n canvasEl = documentSafe.createElement(_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.canvasTag);\n canvasEl.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n canvasEl.style.width ||= fullPercent;\n canvasEl.style.height ||= fullPercent;\n return canvasEl;\n },\n getDomContainer = (id, source) => {\n const documentSafe = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.safeDocument)();\n let domContainer = source ?? document.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = documentSafe.createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedAttribute] = _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.generatedTrue;\n documentSafe.body.append(domContainer);\n return domContainer;\n };\nclass Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new _Utils_EventDispatcher_js__WEBPACK_IMPORTED_MODULE_2__.EventDispatcher();\n this._initialized = false;\n this._loadPromises = new Set();\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map()\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"4.0.0-alpha.3\";\n }\n addColorManager(manager) {\n this.colorManagers.set(manager.key, manager);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(_Enums_Types_EventType_js__WEBPACK_IMPORTED_MODULE_3__.EventType.configAdded, {\n data: {\n name: key,\n config\n }\n });\n }\n addEasing(name, easing) {\n if (this.easingFunctions.get(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n }\n addEffect(effect, drawer) {\n if (this.getEffectDrawer(effect)) {\n return;\n }\n this.effectDrawers.set(effect, drawer);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n addInteractor(name, interactorInitializer) {\n this._initializers.interactors.set(name, interactorInitializer);\n }\n addMover(name, moverInitializer) {\n this._initializers.movers.set(name, moverInitializer);\n }\n addParticleUpdater(name, updaterInitializer) {\n this._initializers.updaters.set(name, updaterInitializer);\n }\n addPathGenerator(name, generator) {\n if (this.getPathGenerator(name)) {\n return;\n }\n this.pathGenerators.set(name, generator);\n }\n addPlugin(plugin) {\n if (this.getPlugin(plugin.id)) {\n return;\n }\n this.plugins.push(plugin);\n }\n addPreset(preset, options, override = false) {\n if (!(override || !this.getPreset(preset))) {\n return;\n }\n this.presets.set(preset, options);\n }\n addShape(drawer) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n }\n checkVersion(pluginVersion) {\n if (this.version === pluginVersion) {\n return;\n }\n throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${pluginVersion}`);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? (value => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n async init() {\n if (this._initialized) {\n return;\n }\n const executed = new Set(),\n allLoaders = new Set(this._loadPromises),\n stack = [...allLoaders];\n while (stack.length) {\n const loader = stack.shift();\n if (!loader) {\n continue;\n }\n if (executed.has(loader)) {\n continue;\n }\n executed.add(loader);\n const inner = [],\n origRegister = this.register.bind(this);\n this.register = (...loaders) => {\n inner.push(...loaders);\n for (const loader of loaders) {\n allLoaders.add(loader);\n }\n };\n await loader(this);\n this.register = origRegister;\n stack.unshift(...inner);\n this._loadPromises.delete(loader);\n }\n this._loadPromises.clear();\n for (const loader of allLoaders) {\n this._loadPromises.add(loader);\n }\n this._initialized = true;\n }\n item(index) {\n const {\n items\n } = this,\n item = items[index];\n if (item?.destroyed) {\n items.splice(index, _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.removeDeleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n await this.init();\n const {\n Container\n } = await __webpack_require__.e(/*! import() */ \"engine_dist_browser_Core_Container_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Container.js */ \"../../engine/dist/browser/Core/Container.js\")),\n id = params.id ?? params.element?.id ?? `tsparticles${Math.floor((0,_Utils_MathUtils_js__WEBPACK_IMPORTED_MODULE_5__.getRandom)() * _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadRandomFactor).toString()}`,\n {\n index,\n url\n } = params,\n options = url ? await getDataFromUrl({\n fallback: params.options,\n url,\n index\n }) : params.options,\n currentOptions = (0,_Utils_Utils_js__WEBPACK_IMPORTED_MODULE_1__.itemFromSingleOrMultiple)(options, index),\n {\n items\n } = this,\n oldIndex = items.findIndex(v => v.id.description === id),\n newItem = new Container(this, id, currentOptions);\n if (oldIndex >= _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.loadMinIndex) {\n const old = this.item(oldIndex),\n deleteCount = old ? _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.one : _Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n } else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element),\n canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => {\n plugin.loadOptions(options, sourceOptions);\n });\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n register(...loadPromises) {\n if (this._initialized) {\n throw new Error(`Register plugins can only be done before calling tsParticles.load()`);\n }\n for (const loadPromise of loadPromises) {\n this._loadPromises.add(loadPromise);\n }\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const {\n items\n } = this;\n if (!items.length) {\n throw new Error(\"Click handlers can only be set after calling tsParticles.load()\");\n }\n items.forEach(item => {\n item.addClickHandler(callback);\n });\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Core/Engine.js?\n}");
38
38
 
39
39
  /***/ },
40
40
 
@@ -744,7 +744,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
744
744
  \******************************************************/
745
745
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
746
746
 
747
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alterHsl: () => (/* binding */ alterHsl),\n/* harmony export */ clear: () => (/* binding */ clear),\n/* harmony export */ clearDrawPlugin: () => (/* binding */ clearDrawPlugin),\n/* harmony export */ drawAfterEffect: () => (/* binding */ drawAfterEffect),\n/* harmony export */ drawBeforeEffect: () => (/* binding */ drawBeforeEffect),\n/* harmony export */ drawLine: () => (/* binding */ drawLine),\n/* harmony export */ drawParticle: () => (/* binding */ drawParticle),\n/* harmony export */ drawParticlePlugin: () => (/* binding */ drawParticlePlugin),\n/* harmony export */ drawPlugin: () => (/* binding */ drawPlugin),\n/* harmony export */ drawShape: () => (/* binding */ drawShape),\n/* harmony export */ drawShapeAfterDraw: () => (/* binding */ drawShapeAfterDraw),\n/* harmony export */ drawShapeBeforeDraw: () => (/* binding */ drawShapeBeforeDraw),\n/* harmony export */ paintBase: () => (/* binding */ paintBase),\n/* harmony export */ paintImage: () => (/* binding */ paintImage)\n/* harmony export */ });\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Enums_Types_AlterType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Enums/Types/AlterType.js */ \"../../engine/dist/browser/Enums/Types/AlterType.js\");\n\n\nfunction clearDrawPlugin(context, plugin, delta) {\n if (!plugin.clearDraw) {\n return;\n }\n plugin.clearDraw(context, delta);\n}\nfunction drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nfunction paintBase(context, dimension, baseColor) {\n context.fillStyle = baseColor ?? \"rgba(0,0,0,0)\";\n context.fillRect(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, dimension.width, dimension.height);\n}\nfunction paintImage(context, dimension, image, opacity) {\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(image, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, dimension.width, dimension.height);\n context.globalAlpha = 1;\n}\nfunction clear(context, dimension) {\n context.clearRect(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, dimension.width, dimension.height);\n}\nfunction drawParticle(data) {\n const {\n container,\n context,\n particle,\n delta,\n colorStyles,\n radius,\n opacity,\n transform\n } = data,\n pos = particle.getPosition(),\n angle = particle.getAngle(),\n rotateData = {\n sin: Math.sin(angle),\n cos: Math.cos(angle)\n },\n rotating = particle.isRotating,\n transformData = {\n a: rotateData.cos * (transform.a ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.defaultTransform.a),\n b: rotating ? rotateData.sin * (transform.b ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.identity) : transform.b ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.defaultTransform.b,\n c: rotating ? -rotateData.sin * (transform.c ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.identity) : transform.c ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.defaultTransform.c,\n d: rotateData.cos * (transform.d ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.defaultTransform.d)\n };\n context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const strokeWidth = particle.strokeWidth ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth;\n context.lineWidth = strokeWidth;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n const drawData = {\n container,\n context,\n particle,\n radius,\n opacity,\n delta,\n transformData,\n strokeWidth\n };\n drawBeforeEffect(drawData);\n drawShapeBeforeDraw(drawData);\n drawShape(drawData);\n drawShapeAfterDraw(drawData);\n drawAfterEffect(drawData);\n context.resetTransform();\n}\nfunction drawAfterEffect(data) {\n const {\n container,\n context,\n particle,\n radius,\n opacity,\n strokeWidth,\n delta,\n transformData\n } = data;\n if (!particle.effect) {\n return;\n }\n const drawer = container.effectDrawers.get(particle.effect),\n drawFunc = drawer?.drawAfter;\n if (!drawFunc) {\n return;\n }\n drawFunc({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n fill: particle.shapeFill,\n stroke: strokeWidth > _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth || !particle.shapeFill,\n transformData: {\n ...transformData\n }\n });\n}\nfunction drawBeforeEffect(data) {\n const {\n container,\n context,\n particle,\n radius,\n opacity,\n strokeWidth,\n delta,\n transformData\n } = data;\n if (!particle.effect) {\n return;\n }\n const drawer = container.effectDrawers.get(particle.effect);\n if (!drawer?.drawBefore) {\n return;\n }\n drawer.drawBefore({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n fill: particle.shapeFill,\n stroke: strokeWidth > _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth || !particle.shapeFill,\n transformData: {\n ...transformData\n }\n });\n}\nfunction drawShape(data) {\n const {\n container,\n context,\n particle,\n radius,\n opacity,\n delta,\n strokeWidth,\n transformData\n } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n context.beginPath();\n drawer.draw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n fill: particle.shapeFill,\n stroke: strokeWidth > _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth || !particle.shapeFill,\n transformData: {\n ...transformData\n }\n });\n if (particle.shapeClose) {\n context.closePath();\n }\n if (strokeWidth > _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth) {\n context.stroke();\n }\n if (particle.shapeFill) {\n context.fill();\n }\n}\nfunction drawShapeAfterDraw(data) {\n const {\n container,\n context,\n particle,\n radius,\n opacity,\n strokeWidth,\n delta,\n transformData\n } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer?.afterDraw) {\n return;\n }\n drawer.afterDraw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n fill: particle.shapeFill,\n stroke: strokeWidth > _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth || !particle.shapeFill,\n transformData: {\n ...transformData\n }\n });\n}\nfunction drawShapeBeforeDraw(data) {\n const {\n container,\n context,\n particle,\n radius,\n opacity,\n strokeWidth,\n delta,\n transformData\n } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer?.beforeDraw) {\n return;\n }\n drawer.beforeDraw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n fill: particle.shapeFill,\n stroke: strokeWidth > _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth || !particle.shapeFill,\n transformData: {\n ...transformData\n }\n });\n}\nfunction drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n plugin.draw(context, delta);\n}\nfunction drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n plugin.drawParticle(context, particle, delta);\n}\nfunction alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === _Enums_Types_AlterType_js__WEBPACK_IMPORTED_MODULE_1__.AlterType.darken ? -_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.lFactor : _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.lFactor) * value\n };\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/CanvasUtils.js?\n}");
747
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alterHsl: () => (/* binding */ alterHsl),\n/* harmony export */ clear: () => (/* binding */ clear),\n/* harmony export */ clearDrawPlugin: () => (/* binding */ clearDrawPlugin),\n/* harmony export */ drawAfterEffect: () => (/* binding */ drawAfterEffect),\n/* harmony export */ drawBeforeEffect: () => (/* binding */ drawBeforeEffect),\n/* harmony export */ drawLine: () => (/* binding */ drawLine),\n/* harmony export */ drawParticle: () => (/* binding */ drawParticle),\n/* harmony export */ drawParticlePlugin: () => (/* binding */ drawParticlePlugin),\n/* harmony export */ drawPlugin: () => (/* binding */ drawPlugin),\n/* harmony export */ drawShape: () => (/* binding */ drawShape),\n/* harmony export */ drawShapeAfterDraw: () => (/* binding */ drawShapeAfterDraw),\n/* harmony export */ drawShapeBeforeDraw: () => (/* binding */ drawShapeBeforeDraw),\n/* harmony export */ paintBase: () => (/* binding */ paintBase),\n/* harmony export */ paintImage: () => (/* binding */ paintImage)\n/* harmony export */ });\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Enums_Types_AlterType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Enums/Types/AlterType.js */ \"../../engine/dist/browser/Enums/Types/AlterType.js\");\n\n\nfunction clearDrawPlugin(context, plugin, delta) {\n if (!plugin.clearDraw) {\n return;\n }\n plugin.clearDraw(context, delta);\n}\nfunction drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nfunction paintBase(context, dimension, baseColor) {\n context.fillStyle = baseColor ?? \"rgba(0,0,0,0)\";\n context.fillRect(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, dimension.width, dimension.height);\n}\nfunction paintImage(context, dimension, image, opacity) {\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(image, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, dimension.width, dimension.height);\n context.globalAlpha = 1;\n}\nfunction clear(context, dimension) {\n context.clearRect(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, dimension.width, dimension.height);\n}\nfunction drawParticle(data) {\n const {\n container,\n context,\n particle,\n delta,\n colorStyles,\n radius,\n opacity,\n transform\n } = data,\n pos = particle.getPosition(),\n transformData = particle.getTransformData(transform);\n context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const strokeWidth = particle.strokeWidth ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth;\n context.lineWidth = strokeWidth;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n const drawData = {\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n fill: particle.shapeFill,\n stroke: strokeWidth > _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.minStrokeWidth || !particle.shapeFill,\n transformData\n };\n drawBeforeEffect(container, drawData);\n drawShapeBeforeDraw(container, drawData);\n drawShape(container, drawData);\n drawShapeAfterDraw(container, drawData);\n drawAfterEffect(container, drawData);\n context.resetTransform();\n}\nfunction drawAfterEffect(container, data) {\n const {\n particle\n } = data;\n if (!particle.effect) {\n return;\n }\n const drawer = container.effectDrawers.get(particle.effect),\n drawFunc = drawer?.drawAfter;\n if (!drawFunc) {\n return;\n }\n drawFunc(data);\n}\nfunction drawBeforeEffect(container, data) {\n const {\n particle\n } = data;\n if (!particle.effect) {\n return;\n }\n const drawer = container.effectDrawers.get(particle.effect);\n if (!drawer?.drawBefore) {\n return;\n }\n drawer.drawBefore(data);\n}\nfunction drawShape(container, data) {\n const {\n context,\n particle,\n stroke\n } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n context.beginPath();\n drawer.draw(data);\n if (particle.shapeClose) {\n context.closePath();\n }\n if (stroke) {\n context.stroke();\n }\n if (particle.shapeFill) {\n context.fill();\n }\n}\nfunction drawShapeAfterDraw(container, data) {\n const {\n particle\n } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer?.afterDraw) {\n return;\n }\n drawer.afterDraw(data);\n}\nfunction drawShapeBeforeDraw(container, data) {\n const {\n particle\n } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer?.beforeDraw) {\n return;\n }\n drawer.beforeDraw(data);\n}\nfunction drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n plugin.draw(context, delta);\n}\nfunction drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n plugin.drawParticle(context, particle, delta);\n}\nfunction alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === _Enums_Types_AlterType_js__WEBPACK_IMPORTED_MODULE_1__.AlterType.darken ? -_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.lFactor : _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_0__.lFactor) * value\n };\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/CanvasUtils.js?\n}");
748
748
 
749
749
  /***/ },
750
750
 
@@ -754,7 +754,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
754
754
  \*****************************************************/
755
755
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
756
756
 
757
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ colorMix: () => (/* binding */ colorMix),\n/* harmony export */ colorToHsl: () => (/* binding */ colorToHsl),\n/* harmony export */ colorToRgb: () => (/* binding */ colorToRgb),\n/* harmony export */ getHslAnimationFromHsl: () => (/* binding */ getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* binding */ getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* binding */ getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* binding */ getLinkRandomColor),\n/* harmony export */ getRandomRgbColor: () => (/* binding */ getRandomRgbColor),\n/* harmony export */ getStyleFromHsl: () => (/* binding */ getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* binding */ getStyleFromRgb),\n/* harmony export */ hslToRgb: () => (/* binding */ hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* binding */ hslaToRgba),\n/* harmony export */ rangeColorToHsl: () => (/* binding */ rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* binding */ rangeColorToRgb),\n/* harmony export */ rgbToHsl: () => (/* binding */ rgbToHsl),\n/* harmony export */ stringToAlpha: () => (/* binding */ stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* binding */ stringToRgb),\n/* harmony export */ updateColor: () => (/* binding */ updateColor),\n/* harmony export */ updateColorValue: () => (/* binding */ updateColorValue)\n/* harmony export */ });\n/* harmony import */ var _MathUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MathUtils.js */ \"../../engine/dist/browser/Utils/MathUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TypeUtils.js */ \"../../engine/dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/AnimationStatus.js */ \"../../engine/dist/browser/Enums/AnimationStatus.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n\n\n\n\n\nfunction stringToRgba(engine, input) {\n if (!input) {\n return;\n }\n for (const manager of engine.colorManagers.values()) {\n if (manager.accepts(input)) {\n return manager.parseString(input);\n }\n }\n return undefined;\n}\nfunction rangeColorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(color.value)) {\n return colorToRgb(engine, color.value, index, useIndex);\n }\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(color.value)) {\n const value = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_4__.itemFromArray)(color.value, index, useIndex);\n if (!value) {\n return;\n }\n return rangeColorToRgb(engine, {\n value\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n return undefined;\n}\nfunction colorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(color.value)) {\n return color.value === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue ? getRandomRgbColor() : stringToRgb(engine, color.value);\n }\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(color.value)) {\n const value = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_4__.itemFromArray)(color.value, index, useIndex);\n if (!value) {\n return;\n }\n return colorToRgb(engine, {\n value\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n return undefined;\n}\nfunction colorToHsl(engine, color, index, useIndex = true) {\n const rgb = colorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rangeColorToHsl(engine, color, index, useIndex = true) {\n const rgb = rangeColorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rgbToHsl(color) {\n const r1 = color.r / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax,\n g1 = color.g / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax,\n b1 = color.b / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax,\n max = Math.max(r1, g1, b1),\n min = Math.min(r1, g1, b1),\n res = {\n h: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMin,\n l: (max + min) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half,\n s: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin\n };\n if (max !== min) {\n res.s = res.l < _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? (max - min) / (max + min) : (max - min) / (_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double - max - min);\n if (r1 === max) {\n res.h = (g1 - b1) / (max - min);\n } else if (g1 === max) {\n res.h = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double + (b1 - r1) / (max - min);\n } else {\n res.h = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double + (r1 - g1) / (max - min);\n }\n }\n res.l *= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax;\n res.s *= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax;\n res.h *= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hPhase;\n if (res.h < _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMin) {\n res.h += _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax;\n }\n if (res.h >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax) {\n res.h -= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax;\n }\n return res;\n}\nfunction stringToAlpha(engine, input) {\n return stringToRgba(engine, input)?.a;\n}\nfunction stringToRgb(engine, input) {\n return stringToRgba(engine, input);\n}\nfunction hslToRgb(hsl) {\n const h = (hsl.h % _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax + _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax) % _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax,\n s = Math.max(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin, Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax, hsl.s)),\n l = Math.max(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMin, Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax, hsl.l)),\n hNormalized = h / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax,\n sNormalized = s / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax,\n lNormalized = l / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax;\n if (s === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin) {\n const grayscaleValue = Math.round(lNormalized * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax);\n return {\n r: grayscaleValue,\n g: grayscaleValue,\n b: grayscaleValue\n };\n }\n const channel = (temp1, temp2, temp3) => {\n const temp3Min = 0,\n temp3Max = 1;\n if (temp3 < temp3Min) {\n temp3++;\n }\n if (temp3 > temp3Max) {\n temp3--;\n }\n if (temp3 * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sextuple < temp3Max) {\n return temp1 + (temp2 - temp1) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sextuple * temp3;\n }\n if (temp3 * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double < temp3Max) {\n return temp2;\n }\n if (temp3 * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.triple < temp3Max * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double) {\n const temp3Offset = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.triple;\n return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sextuple;\n }\n return temp1;\n },\n temp1 = lNormalized < _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? lNormalized * (_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sNormalizedOffset + sNormalized) : lNormalized + sNormalized - lNormalized * sNormalized,\n temp2 = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double * lNormalized - temp1,\n phaseThird = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.phaseNumerator / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.triple,\n red = Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax * channel(temp2, temp1, hNormalized + phaseThird)),\n green = Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax * channel(temp2, temp1, hNormalized)),\n blue = Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax * channel(temp2, temp1, hNormalized - phaseThird));\n return {\n r: Math.round(red),\n g: Math.round(green),\n b: Math.round(blue)\n };\n}\nfunction hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r\n };\n}\nfunction getRandomRgbColor(min) {\n const fixedMin = min ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultRgbMin,\n fixedMax = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax + _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.identity,\n getRgbInRangeValue = () => Math.floor((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandomInRange)(fixedMin, fixedMax));\n return {\n b: getRgbInRangeValue(),\n g: getRgbInRangeValue(),\n r: getRgbInRangeValue()\n };\n}\nfunction getStyleFromRgb(color, hdr, opacity) {\n return hdr ? getHdrStyleFromRgb(color, opacity) : getSdrStyleFromRgb(color, opacity);\n}\nfunction getHdrStyleFromRgb(color, opacity) {\n return `color(display-p3 ${(color.r / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax).toString()} ${(color.g / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax).toString()} ${(color.b / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax).toString()} / ${(opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity).toString()})`;\n}\nfunction getSdrStyleFromRgb(color, opacity) {\n return `rgba(${color.r.toString()}, ${color.g.toString()}, ${color.b.toString()}, ${(opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity).toString()})`;\n}\nfunction getStyleFromHsl(color, hdr, opacity) {\n return hdr ? getHdrStyleFromHsl(color, opacity) : getSdrStyleFromHsl(color, opacity);\n}\nfunction getHdrStyleFromHsl(color, opacity) {\n return getHdrStyleFromRgb(hslToRgb(color), opacity);\n}\nfunction getSdrStyleFromHsl(color, opacity) {\n return `hsla(${color.h.toString()}, ${color.s.toString()}%, ${color.l.toString()}%, ${(opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity).toString()})`;\n}\nfunction colorMix(color1, color2, size1, size2) {\n let rgb1 = color1,\n rgb2 = color2;\n if (!Object.hasOwn(rgb1, \"r\")) {\n rgb1 = hslToRgb(color1);\n }\n if (!Object.hasOwn(rgb2, \"r\")) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.mix)(rgb1.b, rgb2.b, size1, size2),\n g: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.mix)(rgb1.g, rgb2.g, size1, size2),\n r: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.mix)(rgb1.r, rgb2.r, size1, size2)\n };\n}\nfunction getLinkColor(p1, p2, linkColor) {\n if (linkColor === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue) {\n return getRandomRgbColor();\n } else if (linkColor === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue) {\n const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(),\n destColor = p2?.getFillColor() ?? p2?.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n } else {\n const hslColor = sourceColor ?? destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n } else {\n return linkColor;\n }\n return undefined;\n}\nfunction getLinkRandomColor(engine, optColor, blink, consent) {\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(optColor) ? optColor : optColor.value;\n if (color === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue) {\n if (consent) {\n return rangeColorToRgb(engine, {\n value: color\n });\n }\n if (blink) {\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue;\n }\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue;\n } else if (color === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue) {\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue;\n } else {\n return rangeColorToRgb(engine, {\n value: color\n });\n }\n}\nfunction getHslFromAnimation(animation) {\n return animation !== undefined ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value\n } : undefined;\n}\nfunction getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h\n },\n s: {\n enable: false,\n value: hsl.s\n },\n l: {\n enable: false,\n value: hsl.l\n }\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.speed) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * reduceFactor;\n colorValue.decay = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.decayOffset - (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.decay);\n colorValue.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.increasing;\n colorValue.loops = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultLoops;\n colorValue.maxLoops = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.count);\n colorValue.time = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultTime;\n colorValue.delayTime = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds;\n if (!colorAnimation.sync) {\n colorValue.velocity *= (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)();\n colorValue.value *= (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)();\n }\n colorValue.initialValue = colorValue.value;\n colorValue.offset = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(colorAnimation.offset);\n } else {\n colorValue.velocity = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultVelocity;\n }\n}\nfunction updateColorValue(data, range, decrease, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minOffset = 0,\n velocityFactor = 3.6;\n if (!data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n data.time ??= 0;\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n const offset = data.offset ? (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.randomInRangeValue)(data.offset) : minOffset,\n velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor,\n decay = data.decay ?? identity,\n max = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(range),\n min = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(range);\n if (!decrease || data.status === _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.increasing) {\n data.value += velocity;\n if (data.value > max) {\n data.loops ??= 0;\n data.loops++;\n if (decrease) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.decreasing;\n } else {\n data.value -= max;\n }\n }\n } else {\n data.value -= velocity;\n const minValue = 0;\n if (data.value < minValue) {\n data.loops ??= 0;\n data.loops++;\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.increasing;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n data.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.clamp)(data.value, min, max);\n}\nfunction updateColor(color, delta) {\n if (!color) {\n return;\n }\n const {\n h,\n s,\n l\n } = color,\n ranges = {\n h: {\n min: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMin,\n max: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax\n },\n s: {\n min: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin,\n max: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax\n },\n l: {\n min: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMin,\n max: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax\n }\n };\n updateColorValue(h, ranges.h, false, delta);\n updateColorValue(s, ranges.s, true, delta);\n updateColorValue(l, ranges.l, true, delta);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/ColorUtils.js?\n}");
757
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ colorMix: () => (/* binding */ colorMix),\n/* harmony export */ colorToHsl: () => (/* binding */ colorToHsl),\n/* harmony export */ colorToRgb: () => (/* binding */ colorToRgb),\n/* harmony export */ getHslAnimationFromHsl: () => (/* binding */ getHslAnimationFromHsl),\n/* harmony export */ getHslFromAnimation: () => (/* binding */ getHslFromAnimation),\n/* harmony export */ getLinkColor: () => (/* binding */ getLinkColor),\n/* harmony export */ getLinkRandomColor: () => (/* binding */ getLinkRandomColor),\n/* harmony export */ getRandomRgbColor: () => (/* binding */ getRandomRgbColor),\n/* harmony export */ getStyleFromHsl: () => (/* binding */ getStyleFromHsl),\n/* harmony export */ getStyleFromRgb: () => (/* binding */ getStyleFromRgb),\n/* harmony export */ hslToRgb: () => (/* binding */ hslToRgb),\n/* harmony export */ hslaToRgba: () => (/* binding */ hslaToRgba),\n/* harmony export */ rangeColorToHsl: () => (/* binding */ rangeColorToHsl),\n/* harmony export */ rangeColorToRgb: () => (/* binding */ rangeColorToRgb),\n/* harmony export */ rgbToHsl: () => (/* binding */ rgbToHsl),\n/* harmony export */ stringToAlpha: () => (/* binding */ stringToAlpha),\n/* harmony export */ stringToRgb: () => (/* binding */ stringToRgb),\n/* harmony export */ updateColor: () => (/* binding */ updateColor),\n/* harmony export */ updateColorValue: () => (/* binding */ updateColorValue)\n/* harmony export */ });\n/* harmony import */ var _MathUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MathUtils.js */ \"../../engine/dist/browser/Utils/MathUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TypeUtils.js */ \"../../engine/dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/AnimationStatus.js */ \"../../engine/dist/browser/Enums/AnimationStatus.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Utils.js */ \"../../engine/dist/browser/Utils/Utils.js\");\n\n\n\n\n\nconst styleCache = new Map(),\n maxCacheSize = 1000;\nfunction getCachedStyle(key, generator) {\n let cached = styleCache.get(key);\n if (!cached) {\n cached = generator();\n if (styleCache.size < maxCacheSize) {\n styleCache.set(key, cached);\n }\n }\n return cached;\n}\nfunction stringToRgba(engine, input) {\n if (!input) {\n return;\n }\n for (const manager of engine.colorManagers.values()) {\n if (manager.accepts(input)) {\n return manager.parseString(input);\n }\n }\n return undefined;\n}\nfunction rangeColorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(color.value)) {\n return colorToRgb(engine, color.value, index, useIndex);\n }\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(color.value)) {\n const value = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_4__.itemFromArray)(color.value, index, useIndex);\n if (!value) {\n return;\n }\n return rangeColorToRgb(engine, {\n value\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n return undefined;\n}\nfunction colorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(input) ? {\n value: input\n } : input;\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(color.value)) {\n return color.value === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue ? getRandomRgbColor() : stringToRgb(engine, color.value);\n }\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(color.value)) {\n const value = (0,_Utils_js__WEBPACK_IMPORTED_MODULE_4__.itemFromArray)(color.value, index, useIndex);\n if (!value) {\n return;\n }\n return colorToRgb(engine, {\n value\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n return undefined;\n}\nfunction colorToHsl(engine, color, index, useIndex = true) {\n const rgb = colorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rangeColorToHsl(engine, color, index, useIndex = true) {\n const rgb = rangeColorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nfunction rgbToHsl(color) {\n const r1 = color.r / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax,\n g1 = color.g / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax,\n b1 = color.b / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax,\n max = Math.max(r1, g1, b1),\n min = Math.min(r1, g1, b1),\n res = {\n h: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMin,\n l: (max + min) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half,\n s: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin\n };\n if (max !== min) {\n res.s = res.l < _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? (max - min) / (max + min) : (max - min) / (_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double - max - min);\n if (r1 === max) {\n res.h = (g1 - b1) / (max - min);\n } else if (g1 === max) {\n res.h = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double + (b1 - r1) / (max - min);\n } else {\n res.h = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double + (r1 - g1) / (max - min);\n }\n }\n res.l *= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax;\n res.s *= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax;\n res.h *= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hPhase;\n if (res.h < _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMin) {\n res.h += _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax;\n }\n if (res.h >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax) {\n res.h -= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax;\n }\n return res;\n}\nfunction stringToAlpha(engine, input) {\n return stringToRgba(engine, input)?.a;\n}\nfunction stringToRgb(engine, input) {\n return stringToRgba(engine, input);\n}\nfunction hslToRgb(hsl) {\n const h = (hsl.h % _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax + _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax) % _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax,\n s = Math.max(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin, Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax, hsl.s)),\n l = Math.max(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMin, Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax, hsl.l)),\n hNormalized = h / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax,\n sNormalized = s / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax,\n lNormalized = l / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax;\n if (s === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin) {\n const grayscaleValue = Math.round(lNormalized * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax);\n return {\n r: grayscaleValue,\n g: grayscaleValue,\n b: grayscaleValue\n };\n }\n const channel = (temp1, temp2, temp3) => {\n const temp3Min = 0,\n temp3Max = 1;\n if (temp3 < temp3Min) {\n temp3++;\n }\n if (temp3 > temp3Max) {\n temp3--;\n }\n if (temp3 * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sextuple < temp3Max) {\n return temp1 + (temp2 - temp1) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sextuple * temp3;\n }\n if (temp3 * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double < temp3Max) {\n return temp2;\n }\n if (temp3 * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.triple < temp3Max * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double) {\n const temp3Offset = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.triple;\n return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sextuple;\n }\n return temp1;\n },\n temp1 = lNormalized < _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? lNormalized * (_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sNormalizedOffset + sNormalized) : lNormalized + sNormalized - lNormalized * sNormalized,\n temp2 = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double * lNormalized - temp1,\n phaseThird = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.phaseNumerator / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.triple,\n red = Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax * channel(temp2, temp1, hNormalized + phaseThird)),\n green = Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax * channel(temp2, temp1, hNormalized)),\n blue = Math.min(_Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax, _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax * channel(temp2, temp1, hNormalized - phaseThird));\n return {\n r: Math.round(red),\n g: Math.round(green),\n b: Math.round(blue)\n };\n}\nfunction hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r\n };\n}\nfunction getRandomRgbColor(min) {\n const fixedMin = min ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultRgbMin,\n fixedMax = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax + _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.identity,\n getRgbInRangeValue = () => Math.floor((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandomInRange)(fixedMin, fixedMax));\n return {\n b: getRgbInRangeValue(),\n g: getRgbInRangeValue(),\n r: getRgbInRangeValue()\n };\n}\nfunction getStyleFromRgb(color, hdr, opacity) {\n const op = opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity,\n key = `rgb-${color.r.toString()}-${color.g.toString()}-${color.b.toString()}-${hdr ? \"hdr\" : \"sdr\"}-${op.toString()}`;\n return getCachedStyle(key, () => hdr ? getHdrStyleFromRgb(color, opacity) : getSdrStyleFromRgb(color, opacity));\n}\nfunction getHdrStyleFromRgb(color, opacity) {\n return `color(display-p3 ${(color.r / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax).toString()} ${(color.g / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax).toString()} ${(color.b / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.rgbMax).toString()} / ${(opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity).toString()})`;\n}\nfunction getSdrStyleFromRgb(color, opacity) {\n return `rgba(${color.r.toString()}, ${color.g.toString()}, ${color.b.toString()}, ${(opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity).toString()})`;\n}\nfunction getStyleFromHsl(color, hdr, opacity) {\n const op = opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity,\n key = `hsl-${color.h.toString()}-${color.s.toString()}-${color.l.toString()}-${hdr ? \"hdr\" : \"sdr\"}-${op.toString()}`;\n return getCachedStyle(key, () => hdr ? getHdrStyleFromHsl(color, opacity) : getSdrStyleFromHsl(color, opacity));\n}\nfunction getHdrStyleFromHsl(color, opacity) {\n return getHdrStyleFromRgb(hslToRgb(color), opacity);\n}\nfunction getSdrStyleFromHsl(color, opacity) {\n return `hsla(${color.h.toString()}, ${color.s.toString()}%, ${color.l.toString()}%, ${(opacity ?? _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultOpacity).toString()})`;\n}\nfunction colorMix(color1, color2, size1, size2) {\n let rgb1 = color1,\n rgb2 = color2;\n if (!Object.hasOwn(rgb1, \"r\")) {\n rgb1 = hslToRgb(color1);\n }\n if (!Object.hasOwn(rgb2, \"r\")) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.mix)(rgb1.b, rgb2.b, size1, size2),\n g: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.mix)(rgb1.g, rgb2.g, size1, size2),\n r: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.mix)(rgb1.r, rgb2.r, size1, size2)\n };\n}\nfunction getLinkColor(p1, p2, linkColor) {\n if (linkColor === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue) {\n return getRandomRgbColor();\n } else if (linkColor === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue) {\n const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(),\n destColor = p2?.getFillColor() ?? p2?.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n } else {\n const hslColor = sourceColor ?? destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n } else {\n return linkColor;\n }\n return undefined;\n}\nfunction getLinkRandomColor(engine, optColor, blink, consent) {\n const color = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isString)(optColor) ? optColor : optColor.value;\n if (color === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue) {\n if (consent) {\n return rangeColorToRgb(engine, {\n value: color\n });\n }\n if (blink) {\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.randomColorValue;\n }\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue;\n } else if (color === _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue) {\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.midColorValue;\n } else {\n return rangeColorToRgb(engine, {\n value: color\n });\n }\n}\nfunction getHslFromAnimation(animation) {\n return animation !== undefined ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value\n } : undefined;\n}\nfunction getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h\n },\n s: {\n enable: false,\n value: hsl.s\n },\n l: {\n enable: false,\n value: hsl.l\n }\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.speed) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * reduceFactor;\n colorValue.decay = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.decayOffset - (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.decay);\n colorValue.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.increasing;\n colorValue.loops = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultLoops;\n colorValue.maxLoops = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.count);\n colorValue.time = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultTime;\n colorValue.delayTime = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(colorAnimation.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds;\n if (!colorAnimation.sync) {\n colorValue.velocity *= (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)();\n colorValue.value *= (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)();\n }\n colorValue.initialValue = colorValue.value;\n colorValue.offset = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(colorAnimation.offset);\n } else {\n colorValue.velocity = _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.defaultVelocity;\n }\n}\nfunction updateColorValue(data, range, decrease, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minOffset = 0,\n velocityFactor = 3.6;\n if (!data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n data.time ??= 0;\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n const offset = data.offset ? (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.randomInRangeValue)(data.offset) : minOffset,\n velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor,\n decay = data.decay ?? identity,\n max = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(range),\n min = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(range);\n if (!decrease || data.status === _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.increasing) {\n data.value += velocity;\n if (data.value > max) {\n data.loops ??= 0;\n data.loops++;\n if (decrease) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.decreasing;\n } else {\n data.value -= max;\n }\n }\n } else {\n data.value -= velocity;\n const minValue = 0;\n if (data.value < minValue) {\n data.loops ??= 0;\n data.loops++;\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_3__.AnimationStatus.increasing;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n data.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.clamp)(data.value, min, max);\n}\nfunction updateColor(color, delta) {\n if (!color) {\n return;\n }\n const {\n h,\n s,\n l\n } = color,\n ranges = {\n h: {\n min: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMin,\n max: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.hMax\n },\n s: {\n min: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMin,\n max: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.sMax\n },\n l: {\n min: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMin,\n max: _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.lMax\n }\n };\n updateColorValue(h, ranges.h, false, delta);\n updateColorValue(s, ranges.s, true, delta);\n updateColorValue(l, ranges.l, true, delta);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/ColorUtils.js?\n}");
758
758
 
759
759
  /***/ },
760
760
 
@@ -784,7 +784,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
784
784
  \****************************************************/
785
785
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
786
786
 
787
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animate: () => (/* binding */ animate),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* binding */ calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* binding */ calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* binding */ calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* binding */ calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* binding */ calcPositionOrRandomFromSizeRanged),\n/* harmony export */ cancelAnimation: () => (/* binding */ cancelAnimation),\n/* harmony export */ clamp: () => (/* binding */ clamp),\n/* harmony export */ collisionVelocity: () => (/* binding */ collisionVelocity),\n/* harmony export */ degToRad: () => (/* binding */ degToRad),\n/* harmony export */ getDistance: () => (/* binding */ getDistance),\n/* harmony export */ getDistances: () => (/* binding */ getDistances),\n/* harmony export */ getParticleBaseVelocity: () => (/* binding */ getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* binding */ getParticleDirectionAngle),\n/* harmony export */ getRandom: () => (/* binding */ getRandom),\n/* harmony export */ getRandomInRange: () => (/* binding */ getRandomInRange),\n/* harmony export */ getRangeMax: () => (/* binding */ getRangeMax),\n/* harmony export */ getRangeMin: () => (/* binding */ getRangeMin),\n/* harmony export */ getRangeValue: () => (/* binding */ getRangeValue),\n/* harmony export */ mix: () => (/* binding */ mix),\n/* harmony export */ parseAlpha: () => (/* binding */ parseAlpha),\n/* harmony export */ randomInRangeValue: () => (/* binding */ randomInRangeValue),\n/* harmony export */ setAnimationFunctions: () => (/* binding */ setAnimationFunctions),\n/* harmony export */ setRandom: () => (/* binding */ setRandom),\n/* harmony export */ setRangeValue: () => (/* binding */ setRangeValue)\n/* harmony export */ });\n/* harmony import */ var _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Enums/Directions/MoveDirection.js */ \"../../engine/dist/browser/Enums/Directions/MoveDirection.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"../../engine/dist/browser/Core/Utils/Vectors.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TypeUtils.js */ \"../../engine/dist/browser/Utils/TypeUtils.js\");\n\n\n\n\nconst piDeg = 180,\n degToRadFactor = Math.PI / piDeg;\nlet _random = Math.random;\nconst _animationLoop = {\n nextFrame: cb => requestAnimationFrame(cb),\n cancel: idx => {\n cancelAnimationFrame(idx);\n }\n};\nfunction setRandom(rnd = Math.random) {\n _random = rnd;\n}\nfunction getRandom() {\n const min = 0,\n max = 1;\n return clamp(_random(), min, max - Number.EPSILON);\n}\nfunction getRandomInRange(min, max) {\n return getRandom() * (max - min) + min;\n}\nfunction setAnimationFunctions(nextFrame, cancel) {\n _animationLoop.nextFrame = callback => nextFrame(callback);\n _animationLoop.cancel = handle => {\n cancel(handle);\n };\n}\nfunction animate(fn) {\n return _animationLoop.nextFrame(fn);\n}\nfunction cancelAnimation(handle) {\n _animationLoop.cancel(handle);\n}\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nfunction randomInRangeValue(r) {\n const max = getRangeMax(r),\n minOffset = 0;\n let min = getRangeMin(r);\n if (max === min) {\n min = minOffset;\n }\n return getRandomInRange(min, max);\n}\nfunction getRangeValue(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(value) ? value : randomInRangeValue(value);\n}\nfunction getRangeMin(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(value) ? value : value.min;\n}\nfunction getRangeMax(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(value) ? value : value.max;\n}\nfunction setRangeValue(source, value) {\n if (source === value || value === undefined && (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(source)) {\n return source;\n }\n const min = getRangeMin(source),\n max = getRangeMax(source);\n return value !== undefined ? {\n min: Math.min(min, value),\n max: Math.max(max, value)\n } : setRangeValue(min, max);\n}\nfunction getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x,\n dy = pointA.y - pointB.y,\n squareExp = 2;\n return {\n dx: dx,\n dy: dy,\n distance: Math.sqrt(dx ** squareExp + dy ** squareExp)\n };\n}\nfunction getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nfunction degToRad(degrees) {\n return degrees * degToRadFactor;\n}\nfunction getParticleDirectionAngle(direction, position, center) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(direction)) {\n return degToRad(direction);\n }\n switch (direction) {\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.top:\n return -Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.topRight:\n return -Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.quarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.right:\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.empty;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.bottomRight:\n return Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.quarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.bottom:\n return Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.bottomLeft:\n return Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.threeQuarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.left:\n return Math.PI;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.topLeft:\n return -Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.threeQuarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.inside:\n return Math.atan2(center.y - position.y, center.x - position.x);\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.outside:\n return Math.atan2(position.y - center.y, position.x - center.x);\n default:\n return getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.doublePI;\n }\n}\nfunction getParticleBaseVelocity(direction) {\n const baseVelocity = _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__.Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nfunction collisionVelocity(v1, v2, m1, m2) {\n return _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__.Vector.create(v1.x * (m1 - m2) / (m1 + m2) + v2.x * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double * m2 / (m1 + m2), v1.y);\n}\nfunction calcPositionFromSize(data) {\n return data.position?.x !== undefined && data.position.y !== undefined ? {\n x: data.position.x * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator,\n y: data.position.y * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator\n } : undefined;\n}\nfunction calcPositionOrRandomFromSize(data) {\n return {\n x: (data.position?.x ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator) * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator,\n y: (data.position?.y ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator) * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator\n };\n}\nfunction calcPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction calcExactPositionOrRandomFromSize(data) {\n return {\n x: data.position?.x ?? getRandom() * data.size.width,\n y: data.position?.y ?? getRandom() * data.size.height\n };\n}\nfunction calcExactPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcExactPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction parseAlpha(input) {\n const defaultAlpha = 1;\n if (!input) {\n return defaultAlpha;\n }\n return input.endsWith(\"%\") ? parseFloat(input) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator : parseFloat(input);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/MathUtils.js?\n}");
787
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animate: () => (/* binding */ animate),\n/* harmony export */ calcExactPositionOrRandomFromSize: () => (/* binding */ calcExactPositionOrRandomFromSize),\n/* harmony export */ calcExactPositionOrRandomFromSizeRanged: () => (/* binding */ calcExactPositionOrRandomFromSizeRanged),\n/* harmony export */ calcPositionFromSize: () => (/* binding */ calcPositionFromSize),\n/* harmony export */ calcPositionOrRandomFromSize: () => (/* binding */ calcPositionOrRandomFromSize),\n/* harmony export */ calcPositionOrRandomFromSizeRanged: () => (/* binding */ calcPositionOrRandomFromSizeRanged),\n/* harmony export */ cancelAnimation: () => (/* binding */ cancelAnimation),\n/* harmony export */ clamp: () => (/* binding */ clamp),\n/* harmony export */ collisionVelocity: () => (/* binding */ collisionVelocity),\n/* harmony export */ degToRad: () => (/* binding */ degToRad),\n/* harmony export */ getDistance: () => (/* binding */ getDistance),\n/* harmony export */ getDistances: () => (/* binding */ getDistances),\n/* harmony export */ getParticleBaseVelocity: () => (/* binding */ getParticleBaseVelocity),\n/* harmony export */ getParticleDirectionAngle: () => (/* binding */ getParticleDirectionAngle),\n/* harmony export */ getRandom: () => (/* binding */ getRandom),\n/* harmony export */ getRandomInRange: () => (/* binding */ getRandomInRange),\n/* harmony export */ getRangeMax: () => (/* binding */ getRangeMax),\n/* harmony export */ getRangeMin: () => (/* binding */ getRangeMin),\n/* harmony export */ getRangeValue: () => (/* binding */ getRangeValue),\n/* harmony export */ mix: () => (/* binding */ mix),\n/* harmony export */ parseAlpha: () => (/* binding */ parseAlpha),\n/* harmony export */ randomInRangeValue: () => (/* binding */ randomInRangeValue),\n/* harmony export */ setAnimationFunctions: () => (/* binding */ setAnimationFunctions),\n/* harmony export */ setRandom: () => (/* binding */ setRandom),\n/* harmony export */ setRangeValue: () => (/* binding */ setRangeValue)\n/* harmony export */ });\n/* harmony import */ var _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Enums/Directions/MoveDirection.js */ \"../../engine/dist/browser/Enums/Directions/MoveDirection.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"../../engine/dist/browser/Core/Utils/Vectors.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TypeUtils.js */ \"../../engine/dist/browser/Utils/TypeUtils.js\");\n\n\n\n\nconst piDeg = 180,\n degToRadFactor = Math.PI / piDeg;\nlet _random = Math.random;\nconst _animationLoop = {\n nextFrame: cb => requestAnimationFrame(cb),\n cancel: idx => {\n cancelAnimationFrame(idx);\n }\n};\nfunction setRandom(rnd = Math.random) {\n _random = rnd;\n}\nfunction getRandom() {\n const min = 0,\n max = 1;\n return clamp(_random(), min, max - Number.EPSILON);\n}\nfunction getRandomInRange(min, max) {\n return getRandom() * (max - min) + min;\n}\nfunction setAnimationFunctions(nextFrame, cancel) {\n _animationLoop.nextFrame = callback => nextFrame(callback);\n _animationLoop.cancel = handle => {\n cancel(handle);\n };\n}\nfunction animate(fn) {\n return _animationLoop.nextFrame(fn);\n}\nfunction cancelAnimation(handle) {\n _animationLoop.cancel(handle);\n}\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nfunction mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nfunction randomInRangeValue(r) {\n const max = getRangeMax(r),\n minOffset = 0;\n let min = getRangeMin(r);\n if (max === min) {\n min = minOffset;\n }\n return getRandomInRange(min, max);\n}\nfunction getRangeValue(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(value) ? value : randomInRangeValue(value);\n}\nfunction getRangeMin(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(value) ? value : value.min;\n}\nfunction getRangeMax(value) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(value) ? value : value.max;\n}\nfunction setRangeValue(source, value) {\n if (source === value || value === undefined && (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(source)) {\n return source;\n }\n const min = getRangeMin(source),\n max = getRangeMax(source);\n return value !== undefined ? {\n min: Math.min(min, value),\n max: Math.max(max, value)\n } : setRangeValue(min, max);\n}\nfunction getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x,\n dy = pointA.y - pointB.y,\n squareExp = 2;\n return {\n dx: dx,\n dy: dy,\n distance: Math.sqrt(dx ** squareExp + dy ** squareExp)\n };\n}\nfunction getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nfunction degToRad(degrees) {\n return degrees * degToRadFactor;\n}\nfunction getParticleDirectionAngle(direction, position, center) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_3__.isNumber)(direction)) {\n return degToRad(direction);\n }\n switch (direction) {\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.top:\n return -Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.topRight:\n return -Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.quarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.right:\n return _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.empty;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.bottomRight:\n return Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.quarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.bottom:\n return Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.bottomLeft:\n return Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.threeQuarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.left:\n return Math.PI;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.topLeft:\n return -Math.PI * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.threeQuarter;\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.inside:\n return Math.atan2(center.y - position.y, center.x - position.x);\n case _Enums_Directions_MoveDirection_js__WEBPACK_IMPORTED_MODULE_0__.MoveDirection.outside:\n return Math.atan2(position.y - center.y, position.x - center.x);\n default:\n return getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.doublePI;\n }\n}\nfunction getParticleBaseVelocity(direction) {\n const baseVelocity = _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__.Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nfunction collisionVelocity(v1, v2, m1, m2) {\n return _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_2__.Vector.create(v1.x * (m1 - m2) / (m1 + m2) + v2.x * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.double * m2 / (m1 + m2), v1.y);\n}\nfunction calcPositionFromSize(data) {\n return data.position?.x !== undefined && data.position.y !== undefined ? {\n x: data.position.x * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator,\n y: data.position.y * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator\n } : undefined;\n}\nfunction calcPositionOrRandomFromSize(data) {\n return {\n x: (data.position?.x ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator) * data.size.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator,\n y: (data.position?.y ?? getRandom() * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator) * data.size.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator\n };\n}\nfunction calcPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction calcExactPositionOrRandomFromSize(data) {\n const {\n position,\n size\n } = data;\n return {\n x: position?.x ?? getRandom() * size.width,\n y: position?.y ?? getRandom() * size.height\n };\n}\nfunction calcExactPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined\n };\n return calcExactPositionOrRandomFromSize({\n size: data.size,\n position\n });\n}\nfunction parseAlpha(input) {\n const defaultAlpha = 1;\n if (!input) {\n return defaultAlpha;\n }\n return input.endsWith(\"%\") ? parseFloat(input) / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator : parseFloat(input);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/MathUtils.js?\n}");
788
788
 
789
789
  /***/ },
790
790
 
@@ -814,7 +814,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
814
814
  \************************************************/
815
815
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
816
816
 
817
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ areBoundsInside: () => (/* binding */ areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* binding */ arrayRandomIndex),\n/* harmony export */ calculateBounds: () => (/* binding */ calculateBounds),\n/* harmony export */ circleBounce: () => (/* binding */ circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* binding */ circleBounceDataFromParticle),\n/* harmony export */ cloneStyle: () => (/* binding */ cloneStyle),\n/* harmony export */ deepExtend: () => (/* binding */ deepExtend),\n/* harmony export */ divMode: () => (/* binding */ divMode),\n/* harmony export */ divModeExecute: () => (/* binding */ divModeExecute),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* binding */ executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* binding */ findItemFromSingleOrMultiple),\n/* harmony export */ getFullScreenStyle: () => (/* binding */ getFullScreenStyle),\n/* harmony export */ getPosition: () => (/* binding */ getPosition),\n/* harmony export */ getSize: () => (/* binding */ getSize),\n/* harmony export */ hasMatchMedia: () => (/* binding */ hasMatchMedia),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* binding */ initParticleNumericAnimationValue),\n/* harmony export */ isDivModeEnabled: () => (/* binding */ isDivModeEnabled),\n/* harmony export */ isInArray: () => (/* binding */ isInArray),\n/* harmony export */ isPointInside: () => (/* binding */ isPointInside),\n/* harmony export */ itemFromArray: () => (/* binding */ itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* binding */ itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* binding */ loadFont),\n/* harmony export */ safeDocument: () => (/* binding */ safeDocument),\n/* harmony export */ safeIntersectionObserver: () => (/* binding */ safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* binding */ safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* binding */ safeMutationObserver),\n/* harmony export */ singleDivModeExecute: () => (/* binding */ singleDivModeExecute),\n/* harmony export */ updateAnimation: () => (/* binding */ updateAnimation)\n/* harmony export */ });\n/* harmony import */ var _MathUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MathUtils.js */ \"../../engine/dist/browser/Utils/MathUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TypeUtils.js */ \"../../engine/dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/Modes/AnimationMode.js */ \"../../engine/dist/browser/Enums/Modes/AnimationMode.js\");\n/* harmony import */ var _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/AnimationStatus.js */ \"../../engine/dist/browser/Enums/AnimationStatus.js\");\n/* harmony import */ var _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Enums/Types/DestroyType.js */ \"../../engine/dist/browser/Enums/Types/DestroyType.js\");\n/* harmony import */ var _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Enums/Directions/OutModeDirection.js */ \"../../engine/dist/browser/Enums/Directions/OutModeDirection.js\");\n/* harmony import */ var _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Enums/Modes/PixelMode.js */ \"../../engine/dist/browser/Enums/Modes/PixelMode.js\");\n/* harmony import */ var _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Enums/Types/StartValueType.js */ \"../../engine/dist/browser/Enums/Types/StartValueType.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"../../engine/dist/browser/Core/Utils/Vectors.js\");\n\n\n\n\n\n\n\n\n\n\nconst minRadius = 0;\nfunction memoize(fn) {\n const cache = new Map();\n return (...args) => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn(...args);\n cache.set(key, result);\n return result;\n };\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, selector => {\n return element.matches(selector);\n });\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(res) ? res.some(t => t) : res;\n}\nfunction hasMatchMedia() {\n return typeof matchMedia !== \"undefined\";\n}\nfunction safeDocument() {\n return globalThis.document;\n}\nfunction safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nfunction safeIntersectionObserver(callback) {\n if (typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nfunction safeMutationObserver(callback) {\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nfunction isInArray(value, array) {\n return value === array || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(array) && array.includes(value);\n}\nasync function loadFont(font, weight) {\n try {\n await safeDocument().fonts.load(`${weight ?? \"400\"} 36px '${font ?? \"Verdana\"}'`);\n } catch {}\n}\nfunction arrayRandomIndex(array) {\n return Math.floor((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * array.length);\n}\nfunction itemFromArray(array, index, useIndex = true) {\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nfunction isPointInside(point, size, offset, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nfunction areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.bottom) {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.left)) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.right)) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.top)) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nfunction calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius\n };\n}\nfunction deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (!(0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(source)) {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(destination) || !destination || !Array.isArray(destination))) {\n destination = [];\n } else if (!sourceIsArray && ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(destination) || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source,\n value = sourceDict[key],\n destDict = destination;\n destDict[key] = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(value) && Array.isArray(value) ? value.map(v => deepExtend(destDict[key], v)) : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nfunction isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));\n}\nfunction divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, div => {\n const divMode = div.mode,\n divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, selector => {\n callback(selector, div);\n });\n}\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, div => {\n return checkSelector(element, div.selectors);\n });\n}\nfunction circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_9__.Vector.create((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.horizontal.value), (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.vertical.value))\n };\n}\nfunction circleBounce(p1, p2) {\n const {\n x: xVelocityDiff,\n y: yVelocityDiff\n } = p1.velocity.sub(p2.velocity),\n [pos1, pos2] = [p1.position, p2.position],\n {\n dx: xDist,\n dy: yDist\n } = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos2, pos1),\n minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist),\n m1 = p1.mass,\n m2 = p2.mass,\n u1 = p1.velocity.rotate(angle),\n u2 = p2.velocity.rotate(angle),\n v1 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u1, u2, m1, m2),\n v2 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u2, u1, m1, m2),\n vFinal1 = v1.rotate(-angle),\n vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nfunction executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);\n}\nfunction itemFromSingleOrMultiple(obj, index, useIndex) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nfunction findItemFromSingleOrMultiple(obj, callback) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(obj)) {\n return obj.find((t, index) => callback(t, index));\n }\n const defaultIndex = 0;\n return callback(obj, defaultIndex) ? obj : undefined;\n}\nfunction initParticleNumericAnimationValue(options, pxRatio) {\n const valueRange = options.value,\n animationOptions = options.animation,\n res = {\n delayTime: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds,\n enable: animationOptions.enable,\n value: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(options.value) * pxRatio,\n max: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(valueRange) * pxRatio,\n min: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(valueRange) * pxRatio,\n loops: 0,\n maxLoops: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.count),\n time: 0\n },\n decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.decay);\n switch (animationOptions.mode) {\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.increase:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.decrease:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.random:\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n }\n const autoStatus = animationOptions.mode === _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.auto;\n switch (animationOptions.startValue) {\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.min:\n res.value = res.min;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.max:\n res.value = res.max;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.random:\n default:\n res.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.randomInRangeValue)(res);\n if (autoStatus) {\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__.PixelMode.percent;\n if (!isPercent) {\n const {\n mode: _,\n ...rest\n } = positionOrSize;\n return rest;\n }\n const isPosition = \"x\" in positionOrSize;\n if (isPosition) {\n return {\n x: positionOrSize.x / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.width,\n y: positionOrSize.y / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.height\n };\n } else {\n return {\n width: positionOrSize.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.width,\n height: positionOrSize.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.height\n };\n }\n}\nfunction getPosition(position, canvasSize) {\n return getPositionOrSize(position, canvasSize);\n}\nfunction getSize(size, canvasSize) {\n return getPositionOrSize(size, canvasSize);\n}\nfunction checkDestroy(particle, destroyType, value, minValue, maxValue) {\n switch (destroyType) {\n case _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minDecay = 1;\n if (particle.destroyed || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor,\n minValue = data.min,\n maxValue = data.max,\n decay = data.decay ?? minDecay;\n data.time ??= 0;\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n switch (data.status) {\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing:\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n } else {\n data.value -= maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n } else {\n data.value += velocity;\n }\n break;\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing:\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n } else {\n data.value += maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n } else {\n data.value -= velocity;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n data.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.clamp)(data.value, minValue, maxValue);\n}\nfunction cloneStyle(style) {\n const clonedStyle = safeDocument().createElement(\"div\").style;\n for (const key in style) {\n const styleKey = style[key];\n if (!Object.prototype.hasOwnProperty.call(style, key) || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isNull)(styleKey)) {\n continue;\n }\n const styleValue = style.getPropertyValue?.(styleKey);\n if (!styleValue) {\n continue;\n }\n const stylePriority = style.getPropertyPriority?.(styleKey);\n if (!stylePriority) {\n clonedStyle.setProperty(styleKey, styleValue);\n } else {\n clonedStyle.setProperty(styleKey, styleValue, stylePriority);\n }\n }\n return clonedStyle;\n}\nfunction computeFullScreenStyle(zIndex) {\n const fullScreenStyle = safeDocument().createElement(\"div\").style,\n radix = 10,\n style = {\n width: \"100%\",\n height: \"100%\",\n margin: \"0\",\n padding: \"0\",\n borderWidth: \"0\",\n position: \"fixed\",\n zIndex: zIndex.toString(radix),\n \"z-index\": zIndex.toString(radix),\n top: \"0\",\n left: \"0\"\n };\n for (const key in style) {\n const value = style[key];\n if (value === undefined) {\n continue;\n }\n fullScreenStyle.setProperty(key, value);\n }\n return fullScreenStyle;\n}\nconst getFullScreenStyle = memoize(computeFullScreenStyle);\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/Utils.js?\n}");
817
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ areBoundsInside: () => (/* binding */ areBoundsInside),\n/* harmony export */ arrayRandomIndex: () => (/* binding */ arrayRandomIndex),\n/* harmony export */ calculateBounds: () => (/* binding */ calculateBounds),\n/* harmony export */ circleBounce: () => (/* binding */ circleBounce),\n/* harmony export */ circleBounceDataFromParticle: () => (/* binding */ circleBounceDataFromParticle),\n/* harmony export */ cloneStyle: () => (/* binding */ cloneStyle),\n/* harmony export */ deepExtend: () => (/* binding */ deepExtend),\n/* harmony export */ divMode: () => (/* binding */ divMode),\n/* harmony export */ divModeExecute: () => (/* binding */ divModeExecute),\n/* harmony export */ executeOnSingleOrMultiple: () => (/* binding */ executeOnSingleOrMultiple),\n/* harmony export */ findItemFromSingleOrMultiple: () => (/* binding */ findItemFromSingleOrMultiple),\n/* harmony export */ getFullScreenStyle: () => (/* binding */ getFullScreenStyle),\n/* harmony export */ getPosition: () => (/* binding */ getPosition),\n/* harmony export */ getSize: () => (/* binding */ getSize),\n/* harmony export */ hasMatchMedia: () => (/* binding */ hasMatchMedia),\n/* harmony export */ initParticleNumericAnimationValue: () => (/* binding */ initParticleNumericAnimationValue),\n/* harmony export */ isDivModeEnabled: () => (/* binding */ isDivModeEnabled),\n/* harmony export */ isInArray: () => (/* binding */ isInArray),\n/* harmony export */ isPointInside: () => (/* binding */ isPointInside),\n/* harmony export */ itemFromArray: () => (/* binding */ itemFromArray),\n/* harmony export */ itemFromSingleOrMultiple: () => (/* binding */ itemFromSingleOrMultiple),\n/* harmony export */ loadFont: () => (/* binding */ loadFont),\n/* harmony export */ safeDocument: () => (/* binding */ safeDocument),\n/* harmony export */ safeIntersectionObserver: () => (/* binding */ safeIntersectionObserver),\n/* harmony export */ safeMatchMedia: () => (/* binding */ safeMatchMedia),\n/* harmony export */ safeMutationObserver: () => (/* binding */ safeMutationObserver),\n/* harmony export */ singleDivModeExecute: () => (/* binding */ singleDivModeExecute),\n/* harmony export */ updateAnimation: () => (/* binding */ updateAnimation)\n/* harmony export */ });\n/* harmony import */ var _MathUtils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./MathUtils.js */ \"../../engine/dist/browser/Utils/MathUtils.js\");\n/* harmony import */ var _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Core/Utils/Constants.js */ \"../../engine/dist/browser/Core/Utils/Constants.js\");\n/* harmony import */ var _TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TypeUtils.js */ \"../../engine/dist/browser/Utils/TypeUtils.js\");\n/* harmony import */ var _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Enums/Modes/AnimationMode.js */ \"../../engine/dist/browser/Enums/Modes/AnimationMode.js\");\n/* harmony import */ var _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Enums/AnimationStatus.js */ \"../../engine/dist/browser/Enums/AnimationStatus.js\");\n/* harmony import */ var _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Enums/Types/DestroyType.js */ \"../../engine/dist/browser/Enums/Types/DestroyType.js\");\n/* harmony import */ var _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Enums/Directions/OutModeDirection.js */ \"../../engine/dist/browser/Enums/Directions/OutModeDirection.js\");\n/* harmony import */ var _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Enums/Modes/PixelMode.js */ \"../../engine/dist/browser/Enums/Modes/PixelMode.js\");\n/* harmony import */ var _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../Enums/Types/StartValueType.js */ \"../../engine/dist/browser/Enums/Types/StartValueType.js\");\n/* harmony import */ var _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Core/Utils/Vectors.js */ \"../../engine/dist/browser/Core/Utils/Vectors.js\");\n\n\n\n\n\n\n\n\n\n\nconst minRadius = 0;\nfunction memoize(fn) {\n const cache = new Map();\n return (...args) => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn(...args);\n cache.set(key, result);\n return result;\n };\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, selector => {\n return element.matches(selector);\n });\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(res) ? res.some(t => t) : res;\n}\nfunction hasMatchMedia() {\n return typeof matchMedia !== \"undefined\";\n}\nfunction safeDocument() {\n return globalThis.document;\n}\nfunction safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nfunction safeIntersectionObserver(callback) {\n if (typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nfunction safeMutationObserver(callback) {\n if (typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nfunction isInArray(value, array) {\n return value === array || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(array) && array.includes(value);\n}\nasync function loadFont(font, weight) {\n try {\n await safeDocument().fonts.load(`${weight ?? \"400\"} 36px '${font ?? \"Verdana\"}'`);\n } catch {}\n}\nfunction arrayRandomIndex(array) {\n return Math.floor((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * array.length);\n}\nfunction itemFromArray(array, index, useIndex = true) {\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nfunction isPointInside(point, size, offset, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nfunction areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.bottom) {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.left)) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.right)) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === _Enums_Directions_OutModeDirection_js__WEBPACK_IMPORTED_MODULE_6__.OutModeDirection.top)) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nfunction calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius\n };\n}\nfunction deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (!(0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(source)) {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(destination) || !destination || !Array.isArray(destination))) {\n destination = [];\n } else if (!sourceIsArray && ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(destination) || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source,\n value = sourceDict[key],\n destDict = destination;\n destDict[key] = (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isObject)(value) && Array.isArray(value) ? value.map(v => deepExtend(destDict[key], v)) : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nfunction isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));\n}\nfunction divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, div => {\n const divMode = div.mode,\n divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, selector => {\n callback(selector, div);\n });\n}\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, div => {\n return checkSelector(element, div.selectors);\n });\n}\nfunction circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: _Core_Utils_Vectors_js__WEBPACK_IMPORTED_MODULE_9__.Vector.create((0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.horizontal.value), (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(p.options.bounce.vertical.value))\n };\n}\nfunction circleBounce(p1, p2) {\n const {\n x: xVelocityDiff,\n y: yVelocityDiff\n } = p1.velocity.sub(p2.velocity),\n [pos1, pos2] = [p1.position, p2.position],\n {\n dx: xDist,\n dy: yDist\n } = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos2, pos1),\n minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist),\n m1 = p1.mass,\n m2 = p2.mass,\n u1 = p1.velocity.rotate(angle),\n u2 = p2.velocity.rotate(angle),\n v1 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u1, u2, m1, m2),\n v2 = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.collisionVelocity)(u2, u1, m1, m2),\n vFinal1 = v1.rotate(-angle),\n vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nfunction executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);\n}\nfunction itemFromSingleOrMultiple(obj, index, useIndex) {\n return (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nfunction findItemFromSingleOrMultiple(obj, callback) {\n if ((0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isArray)(obj)) {\n return obj.find((t, index) => callback(t, index));\n }\n const defaultIndex = 0;\n return callback(obj, defaultIndex) ? obj : undefined;\n}\nfunction initParticleNumericAnimationValue(options, pxRatio) {\n const valueRange = options.value,\n animationOptions = options.animation,\n res = {\n delayTime: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.delay) * _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds,\n enable: animationOptions.enable,\n value: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(options.value) * pxRatio,\n max: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(valueRange) * pxRatio,\n min: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeMin)(valueRange) * pxRatio,\n loops: 0,\n maxLoops: (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.count),\n time: 0\n },\n decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(animationOptions.decay);\n switch (animationOptions.mode) {\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.increase:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.decrease:\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n case _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.random:\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n break;\n }\n const autoStatus = animationOptions.mode === _Enums_Modes_AnimationMode_js__WEBPACK_IMPORTED_MODULE_3__.AnimationMode.auto;\n switch (animationOptions.startValue) {\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.min:\n res.value = res.min;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.max:\n res.value = res.max;\n if (autoStatus) {\n res.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n case _Enums_Types_StartValueType_js__WEBPACK_IMPORTED_MODULE_8__.StartValueType.random:\n default:\n res.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.randomInRangeValue)(res);\n if (autoStatus) {\n res.status = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.getRandom)() >= _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.half ? _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing : _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === _Enums_Modes_PixelMode_js__WEBPACK_IMPORTED_MODULE_7__.PixelMode.percent;\n if (!isPercent) {\n const {\n mode: _,\n ...rest\n } = positionOrSize;\n return rest;\n }\n const isPosition = \"x\" in positionOrSize;\n if (isPosition) {\n return {\n x: positionOrSize.x / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.width,\n y: positionOrSize.y / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.height\n };\n } else {\n return {\n width: positionOrSize.width / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.width,\n height: positionOrSize.height / _Core_Utils_Constants_js__WEBPACK_IMPORTED_MODULE_1__.percentDenominator * canvasSize.height\n };\n }\n}\nfunction getPosition(position, canvasSize) {\n return getPositionOrSize(position, canvasSize);\n}\nfunction getSize(size, canvasSize) {\n return getPositionOrSize(size, canvasSize);\n}\nfunction checkDestroy(particle, destroyType, value, minValue, maxValue) {\n switch (destroyType) {\n case _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case _Enums_Types_DestroyType_js__WEBPACK_IMPORTED_MODULE_5__.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0,\n minDelay = 0,\n identity = 1,\n minVelocity = 0,\n minDecay = 1;\n if (particle.destroyed || !data.enable || (data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops)) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor,\n minValue = data.min,\n maxValue = data.max,\n decay = data.decay ?? minDecay;\n data.time ??= 0;\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n switch (data.status) {\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing:\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing;\n } else {\n data.value -= maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n } else {\n data.value += velocity;\n }\n break;\n case _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.decreasing:\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = _Enums_AnimationStatus_js__WEBPACK_IMPORTED_MODULE_4__.AnimationStatus.increasing;\n } else {\n data.value += maxValue;\n }\n data.loops ??= minLoops;\n data.loops++;\n } else {\n data.value -= velocity;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n data.value = (0,_MathUtils_js__WEBPACK_IMPORTED_MODULE_0__.clamp)(data.value, minValue, maxValue);\n}\nfunction cloneStyle(style) {\n const clonedStyle = safeDocument().createElement(\"div\").style;\n for (const key in style) {\n const styleKey = style[key];\n if (!Object.hasOwn(style, key) || (0,_TypeUtils_js__WEBPACK_IMPORTED_MODULE_2__.isNull)(styleKey)) {\n continue;\n }\n const styleValue = style.getPropertyValue?.(styleKey);\n if (!styleValue) {\n continue;\n }\n const stylePriority = style.getPropertyPriority?.(styleKey);\n if (!stylePriority) {\n clonedStyle.setProperty(styleKey, styleValue);\n } else {\n clonedStyle.setProperty(styleKey, styleValue, stylePriority);\n }\n }\n return clonedStyle;\n}\nfunction computeFullScreenStyle(zIndex) {\n const fullScreenStyle = safeDocument().createElement(\"div\").style,\n radix = 10,\n style = {\n width: \"100%\",\n height: \"100%\",\n margin: \"0\",\n padding: \"0\",\n borderWidth: \"0\",\n position: \"fixed\",\n zIndex: zIndex.toString(radix),\n \"z-index\": zIndex.toString(radix),\n top: \"0\",\n left: \"0\"\n };\n for (const key in style) {\n const value = style[key];\n if (value === undefined) {\n continue;\n }\n fullScreenStyle.setProperty(key, value);\n }\n return fullScreenStyle;\n}\nconst getFullScreenStyle = memoize(computeFullScreenStyle);\n\n//# sourceURL=webpack://@tsparticles/all/../../engine/dist/browser/Utils/Utils.js?\n}");
818
818
 
819
819
  /***/ },
820
820
 
@@ -864,7 +864,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
864
864
  \*******************************/
865
865
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
866
866
 
867
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAll: () => (/* binding */ loadAll)\n/* harmony export */ });\nfunction loadAll(engine) {\n engine.checkVersion(\"4.0.0-alpha.2\");\n engine.register(async e => {\n const {\n initPjs\n } = await __webpack_require__.e(/*! import() */ \"pjs_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/pjs */ \"../pjs/dist/browser/index.js\")),\n {\n loadFull\n } = await __webpack_require__.e(/*! import() */ \"full_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! tsparticles */ \"../full/dist/browser/index.js\")),\n {\n loadHsvColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_hsv_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-hsv-color */ \"../../plugins/colors/hsv/dist/browser/index.js\")),\n {\n loadHwbColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_hwb_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-hwb-color */ \"../../plugins/colors/hwb/dist/browser/index.js\")),\n {\n loadLabColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_lab_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-lab-color */ \"../../plugins/colors/lab/dist/browser/index.js\")),\n {\n loadLchColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_lch_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-lch-color */ \"../../plugins/colors/lch/dist/browser/index.js\")),\n {\n loadOklabColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_oklab_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-oklab-color */ \"../../plugins/colors/oklab/dist/browser/index.js\")),\n {\n loadOklchColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_oklch_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-oklch-color */ \"../../plugins/colors/oklch/dist/browser/index.js\")),\n {\n loadNamedColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_named_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-named-color */ \"../../plugins/colors/named/dist/browser/index.js\")),\n {\n loadEasingBackPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_back_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-back */ \"../../plugins/easings/back/dist/browser/index.js\")),\n {\n loadEasingCircPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_circ_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-circ */ \"../../plugins/easings/circ/dist/browser/index.js\")),\n {\n loadEasingCubicPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_cubic_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-cubic */ \"../../plugins/easings/cubic/dist/browser/index.js\")),\n {\n loadEasingExpoPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_expo_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-expo */ \"../../plugins/easings/expo/dist/browser/index.js\")),\n {\n loadEasingLinearPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_linear_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-linear */ \"../../plugins/easings/linear/dist/browser/index.js\")),\n {\n loadEasingQuartPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_quart_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-quart */ \"../../plugins/easings/quart/dist/browser/index.js\")),\n {\n loadEasingQuintPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_quint_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-quint */ \"../../plugins/easings/quint/dist/browser/index.js\")),\n {\n loadEasingSinePlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_sine_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-sine */ \"../../plugins/easings/sine/dist/browser/index.js\")),\n {\n loadEmittersShapeCanvas\n } = await __webpack_require__.e(/*! import() */ \"plugins_emittersShapes_canvas_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-emitters-shape-canvas */ \"../../plugins/emittersShapes/canvas/dist/browser/index.js\")),\n {\n loadEmittersShapePath\n } = await __webpack_require__.e(/*! import() */ \"plugins_emittersShapes_path_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-emitters-shape-path */ \"../../plugins/emittersShapes/path/dist/browser/index.js\")),\n {\n loadEmittersShapePolygon\n } = await __webpack_require__.e(/*! import() */ \"plugins_emittersShapes_polygon_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-emitters-shape-polygon */ \"../../plugins/emittersShapes/polygon/dist/browser/index.js\")),\n {\n loadBackgroundMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_backgroundMask_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-background-mask */ \"../../plugins/backgroundMask/dist/browser/index.js\")),\n {\n loadCanvasMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_canvasMask_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-canvas-mask */ \"../../plugins/canvasMask/dist/browser/index.js\")),\n {\n loadInfectionPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_infection_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-infection */ \"../../plugins/infection/dist/browser/index.js\")),\n {\n loadMotionPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_motion_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-motion */ \"../../plugins/motion/dist/browser/index.js\")),\n {\n loadPoissonDiscPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_poisson_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-poisson-disc */ \"../../plugins/poisson/dist/browser/index.js\")),\n {\n loadPolygonMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-polygon-mask */ \"../../plugins/polygonMask/dist/browser/index.js\")),\n {\n loadSoundsPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_sounds_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-sounds */ \"../../plugins/sounds/dist/browser/index.js\")),\n {\n loadTrailPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_trail_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-trail */ \"../../plugins/trail/dist/browser/index.js\")),\n {\n loadExportImagePlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_exports_image_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-export-image */ \"../../plugins/exports/image/dist/browser/index.js\")),\n {\n loadExportJSONPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_exports_json_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-export-json */ \"../../plugins/exports/json/dist/browser/index.js\")),\n {\n loadExportVideoPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_exports_video_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-export-video */ \"../../plugins/exports/video/dist/browser/index.js\")),\n {\n loadExternalParticleInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_external_particle_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-external-particle */ \"../../interactions/external/particle/dist/browser/index.js\")),\n {\n loadExternalPopInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_external_pop_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-external-pop */ \"../../interactions/external/pop/dist/browser/index.js\")),\n {\n loadLightInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_light_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-light */ \"../../interactions/light/dist/browser/index.js\")),\n {\n loadParticlesRepulseInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_particles_repulse_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-particles-repulse */ \"../../interactions/particles/repulse/dist/browser/index.js\")),\n {\n loadGradientUpdater\n } = await __webpack_require__.e(/*! import() */ \"updaters_gradient_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-gradient */ \"../../updaters/gradient/dist/browser/index.js\")),\n {\n loadHeartShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_heart_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-heart */ \"../../shapes/heart/dist/browser/index.js\")),\n {\n loadInfinityShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_infinity_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-infinity */ \"../../shapes/infinity/dist/browser/index.js\")),\n {\n loadPathShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_path_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-path */ \"../../shapes/path/dist/browser/index.js\")),\n {\n loadPolygonPath\n } = await __webpack_require__.e(/*! import() */ \"paths_polygon_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-polygon */ \"../../paths/polygon/dist/browser/index.js\")),\n {\n loadRoundedPolygonShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_rounded-polygon_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-rounded-polygon */ \"../../shapes/rounded-polygon/dist/browser/index.js\")),\n {\n loadRoundedRectShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_rounded-rect_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-rounded-rect */ \"../../shapes/rounded-rect/dist/browser/index.js\")),\n {\n loadSpiralShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_spiral_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-spiral */ \"../../shapes/spiral/dist/browser/index.js\")),\n {\n loadSVGPath\n } = await __webpack_require__.e(/*! import() */ \"paths_svg_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-svg */ \"../../paths/svg/dist/browser/index.js\")),\n {\n loadZigZagPath\n } = await __webpack_require__.e(/*! import() */ \"paths_zigzag_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-zig-zag */ \"../../paths/zigzag/dist/browser/index.js\")),\n {\n loadArrowShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_arrow_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-arrow */ \"../../shapes/arrow/dist/browser/index.js\")),\n {\n loadCardsShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-cards */ \"../../shapes/cards/dist/browser/index.js\")),\n {\n loadCogShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_cog_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-cog */ \"../../shapes/cog/dist/browser/index.js\")),\n {\n loadOrbitUpdater\n } = await __webpack_require__.e(/*! import() */ \"updaters_orbit_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-orbit */ \"../../updaters/orbit/dist/browser/index.js\")),\n {\n loadCurlNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_curlNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-curl-noise */ \"../../paths/curlNoise/dist/browser/index.js\")),\n {\n loadCurvesPath\n } = await __webpack_require__.e(/*! import() */ \"paths_curves_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-curves */ \"../../paths/curves/dist/browser/index.js\")),\n {\n loadFractalNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_fractalNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-fractal-noise */ \"../../paths/fractalNoise/dist/browser/index.js\")),\n {\n loadPerlinNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_perlinNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-perlin-noise */ \"../../paths/perlinNoise/dist/browser/index.js\")),\n {\n loadSimplexNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_simplexNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-simplex-noise */ \"../../paths/simplexNoise/dist/browser/index.js\")),\n {\n loadBubbleEffect\n } = await __webpack_require__.e(/*! import() */ \"effects_bubble_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/effect-bubble */ \"../../effects/bubble/dist/browser/index.js\")),\n {\n loadShadowEffect\n } = await __webpack_require__.e(/*! import() */ \"effects_shadow_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/effect-shadow */ \"../../effects/shadow/dist/browser/index.js\")),\n {\n loadTrailEffect\n } = await __webpack_require__.e(/*! import() */ \"effects_trail_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/effect-trail */ \"../../effects/trail/dist/browser/index.js\"));\n initPjs(e);\n loadFull(e);\n loadHsvColorPlugin(e);\n loadHwbColorPlugin(e);\n loadLabColorPlugin(e);\n loadLchColorPlugin(e);\n loadOklabColorPlugin(e);\n loadOklchColorPlugin(e);\n loadNamedColorPlugin(e);\n loadEasingBackPlugin(e);\n loadEasingCircPlugin(e);\n loadEasingCubicPlugin(e);\n loadEasingExpoPlugin(e);\n loadEasingLinearPlugin(e);\n loadEasingQuartPlugin(e);\n loadEasingQuintPlugin(e);\n loadEasingSinePlugin(e);\n loadEmittersShapeCanvas(e);\n loadEmittersShapePath(e);\n loadEmittersShapePolygon(e);\n loadBackgroundMaskPlugin(e);\n loadCanvasMaskPlugin(e);\n loadInfectionPlugin(e);\n loadMotionPlugin(e);\n loadPoissonDiscPlugin(e);\n loadPolygonMaskPlugin(e);\n loadSoundsPlugin(e);\n loadTrailPlugin(e);\n loadExportImagePlugin(e);\n loadExportJSONPlugin(e);\n loadExportVideoPlugin(e);\n loadExternalParticleInteraction(e);\n loadExternalPopInteraction(e);\n loadLightInteraction(e);\n loadParticlesRepulseInteraction(e);\n loadGradientUpdater(e);\n loadOrbitUpdater(e);\n loadCurlNoisePath(e);\n loadCurvesPath(e);\n loadFractalNoisePath(e);\n loadPerlinNoisePath(e);\n loadPolygonPath(e);\n loadSVGPath(e);\n loadZigZagPath(e);\n loadSimplexNoisePath(e);\n loadBubbleEffect(e);\n loadShadowEffect(e);\n loadTrailEffect(e);\n loadArrowShape(e);\n loadCardsShape(e);\n loadCogShape(e);\n loadHeartShape(e);\n loadInfinityShape(e);\n loadPathShape(e);\n loadRoundedPolygonShape(e);\n loadRoundedRectShape(e);\n loadSpiralShape(e);\n });\n}\n\n//# sourceURL=webpack://@tsparticles/all/./dist/browser/index.js?\n}");
867
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAll: () => (/* binding */ loadAll)\n/* harmony export */ });\nfunction loadAll(engine) {\n engine.checkVersion(\"4.0.0-alpha.3\");\n engine.register(async e => {\n const {\n initPjs\n } = await __webpack_require__.e(/*! import() */ \"pjs_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/pjs */ \"../pjs/dist/browser/index.js\")),\n {\n loadFull\n } = await __webpack_require__.e(/*! import() */ \"full_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! tsparticles */ \"../full/dist/browser/index.js\")),\n {\n loadHsvColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_hsv_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-hsv-color */ \"../../plugins/colors/hsv/dist/browser/index.js\")),\n {\n loadHwbColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_hwb_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-hwb-color */ \"../../plugins/colors/hwb/dist/browser/index.js\")),\n {\n loadLabColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_lab_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-lab-color */ \"../../plugins/colors/lab/dist/browser/index.js\")),\n {\n loadLchColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_lch_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-lch-color */ \"../../plugins/colors/lch/dist/browser/index.js\")),\n {\n loadOklabColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_oklab_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-oklab-color */ \"../../plugins/colors/oklab/dist/browser/index.js\")),\n {\n loadOklchColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_oklch_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-oklch-color */ \"../../plugins/colors/oklch/dist/browser/index.js\")),\n {\n loadNamedColorPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_colors_named_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-named-color */ \"../../plugins/colors/named/dist/browser/index.js\")),\n {\n loadEasingBackPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_back_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-back */ \"../../plugins/easings/back/dist/browser/index.js\")),\n {\n loadEasingCircPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_circ_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-circ */ \"../../plugins/easings/circ/dist/browser/index.js\")),\n {\n loadEasingCubicPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_cubic_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-cubic */ \"../../plugins/easings/cubic/dist/browser/index.js\")),\n {\n loadEasingExpoPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_expo_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-expo */ \"../../plugins/easings/expo/dist/browser/index.js\")),\n {\n loadEasingLinearPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_linear_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-linear */ \"../../plugins/easings/linear/dist/browser/index.js\")),\n {\n loadEasingQuartPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_quart_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-quart */ \"../../plugins/easings/quart/dist/browser/index.js\")),\n {\n loadEasingQuintPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_quint_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-quint */ \"../../plugins/easings/quint/dist/browser/index.js\")),\n {\n loadEasingSinePlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_easings_sine_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-easing-sine */ \"../../plugins/easings/sine/dist/browser/index.js\")),\n {\n loadBackgroundMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_backgroundMask_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-background-mask */ \"../../plugins/backgroundMask/dist/browser/index.js\")),\n {\n loadCanvasMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_canvasMask_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-canvas-mask */ \"../../plugins/canvasMask/dist/browser/index.js\")),\n {\n loadInfectionPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_infection_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-infection */ \"../../plugins/infection/dist/browser/index.js\")),\n {\n loadMotionPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_motion_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-motion */ \"../../plugins/motion/dist/browser/index.js\")),\n {\n loadPoissonDiscPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_poisson_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-poisson-disc */ \"../../plugins/poisson/dist/browser/index.js\")),\n {\n loadPolygonMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-polygon-mask */ \"../../plugins/polygonMask/dist/browser/index.js\")),\n {\n loadSoundsPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_sounds_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-sounds */ \"../../plugins/sounds/dist/browser/index.js\")),\n {\n loadTrailPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_trail_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-trail */ \"../../plugins/trail/dist/browser/index.js\")),\n {\n loadExportImagePlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_exports_image_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-export-image */ \"../../plugins/exports/image/dist/browser/index.js\")),\n {\n loadExportJSONPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_exports_json_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-export-json */ \"../../plugins/exports/json/dist/browser/index.js\")),\n {\n loadExportVideoPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_exports_video_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-export-video */ \"../../plugins/exports/video/dist/browser/index.js\")),\n {\n loadExternalParticleInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_external_particle_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-external-particle */ \"../../interactions/external/particle/dist/browser/index.js\")),\n {\n loadExternalPopInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_external_pop_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-external-pop */ \"../../interactions/external/pop/dist/browser/index.js\")),\n {\n loadLightInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_light_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-light */ \"../../interactions/light/dist/browser/index.js\")),\n {\n loadParticlesRepulseInteraction\n } = await __webpack_require__.e(/*! import() */ \"interactions_particles_repulse_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/interaction-particles-repulse */ \"../../interactions/particles/repulse/dist/browser/index.js\")),\n {\n loadGradientUpdater\n } = await __webpack_require__.e(/*! import() */ \"updaters_gradient_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-gradient */ \"../../updaters/gradient/dist/browser/index.js\")),\n {\n loadHeartShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_heart_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-heart */ \"../../shapes/heart/dist/browser/index.js\")),\n {\n loadInfinityShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_infinity_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-infinity */ \"../../shapes/infinity/dist/browser/index.js\")),\n {\n loadPathShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_path_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-path */ \"../../shapes/path/dist/browser/index.js\")),\n {\n loadPolygonPath\n } = await __webpack_require__.e(/*! import() */ \"paths_polygon_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-polygon */ \"../../paths/polygon/dist/browser/index.js\")),\n {\n loadRoundedPolygonShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_rounded-polygon_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-rounded-polygon */ \"../../shapes/rounded-polygon/dist/browser/index.js\")),\n {\n loadRoundedRectShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_rounded-rect_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-rounded-rect */ \"../../shapes/rounded-rect/dist/browser/index.js\")),\n {\n loadSpiralShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_spiral_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-spiral */ \"../../shapes/spiral/dist/browser/index.js\")),\n {\n loadSVGPath\n } = await __webpack_require__.e(/*! import() */ \"paths_svg_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-svg */ \"../../paths/svg/dist/browser/index.js\")),\n {\n loadZigZagPath\n } = await __webpack_require__.e(/*! import() */ \"paths_zigzag_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-zig-zag */ \"../../paths/zigzag/dist/browser/index.js\")),\n {\n loadArrowShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_arrow_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-arrow */ \"../../shapes/arrow/dist/browser/index.js\")),\n {\n loadCardsShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-cards */ \"../../shapes/cards/dist/browser/index.js\")),\n {\n loadCogShape\n } = await __webpack_require__.e(/*! import() */ \"shapes_cog_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/shape-cog */ \"../../shapes/cog/dist/browser/index.js\")),\n {\n loadOrbitUpdater\n } = await __webpack_require__.e(/*! import() */ \"updaters_orbit_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/updater-orbit */ \"../../updaters/orbit/dist/browser/index.js\")),\n {\n loadCurlNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_curlNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-curl-noise */ \"../../paths/curlNoise/dist/browser/index.js\")),\n {\n loadCurvesPath\n } = await __webpack_require__.e(/*! import() */ \"paths_curves_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-curves */ \"../../paths/curves/dist/browser/index.js\")),\n {\n loadFractalNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_fractalNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-fractal-noise */ \"../../paths/fractalNoise/dist/browser/index.js\")),\n {\n loadPerlinNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_perlinNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-perlin-noise */ \"../../paths/perlinNoise/dist/browser/index.js\")),\n {\n loadSimplexNoisePath\n } = await __webpack_require__.e(/*! import() */ \"paths_simplexNoise_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/path-simplex-noise */ \"../../paths/simplexNoise/dist/browser/index.js\")),\n {\n loadBubbleEffect\n } = await __webpack_require__.e(/*! import() */ \"effects_bubble_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/effect-bubble */ \"../../effects/bubble/dist/browser/index.js\")),\n {\n loadShadowEffect\n } = await __webpack_require__.e(/*! import() */ \"effects_shadow_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/effect-shadow */ \"../../effects/shadow/dist/browser/index.js\")),\n {\n loadTrailEffect\n } = await __webpack_require__.e(/*! import() */ \"effects_trail_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/effect-trail */ \"../../effects/trail/dist/browser/index.js\")),\n {\n loadEmittersShapeCanvas\n } = await __webpack_require__.e(/*! import() */ \"plugins_emittersShapes_canvas_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-emitters-shape-canvas */ \"../../plugins/emittersShapes/canvas/dist/browser/index.js\")),\n {\n loadEmittersShapePath\n } = await __webpack_require__.e(/*! import() */ \"plugins_emittersShapes_path_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-emitters-shape-path */ \"../../plugins/emittersShapes/path/dist/browser/index.js\")),\n {\n loadEmittersShapePolygon\n } = await __webpack_require__.e(/*! import() */ \"plugins_emittersShapes_polygon_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-emitters-shape-polygon */ \"../../plugins/emittersShapes/polygon/dist/browser/index.js\"));\n initPjs(e);\n loadFull(e);\n loadEmittersShapeCanvas(e);\n loadEmittersShapePath(e);\n loadEmittersShapePolygon(e);\n loadHsvColorPlugin(e);\n loadHwbColorPlugin(e);\n loadLabColorPlugin(e);\n loadLchColorPlugin(e);\n loadOklabColorPlugin(e);\n loadOklchColorPlugin(e);\n loadNamedColorPlugin(e);\n loadEasingBackPlugin(e);\n loadEasingCircPlugin(e);\n loadEasingCubicPlugin(e);\n loadEasingExpoPlugin(e);\n loadEasingLinearPlugin(e);\n loadEasingQuartPlugin(e);\n loadEasingQuintPlugin(e);\n loadEasingSinePlugin(e);\n loadBackgroundMaskPlugin(e);\n loadCanvasMaskPlugin(e);\n loadInfectionPlugin(e);\n loadMotionPlugin(e);\n loadPoissonDiscPlugin(e);\n loadPolygonMaskPlugin(e);\n loadSoundsPlugin(e);\n loadTrailPlugin(e);\n loadExportImagePlugin(e);\n loadExportJSONPlugin(e);\n loadExportVideoPlugin(e);\n loadExternalParticleInteraction(e);\n loadExternalPopInteraction(e);\n loadLightInteraction(e);\n loadParticlesRepulseInteraction(e);\n loadGradientUpdater(e);\n loadOrbitUpdater(e);\n loadCurlNoisePath(e);\n loadCurvesPath(e);\n loadFractalNoisePath(e);\n loadPerlinNoisePath(e);\n loadPolygonPath(e);\n loadSVGPath(e);\n loadZigZagPath(e);\n loadSimplexNoisePath(e);\n loadBubbleEffect(e);\n loadShadowEffect(e);\n loadTrailEffect(e);\n loadArrowShape(e);\n loadCardsShape(e);\n loadCogShape(e);\n loadHeartShape(e);\n loadInfinityShape(e);\n loadPathShape(e);\n loadRoundedPolygonShape(e);\n loadRoundedRectShape(e);\n loadSpiralShape(e);\n });\n}\n\n//# sourceURL=webpack://@tsparticles/all/./dist/browser/index.js?\n}");
868
868
 
869
869
  /***/ }
870
870