@tsparticles/all 3.2.2 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1071) hide show
  1. package/1038.min.js +2 -0
  2. package/1038.min.js.LICENSE.txt +1 -0
  3. package/1043.min.js +2 -0
  4. package/1043.min.js.LICENSE.txt +1 -0
  5. package/1054.min.js +2 -0
  6. package/1054.min.js.LICENSE.txt +1 -0
  7. package/118.min.js +2 -0
  8. package/118.min.js.LICENSE.txt +1 -0
  9. package/1199.min.js +2 -0
  10. package/1199.min.js.LICENSE.txt +1 -0
  11. package/1235.min.js +2 -0
  12. package/1235.min.js.LICENSE.txt +1 -0
  13. package/1290.min.js +2 -0
  14. package/1290.min.js.LICENSE.txt +1 -0
  15. package/1313.min.js +2 -0
  16. package/1313.min.js.LICENSE.txt +1 -0
  17. package/1340.min.js +2 -0
  18. package/1340.min.js.LICENSE.txt +1 -0
  19. package/1444.min.js +2 -0
  20. package/1444.min.js.LICENSE.txt +1 -0
  21. package/1460.min.js +2 -0
  22. package/1460.min.js.LICENSE.txt +1 -0
  23. package/1475.min.js +2 -0
  24. package/1475.min.js.LICENSE.txt +1 -0
  25. package/152.min.js +2 -0
  26. package/152.min.js.LICENSE.txt +1 -0
  27. package/1612.min.js +2 -0
  28. package/1612.min.js.LICENSE.txt +1 -0
  29. package/168.min.js +2 -0
  30. package/168.min.js.LICENSE.txt +1 -0
  31. package/1817.min.js +2 -0
  32. package/1817.min.js.LICENSE.txt +1 -0
  33. package/1854.min.js +2 -0
  34. package/1854.min.js.LICENSE.txt +1 -0
  35. package/1862.min.js +2 -0
  36. package/1862.min.js.LICENSE.txt +1 -0
  37. package/1992.min.js +2 -0
  38. package/1992.min.js.LICENSE.txt +1 -0
  39. package/1996.min.js +2 -0
  40. package/1996.min.js.LICENSE.txt +1 -0
  41. package/2031.min.js +2 -0
  42. package/2031.min.js.LICENSE.txt +1 -0
  43. package/2043.min.js +2 -0
  44. package/2043.min.js.LICENSE.txt +1 -0
  45. package/2101.min.js +2 -0
  46. package/2101.min.js.LICENSE.txt +1 -0
  47. package/211.min.js +2 -0
  48. package/211.min.js.LICENSE.txt +1 -0
  49. package/2112.min.js +2 -0
  50. package/2112.min.js.LICENSE.txt +1 -0
  51. package/2134.min.js +2 -0
  52. package/2134.min.js.LICENSE.txt +1 -0
  53. package/2136.min.js +2 -0
  54. package/2136.min.js.LICENSE.txt +1 -0
  55. package/2157.min.js +2 -0
  56. package/2157.min.js.LICENSE.txt +1 -0
  57. package/2260.min.js +2 -0
  58. package/2260.min.js.LICENSE.txt +1 -0
  59. package/2283.min.js +2 -0
  60. package/2283.min.js.LICENSE.txt +1 -0
  61. package/2284.min.js +2 -0
  62. package/2284.min.js.LICENSE.txt +1 -0
  63. package/2370.min.js +2 -0
  64. package/2370.min.js.LICENSE.txt +1 -0
  65. package/2402.min.js +2 -0
  66. package/2402.min.js.LICENSE.txt +1 -0
  67. package/2415.min.js +2 -0
  68. package/2415.min.js.LICENSE.txt +1 -0
  69. package/243.min.js +2 -0
  70. package/243.min.js.LICENSE.txt +1 -0
  71. package/2497.min.js +2 -0
  72. package/2497.min.js.LICENSE.txt +1 -0
  73. package/250.min.js +2 -0
  74. package/250.min.js.LICENSE.txt +1 -0
  75. package/2505.min.js +2 -0
  76. package/2505.min.js.LICENSE.txt +1 -0
  77. package/2551.min.js +2 -0
  78. package/2551.min.js.LICENSE.txt +1 -0
  79. package/2602.min.js +2 -0
  80. package/2602.min.js.LICENSE.txt +1 -0
  81. package/2645.min.js +2 -0
  82. package/2645.min.js.LICENSE.txt +1 -0
  83. package/2676.min.js +2 -0
  84. package/2676.min.js.LICENSE.txt +1 -0
  85. package/2694.min.js +2 -0
  86. package/2694.min.js.LICENSE.txt +1 -0
  87. package/286.min.js +2 -0
  88. package/286.min.js.LICENSE.txt +1 -0
  89. package/2926.min.js +2 -0
  90. package/2926.min.js.LICENSE.txt +1 -0
  91. package/3107.min.js +2 -0
  92. package/3107.min.js.LICENSE.txt +1 -0
  93. package/3127.min.js +2 -0
  94. package/3127.min.js.LICENSE.txt +1 -0
  95. package/3237.min.js +2 -0
  96. package/3237.min.js.LICENSE.txt +1 -0
  97. package/3245.min.js +2 -0
  98. package/3245.min.js.LICENSE.txt +1 -0
  99. package/3267.min.js +2 -0
  100. package/3267.min.js.LICENSE.txt +1 -0
  101. package/3292.min.js +2 -0
  102. package/3292.min.js.LICENSE.txt +1 -0
  103. package/335.min.js +2 -0
  104. package/335.min.js.LICENSE.txt +1 -0
  105. package/3371.min.js +2 -0
  106. package/3371.min.js.LICENSE.txt +1 -0
  107. package/3416.min.js +2 -0
  108. package/3416.min.js.LICENSE.txt +1 -0
  109. package/3433.min.js +2 -0
  110. package/3433.min.js.LICENSE.txt +1 -0
  111. package/3438.min.js +2 -0
  112. package/3438.min.js.LICENSE.txt +1 -0
  113. package/344.min.js +2 -0
  114. package/344.min.js.LICENSE.txt +1 -0
  115. package/3454.min.js +2 -0
  116. package/3454.min.js.LICENSE.txt +1 -0
  117. package/3476.min.js +2 -0
  118. package/3476.min.js.LICENSE.txt +1 -0
  119. package/3506.min.js +2 -0
  120. package/3506.min.js.LICENSE.txt +1 -0
  121. package/3523.min.js +2 -0
  122. package/3523.min.js.LICENSE.txt +1 -0
  123. package/3537.min.js +2 -0
  124. package/3537.min.js.LICENSE.txt +1 -0
  125. package/357.min.js +2 -0
  126. package/357.min.js.LICENSE.txt +1 -0
  127. package/3622.min.js +2 -0
  128. package/3622.min.js.LICENSE.txt +1 -0
  129. package/3632.min.js +2 -0
  130. package/3632.min.js.LICENSE.txt +1 -0
  131. package/3695.min.js +2 -0
  132. package/3695.min.js.LICENSE.txt +1 -0
  133. package/372.min.js +2 -0
  134. package/372.min.js.LICENSE.txt +1 -0
  135. package/3801.min.js +2 -0
  136. package/3801.min.js.LICENSE.txt +1 -0
  137. package/3890.min.js +2 -0
  138. package/3890.min.js.LICENSE.txt +1 -0
  139. package/3905.min.js +2 -0
  140. package/3905.min.js.LICENSE.txt +1 -0
  141. package/401.min.js +2 -0
  142. package/401.min.js.LICENSE.txt +1 -0
  143. package/4036.min.js +2 -0
  144. package/4036.min.js.LICENSE.txt +1 -0
  145. package/4055.min.js +2 -0
  146. package/4055.min.js.LICENSE.txt +1 -0
  147. package/4154.min.js +2 -0
  148. package/4154.min.js.LICENSE.txt +1 -0
  149. package/4157.min.js +2 -0
  150. package/4157.min.js.LICENSE.txt +1 -0
  151. package/4159.min.js +2 -0
  152. package/4159.min.js.LICENSE.txt +1 -0
  153. package/4191.min.js +2 -0
  154. package/4191.min.js.LICENSE.txt +1 -0
  155. package/4264.min.js +2 -0
  156. package/4264.min.js.LICENSE.txt +1 -0
  157. package/4289.min.js +2 -0
  158. package/4289.min.js.LICENSE.txt +1 -0
  159. package/4292.min.js +2 -0
  160. package/4292.min.js.LICENSE.txt +1 -0
  161. package/4302.min.js +2 -0
  162. package/4302.min.js.LICENSE.txt +1 -0
  163. package/4315.min.js +2 -0
  164. package/4315.min.js.LICENSE.txt +1 -0
  165. package/435.min.js +2 -0
  166. package/435.min.js.LICENSE.txt +1 -0
  167. package/439.min.js +2 -0
  168. package/439.min.js.LICENSE.txt +1 -0
  169. package/4432.min.js +2 -0
  170. package/4432.min.js.LICENSE.txt +1 -0
  171. package/449.min.js +2 -0
  172. package/449.min.js.LICENSE.txt +1 -0
  173. package/4512.min.js +2 -0
  174. package/4512.min.js.LICENSE.txt +1 -0
  175. package/4546.min.js +2 -0
  176. package/4546.min.js.LICENSE.txt +1 -0
  177. package/4571.min.js +2 -0
  178. package/4571.min.js.LICENSE.txt +1 -0
  179. package/4584.min.js +2 -0
  180. package/4584.min.js.LICENSE.txt +1 -0
  181. package/461.min.js +2 -0
  182. package/461.min.js.LICENSE.txt +1 -0
  183. package/4673.min.js +2 -0
  184. package/4673.min.js.LICENSE.txt +1 -0
  185. package/4847.min.js +2 -0
  186. package/4847.min.js.LICENSE.txt +1 -0
  187. package/489.min.js +2 -0
  188. package/489.min.js.LICENSE.txt +1 -0
  189. package/4893.min.js +2 -0
  190. package/4893.min.js.LICENSE.txt +1 -0
  191. package/4910.min.js +2 -0
  192. package/4910.min.js.LICENSE.txt +1 -0
  193. package/4924.min.js +2 -0
  194. package/4924.min.js.LICENSE.txt +1 -0
  195. package/5015.min.js +2 -0
  196. package/5015.min.js.LICENSE.txt +1 -0
  197. package/5037.min.js +2 -0
  198. package/5037.min.js.LICENSE.txt +1 -0
  199. package/5076.min.js +2 -0
  200. package/5076.min.js.LICENSE.txt +1 -0
  201. package/5163.min.js +2 -0
  202. package/5163.min.js.LICENSE.txt +1 -0
  203. package/518.min.js +2 -0
  204. package/518.min.js.LICENSE.txt +1 -0
  205. package/5189.min.js +2 -0
  206. package/5189.min.js.LICENSE.txt +1 -0
  207. package/5192.min.js +2 -0
  208. package/5192.min.js.LICENSE.txt +1 -0
  209. package/5201.min.js +2 -0
  210. package/5201.min.js.LICENSE.txt +1 -0
  211. package/5239.min.js +2 -0
  212. package/5239.min.js.LICENSE.txt +1 -0
  213. package/5369.min.js +2 -0
  214. package/5369.min.js.LICENSE.txt +1 -0
  215. package/5400.min.js +2 -0
  216. package/5400.min.js.LICENSE.txt +1 -0
  217. package/5414.min.js +2 -0
  218. package/5414.min.js.LICENSE.txt +1 -0
  219. package/5434.min.js +2 -0
  220. package/5434.min.js.LICENSE.txt +1 -0
  221. package/5530.min.js +2 -0
  222. package/5530.min.js.LICENSE.txt +1 -0
  223. package/5535.min.js +2 -0
  224. package/5535.min.js.LICENSE.txt +1 -0
  225. package/561.min.js +2 -0
  226. package/561.min.js.LICENSE.txt +1 -0
  227. package/5662.min.js +2 -0
  228. package/5662.min.js.LICENSE.txt +1 -0
  229. package/5775.min.js +2 -0
  230. package/5775.min.js.LICENSE.txt +1 -0
  231. package/5800.min.js +2 -0
  232. package/5800.min.js.LICENSE.txt +1 -0
  233. package/5808.min.js +2 -0
  234. package/5808.min.js.LICENSE.txt +1 -0
  235. package/585.min.js +2 -0
  236. package/585.min.js.LICENSE.txt +1 -0
  237. package/5955.min.js +2 -0
  238. package/5955.min.js.LICENSE.txt +1 -0
  239. package/5969.min.js +2 -0
  240. package/5969.min.js.LICENSE.txt +1 -0
  241. package/6119.min.js +2 -0
  242. package/6119.min.js.LICENSE.txt +1 -0
  243. package/6136.min.js +2 -0
  244. package/6136.min.js.LICENSE.txt +1 -0
  245. package/6294.min.js +2 -0
  246. package/6294.min.js.LICENSE.txt +1 -0
  247. package/6378.min.js +2 -0
  248. package/6378.min.js.LICENSE.txt +1 -0
  249. package/6436.min.js +2 -0
  250. package/6436.min.js.LICENSE.txt +1 -0
  251. package/6493.min.js +2 -0
  252. package/6493.min.js.LICENSE.txt +1 -0
  253. package/6510.min.js +2 -0
  254. package/6510.min.js.LICENSE.txt +1 -0
  255. package/6520.min.js +2 -0
  256. package/6520.min.js.LICENSE.txt +1 -0
  257. package/6521.min.js +2 -0
  258. package/6521.min.js.LICENSE.txt +1 -0
  259. package/66.min.js +2 -0
  260. package/66.min.js.LICENSE.txt +1 -0
  261. package/6732.min.js +2 -0
  262. package/6732.min.js.LICENSE.txt +1 -0
  263. package/6735.min.js +2 -0
  264. package/6735.min.js.LICENSE.txt +1 -0
  265. package/6787.min.js +2 -0
  266. package/6787.min.js.LICENSE.txt +1 -0
  267. package/6832.min.js +2 -0
  268. package/6832.min.js.LICENSE.txt +1 -0
  269. package/6851.min.js +2 -0
  270. package/6851.min.js.LICENSE.txt +1 -0
  271. package/6922.min.js +2 -0
  272. package/6922.min.js.LICENSE.txt +1 -0
  273. package/6947.min.js +2 -0
  274. package/6947.min.js.LICENSE.txt +1 -0
  275. package/6964.min.js +2 -0
  276. package/6964.min.js.LICENSE.txt +1 -0
  277. package/6974.min.js +2 -0
  278. package/6974.min.js.LICENSE.txt +1 -0
  279. package/6979.min.js +2 -0
  280. package/6979.min.js.LICENSE.txt +1 -0
  281. package/6981.min.js +2 -0
  282. package/6981.min.js.LICENSE.txt +1 -0
  283. package/705.min.js +2 -0
  284. package/705.min.js.LICENSE.txt +1 -0
  285. package/707.min.js +2 -0
  286. package/707.min.js.LICENSE.txt +1 -0
  287. package/7087.min.js +2 -0
  288. package/7087.min.js.LICENSE.txt +1 -0
  289. package/7167.min.js +2 -0
  290. package/7167.min.js.LICENSE.txt +1 -0
  291. package/7306.min.js +2 -0
  292. package/7306.min.js.LICENSE.txt +1 -0
  293. package/7311.min.js +2 -0
  294. package/7311.min.js.LICENSE.txt +1 -0
  295. package/7373.min.js +2 -0
  296. package/7373.min.js.LICENSE.txt +1 -0
  297. package/7528.min.js +2 -0
  298. package/7528.min.js.LICENSE.txt +1 -0
  299. package/7664.min.js +2 -0
  300. package/7664.min.js.LICENSE.txt +1 -0
  301. package/7774.min.js +2 -0
  302. package/7774.min.js.LICENSE.txt +1 -0
  303. package/7929.min.js +2 -0
  304. package/7929.min.js.LICENSE.txt +1 -0
  305. package/7947.min.js +2 -0
  306. package/7947.min.js.LICENSE.txt +1 -0
  307. package/800.min.js +2 -0
  308. package/800.min.js.LICENSE.txt +1 -0
  309. package/8062.min.js +2 -0
  310. package/8062.min.js.LICENSE.txt +1 -0
  311. package/8114.min.js +2 -0
  312. package/8114.min.js.LICENSE.txt +1 -0
  313. package/8125.min.js +2 -0
  314. package/8125.min.js.LICENSE.txt +1 -0
  315. package/814.min.js +2 -0
  316. package/814.min.js.LICENSE.txt +1 -0
  317. package/8155.min.js +2 -0
  318. package/8155.min.js.LICENSE.txt +1 -0
  319. package/817.min.js +2 -0
  320. package/817.min.js.LICENSE.txt +1 -0
  321. package/8194.min.js +2 -0
  322. package/8194.min.js.LICENSE.txt +1 -0
  323. package/823.min.js +2 -0
  324. package/823.min.js.LICENSE.txt +1 -0
  325. package/83.min.js +2 -0
  326. package/83.min.js.LICENSE.txt +1 -0
  327. package/8338.min.js +2 -0
  328. package/8338.min.js.LICENSE.txt +1 -0
  329. package/8433.min.js +2 -0
  330. package/8433.min.js.LICENSE.txt +1 -0
  331. package/8469.min.js +2 -0
  332. package/8469.min.js.LICENSE.txt +1 -0
  333. package/8558.min.js +2 -0
  334. package/8558.min.js.LICENSE.txt +1 -0
  335. package/8612.min.js +2 -0
  336. package/8612.min.js.LICENSE.txt +1 -0
  337. package/8656.min.js +2 -0
  338. package/8656.min.js.LICENSE.txt +1 -0
  339. package/8670.min.js +2 -0
  340. package/8670.min.js.LICENSE.txt +1 -0
  341. package/8695.min.js +2 -0
  342. package/8695.min.js.LICENSE.txt +1 -0
  343. package/8746.min.js +2 -0
  344. package/8746.min.js.LICENSE.txt +1 -0
  345. package/8764.min.js +2 -0
  346. package/8764.min.js.LICENSE.txt +1 -0
  347. package/8814.min.js +2 -0
  348. package/8814.min.js.LICENSE.txt +1 -0
  349. package/8824.min.js +2 -0
  350. package/8824.min.js.LICENSE.txt +1 -0
  351. package/8920.min.js +2 -0
  352. package/8920.min.js.LICENSE.txt +1 -0
  353. package/8934.min.js +2 -0
  354. package/8934.min.js.LICENSE.txt +1 -0
  355. package/9151.min.js +2 -0
  356. package/9151.min.js.LICENSE.txt +1 -0
  357. package/9231.min.js +2 -0
  358. package/9231.min.js.LICENSE.txt +1 -0
  359. package/94.min.js +2 -0
  360. package/94.min.js.LICENSE.txt +1 -0
  361. package/9487.min.js +2 -0
  362. package/9487.min.js.LICENSE.txt +1 -0
  363. package/9512.min.js +2 -0
  364. package/9512.min.js.LICENSE.txt +1 -0
  365. package/9555.min.js +2 -0
  366. package/9555.min.js.LICENSE.txt +1 -0
  367. package/9581.min.js +2 -0
  368. package/9581.min.js.LICENSE.txt +1 -0
  369. package/9587.min.js +2 -0
  370. package/9587.min.js.LICENSE.txt +1 -0
  371. package/9613.min.js +2 -0
  372. package/9613.min.js.LICENSE.txt +1 -0
  373. package/9630.min.js +2 -0
  374. package/9630.min.js.LICENSE.txt +1 -0
  375. package/986.min.js +2 -0
  376. package/986.min.js.LICENSE.txt +1 -0
  377. package/9892.min.js +2 -0
  378. package/9892.min.js.LICENSE.txt +1 -0
  379. package/9946.min.js +2 -0
  380. package/9946.min.js.LICENSE.txt +1 -0
  381. package/9969.min.js +2 -0
  382. package/9969.min.js.LICENSE.txt +1 -0
  383. package/9989.min.js +2 -0
  384. package/9989.min.js.LICENSE.txt +1 -0
  385. package/basic_dist_browser_index_js.js +1 -1
  386. package/cjs/index.js +1 -24
  387. package/effects_bubble_dist_browser_BubbleDrawer_js.js +2 -2
  388. package/effects_bubble_dist_browser_index_js.js +1 -1
  389. package/effects_trail_dist_browser_TrailDrawer_js.js +2 -2
  390. package/effects_trail_dist_browser_index_js.js +1 -1
  391. package/engine_dist_browser_Core_Container_js.js +15 -5
  392. package/full_dist_browser_index_js.js +1 -1
  393. package/interactions_external_attract_dist_browser_Attractor_js.js +12 -2
  394. package/interactions_external_attract_dist_browser_index_js.js +1 -1
  395. package/interactions_external_bounce_dist_browser_Bouncer_js.js +12 -2
  396. package/interactions_external_bounce_dist_browser_index_js.js +1 -1
  397. package/interactions_external_bubble_dist_browser_Bubbler_js.js +2 -2
  398. package/interactions_external_bubble_dist_browser_index_js.js +1 -1
  399. package/interactions_external_connect_dist_browser_Connector_js.js +2 -2
  400. package/interactions_external_connect_dist_browser_index_js.js +1 -1
  401. package/interactions_external_grab_dist_browser_Grabber_js.js +2 -2
  402. package/interactions_external_grab_dist_browser_index_js.js +1 -1
  403. package/interactions_external_particle_dist_browser_InteractivityParticleMaker_js.js +2 -2
  404. package/interactions_external_particle_dist_browser_index_js.js +1 -1
  405. package/interactions_external_pause_dist_browser_Pauser_js.js +2 -2
  406. package/interactions_external_pause_dist_browser_index_js.js +1 -1
  407. package/interactions_external_pop_dist_browser_Popper_js.js +2 -2
  408. package/interactions_external_pop_dist_browser_index_js.js +1 -1
  409. package/interactions_external_push_dist_browser_Pusher_js.js +2 -2
  410. package/interactions_external_push_dist_browser_index_js.js +1 -1
  411. package/interactions_external_remove_dist_browser_Remover_js.js +2 -2
  412. package/interactions_external_remove_dist_browser_index_js.js +1 -1
  413. package/interactions_external_repulse_dist_browser_Repulser_js.js +2 -2
  414. package/interactions_external_repulse_dist_browser_index_js.js +1 -1
  415. package/interactions_external_slow_dist_browser_Slower_js.js +2 -2
  416. package/interactions_external_slow_dist_browser_index_js.js +1 -1
  417. package/interactions_external_trail_dist_browser_TrailMaker_js.js +2 -2
  418. package/interactions_external_trail_dist_browser_index_js.js +1 -1
  419. package/interactions_light_dist_browser_ExternalLighter_js.js +2 -2
  420. package/interactions_light_dist_browser_ParticlesLighter_js.js +2 -2
  421. package/interactions_light_dist_browser_index_js.js +1 -1
  422. package/interactions_particles_attract_dist_browser_Attractor_js.js +2 -2
  423. package/interactions_particles_attract_dist_browser_index_js.js +1 -1
  424. package/interactions_particles_collisions_dist_browser_Collider_js.js +33 -3
  425. package/interactions_particles_collisions_dist_browser_index_js.js +1 -1
  426. package/interactions_particles_links_dist_browser_LinkInstance_js.js +2 -2
  427. package/interactions_particles_links_dist_browser_Linker_js.js +12 -2
  428. package/interactions_particles_links_dist_browser_LinksPlugin_js.js +1 -1
  429. package/interactions_particles_links_dist_browser_index_js.js +1 -1
  430. package/interactions_particles_links_dist_browser_interaction_js.js +1 -1
  431. package/interactions_particles_links_dist_browser_plugin_js.js +1 -1
  432. package/interactions_particles_repulse_dist_browser_Repulser_js.js +2 -2
  433. package/interactions_particles_repulse_dist_browser_index_js.js +1 -1
  434. package/move_base_dist_browser_BaseMover_js.js +12 -2
  435. package/move_base_dist_browser_index_js.js +1 -1
  436. package/move_parallax_dist_browser_ParallaxMover_js.js +2 -2
  437. package/move_parallax_dist_browser_index_js.js +1 -1
  438. package/package.json +48 -48
  439. package/paths_curlNoise_dist_browser_CurlNoiseGenerator_js.js +2 -2
  440. package/paths_curlNoise_dist_browser_index_js.js +1 -1
  441. package/paths_curves_dist_browser_CurvesPathGenerator_js.js +12 -2
  442. package/paths_curves_dist_browser_index_js.js +1 -1
  443. package/paths_perlinNoise_dist_browser_PerlinNoiseGenerator_js.js +2 -2
  444. package/paths_perlinNoise_dist_browser_index_js.js +1 -1
  445. package/paths_polygon_dist_browser_PolygonPathGenerator_js.js +2 -2
  446. package/paths_polygon_dist_browser_index_js.js +1 -1
  447. package/paths_simplexNoise_dist_browser_SimplexNoiseGenerator_js.js +2 -2
  448. package/paths_simplexNoise_dist_browser_index_js.js +1 -1
  449. package/paths_svg_dist_browser_SVGPathGenerator_js.js +2 -2
  450. package/paths_svg_dist_browser_index_js.js +1 -1
  451. package/paths_zigzag_dist_browser_ZigZagPathGenerator_js.js +2 -2
  452. package/paths_zigzag_dist_browser_index_js.js +1 -1
  453. package/pjs_dist_browser_index_js.js +1 -1
  454. package/plugins_absorbers_dist_browser_AbsorberInstance_js.js +2 -2
  455. package/plugins_absorbers_dist_browser_AbsorbersPlugin_js.js +1 -1
  456. package/plugins_absorbers_dist_browser_Absorbers_js.js +2 -2
  457. package/plugins_absorbers_dist_browser_index_js.js +1 -1
  458. package/plugins_canvasMask_dist_browser_CanvasMaskInstance_js.js +3 -3
  459. package/plugins_canvasMask_dist_browser_CanvasMaskPlugin_js.js +1 -1
  460. package/plugins_canvasMask_dist_browser_index_js.js +1 -1
  461. package/plugins_easings_back_dist_browser_index_js.js +1 -1
  462. package/plugins_easings_circ_dist_browser_index_js.js +1 -1
  463. package/plugins_easings_cubic_dist_browser_index_js.js +1 -1
  464. package/plugins_easings_expo_dist_browser_index_js.js +1 -1
  465. package/plugins_easings_linear_dist_browser_index_js.js +1 -1
  466. package/plugins_easings_quad_dist_browser_index_js.js +1 -1
  467. package/plugins_easings_quart_dist_browser_index_js.js +1 -1
  468. package/plugins_easings_quint_dist_browser_index_js.js +1 -1
  469. package/plugins_easings_sine_dist_browser_index_js.js +1 -1
  470. package/plugins_emittersShapes_canvas_dist_browser_EmittersCanvasShapeGenerator_js.js +2 -2
  471. package/plugins_emittersShapes_canvas_dist_browser_index_js.js +1 -1
  472. package/plugins_emittersShapes_circle_dist_browser_EmittersCircleShapeGenerator_js.js +2 -2
  473. package/plugins_emittersShapes_circle_dist_browser_index_js.js +1 -1
  474. package/plugins_emittersShapes_path_dist_browser_EmittersPathShapeGenerator_js.js +2 -2
  475. package/plugins_emittersShapes_path_dist_browser_index_js.js +1 -1
  476. package/plugins_emittersShapes_polygon_dist_browser_EmittersPolygonShapeGenerator_js.js +2 -2
  477. package/plugins_emittersShapes_polygon_dist_browser_index_js.js +1 -1
  478. package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +2 -2
  479. package/plugins_emittersShapes_square_dist_browser_index_js.js +1 -1
  480. package/plugins_emitters_dist_browser_EmitterInstance_js.js +2 -2
  481. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +1 -1
  482. package/plugins_emitters_dist_browser_Emitters_js.js +2 -2
  483. package/plugins_emitters_dist_browser_ShapeManager_js.js +1 -1
  484. package/plugins_emitters_dist_browser_index_js.js +1 -1
  485. package/plugins_exports_image_dist_browser_ExportImageInstance_js.js +1 -1
  486. package/plugins_exports_image_dist_browser_ExportImagePlugin_js.js +1 -1
  487. package/plugins_exports_image_dist_browser_index_js.js +1 -1
  488. package/plugins_exports_json_dist_browser_ExportJSONInstance_js.js +1 -1
  489. package/plugins_exports_json_dist_browser_ExportJSONPlugin_js.js +1 -1
  490. package/plugins_exports_json_dist_browser_index_js.js +1 -1
  491. package/plugins_exports_video_dist_browser_ExportVideoInstance_js.js +1 -1
  492. package/plugins_exports_video_dist_browser_ExportVideoPlugin_js.js +1 -1
  493. package/plugins_exports_video_dist_browser_index_js.js +1 -1
  494. package/plugins_hsvColor_dist_browser_HsvColorManager_js.js +1 -1
  495. package/plugins_hsvColor_dist_browser_index_js.js +1 -1
  496. package/plugins_infection_dist_browser_InfectionInstance_js.js +1 -1
  497. package/plugins_infection_dist_browser_InfectionPlugin_js.js +1 -1
  498. package/plugins_infection_dist_browser_ParticlesInfecter_js.js +2 -2
  499. package/plugins_infection_dist_browser_index_js.js +1 -1
  500. package/plugins_motion_dist_browser_MotionInstance_js.js +1 -1
  501. package/plugins_motion_dist_browser_MotionPlugin_js.js +1 -1
  502. package/plugins_motion_dist_browser_index_js.js +1 -1
  503. package/plugins_poisson_dist_browser_PoissonDiscPlugin_js.js +1 -1
  504. package/plugins_poisson_dist_browser_PoissonInstance_js.js +1 -1
  505. package/plugins_poisson_dist_browser_index_js.js +1 -1
  506. package/plugins_polygonMask_dist_browser_PolygonMaskInstance_js.js +12 -2
  507. package/plugins_polygonMask_dist_browser_PolygonMaskPlugin_js.js +1 -1
  508. package/plugins_polygonMask_dist_browser_index_js.js +1 -1
  509. package/plugins_sounds_dist_browser_SoundsInstance_js.js +1 -1
  510. package/plugins_sounds_dist_browser_SoundsPlugin_js.js +1 -1
  511. package/plugins_sounds_dist_browser_index_js.js +1 -1
  512. package/report.html +1 -1
  513. package/shapes_arrow_dist_browser_ArrowDrawer_js.js +12 -2
  514. package/shapes_arrow_dist_browser_index_js.js +1 -1
  515. package/shapes_cards_dist_browser_ClubDrawer_js.js +12 -2
  516. package/shapes_cards_dist_browser_DiamondDrawer_js.js +12 -2
  517. package/shapes_cards_dist_browser_HeartDrawer_js.js +12 -2
  518. package/shapes_cards_dist_browser_SpadeDrawer_js.js +12 -2
  519. package/shapes_cards_dist_browser_index_js.js +1 -1
  520. package/shapes_circle_dist_browser_CircleDrawer_js.js +12 -2
  521. package/shapes_circle_dist_browser_index_js.js +1 -1
  522. package/shapes_cog_dist_browser_CogDrawer_js.js +12 -2
  523. package/shapes_cog_dist_browser_index_js.js +1 -1
  524. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +12 -2
  525. package/shapes_emoji_dist_browser_index_js.js +1 -1
  526. package/shapes_heart_dist_browser_HeartDrawer_js.js +12 -2
  527. package/shapes_heart_dist_browser_index_js.js +1 -1
  528. package/shapes_image_dist_browser_GifUtils_Utils_js.js +1 -1
  529. package/shapes_image_dist_browser_ImageDrawer_js.js +2 -2
  530. package/shapes_image_dist_browser_ImagePreloader_js.js +1 -1
  531. package/shapes_image_dist_browser_index_js.js +2 -2
  532. package/shapes_line_dist_browser_LineDrawer_js.js +12 -2
  533. package/shapes_line_dist_browser_index_js.js +1 -1
  534. package/shapes_path_dist_browser_PathDrawer_js.js +12 -2
  535. package/shapes_path_dist_browser_index_js.js +1 -1
  536. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +12 -2
  537. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +12 -2
  538. package/shapes_polygon_dist_browser_index_js.js +1 -1
  539. package/shapes_rounded-polygon_dist_browser_RoundedPolygonDrawer_js.js +12 -2
  540. package/shapes_rounded-polygon_dist_browser_index_js.js +1 -1
  541. package/shapes_rounded-rect_dist_browser_RoundedRectDrawer_js.js +12 -2
  542. package/shapes_rounded-rect_dist_browser_index_js.js +1 -1
  543. package/shapes_spiral_dist_browser_SpiralDrawer_js.js +12 -2
  544. package/shapes_spiral_dist_browser_index_js.js +1 -1
  545. package/shapes_square_dist_browser_SquareDrawer_js.js +12 -2
  546. package/shapes_square_dist_browser_index_js.js +1 -1
  547. package/shapes_star_dist_browser_StarDrawer_js.js +12 -2
  548. package/shapes_star_dist_browser_index_js.js +1 -1
  549. package/shapes_text_dist_browser_index_js.js +12 -2
  550. package/slim_dist_browser_index_js.js +1 -1
  551. package/tsparticles.all.bundle.js +4 -4
  552. package/tsparticles.all.bundle.min.js +1 -1
  553. package/tsparticles.all.bundle.min.js.LICENSE.txt +1 -1
  554. package/tsparticles.all.js +1 -1
  555. package/tsparticles.all.min.js +1 -1
  556. package/tsparticles.all.min.js.LICENSE.txt +1 -1
  557. package/updaters_color_dist_browser_ColorUpdater_js.js +2 -2
  558. package/updaters_color_dist_browser_index_js.js +1 -1
  559. package/updaters_destroy_dist_browser_DestroyUpdater_js.js +3 -3
  560. package/updaters_destroy_dist_browser_index_js.js +1 -1
  561. package/updaters_gradient_dist_browser_GradientUpdater_js.js +12 -2
  562. package/updaters_gradient_dist_browser_index_js.js +1 -1
  563. package/updaters_life_dist_browser_LifeUpdater_js.js +12 -2
  564. package/updaters_life_dist_browser_index_js.js +1 -1
  565. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +2 -2
  566. package/updaters_opacity_dist_browser_index_js.js +1 -1
  567. package/updaters_orbit_dist_browser_OrbitUpdater_js.js +2 -2
  568. package/updaters_orbit_dist_browser_index_js.js +1 -1
  569. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +52 -2
  570. package/updaters_outModes_dist_browser_index_js.js +1 -1
  571. package/updaters_roll_dist_browser_RollUpdater_js.js +12 -2
  572. package/updaters_roll_dist_browser_index_js.js +1 -1
  573. package/updaters_rotate_dist_browser_RotateUpdater_js.js +2 -2
  574. package/updaters_rotate_dist_browser_index_js.js +1 -1
  575. package/updaters_size_dist_browser_SizeUpdater_js.js +2 -2
  576. package/updaters_size_dist_browser_index_js.js +1 -1
  577. package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +2 -2
  578. package/updaters_strokeColor_dist_browser_index_js.js +1 -1
  579. package/updaters_tilt_dist_browser_TiltUpdater_js.js +2 -2
  580. package/updaters_tilt_dist_browser_index_js.js +1 -1
  581. package/updaters_twinkle_dist_browser_TwinkleUpdater_js.js +1 -1
  582. package/updaters_twinkle_dist_browser_index_js.js +1 -1
  583. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +12 -2
  584. package/updaters_wobble_dist_browser_index_js.js +1 -1
  585. package/utils_simplexNoise_dist_browser_index_js.js +1 -1
  586. package/1011.min.js +0 -2
  587. package/1011.min.js.LICENSE.txt +0 -1
  588. package/1030.min.js +0 -2
  589. package/1030.min.js.LICENSE.txt +0 -1
  590. package/1122.min.js +0 -2
  591. package/1122.min.js.LICENSE.txt +0 -1
  592. package/1147.min.js +0 -2
  593. package/1147.min.js.LICENSE.txt +0 -1
  594. package/1163.min.js +0 -2
  595. package/1163.min.js.LICENSE.txt +0 -1
  596. package/1188.min.js +0 -2
  597. package/1188.min.js.LICENSE.txt +0 -1
  598. package/1196.min.js +0 -2
  599. package/1196.min.js.LICENSE.txt +0 -1
  600. package/1264.min.js +0 -2
  601. package/1264.min.js.LICENSE.txt +0 -1
  602. package/1299.min.js +0 -2
  603. package/1299.min.js.LICENSE.txt +0 -1
  604. package/1308.min.js +0 -2
  605. package/1308.min.js.LICENSE.txt +0 -1
  606. package/1317.min.js +0 -2
  607. package/1317.min.js.LICENSE.txt +0 -1
  608. package/1332.min.js +0 -2
  609. package/1332.min.js.LICENSE.txt +0 -1
  610. package/1364.min.js +0 -2
  611. package/1364.min.js.LICENSE.txt +0 -1
  612. package/1472.min.js +0 -2
  613. package/1472.min.js.LICENSE.txt +0 -1
  614. package/1490.min.js +0 -2
  615. package/1490.min.js.LICENSE.txt +0 -1
  616. package/1492.min.js +0 -2
  617. package/1492.min.js.LICENSE.txt +0 -1
  618. package/1513.min.js +0 -2
  619. package/1513.min.js.LICENSE.txt +0 -1
  620. package/1539.min.js +0 -2
  621. package/1539.min.js.LICENSE.txt +0 -1
  622. package/1705.min.js +0 -2
  623. package/1705.min.js.LICENSE.txt +0 -1
  624. package/1708.min.js +0 -2
  625. package/1708.min.js.LICENSE.txt +0 -1
  626. package/1769.min.js +0 -2
  627. package/1769.min.js.LICENSE.txt +0 -1
  628. package/1808.min.js +0 -2
  629. package/1808.min.js.LICENSE.txt +0 -1
  630. package/1810.min.js +0 -2
  631. package/1810.min.js.LICENSE.txt +0 -1
  632. package/1831.min.js +0 -2
  633. package/1831.min.js.LICENSE.txt +0 -1
  634. package/1912.min.js +0 -2
  635. package/1912.min.js.LICENSE.txt +0 -1
  636. package/1916.min.js +0 -2
  637. package/1916.min.js.LICENSE.txt +0 -1
  638. package/1952.min.js +0 -2
  639. package/1952.min.js.LICENSE.txt +0 -1
  640. package/196.min.js +0 -2
  641. package/196.min.js.LICENSE.txt +0 -1
  642. package/197.min.js +0 -2
  643. package/197.min.js.LICENSE.txt +0 -1
  644. package/1982.min.js +0 -2
  645. package/1982.min.js.LICENSE.txt +0 -1
  646. package/208.min.js +0 -2
  647. package/208.min.js.LICENSE.txt +0 -1
  648. package/2081.min.js +0 -2
  649. package/2081.min.js.LICENSE.txt +0 -1
  650. package/2121.min.js +0 -2
  651. package/2121.min.js.LICENSE.txt +0 -1
  652. package/2124.min.js +0 -2
  653. package/2124.min.js.LICENSE.txt +0 -1
  654. package/2173.min.js +0 -2
  655. package/2173.min.js.LICENSE.txt +0 -1
  656. package/2200.min.js +0 -2
  657. package/2200.min.js.LICENSE.txt +0 -1
  658. package/2227.min.js +0 -2
  659. package/2227.min.js.LICENSE.txt +0 -1
  660. package/2281.min.js +0 -2
  661. package/2281.min.js.LICENSE.txt +0 -1
  662. package/231.min.js +0 -2
  663. package/231.min.js.LICENSE.txt +0 -1
  664. package/2397.min.js +0 -2
  665. package/2397.min.js.LICENSE.txt +0 -1
  666. package/2407.min.js +0 -2
  667. package/2407.min.js.LICENSE.txt +0 -1
  668. package/2486.min.js +0 -2
  669. package/2486.min.js.LICENSE.txt +0 -1
  670. package/255.min.js +0 -2
  671. package/255.min.js.LICENSE.txt +0 -1
  672. package/256.min.js +0 -2
  673. package/256.min.js.LICENSE.txt +0 -1
  674. package/2580.min.js +0 -2
  675. package/2580.min.js.LICENSE.txt +0 -1
  676. package/2628.min.js +0 -2
  677. package/2628.min.js.LICENSE.txt +0 -1
  678. package/2720.min.js +0 -2
  679. package/2720.min.js.LICENSE.txt +0 -1
  680. package/2765.min.js +0 -2
  681. package/2765.min.js.LICENSE.txt +0 -1
  682. package/2870.min.js +0 -2
  683. package/2870.min.js.LICENSE.txt +0 -1
  684. package/2890.min.js +0 -2
  685. package/2890.min.js.LICENSE.txt +0 -1
  686. package/2899.min.js +0 -2
  687. package/2899.min.js.LICENSE.txt +0 -1
  688. package/290.min.js +0 -2
  689. package/290.min.js.LICENSE.txt +0 -1
  690. package/294.min.js +0 -2
  691. package/294.min.js.LICENSE.txt +0 -1
  692. package/2946.min.js +0 -2
  693. package/2946.min.js.LICENSE.txt +0 -1
  694. package/3054.min.js +0 -2
  695. package/3054.min.js.LICENSE.txt +0 -1
  696. package/3134.min.js +0 -2
  697. package/3134.min.js.LICENSE.txt +0 -1
  698. package/3141.min.js +0 -2
  699. package/3141.min.js.LICENSE.txt +0 -1
  700. package/3196.min.js +0 -2
  701. package/3196.min.js.LICENSE.txt +0 -1
  702. package/3255.min.js +0 -2
  703. package/3255.min.js.LICENSE.txt +0 -1
  704. package/3261.min.js +0 -2
  705. package/3261.min.js.LICENSE.txt +0 -1
  706. package/3411.min.js +0 -2
  707. package/3411.min.js.LICENSE.txt +0 -1
  708. package/3457.min.js +0 -2
  709. package/3457.min.js.LICENSE.txt +0 -1
  710. package/3468.min.js +0 -2
  711. package/3468.min.js.LICENSE.txt +0 -1
  712. package/3473.min.js +0 -2
  713. package/3473.min.js.LICENSE.txt +0 -1
  714. package/3486.min.js +0 -2
  715. package/3486.min.js.LICENSE.txt +0 -1
  716. package/3517.min.js +0 -2
  717. package/3517.min.js.LICENSE.txt +0 -1
  718. package/3597.min.js +0 -2
  719. package/3597.min.js.LICENSE.txt +0 -1
  720. package/3610.min.js +0 -2
  721. package/3610.min.js.LICENSE.txt +0 -1
  722. package/3629.min.js +0 -2
  723. package/3629.min.js.LICENSE.txt +0 -1
  724. package/3648.min.js +0 -2
  725. package/3648.min.js.LICENSE.txt +0 -1
  726. package/3685.min.js +0 -2
  727. package/3685.min.js.LICENSE.txt +0 -1
  728. package/3699.min.js +0 -2
  729. package/3699.min.js.LICENSE.txt +0 -1
  730. package/3705.min.js +0 -2
  731. package/3705.min.js.LICENSE.txt +0 -1
  732. package/3733.min.js +0 -2
  733. package/3733.min.js.LICENSE.txt +0 -1
  734. package/3817.min.js +0 -2
  735. package/3817.min.js.LICENSE.txt +0 -1
  736. package/3837.min.js +0 -2
  737. package/3837.min.js.LICENSE.txt +0 -1
  738. package/384.min.js +0 -2
  739. package/384.min.js.LICENSE.txt +0 -1
  740. package/3862.min.js +0 -2
  741. package/3862.min.js.LICENSE.txt +0 -1
  742. package/3869.min.js +0 -2
  743. package/3869.min.js.LICENSE.txt +0 -1
  744. package/3904.min.js +0 -2
  745. package/3904.min.js.LICENSE.txt +0 -1
  746. package/4011.min.js +0 -2
  747. package/4011.min.js.LICENSE.txt +0 -1
  748. package/4037.min.js +0 -2
  749. package/4037.min.js.LICENSE.txt +0 -1
  750. package/4043.min.js +0 -2
  751. package/4043.min.js.LICENSE.txt +0 -1
  752. package/409.min.js +0 -2
  753. package/409.min.js.LICENSE.txt +0 -1
  754. package/4098.min.js +0 -2
  755. package/4098.min.js.LICENSE.txt +0 -1
  756. package/4116.min.js +0 -2
  757. package/4116.min.js.LICENSE.txt +0 -1
  758. package/4122.min.js +0 -2
  759. package/4122.min.js.LICENSE.txt +0 -1
  760. package/4127.min.js +0 -2
  761. package/4127.min.js.LICENSE.txt +0 -1
  762. package/4176.min.js +0 -2
  763. package/4176.min.js.LICENSE.txt +0 -1
  764. package/4245.min.js +0 -2
  765. package/4245.min.js.LICENSE.txt +0 -1
  766. package/4271.min.js +0 -2
  767. package/4271.min.js.LICENSE.txt +0 -1
  768. package/4314.min.js +0 -2
  769. package/4314.min.js.LICENSE.txt +0 -1
  770. package/4328.min.js +0 -2
  771. package/4328.min.js.LICENSE.txt +0 -1
  772. package/4342.min.js +0 -2
  773. package/4342.min.js.LICENSE.txt +0 -1
  774. package/4380.min.js +0 -2
  775. package/4380.min.js.LICENSE.txt +0 -1
  776. package/4396.min.js +0 -2
  777. package/4396.min.js.LICENSE.txt +0 -1
  778. package/4438.min.js +0 -2
  779. package/4438.min.js.LICENSE.txt +0 -1
  780. package/4515.min.js +0 -2
  781. package/4515.min.js.LICENSE.txt +0 -1
  782. package/4522.min.js +0 -2
  783. package/4522.min.js.LICENSE.txt +0 -1
  784. package/4547.min.js +0 -2
  785. package/4547.min.js.LICENSE.txt +0 -1
  786. package/4595.min.js +0 -2
  787. package/4595.min.js.LICENSE.txt +0 -1
  788. package/4662.min.js +0 -2
  789. package/4662.min.js.LICENSE.txt +0 -1
  790. package/4687.min.js +0 -2
  791. package/4687.min.js.LICENSE.txt +0 -1
  792. package/4717.min.js +0 -2
  793. package/4717.min.js.LICENSE.txt +0 -1
  794. package/4732.min.js +0 -2
  795. package/4732.min.js.LICENSE.txt +0 -1
  796. package/4737.min.js +0 -2
  797. package/4737.min.js.LICENSE.txt +0 -1
  798. package/4744.min.js +0 -2
  799. package/4744.min.js.LICENSE.txt +0 -1
  800. package/4766.min.js +0 -2
  801. package/4766.min.js.LICENSE.txt +0 -1
  802. package/4794.min.js +0 -2
  803. package/4794.min.js.LICENSE.txt +0 -1
  804. package/482.min.js +0 -2
  805. package/482.min.js.LICENSE.txt +0 -1
  806. package/485.min.js +0 -2
  807. package/485.min.js.LICENSE.txt +0 -1
  808. package/4866.min.js +0 -2
  809. package/4866.min.js.LICENSE.txt +0 -1
  810. package/4922.min.js +0 -2
  811. package/4922.min.js.LICENSE.txt +0 -1
  812. package/4973.min.js +0 -2
  813. package/4973.min.js.LICENSE.txt +0 -1
  814. package/4994.min.js +0 -2
  815. package/4994.min.js.LICENSE.txt +0 -1
  816. package/5010.min.js +0 -2
  817. package/5010.min.js.LICENSE.txt +0 -1
  818. package/5034.min.js +0 -2
  819. package/5034.min.js.LICENSE.txt +0 -1
  820. package/5075.min.js +0 -2
  821. package/5075.min.js.LICENSE.txt +0 -1
  822. package/5092.min.js +0 -2
  823. package/5092.min.js.LICENSE.txt +0 -1
  824. package/5120.min.js +0 -2
  825. package/5120.min.js.LICENSE.txt +0 -1
  826. package/5171.min.js +0 -2
  827. package/5171.min.js.LICENSE.txt +0 -1
  828. package/5243.min.js +0 -2
  829. package/5243.min.js.LICENSE.txt +0 -1
  830. package/5245.min.js +0 -2
  831. package/5245.min.js.LICENSE.txt +0 -1
  832. package/5250.min.js +0 -2
  833. package/5250.min.js.LICENSE.txt +0 -1
  834. package/5274.min.js +0 -2
  835. package/5274.min.js.LICENSE.txt +0 -1
  836. package/5308.min.js +0 -2
  837. package/5308.min.js.LICENSE.txt +0 -1
  838. package/5329.min.js +0 -2
  839. package/5329.min.js.LICENSE.txt +0 -1
  840. package/533.min.js +0 -2
  841. package/533.min.js.LICENSE.txt +0 -1
  842. package/5337.min.js +0 -2
  843. package/5337.min.js.LICENSE.txt +0 -1
  844. package/5437.min.js +0 -2
  845. package/5437.min.js.LICENSE.txt +0 -1
  846. package/5444.min.js +0 -2
  847. package/5444.min.js.LICENSE.txt +0 -1
  848. package/548.min.js +0 -2
  849. package/548.min.js.LICENSE.txt +0 -1
  850. package/5523.min.js +0 -2
  851. package/5523.min.js.LICENSE.txt +0 -1
  852. package/5534.min.js +0 -2
  853. package/5534.min.js.LICENSE.txt +0 -1
  854. package/5537.min.js +0 -2
  855. package/5537.min.js.LICENSE.txt +0 -1
  856. package/5582.min.js +0 -2
  857. package/5582.min.js.LICENSE.txt +0 -1
  858. package/560.min.js +0 -2
  859. package/560.min.js.LICENSE.txt +0 -1
  860. package/5647.min.js +0 -2
  861. package/5647.min.js.LICENSE.txt +0 -1
  862. package/5683.min.js +0 -2
  863. package/5683.min.js.LICENSE.txt +0 -1
  864. package/571.min.js +0 -2
  865. package/571.min.js.LICENSE.txt +0 -1
  866. package/5715.min.js +0 -2
  867. package/5715.min.js.LICENSE.txt +0 -1
  868. package/5742.min.js +0 -2
  869. package/5742.min.js.LICENSE.txt +0 -1
  870. package/5754.min.js +0 -2
  871. package/5754.min.js.LICENSE.txt +0 -1
  872. package/5819.min.js +0 -2
  873. package/5819.min.js.LICENSE.txt +0 -1
  874. package/5841.min.js +0 -2
  875. package/5841.min.js.LICENSE.txt +0 -1
  876. package/5852.min.js +0 -2
  877. package/5852.min.js.LICENSE.txt +0 -1
  878. package/599.min.js +0 -2
  879. package/599.min.js.LICENSE.txt +0 -1
  880. package/6004.min.js +0 -2
  881. package/6004.min.js.LICENSE.txt +0 -1
  882. package/6067.min.js +0 -2
  883. package/6067.min.js.LICENSE.txt +0 -1
  884. package/6072.min.js +0 -2
  885. package/6072.min.js.LICENSE.txt +0 -1
  886. package/6132.min.js +0 -2
  887. package/6132.min.js.LICENSE.txt +0 -1
  888. package/6152.min.js +0 -2
  889. package/6152.min.js.LICENSE.txt +0 -1
  890. package/6540.min.js +0 -2
  891. package/6540.min.js.LICENSE.txt +0 -1
  892. package/655.min.js +0 -2
  893. package/655.min.js.LICENSE.txt +0 -1
  894. package/6551.min.js +0 -2
  895. package/6551.min.js.LICENSE.txt +0 -1
  896. package/6634.min.js +0 -2
  897. package/6634.min.js.LICENSE.txt +0 -1
  898. package/675.min.js +0 -2
  899. package/675.min.js.LICENSE.txt +0 -1
  900. package/6763.min.js +0 -2
  901. package/6763.min.js.LICENSE.txt +0 -1
  902. package/6772.min.js +0 -2
  903. package/6772.min.js.LICENSE.txt +0 -1
  904. package/6803.min.js +0 -2
  905. package/6803.min.js.LICENSE.txt +0 -1
  906. package/69.min.js +0 -2
  907. package/69.min.js.LICENSE.txt +0 -1
  908. package/7002.min.js +0 -2
  909. package/7002.min.js.LICENSE.txt +0 -1
  910. package/7031.min.js +0 -2
  911. package/7031.min.js.LICENSE.txt +0 -1
  912. package/7049.min.js +0 -2
  913. package/7049.min.js.LICENSE.txt +0 -1
  914. package/7077.min.js +0 -2
  915. package/7077.min.js.LICENSE.txt +0 -1
  916. package/7103.min.js +0 -2
  917. package/7103.min.js.LICENSE.txt +0 -1
  918. package/7108.min.js +0 -2
  919. package/7108.min.js.LICENSE.txt +0 -1
  920. package/7139.min.js +0 -2
  921. package/7139.min.js.LICENSE.txt +0 -1
  922. package/7331.min.js +0 -2
  923. package/7331.min.js.LICENSE.txt +0 -1
  924. package/7441.min.js +0 -2
  925. package/7441.min.js.LICENSE.txt +0 -1
  926. package/7500.min.js +0 -2
  927. package/7500.min.js.LICENSE.txt +0 -1
  928. package/7517.min.js +0 -2
  929. package/7517.min.js.LICENSE.txt +0 -1
  930. package/7687.min.js +0 -2
  931. package/7687.min.js.LICENSE.txt +0 -1
  932. package/7697.min.js +0 -2
  933. package/7697.min.js.LICENSE.txt +0 -1
  934. package/7704.min.js +0 -2
  935. package/7704.min.js.LICENSE.txt +0 -1
  936. package/7725.min.js +0 -2
  937. package/7725.min.js.LICENSE.txt +0 -1
  938. package/7757.min.js +0 -2
  939. package/7757.min.js.LICENSE.txt +0 -1
  940. package/7769.min.js +0 -2
  941. package/7769.min.js.LICENSE.txt +0 -1
  942. package/7794.min.js +0 -2
  943. package/7794.min.js.LICENSE.txt +0 -1
  944. package/7835.min.js +0 -2
  945. package/7835.min.js.LICENSE.txt +0 -1
  946. package/7859.min.js +0 -2
  947. package/7859.min.js.LICENSE.txt +0 -1
  948. package/7886.min.js +0 -2
  949. package/7886.min.js.LICENSE.txt +0 -1
  950. package/7890.min.js +0 -2
  951. package/7890.min.js.LICENSE.txt +0 -1
  952. package/7900.min.js +0 -2
  953. package/7900.min.js.LICENSE.txt +0 -1
  954. package/7919.min.js +0 -2
  955. package/7919.min.js.LICENSE.txt +0 -1
  956. package/8000.min.js +0 -2
  957. package/8000.min.js.LICENSE.txt +0 -1
  958. package/801.min.js +0 -2
  959. package/801.min.js.LICENSE.txt +0 -1
  960. package/8060.min.js +0 -2
  961. package/8060.min.js.LICENSE.txt +0 -1
  962. package/8088.min.js +0 -2
  963. package/8088.min.js.LICENSE.txt +0 -1
  964. package/8127.min.js +0 -2
  965. package/8127.min.js.LICENSE.txt +0 -1
  966. package/8158.min.js +0 -2
  967. package/8158.min.js.LICENSE.txt +0 -1
  968. package/8179.min.js +0 -2
  969. package/8179.min.js.LICENSE.txt +0 -1
  970. package/8346.min.js +0 -2
  971. package/8346.min.js.LICENSE.txt +0 -1
  972. package/8361.min.js +0 -2
  973. package/8361.min.js.LICENSE.txt +0 -1
  974. package/8445.min.js +0 -2
  975. package/8445.min.js.LICENSE.txt +0 -1
  976. package/861.min.js +0 -2
  977. package/861.min.js.LICENSE.txt +0 -1
  978. package/8638.min.js +0 -2
  979. package/8638.min.js.LICENSE.txt +0 -1
  980. package/8739.min.js +0 -2
  981. package/8739.min.js.LICENSE.txt +0 -1
  982. package/8852.min.js +0 -2
  983. package/8852.min.js.LICENSE.txt +0 -1
  984. package/8883.min.js +0 -2
  985. package/8883.min.js.LICENSE.txt +0 -1
  986. package/889.min.js +0 -2
  987. package/889.min.js.LICENSE.txt +0 -1
  988. package/9033.min.js +0 -2
  989. package/9033.min.js.LICENSE.txt +0 -1
  990. package/9062.min.js +0 -2
  991. package/9062.min.js.LICENSE.txt +0 -1
  992. package/9087.min.js +0 -2
  993. package/9087.min.js.LICENSE.txt +0 -1
  994. package/9121.min.js +0 -2
  995. package/9121.min.js.LICENSE.txt +0 -1
  996. package/9126.min.js +0 -2
  997. package/9126.min.js.LICENSE.txt +0 -1
  998. package/9133.min.js +0 -2
  999. package/9133.min.js.LICENSE.txt +0 -1
  1000. package/9251.min.js +0 -2
  1001. package/9251.min.js.LICENSE.txt +0 -1
  1002. package/9257.min.js +0 -2
  1003. package/9257.min.js.LICENSE.txt +0 -1
  1004. package/9331.min.js +0 -2
  1005. package/9331.min.js.LICENSE.txt +0 -1
  1006. package/9376.min.js +0 -2
  1007. package/9376.min.js.LICENSE.txt +0 -1
  1008. package/9392.min.js +0 -2
  1009. package/9392.min.js.LICENSE.txt +0 -1
  1010. package/9431.min.js +0 -2
  1011. package/9431.min.js.LICENSE.txt +0 -1
  1012. package/95.min.js +0 -2
  1013. package/95.min.js.LICENSE.txt +0 -1
  1014. package/952.min.js +0 -2
  1015. package/952.min.js.LICENSE.txt +0 -1
  1016. package/9530.min.js +0 -2
  1017. package/9530.min.js.LICENSE.txt +0 -1
  1018. package/9532.min.js +0 -2
  1019. package/9532.min.js.LICENSE.txt +0 -1
  1020. package/9588.min.js +0 -2
  1021. package/9588.min.js.LICENSE.txt +0 -1
  1022. package/9674.min.js +0 -2
  1023. package/9674.min.js.LICENSE.txt +0 -1
  1024. package/9803.min.js +0 -2
  1025. package/9803.min.js.LICENSE.txt +0 -1
  1026. package/9806.min.js +0 -2
  1027. package/9806.min.js.LICENSE.txt +0 -1
  1028. package/9836.min.js +0 -2
  1029. package/9836.min.js.LICENSE.txt +0 -1
  1030. package/9845.min.js +0 -2
  1031. package/9845.min.js.LICENSE.txt +0 -1
  1032. package/9921.min.js +0 -2
  1033. package/9921.min.js.LICENSE.txt +0 -1
  1034. package/9937.min.js +0 -2
  1035. package/9937.min.js.LICENSE.txt +0 -1
  1036. package/9979.min.js +0 -2
  1037. package/9979.min.js.LICENSE.txt +0 -1
  1038. package/engine_dist_browser_Core_Particle_js.js +0 -30
  1039. package/interactions_external_attract_dist_browser_Utils_js.js +0 -30
  1040. package/interactions_external_bounce_dist_browser_Utils_js.js +0 -30
  1041. package/interactions_particles_collisions_dist_browser_Absorb_js.js +0 -30
  1042. package/interactions_particles_collisions_dist_browser_Bounce_js.js +0 -30
  1043. package/interactions_particles_collisions_dist_browser_Destroy_js.js +0 -40
  1044. package/interactions_particles_links_dist_browser_CircleWarp_js.js +0 -30
  1045. package/move_base_dist_browser_Utils_js.js +0 -30
  1046. package/paths_curves_dist_browser_Curves_js.js +0 -30
  1047. package/plugins_polygonMask_dist_browser_utils_js.js +0 -30
  1048. package/shapes_arrow_dist_browser_Utils_js.js +0 -30
  1049. package/shapes_cards_dist_browser_Utils_js.js +0 -30
  1050. package/shapes_circle_dist_browser_Utils_js.js +0 -30
  1051. package/shapes_cog_dist_browser_Utils_js.js +0 -30
  1052. package/shapes_emoji_dist_browser_Utils_js.js +0 -30
  1053. package/shapes_heart_dist_browser_Utils_js.js +0 -30
  1054. package/shapes_line_dist_browser_Utils_js.js +0 -30
  1055. package/shapes_path_dist_browser_Utils_js.js +0 -30
  1056. package/shapes_polygon_dist_browser_Utils_js.js +0 -30
  1057. package/shapes_rounded-polygon_dist_browser_Utils_js.js +0 -30
  1058. package/shapes_rounded-rect_dist_browser_Utils_js.js +0 -30
  1059. package/shapes_spiral_dist_browser_Utils_js.js +0 -30
  1060. package/shapes_square_dist_browser_Utils_js.js +0 -30
  1061. package/shapes_star_dist_browser_Utils_js.js +0 -30
  1062. package/shapes_text_dist_browser_Utils_js.js +0 -30
  1063. package/updaters_gradient_dist_browser_Utils_js.js +0 -30
  1064. package/updaters_life_dist_browser_Utils_js.js +0 -30
  1065. package/updaters_outModes_dist_browser_BounceOutMode_js.js +0 -30
  1066. package/updaters_outModes_dist_browser_DestroyOutMode_js.js +0 -30
  1067. package/updaters_outModes_dist_browser_NoneOutMode_js.js +0 -30
  1068. package/updaters_outModes_dist_browser_OutOutMode_js.js +0 -30
  1069. package/updaters_outModes_dist_browser_Utils_js.js +0 -30
  1070. package/updaters_roll_dist_browser_Utils_js.js +0 -30
  1071. package/updaters_wobble_dist_browser_Utils_js.js +0 -30
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \*********************************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PolygonMaskInstance: () => (/* binding */ PolygonMaskInstance)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst noPolygonDataLoaded = `${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} No polygon data loaded.`,\n noPolygonFound = `${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} No polygon found, you need to specify SVG url in config.`,\n origin = {\n x: 0,\n y: 0\n },\n half = 0.5,\n double = 2;\nclass PolygonMaskInstance {\n constructor(container, engine) {\n this._checkInsidePolygon = position => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options?.enable || options.type === \"none\" || options.type === \"inline\") {\n return true;\n }\n if (!this.raw) {\n throw new Error(noPolygonFound);\n }\n const canvasSize = container.canvas.size,\n x = position?.x ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.width,\n y = position?.y ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.height,\n indexOffset = 1;\n let inside = false;\n for (let i = 0, j = this.raw.length - indexOffset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j],\n intersect = pi.y > y !== pj.y > y && x < (pj.x - pi.x) * (y - pi.y) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n if (options.type === \"inside\") {\n return inside;\n } else {\n return options.type === \"outside\" ? !inside : false;\n }\n };\n this._createPath2D = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options || !this.paths?.length) {\n return;\n }\n for (const path of this.paths) {\n const pathData = path.element?.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData),\n matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(),\n finalPath = new Path2D(),\n transform = matrix.scale(this._scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n } else {\n delete path.path2d;\n }\n } else {\n delete path.path2d;\n }\n if (path.path2d ?? !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n const firstIndex = 0,\n firstPoint = this.raw[firstIndex];\n path.path2d.moveTo(firstPoint.x, firstPoint.y);\n this.raw.forEach((pos, i) => {\n if (i > firstIndex) {\n path.path2d?.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n };\n this._downloadSvgPath = async (svgUrl, force) => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const url = svgUrl ?? options.url,\n forceDownload = force ?? false;\n if (!url || this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} occurred during polygon mask download`);\n }\n return await this._parseSvgPath(await req.text(), force);\n };\n this._drawPoints = () => {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n void this._container.particles.addParticle({\n x: item.x,\n y: item.y\n });\n }\n };\n this._getEquidistantPointByIndex = index => {\n const container = this._container,\n options = container.actualOptions,\n polygonMaskOptions = options.polygon;\n if (!polygonMaskOptions) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n let offset = 0,\n point;\n const baseAccumulator = 0,\n totalLength = this.paths.reduce((tot, path) => tot + path.length, baseAccumulator),\n distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n } else {\n offset += path.length;\n }\n }\n const scale = this._scale;\n return {\n x: (point?.x ?? origin.x) * scale + (this.offset?.x ?? origin.x),\n y: (point?.y ?? origin.y) * scale + (this.offset?.y ?? origin.y)\n };\n };\n this._getPointByIndex = index => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPoint = () => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(this.raw);\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPointByLength = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(this.paths),\n offset = 1,\n distance = Math.floor((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * path.length) + offset,\n point = path.element.getPointAtLength(distance),\n scale = this._scale;\n return {\n x: point.x * scale + (this.offset?.x ?? origin.x),\n y: point.y * scale + (this.offset?.y ?? origin.y)\n };\n };\n this._initRawData = async force => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (options.url) {\n this.raw = await this._downloadSvgPath(options.url, force);\n } else if (options.data) {\n const data = options.data;\n let svg;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(data)) {\n svg = data;\n } else {\n const getPath = p => `<path d=\"${p}\" />`,\n path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(data.path) ? data.path.map(getPath).join(\"\") : getPath(data.path);\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `<svg ${namespaces} width=\"${data.size.width}\" height=\"${data.size.height}\">${path}</svg>`;\n }\n this.raw = await this._parseSvgPath(svg, force);\n }\n this._createPath2D();\n this._engine.dispatchEvent(\"polygonMaskLoaded\", {\n container: this._container\n });\n };\n this._parseSvgPath = async (xml, force) => {\n const forceDownload = force ?? false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const parser = new DOMParser(),\n doc = parser.parseFromString(xml, \"image/svg+xml\"),\n firstIndex = 0,\n svg = doc.getElementsByTagName(\"svg\")[firstIndex];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength()\n });\n }\n }\n const scale = this._scale;\n this.dimension.width = parseFloat(svg.getAttribute(\"width\") ?? \"0\") * scale;\n this.dimension.height = parseFloat(svg.getAttribute(\"height\") ?? \"0\") * scale;\n const position = options.position ?? {\n x: 50,\n y: 50\n },\n canvasSize = container.canvas.size;\n this.offset = {\n x: canvasSize.width * position.x / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - this.dimension.width * half,\n y: canvasSize.height * position.y / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - this.dimension.height * half\n };\n const {\n parsePaths\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n return parsePaths(this.paths, scale, this.offset);\n };\n this._polygonBounce = async (particle, delta, direction) => {\n const options = this._container.actualOptions.polygon;\n if (!this.raw || !options?.enable || direction !== \"top\") {\n return false;\n }\n if (options.type === \"inside\" || options.type === \"outside\") {\n let closest, dx, dy;\n const pos = particle.getPosition(),\n radius = particle.getRadius(),\n offset = 1;\n for (let i = 0, j = this.raw.length - offset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j],\n {\n calcClosestPointOnSegment\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n closest = calcClosestPointOnSegment(pi, pj, pos);\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n const {\n segmentBounce\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n segmentBounce(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this._checkInsidePolygon(pos)) {\n const factor = {\n x: 1,\n y: 1\n },\n diameter = radius * double,\n inverse = -1;\n if (pos.x >= closest.x) {\n factor.x = -1;\n }\n if (pos.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + diameter * factor.x;\n particle.position.y = closest.y + diameter * factor.y;\n particle.velocity.mult(inverse);\n return true;\n }\n } else if (options.type === \"inline\" && particle.initialPosition) {\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(particle.initialPosition, particle.getPosition()),\n {\n velocity\n } = particle;\n if (dist > this._moveRadius) {\n velocity.x = velocity.y * half - velocity.x;\n velocity.y = velocity.x * half - velocity.y;\n return true;\n }\n }\n return false;\n };\n this._randomPoint = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n let position;\n if (options.type === \"inline\") {\n switch (options.inline.arrangement) {\n case \"random-point\":\n position = this._getRandomPoint();\n break;\n case \"random-length\":\n position = this._getRandomPointByLength();\n break;\n case \"equidistant\":\n position = this._getEquidistantPointByIndex(container.particles.count);\n break;\n case \"one-per-point\":\n case \"per-point\":\n default:\n position = this._getPointByIndex(container.particles.count);\n }\n } else {\n const canvasSize = container.canvas.size;\n position = {\n x: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.width,\n y: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.height\n };\n }\n if (this._checkInsidePolygon(position)) {\n return position;\n } else {\n return this._randomPoint();\n }\n };\n this._container = container;\n this._engine = engine;\n this.dimension = {\n height: 0,\n width: 0\n };\n this._moveRadius = 0;\n this._scale = 1;\n }\n clickPositionValid(position) {\n const options = this._container.actualOptions.polygon;\n return !!options?.enable && options.type !== \"none\" && options.type !== \"inline\" && this._checkInsidePolygon(position);\n }\n async draw(context) {\n if (!this.paths?.length) {\n return;\n }\n const options = this._container.actualOptions.polygon;\n if (!options?.enable) {\n return;\n }\n const polygonDraw = options.draw;\n if (!polygonDraw.enable) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d;\n if (!context) {\n continue;\n }\n if (path2d && this.offset) {\n const {\n drawPolygonMaskPath\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n drawPolygonMaskPath(context, path2d, polygonDraw.stroke, this.offset);\n } else if (rawData) {\n const {\n drawPolygonMask\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n drawPolygonMask(context, rawData, polygonDraw.stroke);\n }\n }\n }\n async init() {\n const container = this._container,\n polygonMaskOptions = container.actualOptions.polygon,\n pxRatio = container.retina.pixelRatio;\n if (!polygonMaskOptions) {\n return;\n }\n this._moveRadius = polygonMaskOptions.move.radius * pxRatio;\n this._scale = polygonMaskOptions.scale * pxRatio;\n if (polygonMaskOptions.enable) {\n await this._initRawData();\n }\n }\n async particleBounce(particle, delta, direction) {\n return await this._polygonBounce(particle, delta, direction);\n }\n particlePosition(position) {\n const options = this._container.actualOptions.polygon,\n defaultLength = 0;\n if (!(options?.enable && (this.raw?.length ?? defaultLength) > defaultLength)) {\n return;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, position ? position : this._randomPoint());\n }\n particlesInitialization() {\n const options = this._container.actualOptions.polygon;\n if (options?.enable && options.type === \"inline\" && (options.inline.arrangement === \"one-per-point\" || options.inline.arrangement === \"per-point\")) {\n this._drawPoints();\n return true;\n }\n return false;\n }\n resize() {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!(options?.enable && options.type !== \"none\")) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n const timeout = 250;\n this.redrawTimeout = window.setTimeout(() => {\n void (async () => {\n await this._initRawData(true);\n await container.particles.redraw();\n })();\n }, timeout);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/PolygonMaskInstance.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PolygonMaskInstance: () => (/* binding */ PolygonMaskInstance)\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 _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\");\n\n\nconst noPolygonDataLoaded = `${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} No polygon data loaded.`,\n noPolygonFound = `${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} No polygon found, you need to specify SVG url in config.`,\n origin = {\n x: 0,\n y: 0\n },\n half = 0.5,\n double = 2;\nclass PolygonMaskInstance {\n constructor(container, engine) {\n this._checkInsidePolygon = position => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options?.enable || options.type === \"none\" || options.type === \"inline\") {\n return true;\n }\n if (!this.raw) {\n throw new Error(noPolygonFound);\n }\n const canvasSize = container.canvas.size,\n x = position?.x ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.width,\n y = position?.y ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.height,\n indexOffset = 1;\n let inside = false;\n for (let i = 0, j = this.raw.length - indexOffset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j],\n intersect = pi.y > y !== pj.y > y && x < (pj.x - pi.x) * (y - pi.y) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n if (options.type === \"inside\") {\n return inside;\n } else {\n return options.type === \"outside\" ? !inside : false;\n }\n };\n this._createPath2D = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options || !this.paths?.length) {\n return;\n }\n for (const path of this.paths) {\n const pathData = path.element?.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData),\n matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(),\n finalPath = new Path2D(),\n transform = matrix.scale(this._scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n } else {\n delete path.path2d;\n }\n } else {\n delete path.path2d;\n }\n if (path.path2d ?? !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n const firstIndex = 0,\n firstPoint = this.raw[firstIndex];\n path.path2d.moveTo(firstPoint.x, firstPoint.y);\n this.raw.forEach((pos, i) => {\n if (i > firstIndex) {\n path.path2d?.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n };\n this._downloadSvgPath = async (svgUrl, force) => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const url = svgUrl ?? options.url,\n forceDownload = force ?? false;\n if (!url || this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} occurred during polygon mask download`);\n }\n return await this._parseSvgPath(await req.text(), force);\n };\n this._drawPoints = () => {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n void this._container.particles.addParticle({\n x: item.x,\n y: item.y\n });\n }\n };\n this._getEquidistantPointByIndex = index => {\n const container = this._container,\n options = container.actualOptions,\n polygonMaskOptions = options.polygon;\n if (!polygonMaskOptions) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n let offset = 0,\n point;\n const baseAccumulator = 0,\n totalLength = this.paths.reduce((tot, path) => tot + path.length, baseAccumulator),\n distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n } else {\n offset += path.length;\n }\n }\n const scale = this._scale;\n return {\n x: (point?.x ?? origin.x) * scale + (this.offset?.x ?? origin.x),\n y: (point?.y ?? origin.y) * scale + (this.offset?.y ?? origin.y)\n };\n };\n this._getPointByIndex = index => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPoint = () => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(this.raw);\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPointByLength = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(this.paths),\n offset = 1,\n distance = Math.floor((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * path.length) + offset,\n point = path.element.getPointAtLength(distance),\n scale = this._scale;\n return {\n x: point.x * scale + (this.offset?.x ?? origin.x),\n y: point.y * scale + (this.offset?.y ?? origin.y)\n };\n };\n this._initRawData = async force => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (options.url) {\n this.raw = await this._downloadSvgPath(options.url, force);\n } else if (options.data) {\n const data = options.data;\n let svg;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(data)) {\n svg = data;\n } else {\n const getPath = p => `<path d=\"${p}\" />`,\n path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(data.path) ? data.path.map(getPath).join(\"\") : getPath(data.path);\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `<svg ${namespaces} width=\"${data.size.width}\" height=\"${data.size.height}\">${path}</svg>`;\n }\n this.raw = await this._parseSvgPath(svg, force);\n }\n this._createPath2D();\n this._engine.dispatchEvent(\"polygonMaskLoaded\", {\n container: this._container\n });\n };\n this._parseSvgPath = async (xml, force) => {\n const forceDownload = force ?? false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const parser = new DOMParser(),\n doc = parser.parseFromString(xml, \"image/svg+xml\"),\n firstIndex = 0,\n svg = doc.getElementsByTagName(\"svg\")[firstIndex];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength()\n });\n }\n }\n const scale = this._scale;\n this.dimension.width = parseFloat(svg.getAttribute(\"width\") ?? \"0\") * scale;\n this.dimension.height = parseFloat(svg.getAttribute(\"height\") ?? \"0\") * scale;\n const position = options.position ?? {\n x: 50,\n y: 50\n },\n canvasSize = container.canvas.size;\n this.offset = {\n x: canvasSize.width * position.x / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - this.dimension.width * half,\n y: canvasSize.height * position.y / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - this.dimension.height * half\n };\n const {\n parsePaths\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n return parsePaths(this.paths, scale, this.offset);\n };\n this._polygonBounce = (particle, delta, direction) => {\n const options = this._container.actualOptions.polygon;\n if (!this.raw || !options?.enable || direction !== \"top\") {\n return false;\n }\n if (options.type === \"inside\" || options.type === \"outside\") {\n let closest, dx, dy;\n const pos = particle.getPosition(),\n radius = particle.getRadius(),\n offset = 1;\n for (let i = 0, j = this.raw.length - offset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j];\n closest = (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.calcClosestPointOnSegment)(pi, pj, pos);\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.segmentBounce)(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this._checkInsidePolygon(pos)) {\n const factor = {\n x: 1,\n y: 1\n },\n diameter = radius * double,\n inverse = -1;\n if (pos.x >= closest.x) {\n factor.x = -1;\n }\n if (pos.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + diameter * factor.x;\n particle.position.y = closest.y + diameter * factor.y;\n particle.velocity.mult(inverse);\n return true;\n }\n } else if (options.type === \"inline\" && particle.initialPosition) {\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(particle.initialPosition, particle.getPosition()),\n {\n velocity\n } = particle;\n if (dist > this._moveRadius) {\n velocity.x = velocity.y * half - velocity.x;\n velocity.y = velocity.x * half - velocity.y;\n return true;\n }\n }\n return false;\n };\n this._randomPoint = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n let position;\n if (options.type === \"inline\") {\n switch (options.inline.arrangement) {\n case \"random-point\":\n position = this._getRandomPoint();\n break;\n case \"random-length\":\n position = this._getRandomPointByLength();\n break;\n case \"equidistant\":\n position = this._getEquidistantPointByIndex(container.particles.count);\n break;\n case \"one-per-point\":\n case \"per-point\":\n default:\n position = this._getPointByIndex(container.particles.count);\n }\n } else {\n const canvasSize = container.canvas.size;\n position = {\n x: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.width,\n y: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.height\n };\n }\n if (this._checkInsidePolygon(position)) {\n return position;\n } else {\n return this._randomPoint();\n }\n };\n this._container = container;\n this._engine = engine;\n this.dimension = {\n height: 0,\n width: 0\n };\n this._moveRadius = 0;\n this._scale = 1;\n }\n clickPositionValid(position) {\n const options = this._container.actualOptions.polygon;\n return !!options?.enable && options.type !== \"none\" && options.type !== \"inline\" && this._checkInsidePolygon(position);\n }\n draw(context) {\n if (!this.paths?.length) {\n return;\n }\n const options = this._container.actualOptions.polygon;\n if (!options?.enable) {\n return;\n }\n const polygonDraw = options.draw;\n if (!polygonDraw.enable) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d;\n if (!context) {\n continue;\n }\n if (path2d && this.offset) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.drawPolygonMaskPath)(context, path2d, polygonDraw.stroke, this.offset);\n } else if (rawData) {\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.drawPolygonMask)(context, rawData, polygonDraw.stroke);\n }\n }\n }\n async init() {\n const container = this._container,\n polygonMaskOptions = container.actualOptions.polygon,\n pxRatio = container.retina.pixelRatio;\n if (!polygonMaskOptions) {\n return;\n }\n this._moveRadius = polygonMaskOptions.move.radius * pxRatio;\n this._scale = polygonMaskOptions.scale * pxRatio;\n if (polygonMaskOptions.enable) {\n await this._initRawData();\n }\n }\n particleBounce(particle, delta, direction) {\n return this._polygonBounce(particle, delta, direction);\n }\n particlePosition(position) {\n const options = this._container.actualOptions.polygon,\n defaultLength = 0;\n if (!(options?.enable && (this.raw?.length ?? defaultLength) > defaultLength)) {\n return;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, position ? position : this._randomPoint());\n }\n particlesInitialization() {\n const options = this._container.actualOptions.polygon;\n if (options?.enable && options.type === \"inline\" && (options.inline.arrangement === \"one-per-point\" || options.inline.arrangement === \"per-point\")) {\n this._drawPoints();\n return true;\n }\n return false;\n }\n resize() {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!(options?.enable && options.type !== \"none\")) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n const timeout = 250;\n this.redrawTimeout = window.setTimeout(() => {\n void (async () => {\n await this._initRawData(true);\n await container.particles.redraw();\n })();\n }, timeout);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/PolygonMaskInstance.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/polygonMask/dist/browser/utils.js":
31
+ /*!*******************************************************!*\
32
+ !*** ../../plugins/polygonMask/dist/browser/utils.js ***!
33
+ \*******************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcClosestPointOnSegment: () => (/* binding */ calcClosestPointOnSegment),\n/* harmony export */ drawPolygonMask: () => (/* binding */ drawPolygonMask),\n/* harmony export */ drawPolygonMaskPath: () => (/* binding */ drawPolygonMaskPath),\n/* harmony export */ parsePaths: () => (/* binding */ parsePaths),\n/* harmony export */ segmentBounce: () => (/* binding */ segmentBounce)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst squareExp = 2,\n inSegmentRange = {\n min: 0,\n max: 1\n },\n double = 2;\nfunction drawPolygonMask(context, rawData, stroke) {\n const color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n const firstIndex = 0,\n firstItem = rawData[firstIndex];\n context.beginPath();\n context.moveTo(firstItem.x, firstItem.y);\n for (const item of rawData) {\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nfunction drawPolygonMaskPath(context, path, stroke, position) {\n const defaultTransform = {\n a: 1,\n b: 0,\n c: 0,\n d: 1\n };\n context.setTransform(defaultTransform.a, defaultTransform.b, defaultTransform.c, defaultTransform.d, position.x, position.y);\n const color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n context.resetTransform();\n}\nfunction parsePaths(paths, scale, offset) {\n const res = [],\n defaultCount = 0;\n for (const path of paths) {\n const segments = path.element.pathSegList,\n len = segments?.numberOfItems ?? defaultCount,\n p = {\n x: 0,\n y: 0\n };\n for (let i = 0; i < len; i++) {\n const segment = segments?.getItem(i),\n svgPathSeg = window.SVGPathSeg;\n switch (segment?.pathSegType) {\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y\n });\n }\n }\n return res;\n}\nfunction calcClosestPointOnSegment(s1, s2, pos) {\n const {\n dx: dx1,\n dy: dy1\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos, s1),\n {\n dx: dx2,\n dy: dy2\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(s2, s1),\n t = (dx1 * dx2 + dy1 * dy2) / (dx2 ** squareExp + dy2 ** squareExp),\n res = {\n x: s1.x + dx2 * t,\n y: s1.y + dy2 * t,\n isOnSegment: t >= inSegmentRange.min && t <= inSegmentRange.max\n };\n if (t < inSegmentRange.min) {\n res.x = s1.x;\n res.y = s1.y;\n } else if (t > inSegmentRange.max) {\n res.x = s2.x;\n res.y = s2.y;\n }\n return res;\n}\nfunction segmentBounce(start, stop, velocity) {\n const {\n dx,\n dy\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(start, stop),\n wallAngle = Math.atan2(dy, dx),\n wallNormal = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(Math.sin(wallAngle), -Math.cos(wallAngle)),\n d = double * (velocity.x * wallNormal.x + velocity.y * wallNormal.y);\n wallNormal.multTo(d);\n velocity.subFrom(wallNormal);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/all [20 Feb 2024 at 01:42]</title>
6
+ <title>@tsparticles/all [27 Feb 2024 at 12:25]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \******************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ArrowDrawer: () => (/* binding */ ArrowDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst defaultHeightFactor = 0.5,\n defaultHeadWidthFactor = 0.2,\n defaultBodyHeightFactor = 0.5;\nclass ArrowDrawer {\n async draw(data) {\n const {\n drawArrow\n } = await __webpack_require__.e(/*! import() */ \"shapes_arrow_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/arrow/dist/browser/Utils.js\"));\n drawArrow(data);\n }\n async particleInit(container, particle) {\n const shapeData = particle.shapeData;\n particle.heightFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.heightFactor ?? defaultHeightFactor);\n particle.headWidthFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.headWidthFactor ?? defaultHeadWidthFactor);\n particle.bodyHeightFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.bodyHeightFactor ?? defaultBodyHeightFactor);\n await Promise.resolve();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/arrow/dist/browser/ArrowDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ArrowDrawer: () => (/* binding */ ArrowDrawer)\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 _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/arrow/dist/browser/Utils.js\");\n\n\nconst defaultHeightFactor = 0.5,\n defaultHeadWidthFactor = 0.2,\n defaultBodyHeightFactor = 0.5;\nclass ArrowDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawArrow)(data);\n }\n particleInit(container, particle) {\n const shapeData = particle.shapeData;\n particle.heightFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.heightFactor ?? defaultHeightFactor);\n particle.headWidthFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.headWidthFactor ?? defaultHeadWidthFactor);\n particle.bodyHeightFactor = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.bodyHeightFactor ?? defaultBodyHeightFactor);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/arrow/dist/browser/ArrowDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/arrow/dist/browser/Utils.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/arrow/dist/browser/Utils.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawArrow: () => (/* binding */ drawArrow)\n/* harmony export */ });\nconst double = 2,\n defaultHeightFactor = 0.5,\n defaultHeadWidthFactor = 0.2,\n defaultBodyHeightFactor = 0.5,\n half = 0.5,\n origin = {\n x: 0,\n y: 0\n };\nfunction drawArrow(data) {\n const {\n context,\n particle,\n radius\n } = data,\n width = radius * double,\n heightFactor = particle.heightFactor ?? defaultHeightFactor,\n headWidthFactor = particle.headWidthFactor ?? defaultHeadWidthFactor,\n bodyHeightFactor = particle.bodyHeightFactor ?? defaultBodyHeightFactor,\n height = width * heightFactor,\n headWidth = width * headWidthFactor,\n bodyHeight = height * bodyHeightFactor;\n context.moveTo(-width * half, origin.y);\n context.lineTo(-width * half, -bodyHeight * half);\n context.lineTo(width * half - headWidth, -bodyHeight * half);\n context.lineTo(width * half - headWidth, -height * half);\n context.lineTo(width * half + headWidth, origin.y);\n context.lineTo(width * half - headWidth, height * half);\n context.lineTo(width * half - headWidth, bodyHeight * half);\n context.lineTo(-width * half, bodyHeight * half);\n context.lineTo(-width * half, origin.y);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/arrow/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \*****************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ClubDrawer: () => (/* binding */ ClubDrawer)\n/* harmony export */ });\nclass ClubDrawer {\n async draw(data) {\n const {\n drawPath,\n paths\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\"));\n drawPath(data, paths.club);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/ClubDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ClubDrawer: () => (/* binding */ ClubDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass ClubDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.club);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/ClubDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/cards/dist/browser/Utils.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/cards/dist/browser/Utils.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 1.0 / 2;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \********************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DiamondDrawer: () => (/* binding */ DiamondDrawer)\n/* harmony export */ });\nclass DiamondDrawer {\n async draw(data) {\n const {\n drawPath,\n paths\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\"));\n drawPath(data, paths.diamond);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/DiamondDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DiamondDrawer: () => (/* binding */ DiamondDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass DiamondDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.diamond);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/DiamondDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/cards/dist/browser/Utils.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/cards/dist/browser/Utils.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 1.0 / 2;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \******************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeartDrawer: () => (/* binding */ HeartDrawer)\n/* harmony export */ });\nclass HeartDrawer {\n async draw(data) {\n const {\n drawPath,\n paths\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\"));\n drawPath(data, paths.heart);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/HeartDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeartDrawer: () => (/* binding */ HeartDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass HeartDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.heart);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/HeartDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/cards/dist/browser/Utils.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/cards/dist/browser/Utils.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 1.0 / 2;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \******************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpadeDrawer: () => (/* binding */ SpadeDrawer)\n/* harmony export */ });\nclass SpadeDrawer {\n async draw(data) {\n const {\n drawPath,\n paths\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\"));\n drawPath(data, paths.spade);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/SpadeDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpadeDrawer: () => (/* binding */ SpadeDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass SpadeDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.spade);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/SpadeDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/cards/dist/browser/Utils.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/cards/dist/browser/Utils.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 1.0 / 2;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cards/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \********************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CircleDrawer: () => (/* binding */ CircleDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst sides = 12,\n maxAngle = 360,\n minAngle = 0;\nclass CircleDrawer {\n async draw(data) {\n const {\n drawCircle\n } = await __webpack_require__.e(/*! import() */ \"shapes_circle_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/circle/dist/browser/Utils.js\"));\n drawCircle(data);\n }\n getSidesCount() {\n return sides;\n }\n async particleInit(container, particle) {\n const shapeData = particle.shapeData,\n angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle\n };\n particle.circleRange = !(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isObject)(angle) ? {\n min: minAngle,\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle)\n } : {\n min: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.min),\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.max)\n };\n await Promise.resolve();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/circle/dist/browser/CircleDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CircleDrawer: () => (/* binding */ CircleDrawer)\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 _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/circle/dist/browser/Utils.js\");\n\n\nconst sides = 12,\n maxAngle = 360,\n minAngle = 0;\nclass CircleDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawCircle)(data);\n }\n getSidesCount() {\n return sides;\n }\n particleInit(container, particle) {\n const shapeData = particle.shapeData,\n angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle\n };\n particle.circleRange = !(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isObject)(angle) ? {\n min: minAngle,\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle)\n } : {\n min: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.min),\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.max)\n };\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/circle/dist/browser/CircleDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/circle/dist/browser/Utils.js":
31
+ /*!*************************************************!*\
32
+ !*** ../../shapes/circle/dist/browser/Utils.js ***!
33
+ \*************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawCircle: () => (/* binding */ drawCircle)\n/* harmony export */ });\nconst double = 2,\n doublePI = Math.PI * double,\n minAngle = 0,\n origin = {\n x: 0,\n y: 0\n };\nfunction drawCircle(data) {\n const {\n context,\n particle,\n radius\n } = data;\n if (!particle.circleRange) {\n particle.circleRange = {\n min: minAngle,\n max: doublePI\n };\n }\n const circleRange = particle.circleRange;\n context.arc(origin.x, origin.y, radius, circleRange.min, circleRange.max, false);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/circle/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \**************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CogDrawer: () => (/* binding */ CogDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst defaultHoleRadius = 44,\n defaultInnerRadius = 72,\n defaultInnerTaper = 35,\n defaultNotches = 7,\n defaultOuterTaper = 50;\nclass CogDrawer {\n async afterDraw(data) {\n const {\n drawCogHole\n } = await __webpack_require__.e(/*! import() */ \"shapes_cog_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/cog/dist/browser/Utils.js\"));\n drawCogHole(data);\n }\n async draw(data) {\n const {\n drawCog\n } = await __webpack_require__.e(/*! import() */ \"shapes_cog_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/cog/dist/browser/Utils.js\"));\n drawCog(data);\n }\n async particleInit(container, particle) {\n const shapeData = particle.shapeData;\n particle.cogHoleRadius = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.holeRadius ?? defaultHoleRadius);\n particle.cogInnerRadius = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.innerRadius ?? defaultInnerRadius);\n particle.cogInnerTaper = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.innerTaper ?? defaultInnerTaper);\n particle.cogNotches = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.notches ?? defaultNotches);\n particle.cogOuterTaper = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.outerTaper ?? defaultOuterTaper);\n await Promise.resolve();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cog/dist/browser/CogDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CogDrawer: () => (/* binding */ CogDrawer)\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 _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/cog/dist/browser/Utils.js\");\n\n\nconst defaultHoleRadius = 44,\n defaultInnerRadius = 72,\n defaultInnerTaper = 35,\n defaultNotches = 7,\n defaultOuterTaper = 50;\nclass CogDrawer {\n afterDraw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawCogHole)(data);\n }\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawCog)(data);\n }\n particleInit(container, particle) {\n const shapeData = particle.shapeData;\n particle.cogHoleRadius = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.holeRadius ?? defaultHoleRadius);\n particle.cogInnerRadius = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.innerRadius ?? defaultInnerRadius);\n particle.cogInnerTaper = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.innerTaper ?? defaultInnerTaper);\n particle.cogNotches = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.notches ?? defaultNotches);\n particle.cogOuterTaper = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(shapeData?.outerTaper ?? defaultOuterTaper);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cog/dist/browser/CogDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/cog/dist/browser/Utils.js":
31
+ /*!**********************************************!*\
32
+ !*** ../../shapes/cog/dist/browser/Utils.js ***!
33
+ \**********************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawCog: () => (/* binding */ drawCog),\n/* harmony export */ drawCogHole: () => (/* binding */ drawCogHole)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst double = 2,\n doublePI = Math.PI * double,\n minAngle = 0,\n origin = {\n x: 0,\n y: 0\n },\n taperFactor = 0.005;\nfunction drawCogHole(data) {\n const {\n context,\n particle,\n radius\n } = data;\n if (particle.cogHoleRadius === undefined || particle.cogInnerRadius === undefined || particle.cogInnerTaper === undefined || particle.cogNotches === undefined || particle.cogOuterTaper === undefined) {\n return;\n }\n const holeRadius = radius * particle.cogHoleRadius / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator;\n context.globalCompositeOperation = \"destination-out\";\n context.beginPath();\n context.moveTo(holeRadius, origin.y);\n context.arc(origin.x, origin.y, holeRadius, minAngle, doublePI);\n context.closePath();\n context.fill();\n context.globalCompositeOperation = \"source-over\";\n}\nfunction drawCog(data) {\n const {\n context,\n particle,\n radius\n } = data;\n if (particle.cogHoleRadius === undefined || particle.cogInnerRadius === undefined || particle.cogInnerTaper === undefined || particle.cogNotches === undefined || particle.cogOuterTaper === undefined) {\n return;\n }\n const angle = doublePI / (particle.cogNotches * double),\n taperAI = angle * particle.cogInnerTaper * taperFactor,\n taperAO = angle * particle.cogOuterTaper * taperFactor,\n innerRadius = radius * particle.cogInnerRadius / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator;\n let a = angle,\n toggle = false;\n context.moveTo(radius * Math.cos(taperAO), radius * Math.sin(taperAO));\n for (; a <= doublePI; a += angle) {\n if (toggle) {\n context.lineTo(innerRadius * Math.cos(a - taperAI), innerRadius * Math.sin(a - taperAI));\n context.lineTo(radius * Math.cos(a + taperAO), radius * Math.sin(a + taperAO));\n } else {\n context.lineTo(radius * Math.cos(a - taperAO), radius * Math.sin(a - taperAO));\n context.lineTo(innerRadius * Math.cos(a + taperAI), innerRadius * Math.sin(a + taperAI));\n }\n toggle = !toggle;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/cog/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \******************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmojiDrawer: () => (/* binding */ EmojiDrawer)\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 _Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants.js */ \"../../shapes/emoji/dist/browser/Constants.js\");\n\n\nconst defaultFont = '\"Twemoji Mozilla\", Apple Color Emoji, \"Segoe UI Emoji\", \"Noto Color Emoji\", \"EmojiOne Color\"';\nclass EmojiDrawer {\n constructor() {\n this._emojiShapeDict = new Map();\n }\n destroy() {\n for (const [key, emojiData] of this._emojiShapeDict) {\n if (emojiData instanceof ImageBitmap) {\n emojiData?.close();\n this._emojiShapeDict.delete(key);\n }\n }\n }\n async draw(data) {\n const {\n drawEmoji\n } = await __webpack_require__.e(/*! import() */ \"shapes_emoji_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/emoji/dist/browser/Utils.js\"));\n drawEmoji(data);\n }\n async init(container) {\n const options = container.actualOptions;\n if (!_Constants_js__WEBPACK_IMPORTED_MODULE_1__.validTypes.find(t => (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isInArray)(t, options.particles.shape.type))) {\n return;\n }\n const promises = [(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.loadFont)(defaultFont)],\n shapeOptions = _Constants_js__WEBPACK_IMPORTED_MODULE_1__.validTypes.map(t => options.particles.shape.options[t]).find(t => !!t);\n if (shapeOptions) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(shapeOptions, shape => {\n if (shape.font) {\n promises.push((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.loadFont)(shape.font));\n }\n });\n }\n await Promise.all(promises);\n }\n particleDestroy(particle) {\n delete particle.emojiData;\n }\n async particleInit(container, particle) {\n const double = 2,\n shapeData = particle.shapeData;\n if (!shapeData?.value) {\n return;\n }\n const emoji = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(shapeData.value, particle.randomIndexData),\n font = shapeData.font ?? defaultFont;\n if (!emoji) {\n return;\n }\n const key = `${emoji}_${font}`,\n existingData = this._emojiShapeDict.get(key);\n if (existingData) {\n particle.emojiData = existingData;\n return;\n }\n const canvasSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particle.size.value) * double;\n let emojiData;\n const maxSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particle.size.value);\n if (typeof OffscreenCanvas !== \"undefined\") {\n const canvas = new OffscreenCanvas(canvasSize, canvasSize),\n context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas.transferToImageBitmap();\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas;\n }\n this._emojiShapeDict.set(key, emojiData);\n particle.emojiData = emojiData;\n await Promise.resolve();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/emoji/dist/browser/EmojiDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ EmojiDrawer: () => (/* binding */ EmojiDrawer)\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 _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/emoji/dist/browser/Utils.js\");\n/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Constants.js */ \"../../shapes/emoji/dist/browser/Constants.js\");\n\n\n\nconst defaultFont = '\"Twemoji Mozilla\", Apple Color Emoji, \"Segoe UI Emoji\", \"Noto Color Emoji\", \"EmojiOne Color\"';\nclass EmojiDrawer {\n constructor() {\n this._emojiShapeDict = new Map();\n }\n destroy() {\n for (const [key, emojiData] of this._emojiShapeDict) {\n if (emojiData instanceof ImageBitmap) {\n emojiData?.close();\n this._emojiShapeDict.delete(key);\n }\n }\n }\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawEmoji)(data);\n }\n async init(container) {\n const options = container.actualOptions;\n if (!_Constants_js__WEBPACK_IMPORTED_MODULE_2__.validTypes.find(t => (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isInArray)(t, options.particles.shape.type))) {\n return;\n }\n const promises = [(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.loadFont)(defaultFont)],\n shapeOptions = _Constants_js__WEBPACK_IMPORTED_MODULE_2__.validTypes.map(t => options.particles.shape.options[t]).find(t => !!t);\n if (shapeOptions) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(shapeOptions, shape => {\n if (shape.font) {\n promises.push((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.loadFont)(shape.font));\n }\n });\n }\n await Promise.all(promises);\n }\n particleDestroy(particle) {\n delete particle.emojiData;\n }\n particleInit(container, particle) {\n const double = 2,\n shapeData = particle.shapeData;\n if (!shapeData?.value) {\n return;\n }\n const emoji = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(shapeData.value, particle.randomIndexData),\n font = shapeData.font ?? defaultFont;\n if (!emoji) {\n return;\n }\n const key = `${emoji}_${font}`,\n existingData = this._emojiShapeDict.get(key);\n if (existingData) {\n particle.emojiData = existingData;\n return;\n }\n const canvasSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particle.size.value) * double;\n let emojiData;\n const maxSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particle.size.value);\n if (typeof OffscreenCanvas !== \"undefined\") {\n const canvas = new OffscreenCanvas(canvasSize, canvasSize),\n context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas.transferToImageBitmap();\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas;\n }\n this._emojiShapeDict.set(key, emojiData);\n particle.emojiData = emojiData;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/emoji/dist/browser/EmojiDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/emoji/dist/browser/Utils.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/emoji/dist/browser/Utils.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawEmoji: () => (/* binding */ drawEmoji)\n/* harmony export */ });\nfunction drawEmoji(data) {\n const {\n context,\n particle,\n radius,\n opacity\n } = data,\n emojiData = particle.emojiData,\n double = 2,\n diameter = radius * double,\n previousAlpha = context.globalAlpha;\n if (!emojiData) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(emojiData, -radius, -radius, diameter, diameter);\n context.globalAlpha = previousAlpha;\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/emoji/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39
 
@@ -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
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v3.2.2
7
+ * v3.3.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,17 @@
23
23
  \******************************************************/
24
24
  /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
25
 
26
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeartDrawer: () => (/* binding */ HeartDrawer)\n/* harmony export */ });\nclass HeartDrawer {\n async draw(data) {\n const {\n drawHeart\n } = await __webpack_require__.e(/*! import() */ \"shapes_heart_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/heart/dist/browser/Utils.js\"));\n drawHeart(data);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/heart/dist/browser/HeartDrawer.js?");
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeartDrawer: () => (/* binding */ HeartDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/heart/dist/browser/Utils.js\");\n\nclass HeartDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawHeart)(data);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/heart/dist/browser/HeartDrawer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/heart/dist/browser/Utils.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/heart/dist/browser/Utils.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawHeart: () => (/* binding */ drawHeart)\n/* harmony export */ });\nconst half = 0.5,\n double = 2;\nfunction drawHeart(data) {\n const {\n context,\n radius\n } = data,\n diameter = radius * double,\n halfRadius = radius * half,\n radiusAndHalf = radius + halfRadius,\n x = -radius,\n y = -radius;\n context.moveTo(x, y + halfRadius);\n context.quadraticCurveTo(x, y, x + halfRadius, y);\n context.quadraticCurveTo(x + radius, y, x + radius, y + halfRadius);\n context.quadraticCurveTo(x + radius, y, x + radiusAndHalf, y);\n context.quadraticCurveTo(x + diameter, y, x + diameter, y + halfRadius);\n context.quadraticCurveTo(x + diameter, y + radius, x + radiusAndHalf, y + radiusAndHalf);\n context.lineTo(x + radius, y + diameter);\n context.lineTo(x + halfRadius, y + radiusAndHalf);\n context.quadraticCurveTo(x, y + radius, x, y + halfRadius);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../shapes/heart/dist/browser/Utils.js?");
27
37
 
28
38
  /***/ })
29
39