@tsparticles/slim 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/1147.min.js +2 -0
  2. package/1147.min.js.LICENSE.txt +1 -0
  3. package/1196.min.js +2 -0
  4. package/1196.min.js.LICENSE.txt +1 -0
  5. package/1264.min.js +2 -0
  6. package/1264.min.js.LICENSE.txt +1 -0
  7. package/1308.min.js +2 -0
  8. package/1308.min.js.LICENSE.txt +1 -0
  9. package/1364.min.js +2 -0
  10. package/1364.min.js.LICENSE.txt +1 -0
  11. package/1472.min.js +2 -0
  12. package/1472.min.js.LICENSE.txt +1 -0
  13. package/1513.min.js +2 -0
  14. package/1513.min.js.LICENSE.txt +1 -0
  15. package/1808.min.js +2 -0
  16. package/1808.min.js.LICENSE.txt +1 -0
  17. package/1810.min.js +2 -0
  18. package/1810.min.js.LICENSE.txt +1 -0
  19. package/1831.min.js +2 -0
  20. package/1831.min.js.LICENSE.txt +1 -0
  21. package/196.min.js +2 -0
  22. package/196.min.js.LICENSE.txt +1 -0
  23. package/1982.min.js +2 -0
  24. package/1982.min.js.LICENSE.txt +1 -0
  25. package/2121.min.js +2 -0
  26. package/2121.min.js.LICENSE.txt +1 -0
  27. package/2124.min.js +2 -0
  28. package/2124.min.js.LICENSE.txt +1 -0
  29. package/2173.min.js +2 -0
  30. package/2173.min.js.LICENSE.txt +1 -0
  31. package/2200.min.js +2 -0
  32. package/2200.min.js.LICENSE.txt +1 -0
  33. package/2486.min.js +2 -0
  34. package/2486.min.js.LICENSE.txt +1 -0
  35. package/256.min.js +2 -0
  36. package/256.min.js.LICENSE.txt +1 -0
  37. package/2580.min.js +2 -0
  38. package/2580.min.js.LICENSE.txt +1 -0
  39. package/2720.min.js +2 -0
  40. package/2720.min.js.LICENSE.txt +1 -0
  41. package/2765.min.js +2 -0
  42. package/2765.min.js.LICENSE.txt +1 -0
  43. package/2870.min.js +2 -0
  44. package/2870.min.js.LICENSE.txt +1 -0
  45. package/2890.min.js +2 -0
  46. package/2890.min.js.LICENSE.txt +1 -0
  47. package/290.min.js +2 -0
  48. package/290.min.js.LICENSE.txt +1 -0
  49. package/2946.min.js +2 -0
  50. package/2946.min.js.LICENSE.txt +1 -0
  51. package/3141.min.js +2 -0
  52. package/3141.min.js.LICENSE.txt +1 -0
  53. package/3255.min.js +2 -0
  54. package/3255.min.js.LICENSE.txt +1 -0
  55. package/3457.min.js +2 -0
  56. package/3457.min.js.LICENSE.txt +1 -0
  57. package/3486.min.js +2 -0
  58. package/3486.min.js.LICENSE.txt +1 -0
  59. package/3597.min.js +2 -0
  60. package/3597.min.js.LICENSE.txt +1 -0
  61. package/3648.min.js +2 -0
  62. package/3648.min.js.LICENSE.txt +1 -0
  63. package/3733.min.js +2 -0
  64. package/3733.min.js.LICENSE.txt +1 -0
  65. package/3869.min.js +2 -0
  66. package/3869.min.js.LICENSE.txt +1 -0
  67. package/3904.min.js +2 -0
  68. package/3904.min.js.LICENSE.txt +1 -0
  69. package/409.min.js +2 -0
  70. package/409.min.js.LICENSE.txt +1 -0
  71. package/4314.min.js +2 -0
  72. package/4314.min.js.LICENSE.txt +1 -0
  73. package/4328.min.js +2 -0
  74. package/4328.min.js.LICENSE.txt +1 -0
  75. package/4687.min.js +2 -0
  76. package/4687.min.js.LICENSE.txt +1 -0
  77. package/4732.min.js +2 -0
  78. package/4732.min.js.LICENSE.txt +1 -0
  79. package/4737.min.js +2 -0
  80. package/4737.min.js.LICENSE.txt +1 -0
  81. package/4866.min.js +2 -0
  82. package/4866.min.js.LICENSE.txt +1 -0
  83. package/4922.min.js +2 -0
  84. package/4922.min.js.LICENSE.txt +1 -0
  85. package/4973.min.js +2 -0
  86. package/4973.min.js.LICENSE.txt +1 -0
  87. package/4994.min.js +2 -0
  88. package/4994.min.js.LICENSE.txt +1 -0
  89. package/5120.min.js +2 -0
  90. package/5120.min.js.LICENSE.txt +1 -0
  91. package/5243.min.js +2 -0
  92. package/5243.min.js.LICENSE.txt +1 -0
  93. package/5308.min.js +2 -0
  94. package/5308.min.js.LICENSE.txt +1 -0
  95. package/5329.min.js +2 -0
  96. package/5329.min.js.LICENSE.txt +1 -0
  97. package/533.min.js +2 -0
  98. package/533.min.js.LICENSE.txt +1 -0
  99. package/5437.min.js +2 -0
  100. package/5437.min.js.LICENSE.txt +1 -0
  101. package/5444.min.js +2 -0
  102. package/5444.min.js.LICENSE.txt +1 -0
  103. package/5523.min.js +2 -0
  104. package/5523.min.js.LICENSE.txt +1 -0
  105. package/5647.min.js +2 -0
  106. package/5647.min.js.LICENSE.txt +1 -0
  107. package/5715.min.js +2 -0
  108. package/5715.min.js.LICENSE.txt +1 -0
  109. package/5819.min.js +2 -0
  110. package/5819.min.js.LICENSE.txt +1 -0
  111. package/6072.min.js +2 -0
  112. package/6072.min.js.LICENSE.txt +1 -0
  113. package/6132.min.js +2 -0
  114. package/6132.min.js.LICENSE.txt +1 -0
  115. package/6634.min.js +2 -0
  116. package/6634.min.js.LICENSE.txt +1 -0
  117. package/6772.min.js +2 -0
  118. package/6772.min.js.LICENSE.txt +1 -0
  119. package/69.min.js +2 -0
  120. package/69.min.js.LICENSE.txt +1 -0
  121. package/7031.min.js +2 -0
  122. package/7031.min.js.LICENSE.txt +1 -0
  123. package/7049.min.js +2 -0
  124. package/7049.min.js.LICENSE.txt +1 -0
  125. package/7077.min.js +2 -0
  126. package/7077.min.js.LICENSE.txt +1 -0
  127. package/7108.min.js +2 -0
  128. package/7108.min.js.LICENSE.txt +1 -0
  129. package/7331.min.js +2 -0
  130. package/7331.min.js.LICENSE.txt +1 -0
  131. package/7423.min.js +2 -0
  132. package/7423.min.js.LICENSE.txt +1 -0
  133. package/7517.min.js +2 -0
  134. package/7517.min.js.LICENSE.txt +1 -0
  135. package/7725.min.js +2 -0
  136. package/7725.min.js.LICENSE.txt +1 -0
  137. package/7757.min.js +2 -0
  138. package/7757.min.js.LICENSE.txt +1 -0
  139. package/7769.min.js +2 -0
  140. package/7769.min.js.LICENSE.txt +1 -0
  141. package/7835.min.js +2 -0
  142. package/7835.min.js.LICENSE.txt +1 -0
  143. package/7859.min.js +2 -0
  144. package/7859.min.js.LICENSE.txt +1 -0
  145. package/7886.min.js +2 -0
  146. package/7886.min.js.LICENSE.txt +1 -0
  147. package/7890.min.js +2 -0
  148. package/7890.min.js.LICENSE.txt +1 -0
  149. package/8158.min.js +2 -0
  150. package/8158.min.js.LICENSE.txt +1 -0
  151. package/8883.min.js +2 -0
  152. package/8883.min.js.LICENSE.txt +1 -0
  153. package/889.min.js +2 -0
  154. package/889.min.js.LICENSE.txt +1 -0
  155. package/9062.min.js +2 -0
  156. package/9062.min.js.LICENSE.txt +1 -0
  157. package/9126.min.js +2 -0
  158. package/9126.min.js.LICENSE.txt +1 -0
  159. package/9133.min.js +2 -0
  160. package/9133.min.js.LICENSE.txt +1 -0
  161. package/9376.min.js +2 -0
  162. package/9376.min.js.LICENSE.txt +1 -0
  163. package/9431.min.js +2 -0
  164. package/9431.min.js.LICENSE.txt +1 -0
  165. package/9530.min.js +2 -0
  166. package/9530.min.js.LICENSE.txt +1 -0
  167. package/9532.min.js +2 -0
  168. package/9532.min.js.LICENSE.txt +1 -0
  169. package/9921.min.js +2 -0
  170. package/9921.min.js.LICENSE.txt +1 -0
  171. package/basic_dist_browser_index_js.js +30 -0
  172. package/browser/index.js +1 -25
  173. package/cjs/index.js +49 -50
  174. package/engine_dist_browser_Core_Container_js.js +90 -0
  175. package/engine_dist_browser_Core_Particle_js.js +30 -0
  176. package/esm/index.js +1 -25
  177. package/interactions_external_attract_dist_browser_Attractor_js.js +30 -0
  178. package/interactions_external_attract_dist_browser_Utils_js.js +30 -0
  179. package/interactions_external_attract_dist_browser_index_js.js +50 -0
  180. package/interactions_external_bounce_dist_browser_Bouncer_js.js +30 -0
  181. package/interactions_external_bounce_dist_browser_Utils_js.js +30 -0
  182. package/interactions_external_bounce_dist_browser_index_js.js +50 -0
  183. package/interactions_external_bubble_dist_browser_Bubbler_js.js +40 -0
  184. package/interactions_external_bubble_dist_browser_index_js.js +90 -0
  185. package/interactions_external_connect_dist_browser_Connector_js.js +40 -0
  186. package/interactions_external_connect_dist_browser_index_js.js +70 -0
  187. package/interactions_external_grab_dist_browser_Grabber_js.js +40 -0
  188. package/interactions_external_grab_dist_browser_index_js.js +70 -0
  189. package/interactions_external_pause_dist_browser_Pauser_js.js +30 -0
  190. package/interactions_external_pause_dist_browser_index_js.js +30 -0
  191. package/interactions_external_push_dist_browser_Pusher_js.js +30 -0
  192. package/interactions_external_push_dist_browser_index_js.js +50 -0
  193. package/interactions_external_remove_dist_browser_Remover_js.js +30 -0
  194. package/interactions_external_remove_dist_browser_index_js.js +50 -0
  195. package/interactions_external_repulse_dist_browser_Repulser_js.js +30 -0
  196. package/interactions_external_repulse_dist_browser_index_js.js +90 -0
  197. package/interactions_external_slow_dist_browser_Slower_js.js +30 -0
  198. package/interactions_external_slow_dist_browser_index_js.js +50 -0
  199. package/interactions_particles_attract_dist_browser_Attractor_js.js +30 -0
  200. package/interactions_particles_attract_dist_browser_index_js.js +30 -0
  201. package/interactions_particles_collisions_dist_browser_Absorb_js.js +30 -0
  202. package/interactions_particles_collisions_dist_browser_Bounce_js.js +30 -0
  203. package/interactions_particles_collisions_dist_browser_Collider_js.js +40 -0
  204. package/interactions_particles_collisions_dist_browser_Destroy_js.js +40 -0
  205. package/interactions_particles_collisions_dist_browser_index_js.js +30 -0
  206. package/interactions_particles_links_dist_browser_CircleWarp_js.js +30 -0
  207. package/interactions_particles_links_dist_browser_LinkInstance_js.js +40 -0
  208. package/interactions_particles_links_dist_browser_Linker_js.js +30 -0
  209. package/interactions_particles_links_dist_browser_index_js.js +110 -0
  210. package/move_base_dist_browser_BaseMover_js.js +30 -0
  211. package/move_base_dist_browser_Utils_js.js +30 -0
  212. package/move_base_dist_browser_index_js.js +30 -0
  213. package/move_parallax_dist_browser_ParallaxMover_js.js +30 -0
  214. package/move_parallax_dist_browser_index_js.js +30 -0
  215. package/package.json +27 -27
  216. package/plugins_easings_quad_dist_browser_index_js.js +30 -0
  217. package/report.html +3 -3
  218. package/shapes_circle_dist_browser_CircleDrawer_js.js +30 -0
  219. package/shapes_circle_dist_browser_Utils_js.js +30 -0
  220. package/shapes_circle_dist_browser_index_js.js +30 -0
  221. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +30 -0
  222. package/shapes_emoji_dist_browser_Utils_js.js +30 -0
  223. package/shapes_emoji_dist_browser_index_js.js +40 -0
  224. package/shapes_image_dist_browser_GifUtils_Utils_js.js +50 -0
  225. package/shapes_image_dist_browser_ImageDrawer_js.js +30 -0
  226. package/shapes_image_dist_browser_ImagePreloader_js.js +40 -0
  227. package/shapes_image_dist_browser_index_js.js +40 -0
  228. package/shapes_line_dist_browser_LineDrawer_js.js +30 -0
  229. package/shapes_line_dist_browser_Utils_js.js +30 -0
  230. package/shapes_line_dist_browser_index_js.js +30 -0
  231. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +40 -0
  232. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +40 -0
  233. package/shapes_polygon_dist_browser_Utils_js.js +30 -0
  234. package/shapes_polygon_dist_browser_index_js.js +30 -0
  235. package/shapes_square_dist_browser_SquareDrawer_js.js +30 -0
  236. package/shapes_square_dist_browser_Utils_js.js +30 -0
  237. package/shapes_square_dist_browser_index_js.js +30 -0
  238. package/shapes_star_dist_browser_StarDrawer_js.js +30 -0
  239. package/shapes_star_dist_browser_Utils_js.js +30 -0
  240. package/shapes_star_dist_browser_index_js.js +30 -0
  241. package/tsparticles.slim.bundle.js +2118 -10537
  242. package/tsparticles.slim.bundle.min.js +1 -1
  243. package/tsparticles.slim.bundle.min.js.LICENSE.txt +1 -1
  244. package/tsparticles.slim.js +180 -174
  245. package/tsparticles.slim.min.js +1 -1
  246. package/tsparticles.slim.min.js.LICENSE.txt +1 -1
  247. package/umd/index.js +51 -51
  248. package/updaters_color_dist_browser_ColorUpdater_js.js +30 -0
  249. package/updaters_color_dist_browser_index_js.js +30 -0
  250. package/updaters_life_dist_browser_LifeUpdater_js.js +60 -0
  251. package/updaters_life_dist_browser_Utils_js.js +30 -0
  252. package/updaters_life_dist_browser_index_js.js +30 -0
  253. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +30 -0
  254. package/updaters_opacity_dist_browser_index_js.js +30 -0
  255. package/updaters_outModes_dist_browser_BounceOutMode_js.js +30 -0
  256. package/updaters_outModes_dist_browser_DestroyOutMode_js.js +30 -0
  257. package/updaters_outModes_dist_browser_NoneOutMode_js.js +30 -0
  258. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +30 -0
  259. package/updaters_outModes_dist_browser_OutOutMode_js.js +30 -0
  260. package/updaters_outModes_dist_browser_Utils_js.js +30 -0
  261. package/updaters_outModes_dist_browser_index_js.js +30 -0
  262. package/updaters_rotate_dist_browser_RotateUpdater_js.js +50 -0
  263. package/updaters_rotate_dist_browser_index_js.js +30 -0
  264. package/updaters_size_dist_browser_SizeUpdater_js.js +30 -0
  265. package/updaters_size_dist_browser_index_js.js +30 -0
  266. package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +30 -0
  267. package/updaters_strokeColor_dist_browser_index_js.js +30 -0
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["plugins_easings_quad_dist_browser_index_js"],{
19
+
20
+ /***/ "../../plugins/easings/quad/dist/browser/index.js":
21
+ /*!********************************************************!*\
22
+ !*** ../../plugins/easings/quad/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 */ loadEasingQuadPlugin: () => (/* binding */ loadEasingQuadPlugin)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nasync function loadEasingQuadPlugin() {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.addEasing)(\"ease-in-quad\", value => value ** 2);\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.addEasing)(\"ease-out-quad\", value => 1 - (1 - value) ** 2);\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.addEasing)(\"ease-in-out-quad\", value => value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2);\n await Promise.resolve();\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../plugins/easings/quad/dist/browser/index.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
package/report.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8"/>
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
- <title>@tsparticles/slim [13 Jan 2024 at 23:11]</title>
6
+ <title>@tsparticles/slim [31 Jan 2024 at 02:14]</title>
7
7
  <link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
8
8
 
9
9
  <script>
@@ -31,8 +31,8 @@
31
31
  <body>
32
32
  <div id="app"></div>
33
33
  <script>
34
- window.chartData = [{"label":"tsparticles.slim.bundle.js","isAsset":true,"statSize":319083,"parsedSize":319804,"gzipSize":57867,"groups":[{"label":"dist/browser","path":"./dist/browser","statSize":319083,"groups":[{"id":510,"label":"bundle.js + 190 modules (concatenated)","path":"./dist/browser/bundle.js + 190 modules (concatenated)","statSize":319083,"parsedSize":319804,"gzipSize":57867,"concatenated":true,"groups":[{"label":"dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/dist/browser","statSize":3321,"groups":[{"id":null,"label":"bundle.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/dist/browser/bundle.js","statSize":166,"parsedSize":166,"gzipSize":30,"inaccurateSizes":true},{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/dist/browser/index.js","statSize":3155,"parsedSize":3162,"gzipSize":572,"inaccurateSizes":true}],"parsedSize":3328,"gzipSize":602,"inaccurateSizes":true},{"label":"..","path":"./dist/browser/bundle.js + 190 modules (concatenated)/..","statSize":315046,"groups":[{"label":"engine/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser","statSize":166626,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/index.js","statSize":246,"parsedSize":246,"gzipSize":44,"inaccurateSizes":true},{"id":null,"label":"init.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/init.js","statSize":481,"parsedSize":482,"gzipSize":87,"inaccurateSizes":true},{"label":"Utils","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils","statSize":38639,"groups":[{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/Utils.js","statSize":13650,"parsedSize":13680,"gzipSize":2475,"inaccurateSizes":true},{"id":null,"label":"NumberUtils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/NumberUtils.js","statSize":4926,"parsedSize":4937,"gzipSize":893,"inaccurateSizes":true},{"id":null,"label":"CanvasUtils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/CanvasUtils.js","statSize":4797,"parsedSize":4807,"gzipSize":869,"inaccurateSizes":true},{"id":null,"label":"ColorUtils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/ColorUtils.js","statSize":11309,"parsedSize":11334,"gzipSize":2050,"inaccurateSizes":true},{"id":null,"label":"OptionsUtils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/OptionsUtils.js","statSize":436,"parsedSize":436,"gzipSize":79,"inaccurateSizes":true},{"id":null,"label":"HslColorManager.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/HslColorManager.js","statSize":1306,"parsedSize":1308,"gzipSize":236,"inaccurateSizes":true},{"id":null,"label":"RgbColorManager.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/RgbColorManager.js","statSize":1144,"parsedSize":1146,"gzipSize":207,"inaccurateSizes":true},{"id":null,"label":"EventDispatcher.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Utils/EventDispatcher.js","statSize":1071,"parsedSize":1073,"gzipSize":194,"inaccurateSizes":true}],"parsedSize":38726,"gzipSize":7007,"inaccurateSizes":true},{"id":null,"label":"exports.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/exports.js","statSize":4900,"parsedSize":4911,"gzipSize":888,"inaccurateSizes":true},{"label":"Core","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core","statSize":86097,"groups":[{"id":null,"label":"Engine.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Engine.js","statSize":8232,"parsedSize":8250,"gzipSize":1492,"inaccurateSizes":true},{"label":"Utils","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils","statSize":22328,"groups":[{"id":null,"label":"Vector.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/Vector.js","statSize":400,"parsedSize":400,"gzipSize":72,"inaccurateSizes":true},{"id":null,"label":"Vector3d.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/Vector3d.js","statSize":2609,"parsedSize":2614,"gzipSize":473,"inaccurateSizes":true},{"id":null,"label":"Constants.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/Constants.js","statSize":700,"parsedSize":701,"gzipSize":126,"inaccurateSizes":true},{"id":null,"label":"Circle.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/Circle.js","statSize":1118,"parsedSize":1120,"gzipSize":202,"inaccurateSizes":true},{"id":null,"label":"Rectangle.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/Rectangle.js","statSize":913,"parsedSize":915,"gzipSize":165,"inaccurateSizes":true},{"id":null,"label":"Range.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/Range.js","statSize":100,"parsedSize":100,"gzipSize":18,"inaccurateSizes":true},{"id":null,"label":"Point.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/Point.js","statSize":122,"parsedSize":122,"gzipSize":22,"inaccurateSizes":true},{"id":null,"label":"ExternalInteractorBase.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/ExternalInteractorBase.js","statSize":130,"parsedSize":130,"gzipSize":23,"inaccurateSizes":true},{"id":null,"label":"ParticlesInteractorBase.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/ParticlesInteractorBase.js","statSize":132,"parsedSize":132,"gzipSize":23,"inaccurateSizes":true},{"id":null,"label":"EventListeners.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/EventListeners.js","statSize":12452,"parsedSize":12480,"gzipSize":2258,"inaccurateSizes":true},{"id":null,"label":"QuadTree.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/QuadTree.js","statSize":2010,"parsedSize":2014,"gzipSize":364,"inaccurateSizes":true},{"id":null,"label":"InteractionManager.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Utils/InteractionManager.js","statSize":1642,"parsedSize":1645,"gzipSize":297,"inaccurateSizes":true}],"parsedSize":22378,"gzipSize":4049,"inaccurateSizes":true},{"id":null,"label":"Container.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Container.js","statSize":14000,"parsedSize":14031,"gzipSize":2538,"inaccurateSizes":true},{"id":null,"label":"Canvas.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Canvas.js","statSize":14158,"parsedSize":14189,"gzipSize":2567,"inaccurateSizes":true},{"id":null,"label":"Particles.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Particles.js","statSize":11564,"parsedSize":11590,"gzipSize":2097,"inaccurateSizes":true},{"id":null,"label":"Retina.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Retina.js","statSize":1798,"parsedSize":1802,"gzipSize":326,"inaccurateSizes":true},{"id":null,"label":"Particle.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Core/Particle.js","statSize":14017,"parsedSize":14048,"gzipSize":2542,"inaccurateSizes":true}],"parsedSize":86291,"gzipSize":15614,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes","statSize":36263,"groups":[{"id":null,"label":"Options.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Options.js","statSize":5502,"parsedSize":5514,"gzipSize":997,"inaccurateSizes":true},{"label":"Background","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Background","statSize":815,"groups":[{"id":null,"label":"Background.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Background/Background.js","statSize":815,"parsedSize":816,"gzipSize":147,"inaccurateSizes":true}],"parsedSize":816,"gzipSize":147,"inaccurateSizes":true},{"id":null,"label":"OptionsColor.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/OptionsColor.js","statSize":536,"parsedSize":537,"gzipSize":97,"inaccurateSizes":true},{"label":"BackgroundMask","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/BackgroundMask","statSize":1193,"groups":[{"id":null,"label":"BackgroundMask.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/BackgroundMask/BackgroundMask.js","statSize":753,"parsedSize":754,"gzipSize":136,"inaccurateSizes":true},{"id":null,"label":"BackgroundMaskCover.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js","statSize":440,"parsedSize":440,"gzipSize":79,"inaccurateSizes":true}],"parsedSize":1195,"gzipSize":216,"inaccurateSizes":true},{"label":"Interactivity","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity","statSize":3745,"groups":[{"id":null,"label":"Interactivity.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Interactivity.js","statSize":503,"parsedSize":504,"gzipSize":91,"inaccurateSizes":true},{"label":"Events","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Events","statSize":2739,"groups":[{"id":null,"label":"Events.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Events/Events.js","statSize":821,"parsedSize":822,"gzipSize":148,"inaccurateSizes":true},{"id":null,"label":"ClickEvent.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Events/ClickEvent.js","statSize":296,"parsedSize":296,"gzipSize":53,"inaccurateSizes":true},{"id":null,"label":"DivEvent.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Events/DivEvent.js","statSize":500,"parsedSize":501,"gzipSize":90,"inaccurateSizes":true},{"id":null,"label":"HoverEvent.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Events/HoverEvent.js","statSize":413,"parsedSize":413,"gzipSize":74,"inaccurateSizes":true},{"id":null,"label":"Parallax.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Events/Parallax.js","statSize":395,"parsedSize":395,"gzipSize":71,"inaccurateSizes":true},{"id":null,"label":"ResizeEvent.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Events/ResizeEvent.js","statSize":314,"parsedSize":314,"gzipSize":56,"inaccurateSizes":true}],"parsedSize":2745,"gzipSize":496,"inaccurateSizes":true},{"label":"Modes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Modes","statSize":503,"groups":[{"id":null,"label":"Modes.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Interactivity/Modes/Modes.js","statSize":503,"parsedSize":504,"gzipSize":91,"inaccurateSizes":true}],"parsedSize":504,"gzipSize":91,"inaccurateSizes":true}],"parsedSize":3753,"gzipSize":679,"inaccurateSizes":true},{"id":null,"label":"ManualParticle.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/ManualParticle.js","statSize":451,"parsedSize":452,"gzipSize":81,"inaccurateSizes":true},{"id":null,"label":"Responsive.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Responsive.js","statSize":572,"parsedSize":573,"gzipSize":103,"inaccurateSizes":true},{"label":"Theme","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Theme","statSize":855,"groups":[{"id":null,"label":"Theme.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Theme/Theme.js","statSize":465,"parsedSize":466,"gzipSize":84,"inaccurateSizes":true},{"id":null,"label":"ThemeDefault.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Theme/ThemeDefault.js","statSize":390,"parsedSize":390,"gzipSize":70,"inaccurateSizes":true}],"parsedSize":856,"gzipSize":155,"inaccurateSizes":true},{"label":"Particles","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles","statSize":18510,"groups":[{"id":null,"label":"ParticlesOptions.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/ParticlesOptions.js","statSize":3102,"parsedSize":3109,"gzipSize":562,"inaccurateSizes":true},{"label":"Collisions","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Collisions","statSize":1422,"groups":[{"id":null,"label":"Collisions.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Collisions/Collisions.js","statSize":905,"parsedSize":907,"gzipSize":164,"inaccurateSizes":true},{"id":null,"label":"CollisionsAbsorb.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js","statSize":204,"parsedSize":204,"gzipSize":36,"inaccurateSizes":true},{"id":null,"label":"CollisionsOverlap.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js","statSize":313,"parsedSize":313,"gzipSize":56,"inaccurateSizes":true}],"parsedSize":1425,"gzipSize":257,"inaccurateSizes":true},{"label":"Bounce","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Bounce","statSize":537,"groups":[{"id":null,"label":"ParticlesBounce.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js","statSize":360,"parsedSize":360,"gzipSize":65,"inaccurateSizes":true},{"id":null,"label":"ParticlesBounceFactor.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js","statSize":177,"parsedSize":177,"gzipSize":32,"inaccurateSizes":true}],"parsedSize":538,"gzipSize":97,"inaccurateSizes":true},{"label":"Move","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move","statSize":7212,"groups":[{"id":null,"label":"Move.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/Move.js","statSize":2663,"parsedSize":2669,"gzipSize":482,"inaccurateSizes":true},{"id":null,"label":"MoveAngle.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/MoveAngle.js","statSize":391,"parsedSize":391,"gzipSize":70,"inaccurateSizes":true},{"id":null,"label":"MoveAttract.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/MoveAttract.js","statSize":706,"parsedSize":707,"gzipSize":128,"inaccurateSizes":true},{"id":null,"label":"MoveGravity.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/MoveGravity.js","statSize":638,"parsedSize":639,"gzipSize":115,"inaccurateSizes":true},{"label":"Path","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/Path","statSize":647,"groups":[{"id":null,"label":"MovePath.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/Path/MovePath.js","statSize":647,"parsedSize":648,"gzipSize":117,"inaccurateSizes":true}],"parsedSize":648,"gzipSize":117,"inaccurateSizes":true},{"id":null,"label":"MoveTrail.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/MoveTrail.js","statSize":466,"parsedSize":467,"gzipSize":84,"inaccurateSizes":true},{"id":null,"label":"Spin.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/Spin.js","statSize":543,"parsedSize":544,"gzipSize":98,"inaccurateSizes":true},{"id":null,"label":"MoveCenter.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/MoveCenter.js","statSize":455,"parsedSize":456,"gzipSize":82,"inaccurateSizes":true},{"id":null,"label":"OutModes.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/OutModes.js","statSize":384,"parsedSize":384,"gzipSize":69,"inaccurateSizes":true},{"id":null,"label":"MoveTrailFill.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Move/MoveTrailFill.js","statSize":319,"parsedSize":319,"gzipSize":57,"inaccurateSizes":true}],"parsedSize":7228,"gzipSize":1307,"inaccurateSizes":true},{"label":"Opacity","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Opacity","statSize":862,"groups":[{"id":null,"label":"Opacity.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Opacity/Opacity.js","statSize":491,"parsedSize":492,"gzipSize":89,"inaccurateSizes":true},{"id":null,"label":"OpacityAnimation.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js","statSize":371,"parsedSize":371,"gzipSize":67,"inaccurateSizes":true}],"parsedSize":863,"gzipSize":156,"inaccurateSizes":true},{"id":null,"label":"Shadow.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Shadow.js","statSize":743,"parsedSize":744,"gzipSize":134,"inaccurateSizes":true},{"label":"Shape","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Shape","statSize":726,"groups":[{"id":null,"label":"Shape.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Shape/Shape.js","statSize":726,"parsedSize":727,"gzipSize":131,"inaccurateSizes":true}],"parsedSize":727,"gzipSize":131,"inaccurateSizes":true},{"label":"Size","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Size","statSize":847,"groups":[{"id":null,"label":"Size.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Size/Size.js","statSize":479,"parsedSize":480,"gzipSize":86,"inaccurateSizes":true},{"id":null,"label":"SizeAnimation.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Size/SizeAnimation.js","statSize":368,"parsedSize":368,"gzipSize":66,"inaccurateSizes":true}],"parsedSize":848,"gzipSize":153,"inaccurateSizes":true},{"id":null,"label":"Stroke.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Stroke.js","statSize":532,"parsedSize":533,"gzipSize":96,"inaccurateSizes":true},{"label":"ZIndex","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/ZIndex","statSize":563,"groups":[{"id":null,"label":"ZIndex.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/ZIndex/ZIndex.js","statSize":563,"parsedSize":564,"gzipSize":102,"inaccurateSizes":true}],"parsedSize":564,"gzipSize":102,"inaccurateSizes":true},{"label":"Number","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Number","statSize":1239,"groups":[{"id":null,"label":"ParticlesNumber.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Number/ParticlesNumber.js","statSize":485,"parsedSize":486,"gzipSize":87,"inaccurateSizes":true},{"id":null,"label":"ParticlesDensity.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Number/ParticlesDensity.js","statSize":450,"parsedSize":451,"gzipSize":81,"inaccurateSizes":true},{"id":null,"label":"ParticlesNumberLimit.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js","statSize":304,"parsedSize":304,"gzipSize":55,"inaccurateSizes":true}],"parsedSize":1241,"gzipSize":224,"inaccurateSizes":true},{"label":"Effect","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Effect","statSize":725,"groups":[{"id":null,"label":"Effect.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/Particles/Effect/Effect.js","statSize":725,"parsedSize":726,"gzipSize":131,"inaccurateSizes":true}],"parsedSize":726,"gzipSize":131,"inaccurateSizes":true}],"parsedSize":18551,"gzipSize":3356,"inaccurateSizes":true},{"id":null,"label":"AnimatableColor.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/AnimatableColor.js","statSize":922,"parsedSize":924,"gzipSize":167,"inaccurateSizes":true},{"id":null,"label":"HslAnimation.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/HslAnimation.js","statSize":341,"parsedSize":341,"gzipSize":61,"inaccurateSizes":true},{"id":null,"label":"ColorAnimation.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/ColorAnimation.js","statSize":421,"parsedSize":421,"gzipSize":76,"inaccurateSizes":true},{"id":null,"label":"AnimationOptions.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/AnimationOptions.js","statSize":1189,"parsedSize":1191,"gzipSize":215,"inaccurateSizes":true},{"id":null,"label":"ValueWithRandom.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/ValueWithRandom.js","statSize":909,"parsedSize":911,"gzipSize":164,"inaccurateSizes":true},{"label":"FullScreen","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/FullScreen","statSize":302,"groups":[{"id":null,"label":"FullScreen.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../engine/dist/browser/Options/Classes/FullScreen/FullScreen.js","statSize":302,"parsedSize":302,"gzipSize":54,"inaccurateSizes":true}],"parsedSize":302,"gzipSize":54,"inaccurateSizes":true}],"parsedSize":36344,"gzipSize":6576,"inaccurateSizes":true}],"parsedSize":167002,"gzipSize":30218,"inaccurateSizes":true},{"label":"plugins/easings/quad/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../plugins/easings/quad/dist/browser","statSize":339,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../plugins/easings/quad/dist/browser/index.js","statSize":339,"parsedSize":339,"gzipSize":61,"inaccurateSizes":true}],"parsedSize":339,"gzipSize":61,"inaccurateSizes":true},{"label":"shapes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes","statSize":36440,"groups":[{"label":"emoji/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/emoji/dist/browser","statSize":3386,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/emoji/dist/browser/index.js","statSize":189,"parsedSize":189,"gzipSize":34,"inaccurateSizes":true},{"id":null,"label":"EmojiDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/emoji/dist/browser/EmojiDrawer.js","statSize":3197,"parsedSize":3204,"gzipSize":579,"inaccurateSizes":true}],"parsedSize":3393,"gzipSize":614,"inaccurateSizes":true},{"label":"image/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser","statSize":26978,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/index.js","statSize":1615,"parsedSize":1618,"gzipSize":292,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/Utils.js","statSize":3361,"parsedSize":3368,"gzipSize":609,"inaccurateSizes":true},{"id":null,"label":"ImageDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/ImageDrawer.js","statSize":7225,"parsedSize":7241,"gzipSize":1310,"inaccurateSizes":true},{"id":null,"label":"ImagePreloader.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/ImagePreloader.js","statSize":764,"parsedSize":765,"gzipSize":138,"inaccurateSizes":true},{"label":"GifUtils","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/GifUtils","statSize":13423,"groups":[{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/GifUtils/Utils.js","statSize":11800,"parsedSize":11826,"gzipSize":2139,"inaccurateSizes":true},{"id":null,"label":"Constants.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/GifUtils/Constants.js","statSize":89,"parsedSize":89,"gzipSize":16,"inaccurateSizes":true},{"id":null,"label":"ByteStream.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/GifUtils/ByteStream.js","statSize":1534,"parsedSize":1537,"gzipSize":278,"inaccurateSizes":true}],"parsedSize":13453,"gzipSize":2434,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/Options/Classes","statSize":590,"groups":[{"id":null,"label":"Preload.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/image/dist/browser/Options/Classes/Preload.js","statSize":590,"parsedSize":591,"gzipSize":106,"inaccurateSizes":true}],"parsedSize":591,"gzipSize":106,"inaccurateSizes":true}],"parsedSize":27038,"gzipSize":4892,"inaccurateSizes":true},{"label":"polygon/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/polygon/dist/browser","statSize":2738,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/polygon/dist/browser/index.js","statSize":542,"parsedSize":543,"gzipSize":98,"inaccurateSizes":true},{"id":null,"label":"PolygonDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/polygon/dist/browser/PolygonDrawer.js","statSize":567,"parsedSize":568,"gzipSize":102,"inaccurateSizes":true},{"id":null,"label":"TriangleDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/polygon/dist/browser/TriangleDrawer.js","statSize":497,"parsedSize":498,"gzipSize":90,"inaccurateSizes":true},{"id":null,"label":"PolygonDrawerBase.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/polygon/dist/browser/PolygonDrawerBase.js","statSize":1132,"parsedSize":1134,"gzipSize":205,"inaccurateSizes":true}],"parsedSize":2744,"gzipSize":496,"inaccurateSizes":true},{"label":"square/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/square/dist/browser","statSize":597,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/square/dist/browser/index.js","statSize":189,"parsedSize":189,"gzipSize":34,"inaccurateSizes":true},{"id":null,"label":"SquareDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/square/dist/browser/SquareDrawer.js","statSize":408,"parsedSize":408,"gzipSize":73,"inaccurateSizes":true}],"parsedSize":598,"gzipSize":108,"inaccurateSizes":true},{"label":"star/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/star/dist/browser","statSize":1072,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/star/dist/browser/index.js","statSize":169,"parsedSize":169,"gzipSize":30,"inaccurateSizes":true},{"id":null,"label":"StarDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/star/dist/browser/StarDrawer.js","statSize":903,"parsedSize":905,"gzipSize":163,"inaccurateSizes":true}],"parsedSize":1074,"gzipSize":194,"inaccurateSizes":true},{"label":"line/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/line/dist/browser","statSize":532,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/line/dist/browser/index.js","statSize":169,"parsedSize":169,"gzipSize":30,"inaccurateSizes":true},{"id":null,"label":"LineDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/line/dist/browser/LineDrawer.js","statSize":363,"parsedSize":363,"gzipSize":65,"inaccurateSizes":true}],"parsedSize":533,"gzipSize":96,"inaccurateSizes":true},{"label":"circle/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/circle/dist/browser","statSize":1137,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/circle/dist/browser/index.js","statSize":179,"parsedSize":179,"gzipSize":32,"inaccurateSizes":true},{"id":null,"label":"CircleDrawer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../shapes/circle/dist/browser/CircleDrawer.js","statSize":958,"parsedSize":960,"gzipSize":173,"inaccurateSizes":true}],"parsedSize":1139,"gzipSize":206,"inaccurateSizes":true}],"parsedSize":36522,"gzipSize":6608,"inaccurateSizes":true},{"label":"interactions","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions","statSize":75055,"groups":[{"label":"external","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external","statSize":52057,"groups":[{"label":"attract/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/attract/dist/browser","statSize":6431,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/attract/dist/browser/index.js","statSize":325,"parsedSize":325,"gzipSize":58,"inaccurateSizes":true},{"id":null,"label":"Attractor.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/attract/dist/browser/Attractor.js","statSize":5383,"parsedSize":5395,"gzipSize":976,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/attract/dist/browser/Options/Classes","statSize":723,"groups":[{"id":null,"label":"Attract.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/attract/dist/browser/Options/Classes/Attract.js","statSize":723,"parsedSize":724,"gzipSize":131,"inaccurateSizes":true}],"parsedSize":724,"gzipSize":131,"inaccurateSizes":true}],"parsedSize":6445,"gzipSize":1166,"inaccurateSizes":true},{"label":"bounce/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bounce/dist/browser","statSize":4502,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bounce/dist/browser/index.js","statSize":307,"parsedSize":307,"gzipSize":55,"inaccurateSizes":true},{"id":null,"label":"Bouncer.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bounce/dist/browser/Bouncer.js","statSize":3987,"parsedSize":3996,"gzipSize":723,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bounce/dist/browser/Options/Classes","statSize":208,"groups":[{"id":null,"label":"Bounce.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bounce/dist/browser/Options/Classes/Bounce.js","statSize":208,"parsedSize":208,"gzipSize":37,"inaccurateSizes":true}],"parsedSize":208,"gzipSize":37,"inaccurateSizes":true}],"parsedSize":4512,"gzipSize":816,"inaccurateSizes":true},{"label":"bubble/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser","statSize":14590,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser/index.js","statSize":509,"parsedSize":510,"gzipSize":92,"inaccurateSizes":true},{"id":null,"label":"Bubbler.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser/Bubbler.js","statSize":12001,"parsedSize":12028,"gzipSize":2176,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser/Options/Classes","statSize":1626,"groups":[{"id":null,"label":"Bubble.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser/Options/Classes/Bubble.js","statSize":419,"parsedSize":419,"gzipSize":75,"inaccurateSizes":true},{"id":null,"label":"BubbleBase.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser/Options/Classes/BubbleBase.js","statSize":893,"parsedSize":895,"gzipSize":161,"inaccurateSizes":true},{"id":null,"label":"BubbleDiv.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser/Options/Classes/BubbleDiv.js","statSize":314,"parsedSize":314,"gzipSize":56,"inaccurateSizes":true}],"parsedSize":1629,"gzipSize":294,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/bubble/dist/browser/Utils.js","statSize":454,"parsedSize":455,"gzipSize":82,"inaccurateSizes":true}],"parsedSize":14622,"gzipSize":2645,"inaccurateSizes":true},{"label":"connect/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/connect/dist/browser","statSize":5153,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/connect/dist/browser/index.js","statSize":423,"parsedSize":423,"gzipSize":76,"inaccurateSizes":true},{"id":null,"label":"Connector.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/connect/dist/browser/Connector.js","statSize":2444,"parsedSize":2449,"gzipSize":443,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/connect/dist/browser/Options/Classes","statSize":636,"groups":[{"id":null,"label":"Connect.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/connect/dist/browser/Options/Classes/Connect.js","statSize":426,"parsedSize":426,"gzipSize":77,"inaccurateSizes":true},{"id":null,"label":"ConnectLinks.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/connect/dist/browser/Options/Classes/ConnectLinks.js","statSize":210,"parsedSize":210,"gzipSize":38,"inaccurateSizes":true}],"parsedSize":637,"gzipSize":115,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/connect/dist/browser/Utils.js","statSize":1650,"parsedSize":1653,"gzipSize":299,"inaccurateSizes":true}],"parsedSize":5164,"gzipSize":934,"inaccurateSizes":true},{"label":"grab/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/grab/dist/browser","statSize":4658,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/grab/dist/browser/index.js","statSize":399,"parsedSize":399,"gzipSize":72,"inaccurateSizes":true},{"id":null,"label":"Grabber.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/grab/dist/browser/Grabber.js","statSize":2794,"parsedSize":2800,"gzipSize":506,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/grab/dist/browser/Options/Classes","statSize":882,"groups":[{"id":null,"label":"Grab.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/grab/dist/browser/Options/Classes/Grab.js","statSize":317,"parsedSize":317,"gzipSize":57,"inaccurateSizes":true},{"id":null,"label":"GrabLinks.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/grab/dist/browser/Options/Classes/GrabLinks.js","statSize":565,"parsedSize":566,"gzipSize":102,"inaccurateSizes":true}],"parsedSize":883,"gzipSize":159,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/grab/dist/browser/Utils.js","statSize":583,"parsedSize":584,"gzipSize":105,"inaccurateSizes":true}],"parsedSize":4668,"gzipSize":844,"inaccurateSizes":true},{"label":"pause/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/pause/dist/browser","statSize":761,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/pause/dist/browser/index.js","statSize":208,"parsedSize":208,"gzipSize":37,"inaccurateSizes":true},{"id":null,"label":"Pauser.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/pause/dist/browser/Pauser.js","statSize":553,"parsedSize":554,"gzipSize":100,"inaccurateSizes":true}],"parsedSize":762,"gzipSize":138,"inaccurateSizes":true},{"label":"push/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/push/dist/browser","statSize":2132,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/push/dist/browser/index.js","statSize":296,"parsedSize":296,"gzipSize":53,"inaccurateSizes":true},{"id":null,"label":"Pusher.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/push/dist/browser/Pusher.js","statSize":1260,"parsedSize":1262,"gzipSize":228,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/push/dist/browser/Options/Classes","statSize":576,"groups":[{"id":null,"label":"Push.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/push/dist/browser/Options/Classes/Push.js","statSize":576,"parsedSize":577,"gzipSize":104,"inaccurateSizes":true}],"parsedSize":577,"gzipSize":104,"inaccurateSizes":true}],"parsedSize":2136,"gzipSize":386,"inaccurateSizes":true},{"label":"remove/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/remove/dist/browser","statSize":1530,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/remove/dist/browser/index.js","statSize":307,"parsedSize":307,"gzipSize":55,"inaccurateSizes":true},{"id":null,"label":"Remover.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/remove/dist/browser/Remover.js","statSize":923,"parsedSize":925,"gzipSize":167,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/remove/dist/browser/Options/Classes","statSize":300,"groups":[{"id":null,"label":"Remove.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/remove/dist/browser/Options/Classes/Remove.js","statSize":300,"parsedSize":300,"gzipSize":54,"inaccurateSizes":true}],"parsedSize":300,"gzipSize":54,"inaccurateSizes":true}],"parsedSize":1533,"gzipSize":277,"inaccurateSizes":true},{"label":"repulse/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/repulse/dist/browser","statSize":9827,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/repulse/dist/browser/index.js","statSize":528,"parsedSize":529,"gzipSize":95,"inaccurateSizes":true},{"id":null,"label":"Repulser.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/repulse/dist/browser/Repulser.js","statSize":7826,"parsedSize":7843,"gzipSize":1419,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/repulse/dist/browser/Options/Classes","statSize":1473,"groups":[{"id":null,"label":"Repulse.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/repulse/dist/browser/Options/Classes/Repulse.js","statSize":426,"parsedSize":426,"gzipSize":77,"inaccurateSizes":true},{"id":null,"label":"RepulseBase.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/repulse/dist/browser/Options/Classes/RepulseBase.js","statSize":729,"parsedSize":730,"gzipSize":132,"inaccurateSizes":true},{"id":null,"label":"RepulseDiv.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/repulse/dist/browser/Options/Classes/RepulseDiv.js","statSize":318,"parsedSize":318,"gzipSize":57,"inaccurateSizes":true}],"parsedSize":1476,"gzipSize":267,"inaccurateSizes":true}],"parsedSize":9849,"gzipSize":1782,"inaccurateSizes":true},{"label":"slow/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/slow/dist/browser","statSize":2473,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/slow/dist/browser/index.js","statSize":296,"parsedSize":296,"gzipSize":53,"inaccurateSizes":true},{"id":null,"label":"Slower.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/slow/dist/browser/Slower.js","statSize":1882,"parsedSize":1886,"gzipSize":341,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/slow/dist/browser/Options/Classes","statSize":295,"groups":[{"id":null,"label":"Slow.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/external/slow/dist/browser/Options/Classes/Slow.js","statSize":295,"parsedSize":295,"gzipSize":53,"inaccurateSizes":true}],"parsedSize":295,"gzipSize":53,"inaccurateSizes":true}],"parsedSize":2478,"gzipSize":448,"inaccurateSizes":true}],"parsedSize":52174,"gzipSize":9440,"inaccurateSizes":true},{"label":"particles","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles","statSize":22998,"groups":[{"label":"attract/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/attract/dist/browser","statSize":1625,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/attract/dist/browser/index.js","statSize":223,"parsedSize":223,"gzipSize":40,"inaccurateSizes":true},{"id":null,"label":"Attractor.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/attract/dist/browser/Attractor.js","statSize":1402,"parsedSize":1405,"gzipSize":254,"inaccurateSizes":true}],"parsedSize":1628,"gzipSize":294,"inaccurateSizes":true},{"label":"collisions/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/collisions/dist/browser","statSize":3819,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/collisions/dist/browser/index.js","statSize":226,"parsedSize":226,"gzipSize":40,"inaccurateSizes":true},{"id":null,"label":"Collider.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/collisions/dist/browser/Collider.js","statSize":1267,"parsedSize":1269,"gzipSize":229,"inaccurateSizes":true},{"id":null,"label":"ResolveCollision.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/collisions/dist/browser/ResolveCollision.js","statSize":466,"parsedSize":467,"gzipSize":84,"inaccurateSizes":true},{"id":null,"label":"Absorb.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/collisions/dist/browser/Absorb.js","statSize":859,"parsedSize":860,"gzipSize":155,"inaccurateSizes":true},{"id":null,"label":"Bounce.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/collisions/dist/browser/Bounce.js","statSize":509,"parsedSize":510,"gzipSize":92,"inaccurateSizes":true},{"id":null,"label":"Destroy.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/collisions/dist/browser/Destroy.js","statSize":492,"parsedSize":493,"gzipSize":89,"inaccurateSizes":true}],"parsedSize":3827,"gzipSize":692,"inaccurateSizes":true},{"label":"links/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser","statSize":17554,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/index.js","statSize":576,"parsedSize":577,"gzipSize":104,"inaccurateSizes":true},{"id":null,"label":"interaction.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/interaction.js","statSize":201,"parsedSize":201,"gzipSize":36,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/Options/Classes","statSize":2440,"groups":[{"id":null,"label":"Links.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/Options/Classes/Links.js","statSize":1407,"parsedSize":1410,"gzipSize":255,"inaccurateSizes":true},{"id":null,"label":"LinksShadow.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/Options/Classes/LinksShadow.js","statSize":478,"parsedSize":479,"gzipSize":86,"inaccurateSizes":true},{"id":null,"label":"LinksTriangle.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/Options/Classes/LinksTriangle.js","statSize":555,"parsedSize":556,"gzipSize":100,"inaccurateSizes":true}],"parsedSize":2445,"gzipSize":442,"inaccurateSizes":true},{"id":null,"label":"plugin.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/plugin.js","statSize":388,"parsedSize":388,"gzipSize":70,"inaccurateSizes":true},{"id":null,"label":"Linker.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/Linker.js","statSize":3629,"parsedSize":3637,"gzipSize":658,"inaccurateSizes":true},{"id":null,"label":"LinkInstance.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/LinkInstance.js","statSize":5768,"parsedSize":5781,"gzipSize":1046,"inaccurateSizes":true},{"id":null,"label":"CircleWarp.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/CircleWarp.js","statSize":1261,"parsedSize":1263,"gzipSize":228,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../interactions/particles/links/dist/browser/Utils.js","statSize":3291,"parsedSize":3298,"gzipSize":596,"inaccurateSizes":true}],"parsedSize":17593,"gzipSize":3183,"inaccurateSizes":true}],"parsedSize":23049,"gzipSize":4170,"inaccurateSizes":true}],"parsedSize":75224,"gzipSize":13611,"inaccurateSizes":true},{"label":"updaters","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters","statSize":27168,"groups":[{"label":"life/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/life/dist/browser","statSize":4396,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/life/dist/browser/index.js","statSize":206,"parsedSize":206,"gzipSize":37,"inaccurateSizes":true},{"id":null,"label":"LifeUpdater.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/life/dist/browser/LifeUpdater.js","statSize":3133,"parsedSize":3140,"gzipSize":568,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/life/dist/browser/Options/Classes","statSize":1057,"groups":[{"id":null,"label":"Life.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/life/dist/browser/Options/Classes/Life.js","statSize":432,"parsedSize":432,"gzipSize":78,"inaccurateSizes":true},{"id":null,"label":"LifeDelay.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/life/dist/browser/Options/Classes/LifeDelay.js","statSize":311,"parsedSize":311,"gzipSize":56,"inaccurateSizes":true},{"id":null,"label":"LifeDuration.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/life/dist/browser/Options/Classes/LifeDuration.js","statSize":314,"parsedSize":314,"gzipSize":56,"inaccurateSizes":true}],"parsedSize":1059,"gzipSize":191,"inaccurateSizes":true}],"parsedSize":4405,"gzipSize":797,"inaccurateSizes":true},{"label":"rotate/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/rotate/dist/browser","statSize":3635,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/rotate/dist/browser/index.js","statSize":216,"parsedSize":216,"gzipSize":39,"inaccurateSizes":true},{"id":null,"label":"RotateUpdater.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/rotate/dist/browser/RotateUpdater.js","statSize":2258,"parsedSize":2263,"gzipSize":409,"inaccurateSizes":true},{"label":"Options/Classes","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/rotate/dist/browser/Options/Classes","statSize":1161,"groups":[{"id":null,"label":"Rotate.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/rotate/dist/browser/Options/Classes/Rotate.js","statSize":588,"parsedSize":589,"gzipSize":106,"inaccurateSizes":true},{"id":null,"label":"RotateAnimation.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/rotate/dist/browser/Options/Classes/RotateAnimation.js","statSize":573,"parsedSize":574,"gzipSize":103,"inaccurateSizes":true}],"parsedSize":1163,"gzipSize":210,"inaccurateSizes":true}],"parsedSize":3643,"gzipSize":659,"inaccurateSizes":true},{"label":"strokeColor/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/strokeColor/dist/browser","statSize":1664,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/strokeColor/dist/browser/index.js","statSize":241,"parsedSize":241,"gzipSize":43,"inaccurateSizes":true},{"id":null,"label":"StrokeColorUpdater.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/strokeColor/dist/browser/StrokeColorUpdater.js","statSize":1423,"parsedSize":1426,"gzipSize":258,"inaccurateSizes":true}],"parsedSize":1667,"gzipSize":301,"inaccurateSizes":true},{"label":"color/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/color/dist/browser","statSize":1162,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/color/dist/browser/index.js","statSize":211,"parsedSize":211,"gzipSize":38,"inaccurateSizes":true},{"id":null,"label":"ColorUpdater.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/color/dist/browser/ColorUpdater.js","statSize":951,"parsedSize":953,"gzipSize":172,"inaccurateSizes":true}],"parsedSize":1164,"gzipSize":210,"inaccurateSizes":true},{"label":"opacity/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/opacity/dist/browser","statSize":1611,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/opacity/dist/browser/index.js","statSize":221,"parsedSize":221,"gzipSize":40,"inaccurateSizes":true},{"id":null,"label":"OpacityUpdater.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/opacity/dist/browser/OpacityUpdater.js","statSize":1390,"parsedSize":1393,"gzipSize":252,"inaccurateSizes":true}],"parsedSize":1614,"gzipSize":292,"inaccurateSizes":true},{"label":"outModes/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser","statSize":13400,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser/index.js","statSize":235,"parsedSize":235,"gzipSize":42,"inaccurateSizes":true},{"id":null,"label":"OutOfCanvasUpdater.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser/OutOfCanvasUpdater.js","statSize":1149,"parsedSize":1151,"gzipSize":208,"inaccurateSizes":true},{"id":null,"label":"BounceOutMode.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser/BounceOutMode.js","statSize":1230,"parsedSize":1232,"gzipSize":223,"inaccurateSizes":true},{"id":null,"label":"DestroyOutMode.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser/DestroyOutMode.js","statSize":1209,"parsedSize":1211,"gzipSize":219,"inaccurateSizes":true},{"id":null,"label":"NoneOutMode.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser/NoneOutMode.js","statSize":1565,"parsedSize":1568,"gzipSize":283,"inaccurateSizes":true},{"id":null,"label":"OutOutMode.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser/OutOutMode.js","statSize":5149,"parsedSize":5160,"gzipSize":933,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/outModes/dist/browser/Utils.js","statSize":2863,"parsedSize":2869,"gzipSize":519,"inaccurateSizes":true}],"parsedSize":13430,"gzipSize":2430,"inaccurateSizes":true},{"label":"size/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/size/dist/browser","statSize":1300,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/size/dist/browser/index.js","statSize":190,"parsedSize":190,"gzipSize":34,"inaccurateSizes":true},{"id":null,"label":"SizeUpdater.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../updaters/size/dist/browser/SizeUpdater.js","statSize":1110,"parsedSize":1112,"gzipSize":201,"inaccurateSizes":true}],"parsedSize":1302,"gzipSize":235,"inaccurateSizes":true}],"parsedSize":27229,"gzipSize":4927,"inaccurateSizes":true},{"label":"move","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move","statSize":9418,"groups":[{"label":"parallax/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move/parallax/dist/browser","statSize":1396,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move/parallax/dist/browser/index.js","statSize":192,"parsedSize":192,"gzipSize":34,"inaccurateSizes":true},{"id":null,"label":"ParallaxMover.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move/parallax/dist/browser/ParallaxMover.js","statSize":1204,"parsedSize":1206,"gzipSize":218,"inaccurateSizes":true}],"parsedSize":1399,"gzipSize":253,"inaccurateSizes":true},{"label":"base/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move/base/dist/browser","statSize":8022,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move/base/dist/browser/index.js","statSize":172,"parsedSize":172,"gzipSize":31,"inaccurateSizes":true},{"id":null,"label":"BaseMover.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move/base/dist/browser/BaseMover.js","statSize":2892,"parsedSize":2898,"gzipSize":524,"inaccurateSizes":true},{"id":null,"label":"Utils.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/../move/base/dist/browser/Utils.js","statSize":4958,"parsedSize":4969,"gzipSize":899,"inaccurateSizes":true}],"parsedSize":8040,"gzipSize":1454,"inaccurateSizes":true}],"parsedSize":9439,"gzipSize":1707,"inaccurateSizes":true}],"parsedSize":315757,"gzipSize":57134,"inaccurateSizes":true},{"label":"basic/dist/browser","path":"./dist/browser/bundle.js + 190 modules (concatenated)/basic/dist/browser","statSize":716,"groups":[{"id":null,"label":"index.js","path":"./dist/browser/bundle.js + 190 modules (concatenated)/basic/dist/browser/index.js","statSize":716,"parsedSize":717,"gzipSize":129,"inaccurateSizes":true}],"parsedSize":717,"gzipSize":129,"inaccurateSizes":true}]}],"parsedSize":319804,"gzipSize":57867}],"isInitialByEntrypoint":{"tsparticles.slim.bundle":true}}];
35
- window.entrypoints = ["tsparticles.slim.bundle","tsparticles.slim.bundle.min"];
34
+ window.chartData = [];
35
+ window.entrypoints = ["tsparticles.slim.bundle.min"];
36
36
  window.defaultSizes = "parsed";
37
37
  </script>
38
38
  </body>
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["shapes_circle_dist_browser_CircleDrawer_js"],{
19
+
20
+ /***/ "../../shapes/circle/dist/browser/CircleDrawer.js":
21
+ /*!********************************************************!*\
22
+ !*** ../../shapes/circle/dist/browser/CircleDrawer.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 */ CircleDrawer: () => (/* binding */ CircleDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst sides = 12,\n maxAngle = 360,\n minAngle = 0;\nclass CircleDrawer {\n async draw(data) {\n const {\n drawCircle\n } = await __webpack_require__.e(/*! import() */ \"shapes_circle_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/circle/dist/browser/Utils.js\"));\n drawCircle(data);\n }\n getSidesCount() {\n return sides;\n }\n async particleInit(container, particle) {\n const shapeData = particle.shapeData,\n angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle\n };\n particle.circleRange = !(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isObject)(angle) ? {\n min: minAngle,\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle)\n } : {\n min: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.min),\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.max)\n };\n await Promise.resolve();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/circle/dist/browser/CircleDrawer.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["shapes_circle_dist_browser_Utils_js"],{
19
+
20
+ /***/ "../../shapes/circle/dist/browser/Utils.js":
21
+ /*!*************************************************!*\
22
+ !*** ../../shapes/circle/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 */ drawCircle: () => (/* binding */ drawCircle)\n/* harmony export */ });\nconst double = 2,\n doublePI = Math.PI * double,\n minAngle = 0,\n origin = {\n x: 0,\n y: 0\n };\nfunction drawCircle(data) {\n const {\n context,\n particle,\n radius\n } = data;\n if (!particle.circleRange) {\n particle.circleRange = {\n min: minAngle,\n max: doublePI\n };\n }\n const circleRange = particle.circleRange;\n context.arc(origin.x, origin.y, radius, circleRange.min, circleRange.max, false);\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/circle/dist/browser/Utils.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["shapes_circle_dist_browser_index_js"],{
19
+
20
+ /***/ "../../shapes/circle/dist/browser/index.js":
21
+ /*!*************************************************!*\
22
+ !*** ../../shapes/circle/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 */ loadCircleShape: () => (/* binding */ loadCircleShape)\n/* harmony export */ });\nasync function loadCircleShape(engine, refresh = true) {\n const {\n CircleDrawer\n } = await __webpack_require__.e(/*! import() */ \"shapes_circle_dist_browser_CircleDrawer_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./CircleDrawer.js */ \"../../shapes/circle/dist/browser/CircleDrawer.js\"));\n await engine.addShape(\"circle\", new CircleDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/circle/dist/browser/index.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["shapes_emoji_dist_browser_EmojiDrawer_js"],{
19
+
20
+ /***/ "../../shapes/emoji/dist/browser/EmojiDrawer.js":
21
+ /*!******************************************************!*\
22
+ !*** ../../shapes/emoji/dist/browser/EmojiDrawer.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 */ EmojiDrawer: () => (/* binding */ EmojiDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Constants.js */ \"../../shapes/emoji/dist/browser/Constants.js\");\n\n\nconst defaultFont = '\"Twemoji Mozilla\", Apple Color Emoji, \"Segoe UI Emoji\", \"Noto Color Emoji\", \"EmojiOne Color\"';\nclass EmojiDrawer {\n constructor() {\n this._emojiShapeDict = new Map();\n }\n destroy() {\n for (const [key, emojiData] of this._emojiShapeDict) {\n if (emojiData instanceof ImageBitmap) {\n emojiData?.close();\n this._emojiShapeDict.delete(key);\n }\n }\n }\n async draw(data) {\n const {\n drawEmoji\n } = await __webpack_require__.e(/*! import() */ \"shapes_emoji_dist_browser_Utils_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./Utils.js */ \"../../shapes/emoji/dist/browser/Utils.js\"));\n drawEmoji(data);\n }\n async init(container) {\n const options = container.actualOptions;\n if (!_Constants_js__WEBPACK_IMPORTED_MODULE_1__.validTypes.find(t => (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isInArray)(t, options.particles.shape.type))) {\n return;\n }\n const promises = [(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.loadFont)(defaultFont)],\n shapeOptions = _Constants_js__WEBPACK_IMPORTED_MODULE_1__.validTypes.map(t => options.particles.shape.options[t]).find(t => !!t);\n if (shapeOptions) {\n (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.executeOnSingleOrMultiple)(shapeOptions, shape => {\n if (shape.font) {\n promises.push((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.loadFont)(shape.font));\n }\n });\n }\n await Promise.all(promises);\n }\n particleDestroy(particle) {\n delete particle.emojiData;\n }\n async particleInit(container, particle) {\n const double = 2,\n shapeData = particle.shapeData;\n if (!shapeData?.value) {\n return;\n }\n const emoji = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.itemFromSingleOrMultiple)(shapeData.value, particle.randomIndexData),\n font = shapeData.font ?? defaultFont;\n if (!emoji) {\n return;\n }\n const key = `${emoji}_${font}`,\n existingData = this._emojiShapeDict.get(key);\n if (existingData) {\n particle.emojiData = existingData;\n return;\n }\n const canvasSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particle.size.value) * double;\n let emojiData;\n const maxSize = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getRangeMax)(particle.size.value);\n if (typeof OffscreenCanvas !== \"undefined\") {\n const canvas = new OffscreenCanvas(canvasSize, canvasSize),\n context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas.transferToImageBitmap();\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(emoji, maxSize, maxSize);\n emojiData = canvas;\n }\n this._emojiShapeDict.set(key, emojiData);\n particle.emojiData = emojiData;\n await Promise.resolve();\n }\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/emoji/dist/browser/EmojiDrawer.js?");
27
+
28
+ /***/ })
29
+
30
+ }]);
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["shapes_emoji_dist_browser_Utils_js"],{
19
+
20
+ /***/ "../../shapes/emoji/dist/browser/Utils.js":
21
+ /*!************************************************!*\
22
+ !*** ../../shapes/emoji/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 */ drawEmoji: () => (/* binding */ drawEmoji)\n/* harmony export */ });\nfunction drawEmoji(data) {\n const {\n context,\n particle,\n radius,\n opacity\n } = data,\n emojiData = particle.emojiData,\n double = 2,\n diameter = radius * double,\n previousAlpha = context.globalAlpha;\n if (!emojiData) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(emojiData, -radius, -radius, diameter, diameter);\n context.globalAlpha = previousAlpha;\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/emoji/dist/browser/Utils.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.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["shapes_emoji_dist_browser_index_js"],{
19
+
20
+ /***/ "../../shapes/emoji/dist/browser/Constants.js":
21
+ /*!****************************************************!*\
22
+ !*** ../../shapes/emoji/dist/browser/Constants.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 */ validTypes: () => (/* binding */ validTypes)\n/* harmony export */ });\nconst validTypes = [\"emoji\"];\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/emoji/dist/browser/Constants.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/emoji/dist/browser/index.js":
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/emoji/dist/browser/index.js ***!
33
+ \************************************************/
34
+ /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
35
+
36
+ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadEmojiShape: () => (/* binding */ loadEmojiShape)\n/* harmony export */ });\n/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants.js */ \"../../shapes/emoji/dist/browser/Constants.js\");\n\nasync function loadEmojiShape(engine, refresh = true) {\n const {\n EmojiDrawer\n } = await __webpack_require__.e(/*! import() */ \"shapes_emoji_dist_browser_EmojiDrawer_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./EmojiDrawer.js */ \"../../shapes/emoji/dist/browser/EmojiDrawer.js\"));\n await engine.addShape(_Constants_js__WEBPACK_IMPORTED_MODULE_0__.validTypes, new EmojiDrawer(), refresh);\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/emoji/dist/browser/index.js?");
37
+
38
+ /***/ })
39
+
40
+ }]);
@@ -0,0 +1,50 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v3.2.0
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_slim"] = this["webpackChunk_tsparticles_slim"] || []).push([["shapes_image_dist_browser_GifUtils_Utils_js"],{
19
+
20
+ /***/ "../../shapes/image/dist/browser/GifUtils/ByteStream.js":
21
+ /*!**************************************************************!*\
22
+ !*** ../../shapes/image/dist/browser/GifUtils/ByteStream.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 */ ByteStream: () => (/* binding */ ByteStream)\n/* harmony export */ });\nclass ByteStream {\n constructor(bytes) {\n this.pos = 0;\n this.data = new Uint8ClampedArray(bytes);\n }\n getString(count) {\n const slice = this.data.slice(this.pos, this.pos + count);\n this.pos += slice.length;\n return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), \"\");\n }\n nextByte() {\n return this.data[this.pos++];\n }\n nextTwoBytes() {\n const increment = 2,\n previous = 1,\n shift = 8;\n this.pos += increment;\n return this.data[this.pos - increment] + (this.data[this.pos - previous] << shift);\n }\n readSubBlocks() {\n let blockString = \"\",\n size = 0;\n const minCount = 0,\n emptySize = 0;\n do {\n size = this.data[this.pos++];\n for (let count = size; --count >= minCount; blockString += String.fromCharCode(this.data[this.pos++])) {}\n } while (size !== emptySize);\n return blockString;\n }\n readSubBlocksBin() {\n let size = this.data[this.pos],\n len = 0;\n const emptySize = 0,\n increment = 1;\n for (let offset = 0; size !== emptySize; offset += size + increment, size = this.data[this.pos + offset]) {\n len += size;\n }\n const blockData = new Uint8Array(len);\n size = this.data[this.pos++];\n for (let i = 0; size !== emptySize; size = this.data[this.pos++]) {\n for (let count = size; --count >= emptySize; blockData[i++] = this.data[this.pos++]) {}\n }\n return blockData;\n }\n skipSubBlocks() {\n for (const increment = 1, noData = 0; this.data[this.pos] !== noData; this.pos += this.data[this.pos] + increment) {}\n this.pos++;\n }\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/image/dist/browser/GifUtils/ByteStream.js?");
27
+
28
+ /***/ }),
29
+
30
+ /***/ "../../shapes/image/dist/browser/GifUtils/Constants.js":
31
+ /*!*************************************************************!*\
32
+ !*** ../../shapes/image/dist/browser/GifUtils/Constants.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 */ InterlaceOffsets: () => (/* binding */ InterlaceOffsets),\n/* harmony export */ InterlaceSteps: () => (/* binding */ InterlaceSteps)\n/* harmony export */ });\nconst InterlaceOffsets = [0, 4, 2, 1];\nconst InterlaceSteps = [8, 8, 4, 2];\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/image/dist/browser/GifUtils/Constants.js?");
37
+
38
+ /***/ }),
39
+
40
+ /***/ "../../shapes/image/dist/browser/GifUtils/Utils.js":
41
+ /*!*********************************************************!*\
42
+ !*** ../../shapes/image/dist/browser/GifUtils/Utils.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 */ decodeGIF: () => (/* binding */ decodeGIF),\n/* harmony export */ drawGif: () => (/* binding */ drawGif),\n/* harmony export */ getGIFLoopAmount: () => (/* binding */ getGIFLoopAmount),\n/* harmony export */ loadGifImage: () => (/* binding */ loadGifImage)\n/* harmony export */ });\n/* harmony import */ var _Constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants.js */ \"../../shapes/image/dist/browser/GifUtils/Constants.js\");\n/* harmony import */ var _ByteStream_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ByteStream.js */ \"../../shapes/image/dist/browser/GifUtils/ByteStream.js\");\n\n\nconst origin = {\n x: 0,\n y: 0\n },\n defaultFrame = 0,\n half = 0.5,\n initialTime = 0,\n firstIndex = 0,\n defaultLoopCount = 0;\nfunction parseColorTable(byteStream, count) {\n const colors = [];\n for (let i = 0; i < count; i++) {\n colors.push({\n r: byteStream.data[byteStream.pos],\n g: byteStream.data[byteStream.pos + 1],\n b: byteStream.data[byteStream.pos + 2]\n });\n byteStream.pos += 3;\n }\n return colors;\n}\nfunction parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) {\n switch (byteStream.nextByte()) {\n case 249:\n {\n const frame = gif.frames[getFrameIndex(false)];\n byteStream.pos++;\n const packedByte = byteStream.nextByte();\n frame.GCreserved = (packedByte & 0xe0) >>> 5;\n frame.disposalMethod = (packedByte & 0x1c) >>> 2;\n frame.userInputDelayFlag = (packedByte & 2) === 2;\n const transparencyFlag = (packedByte & 1) === 1;\n frame.delayTime = byteStream.nextTwoBytes() * 0xa;\n const transparencyIndex = byteStream.nextByte();\n if (transparencyFlag) {\n getTransparencyIndex(transparencyIndex);\n }\n byteStream.pos++;\n break;\n }\n case 255:\n {\n byteStream.pos++;\n const applicationExtension = {\n identifier: byteStream.getString(8),\n authenticationCode: byteStream.getString(3),\n data: byteStream.readSubBlocksBin()\n };\n gif.applicationExtensions.push(applicationExtension);\n break;\n }\n case 254:\n {\n gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]);\n break;\n }\n case 1:\n {\n if (gif.globalColorTable.length === 0) {\n throw new EvalError(\"plain text extension without global color table\");\n }\n byteStream.pos++;\n gif.frames[getFrameIndex(false)].plainTextData = {\n left: byteStream.nextTwoBytes(),\n top: byteStream.nextTwoBytes(),\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n charSize: {\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes()\n },\n foregroundColor: byteStream.nextByte(),\n backgroundColor: byteStream.nextByte(),\n text: byteStream.readSubBlocks()\n };\n break;\n }\n default:\n byteStream.skipSubBlocks();\n break;\n }\n}\nasync function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n const frame = gif.frames[getFrameIndex(true)];\n frame.left = byteStream.nextTwoBytes();\n frame.top = byteStream.nextTwoBytes();\n frame.width = byteStream.nextTwoBytes();\n frame.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(),\n localColorTableFlag = (packedByte & 0x80) === 0x80,\n interlacedFlag = (packedByte & 0x40) === 0x40;\n frame.sortFlag = (packedByte & 0x20) === 0x20;\n frame.reserved = (packedByte & 0x18) >>> 3;\n const localColorCount = 1 << (packedByte & 7) + 1;\n if (localColorTableFlag) {\n frame.localColorTable = parseColorTable(byteStream, localColorCount);\n }\n const getColor = index => {\n const {\n r,\n g,\n b\n } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index];\n if (index !== getTransparencyIndex(null)) {\n return {\n r,\n g,\n b,\n a: 255\n };\n }\n return {\n r,\n g,\n b,\n a: avgAlpha ? ~~((r + g + b) / 3) : 0\n };\n };\n const image = (() => {\n try {\n return new ImageData(frame.width, frame.height, {\n colorSpace: \"srgb\"\n });\n } catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (image == null) {\n throw new EvalError(\"GIF frame size is to large\");\n }\n const minCodeSize = byteStream.nextByte(),\n imageData = byteStream.readSubBlocksBin(),\n clearCode = 1 << minCodeSize;\n const readBits = (pos, len) => {\n const bytePos = pos >>> 3,\n bitPos = pos & 7;\n return (imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16) & (1 << len) - 1 << bitPos) >>> bitPos;\n };\n if (interlacedFlag) {\n for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) {\n if (_Constants_js__WEBPACK_IMPORTED_MODULE_0__.InterlaceOffsets[pass] < frame.height) {\n let pixelPos = 0,\n lineIndex = 0,\n exit = false;\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size + 1;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n } else {\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n } else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const {\n r,\n g,\n b,\n a\n } = getColor(item);\n image.data.set([r, g, b, a], _Constants_js__WEBPACK_IMPORTED_MODULE_0__.InterlaceOffsets[pass] * frame.width + _Constants_js__WEBPACK_IMPORTED_MODULE_0__.InterlaceSteps[pass] * lineIndex + pixelPos % (frame.width * 4));\n pixelPos += 4;\n }\n if (dic.length === 1 << size && size < 0xc) {\n size++;\n }\n }\n if (pixelPos === frame.width * 4 * (lineIndex + 1)) {\n lineIndex++;\n if (_Constants_js__WEBPACK_IMPORTED_MODULE_0__.InterlaceOffsets[pass] + _Constants_js__WEBPACK_IMPORTED_MODULE_0__.InterlaceSteps[pass] * lineIndex >= frame.height) {\n exit = true;\n }\n }\n }\n }\n progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, {\n x: frame.left,\n y: frame.top\n }, {\n width: gif.width,\n height: gif.height\n });\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n } else {\n let code = 0,\n size = minCodeSize + 1,\n pos = 0,\n pixelPos = -4,\n exit = false;\n const dic = [[0]];\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n } else {\n if (code === clearCode + 1) {\n exit = true;\n break;\n }\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n } else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const {\n r,\n g,\n b,\n a\n } = getColor(item);\n image.data.set([r, g, b, a], pixelPos += 4);\n }\n if (dic.length >= 1 << size && size < 0xc) {\n size++;\n }\n }\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, {\n x: frame.left,\n y: frame.top\n }, {\n width: gif.width,\n height: gif.height\n });\n }\n}\nasync function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n switch (byteStream.nextByte()) {\n case 59:\n return true;\n case 44:\n await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback);\n break;\n case 33:\n parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex);\n break;\n default:\n throw new EvalError(\"undefined block found\");\n }\n return false;\n}\nfunction getGIFLoopAmount(gif) {\n for (const extension of gif.applicationExtensions) {\n if (extension.identifier + extension.authenticationCode !== \"NETSCAPE2.0\") {\n continue;\n }\n return extension.data[1] + (extension.data[2] << 8);\n }\n return NaN;\n}\nasync function decodeGIF(gifURL, progressCallback, avgAlpha) {\n if (!avgAlpha) avgAlpha = false;\n const res = await fetch(gifURL);\n if (!res.ok && res.status === 404) {\n throw new EvalError(\"file not found\");\n }\n const buffer = await res.arrayBuffer();\n const gif = {\n width: 0,\n height: 0,\n totalTime: 0,\n colorRes: 0,\n pixelAspectRatio: 0,\n frames: [],\n sortFlag: false,\n globalColorTable: [],\n backgroundImage: new ImageData(1, 1, {\n colorSpace: \"srgb\"\n }),\n comments: [],\n applicationExtensions: []\n },\n byteStream = new _ByteStream_js__WEBPACK_IMPORTED_MODULE_1__.ByteStream(new Uint8ClampedArray(buffer));\n if (byteStream.getString(6) !== \"GIF89a\") {\n throw new Error(\"not a supported GIF file\");\n }\n gif.width = byteStream.nextTwoBytes();\n gif.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(),\n globalColorTableFlag = (packedByte & 0x80) === 0x80;\n gif.colorRes = (packedByte & 0x70) >>> 4;\n gif.sortFlag = (packedByte & 8) === 8;\n const globalColorCount = 1 << (packedByte & 7) + 1,\n backgroundColorIndex = byteStream.nextByte();\n gif.pixelAspectRatio = byteStream.nextByte();\n if (gif.pixelAspectRatio !== 0) {\n gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40;\n }\n if (globalColorTableFlag) {\n gif.globalColorTable = parseColorTable(byteStream, globalColorCount);\n }\n const backgroundImage = (() => {\n try {\n return new ImageData(gif.width, gif.height, {\n colorSpace: \"srgb\"\n });\n } catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (backgroundImage == null) {\n throw new Error(\"GIF frame size is to large\");\n }\n const {\n r,\n g,\n b\n } = gif.globalColorTable[backgroundColorIndex];\n backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]);\n for (let i = 4; i < backgroundImage.data.length; i *= 2) {\n backgroundImage.data.copyWithin(i, 0, i);\n }\n gif.backgroundImage = backgroundImage;\n let frameIndex = -1,\n incrementFrameIndex = true,\n transparencyIndex = -1;\n const getframeIndex = increment => {\n if (increment) {\n incrementFrameIndex = true;\n }\n return frameIndex;\n };\n const getTransparencyIndex = newValue => {\n if (newValue != null) {\n transparencyIndex = newValue;\n }\n return transparencyIndex;\n };\n try {\n do {\n if (incrementFrameIndex) {\n gif.frames.push({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n disposalMethod: 0,\n image: new ImageData(1, 1, {\n colorSpace: \"srgb\"\n }),\n plainTextData: null,\n userInputDelayFlag: false,\n delayTime: 0,\n sortFlag: false,\n localColorTable: [],\n reserved: 0,\n GCreserved: 0\n });\n frameIndex++;\n transparencyIndex = -1;\n incrementFrameIndex = false;\n }\n } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback)));\n gif.frames.length--;\n for (const frame of gif.frames) {\n if (frame.userInputDelayFlag && frame.delayTime === 0) {\n gif.totalTime = Infinity;\n break;\n }\n gif.totalTime += frame.delayTime;\n }\n return gif;\n } catch (error) {\n if (error instanceof EvalError) {\n throw new Error(`error while parsing frame ${frameIndex} \"${error.message}\"`);\n }\n throw error;\n }\n}\nfunction drawGif(data) {\n const {\n context,\n radius,\n particle,\n delta\n } = data,\n image = particle.image;\n if (!image?.gifData || !image.gif) {\n return;\n }\n const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height),\n offscreenContext = offscreenCanvas.getContext(\"2d\");\n if (!offscreenContext) {\n throw new Error(\"could not create offscreen canvas context\");\n }\n offscreenContext.imageSmoothingQuality = \"low\";\n offscreenContext.imageSmoothingEnabled = false;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (particle.gifLoopCount === undefined) {\n particle.gifLoopCount = image.gifLoopCount ?? defaultLoopCount;\n }\n let frameIndex = particle.gifFrame ?? defaultFrame;\n const pos = {\n x: -image.gifData.width * half,\n y: -image.gifData.height * half\n },\n frame = image.gifData.frames[frameIndex];\n if (particle.gifTime === undefined) {\n particle.gifTime = initialTime;\n }\n if (!frame.bitmap) {\n return;\n }\n context.scale(radius / image.gifData.width, radius / image.gifData.height);\n switch (frame.disposalMethod) {\n case 4:\n case 5:\n case 6:\n case 7:\n case 0:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n break;\n case 1:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n break;\n case 2:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (!image.gifData.globalColorTable.length) {\n offscreenContext.putImageData(image.gifData.frames[firstIndex].image, pos.x + frame.left, pos.y + frame.top);\n } else {\n offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y);\n }\n break;\n case 3:\n {\n const previousImageData = offscreenContext.getImageData(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.putImageData(previousImageData, origin.x, origin.y);\n }\n break;\n }\n particle.gifTime += delta.value;\n if (particle.gifTime > frame.delayTime) {\n particle.gifTime -= frame.delayTime;\n if (++frameIndex >= image.gifData.frames.length) {\n if (--particle.gifLoopCount <= defaultLoopCount) {\n return;\n }\n frameIndex = firstIndex;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n }\n particle.gifFrame = frameIndex;\n }\n context.scale(image.gifData.width / radius, image.gifData.height / radius);\n}\nasync function loadGifImage(image) {\n if (image.type !== \"gif\") {\n const {\n loadImage\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ../Utils.js */ \"../../shapes/image/dist/browser/Utils.js\"));\n await loadImage(image);\n return;\n }\n image.loading = true;\n try {\n image.gifData = await decodeGIF(image.source);\n image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? defaultLoopCount;\n if (!image.gifLoopCount) {\n image.gifLoopCount = Infinity;\n }\n } catch {\n image.error = true;\n }\n image.loading = false;\n}\n\n//# sourceURL=webpack://@tsparticles/slim/../../shapes/image/dist/browser/GifUtils/Utils.js?");
47
+
48
+ /***/ })
49
+
50
+ }]);