@tsparticles/all 3.1.0 → 3.2.1

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.1
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_motion_dist_browser_index_js"],{
19
+
20
+ /***/ "../../plugins/motion/dist/browser/index.js":
21
+ /*!**************************************************!*\
22
+ !*** ../../plugins/motion/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 */ loadMotionPlugin: () => (/* binding */ loadMotionPlugin)\n/* harmony export */ });\nasync function loadMotionPlugin(engine, refresh = true) {\n const {\n MotionPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_motion_dist_browser_MotionPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./MotionPlugin.js */ \"../../plugins/motion/dist/browser/MotionPlugin.js\"));\n await engine.addPlugin(new MotionPlugin(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/motion/dist/browser/index.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -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.1
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_poisson_dist_browser_PoissonDiscPlugin_js"],{
19
+
20
+ /***/ "../../plugins/poisson/dist/browser/Options/Classes/Poisson.js":
21
+ /*!*********************************************************************!*\
22
+ !*** ../../plugins/poisson/dist/browser/Options/Classes/Poisson.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 */ Poisson: () => (/* binding */ Poisson)\n/* harmony export */ });\nclass Poisson {\n constructor() {\n this.enable = false;\n this.dimensions = 2;\n this.radius = 0;\n this.retries = 30;\n this.steps = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.dimensions !== undefined) {\n this.dimensions = data.dimensions;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/poisson/dist/browser/Options/Classes/Poisson.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/poisson/dist/browser/PoissonDiscPlugin.js":
31
+ /*!***************************************************************!*\
32
+ !*** ../../plugins/poisson/dist/browser/PoissonDiscPlugin.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 */ PoissonDiscPlugin: () => (/* binding */ PoissonDiscPlugin)\n/* harmony export */ });\n/* harmony import */ var _Options_Classes_Poisson_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Options/Classes/Poisson.js */ \"../../plugins/poisson/dist/browser/Options/Classes/Poisson.js\");\n\nclass PoissonDiscPlugin {\n constructor(engine) {\n this.id = \"poisson\";\n this._engine = engine;\n }\n async getPlugin(container) {\n const {\n PoissonInstance\n } = await __webpack_require__.e(/*! import() */ \"plugins_poisson_dist_browser_PoissonInstance_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./PoissonInstance.js */ \"../../plugins/poisson/dist/browser/PoissonInstance.js\"));\n return new PoissonInstance(container, this._engine);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n let poissonOptions = options.poisson;\n if (poissonOptions?.load === undefined) {\n options.poisson = poissonOptions = new _Options_Classes_Poisson_js__WEBPACK_IMPORTED_MODULE_0__.Poisson();\n }\n poissonOptions.load(source?.poisson);\n }\n needsPlugin(options) {\n return options?.poisson?.enable ?? false;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/poisson/dist/browser/PoissonDiscPlugin.js?");
37
+
38
+ /***/ })
39
+
40
+ }]);
@@ -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.1
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_poisson_dist_browser_PoissonInstance_js"],{
19
+
20
+ /***/ "../../plugins/poisson/dist/browser/PoissonDisc.js":
21
+ /*!*********************************************************!*\
22
+ !*** ../../plugins/poisson/dist/browser/PoissonDisc.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 */ PoissonDisc: () => (/* binding */ PoissonDisc)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst double = 2,\n doublePI = Math.PI * double;\nclass PoissonDisc {\n constructor(size, radius, retries, dimensions, firstPoint) {\n this.size = {\n ...size\n };\n this.radius = radius;\n this.retries = retries;\n this.dimensions = dimensions;\n this.cellSize = Math.floor(this.radius / Math.sqrt(this.dimensions));\n this.cols = Math.floor(this.size.width / this.cellSize);\n this.rows = Math.floor(this.size.height / this.cellSize);\n this.points = [];\n this.active = [];\n this.grid = [];\n this.firstPoint = firstPoint ? {\n ...firstPoint\n } : undefined;\n this.reset();\n }\n addPoint(inputPoint) {\n const point = {\n position: {\n ...inputPoint\n },\n gridPosition: {\n x: Math.floor(inputPoint.x / this.cellSize),\n y: Math.floor(inputPoint.y / this.cellSize)\n }\n },\n pointIndex = this.points.length;\n this.points.push(point);\n this.grid[point.gridPosition.y][point.gridPosition.x] = pointIndex;\n this.active.push(pointIndex);\n }\n getRandom(min, max) {\n return Math.floor((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * (max - min)) + min;\n }\n initialiseGrid() {\n for (let y = 0; y <= this.rows; y++) {\n this.grid[y] = [];\n for (let x = 0; x <= this.cols; x++) {\n this.grid[y][x] = -1;\n }\n }\n }\n reset() {\n this.points = [];\n this.active = [];\n this.grid = [];\n this.initialiseGrid();\n if (this.firstPoint) {\n this.addPoint(this.firstPoint);\n } else {\n const minCoordinate = 0;\n this.addPoint({\n x: this.getRandom(minCoordinate, this.size.width),\n y: this.getRandom(minCoordinate, this.size.height)\n });\n }\n }\n async run() {\n this.reset();\n const minCount = 0,\n step = 1;\n while (this.active.length > minCount) {\n await this.steps(step);\n }\n }\n async steps(steps) {\n const minCount = 0;\n for (let i = 0; i < steps; i++) {\n if (this.active.length <= minCount) {\n continue;\n }\n await this._step();\n }\n }\n _getNewPoint(currentPoint, tries) {\n const minCoordinate = 0,\n gridMinValue = 0,\n maxNeighbourIndex = 1,\n newAngle = tries * (doublePI / this.retries),\n newDist = this.getRandom(this.radius, this.radius * double),\n offset = {\n x: Math.cos(newAngle) * newDist,\n y: Math.sin(newAngle) * newDist\n },\n newPoint = {\n x: Math.floor(currentPoint.position.x + offset.x),\n y: Math.floor(currentPoint.position.y + offset.y)\n },\n newGridCoords = {\n x: Math.floor(newPoint.x / this.cellSize),\n y: Math.floor(newPoint.y / this.cellSize)\n };\n if (newPoint.x > minCoordinate && newPoint.x < this.size.width && newPoint.y > minCoordinate && newPoint.y < this.size.height) {\n if (this.grid[newGridCoords.y][newGridCoords.x] < gridMinValue) {\n for (let i = -1; i <= maxNeighbourIndex; i++) {\n for (let j = -1; j <= maxNeighbourIndex; j++) {\n const neighbourGrid = {\n x: newGridCoords.x + j,\n y: newGridCoords.y + i\n };\n if (neighbourGrid.x >= minCoordinate && neighbourGrid.y >= minCoordinate && neighbourGrid.x < this.cols && neighbourGrid.y < this.rows && (neighbourGrid.x !== newGridCoords.x || neighbourGrid.y !== newGridCoords.y)) {\n if (this.grid[neighbourGrid.y][neighbourGrid.x] >= gridMinValue) {\n const neighbourIndex = this.grid[neighbourGrid.y][neighbourGrid.x],\n neighbour = this.points[neighbourIndex],\n dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(newPoint, neighbour.position);\n if (dist < this.radius) {\n return;\n }\n }\n }\n }\n }\n } else {\n return;\n }\n } else {\n return;\n }\n return newPoint;\n }\n async _step() {\n const minCount = 0,\n randomActive = this.getRandom(minCount, this.active.length);\n return new Promise(resolve => {\n let foundNewPoint = false;\n for (let tries = 0; tries < this.retries; tries++) {\n const newPoint = this._getNewPoint(this.points[this.active[randomActive]], tries);\n if (newPoint) {\n foundNewPoint = true;\n this.addPoint(newPoint);\n break;\n }\n }\n if (!foundNewPoint) {\n const deleteCount = 1;\n this.active.splice(randomActive, deleteCount);\n }\n resolve();\n });\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/poisson/dist/browser/PoissonDisc.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/poisson/dist/browser/PoissonInstance.js":
31
+ /*!*************************************************************!*\
32
+ !*** ../../plugins/poisson/dist/browser/PoissonInstance.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 */ PoissonInstance: () => (/* binding */ PoissonInstance)\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 _PoissonDisc_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PoissonDisc.js */ \"../../plugins/poisson/dist/browser/PoissonDisc.js\");\n\n\nclass PoissonInstance {\n constructor(container, engine) {\n this._container = container;\n this._engine = engine;\n this._currentIndex = 0;\n }\n async init() {\n await this._initData();\n }\n particlePosition(position) {\n const container = this._container,\n options = container.actualOptions.poisson;\n if (!this.poissonDisc || !(options?.enable ?? false) || this._currentIndex >= this.poissonDisc.points.length) {\n return;\n }\n return position ?? this.poissonDisc?.points[this._currentIndex++]?.position;\n }\n resize() {\n const container = this._container,\n options = container.actualOptions.poisson;\n if (!(options?.enable ?? false)) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n const timeout = 250;\n this.redrawTimeout = window.setTimeout(() => {\n void (async () => {\n await this._initData();\n await container.particles.redraw();\n })();\n }, timeout);\n }\n stop() {\n delete this.poissonDisc;\n }\n async _initData() {\n const container = this._container,\n poissonOptions = container.actualOptions.poisson,\n particlesOptions = container.actualOptions.particles,\n canvasSize = container.canvas.size,\n pixelRatio = container.retina.pixelRatio;\n if (!poissonOptions?.enable) {\n return;\n }\n this._currentIndex = 0;\n this.poissonDisc = new _PoissonDisc_js__WEBPACK_IMPORTED_MODULE_1__.PoissonDisc(canvasSize, poissonOptions.radius ? poissonOptions.radius * pixelRatio : Math.max((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particlesOptions.size.value) * pixelRatio, Math.sqrt(canvasSize.width * canvasSize.height / particlesOptions.number.value)), poissonOptions.retries, poissonOptions.dimensions);\n const noSteps = 0;\n if (poissonOptions.steps > noSteps) {\n await this.poissonDisc.steps(poissonOptions.steps);\n } else {\n await this.poissonDisc.run();\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/poisson/dist/browser/PoissonInstance.js?");
37
+
38
+ /***/ })
39
+
40
+ }]);
@@ -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.1
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_poisson_dist_browser_index_js"],{
19
+
20
+ /***/ "../../plugins/poisson/dist/browser/index.js":
21
+ /*!***************************************************!*\
22
+ !*** ../../plugins/poisson/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 */ loadPoissonDiscPlugin: () => (/* binding */ loadPoissonDiscPlugin)\n/* harmony export */ });\nasync function loadPoissonDiscPlugin(engine, refresh = true) {\n const {\n PoissonDiscPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_poisson_dist_browser_PoissonDiscPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./PoissonDiscPlugin.js */ \"../../plugins/poisson/dist/browser/PoissonDiscPlugin.js\"));\n await engine.addPlugin(new PoissonDiscPlugin(engine), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/poisson/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.1
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_polygonMask_dist_browser_PolygonMaskInstance_js"],{
19
+
20
+ /***/ "../../plugins/polygonMask/dist/browser/PolygonMaskInstance.js":
21
+ /*!*********************************************************************!*\
22
+ !*** ../../plugins/polygonMask/dist/browser/PolygonMaskInstance.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 */ PolygonMaskInstance: () => (/* binding */ PolygonMaskInstance)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst noPolygonDataLoaded = `${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} No polygon data loaded.`,\n noPolygonFound = `${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} No polygon found, you need to specify SVG url in config.`,\n origin = {\n x: 0,\n y: 0\n },\n half = 0.5,\n double = 2;\nclass PolygonMaskInstance {\n constructor(container, engine) {\n this._checkInsidePolygon = position => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options?.enable || options.type === \"none\" || options.type === \"inline\") {\n return true;\n }\n if (!this.raw) {\n throw new Error(noPolygonFound);\n }\n const canvasSize = container.canvas.size,\n x = position?.x ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.width,\n y = position?.y ?? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.height,\n indexOffset = 1;\n let inside = false;\n for (let i = 0, j = this.raw.length - indexOffset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j],\n intersect = pi.y > y !== pj.y > y && x < (pj.x - pi.x) * (y - pi.y) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n if (options.type === \"inside\") {\n return inside;\n } else {\n return options.type === \"outside\" ? !inside : false;\n }\n };\n this._createPath2D = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options || !this.paths?.length) {\n return;\n }\n for (const path of this.paths) {\n const pathData = path.element?.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData),\n matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix(),\n finalPath = new Path2D(),\n transform = matrix.scale(this._scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n } else {\n delete path.path2d;\n }\n } else {\n delete path.path2d;\n }\n if (path.path2d ?? !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n const firstIndex = 0,\n firstPoint = this.raw[firstIndex];\n path.path2d.moveTo(firstPoint.x, firstPoint.y);\n this.raw.forEach((pos, i) => {\n if (i > firstIndex) {\n path.path2d?.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n };\n this._downloadSvgPath = async (svgUrl, force) => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const url = svgUrl ?? options.url,\n forceDownload = force ?? false;\n if (!url || this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const req = await fetch(url);\n if (!req.ok) {\n throw new Error(`${_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.errorPrefix} occurred during polygon mask download`);\n }\n return await this._parseSvgPath(await req.text(), force);\n };\n this._drawPoints = () => {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n void this._container.particles.addParticle({\n x: item.x,\n y: item.y\n });\n }\n };\n this._getEquidistantPointByIndex = index => {\n const container = this._container,\n options = container.actualOptions,\n polygonMaskOptions = options.polygon;\n if (!polygonMaskOptions) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n let offset = 0,\n point;\n const baseAccumulator = 0,\n totalLength = this.paths.reduce((tot, path) => tot + path.length, baseAccumulator),\n distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n } else {\n offset += path.length;\n }\n }\n const scale = this._scale;\n return {\n x: (point?.x ?? origin.x) * scale + (this.offset?.x ?? origin.x),\n y: (point?.y ?? origin.y) * scale + (this.offset?.y ?? origin.y)\n };\n };\n this._getPointByIndex = index => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPoint = () => {\n if (!this.raw?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const coords = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(this.raw);\n return {\n x: coords.x,\n y: coords.y\n };\n };\n this._getRandomPointByLength = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (!this.raw?.length || !this.paths?.length) {\n throw new Error(noPolygonDataLoaded);\n }\n const path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromArray)(this.paths),\n offset = 1,\n distance = Math.floor((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * path.length) + offset,\n point = path.element.getPointAtLength(distance),\n scale = this._scale;\n return {\n x: point.x * scale + (this.offset?.x ?? origin.x),\n y: point.y * scale + (this.offset?.y ?? origin.y)\n };\n };\n this._initRawData = async force => {\n const options = this._container.actualOptions.polygon;\n if (!options) {\n return;\n }\n if (options.url) {\n this.raw = await this._downloadSvgPath(options.url, force);\n } else if (options.data) {\n const data = options.data;\n let svg;\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(data)) {\n svg = data;\n } else {\n const getPath = p => `<path d=\"${p}\" />`,\n path = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isArray)(data.path) ? data.path.map(getPath).join(\"\") : getPath(data.path);\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `<svg ${namespaces} width=\"${data.size.width}\" height=\"${data.size.height}\">${path}</svg>`;\n }\n this.raw = await this._parseSvgPath(svg, force);\n }\n this._createPath2D();\n this._engine.dispatchEvent(\"polygonMaskLoaded\", {\n container: this._container\n });\n };\n this._parseSvgPath = async (xml, force) => {\n const forceDownload = force ?? false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n const parser = new DOMParser(),\n doc = parser.parseFromString(xml, \"image/svg+xml\"),\n firstIndex = 0,\n svg = doc.getElementsByTagName(\"svg\")[firstIndex];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength()\n });\n }\n }\n const scale = this._scale;\n this.dimension.width = parseFloat(svg.getAttribute(\"width\") ?? \"0\") * scale;\n this.dimension.height = parseFloat(svg.getAttribute(\"height\") ?? \"0\") * scale;\n const position = options.position ?? {\n x: 50,\n y: 50\n },\n canvasSize = container.canvas.size;\n this.offset = {\n x: canvasSize.width * position.x / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - this.dimension.width * half,\n y: canvasSize.height * position.y / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.percentDenominator - this.dimension.height * half\n };\n const {\n parsePaths\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n return parsePaths(this.paths, scale, this.offset);\n };\n this._polygonBounce = async (particle, delta, direction) => {\n const options = this._container.actualOptions.polygon;\n if (!this.raw || !options?.enable || direction !== \"top\") {\n return false;\n }\n if (options.type === \"inside\" || options.type === \"outside\") {\n let closest, dx, dy;\n const pos = particle.getPosition(),\n radius = particle.getRadius(),\n offset = 1;\n for (let i = 0, j = this.raw.length - offset; i < this.raw.length; j = i++) {\n const pi = this.raw[i],\n pj = this.raw[j],\n {\n calcClosestPointOnSegment\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n closest = calcClosestPointOnSegment(pi, pj, pos);\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos, closest);\n [dx, dy] = [dist.dx, dist.dy];\n if (dist.distance < radius) {\n const {\n segmentBounce\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n segmentBounce(pi, pj, particle.velocity);\n return true;\n }\n }\n if (closest && dx !== undefined && dy !== undefined && !this._checkInsidePolygon(pos)) {\n const factor = {\n x: 1,\n y: 1\n },\n diameter = radius * double,\n inverse = -1;\n if (pos.x >= closest.x) {\n factor.x = -1;\n }\n if (pos.y >= closest.y) {\n factor.y = -1;\n }\n particle.position.x = closest.x + diameter * factor.x;\n particle.position.y = closest.y + diameter * factor.y;\n particle.velocity.mult(inverse);\n return true;\n }\n } else if (options.type === \"inline\" && particle.initialPosition) {\n const dist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistance)(particle.initialPosition, particle.getPosition()),\n {\n velocity\n } = particle;\n if (dist > this._moveRadius) {\n velocity.x = velocity.y * half - velocity.x;\n velocity.y = velocity.x * half - velocity.y;\n return true;\n }\n }\n return false;\n };\n this._randomPoint = () => {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!options) {\n return;\n }\n let position;\n if (options.type === \"inline\") {\n switch (options.inline.arrangement) {\n case \"random-point\":\n position = this._getRandomPoint();\n break;\n case \"random-length\":\n position = this._getRandomPointByLength();\n break;\n case \"equidistant\":\n position = this._getEquidistantPointByIndex(container.particles.count);\n break;\n case \"one-per-point\":\n case \"per-point\":\n default:\n position = this._getPointByIndex(container.particles.count);\n }\n } else {\n const canvasSize = container.canvas.size;\n position = {\n x: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.width,\n y: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRandom)() * canvasSize.height\n };\n }\n if (this._checkInsidePolygon(position)) {\n return position;\n } else {\n return this._randomPoint();\n }\n };\n this._container = container;\n this._engine = engine;\n this.dimension = {\n height: 0,\n width: 0\n };\n this._moveRadius = 0;\n this._scale = 1;\n }\n clickPositionValid(position) {\n const options = this._container.actualOptions.polygon;\n return !!options?.enable && options.type !== \"none\" && options.type !== \"inline\" && this._checkInsidePolygon(position);\n }\n async draw(context) {\n if (!this.paths?.length) {\n return;\n }\n const options = this._container.actualOptions.polygon;\n if (!options?.enable) {\n return;\n }\n const polygonDraw = options.draw;\n if (!polygonDraw.enable) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d;\n if (!context) {\n continue;\n }\n if (path2d && this.offset) {\n const {\n drawPolygonMaskPath\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n drawPolygonMaskPath(context, path2d, polygonDraw.stroke, this.offset);\n } else if (rawData) {\n const {\n drawPolygonMask\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./utils.js */ \"../../plugins/polygonMask/dist/browser/utils.js\"));\n drawPolygonMask(context, rawData, polygonDraw.stroke);\n }\n }\n }\n async init() {\n const container = this._container,\n polygonMaskOptions = container.actualOptions.polygon,\n pxRatio = container.retina.pixelRatio;\n if (!polygonMaskOptions) {\n return;\n }\n this._moveRadius = polygonMaskOptions.move.radius * pxRatio;\n this._scale = polygonMaskOptions.scale * pxRatio;\n if (polygonMaskOptions.enable) {\n await this._initRawData();\n }\n }\n async particleBounce(particle, delta, direction) {\n return await this._polygonBounce(particle, delta, direction);\n }\n particlePosition(position) {\n const options = this._container.actualOptions.polygon,\n defaultLength = 0;\n if (!(options?.enable && (this.raw?.length ?? defaultLength) > defaultLength)) {\n return;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, position ? position : this._randomPoint());\n }\n particlesInitialization() {\n const options = this._container.actualOptions.polygon;\n if (options?.enable && options.type === \"inline\" && (options.inline.arrangement === \"one-per-point\" || options.inline.arrangement === \"per-point\")) {\n this._drawPoints();\n return true;\n }\n return false;\n }\n resize() {\n const container = this._container,\n options = container.actualOptions.polygon;\n if (!(options?.enable && options.type !== \"none\")) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n const timeout = 250;\n this.redrawTimeout = window.setTimeout(() => {\n void (async () => {\n await this._initRawData(true);\n await container.particles.redraw();\n })();\n }, timeout);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/PolygonMaskInstance.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,90 @@
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.1
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_polygonMask_dist_browser_PolygonMaskPlugin_js"],{
19
+
20
+ /***/ "../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMask.js":
21
+ /*!*****************************************************************************!*\
22
+ !*** ../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMask.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 */ PolygonMask: () => (/* binding */ PolygonMask)\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 _PolygonMaskDraw_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PolygonMaskDraw.js */ \"../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDraw.js\");\n/* harmony import */ var _PolygonMaskInline_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PolygonMaskInline.js */ \"../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskInline.js\");\n/* harmony import */ var _PolygonMaskLocalSvg_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PolygonMaskLocalSvg.js */ \"../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskLocalSvg.js\");\n/* harmony import */ var _PolygonMaskMove_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PolygonMaskMove.js */ \"../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskMove.js\");\n\n\n\n\n\nclass PolygonMask {\n constructor() {\n this.draw = new _PolygonMaskDraw_js__WEBPACK_IMPORTED_MODULE_1__.PolygonMaskDraw();\n this.enable = false;\n this.inline = new _PolygonMaskInline_js__WEBPACK_IMPORTED_MODULE_2__.PolygonMaskInline();\n this.move = new _PolygonMaskMove_js__WEBPACK_IMPORTED_MODULE_4__.PolygonMaskMove();\n this.scale = 1;\n this.type = \"none\";\n }\n load(data) {\n if (!data) {\n return;\n }\n this.draw.load(data.draw);\n this.inline.load(data.inline);\n this.move.load(data.move);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n } else {\n this.enable = this.type !== \"none\";\n }\n if (data.url !== undefined) {\n this.url = data.url;\n }\n if (data.data !== undefined) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(data.data)) {\n this.data = data.data;\n } else {\n this.data = new _PolygonMaskLocalSvg_js__WEBPACK_IMPORTED_MODULE_3__.PolygonMaskLocalSvg();\n this.data.load(data.data);\n }\n }\n if (data.position !== undefined) {\n this.position = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, data.position);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMask.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDraw.js":
31
+ /*!*********************************************************************************!*\
32
+ !*** ../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDraw.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 */ PolygonMaskDraw: () => (/* binding */ PolygonMaskDraw)\n/* harmony export */ });\n/* harmony import */ var _PolygonMaskDrawStroke_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PolygonMaskDrawStroke.js */ \"../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDrawStroke.js\");\n\nclass PolygonMaskDraw {\n constructor() {\n this.enable = false;\n this.stroke = new _PolygonMaskDrawStroke_js__WEBPACK_IMPORTED_MODULE_0__.PolygonMaskDrawStroke();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const stroke = data.stroke;\n this.stroke.load(stroke);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDraw.js?");
37
+
38
+ /***/ }),
39
+
40
+ /***/ "../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDrawStroke.js":
41
+ /*!***************************************************************************************!*\
42
+ !*** ../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDrawStroke.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 */ PolygonMaskDrawStroke: () => (/* binding */ PolygonMaskDrawStroke)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nclass PolygonMaskDrawStroke {\n constructor() {\n this.color = new _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor();\n this.width = 0.5;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n this.color = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.OptionsColor.create(this.color, data.color);\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(this.color.value)) {\n this.opacity = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.stringToAlpha)(this.color.value) ?? this.opacity;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDrawStroke.js?");
47
+
48
+ /***/ }),
49
+
50
+ /***/ "../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskInline.js":
51
+ /*!***********************************************************************************!*\
52
+ !*** ../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskInline.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 */ PolygonMaskInline: () => (/* binding */ PolygonMaskInline)\n/* harmony export */ });\nclass PolygonMaskInline {\n constructor() {\n this.arrangement = \"one-per-point\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.arrangement !== undefined) {\n this.arrangement = data.arrangement;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskInline.js?");
57
+
58
+ /***/ }),
59
+
60
+ /***/ "../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskLocalSvg.js":
61
+ /*!*************************************************************************************!*\
62
+ !*** ../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskLocalSvg.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 */ PolygonMaskLocalSvg: () => (/* binding */ PolygonMaskLocalSvg)\n/* harmony export */ });\nclass PolygonMaskLocalSvg {\n constructor() {\n this.path = [];\n this.size = {\n height: 0,\n width: 0\n };\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.path !== undefined) {\n this.path = data.path;\n }\n if (data.size !== undefined) {\n if (data.size.width !== undefined) {\n this.size.width = data.size.width;\n }\n if (data.size.height !== undefined) {\n this.size.height = data.size.height;\n }\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskLocalSvg.js?");
67
+
68
+ /***/ }),
69
+
70
+ /***/ "../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskMove.js":
71
+ /*!*********************************************************************************!*\
72
+ !*** ../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskMove.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 */ PolygonMaskMove: () => (/* binding */ PolygonMaskMove)\n/* harmony export */ });\nclass PolygonMaskMove {\n constructor() {\n this.radius = 10;\n this.type = \"path\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskMove.js?");
77
+
78
+ /***/ }),
79
+
80
+ /***/ "../../plugins/polygonMask/dist/browser/PolygonMaskPlugin.js":
81
+ /*!*******************************************************************!*\
82
+ !*** ../../plugins/polygonMask/dist/browser/PolygonMaskPlugin.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 */ PolygonMaskPlugin: () => (/* binding */ PolygonMaskPlugin)\n/* harmony export */ });\n/* harmony import */ var _Options_Classes_PolygonMask_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Options/Classes/PolygonMask.js */ \"../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMask.js\");\n\nclass PolygonMaskPlugin {\n constructor(engine) {\n this.id = \"polygonMask\";\n this._engine = engine;\n }\n async getPlugin(container) {\n const {\n PolygonMaskInstance\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_PolygonMaskInstance_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./PolygonMaskInstance.js */ \"../../plugins/polygonMask/dist/browser/PolygonMaskInstance.js\"));\n return new PolygonMaskInstance(container, this._engine);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n let polygonOptions = options.polygon;\n if (polygonOptions?.load === undefined) {\n options.polygon = polygonOptions = new _Options_Classes_PolygonMask_js__WEBPACK_IMPORTED_MODULE_0__.PolygonMask();\n }\n polygonOptions.load(source?.polygon);\n }\n needsPlugin(options) {\n return options?.polygon?.enable ?? (options?.polygon?.type !== undefined && options.polygon.type !== \"none\");\n }\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/PolygonMaskPlugin.js?");
87
+
88
+ /***/ })
89
+
90
+ }]);
@@ -0,0 +1,70 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.1
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_polygonMask_dist_browser_index_js"],{
19
+
20
+ /***/ "../../plugins/polygonMask/dist/browser/Enums/PolygonMaskInlineArrangement.js":
21
+ /*!************************************************************************************!*\
22
+ !*** ../../plugins/polygonMask/dist/browser/Enums/PolygonMaskInlineArrangement.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/polygonMask/dist/browser/Enums/PolygonMaskInlineArrangement.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../plugins/polygonMask/dist/browser/Enums/PolygonMaskMoveType.js":
31
+ /*!***************************************************************************!*\
32
+ !*** ../../plugins/polygonMask/dist/browser/Enums/PolygonMaskMoveType.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/polygonMask/dist/browser/Enums/PolygonMaskMoveType.js?");
37
+
38
+ /***/ }),
39
+
40
+ /***/ "../../plugins/polygonMask/dist/browser/Enums/PolygonMaskType.js":
41
+ /*!***********************************************************************!*\
42
+ !*** ../../plugins/polygonMask/dist/browser/Enums/PolygonMaskType.js ***!
43
+ \***********************************************************************/
44
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
45
+
46
+ eval("__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/Enums/PolygonMaskType.js?");
47
+
48
+ /***/ }),
49
+
50
+ /***/ "../../plugins/polygonMask/dist/browser/index.js":
51
+ /*!*******************************************************!*\
52
+ !*** ../../plugins/polygonMask/dist/browser/index.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 */ loadPolygonMaskPlugin: () => (/* binding */ loadPolygonMaskPlugin)\n/* harmony export */ });\n/* harmony import */ var _pathseg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pathseg.js */ \"../../plugins/polygonMask/dist/browser/pathseg.js\");\n/* harmony import */ var _Enums_PolygonMaskInlineArrangement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Enums/PolygonMaskInlineArrangement.js */ \"../../plugins/polygonMask/dist/browser/Enums/PolygonMaskInlineArrangement.js\");\n/* harmony import */ var _Enums_PolygonMaskMoveType_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Enums/PolygonMaskMoveType.js */ \"../../plugins/polygonMask/dist/browser/Enums/PolygonMaskMoveType.js\");\n/* harmony import */ var _Enums_PolygonMaskType_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Enums/PolygonMaskType.js */ \"../../plugins/polygonMask/dist/browser/Enums/PolygonMaskType.js\");\n\nasync function loadPolygonMaskPlugin(engine, refresh = true) {\n const {\n PolygonMaskPlugin\n } = await __webpack_require__.e(/*! import() */ \"plugins_polygonMask_dist_browser_PolygonMaskPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./PolygonMaskPlugin.js */ \"../../plugins/polygonMask/dist/browser/PolygonMaskPlugin.js\"));\n await engine.addPlugin(new PolygonMaskPlugin(engine), refresh);\n}\n\n\n\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/index.js?");
57
+
58
+ /***/ }),
59
+
60
+ /***/ "../../plugins/polygonMask/dist/browser/pathseg.js":
61
+ /*!*********************************************************!*\
62
+ !*** ../../plugins/polygonMask/dist/browser/pathseg.js ***!
63
+ \*********************************************************/
64
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
65
+
66
+ eval("__webpack_require__.r(__webpack_exports__);\n\n\n(function () {\n \"use strict\";\n\n try {\n if (typeof window === \"undefined\") return;\n if (!(\"SVGPathSeg\" in window)) {\n window.SVGPathSeg = function (type, typeAsLetter, owningPathSegList) {\n this.pathSegType = type;\n this.pathSegTypeAsLetter = typeAsLetter;\n this._owningPathSegList = owningPathSegList;\n };\n window.SVGPathSeg.prototype.classname = \"SVGPathSeg\";\n window.SVGPathSeg.PATHSEG_UNKNOWN = 0;\n window.SVGPathSeg.PATHSEG_CLOSEPATH = 1;\n window.SVGPathSeg.PATHSEG_MOVETO_ABS = 2;\n window.SVGPathSeg.PATHSEG_MOVETO_REL = 3;\n window.SVGPathSeg.PATHSEG_LINETO_ABS = 4;\n window.SVGPathSeg.PATHSEG_LINETO_REL = 5;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS = 6;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL = 7;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS = 8;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL = 9;\n window.SVGPathSeg.PATHSEG_ARC_ABS = 10;\n window.SVGPathSeg.PATHSEG_ARC_REL = 11;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS = 12;\n window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL = 13;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS = 14;\n window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL = 15;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16;\n window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18;\n window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19;\n window.SVGPathSeg.prototype._segmentChanged = function () {\n if (this._owningPathSegList) this._owningPathSegList.segmentChanged(this);\n };\n window.SVGPathSegClosePath = function (owningPathSegList) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CLOSEPATH, \"z\", owningPathSegList);\n };\n window.SVGPathSegClosePath.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegClosePath.prototype.toString = function () {\n return \"[object SVGPathSegClosePath]\";\n };\n window.SVGPathSegClosePath.prototype._asPathString = function () {\n return this.pathSegTypeAsLetter;\n };\n window.SVGPathSegClosePath.prototype.clone = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathSegMovetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_ABS, \"M\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegMovetoAbs]\";\n };\n window.SVGPathSegMovetoAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegMovetoAbs.prototype.clone = function () {\n return new window.SVGPathSegMovetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegMovetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_MOVETO_REL, \"m\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegMovetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegMovetoRel.prototype.toString = function () {\n return \"[object SVGPathSegMovetoRel]\";\n };\n window.SVGPathSegMovetoRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegMovetoRel.prototype.clone = function () {\n return new window.SVGPathSegMovetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegMovetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_ABS, \"L\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoAbs]\";\n };\n window.SVGPathSegLinetoAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegLinetoAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_REL, \"l\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegLinetoRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoRel]\";\n };\n window.SVGPathSegLinetoRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegLinetoRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegLinetoRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicAbs = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS, \"C\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicAbs]\";\n };\n window.SVGPathSegCurvetoCubicAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicRel = function (owningPathSegList, x, y, x1, y1, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL, \"c\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicRel]\";\n };\n window.SVGPathSegCurvetoCubicRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicRel(undefined, this._x, this._y, this._x1, this._y1, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticAbs = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS, \"Q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticRel = function (owningPathSegList, x, y, x1, y1) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL, \"q\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x1 = x1;\n this._y1 = y1;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticRel]\";\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, this._x, this._y, this._x1, this._y1);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"x1\", {\n get: function () {\n return this._x1;\n },\n set: function (x1) {\n this._x1 = x1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype, \"y1\", {\n get: function () {\n return this._y1;\n },\n set: function (y1) {\n this._y1 = y1;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcAbs = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_ABS, \"A\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcAbs.prototype.toString = function () {\n return \"[object SVGPathSegArcAbs]\";\n };\n window.SVGPathSegArcAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag ? \"1\" : \"0\"} ${this._sweepFlag ? \"1\" : \"0\"} ${this._x} ${this._y}`;\n };\n window.SVGPathSegArcAbs.prototype.clone = function () {\n return new window.SVGPathSegArcAbs(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcAbs.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegArcRel = function (owningPathSegList, x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_ARC_REL, \"a\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._r1 = r1;\n this._r2 = r2;\n this._angle = angle;\n this._largeArcFlag = largeArcFlag;\n this._sweepFlag = sweepFlag;\n };\n window.SVGPathSegArcRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegArcRel.prototype.toString = function () {\n return \"[object SVGPathSegArcRel]\";\n };\n window.SVGPathSegArcRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag ? \"1\" : \"0\"} ${this._sweepFlag ? \"1\" : \"0\"} ${this._x} ${this._y}`;\n };\n window.SVGPathSegArcRel.prototype.clone = function () {\n return new window.SVGPathSegArcRel(undefined, this._x, this._y, this._r1, this._r2, this._angle, this._largeArcFlag, this._sweepFlag);\n };\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r1\", {\n get: function () {\n return this._r1;\n },\n set: function (r1) {\n this._r1 = r1;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"r2\", {\n get: function () {\n return this._r2;\n },\n set: function (r2) {\n this._r2 = r2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"angle\", {\n get: function () {\n return this._angle;\n },\n set: function (angle) {\n this._angle = angle;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"largeArcFlag\", {\n get: function () {\n return this._largeArcFlag;\n },\n set: function (largeArcFlag) {\n this._largeArcFlag = largeArcFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegArcRel.prototype, \"sweepFlag\", {\n get: function () {\n return this._sweepFlag;\n },\n set: function (sweepFlag) {\n this._sweepFlag = sweepFlag;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalAbs = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS, \"H\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalAbs]\";\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x}`;\n };\n window.SVGPathSegLinetoHorizontalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoHorizontalRel = function (owningPathSegList, x) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL, \"h\", owningPathSegList);\n this._x = x;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoHorizontalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoHorizontalRel]\";\n };\n window.SVGPathSegLinetoHorizontalRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x}`;\n };\n window.SVGPathSegLinetoHorizontalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, this._x);\n };\n Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalAbs = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS, \"V\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalAbs.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalAbs]\";\n };\n window.SVGPathSegLinetoVerticalAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._y}`;\n };\n window.SVGPathSegLinetoVerticalAbs.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegLinetoVerticalRel = function (owningPathSegList, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL, \"v\", owningPathSegList);\n this._y = y;\n };\n window.SVGPathSegLinetoVerticalRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegLinetoVerticalRel.prototype.toString = function () {\n return \"[object SVGPathSegLinetoVerticalRel]\";\n };\n window.SVGPathSegLinetoVerticalRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._y}`;\n };\n window.SVGPathSegLinetoVerticalRel.prototype.clone = function () {\n return new window.SVGPathSegLinetoVerticalRel(undefined, this._y);\n };\n Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothAbs = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS, \"S\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothAbs]\";\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoCubicSmoothRel = function (owningPathSegList, x, y, x2, y2) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL, \"s\", owningPathSegList);\n this._x = x;\n this._y = y;\n this._x2 = x2;\n this._y2 = y2;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoCubicSmoothRel]\";\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, this._x, this._y, this._x2, this._y2);\n };\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"x2\", {\n get: function () {\n return this._x2;\n },\n set: function (x2) {\n this._x2 = x2;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype, \"y2\", {\n get: function () {\n return this._y2;\n },\n set: function (y2) {\n this._y2 = y2;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothAbs = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS, \"T\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothAbs]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathSegCurvetoQuadraticSmoothRel = function (owningPathSegList, x, y) {\n window.SVGPathSeg.call(this, window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL, \"t\", owningPathSegList);\n this._x = x;\n this._y = y;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype = Object.create(window.SVGPathSeg.prototype);\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString = function () {\n return \"[object SVGPathSegCurvetoQuadraticSmoothRel]\";\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString = function () {\n return `${this.pathSegTypeAsLetter} ${this._x} ${this._y}`;\n };\n window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone = function () {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, this._x, this._y);\n };\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (x) {\n this._x = x;\n this._segmentChanged();\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (y) {\n this._y = y;\n this._segmentChanged();\n },\n enumerable: true\n });\n window.SVGPathElement.prototype.createSVGPathSegClosePath = function () {\n return new window.SVGPathSegClosePath(undefined);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoAbs = function (x, y) {\n return new window.SVGPathSegMovetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegMovetoRel = function (x, y) {\n return new window.SVGPathSegMovetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoAbs = function (x, y) {\n return new window.SVGPathSegLinetoAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoRel = function (x, y) {\n return new window.SVGPathSegLinetoRel(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicAbs(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel = function (x, y, x1, y1, x2, y2) {\n return new window.SVGPathSegCurvetoCubicRel(undefined, x, y, x1, y1, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticAbs(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel = function (x, y, x1, y1) {\n return new window.SVGPathSegCurvetoQuadraticRel(undefined, x, y, x1, y1);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcAbs = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcAbs(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegArcRel = function (x, y, r1, r2, angle, largeArcFlag, sweepFlag) {\n return new window.SVGPathSegArcRel(undefined, x, y, r1, r2, angle, largeArcFlag, sweepFlag);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs = function (x) {\n return new window.SVGPathSegLinetoHorizontalAbs(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel = function (x) {\n return new window.SVGPathSegLinetoHorizontalRel(undefined, x);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs = function (y) {\n return new window.SVGPathSegLinetoVerticalAbs(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel = function (y) {\n return new window.SVGPathSegLinetoVerticalRel(undefined, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothAbs(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel = function (x, y, x2, y2) {\n return new window.SVGPathSegCurvetoCubicSmoothRel(undefined, x, y, x2, y2);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(undefined, x, y);\n };\n window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel = function (x, y) {\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(undefined, x, y);\n };\n if (!(\"getPathSegAtLength\" in window.SVGPathElement.prototype)) {\n window.SVGPathElement.prototype.getPathSegAtLength = function (distance) {\n if (distance === undefined || !isFinite(distance)) throw \"Invalid arguments.\";\n const measurementElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n measurementElement.setAttribute(\"d\", this.getAttribute(\"d\"));\n let lastPathSegment = measurementElement.pathSegList.numberOfItems - 1;\n if (lastPathSegment <= 0) return 0;\n do {\n measurementElement.pathSegList.removeItem(lastPathSegment);\n if (distance > measurementElement.getTotalLength()) break;\n lastPathSegment--;\n } while (lastPathSegment > 0);\n return lastPathSegment;\n };\n }\n }\n if (!(\"SVGPathSegList\" in window) || !(\"appendItem\" in window.SVGPathSegList.prototype)) {\n window.SVGPathSegList = function (pathElement) {\n this._pathElement = pathElement;\n this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n this._mutationObserverConfig = {\n attributes: true,\n attributeFilter: [\"d\"]\n };\n this._pathElementMutationObserver = new MutationObserver(this._updateListFromPathMutations.bind(this));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.classname = \"SVGPathSegList\";\n Object.defineProperty(window.SVGPathSegList.prototype, \"numberOfItems\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathSegList.prototype, \"length\", {\n get: function () {\n this._checkPathSynchronizedToList();\n return this._list.length;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"pathSegList\", {\n get: function () {\n if (!this._pathSegList) this._pathSegList = new window.SVGPathSegList(this);\n return this._pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"normalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n Object.defineProperty(window.SVGPathElement.prototype, \"animatedNormalizedPathSegList\", {\n get: function () {\n return this.pathSegList;\n },\n enumerable: true\n });\n window.SVGPathSegList.prototype._checkPathSynchronizedToList = function () {\n this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords());\n };\n window.SVGPathSegList.prototype._updateListFromPathMutations = function (mutationRecords) {\n if (!this._pathElement) return;\n let hasPathMutations = false;\n mutationRecords.forEach(function (record) {\n if (record.attributeName == \"d\") hasPathMutations = true;\n });\n if (hasPathMutations) this._list = this._parsePath(this._pathElement.getAttribute(\"d\"));\n };\n window.SVGPathSegList.prototype._writeListToPath = function () {\n this._pathElementMutationObserver.disconnect();\n this._pathElement.setAttribute(\"d\", window.SVGPathSegList._pathSegArrayAsString(this._list));\n this._pathElementMutationObserver.observe(this._pathElement, this._mutationObserverConfig);\n };\n window.SVGPathSegList.prototype.segmentChanged = function () {\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.clear = function () {\n this._checkPathSynchronizedToList();\n this._list.forEach(function (pathSeg) {\n pathSeg._owningPathSegList = null;\n });\n this._list = [];\n this._writeListToPath();\n };\n window.SVGPathSegList.prototype.initialize = function (newItem) {\n this._checkPathSynchronizedToList();\n this._list = [newItem];\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype._checkValidIndex = function (index) {\n if (isNaN(index) || index < 0 || index >= this.numberOfItems) throw \"INDEX_SIZE_ERR\";\n };\n window.SVGPathSegList.prototype.getItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n return this._list[index];\n };\n window.SVGPathSegList.prototype.insertItemBefore = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (index > this.numberOfItems) index = this.numberOfItems;\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.splice(index, 0, newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.replaceItem = function (newItem, index) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._checkValidIndex(index);\n this._list[index] = newItem;\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList.prototype.removeItem = function (index) {\n this._checkPathSynchronizedToList();\n this._checkValidIndex(index);\n const item = this._list[index];\n this._list.splice(index, 1);\n this._writeListToPath();\n return item;\n };\n window.SVGPathSegList.prototype.appendItem = function (newItem) {\n this._checkPathSynchronizedToList();\n if (newItem._owningPathSegList) {\n newItem = newItem.clone();\n }\n this._list.push(newItem);\n newItem._owningPathSegList = this;\n this._writeListToPath();\n return newItem;\n };\n window.SVGPathSegList._pathSegArrayAsString = function (pathSegArray) {\n let string = \"\";\n let first = true;\n pathSegArray.forEach(function (pathSeg) {\n if (first) {\n first = false;\n string += pathSeg._asPathString();\n } else {\n string += ` ${pathSeg._asPathString()}`;\n }\n });\n return string;\n };\n window.SVGPathSegList.prototype._parsePath = function (string) {\n if (!string || !string.length) return [];\n const owningPathSegList = this;\n const Builder = function () {\n this.pathSegList = [];\n };\n Builder.prototype.appendSegment = function (pathSeg) {\n this.pathSegList.push(pathSeg);\n };\n const Source = function (string) {\n this._string = string;\n this._currentIndex = 0;\n this._endIndex = this._string.length;\n this._previousCommand = window.SVGPathSeg.PATHSEG_UNKNOWN;\n this._skipOptionalSpaces();\n };\n Source.prototype._isCurrentSpace = function () {\n const character = this._string[this._currentIndex];\n return character <= \" \" && (character == \" \" || character == \"\\n\" || character == \"\\t\" || character == \"\\r\" || character == \"\\f\");\n };\n Source.prototype._skipOptionalSpaces = function () {\n while (this._currentIndex < this._endIndex && this._isCurrentSpace()) this._currentIndex++;\n return this._currentIndex < this._endIndex;\n };\n Source.prototype._skipOptionalSpacesOrDelimiter = function () {\n if (this._currentIndex < this._endIndex && !this._isCurrentSpace() && this._string.charAt(this._currentIndex) != \",\") return false;\n if (this._skipOptionalSpaces()) {\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \",\") {\n this._currentIndex++;\n this._skipOptionalSpaces();\n }\n }\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.hasMoreData = function () {\n return this._currentIndex < this._endIndex;\n };\n Source.prototype.peekSegmentType = function () {\n const lookahead = this._string[this._currentIndex];\n return this._pathSegTypeFromChar(lookahead);\n };\n Source.prototype._pathSegTypeFromChar = function (lookahead) {\n switch (lookahead) {\n case \"Z\":\n case \"z\":\n return window.SVGPathSeg.PATHSEG_CLOSEPATH;\n case \"M\":\n return window.SVGPathSeg.PATHSEG_MOVETO_ABS;\n case \"m\":\n return window.SVGPathSeg.PATHSEG_MOVETO_REL;\n case \"L\":\n return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n case \"l\":\n return window.SVGPathSeg.PATHSEG_LINETO_REL;\n case \"C\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;\n case \"c\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;\n case \"Q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;\n case \"q\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;\n case \"A\":\n return window.SVGPathSeg.PATHSEG_ARC_ABS;\n case \"a\":\n return window.SVGPathSeg.PATHSEG_ARC_REL;\n case \"H\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;\n case \"h\":\n return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;\n case \"V\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;\n case \"v\":\n return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;\n case \"S\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;\n case \"s\":\n return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;\n case \"T\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;\n case \"t\":\n return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;\n default:\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n }\n };\n Source.prototype._nextCommandHelper = function (lookahead, previousCommand) {\n if ((lookahead == \"+\" || lookahead == \"-\" || lookahead == \".\" || lookahead >= \"0\" && lookahead <= \"9\") && previousCommand != window.SVGPathSeg.PATHSEG_CLOSEPATH) {\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_ABS) return window.SVGPathSeg.PATHSEG_LINETO_ABS;\n if (previousCommand == window.SVGPathSeg.PATHSEG_MOVETO_REL) return window.SVGPathSeg.PATHSEG_LINETO_REL;\n return previousCommand;\n }\n return window.SVGPathSeg.PATHSEG_UNKNOWN;\n };\n Source.prototype.initialCommandIsMoveTo = function () {\n if (!this.hasMoreData()) return true;\n const command = this.peekSegmentType();\n return command == window.SVGPathSeg.PATHSEG_MOVETO_ABS || command == window.SVGPathSeg.PATHSEG_MOVETO_REL;\n };\n Source.prototype._parseNumber = function () {\n let exponent = 0;\n let integer = 0;\n let frac = 1;\n let decimal = 0;\n let sign = 1;\n let expsign = 1;\n const startIndex = this._currentIndex;\n this._skipOptionalSpaces();\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"+\") this._currentIndex++;else if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n sign = -1;\n }\n if (this._currentIndex == this._endIndex || (this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") && this._string.charAt(this._currentIndex) != \".\") return undefined;\n const startIntPartIndex = this._currentIndex;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") this._currentIndex++;\n if (this._currentIndex != startIntPartIndex) {\n let scanIntPartIndex = this._currentIndex - 1;\n let multiplier = 1;\n while (scanIntPartIndex >= startIntPartIndex) {\n integer += multiplier * (this._string.charAt(scanIntPartIndex--) - \"0\");\n multiplier *= 10;\n }\n }\n if (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) == \".\") {\n this._currentIndex++;\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") {\n frac *= 10;\n decimal += (this._string.charAt(this._currentIndex) - \"0\") / frac;\n this._currentIndex += 1;\n }\n }\n if (this._currentIndex != startIndex && this._currentIndex + 1 < this._endIndex && (this._string.charAt(this._currentIndex) == \"e\" || this._string.charAt(this._currentIndex) == \"E\") && this._string.charAt(this._currentIndex + 1) != \"x\" && this._string.charAt(this._currentIndex + 1) != \"m\") {\n this._currentIndex++;\n if (this._string.charAt(this._currentIndex) == \"+\") {\n this._currentIndex++;\n } else if (this._string.charAt(this._currentIndex) == \"-\") {\n this._currentIndex++;\n expsign = -1;\n }\n if (this._currentIndex >= this._endIndex || this._string.charAt(this._currentIndex) < \"0\" || this._string.charAt(this._currentIndex) > \"9\") return undefined;\n while (this._currentIndex < this._endIndex && this._string.charAt(this._currentIndex) >= \"0\" && this._string.charAt(this._currentIndex) <= \"9\") {\n exponent *= 10;\n exponent += this._string.charAt(this._currentIndex) - \"0\";\n this._currentIndex++;\n }\n }\n let number = integer + decimal;\n number *= sign;\n if (exponent) number *= Math.pow(10, expsign * exponent);\n if (startIndex == this._currentIndex) return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return number;\n };\n Source.prototype._parseArcFlag = function () {\n if (this._currentIndex >= this._endIndex) return undefined;\n let flag = false;\n const flagChar = this._string.charAt(this._currentIndex++);\n if (flagChar == \"0\") flag = false;else if (flagChar == \"1\") flag = true;else return undefined;\n this._skipOptionalSpacesOrDelimiter();\n return flag;\n };\n Source.prototype.parseSegment = function () {\n const lookahead = this._string[this._currentIndex];\n let command = this._pathSegTypeFromChar(lookahead);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) {\n if (this._previousCommand == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n command = this._nextCommandHelper(lookahead, this._previousCommand);\n if (command == window.SVGPathSeg.PATHSEG_UNKNOWN) return null;\n } else {\n this._currentIndex++;\n }\n this._previousCommand = command;\n let points;\n switch (command) {\n case window.SVGPathSeg.PATHSEG_MOVETO_REL:\n return new window.SVGPathSegMovetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_MOVETO_ABS:\n return new window.SVGPathSegMovetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_REL:\n return new window.SVGPathSegLinetoRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_ABS:\n return new window.SVGPathSegLinetoAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n return new window.SVGPathSegLinetoHorizontalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n return new window.SVGPathSegLinetoHorizontalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n return new window.SVGPathSegLinetoVerticalRel(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n return new window.SVGPathSegLinetoVerticalAbs(owningPathSegList, this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CLOSEPATH:\n this._skipOptionalSpaces();\n return new window.SVGPathSegClosePath(owningPathSegList);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothRel(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n points = {\n x2: this._parseNumber(),\n y2: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoCubicSmoothAbs(owningPathSegList, points.x, points.y, points.x2, points.y2);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticRel(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegCurvetoQuadraticAbs(owningPathSegList, points.x, points.y, points.x1, points.y1);\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n return new window.SVGPathSegCurvetoQuadraticSmoothRel(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n return new window.SVGPathSegCurvetoQuadraticSmoothAbs(owningPathSegList, this._parseNumber(), this._parseNumber());\n case window.SVGPathSeg.PATHSEG_ARC_REL:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcRel(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n case window.SVGPathSeg.PATHSEG_ARC_ABS:\n points = {\n x1: this._parseNumber(),\n y1: this._parseNumber(),\n arcAngle: this._parseNumber(),\n arcLarge: this._parseArcFlag(),\n arcSweep: this._parseArcFlag(),\n x: this._parseNumber(),\n y: this._parseNumber()\n };\n return new window.SVGPathSegArcAbs(owningPathSegList, points.x, points.y, points.x1, points.y1, points.arcAngle, points.arcLarge, points.arcSweep);\n default:\n throw \"Unknown path seg type.\";\n }\n };\n const builder = new Builder();\n const source = new Source(string);\n if (!source.initialCommandIsMoveTo()) return [];\n while (source.hasMoreData()) {\n const pathSeg = source.parseSegment();\n if (!pathSeg) return [];\n builder.appendSegment(pathSeg);\n }\n return builder.pathSegList;\n };\n }\n } catch (e) {\n console.warn(\"An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles\", e);\n }\n})();\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/pathseg.js?");
67
+
68
+ /***/ })
69
+
70
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.1
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_polygonMask_dist_browser_utils_js"],{
19
+
20
+ /***/ "../../plugins/polygonMask/dist/browser/utils.js":
21
+ /*!*******************************************************!*\
22
+ !*** ../../plugins/polygonMask/dist/browser/utils.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 */ calcClosestPointOnSegment: () => (/* binding */ calcClosestPointOnSegment),\n/* harmony export */ drawPolygonMask: () => (/* binding */ drawPolygonMask),\n/* harmony export */ drawPolygonMaskPath: () => (/* binding */ drawPolygonMaskPath),\n/* harmony export */ parsePaths: () => (/* binding */ parsePaths),\n/* harmony export */ segmentBounce: () => (/* binding */ segmentBounce)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst squareExp = 2,\n inSegmentRange = {\n min: 0,\n max: 1\n },\n double = 2;\nfunction drawPolygonMask(context, rawData, stroke) {\n const color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n const firstIndex = 0,\n firstItem = rawData[firstIndex];\n context.beginPath();\n context.moveTo(firstItem.x, firstItem.y);\n for (const item of rawData) {\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nfunction drawPolygonMaskPath(context, path, stroke, position) {\n const defaultTransform = {\n a: 1,\n b: 0,\n c: 0,\n d: 1\n };\n context.setTransform(defaultTransform.a, defaultTransform.b, defaultTransform.c, defaultTransform.d, position.x, position.y);\n const color = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.rangeColorToRgb)(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n context.resetTransform();\n}\nfunction parsePaths(paths, scale, offset) {\n const res = [],\n defaultCount = 0;\n for (const path of paths) {\n const segments = path.element.pathSegList,\n len = segments?.numberOfItems ?? defaultCount,\n p = {\n x: 0,\n y: 0\n };\n for (let i = 0; i < len; i++) {\n const segment = segments?.getItem(i),\n svgPathSeg = window.SVGPathSeg;\n switch (segment?.pathSegType) {\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:\n {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:\n {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y\n });\n }\n }\n return res;\n}\nfunction calcClosestPointOnSegment(s1, s2, pos) {\n const {\n dx: dx1,\n dy: dy1\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(pos, s1),\n {\n dx: dx2,\n dy: dy2\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(s2, s1),\n t = (dx1 * dx2 + dy1 * dy2) / (dx2 ** squareExp + dy2 ** squareExp),\n res = {\n x: s1.x + dx2 * t,\n y: s1.y + dy2 * t,\n isOnSegment: t >= inSegmentRange.min && t <= inSegmentRange.max\n };\n if (t < inSegmentRange.min) {\n res.x = s1.x;\n res.y = s1.y;\n } else if (t > inSegmentRange.max) {\n res.x = s2.x;\n res.y = s2.y;\n }\n return res;\n}\nfunction segmentBounce(start, stop, velocity) {\n const {\n dx,\n dy\n } = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getDistances)(start, stop),\n wallAngle = Math.atan2(dy, dx),\n wallNormal = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.Vector.create(Math.sin(wallAngle), -Math.cos(wallAngle)),\n d = double * (velocity.x * wallNormal.x + velocity.y * wallNormal.y);\n wallNormal.multTo(d);\n velocity.subFrom(wallNormal);\n}\n\n//# sourceURL=webpack://@tsparticles/all/../../plugins/polygonMask/dist/browser/utils.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);