@tsparticles/confetti 4.0.0-alpha.5 → 4.0.0-beta.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 (290) hide show
  1. package/102.min.js +1 -0
  2. package/1298.min.js +1 -0
  3. package/1368.min.js +1 -0
  4. package/1510.min.js +1 -0
  5. package/161.min.js +1 -0
  6. package/1624.min.js +1 -0
  7. package/1667.min.js +1 -0
  8. package/229.min.js +1 -0
  9. package/2317.min.js +1 -0
  10. package/2382.min.js +1 -0
  11. package/243.min.js +1 -0
  12. package/2616.min.js +1 -0
  13. package/2618.min.js +1 -0
  14. package/2738.min.js +1 -0
  15. package/2846.min.js +1 -0
  16. package/2926.min.js +1 -0
  17. package/3091.min.js +1 -0
  18. package/3194.min.js +1 -0
  19. package/3257.min.js +1 -0
  20. package/3296.min.js +1 -0
  21. package/3391.min.js +1 -0
  22. package/3413.min.js +1 -0
  23. package/3455.min.js +1 -0
  24. package/3464.min.js +1 -0
  25. package/3663.min.js +1 -0
  26. package/3853.min.js +1 -0
  27. package/4089.min.js +1 -0
  28. package/411.min.js +1 -0
  29. package/4149.min.js +1 -0
  30. package/4268.min.js +1 -0
  31. package/4292.min.js +1 -0
  32. package/4570.min.js +1 -0
  33. package/4588.min.js +1 -0
  34. package/465.min.js +1 -0
  35. package/514.min.js +1 -0
  36. package/5249.min.js +1 -0
  37. package/5478.min.js +1 -0
  38. package/5964.min.js +1 -0
  39. package/6098.min.js +1 -0
  40. package/6101.min.js +1 -0
  41. package/6179.min.js +1 -0
  42. package/6299.min.js +1 -0
  43. package/6465.min.js +1 -0
  44. package/6583.min.js +1 -0
  45. package/6638.min.js +1 -0
  46. package/6808.min.js +1 -0
  47. package/6900.min.js +1 -0
  48. package/6970.min.js +1 -0
  49. package/701.min.js +1 -0
  50. package/7116.min.js +1 -0
  51. package/7256.min.js +1 -2
  52. package/7258.min.js +1 -0
  53. package/7318.min.js +1 -0
  54. package/7449.min.js +1 -0
  55. package/7554.min.js +1 -0
  56. package/7646.min.js +1 -0
  57. package/7876.min.js +1 -0
  58. package/7922.min.js +1 -0
  59. package/8222.min.js +1 -0
  60. package/84.min.js +1 -0
  61. package/8815.min.js +1 -0
  62. package/9082.min.js +1 -0
  63. package/9202.min.js +1 -0
  64. package/9578.min.js +1 -0
  65. package/9611.min.js +1 -0
  66. package/9929.min.js +1 -0
  67. package/README.md +45 -6
  68. package/basic_dist_browser_index_js.js +2 -2
  69. package/browser/ConfettiOptions.js +18 -2
  70. package/browser/confetti.js +51 -31
  71. package/cjs/ConfettiOptions.js +18 -2
  72. package/cjs/confetti.js +51 -31
  73. package/engine_dist_browser_Core_Container_js.js +12 -12
  74. package/esm/ConfettiOptions.js +18 -2
  75. package/esm/confetti.js +51 -31
  76. package/package.json +17 -17
  77. package/plugins_colors_hex_dist_browser_HexColorManager_js.js +2 -2
  78. package/plugins_colors_hex_dist_browser_index_js.js +2 -2
  79. package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +2 -2
  80. package/plugins_colors_hsl_dist_browser_index_js.js +2 -2
  81. package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +2 -2
  82. package/plugins_colors_rgb_dist_browser_index_js.js +2 -2
  83. package/plugins_emitters_dist_browser_EmitterInstance_js.js +2 -2
  84. package/plugins_emitters_dist_browser_EmittersInstancesManager_js.js +18 -8
  85. package/plugins_emitters_dist_browser_EmittersInteractor_js.js +58 -48
  86. package/plugins_emitters_dist_browser_EmittersPluginInstance_js.js +2 -2
  87. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +18 -8
  88. package/plugins_emitters_dist_browser_ShapeManager_js.js +2 -2
  89. package/plugins_emitters_dist_browser_index_js.js +4 -4
  90. package/plugins_interactivity_dist_browser_InteractivityPluginInstance_js.js +4 -4
  91. package/plugins_interactivity_dist_browser_InteractivityPlugin_js.js +6 -6
  92. package/plugins_interactivity_dist_browser_index_js.js +40 -40
  93. package/plugins_motion_dist_browser_MotionPluginInstance_js.js +2 -2
  94. package/plugins_motion_dist_browser_MotionPlugin_js.js +4 -4
  95. package/plugins_motion_dist_browser_index_js.js +2 -2
  96. package/plugins_move_dist_browser_MovePluginInstance_js.js +40 -0
  97. package/plugins_move_dist_browser_MovePlugin_js.js +30 -0
  98. package/plugins_move_dist_browser_index_js.js +30 -0
  99. package/report.html +3 -3
  100. package/shapes_cards_dist_browser_cards_CardDrawer_js.js +40 -0
  101. package/shapes_cards_dist_browser_clubs_ClubDrawer_js.js +2 -12
  102. package/shapes_cards_dist_browser_diamonds_DiamondDrawer_js.js +2 -12
  103. package/shapes_cards_dist_browser_hearts_HeartDrawer_js.js +2 -12
  104. package/shapes_cards_dist_browser_index_js.js +16 -6
  105. package/shapes_cards_dist_browser_paths_js.js +70 -0
  106. package/shapes_cards_dist_browser_spades_SpadeDrawer_js.js +2 -12
  107. package/shapes_circle_dist_browser_CircleDrawer_js.js +3 -3
  108. package/shapes_circle_dist_browser_index_js.js +2 -2
  109. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +17 -7
  110. package/shapes_emoji_dist_browser_index_js.js +12 -2
  111. package/shapes_heart_dist_browser_HeartDrawer_js.js +3 -3
  112. package/shapes_heart_dist_browser_index_js.js +2 -2
  113. package/shapes_image_dist_browser_GifUtils_Utils_js.js +6 -16
  114. package/shapes_image_dist_browser_ImageDrawer_js.js +2 -2
  115. package/{move_base_dist_browser_index_js.js → shapes_image_dist_browser_ImagePreloaderInstance_js.js} +7 -7
  116. package/shapes_image_dist_browser_ImagePreloader_js.js +3 -3
  117. package/shapes_image_dist_browser_index_js.js +12 -2
  118. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +4 -4
  119. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +4 -4
  120. package/shapes_polygon_dist_browser_index_js.js +2 -2
  121. package/shapes_square_dist_browser_SquareDrawer_js.js +3 -3
  122. package/shapes_square_dist_browser_index_js.js +2 -2
  123. package/shapes_star_dist_browser_StarDrawer_js.js +3 -3
  124. package/shapes_star_dist_browser_index_js.js +2 -2
  125. package/tsparticles.confetti.bundle.js +97 -95
  126. package/tsparticles.confetti.bundle.min.js +2 -2
  127. package/tsparticles.confetti.js +41 -41
  128. package/tsparticles.confetti.min.js +1 -2
  129. package/types/confetti.d.ts +1 -1
  130. package/umd/ConfettiOptions.js +18 -2
  131. package/umd/confetti.js +51 -31
  132. package/updaters_fillColor_dist_browser_FillColorUpdater_js.js +30 -0
  133. package/updaters_fillColor_dist_browser_index_js.js +30 -0
  134. package/updaters_life_dist_browser_LifeUpdater_js.js +6 -6
  135. package/updaters_life_dist_browser_index_js.js +2 -2
  136. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +2 -2
  137. package/updaters_opacity_dist_browser_index_js.js +2 -2
  138. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +7 -7
  139. package/updaters_outModes_dist_browser_index_js.js +2 -2
  140. package/updaters_roll_dist_browser_RollUpdater_js.js +6 -6
  141. package/updaters_roll_dist_browser_index_js.js +2 -2
  142. package/updaters_rotate_dist_browser_RotateUpdater_js.js +4 -4
  143. package/updaters_rotate_dist_browser_index_js.js +2 -2
  144. package/updaters_size_dist_browser_SizeUpdater_js.js +2 -2
  145. package/updaters_size_dist_browser_index_js.js +2 -2
  146. package/updaters_tilt_dist_browser_TiltUpdater_js.js +5 -5
  147. package/updaters_tilt_dist_browser_index_js.js +2 -2
  148. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +5 -5
  149. package/updaters_wobble_dist_browser_index_js.js +2 -2
  150. package/1049.min.js +0 -2
  151. package/1049.min.js.LICENSE.txt +0 -1
  152. package/1085.min.js +0 -2
  153. package/1085.min.js.LICENSE.txt +0 -1
  154. package/1183.min.js +0 -2
  155. package/1183.min.js.LICENSE.txt +0 -1
  156. package/1446.min.js +0 -2
  157. package/1446.min.js.LICENSE.txt +0 -1
  158. package/1608.min.js +0 -2
  159. package/1608.min.js.LICENSE.txt +0 -1
  160. package/176.min.js +0 -2
  161. package/176.min.js.LICENSE.txt +0 -1
  162. package/1801.min.js +0 -2
  163. package/1801.min.js.LICENSE.txt +0 -1
  164. package/1887.min.js +0 -2
  165. package/1887.min.js.LICENSE.txt +0 -1
  166. package/2201.min.js +0 -2
  167. package/2201.min.js.LICENSE.txt +0 -1
  168. package/2615.min.js +0 -2
  169. package/2615.min.js.LICENSE.txt +0 -1
  170. package/2729.min.js +0 -2
  171. package/2729.min.js.LICENSE.txt +0 -1
  172. package/2842.min.js +0 -2
  173. package/2842.min.js.LICENSE.txt +0 -1
  174. package/2942.min.js +0 -2
  175. package/2942.min.js.LICENSE.txt +0 -1
  176. package/3003.min.js +0 -2
  177. package/3003.min.js.LICENSE.txt +0 -1
  178. package/3148.min.js +0 -2
  179. package/3148.min.js.LICENSE.txt +0 -1
  180. package/3209.min.js +0 -2
  181. package/3209.min.js.LICENSE.txt +0 -1
  182. package/3306.min.js +0 -2
  183. package/3306.min.js.LICENSE.txt +0 -1
  184. package/3380.min.js +0 -2
  185. package/3380.min.js.LICENSE.txt +0 -1
  186. package/3446.min.js +0 -2
  187. package/3446.min.js.LICENSE.txt +0 -1
  188. package/3451.min.js +0 -2
  189. package/3451.min.js.LICENSE.txt +0 -1
  190. package/346.min.js +0 -2
  191. package/346.min.js.LICENSE.txt +0 -1
  192. package/3629.min.js +0 -2
  193. package/3629.min.js.LICENSE.txt +0 -1
  194. package/3712.min.js +0 -2
  195. package/3712.min.js.LICENSE.txt +0 -1
  196. package/3743.min.js +0 -2
  197. package/3743.min.js.LICENSE.txt +0 -1
  198. package/3744.min.js +0 -2
  199. package/3744.min.js.LICENSE.txt +0 -1
  200. package/3759.min.js +0 -2
  201. package/3759.min.js.LICENSE.txt +0 -1
  202. package/3804.min.js +0 -2
  203. package/3804.min.js.LICENSE.txt +0 -1
  204. package/4340.min.js +0 -2
  205. package/4340.min.js.LICENSE.txt +0 -1
  206. package/4544.min.js +0 -2
  207. package/4544.min.js.LICENSE.txt +0 -1
  208. package/4698.min.js +0 -2
  209. package/4698.min.js.LICENSE.txt +0 -1
  210. package/5113.min.js +0 -2
  211. package/5113.min.js.LICENSE.txt +0 -1
  212. package/5166.min.js +0 -2
  213. package/5166.min.js.LICENSE.txt +0 -1
  214. package/521.min.js +0 -2
  215. package/521.min.js.LICENSE.txt +0 -1
  216. package/5221.min.js +0 -2
  217. package/5221.min.js.LICENSE.txt +0 -1
  218. package/5302.min.js +0 -2
  219. package/5302.min.js.LICENSE.txt +0 -1
  220. package/5505.min.js +0 -2
  221. package/5505.min.js.LICENSE.txt +0 -1
  222. package/5913.min.js +0 -2
  223. package/5913.min.js.LICENSE.txt +0 -1
  224. package/597.min.js +0 -2
  225. package/597.min.js.LICENSE.txt +0 -1
  226. package/620.min.js +0 -2
  227. package/620.min.js.LICENSE.txt +0 -1
  228. package/6249.min.js +0 -2
  229. package/6249.min.js.LICENSE.txt +0 -1
  230. package/6388.min.js +0 -2
  231. package/6388.min.js.LICENSE.txt +0 -1
  232. package/6441.min.js +0 -2
  233. package/6441.min.js.LICENSE.txt +0 -1
  234. package/6580.min.js +0 -2
  235. package/6580.min.js.LICENSE.txt +0 -1
  236. package/6608.min.js +0 -2
  237. package/6608.min.js.LICENSE.txt +0 -1
  238. package/671.min.js +0 -2
  239. package/671.min.js.LICENSE.txt +0 -1
  240. package/6824.min.js +0 -2
  241. package/6824.min.js.LICENSE.txt +0 -1
  242. package/7012.min.js +0 -2
  243. package/7012.min.js.LICENSE.txt +0 -1
  244. package/7056.min.js +0 -2
  245. package/7056.min.js.LICENSE.txt +0 -1
  246. package/7160.min.js +0 -2
  247. package/7160.min.js.LICENSE.txt +0 -1
  248. package/718.min.js +0 -2
  249. package/718.min.js.LICENSE.txt +0 -1
  250. package/7188.min.js +0 -2
  251. package/7188.min.js.LICENSE.txt +0 -1
  252. package/7191.min.js +0 -2
  253. package/7191.min.js.LICENSE.txt +0 -1
  254. package/7256.min.js.LICENSE.txt +0 -1
  255. package/7259.min.js +0 -2
  256. package/7259.min.js.LICENSE.txt +0 -1
  257. package/7704.min.js +0 -2
  258. package/7704.min.js.LICENSE.txt +0 -1
  259. package/7749.min.js +0 -2
  260. package/7749.min.js.LICENSE.txt +0 -1
  261. package/8296.min.js +0 -2
  262. package/8296.min.js.LICENSE.txt +0 -1
  263. package/8445.min.js +0 -2
  264. package/8445.min.js.LICENSE.txt +0 -1
  265. package/8526.min.js +0 -2
  266. package/8526.min.js.LICENSE.txt +0 -1
  267. package/8847.min.js +0 -2
  268. package/8847.min.js.LICENSE.txt +0 -1
  269. package/8993.min.js +0 -2
  270. package/8993.min.js.LICENSE.txt +0 -1
  271. package/9127.min.js +0 -2
  272. package/9127.min.js.LICENSE.txt +0 -1
  273. package/9216.min.js +0 -2
  274. package/9216.min.js.LICENSE.txt +0 -1
  275. package/9234.min.js +0 -2
  276. package/9234.min.js.LICENSE.txt +0 -1
  277. package/9273.min.js +0 -2
  278. package/9273.min.js.LICENSE.txt +0 -1
  279. package/9410.min.js +0 -2
  280. package/9410.min.js.LICENSE.txt +0 -1
  281. package/9467.min.js +0 -2
  282. package/9467.min.js.LICENSE.txt +0 -1
  283. package/9591.min.js +0 -2
  284. package/9591.min.js.LICENSE.txt +0 -1
  285. package/move_base_dist_browser_BaseMover_js.js +0 -40
  286. package/shapes_image_dist_browser_Utils_js.js +0 -30
  287. package/tsparticles.confetti.bundle.min.js.LICENSE.txt +0 -1
  288. package/tsparticles.confetti.min.js.LICENSE.txt +0 -1
  289. package/updaters_color_dist_browser_ColorUpdater_js.js +0 -30
  290. package/updaters_color_dist_browser_index_js.js +0 -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
+ * v4.0.0-beta.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_confetti"] = this["webpackChunk_tsparticles_confetti"] || []).push([["shapes_cards_dist_browser_cards_CardDrawer_js"],{
19
+
20
+ /***/ "../../shapes/cards/dist/browser/cards/CardDrawer.js"
21
+ /*!***********************************************************!*\
22
+ !*** ../../shapes/cards/dist/browser/cards/CardDrawer.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 */ CardDrawer: () => (/* binding */ CardDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../../shapes/cards/dist/browser/utils.js\");\n\n\nclass CardDrawer {\n draw(data) {\n const { context, particle, opacity, radius } = data;\n if (!particle.cardData) {\n return;\n }\n const defaultOpacity = context.globalAlpha;\n context.globalAlpha = opacity;\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.drawRoundedCard)(context, radius, particle.cardData, particle.container.hdr, particle.isShowingBack(), particle.container.canvas.settings);\n context.globalAlpha = defaultOpacity;\n }\n particleInit(_container, particle) {\n const shape = particle.shapeData;\n if (!shape) {\n return;\n }\n particle.cardData = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.deepExtend)({}, shape);\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/cards/CardDrawer.js?\n}");
27
+
28
+ /***/ },
29
+
30
+ /***/ "../../shapes/cards/dist/browser/utils.js"
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/cards/dist/browser/utils.js ***!
33
+ \************************************************/
34
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
+
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawRoundedCard: () => (/* binding */ drawRoundedCard)\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 _SuitType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SuitType.js */ \"../../shapes/cards/dist/browser/SuitType.js\");\n/* harmony import */ var _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @tsparticles/path-utils */ \"../../utils/pathUtils/dist/browser/index.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./paths.js */ \"../../shapes/cards/dist/browser/paths.js\");\n\n\n\n\nconst cardWidthRatio = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double / _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.triple, cardHeightRatio = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.double, cornerRadiusRatio = 0.2, cornerFontRatio = 0.4, cornerSuitRatio = 0.3, centerSuitRatio = 0.7, cornerPaddingRatio = 0.2, textHorizontalOffsetRatio = 0.25, minRadius = 0, minAngle = 0, suitEdgeBufferFactor = 0.1, fixedCacheKey = 2, cardsCache = new Map(), redSuitColor = {\n r: 215,\n g: 20,\n b: 20\n}, blackSuitColor = {\n r: 18,\n g: 18,\n b: 18\n};\nfunction drawRoundedCard(ctx, radius, cardData, hdr, flipped, canvasSettings) {\n if (flipped) {\n drawRoundedCardBack(ctx, radius);\n } else {\n const cacheKey = getCacheKey(radius, hdr, cardData), cardWidth = radius * cardWidthRatio, cardHeight = radius * cardHeightRatio, halfWidth = cardWidth * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half, halfHeight = cardHeight * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half;\n let cachedData = cardsCache.get(cacheKey);\n if (!cachedData) {\n let cacheCanvas, cacheCtx;\n if (typeof OffscreenCanvas === \"undefined\") {\n cacheCanvas = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.safeDocument)().createElement(\"canvas\");\n cacheCanvas.width = cardWidth;\n cacheCanvas.height = cardHeight;\n cacheCtx = cacheCanvas.getContext(\"2d\", canvasSettings);\n } else {\n cacheCanvas = new OffscreenCanvas(cardWidth, cardHeight);\n cacheCtx = cacheCanvas.getContext(\"2d\", canvasSettings);\n }\n if (cacheCtx) {\n cacheCtx.translate(halfWidth, halfHeight);\n drawRoundedCardFront(cacheCtx, radius, cardData, hdr);\n cachedData = cacheCanvas instanceof HTMLCanvasElement ? cacheCanvas : cacheCanvas.transferToImageBitmap();\n cardsCache.set(cacheKey, cachedData);\n }\n }\n if (cachedData) {\n ctx.drawImage(cachedData, -halfWidth, -halfHeight, cardWidth, cardHeight);\n } else {\n drawRoundedCardFront(ctx, radius, cardData, hdr);\n }\n }\n}\nfunction getCacheKey(radius, hdr, cardData) {\n return `${radius.toFixed(fixedCacheKey)}-${hdr ? \"hdr\" : \"sdr\"}-${cardData.suit}-${cardData.value}`;\n}\nfunction drawRoundedCardBack(ctx, radius) {\n drawCardBody(ctx, radius);\n}\nfunction drawRoundedCardFront(ctx, radius, cardData, hdr) {\n const { suit, value } = cardData, cardWidth = radius * cardWidthRatio, cardHeight = radius * cardHeightRatio, halfWidth = cardWidth * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half, halfHeight = cardHeight * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half, cornerPadding = radius * cornerPaddingRatio, cornerFontSize = radius * cornerFontRatio, cornerSuitSize = radius * cornerSuitRatio, centerSuitSize = radius * centerSuitRatio, textOffset = radius * textHorizontalOffsetRatio, suitEdgeBuffer = radius * suitEdgeBufferFactor, isRed = suit === _SuitType_js__WEBPACK_IMPORTED_MODULE_1__.SuitType.hearts || suit === _SuitType_js__WEBPACK_IMPORTED_MODULE_1__.SuitType.diamonds, color = isRed ? (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(redSuitColor, hdr) : (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)(blackSuitColor, hdr);\n ctx.save();\n drawCardBody(ctx, radius);\n ctx.fillStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)({\n r: 255,\n g: 255,\n b: 255\n }, hdr);\n ctx.fill();\n ctx.strokeStyle = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.getStyleFromRgb)({\n r: 0,\n g: 0,\n b: 0\n }, hdr);\n ctx.stroke();\n ctx.fillStyle = color;\n ctx.font = `bold ${cornerFontSize.toString()}px Arial, serif`;\n ctx.textAlign = \"left\";\n ctx.textBaseline = \"middle\";\n const topLeftX = -halfWidth + cornerPadding + suitEdgeBuffer, topLeftY = -halfHeight + cornerPadding + cornerFontSize * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half;\n ctx.save();\n ctx.translate(topLeftX, topLeftY);\n ctx.beginPath();\n (0,_tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_2__.drawPath)(ctx, cornerSuitSize, _paths_js__WEBPACK_IMPORTED_MODULE_3__.paths[suit]);\n ctx.fill();\n ctx.restore();\n ctx.fillText(value, topLeftX + textOffset, topLeftY);\n ctx.save();\n ctx.translate(halfWidth - cornerPadding - suitEdgeBuffer, halfHeight - cornerPadding - cornerFontSize * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half);\n ctx.rotate(Math.PI);\n ctx.save();\n ctx.beginPath();\n (0,_tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_2__.drawPath)(ctx, cornerSuitSize, _paths_js__WEBPACK_IMPORTED_MODULE_3__.paths[suit]);\n ctx.fill();\n ctx.restore();\n ctx.fillText(value, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x + textOffset, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y);\n ctx.restore();\n ctx.save();\n ctx.beginPath();\n (0,_tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_2__.drawPath)(ctx, centerSuitSize, _paths_js__WEBPACK_IMPORTED_MODULE_3__.paths[suit]);\n ctx.fillStyle = color;\n ctx.fill();\n ctx.restore();\n ctx.beginPath();\n ctx.arc(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, minRadius, minAngle, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI, false);\n ctx.closePath();\n ctx.restore();\n}\nfunction drawCardBody(ctx, radius) {\n const cardWidth = radius * cardWidthRatio, cardHeight = radius * cardHeightRatio, halfWidth = cardWidth * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half, halfHeight = cardHeight * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.half, cornerRadius = radius * cornerRadiusRatio;\n ctx.beginPath();\n ctx.moveTo(-halfWidth + cornerRadius, -halfHeight);\n ctx.lineTo(halfWidth - cornerRadius, -halfHeight);\n ctx.quadraticCurveTo(halfWidth, -halfHeight, halfWidth, -halfHeight + cornerRadius);\n ctx.lineTo(halfWidth, halfHeight - cornerRadius);\n ctx.quadraticCurveTo(halfWidth, halfHeight, halfWidth - cornerRadius, halfHeight);\n ctx.lineTo(-halfWidth + cornerRadius, halfHeight);\n ctx.quadraticCurveTo(-halfWidth, halfHeight, -halfWidth, halfHeight - cornerRadius);\n ctx.lineTo(-halfWidth, -halfHeight + cornerRadius);\n ctx.quadraticCurveTo(-halfWidth, -halfHeight, -halfWidth + cornerRadius, -halfHeight);\n ctx.closePath();\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/utils.js?\n}");
37
+
38
+ /***/ }
39
+
40
+ }]);
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -17,23 +17,13 @@
17
17
  */
18
18
  (this["webpackChunk_tsparticles_confetti"] = this["webpackChunk_tsparticles_confetti"] || []).push([["shapes_cards_dist_browser_clubs_ClubDrawer_js"],{
19
19
 
20
- /***/ "../../shapes/cards/dist/browser/Utils.js"
21
- /*!************************************************!*\
22
- !*** ../../shapes/cards/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 */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 0.5;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/Utils.js?\n}");
27
-
28
- /***/ },
29
-
30
20
  /***/ "../../shapes/cards/dist/browser/clubs/ClubDrawer.js"
31
21
  /*!***********************************************************!*\
32
22
  !*** ../../shapes/cards/dist/browser/clubs/ClubDrawer.js ***!
33
23
  \***********************************************************/
34
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
25
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ClubDrawer: () => (/* binding */ ClubDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass ClubDrawer {\n constructor() {\n this.validTypes = [\"club\", \"clubs\"];\n }\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.club);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/clubs/ClubDrawer.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ClubDrawer: () => (/* binding */ ClubDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/path-utils */ \"../../utils/pathUtils/dist/browser/index.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../paths.js */ \"../../shapes/cards/dist/browser/paths.js\");\n\n\nclass ClubDrawer {\n draw(data) {\n const { context, radius } = data;\n (0,_tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.drawPath)(context, radius, _paths_js__WEBPACK_IMPORTED_MODULE_1__.paths.clubs);\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/clubs/ClubDrawer.js?\n}");
37
27
 
38
28
  /***/ }
39
29
 
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -17,23 +17,13 @@
17
17
  */
18
18
  (this["webpackChunk_tsparticles_confetti"] = this["webpackChunk_tsparticles_confetti"] || []).push([["shapes_cards_dist_browser_diamonds_DiamondDrawer_js"],{
19
19
 
20
- /***/ "../../shapes/cards/dist/browser/Utils.js"
21
- /*!************************************************!*\
22
- !*** ../../shapes/cards/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 */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 0.5;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/Utils.js?\n}");
27
-
28
- /***/ },
29
-
30
20
  /***/ "../../shapes/cards/dist/browser/diamonds/DiamondDrawer.js"
31
21
  /*!*****************************************************************!*\
32
22
  !*** ../../shapes/cards/dist/browser/diamonds/DiamondDrawer.js ***!
33
23
  \*****************************************************************/
34
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
25
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DiamondDrawer: () => (/* binding */ DiamondDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass DiamondDrawer {\n constructor() {\n this.validTypes = [\"diamond\", \"diamonds\"];\n }\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.diamond);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/diamonds/DiamondDrawer.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DiamondDrawer: () => (/* binding */ DiamondDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/path-utils */ \"../../utils/pathUtils/dist/browser/index.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../paths.js */ \"../../shapes/cards/dist/browser/paths.js\");\n\n\nclass DiamondDrawer {\n draw(data) {\n const { context, radius } = data;\n (0,_tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.drawPath)(context, radius, _paths_js__WEBPACK_IMPORTED_MODULE_1__.paths.diamonds);\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/diamonds/DiamondDrawer.js?\n}");
37
27
 
38
28
  /***/ }
39
29
 
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -17,23 +17,13 @@
17
17
  */
18
18
  (this["webpackChunk_tsparticles_confetti"] = this["webpackChunk_tsparticles_confetti"] || []).push([["shapes_cards_dist_browser_hearts_HeartDrawer_js"],{
19
19
 
20
- /***/ "../../shapes/cards/dist/browser/Utils.js"
21
- /*!************************************************!*\
22
- !*** ../../shapes/cards/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 */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 0.5;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/Utils.js?\n}");
27
-
28
- /***/ },
29
-
30
20
  /***/ "../../shapes/cards/dist/browser/hearts/HeartDrawer.js"
31
21
  /*!*************************************************************!*\
32
22
  !*** ../../shapes/cards/dist/browser/hearts/HeartDrawer.js ***!
33
23
  \*************************************************************/
34
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
25
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeartDrawer: () => (/* binding */ HeartDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass HeartDrawer {\n constructor() {\n this.validTypes = [\"heart\", \"hearts\"];\n }\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.heart);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/hearts/HeartDrawer.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HeartDrawer: () => (/* binding */ HeartDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/path-utils */ \"../../utils/pathUtils/dist/browser/index.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../paths.js */ \"../../shapes/cards/dist/browser/paths.js\");\n\n\nclass HeartDrawer {\n draw(data) {\n const { context, radius } = data;\n (0,_tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.drawPath)(context, radius, _paths_js__WEBPACK_IMPORTED_MODULE_1__.paths.hearts);\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/hearts/HeartDrawer.js?\n}");
37
27
 
38
28
  /***/ }
39
29
 
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -17,13 +17,23 @@
17
17
  */
18
18
  (this["webpackChunk_tsparticles_confetti"] = this["webpackChunk_tsparticles_confetti"] || []).push([["shapes_cards_dist_browser_index_js"],{
19
19
 
20
+ /***/ "../../shapes/cards/dist/browser/cards/index.js"
21
+ /*!******************************************************!*\
22
+ !*** ../../shapes/cards/dist/browser/cards/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 */ loadFullCardsShape: () => (/* binding */ loadFullCardsShape)\n/* harmony export */ });\nasync function loadFullCardsShape(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register((e)=>{\n e.addShape([\n \"card\"\n ], async ()=>{\n const { CardDrawer } = await Promise.all(/*! import() */[__webpack_require__.e(\"shapes_cards_dist_browser_paths_js\"), __webpack_require__.e(\"shapes_cards_dist_browser_cards_CardDrawer_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./CardDrawer.js */ \"../../shapes/cards/dist/browser/cards/CardDrawer.js\"));\n return new CardDrawer();\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/cards/index.js?\n}");
27
+
28
+ /***/ },
29
+
20
30
  /***/ "../../shapes/cards/dist/browser/clubs/index.js"
21
31
  /*!******************************************************!*\
22
32
  !*** ../../shapes/cards/dist/browser/clubs/index.js ***!
23
33
  \******************************************************/
24
34
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
35
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadClubsCardsShape: () => (/* binding */ loadClubsCardsShape)\n/* harmony export */ });\nasync function loadClubsCardsShape(engine) {\n engine.checkVersion(\"4.0.0-alpha.5\");\n await engine.register(async e => {\n const {\n ClubDrawer\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_clubs_ClubDrawer_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./ClubDrawer.js */ \"../../shapes/cards/dist/browser/clubs/ClubDrawer.js\"));\n e.addShape(new ClubDrawer());\n });\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/clubs/index.js?\n}");
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadClubsSuitShape: () => (/* binding */ loadClubsSuitShape)\n/* harmony export */ });\nasync function loadClubsSuitShape(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register((e)=>{\n e.addShape([\n \"club\",\n \"clubs\"\n ], async ()=>{\n const { ClubDrawer } = await Promise.all(/*! import() */[__webpack_require__.e(\"shapes_cards_dist_browser_paths_js\"), __webpack_require__.e(\"shapes_cards_dist_browser_clubs_ClubDrawer_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./ClubDrawer.js */ \"../../shapes/cards/dist/browser/clubs/ClubDrawer.js\"));\n return new ClubDrawer();\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/clubs/index.js?\n}");
27
37
 
28
38
  /***/ },
29
39
 
@@ -33,7 +43,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
33
43
  \*********************************************************/
34
44
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
45
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadDiamondsCardsShape: () => (/* binding */ loadDiamondsCardsShape)\n/* harmony export */ });\nasync function loadDiamondsCardsShape(engine) {\n engine.checkVersion(\"4.0.0-alpha.5\");\n await engine.register(async e => {\n const {\n DiamondDrawer\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_diamonds_DiamondDrawer_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./DiamondDrawer.js */ \"../../shapes/cards/dist/browser/diamonds/DiamondDrawer.js\"));\n e.addShape(new DiamondDrawer());\n });\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/diamonds/index.js?\n}");
46
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadDiamondsSuitShape: () => (/* binding */ loadDiamondsSuitShape)\n/* harmony export */ });\nasync function loadDiamondsSuitShape(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register((e)=>{\n e.addShape([\n \"diamond\",\n \"diamonds\"\n ], async ()=>{\n const { DiamondDrawer } = await Promise.all(/*! import() */[__webpack_require__.e(\"shapes_cards_dist_browser_paths_js\"), __webpack_require__.e(\"shapes_cards_dist_browser_diamonds_DiamondDrawer_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./DiamondDrawer.js */ \"../../shapes/cards/dist/browser/diamonds/DiamondDrawer.js\"));\n return new DiamondDrawer();\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/diamonds/index.js?\n}");
37
47
 
38
48
  /***/ },
39
49
 
@@ -43,7 +53,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
43
53
  \*******************************************************/
44
54
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
45
55
 
46
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHeartsCardsShape: () => (/* binding */ loadHeartsCardsShape)\n/* harmony export */ });\nasync function loadHeartsCardsShape(engine) {\n engine.checkVersion(\"4.0.0-alpha.5\");\n await engine.register(async e => {\n const {\n HeartDrawer\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_hearts_HeartDrawer_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./HeartDrawer.js */ \"../../shapes/cards/dist/browser/hearts/HeartDrawer.js\"));\n e.addShape(new HeartDrawer());\n });\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/hearts/index.js?\n}");
56
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadHeartsSuitShape: () => (/* binding */ loadHeartsSuitShape)\n/* harmony export */ });\nasync function loadHeartsSuitShape(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register((e)=>{\n e.addShape([\n \"heart\",\n \"hearts\"\n ], async ()=>{\n const { HeartDrawer } = await Promise.all(/*! import() */[__webpack_require__.e(\"shapes_cards_dist_browser_paths_js\"), __webpack_require__.e(\"shapes_cards_dist_browser_hearts_HeartDrawer_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./HeartDrawer.js */ \"../../shapes/cards/dist/browser/hearts/HeartDrawer.js\"));\n return new HeartDrawer();\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/hearts/index.js?\n}");
47
57
 
48
58
  /***/ },
49
59
 
@@ -53,7 +63,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
53
63
  \************************************************/
54
64
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
55
65
 
56
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCardsShape: () => (/* binding */ loadCardsShape),\n/* harmony export */ loadClubsCardsShape: () => (/* reexport safe */ _clubs_index_js__WEBPACK_IMPORTED_MODULE_0__.loadClubsCardsShape),\n/* harmony export */ loadDiamondsCardsShape: () => (/* reexport safe */ _diamonds_index_js__WEBPACK_IMPORTED_MODULE_1__.loadDiamondsCardsShape),\n/* harmony export */ loadHeartsCardsShape: () => (/* reexport safe */ _hearts_index_js__WEBPACK_IMPORTED_MODULE_2__.loadHeartsCardsShape),\n/* harmony export */ loadSpadesCardsShape: () => (/* reexport safe */ _spades_index_js__WEBPACK_IMPORTED_MODULE_3__.loadSpadesCardsShape)\n/* harmony export */ });\n/* harmony import */ var _clubs_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./clubs/index.js */ \"../../shapes/cards/dist/browser/clubs/index.js\");\n/* harmony import */ var _diamonds_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./diamonds/index.js */ \"../../shapes/cards/dist/browser/diamonds/index.js\");\n/* harmony import */ var _hearts_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hearts/index.js */ \"../../shapes/cards/dist/browser/hearts/index.js\");\n/* harmony import */ var _spades_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./spades/index.js */ \"../../shapes/cards/dist/browser/spades/index.js\");\nasync function loadCardsShape(engine) {\n engine.checkVersion(\"4.0.0-alpha.5\");\n await engine.register(async e => {\n const {\n loadClubsCardsShape\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./clubs/index.js */ \"../../shapes/cards/dist/browser/clubs/index.js\")),\n {\n loadDiamondsCardsShape\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./diamonds/index.js */ \"../../shapes/cards/dist/browser/diamonds/index.js\")),\n {\n loadHeartsCardsShape\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./hearts/index.js */ \"../../shapes/cards/dist/browser/hearts/index.js\")),\n {\n loadSpadesCardsShape\n } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./spades/index.js */ \"../../shapes/cards/dist/browser/spades/index.js\"));\n await loadClubsCardsShape(e);\n await loadDiamondsCardsShape(e);\n await loadHeartsCardsShape(e);\n await loadSpadesCardsShape(e);\n });\n}\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/index.js?\n}");
66
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCardSuitsShape: () => (/* binding */ loadCardSuitsShape),\n/* harmony export */ loadCardsShape: () => (/* binding */ loadCardsShape),\n/* harmony export */ loadClubsSuitShape: () => (/* reexport safe */ _clubs_index_js__WEBPACK_IMPORTED_MODULE_1__.loadClubsSuitShape),\n/* harmony export */ loadDiamondsSuitShape: () => (/* reexport safe */ _diamonds_index_js__WEBPACK_IMPORTED_MODULE_2__.loadDiamondsSuitShape),\n/* harmony export */ loadFullCardsShape: () => (/* reexport safe */ _cards_index_js__WEBPACK_IMPORTED_MODULE_0__.loadFullCardsShape),\n/* harmony export */ loadHeartsSuitShape: () => (/* reexport safe */ _hearts_index_js__WEBPACK_IMPORTED_MODULE_3__.loadHeartsSuitShape),\n/* harmony export */ loadSpadesSuitShape: () => (/* reexport safe */ _spades_index_js__WEBPACK_IMPORTED_MODULE_4__.loadSpadesSuitShape)\n/* harmony export */ });\n/* harmony import */ var _cards_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cards/index.js */ \"../../shapes/cards/dist/browser/cards/index.js\");\n/* harmony import */ var _clubs_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./clubs/index.js */ \"../../shapes/cards/dist/browser/clubs/index.js\");\n/* harmony import */ var _diamonds_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./diamonds/index.js */ \"../../shapes/cards/dist/browser/diamonds/index.js\");\n/* harmony import */ var _hearts_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hearts/index.js */ \"../../shapes/cards/dist/browser/hearts/index.js\");\n/* harmony import */ var _spades_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./spades/index.js */ \"../../shapes/cards/dist/browser/spades/index.js\");\nasync function loadCardSuitsShape(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register(async (e)=>{\n const [{ loadClubsSuitShape }, { loadDiamondsSuitShape }, { loadHeartsSuitShape }, { loadSpadesSuitShape }] = await Promise.all([\n Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./clubs/index.js */ \"../../shapes/cards/dist/browser/clubs/index.js\")),\n Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./diamonds/index.js */ \"../../shapes/cards/dist/browser/diamonds/index.js\")),\n Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./hearts/index.js */ \"../../shapes/cards/dist/browser/hearts/index.js\")),\n Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./spades/index.js */ \"../../shapes/cards/dist/browser/spades/index.js\"))\n ]);\n await Promise.all([\n loadClubsSuitShape(e),\n loadDiamondsSuitShape(e),\n loadHeartsSuitShape(e),\n loadSpadesSuitShape(e)\n ]);\n });\n}\nasync function loadCardsShape(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register(async (e)=>{\n const { loadFullCardsShape } = await Promise.resolve(/*! import() */).then(__webpack_require__.bind(__webpack_require__, /*! ./cards/index.js */ \"../../shapes/cards/dist/browser/cards/index.js\"));\n await Promise.all([\n loadFullCardsShape(e),\n loadCardSuitsShape(e)\n ]);\n });\n}\n\n\n\n\n\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/index.js?\n}");
57
67
 
58
68
  /***/ },
59
69
 
@@ -63,7 +73,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
63
73
  \*******************************************************/
64
74
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
65
75
 
66
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSpadesCardsShape: () => (/* binding */ loadSpadesCardsShape)\n/* harmony export */ });\nasync function loadSpadesCardsShape(engine) {\n engine.checkVersion(\"4.0.0-alpha.5\");\n await engine.register(async e => {\n const {\n SpadeDrawer\n } = await __webpack_require__.e(/*! import() */ \"shapes_cards_dist_browser_spades_SpadeDrawer_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./SpadeDrawer.js */ \"../../shapes/cards/dist/browser/spades/SpadeDrawer.js\"));\n e.addShape(new SpadeDrawer());\n });\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/spades/index.js?\n}");
76
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadSpadesSuitShape: () => (/* binding */ loadSpadesSuitShape)\n/* harmony export */ });\nasync function loadSpadesSuitShape(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register((e)=>{\n e.addShape([\n \"spade\",\n \"spades\"\n ], async ()=>{\n const { SpadeDrawer } = await Promise.all(/*! import() */[__webpack_require__.e(\"shapes_cards_dist_browser_paths_js\"), __webpack_require__.e(\"shapes_cards_dist_browser_spades_SpadeDrawer_js\")]).then(__webpack_require__.bind(__webpack_require__, /*! ./SpadeDrawer.js */ \"../../shapes/cards/dist/browser/spades/SpadeDrawer.js\"));\n return new SpadeDrawer();\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/spades/index.js?\n}");
67
77
 
68
78
  /***/ }
69
79
 
@@ -0,0 +1,70 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-beta.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_confetti"] = this["webpackChunk_tsparticles_confetti"] || []).push([["shapes_cards_dist_browser_paths_js"],{
19
+
20
+ /***/ "../../shapes/cards/dist/browser/SuitType.js"
21
+ /*!***************************************************!*\
22
+ !*** ../../shapes/cards/dist/browser/SuitType.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 */ SuitType: () => (/* binding */ SuitType)\n/* harmony export */ });\nvar SuitType;\n(function(SuitType) {\n SuitType[\"hearts\"] = \"hearts\";\n SuitType[\"diamonds\"] = \"diamonds\";\n SuitType[\"clubs\"] = \"clubs\";\n SuitType[\"spades\"] = \"spades\";\n})(SuitType || (SuitType = {}));\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/SuitType.js?\n}");
27
+
28
+ /***/ },
29
+
30
+ /***/ "../../shapes/cards/dist/browser/paths.js"
31
+ /*!************************************************!*\
32
+ !*** ../../shapes/cards/dist/browser/paths.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 */ club: () => (/* binding */ club),\n/* harmony export */ diamond: () => (/* binding */ diamond),\n/* harmony export */ heart: () => (/* binding */ heart),\n/* harmony export */ paths: () => (/* binding */ paths),\n/* harmony export */ spade: () => (/* binding */ spade)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/path-utils */ \"../../utils/pathUtils/dist/browser/index.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _SuitType_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SuitType.js */ \"../../shapes/cards/dist/browser/SuitType.js\");\n\n\n\nconst eighth = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.quarter * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half, n = _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half, halfN = n * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.half, oppositeN = -n, oppositeHalfN = -halfN, eighthN = n * eighth, threeQuarterN = n * _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.threeQuarter;\nconst club = {\n half: true,\n segments: [\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeN\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeN\n },\n {\n x: halfN,\n y: oppositeN\n },\n {\n x: halfN,\n y: oppositeHalfN\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: halfN,\n y: oppositeHalfN\n },\n {\n x: halfN,\n y: oppositeHalfN\n },\n {\n x: n,\n y: oppositeHalfN\n },\n {\n x: n,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: n,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: n,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: n,\n y: halfN\n },\n {\n x: halfN,\n y: halfN\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: halfN,\n y: halfN\n },\n {\n x: halfN,\n y: halfN\n },\n {\n x: eighthN,\n y: halfN\n },\n {\n x: eighthN,\n y: eighthN\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: eighthN,\n y: eighthN\n },\n {\n x: eighthN,\n y: halfN\n },\n {\n x: halfN,\n y: n\n },\n {\n x: halfN,\n y: n\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: halfN,\n y: n\n },\n {\n x: halfN,\n y: n\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n }\n ]\n }\n ]\n};\nconst diamond = {\n half: true,\n segments: [\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n },\n {\n x: threeQuarterN,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: threeQuarterN,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: threeQuarterN,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: threeQuarterN,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeN\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeN\n }\n ]\n }\n ]\n};\nconst heart = {\n half: true,\n segments: [\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n },\n {\n x: n,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: n,\n y: oppositeHalfN\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: n,\n y: oppositeHalfN\n },\n {\n x: n,\n y: oppositeHalfN\n },\n {\n x: n,\n y: oppositeN\n },\n {\n x: halfN,\n y: oppositeN\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: halfN,\n y: oppositeN\n },\n {\n x: halfN,\n y: oppositeN\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeN\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeHalfN\n }\n ]\n }\n ]\n};\nconst spade = {\n half: true,\n segments: [\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeN\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: oppositeN\n },\n {\n x: n,\n y: oppositeHalfN\n },\n {\n x: n,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: n,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: n,\n y: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty\n },\n {\n x: n,\n y: halfN\n },\n {\n x: halfN,\n y: halfN\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: halfN,\n y: halfN\n },\n {\n x: halfN,\n y: halfN\n },\n {\n x: eighthN,\n y: halfN\n },\n {\n x: eighthN,\n y: eighthN\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: eighthN,\n y: eighthN\n },\n {\n x: eighthN,\n y: halfN\n },\n {\n x: halfN,\n y: n\n },\n {\n x: halfN,\n y: n\n }\n ]\n },\n {\n type: _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier,\n values: [\n {\n x: halfN,\n y: n\n },\n {\n x: halfN,\n y: n\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n },\n {\n x: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.empty,\n y: n\n }\n ]\n }\n ]\n};\nconst paths = {\n [_SuitType_js__WEBPACK_IMPORTED_MODULE_2__.SuitType.hearts]: heart,\n [_SuitType_js__WEBPACK_IMPORTED_MODULE_2__.SuitType.diamonds]: diamond,\n [_SuitType_js__WEBPACK_IMPORTED_MODULE_2__.SuitType.clubs]: club,\n [_SuitType_js__WEBPACK_IMPORTED_MODULE_2__.SuitType.spades]: spade\n};\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/paths.js?\n}");
37
+
38
+ /***/ },
39
+
40
+ /***/ "../../utils/pathUtils/dist/browser/SegmentType.js"
41
+ /*!*********************************************************!*\
42
+ !*** ../../utils/pathUtils/dist/browser/SegmentType.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 */ SegmentType: () => (/* binding */ SegmentType)\n/* harmony export */ });\nvar SegmentType;\n(function(SegmentType) {\n SegmentType[\"move\"] = \"move\";\n SegmentType[\"line\"] = \"line\";\n SegmentType[\"bezier\"] = \"bezier\";\n SegmentType[\"quadratic\"] = \"quadratic\";\n SegmentType[\"arc\"] = \"arc\";\n SegmentType[\"ellipse\"] = \"ellipse\";\n})(SegmentType || (SegmentType = {}));\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../utils/pathUtils/dist/browser/SegmentType.js?\n}");
47
+
48
+ /***/ },
49
+
50
+ /***/ "../../utils/pathUtils/dist/browser/Utils.js"
51
+ /*!***************************************************!*\
52
+ !*** ../../utils/pathUtils/dist/browser/Utils.js ***!
53
+ \***************************************************/
54
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
55
+
56
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawPath: () => (/* binding */ drawPath)\n/* harmony export */ });\n/* harmony import */ var _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SegmentType.js */ \"../../utils/pathUtils/dist/browser/SegmentType.js\");\n\nconst firstIndex = 0, index2 = 1, index3 = 2, index4 = 3;\nfunction drawPath(ctx, radius, path) {\n const firstSegment = path.segments[firstIndex];\n if (!firstSegment) {\n return;\n }\n const firstValue = firstSegment.values[firstIndex];\n if (!firstValue) {\n return;\n }\n ctx.moveTo(firstValue.x * radius, firstValue.y * radius);\n for (const segment of path.segments){\n const value = segment.values[firstIndex];\n if (!value) {\n continue;\n }\n const segmentValue2 = segment.values[index2], segmentValue3 = segment.values[index3], segmentValue4 = segment.values[index4];\n switch(segment.type){\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.move:\n ctx.moveTo(value.x * radius, value.y * radius);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.line:\n ctx.lineTo(value.x * radius, value.y * radius);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier:\n if (!segmentValue2 || !segmentValue3 || !segmentValue4) {\n continue;\n }\n ctx.bezierCurveTo(segmentValue2.x * radius, segmentValue2.y * radius, segmentValue3.x * radius, segmentValue3.y * radius, segmentValue4.x * radius, segmentValue4.y * radius);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.quadratic:\n if (!segmentValue2 || !segmentValue3) {\n continue;\n }\n ctx.quadraticCurveTo(segmentValue2.x * radius, segmentValue2.y * radius, segmentValue3.x * radius, segmentValue3.y * radius);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.arc:\n if (!segmentValue2 || !segmentValue3) {\n continue;\n }\n ctx.arc(value.x * radius, value.y * radius, segmentValue2.x * radius, segmentValue3.x, segmentValue3.y);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.ellipse:\n if (!segmentValue2 || !segmentValue3 || !segmentValue4) {\n continue;\n }\n ctx.ellipse(value.x * radius, value.y * radius, segmentValue2.x * radius, segmentValue2.y * radius, segmentValue3.x, segmentValue4.x, segmentValue4.y);\n break;\n }\n }\n if (!path.half) {\n return;\n }\n const lengthOffset = 1, minLength = 0;\n for(let i = path.segments.length - lengthOffset; i >= minLength; i--){\n const segment = path.segments[i];\n if (!segment) {\n continue;\n }\n const value = segment.values[firstIndex], index2 = 1, index3 = 2, segmentValue2 = segment.values[index2], segmentValue3 = segment.values[index3];\n switch(segment.type){\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.line:\n if (!value) {\n break;\n }\n ctx.lineTo(value.x * -radius, value.y * radius);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.bezier:\n if (!value || !segmentValue2 || !segmentValue3) {\n break;\n }\n ctx.bezierCurveTo(-segmentValue3.x * radius, segmentValue3.y * radius, -segmentValue2.x * radius, segmentValue2.y * radius, -value.x * radius, value.y * radius);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.quadratic:\n if (!segmentValue2 || !segmentValue3) {\n break;\n }\n ctx.quadraticCurveTo(-segmentValue2.x * radius, segmentValue2.y * radius, -segmentValue3.x * radius, segmentValue3.y * radius);\n break;\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.arc:\n case _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType.ellipse:\n default:\n break;\n }\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../utils/pathUtils/dist/browser/Utils.js?\n}");
57
+
58
+ /***/ },
59
+
60
+ /***/ "../../utils/pathUtils/dist/browser/index.js"
61
+ /*!***************************************************!*\
62
+ !*** ../../utils/pathUtils/dist/browser/index.js ***!
63
+ \***************************************************/
64
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
65
+
66
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SegmentType: () => (/* reexport safe */ _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__.SegmentType),\n/* harmony export */ drawPath: () => (/* reexport safe */ _Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawPath)\n/* harmony export */ });\n/* harmony import */ var _SegmentType_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SegmentType.js */ \"../../utils/pathUtils/dist/browser/SegmentType.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../utils/pathUtils/dist/browser/Utils.js\");\n\n\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../utils/pathUtils/dist/browser/index.js?\n}");
67
+
68
+ /***/ }
69
+
70
+ }]);
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -17,23 +17,13 @@
17
17
  */
18
18
  (this["webpackChunk_tsparticles_confetti"] = this["webpackChunk_tsparticles_confetti"] || []).push([["shapes_cards_dist_browser_spades_SpadeDrawer_js"],{
19
19
 
20
- /***/ "../../shapes/cards/dist/browser/Utils.js"
21
- /*!************************************************!*\
22
- !*** ../../shapes/cards/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 */ drawPath: () => (/* binding */ drawPath),\n/* harmony export */ paths: () => (/* binding */ paths)\n/* harmony export */ });\nfunction drawPath(data, path) {\n if (!path.segments.length || !path.segments[0].values.length) {\n return;\n }\n const {\n context,\n radius\n } = data;\n context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);\n for (const segment of path.segments) {\n context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);\n }\n for (let i = path.segments.length - 1; i >= 0; i--) {\n const segment = path.segments[i];\n context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);\n }\n}\nconst n = 0.5;\nconst paths = {\n heart: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n / 2\n }]\n }]\n },\n diamond: {\n segments: [{\n values: [{\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }]\n }, {\n values: [{\n x: 3 * n / 4,\n y: 0\n }, {\n x: 3 * n / 4,\n y: 0\n }, {\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }]\n }]\n },\n club: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n / 2,\n y: -n\n }, {\n x: n / 2,\n y: -n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: -n / 2\n }, {\n x: n / 2,\n y: -n / 2\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n },\n spade: {\n segments: [{\n values: [{\n x: 0,\n y: -n\n }, {\n x: 0,\n y: -n\n }, {\n x: n,\n y: -n / 2\n }, {\n x: n,\n y: 0\n }]\n }, {\n values: [{\n x: n,\n y: 0\n }, {\n x: n,\n y: 0\n }, {\n x: n,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }]\n }, {\n values: [{\n x: n / 2,\n y: n / 2\n }, {\n x: n / 2,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 8,\n y: n / 8\n }]\n }, {\n values: [{\n x: n / 8,\n y: n / 8\n }, {\n x: n / 8,\n y: n / 2\n }, {\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }]\n }, {\n values: [{\n x: n / 2,\n y: n\n }, {\n x: n / 2,\n y: n\n }, {\n x: 0,\n y: n\n }, {\n x: 0,\n y: n\n }]\n }]\n }\n};\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/Utils.js?\n}");
27
-
28
- /***/ },
29
-
30
20
  /***/ "../../shapes/cards/dist/browser/spades/SpadeDrawer.js"
31
21
  /*!*************************************************************!*\
32
22
  !*** ../../shapes/cards/dist/browser/spades/SpadeDrawer.js ***!
33
23
  \*************************************************************/
34
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
25
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpadeDrawer: () => (/* binding */ SpadeDrawer)\n/* harmony export */ });\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils.js */ \"../../shapes/cards/dist/browser/Utils.js\");\n\nclass SpadeDrawer {\n constructor() {\n this.validTypes = [\"spade\", \"spades\"];\n }\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_0__.drawPath)(data, _Utils_js__WEBPACK_IMPORTED_MODULE_0__.paths.spade);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/spades/SpadeDrawer.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SpadeDrawer: () => (/* binding */ SpadeDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/path-utils */ \"../../utils/pathUtils/dist/browser/index.js\");\n/* harmony import */ var _paths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../paths.js */ \"../../shapes/cards/dist/browser/paths.js\");\n\n\nclass SpadeDrawer {\n draw(data) {\n const { context, radius } = data;\n (0,_tsparticles_path_utils__WEBPACK_IMPORTED_MODULE_0__.drawPath)(context, radius, _paths_js__WEBPACK_IMPORTED_MODULE_1__.paths.spades);\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/cards/dist/browser/spades/SpadeDrawer.js?\n}");
37
27
 
38
28
  /***/ }
39
29
 
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \********************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CircleDrawer: () => (/* binding */ CircleDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/circle/dist/browser/Utils.js\");\n\n\nconst sides = 12,\n maxAngle = 360,\n minAngle = 0;\nclass CircleDrawer {\n constructor() {\n this.validTypes = [\"circle\"];\n }\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawCircle)(data);\n }\n getSidesCount() {\n return sides;\n }\n particleInit(_container, particle) {\n const shapeData = particle.shapeData,\n angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle\n };\n particle.circleRange = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isObject)(angle) ? {\n min: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.min),\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle.max)\n } : {\n min: minAngle,\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle)\n };\n }\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/CircleDrawer.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CircleDrawer: () => (/* binding */ CircleDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n/* harmony import */ var _Utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils.js */ \"../../shapes/circle/dist/browser/Utils.js\");\n\n\nconst sides = 12, maxAngle = 360, minAngle = 0;\nclass CircleDrawer {\n draw(data) {\n (0,_Utils_js__WEBPACK_IMPORTED_MODULE_1__.drawCircle)(data);\n }\n getSidesCount() {\n return sides;\n }\n particleInit(_container, particle) {\n const shapeData = particle.shapeData, angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle\n };\n particle.circleRange = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isObject)(angle) ? {\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 min: minAngle,\n max: (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.degToRad)(angle)\n };\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/CircleDrawer.js?\n}");
27
27
 
28
28
  /***/ },
29
29
 
@@ -33,7 +33,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
33
33
  \*************************************************/
34
34
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
35
35
 
36
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawCircle: () => (/* binding */ drawCircle)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst minAngle = 0;\nfunction drawCircle(data) {\n const {\n context,\n particle,\n radius\n } = data;\n particle.circleRange ??= {\n min: minAngle,\n max: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI\n };\n const circleRange = particle.circleRange;\n context.arc(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, radius, circleRange.min, circleRange.max, false);\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/Utils.js?\n}");
36
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drawCircle: () => (/* binding */ drawCircle)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"../../engine/dist/browser/index.js\");\n\nconst minAngle = 0;\nfunction drawCircle(data) {\n const { context, particle, radius } = data;\n particle.circleRange ??= {\n min: minAngle,\n max: _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.doublePI\n };\n const circleRange = particle.circleRange;\n context.arc(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.x, _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.originPoint.y, radius, circleRange.min, circleRange.max, false);\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/Utils.js?\n}");
37
37
 
38
38
  /***/ }
39
39
 
@@ -4,7 +4,7 @@
4
4
  * Demo / Generator : https://particles.js.org/
5
5
  * GitHub : https://www.github.com/matteobruni/tsparticles
6
6
  * How to use? : Check the GitHub README
7
- * v4.0.0-alpha.5
7
+ * v4.0.0-beta.0
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -23,7 +23,7 @@
23
23
  \*************************************************/
24
24
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
25
 
26
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCircleShape: () => (/* binding */ loadCircleShape)\n/* harmony export */ });\nasync function loadCircleShape(engine) {\n engine.checkVersion(\"4.0.0-alpha.5\");\n await engine.register(async e => {\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 e.addShape(new CircleDrawer());\n });\n}\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/index.js?\n}");
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) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register((e)=>{\n e.addShape([\n \"circle\"\n ], async ()=>{\n const { CircleDrawer } = 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 return new CircleDrawer();\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/confetti/../../shapes/circle/dist/browser/index.js?\n}");
27
27
 
28
28
  /***/ }
29
29