tsparticles 4.0.0-alpha.2 → 4.0.0-alpha.21

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 (439) hide show
  1. package/102.min.js +1 -0
  2. package/1076.min.js +1 -0
  3. package/131.min.js +1 -0
  4. package/1311.min.js +1 -0
  5. package/1416.min.js +1 -0
  6. package/1504.min.js +1 -0
  7. package/1642.min.js +1 -0
  8. package/1681.min.js +1 -0
  9. package/1801.min.js +1 -0
  10. package/1887.min.js +2 -0
  11. package/195.min.js +1 -0
  12. package/1995.min.js +1 -0
  13. package/2106.min.js +1 -0
  14. package/2129.min.js +1 -0
  15. package/2268.min.js +1 -0
  16. package/2355.min.js +1 -0
  17. package/2402.min.js +1 -0
  18. package/2442.min.js +1 -0
  19. package/2559.min.js +1 -0
  20. package/2740.min.js +1 -0
  21. package/2753.min.js +1 -0
  22. package/2816.min.js +1 -0
  23. package/2823.min.js +1 -0
  24. package/2833.min.js +1 -0
  25. package/2895.min.js +1 -0
  26. package/3139.min.js +1 -0
  27. package/3166.min.js +1 -0
  28. package/3277.min.js +1 -0
  29. package/3281.min.js +1 -0
  30. package/3405.min.js +1 -0
  31. package/3415.min.js +1 -0
  32. package/3566.min.js +1 -0
  33. package/3576.min.js +1 -0
  34. package/3607.min.js +1 -0
  35. package/363.min.js +1 -0
  36. package/3746.min.js +1 -0
  37. package/3775.min.js +1 -0
  38. package/3891.min.js +1 -0
  39. package/3923.min.js +1 -0
  40. package/3939.min.js +1 -0
  41. package/4060.min.js +1 -0
  42. package/411.min.js +1 -0
  43. package/4227.min.js +1 -0
  44. package/4287.min.js +1 -0
  45. package/4377.min.js +1 -0
  46. package/4512.min.js +1 -0
  47. package/4853.min.js +1 -0
  48. package/4894.min.js +1 -0
  49. package/5022.min.js +1 -0
  50. package/5059.min.js +1 -0
  51. package/5143.min.js +1 -0
  52. package/522.min.js +1 -0
  53. package/5280.min.js +1 -0
  54. package/5291.min.js +1 -0
  55. package/5333.min.js +1 -0
  56. package/5523.min.js +1 -0
  57. package/5584.min.js +1 -0
  58. package/5679.min.js +1 -0
  59. package/578.min.js +1 -0
  60. package/5861.min.js +1 -0
  61. package/5905.min.js +1 -0
  62. package/6084.min.js +1 -0
  63. package/611.min.js +1 -0
  64. package/6253.min.js +1 -0
  65. package/6300.min.js +1 -0
  66. package/6330.min.js +1 -0
  67. package/6486.min.js +1 -0
  68. package/6495.min.js +1 -0
  69. package/6497.min.js +1 -0
  70. package/6566.min.js +1 -0
  71. package/6595.min.js +1 -0
  72. package/665.min.js +1 -0
  73. package/6900.min.js +1 -0
  74. package/699.min.js +1 -0
  75. package/7152.min.js +1 -0
  76. package/7239.min.js +1 -0
  77. package/7242.min.js +1 -0
  78. package/7346.min.js +1 -0
  79. package/7468.min.js +1 -0
  80. package/7612.min.js +1 -0
  81. package/7627.min.js +1 -0
  82. package/7828.min.js +1 -0
  83. package/7884.min.js +1 -0
  84. package/795.min.js +1 -0
  85. package/7953.min.js +1 -0
  86. package/8019.min.js +1 -0
  87. package/8035.min.js +1 -0
  88. package/8166.min.js +1 -0
  89. package/8174.min.js +1 -0
  90. package/8196.min.js +1 -0
  91. package/8286.min.js +1 -0
  92. package/8509.min.js +1 -0
  93. package/8514.min.js +1 -0
  94. package/8580.min.js +1 -0
  95. package/8635.min.js +1 -0
  96. package/8925.min.js +1 -0
  97. package/8968.min.js +1 -0
  98. package/9007.min.js +1 -0
  99. package/9099.min.js +1 -0
  100. package/9169.min.js +1 -0
  101. package/9212.min.js +1 -0
  102. package/9242.min.js +1 -0
  103. package/929.min.js +1 -0
  104. package/9322.min.js +1 -0
  105. package/9391.min.js +1 -0
  106. package/9555.min.js +1 -0
  107. package/9591.min.js +1 -0
  108. package/9612.min.js +1 -0
  109. package/969.min.js +1 -0
  110. package/9907.min.js +1 -2
  111. package/basic_dist_browser_index_js.js +2 -2
  112. package/browser/bundle.js +1 -2
  113. package/browser/index.js +33 -16
  114. package/cjs/bundle.js +1 -2
  115. package/cjs/index.js +33 -16
  116. package/engine_dist_browser_Core_Container_js.js +8 -18
  117. package/esm/bundle.js +1 -2
  118. package/esm/index.js +33 -16
  119. package/interactions_external_attract_dist_browser_Attractor_js.js +103 -3
  120. package/interactions_external_attract_dist_browser_index_js.js +3 -3
  121. package/interactions_external_bounce_dist_browser_Bouncer_js.js +103 -3
  122. package/interactions_external_bounce_dist_browser_index_js.js +3 -3
  123. package/interactions_external_bubble_dist_browser_Bubbler_js.js +104 -4
  124. package/interactions_external_bubble_dist_browser_index_js.js +5 -5
  125. package/interactions_external_connect_dist_browser_Connector_js.js +123 -3
  126. package/interactions_external_connect_dist_browser_index_js.js +4 -4
  127. package/interactions_external_grab_dist_browser_Grabber_js.js +123 -3
  128. package/interactions_external_grab_dist_browser_index_js.js +4 -4
  129. package/interactions_external_parallax_dist_browser_Parallaxer_js.js +130 -0
  130. package/interactions_external_parallax_dist_browser_index_js.js +40 -0
  131. package/interactions_external_pause_dist_browser_Pauser_js.js +102 -2
  132. package/interactions_external_pause_dist_browser_index_js.js +2 -2
  133. package/interactions_external_push_dist_browser_Pusher_js.js +102 -2
  134. package/interactions_external_push_dist_browser_index_js.js +3 -3
  135. package/interactions_external_remove_dist_browser_Remover_js.js +102 -2
  136. package/interactions_external_remove_dist_browser_index_js.js +3 -3
  137. package/interactions_external_repulse_dist_browser_Repulser_js.js +102 -2
  138. package/interactions_external_repulse_dist_browser_index_js.js +5 -5
  139. package/interactions_external_slow_dist_browser_Slower_js.js +102 -2
  140. package/interactions_external_slow_dist_browser_index_js.js +3 -3
  141. package/interactions_external_trail_dist_browser_TrailMaker_js.js +102 -2
  142. package/interactions_external_trail_dist_browser_index_js.js +3 -3
  143. package/interactions_particles_attract_dist_browser_Attractor_js.js +102 -2
  144. package/interactions_particles_attract_dist_browser_index_js.js +2 -2
  145. package/interactions_particles_collisions_dist_browser_Collider_js.js +110 -10
  146. package/interactions_particles_collisions_dist_browser_OverlapPluginInstance_js.js +30 -0
  147. package/interactions_particles_collisions_dist_browser_OverlapPlugin_js.js +2 -12
  148. package/interactions_particles_collisions_dist_browser_index_js.js +2 -2
  149. package/interactions_particles_links_dist_browser_LinkInstance_js.js +60 -0
  150. package/interactions_particles_links_dist_browser_Linker_js.js +103 -3
  151. package/interactions_particles_links_dist_browser_LinksPlugin_js.js +2 -22
  152. package/interactions_particles_links_dist_browser_index_js.js +5 -5
  153. package/move_base_dist_browser_BaseMover_js.js +3 -3
  154. package/move_base_dist_browser_index_js.js +2 -2
  155. package/package.json +14 -14
  156. package/plugins_absorbers_dist_browser_AbsorberInstance_js.js +70 -0
  157. package/plugins_absorbers_dist_browser_AbsorbersInstancesManager_js.js +30 -0
  158. package/plugins_absorbers_dist_browser_AbsorbersInteractor_js.js +170 -0
  159. package/plugins_absorbers_dist_browser_AbsorbersPluginInstance_js.js +30 -0
  160. package/plugins_absorbers_dist_browser_AbsorbersPlugin_js.js +15 -25
  161. package/plugins_absorbers_dist_browser_index_js.js +2 -12
  162. package/plugins_colors_hex_dist_browser_HexColorManager_js.js +2 -2
  163. package/plugins_colors_hex_dist_browser_index_js.js +2 -2
  164. package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +2 -2
  165. package/plugins_colors_hsl_dist_browser_index_js.js +2 -2
  166. package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +2 -2
  167. package/plugins_colors_rgb_dist_browser_index_js.js +2 -2
  168. package/{interactions_particles_links_dist_browser_interaction_js.js → plugins_easings_quad_dist_browser_easingsFunctions_js.js} +7 -7
  169. package/plugins_easings_quad_dist_browser_index_js.js +2 -2
  170. package/plugins_emittersShapes_circle_dist_browser_EmittersCircleShapeGenerator_js.js +6 -6
  171. package/plugins_emittersShapes_circle_dist_browser_index_js.js +2 -2
  172. package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +6 -6
  173. package/plugins_emittersShapes_square_dist_browser_index_js.js +2 -2
  174. package/plugins_emitters_dist_browser_EmitterInstance_js.js +30 -0
  175. package/plugins_emitters_dist_browser_EmittersInstancesManager_js.js +90 -0
  176. package/plugins_emitters_dist_browser_EmittersInteractor_js.js +200 -0
  177. package/plugins_emitters_dist_browser_EmittersPluginInstance_js.js +30 -0
  178. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +8 -28
  179. package/plugins_emitters_dist_browser_ShapeManager_js.js +2 -2
  180. package/plugins_emitters_dist_browser_index_js.js +4 -4
  181. package/plugins_interactivity_dist_browser_InteractivityPluginInstance_js.js +50 -0
  182. package/plugins_interactivity_dist_browser_InteractivityPlugin_js.js +70 -0
  183. package/plugins_interactivity_dist_browser_index_js.js +120 -0
  184. package/report.html +5 -5
  185. package/shapes_circle_dist_browser_CircleDrawer_js.js +3 -3
  186. package/shapes_circle_dist_browser_index_js.js +2 -2
  187. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +17 -7
  188. package/shapes_emoji_dist_browser_index_js.js +12 -2
  189. package/shapes_image_dist_browser_GifUtils_Utils_js.js +6 -16
  190. package/shapes_image_dist_browser_ImageDrawer_js.js +2 -2
  191. package/shapes_image_dist_browser_ImagePreloader_js.js +3 -3
  192. package/shapes_image_dist_browser_index_js.js +12 -2
  193. package/shapes_line_dist_browser_LineDrawer_js.js +3 -3
  194. package/shapes_line_dist_browser_index_js.js +2 -2
  195. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +4 -4
  196. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +4 -4
  197. package/shapes_polygon_dist_browser_index_js.js +2 -2
  198. package/shapes_square_dist_browser_SquareDrawer_js.js +3 -3
  199. package/shapes_square_dist_browser_index_js.js +2 -2
  200. package/shapes_star_dist_browser_StarDrawer_js.js +3 -3
  201. package/shapes_star_dist_browser_index_js.js +2 -2
  202. package/shapes_text_dist_browser_TextDrawer_js.js +17 -7
  203. package/shapes_text_dist_browser_index_js.js +12 -2
  204. package/slim_dist_browser_index_js.js +2 -2
  205. package/tsparticles.bundle.js +69 -249
  206. package/tsparticles.bundle.min.js +2 -2
  207. package/tsparticles.js +11 -11
  208. package/tsparticles.min.js +1 -2
  209. package/types/bundle.d.ts +1 -2
  210. package/types/index.d.ts +1 -1
  211. package/umd/bundle.js +3 -3
  212. package/umd/index.js +33 -16
  213. package/updaters_color_dist_browser_ColorUpdater_js.js +2 -2
  214. package/updaters_color_dist_browser_index_js.js +2 -2
  215. package/updaters_destroy_dist_browser_DestroyUpdater_js.js +9 -9
  216. package/updaters_destroy_dist_browser_index_js.js +2 -2
  217. package/updaters_life_dist_browser_LifeUpdater_js.js +6 -6
  218. package/updaters_life_dist_browser_index_js.js +2 -2
  219. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +2 -2
  220. package/updaters_opacity_dist_browser_index_js.js +2 -2
  221. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +7 -7
  222. package/updaters_outModes_dist_browser_index_js.js +2 -2
  223. package/updaters_roll_dist_browser_RollUpdater_js.js +6 -6
  224. package/updaters_roll_dist_browser_index_js.js +2 -2
  225. package/updaters_rotate_dist_browser_RotateUpdater_js.js +4 -4
  226. package/updaters_rotate_dist_browser_index_js.js +2 -2
  227. package/updaters_size_dist_browser_SizeUpdater_js.js +2 -2
  228. package/updaters_size_dist_browser_index_js.js +2 -2
  229. package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +2 -2
  230. package/updaters_strokeColor_dist_browser_index_js.js +2 -2
  231. package/updaters_tilt_dist_browser_TiltUpdater_js.js +5 -5
  232. package/updaters_tilt_dist_browser_index_js.js +2 -2
  233. package/updaters_twinkle_dist_browser_TwinkleUpdater_js.js +4 -4
  234. package/updaters_twinkle_dist_browser_index_js.js +2 -2
  235. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +5 -5
  236. package/updaters_wobble_dist_browser_index_js.js +2 -2
  237. package/1392.min.js +0 -2
  238. package/1392.min.js.LICENSE.txt +0 -1
  239. package/1406.min.js +0 -2
  240. package/1406.min.js.LICENSE.txt +0 -1
  241. package/1761.min.js +0 -2
  242. package/1761.min.js.LICENSE.txt +0 -1
  243. package/1878.min.js +0 -2
  244. package/1878.min.js.LICENSE.txt +0 -1
  245. package/198.min.js +0 -2
  246. package/198.min.js.LICENSE.txt +0 -1
  247. package/2058.min.js +0 -2
  248. package/2058.min.js.LICENSE.txt +0 -1
  249. package/2124.min.js +0 -2
  250. package/2124.min.js.LICENSE.txt +0 -1
  251. package/2142.min.js +0 -2
  252. package/2142.min.js.LICENSE.txt +0 -1
  253. package/2243.min.js +0 -2
  254. package/2243.min.js.LICENSE.txt +0 -1
  255. package/2422.min.js +0 -2
  256. package/2422.min.js.LICENSE.txt +0 -1
  257. package/2636.min.js +0 -2
  258. package/2636.min.js.LICENSE.txt +0 -1
  259. package/2739.min.js +0 -2
  260. package/2739.min.js.LICENSE.txt +0 -1
  261. package/2885.min.js +0 -2
  262. package/2885.min.js.LICENSE.txt +0 -1
  263. package/29.min.js +0 -2
  264. package/29.min.js.LICENSE.txt +0 -1
  265. package/2953.min.js +0 -2
  266. package/2953.min.js.LICENSE.txt +0 -1
  267. package/303.min.js +0 -2
  268. package/303.min.js.LICENSE.txt +0 -1
  269. package/3101.min.js +0 -2
  270. package/3101.min.js.LICENSE.txt +0 -1
  271. package/3206.min.js +0 -2
  272. package/3206.min.js.LICENSE.txt +0 -1
  273. package/3241.min.js +0 -2
  274. package/3241.min.js.LICENSE.txt +0 -1
  275. package/3309.min.js +0 -2
  276. package/3309.min.js.LICENSE.txt +0 -1
  277. package/3435.min.js +0 -2
  278. package/3435.min.js.LICENSE.txt +0 -1
  279. package/3493.min.js +0 -2
  280. package/3493.min.js.LICENSE.txt +0 -1
  281. package/350.min.js +0 -2
  282. package/350.min.js.LICENSE.txt +0 -1
  283. package/3522.min.js +0 -2
  284. package/3522.min.js.LICENSE.txt +0 -1
  285. package/3561.min.js +0 -2
  286. package/3561.min.js.LICENSE.txt +0 -1
  287. package/3636.min.js +0 -2
  288. package/3636.min.js.LICENSE.txt +0 -1
  289. package/3710.min.js +0 -2
  290. package/3710.min.js.LICENSE.txt +0 -1
  291. package/3753.min.js +0 -2
  292. package/3753.min.js.LICENSE.txt +0 -1
  293. package/3853.min.js +0 -2
  294. package/3853.min.js.LICENSE.txt +0 -1
  295. package/3872.min.js +0 -2
  296. package/3872.min.js.LICENSE.txt +0 -1
  297. package/3897.min.js +0 -2
  298. package/3897.min.js.LICENSE.txt +0 -1
  299. package/3922.min.js +0 -2
  300. package/3922.min.js.LICENSE.txt +0 -1
  301. package/404.min.js +0 -2
  302. package/404.min.js.LICENSE.txt +0 -1
  303. package/4204.min.js +0 -2
  304. package/4204.min.js.LICENSE.txt +0 -1
  305. package/4231.min.js +0 -2
  306. package/4231.min.js.LICENSE.txt +0 -1
  307. package/4242.min.js +0 -2
  308. package/4242.min.js.LICENSE.txt +0 -1
  309. package/4339.min.js +0 -2
  310. package/4339.min.js.LICENSE.txt +0 -1
  311. package/4398.min.js +0 -2
  312. package/4398.min.js.LICENSE.txt +0 -1
  313. package/4493.min.js +0 -2
  314. package/4493.min.js.LICENSE.txt +0 -1
  315. package/4510.min.js +0 -2
  316. package/4510.min.js.LICENSE.txt +0 -1
  317. package/4565.min.js +0 -2
  318. package/4565.min.js.LICENSE.txt +0 -1
  319. package/4606.min.js +0 -2
  320. package/4606.min.js.LICENSE.txt +0 -1
  321. package/4620.min.js +0 -2
  322. package/4620.min.js.LICENSE.txt +0 -1
  323. package/4743.min.js +0 -2
  324. package/4743.min.js.LICENSE.txt +0 -1
  325. package/491.min.js +0 -2
  326. package/491.min.js.LICENSE.txt +0 -1
  327. package/508.min.js +0 -2
  328. package/508.min.js.LICENSE.txt +0 -1
  329. package/5082.min.js +0 -2
  330. package/5082.min.js.LICENSE.txt +0 -1
  331. package/5243.min.js +0 -2
  332. package/5243.min.js.LICENSE.txt +0 -1
  333. package/5322.min.js +0 -2
  334. package/5322.min.js.LICENSE.txt +0 -1
  335. package/5433.min.js +0 -2
  336. package/5433.min.js.LICENSE.txt +0 -1
  337. package/5504.min.js +0 -2
  338. package/5504.min.js.LICENSE.txt +0 -1
  339. package/5563.min.js +0 -2
  340. package/5563.min.js.LICENSE.txt +0 -1
  341. package/5635.min.js +0 -2
  342. package/5635.min.js.LICENSE.txt +0 -1
  343. package/5689.min.js +0 -2
  344. package/5689.min.js.LICENSE.txt +0 -1
  345. package/5693.min.js +0 -2
  346. package/5693.min.js.LICENSE.txt +0 -1
  347. package/5728.min.js +0 -2
  348. package/5728.min.js.LICENSE.txt +0 -1
  349. package/5749.min.js +0 -2
  350. package/5749.min.js.LICENSE.txt +0 -1
  351. package/5770.min.js +0 -2
  352. package/5770.min.js.LICENSE.txt +0 -1
  353. package/582.min.js +0 -2
  354. package/582.min.js.LICENSE.txt +0 -1
  355. package/5885.min.js +0 -2
  356. package/5885.min.js.LICENSE.txt +0 -1
  357. package/590.min.js +0 -2
  358. package/590.min.js.LICENSE.txt +0 -1
  359. package/5917.min.js +0 -2
  360. package/5917.min.js.LICENSE.txt +0 -1
  361. package/6024.min.js +0 -2
  362. package/6024.min.js.LICENSE.txt +0 -1
  363. package/6137.min.js +0 -2
  364. package/6137.min.js.LICENSE.txt +0 -1
  365. package/617.min.js +0 -2
  366. package/617.min.js.LICENSE.txt +0 -1
  367. package/6416.min.js +0 -2
  368. package/6416.min.js.LICENSE.txt +0 -1
  369. package/6560.min.js +0 -2
  370. package/6560.min.js.LICENSE.txt +0 -1
  371. package/6674.min.js +0 -2
  372. package/6674.min.js.LICENSE.txt +0 -1
  373. package/6866.min.js +0 -2
  374. package/6866.min.js.LICENSE.txt +0 -1
  375. package/704.min.js +0 -2
  376. package/704.min.js.LICENSE.txt +0 -1
  377. package/731.min.js +0 -2
  378. package/731.min.js.LICENSE.txt +0 -1
  379. package/7321.min.js +0 -2
  380. package/7321.min.js.LICENSE.txt +0 -1
  381. package/7489.min.js +0 -2
  382. package/7489.min.js.LICENSE.txt +0 -1
  383. package/7571.min.js +0 -2
  384. package/7571.min.js.LICENSE.txt +0 -1
  385. package/7753.min.js +0 -2
  386. package/7753.min.js.LICENSE.txt +0 -1
  387. package/8127.min.js +0 -2
  388. package/8127.min.js.LICENSE.txt +0 -1
  389. package/8182.min.js +0 -2
  390. package/8182.min.js.LICENSE.txt +0 -1
  391. package/8191.min.js +0 -2
  392. package/8191.min.js.LICENSE.txt +0 -1
  393. package/8230.min.js +0 -2
  394. package/8230.min.js.LICENSE.txt +0 -1
  395. package/8245.min.js +0 -2
  396. package/8245.min.js.LICENSE.txt +0 -1
  397. package/8365.min.js +0 -2
  398. package/8365.min.js.LICENSE.txt +0 -1
  399. package/8420.min.js +0 -2
  400. package/8420.min.js.LICENSE.txt +0 -1
  401. package/8440.min.js +0 -2
  402. package/8440.min.js.LICENSE.txt +0 -1
  403. package/8470.min.js +0 -2
  404. package/8470.min.js.LICENSE.txt +0 -1
  405. package/8484.min.js +0 -2
  406. package/8484.min.js.LICENSE.txt +0 -1
  407. package/869.min.js +0 -2
  408. package/869.min.js.LICENSE.txt +0 -1
  409. package/8770.min.js +0 -2
  410. package/8770.min.js.LICENSE.txt +0 -1
  411. package/8848.min.js +0 -2
  412. package/8848.min.js.LICENSE.txt +0 -1
  413. package/8930.min.js +0 -2
  414. package/8930.min.js.LICENSE.txt +0 -1
  415. package/9149.min.js +0 -2
  416. package/9149.min.js.LICENSE.txt +0 -1
  417. package/917.min.js +0 -2
  418. package/917.min.js.LICENSE.txt +0 -1
  419. package/9287.min.js +0 -2
  420. package/9287.min.js.LICENSE.txt +0 -1
  421. package/9754.min.js +0 -2
  422. package/9754.min.js.LICENSE.txt +0 -1
  423. package/9825.min.js +0 -2
  424. package/9825.min.js.LICENSE.txt +0 -1
  425. package/9907.min.js.LICENSE.txt +0 -1
  426. package/9915.min.js +0 -2
  427. package/9915.min.js.LICENSE.txt +0 -1
  428. package/9944.min.js +0 -2
  429. package/9944.min.js.LICENSE.txt +0 -1
  430. package/9950.min.js +0 -2
  431. package/9950.min.js.LICENSE.txt +0 -1
  432. package/9965.min.js +0 -2
  433. package/9965.min.js.LICENSE.txt +0 -1
  434. package/interactions_particles_links_dist_browser_plugin_js.js +0 -30
  435. package/move_parallax_dist_browser_ParallaxMover_js.js +0 -30
  436. package/move_parallax_dist_browser_index_js.js +0 -30
  437. package/shapes_image_dist_browser_Utils_js.js +0 -30
  438. package/tsparticles.bundle.min.js.LICENSE.txt +0 -1
  439. package/tsparticles.min.js.LICENSE.txt +0 -1
@@ -0,0 +1,70 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-alpha.21
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunktsparticles"] = this["webpackChunktsparticles"] || []).push([["plugins_absorbers_dist_browser_AbsorberInstance_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/AbsorberInstance.js"
21
+ /*!****************************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/AbsorberInstance.js ***!
23
+ \****************************************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberInstance: () => (/* binding */ AbsorberInstance)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n\n\nconst squareExp = 2, absorbFactor = 0.033, minOrbitLength = 0, minRadius = 0, minMass = 0, minAngle = 0, maxAngle = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI, minVelocity = 0, defaultLifeDelay = 0, minLifeCount = 0, defaultSpawnDelay = 0, defaultLifeCount = -1;\nclass AbsorberInstance {\n color;\n limit;\n mass;\n name;\n opacity;\n options;\n position;\n size;\n _container;\n _currentDuration;\n _currentSpawnDelay;\n _duration;\n _engine;\n _firstSpawn;\n _immortal;\n _lifeCount;\n _spawnDelay;\n initialPosition;\n constructor(engine, container, options, position){\n this._container = container;\n this._engine = engine;\n this._currentDuration = 0;\n this._currentSpawnDelay = 0;\n this.initialPosition = position ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(position.x, position.y) : undefined;\n if (options instanceof _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber) {\n this.options = options;\n } else {\n this.options = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n this.options.load(options);\n }\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * this.options.size.density * container.retina.reduceFactor;\n const limit = this.options.size.limit;\n this.limit = {\n radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: limit.mass\n };\n this.color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(this._engine, this.options.color) ?? {\n b: 0,\n g: 0,\n r: 0\n };\n this.position = this.initialPosition?.copy() ?? this._calcPosition();\n this._firstSpawn = !this.options.life.wait;\n this._lifeCount = this.options.life.count ?? defaultLifeCount;\n this._immortal = this._lifeCount <= minLifeCount;\n this._spawnDelay = container.retina.reduceFactor ? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.life.delay ?? defaultLifeDelay) * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds / container.retina.reduceFactor : Infinity;\n }\n attract(particle, delta) {\n const container = this._container, options = this.options, pos = particle.getPosition(), { dx, dy, distance } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(this.position, pos), v = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(dx, dy);\n v.length = this.mass / Math.pow(distance, squareExp) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * absorbFactor * container.retina.pixelRatio * delta.factor;\n if (this.size > particle.getRadius() && distance < this.size - particle.getRadius() || particle.absorberOrbit !== undefined && particle.absorberOrbit.length < minOrbitLength) {\n if (options.destroy) {\n particle.destroy();\n } else {\n particle.needsNewPosition = true;\n this._updateParticlePosition(particle, v);\n }\n } else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this._updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= minRadius || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= minMass || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n } else {\n this._updateParticlePosition(particle, v);\n }\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, this.size, minAngle, maxAngle, false);\n context.closePath();\n context.fillStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(this.color, this._container.hdr, this.opacity);\n context.fill();\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position = initialPosition && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isPointInside)(initialPosition, this._container.canvas.size, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin) ? initialPosition : this._calcPosition();\n }\n update(delta) {\n if (this._firstSpawn) {\n this._firstSpawn = false;\n this._currentSpawnDelay = this._spawnDelay ?? defaultSpawnDelay;\n }\n if (this._duration !== undefined) {\n this._currentDuration += delta.value;\n if (this._currentDuration >= this._duration) {\n if (!this._immortal) {\n this._lifeCount--;\n }\n if (this._lifeCount > minLifeCount || this._immortal) {\n this.position = this._calcPosition();\n this._spawnDelay = this._container.retina.reduceFactor ? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.life.delay ?? defaultLifeDelay) * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds / this._container.retina.reduceFactor : Infinity;\n }\n this._currentDuration -= this._duration;\n delete this._duration;\n }\n }\n if (this._spawnDelay !== undefined) {\n this._currentSpawnDelay += delta.value;\n if (this._currentSpawnDelay >= this._spawnDelay) {\n this.play();\n this._currentSpawnDelay -= this._spawnDelay;\n delete this._spawnDelay;\n }\n }\n }\n _calcPosition = ()=>{\n const exactPosition = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.calcPositionOrRandomFromSizeRanged)({\n size: this._container.canvas.size,\n position: this.options.position\n });\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(exactPosition.x, exactPosition.y);\n };\n _prepareToDie = ()=>{\n const duration = this.options.life.duration !== undefined ? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.life.duration) : undefined, minDuration = 0;\n if ((this._lifeCount > minLifeCount || this._immortal) && duration !== undefined && duration > minDuration) {\n this._duration = duration * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.millisecondsToSeconds;\n }\n };\n _updateParticlePosition = (particle, v)=>{\n if (particle.destroyed) {\n return;\n }\n const container = this._container, canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n const newPosition = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.calcPositionOrRandomFromSize)({\n size: canvasSize\n });\n particle.position.setTo(newPosition);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n particle.absorberOrbit.length = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * maxAngle;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height), offset = 1, randomOffset = 0.1, randomFactor = 0.2;\n particle.absorberOrbit.length = minSize * (offset + ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * randomFactor - randomOffset));\n }\n particle.absorberOrbitDirection ??= particle.velocity.x >= minVelocity ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.counterClockwise;\n const orbitRadius = particle.absorberOrbit.length, orbitAngle = particle.absorberOrbit.angle, orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.setTo(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin);\n const updateFunc = {\n x: orbitDirection === _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise ? Math.cos : Math.sin,\n y: orbitDirection === _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise ? Math.sin : Math.cos\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle += (particle.retina.moveSpeed ?? minVelocity) * container.retina.pixelRatio / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator * container.retina.reduceFactor;\n } else {\n const addV = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n };\n play = ()=>{\n if (!((this._lifeCount > minLifeCount || this._immortal || !this.options.life.count) && (this._firstSpawn || this._currentSpawnDelay >= (this._spawnDelay ?? defaultSpawnDelay)))) {\n return;\n }\n if (this._lifeCount > minLifeCount || this._immortal) {\n this._prepareToDie();\n }\n };\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/AbsorberInstance.js?\n}");
27
+
28
+ /***/ },
29
+
30
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js"
31
+ /*!************************************************************************!*\
32
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js ***!
33
+ \************************************************************************/
34
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
+
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Absorber: () => (/* binding */ Absorber)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberLife_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberLife.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js\");\n/* harmony import */ var _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AbsorberSize.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js\");\n\n\n\nclass Absorber {\n color;\n destroy;\n draggable;\n life;\n name;\n opacity;\n orbits;\n position;\n size;\n constructor(){\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.life = new _AbsorberLife_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberLife();\n this.size = new _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_2__.AbsorberSize();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n if (data.life !== undefined) {\n this.life.load(data.life);\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js?\n}");
37
+
38
+ /***/ },
39
+
40
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js"
41
+ /*!****************************************************************************!*\
42
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js ***!
43
+ \****************************************************************************/
44
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
45
+
46
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberLife: () => (/* binding */ AbsorberLife)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorberLife {\n count;\n delay;\n duration;\n wait;\n constructor(){\n this.wait = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.delay);\n }\n if (data.duration !== undefined) {\n this.duration = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.duration);\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js?\n}");
47
+
48
+ /***/ },
49
+
50
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js"
51
+ /*!****************************************************************************!*\
52
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js ***!
53
+ \****************************************************************************/
54
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
55
+
56
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSize: () => (/* binding */ AbsorberSize)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberSizeLimit.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js\");\n\n\nclass AbsorberSize extends _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.ValueWithRandom {\n density;\n limit;\n constructor(){\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberSizeLimit();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(data.limit)) {\n this.limit.radius = data.limit;\n } else {\n this.limit.load(data.limit);\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js?\n}");
57
+
58
+ /***/ },
59
+
60
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js"
61
+ /*!*********************************************************************************!*\
62
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js ***!
63
+ \*********************************************************************************/
64
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
65
+
66
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSizeLimit: () => (/* binding */ AbsorberSizeLimit)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorberSizeLimit {\n mass;\n radius;\n constructor(){\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js?\n}");
67
+
68
+ /***/ }
69
+
70
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-alpha.21
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunktsparticles"] = this["webpackChunktsparticles"] || []).push([["plugins_absorbers_dist_browser_AbsorbersInstancesManager_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/AbsorbersInstancesManager.js"
21
+ /*!*************************************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/AbsorbersInstancesManager.js ***!
23
+ \*************************************************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorbersInstancesManager: () => (/* binding */ AbsorbersInstancesManager)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst defaultIndex = 0;\nclass AbsorbersInstancesManager {\n _containerArrays;\n _engine;\n constructor(engine){\n this._containerArrays = new Map();\n this._engine = engine;\n }\n async addAbsorber(container, options, position) {\n const { AbsorberInstance } = await __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorberInstance_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorberInstance.js */ \"../../plugins/absorbers/dist/browser/AbsorberInstance.js\")), absorber = new AbsorberInstance(this._engine, container, options, position), array = this.getArray(container);\n array.push(absorber);\n return absorber;\n }\n clear(container) {\n this.initContainer(container);\n this._containerArrays.set(container, []);\n }\n getArray(container) {\n this.initContainer(container);\n let array = this._containerArrays.get(container);\n if (!array) {\n array = [];\n this._containerArrays.set(container, array);\n }\n return array;\n }\n initContainer(container) {\n if (this._containerArrays.has(container)) {\n return;\n }\n this._containerArrays.set(container, []);\n container.getAbsorber ??= (idxOrName)=>{\n const array = this.getArray(container);\n return idxOrName === undefined || (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(idxOrName) ? array[idxOrName ?? defaultIndex] : array.find((t)=>t.name === idxOrName);\n };\n container.addAbsorber ??= (options, position)=>{\n return this.addAbsorber(container, options, position);\n };\n }\n removeAbsorber(container, absorber) {\n const index = this.getArray(container).indexOf(absorber), deleteCount = 1;\n if (index >= defaultIndex) {\n this.getArray(container).splice(index, deleteCount);\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/AbsorbersInstancesManager.js?\n}");
27
+
28
+ /***/ }
29
+
30
+ }]);
@@ -0,0 +1,170 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-alpha.21
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunktsparticles"] = this["webpackChunktsparticles"] || []).push([["plugins_absorbers_dist_browser_AbsorbersInteractor_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/AbsorbersInteractor.js"
21
+ /*!*******************************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/AbsorbersInteractor.js ***!
23
+ \*******************************************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorbersInteractor: () => (/* binding */ AbsorbersInteractor)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/plugin-interactivity */ \"../../plugins/interactivity/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n\n\n\nconst absorbersMode = \"absorbers\";\nclass AbsorbersInteractor extends _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__.ExternalInteractorBase {\n handleClickMode;\n _instancesManager;\n dragging = false;\n draggingAbsorber;\n constructor(container, instancesManager){\n super(container);\n this._instancesManager = instancesManager;\n this._instancesManager.initContainer(container);\n this.handleClickMode = (mode, interactivityData)=>{\n const container = this.container, options = container.actualOptions, absorbers = options.interactivity.modes.absorbers;\n if (!absorbers || mode !== absorbersMode) {\n return;\n }\n const { clickPosition } = interactivityData.mouse;\n if (clickPosition) {\n const existingAbsorber = instancesManager.getArray(this.container).some((t)=>(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(t.position, clickPosition) < t.size);\n if (existingAbsorber) {\n return;\n }\n }\n const absorbersModeOptions = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(absorbers) ?? new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n void this._instancesManager.addAbsorber(container, absorbersModeOptions, clickPosition);\n };\n }\n clear() {}\n init() {}\n interact(interactivityData, delta) {\n for (const particle of this.container.particles.filter((p)=>this.isEnabled(interactivityData, p))){\n for (const absorber of this._instancesManager.getArray(this.container)){\n if (absorber.options.draggable) {\n const mouse = interactivityData.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(absorber.position, mouse.downPosition);\n if (mouseDist <= absorber.size) {\n this.dragging = true;\n this.draggingAbsorber = absorber;\n }\n } else {\n this.dragging = false;\n this.draggingAbsorber = undefined;\n }\n if (this.dragging && this.draggingAbsorber == absorber && mouse.position) {\n absorber.position.x = mouse.position.x;\n absorber.position.y = mouse.position.y;\n }\n }\n absorber.attract(particle, delta);\n if (particle.destroyed) {\n break;\n }\n }\n }\n }\n isEnabled(interactivityData, particle) {\n const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity).events;\n if (!mouse.clickPosition || !events.onClick.enable) {\n return false;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isInArray)(absorbersMode, events.onClick.mode);\n }\n loadModeOptions(options, ...sources) {\n options.absorbers ??= [];\n for (const source of sources){\n if (!source) {\n continue;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isArray)(source.absorbers)) {\n for (const absorber of source.absorbers){\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n tmp.load(absorber);\n options.absorbers.push(tmp);\n }\n } else {\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n tmp.load(source.absorbers);\n options.absorbers.push(tmp);\n }\n }\n }\n reset() {}\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/AbsorbersInteractor.js?\n}");
27
+
28
+ /***/ },
29
+
30
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js"
31
+ /*!************************************************************************!*\
32
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js ***!
33
+ \************************************************************************/
34
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
+
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Absorber: () => (/* binding */ Absorber)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberLife_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberLife.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js\");\n/* harmony import */ var _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AbsorberSize.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js\");\n\n\n\nclass Absorber {\n color;\n destroy;\n draggable;\n life;\n name;\n opacity;\n orbits;\n position;\n size;\n constructor(){\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.life = new _AbsorberLife_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberLife();\n this.size = new _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_2__.AbsorberSize();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n if (data.life !== undefined) {\n this.life.load(data.life);\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js?\n}");
37
+
38
+ /***/ },
39
+
40
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js"
41
+ /*!****************************************************************************!*\
42
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js ***!
43
+ \****************************************************************************/
44
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
45
+
46
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberLife: () => (/* binding */ AbsorberLife)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorberLife {\n count;\n delay;\n duration;\n wait;\n constructor(){\n this.wait = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.delay);\n }\n if (data.duration !== undefined) {\n this.duration = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.duration);\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js?\n}");
47
+
48
+ /***/ },
49
+
50
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js"
51
+ /*!****************************************************************************!*\
52
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js ***!
53
+ \****************************************************************************/
54
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
55
+
56
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSize: () => (/* binding */ AbsorberSize)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberSizeLimit.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js\");\n\n\nclass AbsorberSize extends _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.ValueWithRandom {\n density;\n limit;\n constructor(){\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberSizeLimit();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(data.limit)) {\n this.limit.radius = data.limit;\n } else {\n this.limit.load(data.limit);\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js?\n}");
57
+
58
+ /***/ },
59
+
60
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js"
61
+ /*!*********************************************************************************!*\
62
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js ***!
63
+ \*********************************************************************************/
64
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
65
+
66
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSizeLimit: () => (/* binding */ AbsorberSizeLimit)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorberSizeLimit {\n mass;\n radius;\n constructor(){\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js?\n}");
67
+
68
+ /***/ },
69
+
70
+ /***/ "../../plugins/interactivity/dist/browser/DivType.js"
71
+ /*!***********************************************************!*\
72
+ !*** ../../plugins/interactivity/dist/browser/DivType.js ***!
73
+ \***********************************************************/
74
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
75
+
76
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DivType: () => (/* binding */ DivType)\n/* harmony export */ });\nvar DivType;\n(function(DivType) {\n DivType[\"circle\"] = \"circle\";\n DivType[\"rectangle\"] = \"rectangle\";\n})(DivType || (DivType = {}));\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/DivType.js?\n}");
77
+
78
+ /***/ },
79
+
80
+ /***/ "../../plugins/interactivity/dist/browser/ExternalInteractorBase.js"
81
+ /*!**************************************************************************!*\
82
+ !*** ../../plugins/interactivity/dist/browser/ExternalInteractorBase.js ***!
83
+ \**************************************************************************/
84
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
85
+
86
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ExternalInteractorBase: () => (/* binding */ ExternalInteractorBase)\n/* harmony export */ });\n/* harmony import */ var _InteractorType_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InteractorType.js */ \"../../plugins/interactivity/dist/browser/InteractorType.js\");\n\nclass ExternalInteractorBase {\n type = _InteractorType_js__WEBPACK_IMPORTED_MODULE_0__.InteractorType.external;\n container;\n constructor(container){\n this.container = container;\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/ExternalInteractorBase.js?\n}");
87
+
88
+ /***/ },
89
+
90
+ /***/ "../../plugins/interactivity/dist/browser/InteractivityConstants.js"
91
+ /*!**************************************************************************!*\
92
+ !*** ../../plugins/interactivity/dist/browser/InteractivityConstants.js ***!
93
+ \**************************************************************************/
94
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
95
+
96
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clickEvent: () => (/* binding */ clickEvent),\n/* harmony export */ mouseDownEvent: () => (/* binding */ mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* binding */ mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* binding */ mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* binding */ mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* binding */ mouseUpEvent),\n/* harmony export */ touchCancelEvent: () => (/* binding */ touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* binding */ touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* binding */ touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* binding */ touchStartEvent)\n/* harmony export */ });\nconst clickEvent = \"click\", mouseDownEvent = \"pointerdown\", mouseUpEvent = \"pointerup\", mouseLeaveEvent = \"pointerleave\", mouseOutEvent = \"pointerout\", mouseMoveEvent = \"pointermove\", touchStartEvent = \"touchstart\", touchEndEvent = \"touchend\", touchMoveEvent = \"touchmove\", touchCancelEvent = \"touchcancel\";\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/InteractivityConstants.js?\n}");
97
+
98
+ /***/ },
99
+
100
+ /***/ "../../plugins/interactivity/dist/browser/InteractivityDetect.js"
101
+ /*!***********************************************************************!*\
102
+ !*** ../../plugins/interactivity/dist/browser/InteractivityDetect.js ***!
103
+ \***********************************************************************/
104
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
105
+
106
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InteractivityDetect: () => (/* binding */ InteractivityDetect)\n/* harmony export */ });\nvar InteractivityDetect;\n(function(InteractivityDetect) {\n InteractivityDetect[\"canvas\"] = \"canvas\";\n InteractivityDetect[\"parent\"] = \"parent\";\n InteractivityDetect[\"window\"] = \"window\";\n})(InteractivityDetect || (InteractivityDetect = {}));\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/InteractivityDetect.js?\n}");
107
+
108
+ /***/ },
109
+
110
+ /***/ "../../plugins/interactivity/dist/browser/InteractorType.js"
111
+ /*!******************************************************************!*\
112
+ !*** ../../plugins/interactivity/dist/browser/InteractorType.js ***!
113
+ \******************************************************************/
114
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
115
+
116
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InteractorType: () => (/* binding */ InteractorType)\n/* harmony export */ });\nvar InteractorType;\n(function(InteractorType) {\n InteractorType[\"external\"] = \"external\";\n InteractorType[\"particles\"] = \"particles\";\n})(InteractorType || (InteractorType = {}));\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/InteractorType.js?\n}");
117
+
118
+ /***/ },
119
+
120
+ /***/ "../../plugins/interactivity/dist/browser/Options/Classes/Events/DivEvent.js"
121
+ /*!***********************************************************************************!*\
122
+ !*** ../../plugins/interactivity/dist/browser/Options/Classes/Events/DivEvent.js ***!
123
+ \***********************************************************************************/
124
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
125
+
126
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DivEvent: () => (/* binding */ DivEvent)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _DivType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../DivType.js */ \"../../plugins/interactivity/dist/browser/DivType.js\");\n\n\nclass DivEvent {\n enable;\n mode;\n selectors;\n type;\n constructor(){\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = _DivType_js__WEBPACK_IMPORTED_MODULE_1__.DivType.circle;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/Options/Classes/Events/DivEvent.js?\n}");
127
+
128
+ /***/ },
129
+
130
+ /***/ "../../plugins/interactivity/dist/browser/Options/Classes/Modes/Modes.js"
131
+ /*!*******************************************************************************!*\
132
+ !*** ../../plugins/interactivity/dist/browser/Options/Classes/Modes/Modes.js ***!
133
+ \*******************************************************************************/
134
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
135
+
136
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Modes: () => (/* binding */ Modes)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass Modes {\n _container;\n _engine;\n constructor(engine, container){\n this._engine = engine;\n this._container = container;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (!this._container) {\n return;\n }\n const interactors = this._engine.interactors?.get(this._container);\n if (!interactors) {\n return;\n }\n for (const interactor of interactors){\n if (!interactor.loadModeOptions) {\n continue;\n }\n interactor.loadModeOptions(this, data);\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/Options/Classes/Modes/Modes.js?\n}");
137
+
138
+ /***/ },
139
+
140
+ /***/ "../../plugins/interactivity/dist/browser/ParticlesInteractorBase.js"
141
+ /*!***************************************************************************!*\
142
+ !*** ../../plugins/interactivity/dist/browser/ParticlesInteractorBase.js ***!
143
+ \***************************************************************************/
144
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
145
+
146
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ParticlesInteractorBase: () => (/* binding */ ParticlesInteractorBase)\n/* harmony export */ });\n/* harmony import */ var _InteractorType_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InteractorType.js */ \"../../plugins/interactivity/dist/browser/InteractorType.js\");\n\nclass ParticlesInteractorBase {\n type = _InteractorType_js__WEBPACK_IMPORTED_MODULE_0__.InteractorType.particles;\n container;\n constructor(container){\n this.container = container;\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/ParticlesInteractorBase.js?\n}");
147
+
148
+ /***/ },
149
+
150
+ /***/ "../../plugins/interactivity/dist/browser/index.js"
151
+ /*!*********************************************************!*\
152
+ !*** ../../plugins/interactivity/dist/browser/index.js ***!
153
+ \*********************************************************/
154
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
155
+
156
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DivEvent: () => (/* reexport safe */ _Options_Classes_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_8__.DivEvent),\n/* harmony export */ DivType: () => (/* reexport safe */ _DivType_js__WEBPACK_IMPORTED_MODULE_1__.DivType),\n/* harmony export */ ExternalInteractorBase: () => (/* reexport safe */ _ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__.ExternalInteractorBase),\n/* harmony export */ InteractivityDetect: () => (/* reexport safe */ _InteractivityDetect_js__WEBPACK_IMPORTED_MODULE_4__.InteractivityDetect),\n/* harmony export */ InteractorType: () => (/* reexport safe */ _InteractorType_js__WEBPACK_IMPORTED_MODULE_5__.InteractorType),\n/* harmony export */ Modes: () => (/* reexport safe */ _Options_Classes_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_9__.Modes),\n/* harmony export */ ParticlesInteractorBase: () => (/* reexport safe */ _ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_6__.ParticlesInteractorBase),\n/* harmony export */ clickEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.clickEvent),\n/* harmony export */ divMode: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.divMode),\n/* harmony export */ divModeExecute: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.divModeExecute),\n/* harmony export */ ensureInteractivityPluginLoaded: () => (/* binding */ ensureInteractivityPluginLoaded),\n/* harmony export */ isDivModeEnabled: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.isDivModeEnabled),\n/* harmony export */ loadInteractivityPlugin: () => (/* binding */ loadInteractivityPlugin),\n/* harmony export */ mouseDownEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseDownEvent),\n/* harmony export */ mouseLeaveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseLeaveEvent),\n/* harmony export */ mouseMoveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseMoveEvent),\n/* harmony export */ mouseOutEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseOutEvent),\n/* harmony export */ mouseUpEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.mouseUpEvent),\n/* harmony export */ singleDivModeExecute: () => (/* reexport safe */ _utils_js__WEBPACK_IMPORTED_MODULE_7__.singleDivModeExecute),\n/* harmony export */ touchCancelEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchCancelEvent),\n/* harmony export */ touchEndEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchEndEvent),\n/* harmony export */ touchMoveEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchMoveEvent),\n/* harmony export */ touchStartEvent: () => (/* reexport safe */ _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__.touchStartEvent)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _DivType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DivType.js */ \"../../plugins/interactivity/dist/browser/DivType.js\");\n/* harmony import */ var _ExternalInteractorBase_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ExternalInteractorBase.js */ \"../../plugins/interactivity/dist/browser/ExternalInteractorBase.js\");\n/* harmony import */ var _InteractivityConstants_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./InteractivityConstants.js */ \"../../plugins/interactivity/dist/browser/InteractivityConstants.js\");\n/* harmony import */ var _InteractivityDetect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./InteractivityDetect.js */ \"../../plugins/interactivity/dist/browser/InteractivityDetect.js\");\n/* harmony import */ var _InteractorType_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./InteractorType.js */ \"../../plugins/interactivity/dist/browser/InteractorType.js\");\n/* harmony import */ var _ParticlesInteractorBase_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ParticlesInteractorBase.js */ \"../../plugins/interactivity/dist/browser/ParticlesInteractorBase.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils.js */ \"../../plugins/interactivity/dist/browser/utils.js\");\n/* harmony import */ var _Options_Classes_Events_DivEvent_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Options/Classes/Events/DivEvent.js */ \"../../plugins/interactivity/dist/browser/Options/Classes/Events/DivEvent.js\");\n/* harmony import */ var _Options_Classes_Modes_Modes_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Options/Classes/Modes/Modes.js */ \"../../plugins/interactivity/dist/browser/Options/Classes/Modes/Modes.js\");\n\nasync function loadInteractivityPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.21\");\n await engine.register(async (e)=>{\n const interactivityEngine = e, { InteractivityPlugin } = await __webpack_require__.e(/*! import() */ \"plugins_interactivity_dist_browser_InteractivityPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./InteractivityPlugin.js */ \"../../plugins/interactivity/dist/browser/InteractivityPlugin.js\"));\n interactivityEngine.addPlugin(new InteractivityPlugin(interactivityEngine));\n interactivityEngine.initializers.interactors ??= new Map();\n interactivityEngine.interactors ??= new Map();\n interactivityEngine.addInteractor = (name, interactorInitializer)=>{\n interactivityEngine.initializers.interactors ??= new Map();\n interactivityEngine.initializers.interactors.set(name, interactorInitializer);\n };\n interactivityEngine.getInteractors = async (container, force = false)=>{\n interactivityEngine.interactors ??= new Map();\n interactivityEngine.initializers.interactors ??= new Map();\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getItemsFromInitializer)(container, interactivityEngine.interactors, interactivityEngine.initializers.interactors, force);\n };\n interactivityEngine.setOnClickHandler = (callback)=>{\n const { items } = interactivityEngine;\n if (!items.length) {\n throw new Error(\"Click handlers can only be set after calling tsParticles.load()\");\n }\n items.forEach((item)=>{\n const interactivityContainer = item;\n interactivityContainer.addClickHandler?.(callback);\n });\n };\n });\n}\nfunction ensureInteractivityPluginLoaded(e) {\n if (!e.addInteractor) {\n throw new Error(\"tsParticles Interactivity Plugin is not loaded\");\n }\n}\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/index.js?\n}");
157
+
158
+ /***/ },
159
+
160
+ /***/ "../../plugins/interactivity/dist/browser/utils.js"
161
+ /*!*********************************************************!*\
162
+ !*** ../../plugins/interactivity/dist/browser/utils.js ***!
163
+ \*********************************************************/
164
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
165
+
166
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ divMode: () => (/* binding */ divMode),\n/* harmony export */ divModeExecute: () => (/* binding */ divModeExecute),\n/* harmony export */ isDivModeEnabled: () => (/* binding */ isDivModeEnabled),\n/* harmony export */ singleDivModeExecute: () => (/* binding */ singleDivModeExecute)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nfunction checkSelector(element, selectors) {\n const res = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(selectors, (selector)=>{\n return element.matches(selector);\n });\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(res) ? res.some((t)=>t) : res;\n}\nfunction isDivModeEnabled(mode, divs) {\n return !!(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.findItemFromSingleOrMultiple)(divs, (t)=>t.enable && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isInArray)(mode, t.mode));\n}\nfunction divModeExecute(mode, divs, callback) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(divs, (div)=>{\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isInArray)(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nfunction singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(selectors, (selector)=>{\n callback(selector, div);\n });\n}\nfunction divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.findItemFromSingleOrMultiple)(divs, (div)=>{\n return checkSelector(element, div.selectors);\n });\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/interactivity/dist/browser/utils.js?\n}");
167
+
168
+ /***/ }
169
+
170
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-alpha.21
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunktsparticles"] = this["webpackChunktsparticles"] || []).push([["plugins_absorbers_dist_browser_AbsorbersPluginInstance_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/AbsorbersPluginInstance.js"
21
+ /*!***********************************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/AbsorbersPluginInstance.js ***!
23
+ \***********************************************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorbersPluginInstance: () => (/* binding */ AbsorbersPluginInstance)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorbersPluginInstance {\n _container;\n _instancesManager;\n constructor(container, instancesManager){\n this._container = container;\n this._instancesManager = instancesManager;\n this._instancesManager.initContainer(container);\n }\n draw(context) {\n for (const absorber of this._instancesManager.getArray(this._container)){\n absorber.draw(context);\n }\n }\n async init() {\n const absorbers = this._container.actualOptions.absorbers, promises = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(absorbers, async (absorber)=>{\n await this._instancesManager.addAbsorber(this._container, absorber);\n });\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(promises)) {\n await Promise.all(promises);\n } else {\n await promises;\n }\n }\n particleUpdate(particle, delta) {\n for (const absorber of this._instancesManager.getArray(this._container)){\n absorber.attract(particle, delta);\n if (particle.destroyed) {\n break;\n }\n }\n }\n resize() {\n for (const absorber of this._instancesManager.getArray(this._container)){\n absorber.resize();\n }\n }\n stop() {\n this._instancesManager.clear(this._container);\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/AbsorbersPluginInstance.js?\n}");
27
+
28
+ /***/ }
29
+
30
+ }]);
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.2
7
+ * v4.0.0-alpha.21
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -17,33 +17,13 @@
17
17
  */
18
18
  (this["webpackChunktsparticles"] = this["webpackChunktsparticles"] || []).push([["plugins_absorbers_dist_browser_AbsorbersPlugin_js"],{
19
19
 
20
- /***/ "../../plugins/absorbers/dist/browser/AbsorberInstance.js"
21
- /*!****************************************************************!*\
22
- !*** ../../plugins/absorbers/dist/browser/AbsorberInstance.js ***!
23
- \****************************************************************/
24
- (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
-
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberInstance: () => (/* binding */ AbsorberInstance)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n\n\nconst squareExp = 2,\n absorbFactor = 0.033,\n minOrbitLength = 0,\n minRadius = 0,\n minMass = 0,\n minAngle = 0,\n double = 2,\n maxAngle = Math.PI * double,\n minVelocity = 0;\nclass AbsorberInstance {\n constructor(container, engine, options, position) {\n this._calcPosition = () => {\n const exactPosition = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.calcPositionOrRandomFromSizeRanged)({\n size: this._container.canvas.size,\n position: this.options.position\n });\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(exactPosition.x, exactPosition.y);\n };\n this._updateParticlePosition = (particle, v) => {\n if (particle.destroyed) {\n return;\n }\n const container = this._container,\n canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n const newPosition = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.calcPositionOrRandomFromSize)({\n size: canvasSize\n });\n particle.position.setTo(newPosition);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n particle.absorberOrbit.length = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * maxAngle;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height),\n offset = 1,\n randomOffset = 0.1,\n randomFactor = 0.2;\n particle.absorberOrbit.length = minSize * (offset + ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * randomFactor - randomOffset));\n }\n particle.absorberOrbitDirection ??= particle.velocity.x >= minVelocity ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise : _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.counterClockwise;\n const orbitRadius = particle.absorberOrbit.length,\n orbitAngle = particle.absorberOrbit.angle,\n orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.setTo(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin);\n const updateFunc = {\n x: orbitDirection === _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise ? Math.cos : Math.sin,\n y: orbitDirection === _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.RotateDirection.clockwise ? Math.sin : Math.cos\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle += (particle.retina.moveSpeed ?? minVelocity) * container.retina.pixelRatio / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator * container.retina.reduceFactor;\n } else {\n const addV = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n };\n this._container = container;\n this._engine = engine;\n this.initialPosition = position ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(position.x, position.y) : undefined;\n if (options instanceof _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber) {\n this.options = options;\n } else {\n this.options = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n this.options.load(options);\n }\n this.dragging = false;\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * this.options.size.density * container.retina.reduceFactor;\n const limit = this.options.size.limit;\n this.limit = {\n radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: limit.mass\n };\n this.color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(this._engine, this.options.color) ?? {\n b: 0,\n g: 0,\n r: 0\n };\n this.position = this.initialPosition?.copy() ?? this._calcPosition();\n }\n attract(particle) {\n const container = this._container,\n options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n } else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition(),\n {\n dx,\n dy,\n distance\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(this.position, pos),\n v = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(dx, dy);\n v.length = this.mass / Math.pow(distance, squareExp) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * absorbFactor * container.retina.pixelRatio;\n if (this.size > particle.getRadius() && distance < this.size - particle.getRadius() || particle.absorberOrbit !== undefined && particle.absorberOrbit.length < minOrbitLength) {\n if (options.destroy) {\n particle.destroy();\n } else {\n particle.needsNewPosition = true;\n this._updateParticlePosition(particle, v);\n }\n } else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this._updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= minRadius || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= minMass || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n } else {\n this._updateParticlePosition(particle, v);\n }\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, this.size, minAngle, maxAngle, false);\n context.closePath();\n context.fillStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(this.color, this._container.hdr, this.opacity);\n context.fill();\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position = initialPosition && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isPointInside)(initialPosition, this._container.canvas.size, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin) ? initialPosition : this._calcPosition();\n }\n}\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/AbsorberInstance.js?\n}");
27
-
28
- /***/ },
29
-
30
- /***/ "../../plugins/absorbers/dist/browser/Absorbers.js"
31
- /*!*********************************************************!*\
32
- !*** ../../plugins/absorbers/dist/browser/Absorbers.js ***!
33
- \*********************************************************/
34
- (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
-
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Absorbers: () => (/* binding */ Absorbers)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n/* harmony import */ var _Enums_AbsorberClickMode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Enums/AbsorberClickMode.js */ \"../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js\");\n/* harmony import */ var _AbsorberInstance_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AbsorberInstance.js */ \"../../plugins/absorbers/dist/browser/AbsorberInstance.js\");\n\n\n\n\nconst defaultIndex = 0;\nclass Absorbers {\n constructor(container, engine) {\n this._container = container;\n this._engine = engine;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n container.getAbsorber = idxOrName => idxOrName === undefined || (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(idxOrName) ? this.array[idxOrName ?? defaultIndex] : this.array.find(t => t.name === idxOrName);\n container.addAbsorber = async (options, position) => this.addAbsorber(options, position);\n }\n async addAbsorber(options, position) {\n const absorber = new _AbsorberInstance_js__WEBPACK_IMPORTED_MODULE_3__.AbsorberInstance(this._container, this._engine, options, position);\n this.array.push(absorber);\n return Promise.resolve(absorber);\n }\n draw(context) {\n for (const absorber of this.array) {\n absorber.draw(context);\n }\n }\n handleClickMode(mode) {\n const modeAbsorbers = this.interactivityAbsorbers;\n if (mode === _Enums_AbsorberClickMode_js__WEBPACK_IMPORTED_MODULE_2__.AbsorberClickMode.absorber) {\n const absorbersModeOptions = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(modeAbsorbers) ?? new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber(),\n aPosition = this._container.interactivity.mouse.clickPosition;\n void this.addAbsorber(absorbersModeOptions, aPosition);\n }\n }\n async init() {\n this.absorbers = this._container.actualOptions.absorbers;\n this.interactivityAbsorbers = this._container.actualOptions.interactivity.modes.absorbers;\n const promises = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(this.absorbers, async absorber => {\n await this.addAbsorber(absorber);\n });\n if (promises instanceof Array) {\n await Promise.all(promises);\n } else {\n await promises;\n }\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber),\n deleteCount = 1;\n if (index >= defaultIndex) {\n this.array.splice(index, deleteCount);\n }\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n stop() {\n this.array = [];\n }\n}\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Absorbers.js?\n}");
37
-
38
- /***/ },
39
-
40
20
  /***/ "../../plugins/absorbers/dist/browser/AbsorbersPlugin.js"
41
21
  /*!***************************************************************!*\
42
22
  !*** ../../plugins/absorbers/dist/browser/AbsorbersPlugin.js ***!
43
23
  \***************************************************************/
44
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
45
25
 
46
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorbersPlugin: () => (/* binding */ AbsorbersPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n/* harmony import */ var _Enums_AbsorberClickMode_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Enums/AbsorberClickMode.js */ \"../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js\");\n/* harmony import */ var _Absorbers_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Absorbers.js */ \"../../plugins/absorbers/dist/browser/Absorbers.js\");\n\n\n\n\nclass AbsorbersPlugin {\n constructor(engine) {\n this.id = \"absorbers\";\n this._engine = engine;\n }\n async getPlugin(container) {\n return Promise.resolve(new _Absorbers_js__WEBPACK_IMPORTED_MODULE_3__.Absorbers(container, this._engine));\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n if (source?.absorbers) {\n options.absorbers = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(source.absorbers, absorber => {\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n options.interactivity.modes.absorbers = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(source?.interactivity?.modes?.absorbers, absorber => {\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n needsPlugin(options) {\n if (!options) {\n return false;\n }\n const absorbers = options.absorbers;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(absorbers)) {\n return !!absorbers.length;\n } else if (absorbers) {\n return true;\n } else if (options.interactivity?.events?.onClick?.mode && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isInArray)(_Enums_AbsorberClickMode_js__WEBPACK_IMPORTED_MODULE_2__.AbsorberClickMode.absorber, options.interactivity.events.onClick.mode)) {\n return true;\n }\n return false;\n }\n}\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/AbsorbersPlugin.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorbersPlugin: () => (/* binding */ AbsorbersPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n\n\nclass AbsorbersPlugin {\n id = \"absorbers\";\n _instancesManager;\n constructor(instancesManager){\n this._instancesManager = instancesManager;\n }\n async getPlugin(container) {\n const { AbsorbersPluginInstance } = await __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorbersPluginInstance_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPluginInstance.js */ \"../../plugins/absorbers/dist/browser/AbsorbersPluginInstance.js\"));\n return new AbsorbersPluginInstance(container, this._instancesManager);\n }\n loadOptions(_container, options, source) {\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n if (source?.absorbers) {\n options.absorbers = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(source.absorbers, (absorber)=>{\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n }\n needsPlugin(options) {\n if (!options) {\n return false;\n }\n const absorbers = options.absorbers;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(absorbers)) {\n return !!absorbers.length;\n } else if (absorbers) {\n return true;\n }\n return false;\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/AbsorbersPlugin.js?\n}");
47
27
 
48
28
  /***/ },
49
29
 
@@ -53,7 +33,17 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
53
33
  \************************************************************************/
54
34
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
55
35
 
56
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Absorber: () => (/* binding */ Absorber)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberSize.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js\");\n\n\nclass Absorber {\n constructor() {\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberSize();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js?\n}");
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Absorber: () => (/* binding */ Absorber)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberLife_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberLife.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js\");\n/* harmony import */ var _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AbsorberSize.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js\");\n\n\n\nclass Absorber {\n color;\n destroy;\n draggable;\n life;\n name;\n opacity;\n orbits;\n position;\n size;\n constructor(){\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.life = new _AbsorberLife_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberLife();\n this.size = new _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_2__.AbsorberSize();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n if (data.life !== undefined) {\n this.life.load(data.life);\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js?\n}");
37
+
38
+ /***/ },
39
+
40
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js"
41
+ /*!****************************************************************************!*\
42
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js ***!
43
+ \****************************************************************************/
44
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
45
+
46
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberLife: () => (/* binding */ AbsorberLife)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorberLife {\n count;\n delay;\n duration;\n wait;\n constructor(){\n this.wait = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.delay);\n }\n if (data.duration !== undefined) {\n this.duration = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.duration);\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberLife.js?\n}");
57
47
 
58
48
  /***/ },
59
49
 
@@ -63,7 +53,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
63
53
  \****************************************************************************/
64
54
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
65
55
 
66
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSize: () => (/* binding */ AbsorberSize)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberSizeLimit.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js\");\n\n\nclass AbsorberSize extends _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberSizeLimit();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(data.limit)) {\n this.limit.radius = data.limit;\n } else {\n this.limit.load(data.limit);\n }\n }\n}\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js?\n}");
56
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSize: () => (/* binding */ AbsorberSize)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberSizeLimit.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js\");\n\n\nclass AbsorberSize extends _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.ValueWithRandom {\n density;\n limit;\n constructor(){\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberSizeLimit();\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(data.limit)) {\n this.limit.radius = data.limit;\n } else {\n this.limit.load(data.limit);\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js?\n}");
67
57
 
68
58
  /***/ },
69
59
 
@@ -73,7 +63,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
73
63
  \*********************************************************************************/
74
64
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
75
65
 
76
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSizeLimit: () => (/* binding */ AbsorberSizeLimit)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorberSizeLimit {\n constructor() {\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js?\n}");
66
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSizeLimit: () => (/* binding */ AbsorberSizeLimit)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass AbsorberSizeLimit {\n mass;\n radius;\n constructor(){\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js?\n}");
77
67
 
78
68
  /***/ }
79
69
 
@@ -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.21
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -17,23 +17,13 @@
17
17
  */
18
18
  (this["webpackChunktsparticles"] = this["webpackChunktsparticles"] || []).push([["plugins_absorbers_dist_browser_index_js"],{
19
19
 
20
- /***/ "../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js"
21
- /*!***********************************************************************!*\
22
- !*** ../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js ***!
23
- \***********************************************************************/
24
- (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
-
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberClickMode: () => (/* binding */ AbsorberClickMode)\n/* harmony export */ });\nvar AbsorberClickMode;\n(function (AbsorberClickMode) {\n AbsorberClickMode[\"absorber\"] = \"absorber\";\n})(AbsorberClickMode || (AbsorberClickMode = {}));\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js?\n}");
27
-
28
- /***/ },
29
-
30
20
  /***/ "../../plugins/absorbers/dist/browser/index.js"
31
21
  /*!*****************************************************!*\
32
22
  !*** ../../plugins/absorbers/dist/browser/index.js ***!
33
23
  \*****************************************************/
34
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
25
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberClickMode: () => (/* reexport safe */ _Enums_AbsorberClickMode_js__WEBPACK_IMPORTED_MODULE_0__.AbsorberClickMode),\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\n/* harmony import */ var _Enums_AbsorberClickMode_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Enums/AbsorberClickMode.js */ \"../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js\");\nfunction loadAbsorbersPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.2\");\n engine.register(async e => {\n const {\n AbsorbersPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"../../plugins/absorbers/dist/browser/AbsorbersPlugin.js\"));\n e.addPlugin(new AbsorbersPlugin(e));\n });\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/index.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\nasync function loadAbsorbersPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.21\");\n await engine.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin }] = await Promise.all([\n __webpack_require__.e(/*! import() */ \"plugins_interactivity_dist_browser_index_js\").then(__webpack_require__.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"../../plugins/interactivity/dist/browser/index.js\")),\n __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInstancesManager.js */ \"../../plugins/absorbers/dist/browser/AbsorbersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"../../plugins/absorbers/dist/browser/AbsorbersPlugin.js\"))\n ]), instancesManager = new AbsorbersInstancesManager(e);\n ensureInteractivityPluginLoaded(e);\n e.addPlugin(new AbsorbersPlugin(instancesManager));\n e.addInteractor?.(\"externalAbsorbers\", async (container)=>{\n const { AbsorbersInteractor } = await __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorbersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInteractor.js */ \"../../plugins/absorbers/dist/browser/AbsorbersInteractor.js\"));\n return new AbsorbersInteractor(container, instancesManager);\n });\n });\n}\n\n\n//# sourceURL=webpack://tsparticles/../../plugins/absorbers/dist/browser/index.js?\n}");
37
27
 
38
28
  /***/ }
39
29