@tsparticles/all 3.1.0 → 3.2.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 (682) hide show
  1. package/1011.min.js +2 -0
  2. package/1011.min.js.LICENSE.txt +1 -0
  3. package/1030.min.js +2 -0
  4. package/1030.min.js.LICENSE.txt +1 -0
  5. package/1122.min.js +2 -0
  6. package/1122.min.js.LICENSE.txt +1 -0
  7. package/1147.min.js +2 -0
  8. package/1147.min.js.LICENSE.txt +1 -0
  9. package/1163.min.js +2 -0
  10. package/1163.min.js.LICENSE.txt +1 -0
  11. package/1188.min.js +2 -0
  12. package/1188.min.js.LICENSE.txt +1 -0
  13. package/1196.min.js +2 -0
  14. package/1196.min.js.LICENSE.txt +1 -0
  15. package/1264.min.js +2 -0
  16. package/1264.min.js.LICENSE.txt +1 -0
  17. package/1299.min.js +2 -0
  18. package/1299.min.js.LICENSE.txt +1 -0
  19. package/1308.min.js +2 -0
  20. package/1308.min.js.LICENSE.txt +1 -0
  21. package/1317.min.js +2 -0
  22. package/1317.min.js.LICENSE.txt +1 -0
  23. package/1332.min.js +2 -0
  24. package/1332.min.js.LICENSE.txt +1 -0
  25. package/1364.min.js +2 -0
  26. package/1364.min.js.LICENSE.txt +1 -0
  27. package/1472.min.js +2 -0
  28. package/1472.min.js.LICENSE.txt +1 -0
  29. package/1490.min.js +2 -0
  30. package/1490.min.js.LICENSE.txt +1 -0
  31. package/1492.min.js +2 -0
  32. package/1492.min.js.LICENSE.txt +1 -0
  33. package/1513.min.js +2 -0
  34. package/1513.min.js.LICENSE.txt +1 -0
  35. package/1539.min.js +2 -0
  36. package/1539.min.js.LICENSE.txt +1 -0
  37. package/1705.min.js +2 -0
  38. package/1705.min.js.LICENSE.txt +1 -0
  39. package/1708.min.js +2 -0
  40. package/1708.min.js.LICENSE.txt +1 -0
  41. package/1769.min.js +2 -0
  42. package/1769.min.js.LICENSE.txt +1 -0
  43. package/1808.min.js +2 -0
  44. package/1808.min.js.LICENSE.txt +1 -0
  45. package/1810.min.js +2 -0
  46. package/1810.min.js.LICENSE.txt +1 -0
  47. package/1831.min.js +2 -0
  48. package/1831.min.js.LICENSE.txt +1 -0
  49. package/1912.min.js +2 -0
  50. package/1912.min.js.LICENSE.txt +1 -0
  51. package/1916.min.js +2 -0
  52. package/1916.min.js.LICENSE.txt +1 -0
  53. package/1952.min.js +2 -0
  54. package/1952.min.js.LICENSE.txt +1 -0
  55. package/196.min.js +2 -0
  56. package/196.min.js.LICENSE.txt +1 -0
  57. package/197.min.js +2 -0
  58. package/197.min.js.LICENSE.txt +1 -0
  59. package/1982.min.js +2 -0
  60. package/1982.min.js.LICENSE.txt +1 -0
  61. package/208.min.js +2 -0
  62. package/208.min.js.LICENSE.txt +1 -0
  63. package/2081.min.js +2 -0
  64. package/2081.min.js.LICENSE.txt +1 -0
  65. package/2121.min.js +2 -0
  66. package/2121.min.js.LICENSE.txt +1 -0
  67. package/2124.min.js +2 -0
  68. package/2124.min.js.LICENSE.txt +1 -0
  69. package/2173.min.js +2 -0
  70. package/2173.min.js.LICENSE.txt +1 -0
  71. package/2200.min.js +2 -0
  72. package/2200.min.js.LICENSE.txt +1 -0
  73. package/2227.min.js +2 -0
  74. package/2227.min.js.LICENSE.txt +1 -0
  75. package/2281.min.js +2 -0
  76. package/2281.min.js.LICENSE.txt +1 -0
  77. package/231.min.js +2 -0
  78. package/231.min.js.LICENSE.txt +1 -0
  79. package/2397.min.js +2 -0
  80. package/2397.min.js.LICENSE.txt +1 -0
  81. package/2407.min.js +2 -0
  82. package/2407.min.js.LICENSE.txt +1 -0
  83. package/2486.min.js +2 -0
  84. package/2486.min.js.LICENSE.txt +1 -0
  85. package/255.min.js +2 -0
  86. package/255.min.js.LICENSE.txt +1 -0
  87. package/256.min.js +2 -0
  88. package/256.min.js.LICENSE.txt +1 -0
  89. package/2580.min.js +2 -0
  90. package/2580.min.js.LICENSE.txt +1 -0
  91. package/2628.min.js +2 -0
  92. package/2628.min.js.LICENSE.txt +1 -0
  93. package/2720.min.js +2 -0
  94. package/2720.min.js.LICENSE.txt +1 -0
  95. package/2765.min.js +2 -0
  96. package/2765.min.js.LICENSE.txt +1 -0
  97. package/2870.min.js +2 -0
  98. package/2870.min.js.LICENSE.txt +1 -0
  99. package/2890.min.js +2 -0
  100. package/2890.min.js.LICENSE.txt +1 -0
  101. package/2899.min.js +2 -0
  102. package/2899.min.js.LICENSE.txt +1 -0
  103. package/290.min.js +2 -0
  104. package/290.min.js.LICENSE.txt +1 -0
  105. package/294.min.js +2 -0
  106. package/294.min.js.LICENSE.txt +1 -0
  107. package/2946.min.js +2 -0
  108. package/2946.min.js.LICENSE.txt +1 -0
  109. package/3054.min.js +2 -0
  110. package/3054.min.js.LICENSE.txt +1 -0
  111. package/3134.min.js +2 -0
  112. package/3134.min.js.LICENSE.txt +1 -0
  113. package/3141.min.js +2 -0
  114. package/3141.min.js.LICENSE.txt +1 -0
  115. package/3196.min.js +2 -0
  116. package/3196.min.js.LICENSE.txt +1 -0
  117. package/3255.min.js +2 -0
  118. package/3255.min.js.LICENSE.txt +1 -0
  119. package/3261.min.js +2 -0
  120. package/3261.min.js.LICENSE.txt +1 -0
  121. package/3411.min.js +2 -0
  122. package/3411.min.js.LICENSE.txt +1 -0
  123. package/3457.min.js +2 -0
  124. package/3457.min.js.LICENSE.txt +1 -0
  125. package/3468.min.js +2 -0
  126. package/3468.min.js.LICENSE.txt +1 -0
  127. package/3473.min.js +2 -0
  128. package/3473.min.js.LICENSE.txt +1 -0
  129. package/3486.min.js +2 -0
  130. package/3486.min.js.LICENSE.txt +1 -0
  131. package/3517.min.js +2 -0
  132. package/3517.min.js.LICENSE.txt +1 -0
  133. package/3597.min.js +2 -0
  134. package/3597.min.js.LICENSE.txt +1 -0
  135. package/3610.min.js +2 -0
  136. package/3610.min.js.LICENSE.txt +1 -0
  137. package/3629.min.js +2 -0
  138. package/3629.min.js.LICENSE.txt +1 -0
  139. package/3648.min.js +2 -0
  140. package/3648.min.js.LICENSE.txt +1 -0
  141. package/3685.min.js +2 -0
  142. package/3685.min.js.LICENSE.txt +1 -0
  143. package/3699.min.js +2 -0
  144. package/3699.min.js.LICENSE.txt +1 -0
  145. package/3705.min.js +2 -0
  146. package/3705.min.js.LICENSE.txt +1 -0
  147. package/3733.min.js +2 -0
  148. package/3733.min.js.LICENSE.txt +1 -0
  149. package/3817.min.js +2 -0
  150. package/3817.min.js.LICENSE.txt +1 -0
  151. package/3837.min.js +2 -0
  152. package/3837.min.js.LICENSE.txt +1 -0
  153. package/384.min.js +2 -0
  154. package/384.min.js.LICENSE.txt +1 -0
  155. package/3862.min.js +2 -0
  156. package/3862.min.js.LICENSE.txt +1 -0
  157. package/3869.min.js +2 -0
  158. package/3869.min.js.LICENSE.txt +1 -0
  159. package/3904.min.js +2 -0
  160. package/3904.min.js.LICENSE.txt +1 -0
  161. package/4011.min.js +2 -0
  162. package/4011.min.js.LICENSE.txt +1 -0
  163. package/4037.min.js +2 -0
  164. package/4037.min.js.LICENSE.txt +1 -0
  165. package/4043.min.js +2 -0
  166. package/4043.min.js.LICENSE.txt +1 -0
  167. package/409.min.js +2 -0
  168. package/409.min.js.LICENSE.txt +1 -0
  169. package/4098.min.js +2 -0
  170. package/4098.min.js.LICENSE.txt +1 -0
  171. package/4116.min.js +2 -0
  172. package/4116.min.js.LICENSE.txt +1 -0
  173. package/4122.min.js +2 -0
  174. package/4122.min.js.LICENSE.txt +1 -0
  175. package/4127.min.js +2 -0
  176. package/4127.min.js.LICENSE.txt +1 -0
  177. package/4176.min.js +2 -0
  178. package/4176.min.js.LICENSE.txt +1 -0
  179. package/4245.min.js +2 -0
  180. package/4245.min.js.LICENSE.txt +1 -0
  181. package/4271.min.js +2 -0
  182. package/4271.min.js.LICENSE.txt +1 -0
  183. package/4314.min.js +2 -0
  184. package/4314.min.js.LICENSE.txt +1 -0
  185. package/4328.min.js +2 -0
  186. package/4328.min.js.LICENSE.txt +1 -0
  187. package/4342.min.js +2 -0
  188. package/4342.min.js.LICENSE.txt +1 -0
  189. package/4380.min.js +2 -0
  190. package/4380.min.js.LICENSE.txt +1 -0
  191. package/4396.min.js +2 -0
  192. package/4396.min.js.LICENSE.txt +1 -0
  193. package/4438.min.js +2 -0
  194. package/4438.min.js.LICENSE.txt +1 -0
  195. package/4515.min.js +2 -0
  196. package/4515.min.js.LICENSE.txt +1 -0
  197. package/4522.min.js +2 -0
  198. package/4522.min.js.LICENSE.txt +1 -0
  199. package/4547.min.js +2 -0
  200. package/4547.min.js.LICENSE.txt +1 -0
  201. package/4595.min.js +2 -0
  202. package/4595.min.js.LICENSE.txt +1 -0
  203. package/4662.min.js +2 -0
  204. package/4662.min.js.LICENSE.txt +1 -0
  205. package/4687.min.js +2 -0
  206. package/4687.min.js.LICENSE.txt +1 -0
  207. package/4717.min.js +2 -0
  208. package/4717.min.js.LICENSE.txt +1 -0
  209. package/4732.min.js +2 -0
  210. package/4732.min.js.LICENSE.txt +1 -0
  211. package/4737.min.js +2 -0
  212. package/4737.min.js.LICENSE.txt +1 -0
  213. package/4766.min.js +2 -0
  214. package/4766.min.js.LICENSE.txt +1 -0
  215. package/4794.min.js +2 -0
  216. package/4794.min.js.LICENSE.txt +1 -0
  217. package/482.min.js +2 -0
  218. package/482.min.js.LICENSE.txt +1 -0
  219. package/485.min.js +2 -0
  220. package/485.min.js.LICENSE.txt +1 -0
  221. package/4866.min.js +2 -0
  222. package/4866.min.js.LICENSE.txt +1 -0
  223. package/4922.min.js +2 -0
  224. package/4922.min.js.LICENSE.txt +1 -0
  225. package/4973.min.js +2 -0
  226. package/4973.min.js.LICENSE.txt +1 -0
  227. package/4994.min.js +2 -0
  228. package/4994.min.js.LICENSE.txt +1 -0
  229. package/5010.min.js +2 -0
  230. package/5010.min.js.LICENSE.txt +1 -0
  231. package/5034.min.js +2 -0
  232. package/5034.min.js.LICENSE.txt +1 -0
  233. package/5075.min.js +2 -0
  234. package/5075.min.js.LICENSE.txt +1 -0
  235. package/5092.min.js +2 -0
  236. package/5092.min.js.LICENSE.txt +1 -0
  237. package/5120.min.js +2 -0
  238. package/5120.min.js.LICENSE.txt +1 -0
  239. package/5171.min.js +2 -0
  240. package/5171.min.js.LICENSE.txt +1 -0
  241. package/5243.min.js +2 -0
  242. package/5243.min.js.LICENSE.txt +1 -0
  243. package/5245.min.js +2 -0
  244. package/5245.min.js.LICENSE.txt +1 -0
  245. package/5250.min.js +2 -0
  246. package/5250.min.js.LICENSE.txt +1 -0
  247. package/5274.min.js +2 -0
  248. package/5274.min.js.LICENSE.txt +1 -0
  249. package/5308.min.js +2 -0
  250. package/5308.min.js.LICENSE.txt +1 -0
  251. package/5329.min.js +2 -0
  252. package/5329.min.js.LICENSE.txt +1 -0
  253. package/533.min.js +2 -0
  254. package/533.min.js.LICENSE.txt +1 -0
  255. package/5337.min.js +2 -0
  256. package/5337.min.js.LICENSE.txt +1 -0
  257. package/5437.min.js +2 -0
  258. package/5437.min.js.LICENSE.txt +1 -0
  259. package/5444.min.js +2 -0
  260. package/5444.min.js.LICENSE.txt +1 -0
  261. package/548.min.js +2 -0
  262. package/548.min.js.LICENSE.txt +1 -0
  263. package/5523.min.js +2 -0
  264. package/5523.min.js.LICENSE.txt +1 -0
  265. package/5534.min.js +2 -0
  266. package/5534.min.js.LICENSE.txt +1 -0
  267. package/5537.min.js +2 -0
  268. package/5537.min.js.LICENSE.txt +1 -0
  269. package/5582.min.js +2 -0
  270. package/5582.min.js.LICENSE.txt +1 -0
  271. package/560.min.js +2 -0
  272. package/560.min.js.LICENSE.txt +1 -0
  273. package/5647.min.js +2 -0
  274. package/5647.min.js.LICENSE.txt +1 -0
  275. package/5683.min.js +2 -0
  276. package/5683.min.js.LICENSE.txt +1 -0
  277. package/571.min.js +2 -0
  278. package/571.min.js.LICENSE.txt +1 -0
  279. package/5715.min.js +2 -0
  280. package/5715.min.js.LICENSE.txt +1 -0
  281. package/5742.min.js +2 -0
  282. package/5742.min.js.LICENSE.txt +1 -0
  283. package/5754.min.js +2 -0
  284. package/5754.min.js.LICENSE.txt +1 -0
  285. package/5819.min.js +2 -0
  286. package/5819.min.js.LICENSE.txt +1 -0
  287. package/5841.min.js +2 -0
  288. package/5841.min.js.LICENSE.txt +1 -0
  289. package/5852.min.js +2 -0
  290. package/5852.min.js.LICENSE.txt +1 -0
  291. package/599.min.js +2 -0
  292. package/599.min.js.LICENSE.txt +1 -0
  293. package/6004.min.js +2 -0
  294. package/6004.min.js.LICENSE.txt +1 -0
  295. package/6067.min.js +2 -0
  296. package/6067.min.js.LICENSE.txt +1 -0
  297. package/6072.min.js +2 -0
  298. package/6072.min.js.LICENSE.txt +1 -0
  299. package/6132.min.js +2 -0
  300. package/6132.min.js.LICENSE.txt +1 -0
  301. package/6152.min.js +2 -0
  302. package/6152.min.js.LICENSE.txt +1 -0
  303. package/6540.min.js +2 -0
  304. package/6540.min.js.LICENSE.txt +1 -0
  305. package/655.min.js +2 -0
  306. package/655.min.js.LICENSE.txt +1 -0
  307. package/6551.min.js +2 -0
  308. package/6551.min.js.LICENSE.txt +1 -0
  309. package/6634.min.js +2 -0
  310. package/6634.min.js.LICENSE.txt +1 -0
  311. package/6763.min.js +2 -0
  312. package/6763.min.js.LICENSE.txt +1 -0
  313. package/6772.min.js +2 -0
  314. package/6772.min.js.LICENSE.txt +1 -0
  315. package/6803.min.js +2 -0
  316. package/6803.min.js.LICENSE.txt +1 -0
  317. package/69.min.js +2 -0
  318. package/69.min.js.LICENSE.txt +1 -0
  319. package/7002.min.js +2 -0
  320. package/7002.min.js.LICENSE.txt +1 -0
  321. package/7031.min.js +2 -0
  322. package/7031.min.js.LICENSE.txt +1 -0
  323. package/7049.min.js +2 -0
  324. package/7049.min.js.LICENSE.txt +1 -0
  325. package/7077.min.js +2 -0
  326. package/7077.min.js.LICENSE.txt +1 -0
  327. package/7103.min.js +2 -0
  328. package/7103.min.js.LICENSE.txt +1 -0
  329. package/7108.min.js +2 -0
  330. package/7108.min.js.LICENSE.txt +1 -0
  331. package/7139.min.js +2 -0
  332. package/7139.min.js.LICENSE.txt +1 -0
  333. package/7331.min.js +2 -0
  334. package/7331.min.js.LICENSE.txt +1 -0
  335. package/7423.min.js +2 -0
  336. package/7423.min.js.LICENSE.txt +1 -0
  337. package/7441.min.js +2 -0
  338. package/7441.min.js.LICENSE.txt +1 -0
  339. package/7500.min.js +2 -0
  340. package/7500.min.js.LICENSE.txt +1 -0
  341. package/7517.min.js +2 -0
  342. package/7517.min.js.LICENSE.txt +1 -0
  343. package/7687.min.js +2 -0
  344. package/7687.min.js.LICENSE.txt +1 -0
  345. package/7697.min.js +2 -0
  346. package/7697.min.js.LICENSE.txt +1 -0
  347. package/7725.min.js +2 -0
  348. package/7725.min.js.LICENSE.txt +1 -0
  349. package/7757.min.js +2 -0
  350. package/7757.min.js.LICENSE.txt +1 -0
  351. package/7769.min.js +2 -0
  352. package/7769.min.js.LICENSE.txt +1 -0
  353. package/7794.min.js +2 -0
  354. package/7794.min.js.LICENSE.txt +1 -0
  355. package/7835.min.js +2 -0
  356. package/7835.min.js.LICENSE.txt +1 -0
  357. package/7859.min.js +2 -0
  358. package/7859.min.js.LICENSE.txt +1 -0
  359. package/7886.min.js +2 -0
  360. package/7886.min.js.LICENSE.txt +1 -0
  361. package/7890.min.js +2 -0
  362. package/7890.min.js.LICENSE.txt +1 -0
  363. package/7900.min.js +2 -0
  364. package/7900.min.js.LICENSE.txt +1 -0
  365. package/7919.min.js +2 -0
  366. package/7919.min.js.LICENSE.txt +1 -0
  367. package/8000.min.js +2 -0
  368. package/8000.min.js.LICENSE.txt +1 -0
  369. package/801.min.js +2 -0
  370. package/801.min.js.LICENSE.txt +1 -0
  371. package/8060.min.js +2 -0
  372. package/8060.min.js.LICENSE.txt +1 -0
  373. package/8088.min.js +2 -0
  374. package/8088.min.js.LICENSE.txt +1 -0
  375. package/8127.min.js +2 -0
  376. package/8127.min.js.LICENSE.txt +1 -0
  377. package/8158.min.js +2 -0
  378. package/8158.min.js.LICENSE.txt +1 -0
  379. package/8179.min.js +2 -0
  380. package/8179.min.js.LICENSE.txt +1 -0
  381. package/8346.min.js +2 -0
  382. package/8346.min.js.LICENSE.txt +1 -0
  383. package/8361.min.js +2 -0
  384. package/8361.min.js.LICENSE.txt +1 -0
  385. package/8445.min.js +2 -0
  386. package/8445.min.js.LICENSE.txt +1 -0
  387. package/861.min.js +2 -0
  388. package/861.min.js.LICENSE.txt +1 -0
  389. package/8739.min.js +2 -0
  390. package/8739.min.js.LICENSE.txt +1 -0
  391. package/8852.min.js +2 -0
  392. package/8852.min.js.LICENSE.txt +1 -0
  393. package/8883.min.js +2 -0
  394. package/8883.min.js.LICENSE.txt +1 -0
  395. package/889.min.js +2 -0
  396. package/889.min.js.LICENSE.txt +1 -0
  397. package/9033.min.js +2 -0
  398. package/9033.min.js.LICENSE.txt +1 -0
  399. package/9062.min.js +2 -0
  400. package/9062.min.js.LICENSE.txt +1 -0
  401. package/9087.min.js +2 -0
  402. package/9087.min.js.LICENSE.txt +1 -0
  403. package/9121.min.js +2 -0
  404. package/9121.min.js.LICENSE.txt +1 -0
  405. package/9126.min.js +2 -0
  406. package/9126.min.js.LICENSE.txt +1 -0
  407. package/9133.min.js +2 -0
  408. package/9133.min.js.LICENSE.txt +1 -0
  409. package/9251.min.js +2 -0
  410. package/9251.min.js.LICENSE.txt +1 -0
  411. package/9257.min.js +2 -0
  412. package/9257.min.js.LICENSE.txt +1 -0
  413. package/9331.min.js +2 -0
  414. package/9331.min.js.LICENSE.txt +1 -0
  415. package/9376.min.js +2 -0
  416. package/9376.min.js.LICENSE.txt +1 -0
  417. package/9392.min.js +2 -0
  418. package/9392.min.js.LICENSE.txt +1 -0
  419. package/9431.min.js +2 -0
  420. package/9431.min.js.LICENSE.txt +1 -0
  421. package/95.min.js +2 -0
  422. package/95.min.js.LICENSE.txt +1 -0
  423. package/952.min.js +2 -0
  424. package/952.min.js.LICENSE.txt +1 -0
  425. package/9530.min.js +2 -0
  426. package/9530.min.js.LICENSE.txt +1 -0
  427. package/9532.min.js +2 -0
  428. package/9532.min.js.LICENSE.txt +1 -0
  429. package/9588.min.js +2 -0
  430. package/9588.min.js.LICENSE.txt +1 -0
  431. package/9674.min.js +2 -0
  432. package/9674.min.js.LICENSE.txt +1 -0
  433. package/9803.min.js +2 -0
  434. package/9803.min.js.LICENSE.txt +1 -0
  435. package/9806.min.js +2 -0
  436. package/9806.min.js.LICENSE.txt +1 -0
  437. package/9836.min.js +2 -0
  438. package/9836.min.js.LICENSE.txt +1 -0
  439. package/9845.min.js +2 -0
  440. package/9845.min.js.LICENSE.txt +1 -0
  441. package/9921.min.js +2 -0
  442. package/9921.min.js.LICENSE.txt +1 -0
  443. package/9937.min.js +2 -0
  444. package/9937.min.js.LICENSE.txt +1 -0
  445. package/9979.min.js +2 -0
  446. package/9979.min.js.LICENSE.txt +1 -0
  447. package/README.md +2 -0
  448. package/basic_dist_browser_index_js.js +30 -0
  449. package/browser/index.js +2 -45
  450. package/cjs/index.js +71 -91
  451. package/effects_bubble_dist_browser_BubbleDrawer_js.js +30 -0
  452. package/effects_bubble_dist_browser_index_js.js +30 -0
  453. package/effects_trail_dist_browser_TrailDrawer_js.js +30 -0
  454. package/effects_trail_dist_browser_index_js.js +30 -0
  455. package/engine_dist_browser_Core_Container_js.js +90 -0
  456. package/engine_dist_browser_Core_Particle_js.js +30 -0
  457. package/esm/index.js +2 -45
  458. package/full_dist_browser_index_js.js +30 -0
  459. package/interactions_external_attract_dist_browser_Attractor_js.js +30 -0
  460. package/interactions_external_attract_dist_browser_Utils_js.js +30 -0
  461. package/interactions_external_attract_dist_browser_index_js.js +50 -0
  462. package/interactions_external_bounce_dist_browser_Bouncer_js.js +30 -0
  463. package/interactions_external_bounce_dist_browser_Utils_js.js +30 -0
  464. package/interactions_external_bounce_dist_browser_index_js.js +50 -0
  465. package/interactions_external_bubble_dist_browser_Bubbler_js.js +40 -0
  466. package/interactions_external_bubble_dist_browser_index_js.js +90 -0
  467. package/interactions_external_connect_dist_browser_Connector_js.js +40 -0
  468. package/interactions_external_connect_dist_browser_index_js.js +70 -0
  469. package/interactions_external_grab_dist_browser_Grabber_js.js +40 -0
  470. package/interactions_external_grab_dist_browser_index_js.js +70 -0
  471. package/interactions_external_particle_dist_browser_InteractivityParticleMaker_js.js +40 -0
  472. package/interactions_external_particle_dist_browser_index_js.js +30 -0
  473. package/interactions_external_pause_dist_browser_Pauser_js.js +30 -0
  474. package/interactions_external_pause_dist_browser_index_js.js +30 -0
  475. package/interactions_external_pop_dist_browser_Popper_js.js +30 -0
  476. package/interactions_external_pop_dist_browser_index_js.js +30 -0
  477. package/interactions_external_push_dist_browser_Pusher_js.js +30 -0
  478. package/interactions_external_push_dist_browser_index_js.js +50 -0
  479. package/interactions_external_remove_dist_browser_Remover_js.js +30 -0
  480. package/interactions_external_remove_dist_browser_index_js.js +50 -0
  481. package/interactions_external_repulse_dist_browser_Repulser_js.js +30 -0
  482. package/interactions_external_repulse_dist_browser_index_js.js +90 -0
  483. package/interactions_external_slow_dist_browser_Slower_js.js +30 -0
  484. package/interactions_external_slow_dist_browser_index_js.js +50 -0
  485. package/interactions_external_trail_dist_browser_TrailMaker_js.js +30 -0
  486. package/interactions_external_trail_dist_browser_index_js.js +50 -0
  487. package/interactions_light_dist_browser_ExternalLighter_js.js +40 -0
  488. package/interactions_light_dist_browser_ParticlesLighter_js.js +40 -0
  489. package/interactions_light_dist_browser_index_js.js +110 -0
  490. package/interactions_particles_attract_dist_browser_Attractor_js.js +30 -0
  491. package/interactions_particles_attract_dist_browser_index_js.js +30 -0
  492. package/interactions_particles_collisions_dist_browser_Absorb_js.js +30 -0
  493. package/interactions_particles_collisions_dist_browser_Bounce_js.js +30 -0
  494. package/interactions_particles_collisions_dist_browser_Collider_js.js +40 -0
  495. package/interactions_particles_collisions_dist_browser_Destroy_js.js +40 -0
  496. package/interactions_particles_collisions_dist_browser_index_js.js +30 -0
  497. package/interactions_particles_links_dist_browser_CircleWarp_js.js +30 -0
  498. package/interactions_particles_links_dist_browser_LinkInstance_js.js +40 -0
  499. package/interactions_particles_links_dist_browser_Linker_js.js +30 -0
  500. package/interactions_particles_links_dist_browser_index_js.js +110 -0
  501. package/interactions_particles_repulse_dist_browser_Repulser_js.js +40 -0
  502. package/interactions_particles_repulse_dist_browser_index_js.js +30 -0
  503. package/move_base_dist_browser_BaseMover_js.js +30 -0
  504. package/move_base_dist_browser_Utils_js.js +30 -0
  505. package/move_base_dist_browser_index_js.js +30 -0
  506. package/move_parallax_dist_browser_ParallaxMover_js.js +30 -0
  507. package/move_parallax_dist_browser_index_js.js +30 -0
  508. package/package.json +48 -47
  509. package/paths_curlNoise_dist_browser_CurlNoiseGenerator_js.js +30 -0
  510. package/paths_curlNoise_dist_browser_index_js.js +30 -0
  511. package/paths_curves_dist_browser_CurvesPathGenerator_js.js +30 -0
  512. package/paths_curves_dist_browser_Curves_js.js +30 -0
  513. package/paths_curves_dist_browser_index_js.js +30 -0
  514. package/paths_perlinNoise_dist_browser_PerlinNoiseGenerator_js.js +60 -0
  515. package/paths_perlinNoise_dist_browser_index_js.js +30 -0
  516. package/paths_polygon_dist_browser_PolygonPathGenerator_js.js +30 -0
  517. package/paths_polygon_dist_browser_index_js.js +30 -0
  518. package/paths_simplexNoise_dist_browser_SimplexNoiseGenerator_js.js +30 -0
  519. package/paths_simplexNoise_dist_browser_index_js.js +30 -0
  520. package/paths_svg_dist_browser_SVGPathGenerator_js.js +30 -0
  521. package/paths_svg_dist_browser_index_js.js +30 -0
  522. package/paths_zigzag_dist_browser_ZigZagPathGenerator_js.js +30 -0
  523. package/paths_zigzag_dist_browser_index_js.js +30 -0
  524. package/pjs_dist_browser_index_js.js +50 -0
  525. package/plugins_absorbers_dist_browser_AbsorberInstance_js.js +30 -0
  526. package/plugins_absorbers_dist_browser_AbsorbersPlugin_js.js +60 -0
  527. package/plugins_absorbers_dist_browser_Absorbers_js.js +30 -0
  528. package/plugins_absorbers_dist_browser_index_js.js +50 -0
  529. package/plugins_canvasMask_dist_browser_CanvasMaskInstance_js.js +40 -0
  530. package/plugins_canvasMask_dist_browser_CanvasMaskPlugin_js.js +100 -0
  531. package/plugins_canvasMask_dist_browser_index_js.js +30 -0
  532. package/plugins_easings_back_dist_browser_index_js.js +30 -0
  533. package/plugins_easings_circ_dist_browser_index_js.js +30 -0
  534. package/plugins_easings_cubic_dist_browser_index_js.js +30 -0
  535. package/plugins_easings_expo_dist_browser_index_js.js +30 -0
  536. package/plugins_easings_linear_dist_browser_index_js.js +30 -0
  537. package/plugins_easings_quad_dist_browser_index_js.js +30 -0
  538. package/plugins_easings_quart_dist_browser_index_js.js +30 -0
  539. package/plugins_easings_quint_dist_browser_index_js.js +30 -0
  540. package/plugins_easings_sine_dist_browser_index_js.js +30 -0
  541. package/plugins_emittersShapes_canvas_dist_browser_EmittersCanvasShapeGenerator_js.js +180 -0
  542. package/plugins_emittersShapes_canvas_dist_browser_index_js.js +30 -0
  543. package/plugins_emittersShapes_circle_dist_browser_EmittersCircleShapeGenerator_js.js +120 -0
  544. package/plugins_emittersShapes_circle_dist_browser_index_js.js +30 -0
  545. package/plugins_emittersShapes_path_dist_browser_EmittersPathShapeGenerator_js.js +140 -0
  546. package/plugins_emittersShapes_path_dist_browser_index_js.js +30 -0
  547. package/plugins_emittersShapes_polygon_dist_browser_EmittersPolygonShapeGenerator_js.js +140 -0
  548. package/plugins_emittersShapes_polygon_dist_browser_index_js.js +30 -0
  549. package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +120 -0
  550. package/plugins_emittersShapes_square_dist_browser_index_js.js +30 -0
  551. package/plugins_emitters_dist_browser_EmitterInstance_js.js +30 -0
  552. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +90 -0
  553. package/plugins_emitters_dist_browser_Emitters_js.js +30 -0
  554. package/plugins_emitters_dist_browser_ShapeManager_js.js +30 -0
  555. package/plugins_emitters_dist_browser_index_js.js +100 -0
  556. package/plugins_exports_image_dist_browser_ExportImageInstance_js.js +30 -0
  557. package/plugins_exports_image_dist_browser_ExportImagePlugin_js.js +30 -0
  558. package/plugins_exports_image_dist_browser_index_js.js +30 -0
  559. package/plugins_exports_json_dist_browser_ExportJSONInstance_js.js +30 -0
  560. package/plugins_exports_json_dist_browser_ExportJSONPlugin_js.js +30 -0
  561. package/plugins_exports_json_dist_browser_index_js.js +30 -0
  562. package/plugins_exports_video_dist_browser_ExportVideoInstance_js.js +30 -0
  563. package/plugins_exports_video_dist_browser_ExportVideoPlugin_js.js +30 -0
  564. package/plugins_exports_video_dist_browser_index_js.js +30 -0
  565. package/plugins_hsvColor_dist_browser_HsvColorManager_js.js +30 -0
  566. package/plugins_hsvColor_dist_browser_index_js.js +30 -0
  567. package/plugins_infection_dist_browser_InfectionInstance_js.js +40 -0
  568. package/plugins_infection_dist_browser_InfectionPlugin_js.js +50 -0
  569. package/plugins_infection_dist_browser_ParticlesInfecter_js.js +30 -0
  570. package/plugins_infection_dist_browser_index_js.js +50 -0
  571. package/plugins_motion_dist_browser_MotionInstance_js.js +30 -0
  572. package/plugins_motion_dist_browser_MotionPlugin_js.js +50 -0
  573. package/plugins_motion_dist_browser_index_js.js +30 -0
  574. package/plugins_poisson_dist_browser_PoissonDiscPlugin_js.js +40 -0
  575. package/plugins_poisson_dist_browser_PoissonInstance_js.js +40 -0
  576. package/plugins_poisson_dist_browser_index_js.js +30 -0
  577. package/plugins_polygonMask_dist_browser_PolygonMaskInstance_js.js +30 -0
  578. package/plugins_polygonMask_dist_browser_PolygonMaskPlugin_js.js +90 -0
  579. package/plugins_polygonMask_dist_browser_index_js.js +70 -0
  580. package/plugins_polygonMask_dist_browser_utils_js.js +30 -0
  581. package/plugins_sounds_dist_browser_SoundsInstance_js.js +30 -0
  582. package/plugins_sounds_dist_browser_SoundsPlugin_js.js +120 -0
  583. package/plugins_sounds_dist_browser_index_js.js +30 -0
  584. package/report.html +3 -3
  585. package/shapes_arrow_dist_browser_ArrowDrawer_js.js +30 -0
  586. package/shapes_arrow_dist_browser_Utils_js.js +30 -0
  587. package/shapes_arrow_dist_browser_index_js.js +30 -0
  588. package/shapes_cards_dist_browser_ClubDrawer_js.js +30 -0
  589. package/shapes_cards_dist_browser_DiamondDrawer_js.js +30 -0
  590. package/shapes_cards_dist_browser_HeartDrawer_js.js +30 -0
  591. package/shapes_cards_dist_browser_SpadeDrawer_js.js +30 -0
  592. package/shapes_cards_dist_browser_Utils_js.js +30 -0
  593. package/shapes_cards_dist_browser_index_js.js +30 -0
  594. package/shapes_circle_dist_browser_CircleDrawer_js.js +30 -0
  595. package/shapes_circle_dist_browser_Utils_js.js +30 -0
  596. package/shapes_circle_dist_browser_index_js.js +30 -0
  597. package/shapes_cog_dist_browser_CogDrawer_js.js +30 -0
  598. package/shapes_cog_dist_browser_Utils_js.js +30 -0
  599. package/shapes_cog_dist_browser_index_js.js +30 -0
  600. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +30 -0
  601. package/shapes_emoji_dist_browser_Utils_js.js +30 -0
  602. package/shapes_emoji_dist_browser_index_js.js +40 -0
  603. package/shapes_heart_dist_browser_HeartDrawer_js.js +30 -0
  604. package/shapes_heart_dist_browser_Utils_js.js +30 -0
  605. package/shapes_heart_dist_browser_index_js.js +30 -0
  606. package/shapes_image_dist_browser_GifUtils_Utils_js.js +50 -0
  607. package/shapes_image_dist_browser_ImageDrawer_js.js +30 -0
  608. package/shapes_image_dist_browser_ImagePreloader_js.js +40 -0
  609. package/shapes_image_dist_browser_index_js.js +40 -0
  610. package/shapes_line_dist_browser_LineDrawer_js.js +30 -0
  611. package/shapes_line_dist_browser_Utils_js.js +30 -0
  612. package/shapes_line_dist_browser_index_js.js +30 -0
  613. package/shapes_path_dist_browser_PathDrawer_js.js +30 -0
  614. package/shapes_path_dist_browser_Utils_js.js +30 -0
  615. package/shapes_path_dist_browser_index_js.js +30 -0
  616. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +40 -0
  617. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +40 -0
  618. package/shapes_polygon_dist_browser_Utils_js.js +30 -0
  619. package/shapes_polygon_dist_browser_index_js.js +30 -0
  620. package/shapes_rounded-polygon_dist_browser_RoundedPolygonDrawer_js.js +30 -0
  621. package/shapes_rounded-polygon_dist_browser_Utils_js.js +30 -0
  622. package/shapes_rounded-polygon_dist_browser_index_js.js +30 -0
  623. package/shapes_rounded-rect_dist_browser_RoundedRectDrawer_js.js +30 -0
  624. package/shapes_rounded-rect_dist_browser_Utils_js.js +30 -0
  625. package/shapes_rounded-rect_dist_browser_index_js.js +30 -0
  626. package/shapes_spiral_dist_browser_SpiralDrawer_js.js +30 -0
  627. package/shapes_spiral_dist_browser_Utils_js.js +30 -0
  628. package/shapes_spiral_dist_browser_index_js.js +30 -0
  629. package/shapes_square_dist_browser_SquareDrawer_js.js +30 -0
  630. package/shapes_square_dist_browser_Utils_js.js +30 -0
  631. package/shapes_square_dist_browser_index_js.js +30 -0
  632. package/shapes_star_dist_browser_StarDrawer_js.js +30 -0
  633. package/shapes_star_dist_browser_Utils_js.js +30 -0
  634. package/shapes_star_dist_browser_index_js.js +30 -0
  635. package/shapes_text_dist_browser_Utils_js.js +30 -0
  636. package/shapes_text_dist_browser_index_js.js +40 -0
  637. package/slim_dist_browser_index_js.js +30 -0
  638. package/tsparticles.all.bundle.js +2073 -21291
  639. package/tsparticles.all.bundle.min.js +1 -1
  640. package/tsparticles.all.bundle.min.js.LICENSE.txt +1 -1
  641. package/tsparticles.all.js +290 -296
  642. package/tsparticles.all.min.js +1 -1
  643. package/tsparticles.all.min.js.LICENSE.txt +1 -1
  644. package/umd/index.js +73 -92
  645. package/updaters_color_dist_browser_ColorUpdater_js.js +30 -0
  646. package/updaters_color_dist_browser_index_js.js +30 -0
  647. package/updaters_destroy_dist_browser_DestroyUpdater_js.js +90 -0
  648. package/updaters_destroy_dist_browser_index_js.js +30 -0
  649. package/updaters_gradient_dist_browser_GradientUpdater_js.js +90 -0
  650. package/updaters_gradient_dist_browser_Utils_js.js +30 -0
  651. package/updaters_gradient_dist_browser_index_js.js +30 -0
  652. package/updaters_life_dist_browser_LifeUpdater_js.js +60 -0
  653. package/updaters_life_dist_browser_Utils_js.js +30 -0
  654. package/updaters_life_dist_browser_index_js.js +30 -0
  655. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +30 -0
  656. package/updaters_opacity_dist_browser_index_js.js +30 -0
  657. package/updaters_orbit_dist_browser_OrbitUpdater_js.js +60 -0
  658. package/updaters_orbit_dist_browser_index_js.js +30 -0
  659. package/updaters_outModes_dist_browser_BounceOutMode_js.js +30 -0
  660. package/updaters_outModes_dist_browser_DestroyOutMode_js.js +30 -0
  661. package/updaters_outModes_dist_browser_NoneOutMode_js.js +30 -0
  662. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +30 -0
  663. package/updaters_outModes_dist_browser_OutOutMode_js.js +30 -0
  664. package/updaters_outModes_dist_browser_Utils_js.js +30 -0
  665. package/updaters_outModes_dist_browser_index_js.js +30 -0
  666. package/updaters_roll_dist_browser_RollUpdater_js.js +50 -0
  667. package/updaters_roll_dist_browser_Utils_js.js +30 -0
  668. package/updaters_roll_dist_browser_index_js.js +30 -0
  669. package/updaters_rotate_dist_browser_RotateUpdater_js.js +50 -0
  670. package/updaters_rotate_dist_browser_index_js.js +30 -0
  671. package/updaters_size_dist_browser_SizeUpdater_js.js +30 -0
  672. package/updaters_size_dist_browser_index_js.js +30 -0
  673. package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +30 -0
  674. package/updaters_strokeColor_dist_browser_index_js.js +30 -0
  675. package/updaters_tilt_dist_browser_TiltUpdater_js.js +50 -0
  676. package/updaters_tilt_dist_browser_index_js.js +30 -0
  677. package/updaters_twinkle_dist_browser_TwinkleUpdater_js.js +50 -0
  678. package/updaters_twinkle_dist_browser_index_js.js +30 -0
  679. package/updaters_wobble_dist_browser_Utils_js.js +30 -0
  680. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +50 -0
  681. package/updaters_wobble_dist_browser_index_js.js +30 -0
  682. package/utils_simplexNoise_dist_browser_index_js.js +80 -0
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["paths_svg_dist_browser_index_js"],{
19
+
20
+ /***/ "../../paths/svg/dist/browser/index.js":
21
+ /*!*********************************************!*\
22
+ !*** ../../paths/svg/dist/browser/index.js ***!
23
+ \*********************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSVGPath: () => (/* binding */ loadSVGPath),\n/* harmony export */ svgPathName: () => (/* binding */ svgPathName)\n/* harmony export */ });\nconst svgPathName = \"svgPathGenerator\";\nasync function loadSVGPath(engine, refresh = true) {\n const {\n SVGPathGenerator\n } = await __webpack_require__.e(/*! import() */ \"paths_svg_dist_browser_SVGPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./SVGPathGenerator.js */ \"../../paths/svg/dist/browser/SVGPathGenerator.js\"));\n await engine.addPathGenerator(svgPathName, new SVGPathGenerator(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/svg/dist/browser/index.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["paths_zigzag_dist_browser_ZigZagPathGenerator_js"],{
19
+
20
+ /***/ "../../paths/zigzag/dist/browser/ZigZagPathGenerator.js":
21
+ /*!**************************************************************!*\
22
+ !*** ../../paths/zigzag/dist/browser/ZigZagPathGenerator.js ***!
23
+ \**************************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ZigZagPathGenerator: () => (/* binding */ ZigZagPathGenerator)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst angularFrequencyFactor = 0.5,\n half = 0.5,\n halfPI = Math.PI * half;\nclass ZigZagPathGenerator {\n constructor() {\n this.options = {\n waveHeight: {\n min: 0,\n max: 3\n },\n waveLength: {\n min: 0,\n max: 5\n }\n };\n }\n generate(particle, delta) {\n if (particle.zigzag === undefined) {\n particle.zigzag = {\n counter: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)(),\n waveHeight: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.waveHeight),\n waveLength: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.waveLength)\n };\n }\n const angularFrequency = angularFrequencyFactor / particle.zigzag.waveLength * delta.factor;\n particle.zigzag.counter += angularFrequency;\n const zigzagAngle = particle.zigzag.waveHeight * Math.sin(particle.zigzag.counter);\n particle.position.x += zigzagAngle * Math.cos(particle.velocity.angle + halfPI);\n particle.position.y += zigzagAngle * Math.sin(particle.velocity.angle + halfPI);\n return Promise.resolve(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin);\n }\n async init(container) {\n const options = container.actualOptions.particles.move.path.options;\n this.options.waveLength = options.waveLength ?? this.options.waveLength;\n this.options.waveHeight = options.waveHeight ?? this.options.waveHeight;\n await Promise.resolve();\n }\n reset() {}\n update() {}\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/zigzag/dist/browser/ZigZagPathGenerator.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["paths_zigzag_dist_browser_index_js"],{
19
+
20
+ /***/ "../../paths/zigzag/dist/browser/index.js":
21
+ /*!************************************************!*\
22
+ !*** ../../paths/zigzag/dist/browser/index.js ***!
23
+ \************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadZigZagPath: () => (/* binding */ loadZigZagPath),\n/* harmony export */ zigZagPathName: () => (/* binding */ zigZagPathName)\n/* harmony export */ });\nconst zigZagPathName = \"zigZagPathGenerator\";\nasync function loadZigZagPath(engine, refresh = true) {\n const {\n ZigZagPathGenerator\n } = await __webpack_require__.e(/*! import() */ \"paths_zigzag_dist_browser_ZigZagPathGenerator_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./ZigZagPathGenerator.js */ \"../../paths/zigzag/dist/browser/ZigZagPathGenerator.js\"));\n await engine.addPathGenerator(zigZagPathName, new ZigZagPathGenerator(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../paths/zigzag/dist/browser/index.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,50 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["pjs_dist_browser_index_js"],{
19
+
20
+ /***/ "../pjs/dist/browser/VincentGarreau/particles.js":
21
+ /*!*******************************************************!*\
22
+ !*** ../pjs/dist/browser/VincentGarreau/particles.js ***!
23
+ \*******************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ initParticlesJS: () => (/* binding */ initParticlesJS)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst defaultMinOpacity = 0,\n defaultMinSize = 0,\n speedFactor = 3,\n defaultPjsOptions = {\n particles: {\n number: {\n value: 400,\n density: {\n enable: true,\n value_area: 800\n }\n },\n color: {\n value: \"#fff\"\n },\n shape: {\n type: \"circle\",\n stroke: {\n width: 0,\n color: \"#ff0000\"\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: \"\",\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 1,\n random: false,\n anim: {\n enable: false,\n speed: 2,\n opacity_min: 0,\n sync: false\n }\n },\n size: {\n value: 20,\n random: false,\n anim: {\n enable: false,\n speed: 20,\n size_min: 0,\n sync: false\n }\n },\n line_linked: {\n enable: true,\n distance: 100,\n color: \"#fff\",\n opacity: 1,\n width: 1\n },\n move: {\n enable: true,\n speed: 2,\n direction: \"none\",\n random: false,\n straight: false,\n out_mode: \"out\",\n bounce: false,\n attract: {\n enable: false,\n rotateX: 3000,\n rotateY: 3000\n }\n }\n },\n interactivity: {\n detect_on: \"canvas\",\n events: {\n onhover: {\n enable: true,\n mode: \"grab\"\n },\n onclick: {\n enable: true,\n mode: \"push\"\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 100,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 200,\n size: 80,\n duration: 0.4,\n opacity: 1,\n speed: 3\n },\n repulse: {\n distance: 200,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n }\n },\n retina_detect: false\n };\nconst initParticlesJS = engine => {\n const particlesJS = (tagId, options) => {\n const fixedOptions = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)(defaultPjsOptions, options);\n return engine.load({\n id: tagId,\n options: {\n fullScreen: {\n enable: false\n },\n detectRetina: fixedOptions.retina_detect,\n smooth: true,\n interactivity: {\n detectsOn: fixedOptions.interactivity.detect_on,\n events: {\n onHover: {\n enable: fixedOptions.interactivity.events.onhover.enable,\n mode: fixedOptions.interactivity.events.onhover.mode\n },\n onClick: {\n enable: fixedOptions.interactivity.events.onclick.enable,\n mode: fixedOptions.interactivity.events.onclick.mode\n },\n resize: {\n enable: fixedOptions.interactivity.events.resize\n }\n },\n modes: {\n grab: {\n distance: fixedOptions.interactivity.modes.grab.distance,\n links: {\n opacity: fixedOptions.interactivity.modes.grab.line_linked.opacity\n }\n },\n bubble: {\n distance: fixedOptions.interactivity.modes.bubble.distance,\n size: fixedOptions.interactivity.modes.bubble.size,\n duration: fixedOptions.interactivity.modes.bubble.duration,\n opacity: fixedOptions.interactivity.modes.bubble.opacity,\n speed: fixedOptions.interactivity.modes.bubble.speed\n },\n repulse: {\n distance: fixedOptions.interactivity.modes.repulse.distance,\n duration: fixedOptions.interactivity.modes.repulse.duration\n },\n push: {\n quantity: fixedOptions.interactivity.modes.push.particles_nb\n },\n remove: {\n quantity: fixedOptions.interactivity.modes.remove.particles_nb\n }\n }\n },\n particles: {\n collisions: {\n enable: fixedOptions.particles.move.bounce\n },\n number: {\n value: fixedOptions.particles.number.value,\n density: {\n enable: fixedOptions.particles.number.density.enable,\n width: fixedOptions.particles.number.density.value_area\n }\n },\n color: {\n value: fixedOptions.particles.color.value\n },\n stroke: {\n width: fixedOptions.particles.shape.stroke.width,\n color: {\n value: fixedOptions.particles.shape.stroke.color\n }\n },\n shape: {\n type: fixedOptions.particles.shape.type,\n options: {\n polygon: {\n sides: fixedOptions.particles.shape.polygon.nb_sides\n },\n image: {\n src: fixedOptions.particles.shape.image.src,\n width: fixedOptions.particles.shape.image.width,\n height: fixedOptions.particles.shape.image.height\n }\n }\n },\n opacity: {\n value: fixedOptions.particles.opacity.random ? {\n min: fixedOptions.particles.opacity.anim.enable ? fixedOptions.particles.opacity.anim.opacity_min : defaultMinOpacity,\n max: fixedOptions.particles.opacity.value\n } : fixedOptions.particles.opacity.value,\n animation: {\n enable: fixedOptions.particles.opacity.anim.enable,\n speed: fixedOptions.particles.opacity.anim.speed,\n sync: fixedOptions.particles.opacity.anim.sync\n }\n },\n size: {\n value: fixedOptions.particles.size.random ? {\n min: fixedOptions.particles.size.anim.enable ? fixedOptions.particles.size.anim.size_min : defaultMinSize,\n max: fixedOptions.particles.size.value\n } : fixedOptions.particles.size.value,\n animation: {\n enable: fixedOptions.particles.size.anim.enable,\n speed: fixedOptions.particles.size.anim.speed,\n sync: fixedOptions.particles.size.anim.sync\n }\n },\n links: {\n enable: fixedOptions.particles.line_linked.enable,\n distance: fixedOptions.particles.line_linked.distance,\n color: fixedOptions.particles.line_linked.color,\n opacity: fixedOptions.particles.line_linked.opacity,\n width: fixedOptions.particles.line_linked.width\n },\n move: {\n enable: fixedOptions.particles.move.enable,\n speed: fixedOptions.particles.move.speed / speedFactor,\n direction: fixedOptions.particles.move.direction,\n random: fixedOptions.particles.move.random,\n straight: fixedOptions.particles.move.straight,\n outModes: fixedOptions.particles.move.out_mode,\n attract: {\n enable: fixedOptions.particles.move.attract.enable,\n rotate: {\n x: fixedOptions.particles.move.attract.rotateX,\n y: fixedOptions.particles.move.attract.rotateY\n }\n }\n }\n }\n }\n });\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n engine.load({\n id: tagId,\n url: pathConfigJson\n }).then(container => {\n if (container) {\n callback(container);\n }\n }).catch(() => {\n callback(undefined);\n });\n };\n particlesJS.setOnClickHandler = callback => {\n engine.setOnClickHandler(callback);\n };\n const pJSDom = engine.dom();\n return {\n particlesJS,\n pJSDom\n };\n};\n\n\n//# sourceURL=webpack://@tsparticles/all/../pjs/dist/browser/VincentGarreau/particles.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../pjs/dist/browser/index.js":
31
+ /*!************************************!*\
32
+ !*** ../pjs/dist/browser/index.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 */ initPjs: () => (/* binding */ initPjs)\n/* harmony export */ });\n/* harmony import */ var _marcbruederlin_Particles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./marcbruederlin/Particles.js */ \"../pjs/dist/browser/marcbruederlin/Particles.js\");\n/* harmony import */ var _VincentGarreau_particles_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VincentGarreau/particles.js */ \"../pjs/dist/browser/VincentGarreau/particles.js\");\n\n\nconst initPjs = engine => {\n const {\n particlesJS,\n pJSDom\n } = (0,_VincentGarreau_particles_js__WEBPACK_IMPORTED_MODULE_1__.initParticlesJS)(engine);\n window.particlesJS = particlesJS;\n window.pJSDom = pJSDom;\n window.Particles = _marcbruederlin_Particles_js__WEBPACK_IMPORTED_MODULE_0__.Particles;\n return {\n particlesJS,\n pJSDom,\n Particles: _marcbruederlin_Particles_js__WEBPACK_IMPORTED_MODULE_0__.Particles\n };\n};\n\n\n//# sourceURL=webpack://@tsparticles/all/../pjs/dist/browser/index.js?");
37
+
38
+ /***/ }),
39
+
40
+ /***/ "../pjs/dist/browser/marcbruederlin/Particles.js":
41
+ /*!*******************************************************!*\
42
+ !*** ../pjs/dist/browser/marcbruederlin/Particles.js ***!
43
+ \*******************************************************/
44
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
45
+
46
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Particles: () => (/* binding */ Particles)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst linksMinDistance = 120,\n moveMinSpeed = 0.5,\n particlesMinCount = 100,\n sizeMinValue = 3;\nclass Particles {\n static init(options) {\n const particles = new Particles(),\n selector = options.selector;\n if (!selector) {\n throw new Error(\"No selector provided\");\n }\n const el = document.querySelector(selector);\n if (!el) {\n throw new Error(\"No element found for selector\");\n }\n void _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.tsParticles.load({\n element: el,\n id: selector.replace(\".\", \"\").replace(\"!\", \"\"),\n options: {\n fullScreen: {\n enable: false\n },\n particles: {\n color: {\n value: options.color ?? \"!000000\"\n },\n links: {\n color: \"random\",\n distance: options.minDistance ?? linksMinDistance,\n enable: options.connectParticles ?? false\n },\n move: {\n enable: true,\n speed: options.speed ?? moveMinSpeed\n },\n number: {\n value: options.maxParticles ?? particlesMinCount\n },\n size: {\n value: {\n min: 1,\n max: options.sizeVariations ?? sizeMinValue\n }\n }\n },\n responsive: options.responsive?.map(responsive => ({\n maxWidth: responsive.breakpoint,\n options: {\n particles: {\n color: {\n value: responsive.options?.color\n },\n links: {\n distance: responsive.options?.minDistance,\n enable: responsive.options?.connectParticles\n },\n number: {\n value: options.maxParticles\n },\n move: {\n enable: true,\n speed: responsive.options?.speed\n },\n size: {\n value: responsive.options?.sizeVariations\n }\n }\n }\n }))\n }\n }).then(container => {\n particles._container = container;\n });\n return particles;\n }\n destroy() {\n const container = this._container;\n container?.destroy();\n }\n pauseAnimation() {\n const container = this._container;\n container?.pause();\n }\n resumeAnimation() {\n const container = this._container;\n container?.play();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../pjs/dist/browser/marcbruederlin/Particles.js?");
47
+
48
+ /***/ })
49
+
50
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["plugins_absorbers_dist_browser_AbsorberInstance_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/AbsorberInstance.js":
21
+ /*!****************************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/AbsorberInstance.js ***!
23
+ \****************************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberInstance: () => (/* binding */ AbsorberInstance)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n\n\nconst squareExp = 2,\n absorbFactor = 0.033,\n minOrbitLength = 0,\n minRadius = 0,\n minMass = 0,\n origin = {\n x: 0,\n y: 0\n },\n minAngle = 0,\n double = 2,\n maxAngle = Math.PI * double,\n minVelocity = 0;\nclass AbsorberInstance {\n constructor(absorbers, container, options, position) {\n this.absorbers = absorbers;\n this.container = container;\n this._calcPosition = () => {\n const exactPosition = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.calcPositionOrRandomFromSizeRanged)({\n size: this.container.canvas.size,\n position: this.options.position\n });\n return _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(exactPosition.x, exactPosition.y);\n };\n this._updateParticlePosition = (particle, v) => {\n if (particle.destroyed) {\n return;\n }\n const container = this.container,\n canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n const newPosition = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.calcPositionOrRandomFromSize)({\n size: canvasSize\n });\n particle.position.setTo(newPosition);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n particle.absorberOrbit.length = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * maxAngle;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height),\n offset = 1,\n randomOffset = 0.1,\n randomFactor = 0.2;\n particle.absorberOrbit.length = minSize * (offset + ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * randomFactor - randomOffset));\n }\n if (particle.absorberOrbitDirection === undefined) {\n particle.absorberOrbitDirection = particle.velocity.x >= minVelocity ? \"clockwise\" : \"counter-clockwise\";\n }\n const orbitRadius = particle.absorberOrbit.length,\n orbitAngle = particle.absorberOrbit.angle,\n orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.setTo(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin);\n const updateFunc = {\n x: orbitDirection === \"clockwise\" ? Math.cos : Math.sin,\n y: orbitDirection === \"clockwise\" ? Math.sin : Math.cos\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle += (particle.retina.moveSpeed ?? minVelocity) * container.retina.pixelRatio / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator * container.retina.reduceFactor;\n } else {\n const addV = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n };\n this.initialPosition = position ? _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(position.x, position.y) : undefined;\n if (options instanceof _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber) {\n this.options = options;\n } else {\n this.options = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n this.options.load(options);\n }\n this.dragging = false;\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeValue)(this.options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * this.options.size.density * container.retina.reduceFactor;\n const limit = this.options.size.limit;\n this.limit = {\n radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: limit.mass\n };\n this.color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(this.options.color) ?? {\n b: 0,\n g: 0,\n r: 0\n };\n this.position = this.initialPosition?.copy() ?? this._calcPosition();\n }\n attract(particle) {\n const container = this.container,\n options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n } else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition(),\n {\n dx,\n dy,\n distance\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(this.position, pos),\n v = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(dx, dy);\n v.length = this.mass / Math.pow(distance, squareExp) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * absorbFactor * container.retina.pixelRatio;\n if (this.size > particle.getRadius() && distance < this.size - particle.getRadius() || particle.absorberOrbit !== undefined && particle.absorberOrbit.length < minOrbitLength) {\n if (options.destroy) {\n particle.destroy();\n } else {\n particle.needsNewPosition = true;\n this._updateParticlePosition(particle, v);\n }\n } else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this._updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= minRadius || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= minMass || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n } else {\n this._updateParticlePosition(particle, v);\n }\n }\n async draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(origin.x, origin.y, this.size, minAngle, maxAngle, false);\n context.closePath();\n context.fillStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(this.color, this.opacity);\n context.fill();\n await Promise.resolve();\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position = initialPosition && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isPointInside)(initialPosition, this.container.canvas.size, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.origin) ? initialPosition : this._calcPosition();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/AbsorberInstance.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,60 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["plugins_absorbers_dist_browser_AbsorbersPlugin_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/AbsorbersPlugin.js":
21
+ /*!***************************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/AbsorbersPlugin.js ***!
23
+ \***************************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorbersPlugin: () => (/* binding */ AbsorbersPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js\");\n\n\nclass AbsorbersPlugin {\n constructor() {\n this.id = \"absorbers\";\n }\n async getPlugin(container) {\n const {\n Absorbers\n } = await __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_Absorbers_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Absorbers.js */ \"../../plugins/absorbers/dist/browser/Absorbers.js\"));\n return new Absorbers(container);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n if (source?.absorbers) {\n options.absorbers = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(source.absorbers, absorber => {\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n options.interactivity.modes.absorbers = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(source?.interactivity?.modes?.absorbers, absorber => {\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_1__.Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n needsPlugin(options) {\n if (!options) {\n return false;\n }\n const absorbers = options.absorbers;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(absorbers)) {\n return !!absorbers.length;\n } else if (absorbers) {\n return true;\n } else if (options.interactivity?.events?.onClick?.mode && (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isInArray)(\"absorber\", options.interactivity.events.onClick.mode)) {\n return true;\n }\n return false;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/AbsorbersPlugin.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js":
31
+ /*!************************************************************************!*\
32
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js ***!
33
+ \************************************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Absorber: () => (/* binding */ Absorber)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberSize.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js\");\n\n\nclass Absorber {\n constructor() {\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new _AbsorberSize_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.setRangeValue)(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/Options/Classes/Absorber.js?");
37
+
38
+ /***/ }),
39
+
40
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js":
41
+ /*!****************************************************************************!*\
42
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js ***!
43
+ \****************************************************************************/
44
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
45
+
46
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSize: () => (/* binding */ AbsorberSize)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AbsorberSizeLimit.js */ \"../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js\");\n\n\nclass AbsorberSize extends _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new _AbsorberSizeLimit_js__WEBPACK_IMPORTED_MODULE_1__.AbsorberSizeLimit();\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(data.limit)) {\n this.limit.radius = data.limit;\n } else {\n this.limit.load(data.limit);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSize.js?");
47
+
48
+ /***/ }),
49
+
50
+ /***/ "../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js":
51
+ /*!*********************************************************************************!*\
52
+ !*** ../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js ***!
53
+ \*********************************************************************************/
54
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55
+
56
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorberSizeLimit: () => (/* binding */ AbsorberSizeLimit)\n/* harmony export */ });\nclass AbsorberSizeLimit {\n constructor() {\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/Options/Classes/AbsorberSizeLimit.js?");
57
+
58
+ /***/ })
59
+
60
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["plugins_absorbers_dist_browser_Absorbers_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/Absorbers.js":
21
+ /*!*********************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/Absorbers.js ***!
23
+ \*********************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Absorbers: () => (/* binding */ Absorbers)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst defaultIndex = 0;\nclass Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n container.getAbsorber = idxOrName => idxOrName === undefined || (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(idxOrName) ? this.array[idxOrName ?? defaultIndex] : this.array.find(t => t.name === idxOrName);\n container.addAbsorber = async (options, position) => this.addAbsorber(options, position);\n }\n async addAbsorber(options, position) {\n const {\n AbsorberInstance\n } = await __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorberInstance_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorberInstance.js */ \"../../plugins/absorbers/dist/browser/AbsorberInstance.js\")),\n absorber = new AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n async draw(context) {\n for (const absorber of this.array) {\n await absorber.draw(context);\n }\n }\n handleClickMode(mode) {\n const absorberOptions = this.absorbers,\n modeAbsorbers = this.interactivityAbsorbers;\n if (mode === \"absorber\") {\n const absorbersModeOptions = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(modeAbsorbers),\n absorbersOptions = absorbersModeOptions ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(absorberOptions),\n aPosition = this.container.interactivity.mouse.clickPosition;\n void this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n async init() {\n this.absorbers = this.container.actualOptions.absorbers;\n this.interactivityAbsorbers = this.container.actualOptions.interactivity.modes.absorbers;\n const promises = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(this.absorbers, async absorber => {\n await this.addAbsorber(absorber);\n });\n if (promises instanceof Array) {\n await Promise.all(promises);\n } else {\n await promises;\n }\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber),\n deleteCount = 1;\n if (index >= defaultIndex) {\n this.array.splice(index, deleteCount);\n }\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n stop() {\n this.array = [];\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/Absorbers.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,50 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["plugins_absorbers_dist_browser_index_js"],{
19
+
20
+ /***/ "../../plugins/absorbers/dist/browser/AbsorberContainer.js":
21
+ /*!*****************************************************************!*\
22
+ !*** ../../plugins/absorbers/dist/browser/AbsorberContainer.js ***!
23
+ \*****************************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/AbsorberContainer.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js":
31
+ /*!***********************************************************************!*\
32
+ !*** ../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js ***!
33
+ \***********************************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js?");
37
+
38
+ /***/ }),
39
+
40
+ /***/ "../../plugins/absorbers/dist/browser/index.js":
41
+ /*!*****************************************************!*\
42
+ !*** ../../plugins/absorbers/dist/browser/index.js ***!
43
+ \*****************************************************/
44
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
45
+
46
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\n/* harmony import */ var _AbsorberContainer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AbsorberContainer.js */ \"../../plugins/absorbers/dist/browser/AbsorberContainer.js\");\n/* harmony import */ var _Enums_AbsorberClickMode_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enums/AbsorberClickMode.js */ \"../../plugins/absorbers/dist/browser/Enums/AbsorberClickMode.js\");\nasync function loadAbsorbersPlugin(engine, refresh = true) {\n const {\n AbsorbersPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_absorbers_dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"../../plugins/absorbers/dist/browser/AbsorbersPlugin.js\"));\n await engine.addPlugin(new AbsorbersPlugin(), refresh);\n}\n\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/absorbers/dist/browser/index.js?");
47
+
48
+ /***/ })
49
+
50
+ }]);
@@ -0,0 +1,40 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["plugins_canvasMask_dist_browser_CanvasMaskInstance_js"],{
19
+
20
+ /***/ "../../plugins/canvasMask/dist/browser/CanvasMaskInstance.js":
21
+ /*!*******************************************************************!*\
22
+ !*** ../../plugins/canvasMask/dist/browser/CanvasMaskInstance.js ***!
23
+ \*******************************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskInstance: () => (/* binding */ CanvasMaskInstance)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ \"../../plugins/canvasMask/dist/browser/utils.js\");\n\nclass CanvasMaskInstance {\n constructor(container) {\n this._container = container;\n }\n async init() {\n const container = this._container,\n options = container.actualOptions.canvasMask;\n if (!options?.enable) {\n return;\n }\n let pixelData = {\n pixels: [],\n height: 0,\n width: 0\n };\n const offset = options.pixels.offset;\n if (options.image) {\n const url = options.image.src;\n if (!url) {\n return;\n }\n pixelData = await (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getImageData)(url, offset);\n } else if (options.text) {\n const textOptions = options.text;\n const data = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getTextData)(textOptions, offset);\n if (!data) {\n return;\n }\n pixelData = data;\n } else if (options.element ?? options.selector) {\n const canvas = options.element ?? (options.selector && document.querySelector(options.selector));\n if (!canvas) {\n return;\n }\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n pixelData = (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.getCanvasImageData)(context, canvas, offset);\n }\n await (0,_utils_js__WEBPACK_IMPORTED_MODULE_0__.addParticlesFromCanvasPixels)(container, pixelData, options.position, options.scale, options.override, options.pixels.filter);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/CanvasMaskInstance.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/canvasMask/dist/browser/utils.js":
31
+ /*!******************************************************!*\
32
+ !*** ../../plugins/canvasMask/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 */ addParticlesFromCanvasPixels: () => (/* binding */ addParticlesFromCanvasPixels),\n/* harmony export */ getCanvasImageData: () => (/* binding */ getCanvasImageData),\n/* harmony export */ getImageData: () => (/* binding */ getImageData),\n/* harmony export */ getTextData: () => (/* binding */ getTextData)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst half = 0.5,\n origin = {\n x: 0,\n y: 0\n },\n defaultWidth = 0;\nasync function addParticlesFromCanvasPixels(container, data, position, scale, override, filter) {\n const {\n height,\n width\n } = data,\n numPixels = height * width,\n indexArray = shuffle(range(numPixels)),\n maxParticles = Math.min(numPixels, container.actualOptions.particles.number.value),\n canvasSize = container.canvas.size;\n let selectedPixels = 0;\n const positionOffset = {\n x: canvasSize.width * position.x / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - width * scale * half,\n y: canvasSize.height * position.y / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - height * scale * half\n };\n while (selectedPixels < maxParticles && indexArray.length) {\n const defaultIndex = 0,\n nextIndex = indexArray.pop() ?? defaultIndex,\n pixelPos = {\n x: nextIndex % width,\n y: Math.floor(nextIndex / width)\n },\n pixel = data.pixels[pixelPos.y][pixelPos.x],\n shouldCreateParticle = filter(pixel);\n if (!shouldCreateParticle) {\n continue;\n }\n const pos = {\n x: pixelPos.x * scale + positionOffset.x,\n y: pixelPos.y * scale + positionOffset.y\n },\n pOptions = {};\n if (override.color) {\n pOptions.color = {\n value: pixel\n };\n }\n if (override.opacity) {\n pOptions.opacity = {\n value: pixel.a\n };\n }\n await container.particles.addParticle(pos, pOptions);\n selectedPixels++;\n }\n}\nfunction getCanvasImageData(ctx, size, offset, clear = true) {\n const imageData = ctx.getImageData(origin.x, origin.y, size.width, size.height).data;\n if (clear) {\n ctx.clearRect(origin.x, origin.y, size.width, size.height);\n }\n const pixels = [];\n for (let i = 0; i < imageData.length; i += offset) {\n const idx = i / offset,\n pos = {\n x: idx % size.width,\n y: Math.floor(idx / size.width)\n };\n if (!pixels[pos.y]) {\n pixels[pos.y] = [];\n }\n const indexesOffset = {\n r: 0,\n g: 1,\n b: 2,\n a: 3\n },\n alphaFactor = 255;\n pixels[pos.y][pos.x] = {\n r: imageData[i + indexesOffset.r],\n g: imageData[i + indexesOffset.g],\n b: imageData[i + indexesOffset.b],\n a: imageData[i + indexesOffset.a] / alphaFactor\n };\n }\n return {\n pixels,\n width: Math.min(...pixels.map(row => row.length)),\n height: pixels.length\n };\n}\nfunction getImageData(src, offset) {\n const image = new Image();\n image.crossOrigin = \"Anonymous\";\n const p = new Promise((resolve, reject) => {\n image.onerror = reject;\n image.onload = () => {\n const canvas = document.createElement(\"canvas\");\n canvas.width = image.width;\n canvas.height = image.height;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return reject(new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} Could not get canvas context`));\n }\n context.drawImage(image, origin.x, origin.y, image.width, image.height, origin.x, origin.y, canvas.width, canvas.height);\n resolve(getCanvasImageData(context, canvas, offset));\n };\n });\n image.src = src;\n return p;\n}\nfunction getTextData(textOptions, offset) {\n const canvas = document.createElement(\"canvas\"),\n context = canvas.getContext(\"2d\"),\n {\n font,\n text,\n lines: linesOptions,\n color\n } = textOptions;\n if (!text || !context) {\n return;\n }\n const lines = text.split(linesOptions.separator),\n fontSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNumber)(font.size) ? `${font.size}px` : font.size,\n linesData = [];\n let maxWidth = 0,\n totalHeight = 0;\n for (const line of lines) {\n context.font = `${font.style ?? \"\"} ${font.variant ?? \"\"} ${font.weight ?? \"\"} ${fontSize} ${font.family}`;\n const measure = context.measureText(line),\n lineData = {\n measure,\n text: line,\n height: measure.actualBoundingBoxAscent + measure.actualBoundingBoxDescent,\n width: measure.width\n };\n maxWidth = Math.max(maxWidth || defaultWidth, lineData.width);\n totalHeight += lineData.height + linesOptions.spacing;\n linesData.push(lineData);\n }\n canvas.width = maxWidth;\n canvas.height = totalHeight;\n let currentHeight = 0;\n for (const line of linesData) {\n context.font = `${font.style ?? \"\"} ${font.variant ?? \"\"} ${font.weight ?? \"\"} ${fontSize} ${font.family}`;\n context.fillStyle = color;\n context.fillText(line.text, origin.x, currentHeight + line.measure.actualBoundingBoxAscent);\n currentHeight += line.height + linesOptions.spacing;\n }\n return getCanvasImageData(context, canvas, offset);\n}\nfunction shuffle(array) {\n const lengthOffset = 1,\n minIndex = 0;\n for (let currentIndex = array.length - lengthOffset; currentIndex >= minIndex; currentIndex--) {\n const randomIndex = Math.floor((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * currentIndex);\n [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];\n }\n return array;\n}\nconst range = n => [...Array(n).keys()];\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/utils.js?");
37
+
38
+ /***/ })
39
+
40
+ }]);
@@ -0,0 +1,100 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["plugins_canvasMask_dist_browser_CanvasMaskPlugin_js"],{
19
+
20
+ /***/ "../../plugins/canvasMask/dist/browser/CanvasMaskPlugin.js":
21
+ /*!*****************************************************************!*\
22
+ !*** ../../plugins/canvasMask/dist/browser/CanvasMaskPlugin.js ***!
23
+ \*****************************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskPlugin: () => (/* binding */ CanvasMaskPlugin)\n/* harmony export */ });\n/* harmony import */ var _Options_Classes_CanvasMask_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Options/Classes/CanvasMask.js */ \"../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMask.js\");\n\nclass CanvasMaskPlugin {\n constructor() {\n this.id = \"canvasMask\";\n }\n async getPlugin(container) {\n const {\n CanvasMaskInstance\n } = await __webpack_require__.e(/*! import() */ \"plugins_canvasMask_dist_browser_CanvasMaskInstance_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./CanvasMaskInstance.js */ \"../../plugins/canvasMask/dist/browser/CanvasMaskInstance.js\"));\n return new CanvasMaskInstance(container);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n let canvasMaskOptions = options.canvasMask;\n if (canvasMaskOptions?.load === undefined) {\n options.canvasMask = canvasMaskOptions = new _Options_Classes_CanvasMask_js__WEBPACK_IMPORTED_MODULE_0__.CanvasMask();\n }\n canvasMaskOptions.load(source?.canvasMask);\n }\n needsPlugin(options) {\n return options?.canvasMask?.enable ?? false;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/CanvasMaskPlugin.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMask.js":
31
+ /*!***************************************************************************!*\
32
+ !*** ../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMask.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 */ CanvasMask: () => (/* binding */ CanvasMask)\n/* harmony export */ });\n/* harmony import */ var _CanvasMaskOverride_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanvasMaskOverride.js */ \"../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskOverride.js\");\n/* harmony import */ var _CanvasMaskPixels_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CanvasMaskPixels.js */ \"../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskPixels.js\");\n/* harmony import */ var _ImageMask_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ImageMask.js */ \"../../plugins/canvasMask/dist/browser/Options/Classes/ImageMask.js\");\n/* harmony import */ var _TextMask_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TextMask.js */ \"../../plugins/canvasMask/dist/browser/Options/Classes/TextMask.js\");\n\n\n\n\nclass CanvasMask {\n constructor() {\n this.enable = false;\n this.override = new _CanvasMaskOverride_js__WEBPACK_IMPORTED_MODULE_0__.CanvasMaskOverride();\n this.pixels = new _CanvasMaskPixels_js__WEBPACK_IMPORTED_MODULE_1__.CanvasMaskPixels();\n this.position = {\n x: 50,\n y: 50\n };\n this.scale = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.element !== undefined && data.element instanceof HTMLCanvasElement) {\n this.element = data.element;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.image) {\n if (!this.image) {\n this.image = new _ImageMask_js__WEBPACK_IMPORTED_MODULE_2__.ImageMask();\n }\n this.image.load(data.image);\n }\n this.pixels.load(data.pixels);\n if (data.position) {\n this.position = {\n x: data.position.x ?? this.position.x,\n y: data.position.y ?? this.position.y\n };\n }\n this.override.load(data.override);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.selector !== undefined) {\n this.selector = data.selector;\n }\n if (data.text) {\n if (!this.text) {\n this.text = new _TextMask_js__WEBPACK_IMPORTED_MODULE_3__.TextMask();\n }\n this.text.load(data.text);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMask.js?");
37
+
38
+ /***/ }),
39
+
40
+ /***/ "../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskOverride.js":
41
+ /*!***********************************************************************************!*\
42
+ !*** ../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskOverride.js ***!
43
+ \***********************************************************************************/
44
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
45
+
46
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskOverride: () => (/* binding */ CanvasMaskOverride)\n/* harmony export */ });\nclass CanvasMaskOverride {\n constructor() {\n this.color = true;\n this.opacity = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = data.color;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskOverride.js?");
47
+
48
+ /***/ }),
49
+
50
+ /***/ "../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskPixels.js":
51
+ /*!*********************************************************************************!*\
52
+ !*** ../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskPixels.js ***!
53
+ \*********************************************************************************/
54
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
55
+
56
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskPixels: () => (/* binding */ CanvasMaskPixels)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst minAlpha = 0;\nclass CanvasMaskPixels {\n constructor() {\n this.filter = pixel => pixel.a > minAlpha;\n this.offset = 4;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.filter !== undefined) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(data.filter)) {\n if (Object.hasOwn(window, data.filter)) {\n const filter = window[data.filter];\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isFunction)(filter)) {\n this.filter = filter;\n }\n }\n } else {\n this.filter = data.filter;\n }\n }\n if (data.offset !== undefined) {\n this.offset = data.offset;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/Options/Classes/CanvasMaskPixels.js?");
57
+
58
+ /***/ }),
59
+
60
+ /***/ "../../plugins/canvasMask/dist/browser/Options/Classes/FontTextMask.js":
61
+ /*!*****************************************************************************!*\
62
+ !*** ../../plugins/canvasMask/dist/browser/Options/Classes/FontTextMask.js ***!
63
+ \*****************************************************************************/
64
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65
+
66
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FontTextMask: () => (/* binding */ FontTextMask)\n/* harmony export */ });\nclass FontTextMask {\n constructor() {\n this.family = \"sans-serif\";\n this.size = 100;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.family !== undefined) {\n this.family = data.family;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.style !== undefined) {\n this.style = data.style;\n }\n if (data.variant !== undefined) {\n this.variant = data.variant;\n }\n if (data.weight !== undefined) {\n this.weight = data.weight;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/Options/Classes/FontTextMask.js?");
67
+
68
+ /***/ }),
69
+
70
+ /***/ "../../plugins/canvasMask/dist/browser/Options/Classes/ImageMask.js":
71
+ /*!**************************************************************************!*\
72
+ !*** ../../plugins/canvasMask/dist/browser/Options/Classes/ImageMask.js ***!
73
+ \**************************************************************************/
74
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
75
+
76
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ImageMask: () => (/* binding */ ImageMask)\n/* harmony export */ });\nclass ImageMask {\n constructor() {\n this.src = \"\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.src !== undefined) {\n this.src = data.src;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/Options/Classes/ImageMask.js?");
77
+
78
+ /***/ }),
79
+
80
+ /***/ "../../plugins/canvasMask/dist/browser/Options/Classes/TextMask.js":
81
+ /*!*************************************************************************!*\
82
+ !*** ../../plugins/canvasMask/dist/browser/Options/Classes/TextMask.js ***!
83
+ \*************************************************************************/
84
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
85
+
86
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TextMask: () => (/* binding */ TextMask)\n/* harmony export */ });\n/* harmony import */ var _FontTextMask_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FontTextMask.js */ \"../../plugins/canvasMask/dist/browser/Options/Classes/FontTextMask.js\");\n/* harmony import */ var _TextMaskLine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TextMaskLine.js */ \"../../plugins/canvasMask/dist/browser/Options/Classes/TextMaskLine.js\");\n\n\nclass TextMask {\n constructor() {\n this.color = \"#000000\";\n this.font = new _FontTextMask_js__WEBPACK_IMPORTED_MODULE_0__.FontTextMask();\n this.lines = new _TextMaskLine_js__WEBPACK_IMPORTED_MODULE_1__.TextMaskLine();\n this.text = \"\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = data.color;\n }\n this.font.load(data.font);\n this.lines.load(data.lines);\n if (data.text !== undefined) {\n this.text = data.text;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/Options/Classes/TextMask.js?");
87
+
88
+ /***/ }),
89
+
90
+ /***/ "../../plugins/canvasMask/dist/browser/Options/Classes/TextMaskLine.js":
91
+ /*!*****************************************************************************!*\
92
+ !*** ../../plugins/canvasMask/dist/browser/Options/Classes/TextMaskLine.js ***!
93
+ \*****************************************************************************/
94
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
95
+
96
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TextMaskLine: () => (/* binding */ TextMaskLine)\n/* harmony export */ });\nclass TextMaskLine {\n constructor() {\n this.separator = \"\\n\";\n this.spacing = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.separator !== undefined) {\n this.separator = data.separator;\n }\n if (data.spacing !== undefined) {\n this.spacing = data.spacing;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/Options/Classes/TextMaskLine.js?");
97
+
98
+ /***/ })
99
+
100
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_all"] = this["webpackChunk_tsparticles_all"] || []).push([["plugins_canvasMask_dist_browser_index_js"],{
19
+
20
+ /***/ "../../plugins/canvasMask/dist/browser/index.js":
21
+ /*!******************************************************!*\
22
+ !*** ../../plugins/canvasMask/dist/browser/index.js ***!
23
+ \******************************************************/
24
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
25
+
26
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCanvasMaskPlugin: () => (/* binding */ loadCanvasMaskPlugin)\n/* harmony export */ });\nasync function loadCanvasMaskPlugin(engine, refresh = true) {\n const {\n CanvasMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_canvasMask_dist_browser_CanvasMaskPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./CanvasMaskPlugin.js */ \"../../plugins/canvasMask/dist/browser/CanvasMaskPlugin.js\"));\n await engine.addPlugin(new CanvasMaskPlugin(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/canvasMask/dist/browser/index.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);