@tsparticles/confetti 3.2.2 → 3.4.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 (220) hide show
  1. package/browser/confetti.js +65 -2
  2. package/cjs/confetti.js +80 -40
  3. package/esm/confetti.js +65 -2
  4. package/package.json +17 -17
  5. package/report.html +1 -1
  6. package/tsparticles.confetti.bundle.js +1214 -302
  7. package/tsparticles.confetti.bundle.min.js +1 -1
  8. package/tsparticles.confetti.bundle.min.js.LICENSE.txt +1 -1
  9. package/tsparticles.confetti.js +6 -36
  10. package/tsparticles.confetti.min.js +1 -1
  11. package/tsparticles.confetti.min.js.LICENSE.txt +1 -1
  12. package/types/confetti.d.ts +2 -0
  13. package/umd/confetti.js +81 -42
  14. package/1308.min.js +0 -2
  15. package/1308.min.js.LICENSE.txt +0 -1
  16. package/1472.min.js +0 -2
  17. package/1472.min.js.LICENSE.txt +0 -1
  18. package/1513.min.js +0 -2
  19. package/1513.min.js.LICENSE.txt +0 -1
  20. package/1705.min.js +0 -2
  21. package/1705.min.js.LICENSE.txt +0 -1
  22. package/1810.min.js +0 -2
  23. package/1810.min.js.LICENSE.txt +0 -1
  24. package/196.min.js +0 -2
  25. package/196.min.js.LICENSE.txt +0 -1
  26. package/2124.min.js +0 -2
  27. package/2124.min.js.LICENSE.txt +0 -1
  28. package/2173.min.js +0 -2
  29. package/2173.min.js.LICENSE.txt +0 -1
  30. package/2580.min.js +0 -2
  31. package/2580.min.js.LICENSE.txt +0 -1
  32. package/2720.min.js +0 -2
  33. package/2720.min.js.LICENSE.txt +0 -1
  34. package/2765.min.js +0 -2
  35. package/2765.min.js.LICENSE.txt +0 -1
  36. package/3141.min.js +0 -2
  37. package/3141.min.js.LICENSE.txt +0 -1
  38. package/3261.min.js +0 -2
  39. package/3261.min.js.LICENSE.txt +0 -1
  40. package/3473.min.js +0 -2
  41. package/3473.min.js.LICENSE.txt +0 -1
  42. package/3610.min.js +0 -2
  43. package/3610.min.js.LICENSE.txt +0 -1
  44. package/3629.min.js +0 -2
  45. package/3629.min.js.LICENSE.txt +0 -1
  46. package/3648.min.js +0 -2
  47. package/3648.min.js.LICENSE.txt +0 -1
  48. package/3733.min.js +0 -2
  49. package/3733.min.js.LICENSE.txt +0 -1
  50. package/3862.min.js +0 -2
  51. package/3862.min.js.LICENSE.txt +0 -1
  52. package/3869.min.js +0 -2
  53. package/3869.min.js.LICENSE.txt +0 -1
  54. package/409.min.js +0 -2
  55. package/409.min.js.LICENSE.txt +0 -1
  56. package/4245.min.js +0 -2
  57. package/4245.min.js.LICENSE.txt +0 -1
  58. package/4328.min.js +0 -2
  59. package/4328.min.js.LICENSE.txt +0 -1
  60. package/4396.min.js +0 -2
  61. package/4396.min.js.LICENSE.txt +0 -1
  62. package/4547.min.js +0 -2
  63. package/4547.min.js.LICENSE.txt +0 -1
  64. package/4595.min.js +0 -2
  65. package/4595.min.js.LICENSE.txt +0 -1
  66. package/4794.min.js +0 -2
  67. package/4794.min.js.LICENSE.txt +0 -1
  68. package/482.min.js +0 -2
  69. package/482.min.js.LICENSE.txt +0 -1
  70. package/4866.min.js +0 -2
  71. package/4866.min.js.LICENSE.txt +0 -1
  72. package/4973.min.js +0 -2
  73. package/4973.min.js.LICENSE.txt +0 -1
  74. package/4994.min.js +0 -2
  75. package/4994.min.js.LICENSE.txt +0 -1
  76. package/5092.min.js +0 -2
  77. package/5092.min.js.LICENSE.txt +0 -1
  78. package/5120.min.js +0 -2
  79. package/5120.min.js.LICENSE.txt +0 -1
  80. package/5245.min.js +0 -2
  81. package/5245.min.js.LICENSE.txt +0 -1
  82. package/5308.min.js +0 -2
  83. package/5308.min.js.LICENSE.txt +0 -1
  84. package/5329.min.js +0 -2
  85. package/5329.min.js.LICENSE.txt +0 -1
  86. package/5437.min.js +0 -2
  87. package/5437.min.js.LICENSE.txt +0 -1
  88. package/5444.min.js +0 -2
  89. package/5444.min.js.LICENSE.txt +0 -1
  90. package/5534.min.js +0 -2
  91. package/5534.min.js.LICENSE.txt +0 -1
  92. package/560.min.js +0 -2
  93. package/560.min.js.LICENSE.txt +0 -1
  94. package/5647.min.js +0 -2
  95. package/5647.min.js.LICENSE.txt +0 -1
  96. package/571.min.js +0 -2
  97. package/571.min.js.LICENSE.txt +0 -1
  98. package/5742.min.js +0 -2
  99. package/5742.min.js.LICENSE.txt +0 -1
  100. package/6004.min.js +0 -2
  101. package/6004.min.js.LICENSE.txt +0 -1
  102. package/6132.min.js +0 -2
  103. package/6132.min.js.LICENSE.txt +0 -1
  104. package/6551.min.js +0 -2
  105. package/6551.min.js.LICENSE.txt +0 -1
  106. package/6772.min.js +0 -2
  107. package/6772.min.js.LICENSE.txt +0 -1
  108. package/7031.min.js +0 -2
  109. package/7031.min.js.LICENSE.txt +0 -1
  110. package/7049.min.js +0 -2
  111. package/7049.min.js.LICENSE.txt +0 -1
  112. package/7108.min.js +0 -2
  113. package/7108.min.js.LICENSE.txt +0 -1
  114. package/7331.min.js +0 -2
  115. package/7331.min.js.LICENSE.txt +0 -1
  116. package/7517.min.js +0 -2
  117. package/7517.min.js.LICENSE.txt +0 -1
  118. package/7687.min.js +0 -2
  119. package/7687.min.js.LICENSE.txt +0 -1
  120. package/7725.min.js +0 -2
  121. package/7725.min.js.LICENSE.txt +0 -1
  122. package/7757.min.js +0 -2
  123. package/7757.min.js.LICENSE.txt +0 -1
  124. package/7835.min.js +0 -2
  125. package/7835.min.js.LICENSE.txt +0 -1
  126. package/7859.min.js +0 -2
  127. package/7859.min.js.LICENSE.txt +0 -1
  128. package/7886.min.js +0 -2
  129. package/7886.min.js.LICENSE.txt +0 -1
  130. package/7890.min.js +0 -2
  131. package/7890.min.js.LICENSE.txt +0 -1
  132. package/8060.min.js +0 -2
  133. package/8060.min.js.LICENSE.txt +0 -1
  134. package/9062.min.js +0 -2
  135. package/9062.min.js.LICENSE.txt +0 -1
  136. package/9126.min.js +0 -2
  137. package/9126.min.js.LICENSE.txt +0 -1
  138. package/9331.min.js +0 -2
  139. package/9331.min.js.LICENSE.txt +0 -1
  140. package/9376.min.js +0 -2
  141. package/9376.min.js.LICENSE.txt +0 -1
  142. package/95.min.js +0 -2
  143. package/95.min.js.LICENSE.txt +0 -1
  144. package/9530.min.js +0 -2
  145. package/9530.min.js.LICENSE.txt +0 -1
  146. package/9532.min.js +0 -2
  147. package/9532.min.js.LICENSE.txt +0 -1
  148. package/9836.min.js +0 -2
  149. package/9836.min.js.LICENSE.txt +0 -1
  150. package/9921.min.js +0 -2
  151. package/9921.min.js.LICENSE.txt +0 -1
  152. package/basic_dist_browser_index_js.js +0 -30
  153. package/engine_dist_browser_Core_Container_js.js +0 -90
  154. package/engine_dist_browser_Core_Particle_js.js +0 -30
  155. package/move_base_dist_browser_BaseMover_js.js +0 -30
  156. package/move_base_dist_browser_Utils_js.js +0 -30
  157. package/move_base_dist_browser_index_js.js +0 -30
  158. package/plugins_emitters_dist_browser_EmitterInstance_js.js +0 -30
  159. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +0 -90
  160. package/plugins_emitters_dist_browser_Emitters_js.js +0 -30
  161. package/plugins_emitters_dist_browser_ShapeManager_js.js +0 -30
  162. package/plugins_emitters_dist_browser_index_js.js +0 -100
  163. package/plugins_motion_dist_browser_MotionInstance_js.js +0 -30
  164. package/plugins_motion_dist_browser_MotionPlugin_js.js +0 -50
  165. package/plugins_motion_dist_browser_index_js.js +0 -30
  166. package/shapes_cards_dist_browser_ClubDrawer_js.js +0 -30
  167. package/shapes_cards_dist_browser_DiamondDrawer_js.js +0 -30
  168. package/shapes_cards_dist_browser_HeartDrawer_js.js +0 -30
  169. package/shapes_cards_dist_browser_SpadeDrawer_js.js +0 -30
  170. package/shapes_cards_dist_browser_Utils_js.js +0 -30
  171. package/shapes_cards_dist_browser_index_js.js +0 -30
  172. package/shapes_circle_dist_browser_CircleDrawer_js.js +0 -30
  173. package/shapes_circle_dist_browser_Utils_js.js +0 -30
  174. package/shapes_circle_dist_browser_index_js.js +0 -30
  175. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +0 -30
  176. package/shapes_emoji_dist_browser_Utils_js.js +0 -30
  177. package/shapes_emoji_dist_browser_index_js.js +0 -40
  178. package/shapes_heart_dist_browser_HeartDrawer_js.js +0 -30
  179. package/shapes_heart_dist_browser_Utils_js.js +0 -30
  180. package/shapes_heart_dist_browser_index_js.js +0 -30
  181. package/shapes_image_dist_browser_GifUtils_Utils_js.js +0 -50
  182. package/shapes_image_dist_browser_ImageDrawer_js.js +0 -30
  183. package/shapes_image_dist_browser_ImagePreloader_js.js +0 -40
  184. package/shapes_image_dist_browser_index_js.js +0 -40
  185. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +0 -40
  186. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +0 -40
  187. package/shapes_polygon_dist_browser_Utils_js.js +0 -30
  188. package/shapes_polygon_dist_browser_index_js.js +0 -30
  189. package/shapes_square_dist_browser_SquareDrawer_js.js +0 -30
  190. package/shapes_square_dist_browser_Utils_js.js +0 -30
  191. package/shapes_square_dist_browser_index_js.js +0 -30
  192. package/shapes_star_dist_browser_StarDrawer_js.js +0 -30
  193. package/shapes_star_dist_browser_Utils_js.js +0 -30
  194. package/shapes_star_dist_browser_index_js.js +0 -30
  195. package/updaters_color_dist_browser_ColorUpdater_js.js +0 -30
  196. package/updaters_color_dist_browser_index_js.js +0 -30
  197. package/updaters_life_dist_browser_LifeUpdater_js.js +0 -60
  198. package/updaters_life_dist_browser_Utils_js.js +0 -30
  199. package/updaters_life_dist_browser_index_js.js +0 -30
  200. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +0 -30
  201. package/updaters_opacity_dist_browser_index_js.js +0 -30
  202. package/updaters_outModes_dist_browser_BounceOutMode_js.js +0 -30
  203. package/updaters_outModes_dist_browser_DestroyOutMode_js.js +0 -30
  204. package/updaters_outModes_dist_browser_NoneOutMode_js.js +0 -30
  205. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +0 -30
  206. package/updaters_outModes_dist_browser_OutOutMode_js.js +0 -30
  207. package/updaters_outModes_dist_browser_Utils_js.js +0 -30
  208. package/updaters_outModes_dist_browser_index_js.js +0 -30
  209. package/updaters_roll_dist_browser_RollUpdater_js.js +0 -50
  210. package/updaters_roll_dist_browser_Utils_js.js +0 -30
  211. package/updaters_roll_dist_browser_index_js.js +0 -30
  212. package/updaters_rotate_dist_browser_RotateUpdater_js.js +0 -50
  213. package/updaters_rotate_dist_browser_index_js.js +0 -30
  214. package/updaters_size_dist_browser_SizeUpdater_js.js +0 -30
  215. package/updaters_size_dist_browser_index_js.js +0 -30
  216. package/updaters_tilt_dist_browser_TiltUpdater_js.js +0 -50
  217. package/updaters_tilt_dist_browser_index_js.js +0 -30
  218. package/updaters_wobble_dist_browser_Utils_js.js +0 -30
  219. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +0 -50
  220. package/updaters_wobble_dist_browser_index_js.js +0 -30
@@ -1,5 +1,20 @@
1
1
  import { isSsr, isString, millisecondsToSeconds, tsParticles, } from "@tsparticles/engine";
2
+ import { loadEmittersPlugin } from "@tsparticles/plugin-emitters";
2
3
  import { ConfettiOptions } from "./ConfettiOptions.js";
4
+ import { loadBasic } from "@tsparticles/basic";
5
+ import { loadCardsShape } from "@tsparticles/shape-cards";
6
+ import { loadEmojiShape } from "@tsparticles/shape-emoji";
7
+ import { loadHeartShape } from "@tsparticles/shape-heart";
8
+ import { loadImageShape } from "@tsparticles/shape-image";
9
+ import { loadLifeUpdater } from "@tsparticles/updater-life";
10
+ import { loadMotionPlugin } from "@tsparticles/plugin-motion";
11
+ import { loadPolygonShape } from "@tsparticles/shape-polygon";
12
+ import { loadRollUpdater } from "@tsparticles/updater-roll";
13
+ import { loadRotateUpdater } from "@tsparticles/updater-rotate";
14
+ import { loadSquareShape } from "@tsparticles/shape-square";
15
+ import { loadStarShape } from "@tsparticles/shape-star";
16
+ import { loadTiltUpdater } from "@tsparticles/updater-tilt";
17
+ import { loadWobbleUpdater } from "@tsparticles/updater-wobble";
3
18
  const defaultGravity = 9.81, sizeFactor = 5, speedFactor = 3, decayOffset = 1, disableRotate = 0, disableTilt = 0;
4
19
  let initialized = false;
5
20
  let initializing = false;
@@ -9,7 +24,7 @@ async function initPlugins(engine) {
9
24
  return;
10
25
  }
11
26
  if (initializing) {
12
- return new Promise((resolve) => {
27
+ return new Promise(resolve => {
13
28
  const timeout = 100, interval = setInterval(() => {
14
29
  if (!initialized) {
15
30
  return;
@@ -20,7 +35,6 @@ async function initPlugins(engine) {
20
35
  });
21
36
  }
22
37
  initializing = true;
23
- const { loadEmittersPlugin } = await import("@tsparticles/plugin-emitters"), { loadMotionPlugin } = await import("@tsparticles/plugin-motion"), { loadCardsShape } = await import("@tsparticles/shape-cards"), { loadHeartShape } = await import("@tsparticles/shape-heart"), { loadImageShape } = await import("@tsparticles/shape-image"), { loadPolygonShape } = await import("@tsparticles/shape-polygon"), { loadSquareShape } = await import("@tsparticles/shape-square"), { loadStarShape } = await import("@tsparticles/shape-star"), { loadEmojiShape } = await import("@tsparticles/shape-emoji"), { loadRotateUpdater } = await import("@tsparticles/updater-rotate"), { loadLifeUpdater } = await import("@tsparticles/updater-life"), { loadRollUpdater } = await import("@tsparticles/updater-roll"), { loadTiltUpdater } = await import("@tsparticles/updater-tilt"), { loadWobbleUpdater } = await import("@tsparticles/updater-wobble"), { loadBasic } = await import("@tsparticles/basic");
24
38
  await loadEmittersPlugin(engine, false);
25
39
  await loadMotionPlugin(engine, false);
26
40
  await loadCardsShape(engine, false);
@@ -104,6 +118,52 @@ async function setConfetti(params) {
104
118
  decay: decayOffset - actualOptions.decay,
105
119
  direction: -actualOptions.angle,
106
120
  },
121
+ rotate: {
122
+ value: actualOptions.flat
123
+ ? disableRotate
124
+ : {
125
+ min: 0,
126
+ max: 360,
127
+ },
128
+ direction: "random",
129
+ animation: {
130
+ enable: !actualOptions.flat,
131
+ speed: 60,
132
+ },
133
+ },
134
+ tilt: {
135
+ direction: "random",
136
+ enable: !actualOptions.flat,
137
+ value: actualOptions.flat
138
+ ? disableTilt
139
+ : {
140
+ min: 0,
141
+ max: 360,
142
+ },
143
+ animation: {
144
+ enable: true,
145
+ speed: 60,
146
+ },
147
+ },
148
+ roll: {
149
+ darken: {
150
+ enable: true,
151
+ value: 25,
152
+ },
153
+ enable: !actualOptions.flat,
154
+ speed: {
155
+ min: 15,
156
+ max: 25,
157
+ },
158
+ },
159
+ wobble: {
160
+ distance: 30,
161
+ enable: !actualOptions.flat,
162
+ speed: {
163
+ min: -15,
164
+ max: 15,
165
+ },
166
+ },
107
167
  },
108
168
  });
109
169
  return;
@@ -285,6 +345,9 @@ confetti.create = async (canvas, options) => {
285
345
  });
286
346
  };
287
347
  };
348
+ confetti.init = async () => {
349
+ await initPlugins(tsParticles);
350
+ };
288
351
  confetti.version = tsParticles.version;
289
352
  if (!isSsr()) {
290
353
  window.confetti = confetti;
package/cjs/confetti.js CHANGED
@@ -1,31 +1,23 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
3
  exports.confetti = void 0;
27
4
  const engine_1 = require("@tsparticles/engine");
5
+ const plugin_emitters_1 = require("@tsparticles/plugin-emitters");
28
6
  const ConfettiOptions_js_1 = require("./ConfettiOptions.js");
7
+ const basic_1 = require("@tsparticles/basic");
8
+ const shape_cards_1 = require("@tsparticles/shape-cards");
9
+ const shape_emoji_1 = require("@tsparticles/shape-emoji");
10
+ const shape_heart_1 = require("@tsparticles/shape-heart");
11
+ const shape_image_1 = require("@tsparticles/shape-image");
12
+ const updater_life_1 = require("@tsparticles/updater-life");
13
+ const plugin_motion_1 = require("@tsparticles/plugin-motion");
14
+ const shape_polygon_1 = require("@tsparticles/shape-polygon");
15
+ const updater_roll_1 = require("@tsparticles/updater-roll");
16
+ const updater_rotate_1 = require("@tsparticles/updater-rotate");
17
+ const shape_square_1 = require("@tsparticles/shape-square");
18
+ const shape_star_1 = require("@tsparticles/shape-star");
19
+ const updater_tilt_1 = require("@tsparticles/updater-tilt");
20
+ const updater_wobble_1 = require("@tsparticles/updater-wobble");
29
21
  const defaultGravity = 9.81, sizeFactor = 5, speedFactor = 3, decayOffset = 1, disableRotate = 0, disableTilt = 0;
30
22
  let initialized = false;
31
23
  let initializing = false;
@@ -35,7 +27,7 @@ async function initPlugins(engine) {
35
27
  return;
36
28
  }
37
29
  if (initializing) {
38
- return new Promise((resolve) => {
30
+ return new Promise(resolve => {
39
31
  const timeout = 100, interval = setInterval(() => {
40
32
  if (!initialized) {
41
33
  return;
@@ -46,22 +38,21 @@ async function initPlugins(engine) {
46
38
  });
47
39
  }
48
40
  initializing = true;
49
- const { loadEmittersPlugin } = await Promise.resolve().then(() => __importStar(require("@tsparticles/plugin-emitters"))), { loadMotionPlugin } = await Promise.resolve().then(() => __importStar(require("@tsparticles/plugin-motion"))), { loadCardsShape } = await Promise.resolve().then(() => __importStar(require("@tsparticles/shape-cards"))), { loadHeartShape } = await Promise.resolve().then(() => __importStar(require("@tsparticles/shape-heart"))), { loadImageShape } = await Promise.resolve().then(() => __importStar(require("@tsparticles/shape-image"))), { loadPolygonShape } = await Promise.resolve().then(() => __importStar(require("@tsparticles/shape-polygon"))), { loadSquareShape } = await Promise.resolve().then(() => __importStar(require("@tsparticles/shape-square"))), { loadStarShape } = await Promise.resolve().then(() => __importStar(require("@tsparticles/shape-star"))), { loadEmojiShape } = await Promise.resolve().then(() => __importStar(require("@tsparticles/shape-emoji"))), { loadRotateUpdater } = await Promise.resolve().then(() => __importStar(require("@tsparticles/updater-rotate"))), { loadLifeUpdater } = await Promise.resolve().then(() => __importStar(require("@tsparticles/updater-life"))), { loadRollUpdater } = await Promise.resolve().then(() => __importStar(require("@tsparticles/updater-roll"))), { loadTiltUpdater } = await Promise.resolve().then(() => __importStar(require("@tsparticles/updater-tilt"))), { loadWobbleUpdater } = await Promise.resolve().then(() => __importStar(require("@tsparticles/updater-wobble"))), { loadBasic } = await Promise.resolve().then(() => __importStar(require("@tsparticles/basic")));
50
- await loadEmittersPlugin(engine, false);
51
- await loadMotionPlugin(engine, false);
52
- await loadCardsShape(engine, false);
53
- await loadHeartShape(engine, false);
54
- await loadImageShape(engine, false);
55
- await loadPolygonShape(engine, false);
56
- await loadSquareShape(engine, false);
57
- await loadStarShape(engine, false);
58
- await loadEmojiShape(engine, false);
59
- await loadRotateUpdater(engine, false);
60
- await loadLifeUpdater(engine, false);
61
- await loadRollUpdater(engine, false);
62
- await loadTiltUpdater(engine, false);
63
- await loadWobbleUpdater(engine, false);
64
- await loadBasic(engine);
41
+ await (0, plugin_emitters_1.loadEmittersPlugin)(engine, false);
42
+ await (0, plugin_motion_1.loadMotionPlugin)(engine, false);
43
+ await (0, shape_cards_1.loadCardsShape)(engine, false);
44
+ await (0, shape_heart_1.loadHeartShape)(engine, false);
45
+ await (0, shape_image_1.loadImageShape)(engine, false);
46
+ await (0, shape_polygon_1.loadPolygonShape)(engine, false);
47
+ await (0, shape_square_1.loadSquareShape)(engine, false);
48
+ await (0, shape_star_1.loadStarShape)(engine, false);
49
+ await (0, shape_emoji_1.loadEmojiShape)(engine, false);
50
+ await (0, updater_rotate_1.loadRotateUpdater)(engine, false);
51
+ await (0, updater_life_1.loadLifeUpdater)(engine, false);
52
+ await (0, updater_roll_1.loadRollUpdater)(engine, false);
53
+ await (0, updater_tilt_1.loadTiltUpdater)(engine, false);
54
+ await (0, updater_wobble_1.loadWobbleUpdater)(engine, false);
55
+ await (0, basic_1.loadBasic)(engine);
65
56
  initializing = false;
66
57
  initialized = true;
67
58
  }
@@ -130,6 +121,52 @@ async function setConfetti(params) {
130
121
  decay: decayOffset - actualOptions.decay,
131
122
  direction: -actualOptions.angle,
132
123
  },
124
+ rotate: {
125
+ value: actualOptions.flat
126
+ ? disableRotate
127
+ : {
128
+ min: 0,
129
+ max: 360,
130
+ },
131
+ direction: "random",
132
+ animation: {
133
+ enable: !actualOptions.flat,
134
+ speed: 60,
135
+ },
136
+ },
137
+ tilt: {
138
+ direction: "random",
139
+ enable: !actualOptions.flat,
140
+ value: actualOptions.flat
141
+ ? disableTilt
142
+ : {
143
+ min: 0,
144
+ max: 360,
145
+ },
146
+ animation: {
147
+ enable: true,
148
+ speed: 60,
149
+ },
150
+ },
151
+ roll: {
152
+ darken: {
153
+ enable: true,
154
+ value: 25,
155
+ },
156
+ enable: !actualOptions.flat,
157
+ speed: {
158
+ min: 15,
159
+ max: 25,
160
+ },
161
+ },
162
+ wobble: {
163
+ distance: 30,
164
+ enable: !actualOptions.flat,
165
+ speed: {
166
+ min: -15,
167
+ max: 15,
168
+ },
169
+ },
133
170
  },
134
171
  });
135
172
  return;
@@ -312,6 +349,9 @@ confetti.create = async (canvas, options) => {
312
349
  });
313
350
  };
314
351
  };
352
+ confetti.init = async () => {
353
+ await initPlugins(engine_1.tsParticles);
354
+ };
315
355
  confetti.version = engine_1.tsParticles.version;
316
356
  if (!(0, engine_1.isSsr)()) {
317
357
  window.confetti = confetti;
package/esm/confetti.js CHANGED
@@ -1,5 +1,20 @@
1
1
  import { isSsr, isString, millisecondsToSeconds, tsParticles, } from "@tsparticles/engine";
2
+ import { loadEmittersPlugin } from "@tsparticles/plugin-emitters";
2
3
  import { ConfettiOptions } from "./ConfettiOptions.js";
4
+ import { loadBasic } from "@tsparticles/basic";
5
+ import { loadCardsShape } from "@tsparticles/shape-cards";
6
+ import { loadEmojiShape } from "@tsparticles/shape-emoji";
7
+ import { loadHeartShape } from "@tsparticles/shape-heart";
8
+ import { loadImageShape } from "@tsparticles/shape-image";
9
+ import { loadLifeUpdater } from "@tsparticles/updater-life";
10
+ import { loadMotionPlugin } from "@tsparticles/plugin-motion";
11
+ import { loadPolygonShape } from "@tsparticles/shape-polygon";
12
+ import { loadRollUpdater } from "@tsparticles/updater-roll";
13
+ import { loadRotateUpdater } from "@tsparticles/updater-rotate";
14
+ import { loadSquareShape } from "@tsparticles/shape-square";
15
+ import { loadStarShape } from "@tsparticles/shape-star";
16
+ import { loadTiltUpdater } from "@tsparticles/updater-tilt";
17
+ import { loadWobbleUpdater } from "@tsparticles/updater-wobble";
3
18
  const defaultGravity = 9.81, sizeFactor = 5, speedFactor = 3, decayOffset = 1, disableRotate = 0, disableTilt = 0;
4
19
  let initialized = false;
5
20
  let initializing = false;
@@ -9,7 +24,7 @@ async function initPlugins(engine) {
9
24
  return;
10
25
  }
11
26
  if (initializing) {
12
- return new Promise((resolve) => {
27
+ return new Promise(resolve => {
13
28
  const timeout = 100, interval = setInterval(() => {
14
29
  if (!initialized) {
15
30
  return;
@@ -20,7 +35,6 @@ async function initPlugins(engine) {
20
35
  });
21
36
  }
22
37
  initializing = true;
23
- const { loadEmittersPlugin } = await import("@tsparticles/plugin-emitters"), { loadMotionPlugin } = await import("@tsparticles/plugin-motion"), { loadCardsShape } = await import("@tsparticles/shape-cards"), { loadHeartShape } = await import("@tsparticles/shape-heart"), { loadImageShape } = await import("@tsparticles/shape-image"), { loadPolygonShape } = await import("@tsparticles/shape-polygon"), { loadSquareShape } = await import("@tsparticles/shape-square"), { loadStarShape } = await import("@tsparticles/shape-star"), { loadEmojiShape } = await import("@tsparticles/shape-emoji"), { loadRotateUpdater } = await import("@tsparticles/updater-rotate"), { loadLifeUpdater } = await import("@tsparticles/updater-life"), { loadRollUpdater } = await import("@tsparticles/updater-roll"), { loadTiltUpdater } = await import("@tsparticles/updater-tilt"), { loadWobbleUpdater } = await import("@tsparticles/updater-wobble"), { loadBasic } = await import("@tsparticles/basic");
24
38
  await loadEmittersPlugin(engine, false);
25
39
  await loadMotionPlugin(engine, false);
26
40
  await loadCardsShape(engine, false);
@@ -104,6 +118,52 @@ async function setConfetti(params) {
104
118
  decay: decayOffset - actualOptions.decay,
105
119
  direction: -actualOptions.angle,
106
120
  },
121
+ rotate: {
122
+ value: actualOptions.flat
123
+ ? disableRotate
124
+ : {
125
+ min: 0,
126
+ max: 360,
127
+ },
128
+ direction: "random",
129
+ animation: {
130
+ enable: !actualOptions.flat,
131
+ speed: 60,
132
+ },
133
+ },
134
+ tilt: {
135
+ direction: "random",
136
+ enable: !actualOptions.flat,
137
+ value: actualOptions.flat
138
+ ? disableTilt
139
+ : {
140
+ min: 0,
141
+ max: 360,
142
+ },
143
+ animation: {
144
+ enable: true,
145
+ speed: 60,
146
+ },
147
+ },
148
+ roll: {
149
+ darken: {
150
+ enable: true,
151
+ value: 25,
152
+ },
153
+ enable: !actualOptions.flat,
154
+ speed: {
155
+ min: 15,
156
+ max: 25,
157
+ },
158
+ },
159
+ wobble: {
160
+ distance: 30,
161
+ enable: !actualOptions.flat,
162
+ speed: {
163
+ min: -15,
164
+ max: 15,
165
+ },
166
+ },
107
167
  },
108
168
  });
109
169
  return;
@@ -285,6 +345,9 @@ confetti.create = async (canvas, options) => {
285
345
  });
286
346
  };
287
347
  };
348
+ confetti.init = async () => {
349
+ await initPlugins(tsParticles);
350
+ };
288
351
  confetti.version = tsParticles.version;
289
352
  if (!isSsr()) {
290
353
  window.confetti = confetti;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/confetti",
3
- "version": "3.2.2",
3
+ "version": "3.4.0",
4
4
  "description": "Easily create highly customizable particle animations and use them as animated backgrounds for your website. Ready to use components available also for React, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, Riot.js, Inferno.",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -99,22 +99,22 @@
99
99
  "./package.json": "./package.json"
100
100
  },
101
101
  "dependencies": {
102
- "@tsparticles/basic": "^3.2.2",
103
- "@tsparticles/engine": "^3.2.2",
104
- "@tsparticles/plugin-emitters": "^3.2.2",
105
- "@tsparticles/plugin-motion": "^3.2.2",
106
- "@tsparticles/shape-cards": "^3.2.2",
107
- "@tsparticles/shape-emoji": "^3.2.2",
108
- "@tsparticles/shape-heart": "^3.2.2",
109
- "@tsparticles/shape-image": "^3.2.2",
110
- "@tsparticles/shape-polygon": "^3.2.2",
111
- "@tsparticles/shape-square": "^3.2.2",
112
- "@tsparticles/shape-star": "^3.2.2",
113
- "@tsparticles/updater-life": "^3.2.2",
114
- "@tsparticles/updater-roll": "^3.2.2",
115
- "@tsparticles/updater-rotate": "^3.2.2",
116
- "@tsparticles/updater-tilt": "^3.2.2",
117
- "@tsparticles/updater-wobble": "^3.2.2"
102
+ "@tsparticles/basic": "^3.4.0",
103
+ "@tsparticles/engine": "^3.4.0",
104
+ "@tsparticles/plugin-emitters": "^3.4.0",
105
+ "@tsparticles/plugin-motion": "^3.4.0",
106
+ "@tsparticles/shape-cards": "^3.4.0",
107
+ "@tsparticles/shape-emoji": "^3.4.0",
108
+ "@tsparticles/shape-heart": "^3.4.0",
109
+ "@tsparticles/shape-image": "^3.4.0",
110
+ "@tsparticles/shape-polygon": "^3.4.0",
111
+ "@tsparticles/shape-square": "^3.4.0",
112
+ "@tsparticles/shape-star": "^3.4.0",
113
+ "@tsparticles/updater-life": "^3.4.0",
114
+ "@tsparticles/updater-roll": "^3.4.0",
115
+ "@tsparticles/updater-rotate": "^3.4.0",
116
+ "@tsparticles/updater-tilt": "^3.4.0",
117
+ "@tsparticles/updater-wobble": "^3.4.0"
118
118
  },
119
119
  "publishConfig": {
120
120
  "access": "public"
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/confetti [20 Feb 2024 at 01:42]</title>
6
+ <title>@tsparticles/confetti [13 May 2024 at 00:17]</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>