@tsparticles/confetti 3.3.0 → 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 (169) hide show
  1. package/browser/confetti.js +65 -2
  2. package/cjs/confetti.js +80 -17
  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/2043.min.js +0 -2
  15. package/2043.min.js.LICENSE.txt +0 -1
  16. package/2112.min.js +0 -2
  17. package/2112.min.js.LICENSE.txt +0 -1
  18. package/2136.min.js +0 -2
  19. package/2136.min.js.LICENSE.txt +0 -1
  20. package/2284.min.js +0 -2
  21. package/2284.min.js.LICENSE.txt +0 -1
  22. package/2370.min.js +0 -2
  23. package/2370.min.js.LICENSE.txt +0 -1
  24. package/2497.min.js +0 -2
  25. package/2497.min.js.LICENSE.txt +0 -1
  26. package/286.min.js +0 -2
  27. package/286.min.js.LICENSE.txt +0 -1
  28. package/3237.min.js +0 -2
  29. package/3237.min.js.LICENSE.txt +0 -1
  30. package/335.min.js +0 -2
  31. package/335.min.js.LICENSE.txt +0 -1
  32. package/3416.min.js +0 -2
  33. package/3416.min.js.LICENSE.txt +0 -1
  34. package/344.min.js +0 -2
  35. package/344.min.js.LICENSE.txt +0 -1
  36. package/357.min.js +0 -2
  37. package/357.min.js.LICENSE.txt +0 -1
  38. package/3622.min.js +0 -2
  39. package/3622.min.js.LICENSE.txt +0 -1
  40. package/3632.min.js +0 -2
  41. package/3632.min.js.LICENSE.txt +0 -1
  42. package/3695.min.js +0 -2
  43. package/3695.min.js.LICENSE.txt +0 -1
  44. package/401.min.js +0 -2
  45. package/401.min.js.LICENSE.txt +0 -1
  46. package/4036.min.js +0 -2
  47. package/4036.min.js.LICENSE.txt +0 -1
  48. package/4154.min.js +0 -2
  49. package/4154.min.js.LICENSE.txt +0 -1
  50. package/4264.min.js +0 -2
  51. package/4264.min.js.LICENSE.txt +0 -1
  52. package/4302.min.js +0 -2
  53. package/4302.min.js.LICENSE.txt +0 -1
  54. package/439.min.js +0 -2
  55. package/439.min.js.LICENSE.txt +0 -1
  56. package/449.min.js +0 -2
  57. package/449.min.js.LICENSE.txt +0 -1
  58. package/4512.min.js +0 -2
  59. package/4512.min.js.LICENSE.txt +0 -1
  60. package/4924.min.js +0 -2
  61. package/4924.min.js.LICENSE.txt +0 -1
  62. package/5201.min.js +0 -2
  63. package/5201.min.js.LICENSE.txt +0 -1
  64. package/5369.min.js +0 -2
  65. package/5369.min.js.LICENSE.txt +0 -1
  66. package/561.min.js +0 -2
  67. package/561.min.js.LICENSE.txt +0 -1
  68. package/5775.min.js +0 -2
  69. package/5775.min.js.LICENSE.txt +0 -1
  70. package/5808.min.js +0 -2
  71. package/5808.min.js.LICENSE.txt +0 -1
  72. package/5814.min.js +0 -2
  73. package/5814.min.js.LICENSE.txt +0 -1
  74. package/6119.min.js +0 -2
  75. package/6119.min.js.LICENSE.txt +0 -1
  76. package/6493.min.js +0 -2
  77. package/6493.min.js.LICENSE.txt +0 -1
  78. package/6520.min.js +0 -2
  79. package/6520.min.js.LICENSE.txt +0 -1
  80. package/66.min.js +0 -2
  81. package/66.min.js.LICENSE.txt +0 -1
  82. package/6732.min.js +0 -2
  83. package/6732.min.js.LICENSE.txt +0 -1
  84. package/6735.min.js +0 -2
  85. package/6735.min.js.LICENSE.txt +0 -1
  86. package/6974.min.js +0 -2
  87. package/6974.min.js.LICENSE.txt +0 -1
  88. package/705.min.js +0 -2
  89. package/705.min.js.LICENSE.txt +0 -1
  90. package/7306.min.js +0 -2
  91. package/7306.min.js.LICENSE.txt +0 -1
  92. package/7528.min.js +0 -2
  93. package/7528.min.js.LICENSE.txt +0 -1
  94. package/7774.min.js +0 -2
  95. package/7774.min.js.LICENSE.txt +0 -1
  96. package/8125.min.js +0 -2
  97. package/8125.min.js.LICENSE.txt +0 -1
  98. package/8155.min.js +0 -2
  99. package/8155.min.js.LICENSE.txt +0 -1
  100. package/823.min.js +0 -2
  101. package/823.min.js.LICENSE.txt +0 -1
  102. package/8469.min.js +0 -2
  103. package/8469.min.js.LICENSE.txt +0 -1
  104. package/8656.min.js +0 -2
  105. package/8656.min.js.LICENSE.txt +0 -1
  106. package/8746.min.js +0 -2
  107. package/8746.min.js.LICENSE.txt +0 -1
  108. package/9151.min.js +0 -2
  109. package/9151.min.js.LICENSE.txt +0 -1
  110. package/94.min.js +0 -2
  111. package/94.min.js.LICENSE.txt +0 -1
  112. package/9487.min.js +0 -2
  113. package/9487.min.js.LICENSE.txt +0 -1
  114. package/9581.min.js +0 -2
  115. package/9581.min.js.LICENSE.txt +0 -1
  116. package/9946.min.js +0 -2
  117. package/9946.min.js.LICENSE.txt +0 -1
  118. package/basic_dist_browser_index_js.js +0 -30
  119. package/engine_dist_browser_Core_Container_js.js +0 -100
  120. package/move_base_dist_browser_BaseMover_js.js +0 -40
  121. package/move_base_dist_browser_index_js.js +0 -30
  122. package/plugins_emitters_dist_browser_EmitterInstance_js.js +0 -30
  123. package/plugins_emitters_dist_browser_EmittersPlugin_js.js +0 -90
  124. package/plugins_emitters_dist_browser_Emitters_js.js +0 -30
  125. package/plugins_emitters_dist_browser_ShapeManager_js.js +0 -30
  126. package/plugins_emitters_dist_browser_index_js.js +0 -100
  127. package/plugins_motion_dist_browser_MotionInstance_js.js +0 -30
  128. package/plugins_motion_dist_browser_MotionPlugin_js.js +0 -50
  129. package/plugins_motion_dist_browser_index_js.js +0 -30
  130. package/shapes_cards_dist_browser_ClubDrawer_js.js +0 -40
  131. package/shapes_cards_dist_browser_DiamondDrawer_js.js +0 -40
  132. package/shapes_cards_dist_browser_HeartDrawer_js.js +0 -40
  133. package/shapes_cards_dist_browser_SpadeDrawer_js.js +0 -40
  134. package/shapes_cards_dist_browser_index_js.js +0 -30
  135. package/shapes_circle_dist_browser_CircleDrawer_js.js +0 -40
  136. package/shapes_circle_dist_browser_index_js.js +0 -30
  137. package/shapes_emoji_dist_browser_EmojiDrawer_js.js +0 -40
  138. package/shapes_emoji_dist_browser_index_js.js +0 -40
  139. package/shapes_heart_dist_browser_HeartDrawer_js.js +0 -40
  140. package/shapes_heart_dist_browser_index_js.js +0 -30
  141. package/shapes_image_dist_browser_GifUtils_Utils_js.js +0 -50
  142. package/shapes_image_dist_browser_ImageDrawer_js.js +0 -30
  143. package/shapes_image_dist_browser_ImagePreloader_js.js +0 -40
  144. package/shapes_image_dist_browser_index_js.js +0 -40
  145. package/shapes_polygon_dist_browser_PolygonDrawer_js.js +0 -50
  146. package/shapes_polygon_dist_browser_TriangleDrawer_js.js +0 -50
  147. package/shapes_polygon_dist_browser_index_js.js +0 -30
  148. package/shapes_square_dist_browser_SquareDrawer_js.js +0 -40
  149. package/shapes_square_dist_browser_index_js.js +0 -30
  150. package/shapes_star_dist_browser_StarDrawer_js.js +0 -40
  151. package/shapes_star_dist_browser_index_js.js +0 -30
  152. package/updaters_color_dist_browser_ColorUpdater_js.js +0 -30
  153. package/updaters_color_dist_browser_index_js.js +0 -30
  154. package/updaters_life_dist_browser_LifeUpdater_js.js +0 -70
  155. package/updaters_life_dist_browser_index_js.js +0 -30
  156. package/updaters_opacity_dist_browser_OpacityUpdater_js.js +0 -30
  157. package/updaters_opacity_dist_browser_index_js.js +0 -30
  158. package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +0 -80
  159. package/updaters_outModes_dist_browser_index_js.js +0 -30
  160. package/updaters_roll_dist_browser_RollUpdater_js.js +0 -60
  161. package/updaters_roll_dist_browser_index_js.js +0 -30
  162. package/updaters_rotate_dist_browser_RotateUpdater_js.js +0 -50
  163. package/updaters_rotate_dist_browser_index_js.js +0 -30
  164. package/updaters_size_dist_browser_SizeUpdater_js.js +0 -30
  165. package/updaters_size_dist_browser_index_js.js +0 -30
  166. package/updaters_tilt_dist_browser_TiltUpdater_js.js +0 -50
  167. package/updaters_tilt_dist_browser_index_js.js +0 -30
  168. package/updaters_wobble_dist_browser_WobbleUpdater_js.js +0 -60
  169. 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
@@ -2,7 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.confetti = void 0;
4
4
  const engine_1 = require("@tsparticles/engine");
5
+ const plugin_emitters_1 = require("@tsparticles/plugin-emitters");
5
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");
6
21
  const defaultGravity = 9.81, sizeFactor = 5, speedFactor = 3, decayOffset = 1, disableRotate = 0, disableTilt = 0;
7
22
  let initialized = false;
8
23
  let initializing = false;
@@ -12,7 +27,7 @@ async function initPlugins(engine) {
12
27
  return;
13
28
  }
14
29
  if (initializing) {
15
- return new Promise((resolve) => {
30
+ return new Promise(resolve => {
16
31
  const timeout = 100, interval = setInterval(() => {
17
32
  if (!initialized) {
18
33
  return;
@@ -23,22 +38,21 @@ async function initPlugins(engine) {
23
38
  });
24
39
  }
25
40
  initializing = true;
26
- 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");
27
- await loadEmittersPlugin(engine, false);
28
- await loadMotionPlugin(engine, false);
29
- await loadCardsShape(engine, false);
30
- await loadHeartShape(engine, false);
31
- await loadImageShape(engine, false);
32
- await loadPolygonShape(engine, false);
33
- await loadSquareShape(engine, false);
34
- await loadStarShape(engine, false);
35
- await loadEmojiShape(engine, false);
36
- await loadRotateUpdater(engine, false);
37
- await loadLifeUpdater(engine, false);
38
- await loadRollUpdater(engine, false);
39
- await loadTiltUpdater(engine, false);
40
- await loadWobbleUpdater(engine, false);
41
- 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);
42
56
  initializing = false;
43
57
  initialized = true;
44
58
  }
@@ -107,6 +121,52 @@ async function setConfetti(params) {
107
121
  decay: decayOffset - actualOptions.decay,
108
122
  direction: -actualOptions.angle,
109
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
+ },
110
170
  },
111
171
  });
112
172
  return;
@@ -289,6 +349,9 @@ confetti.create = async (canvas, options) => {
289
349
  });
290
350
  };
291
351
  };
352
+ confetti.init = async () => {
353
+ await initPlugins(engine_1.tsParticles);
354
+ };
292
355
  confetti.version = engine_1.tsParticles.version;
293
356
  if (!(0, engine_1.isSsr)()) {
294
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.3.0",
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.3.0",
103
- "@tsparticles/engine": "^3.3.0",
104
- "@tsparticles/plugin-emitters": "^3.3.0",
105
- "@tsparticles/plugin-motion": "^3.3.0",
106
- "@tsparticles/shape-cards": "^3.3.0",
107
- "@tsparticles/shape-emoji": "^3.3.0",
108
- "@tsparticles/shape-heart": "^3.3.0",
109
- "@tsparticles/shape-image": "^3.3.0",
110
- "@tsparticles/shape-polygon": "^3.3.0",
111
- "@tsparticles/shape-square": "^3.3.0",
112
- "@tsparticles/shape-star": "^3.3.0",
113
- "@tsparticles/updater-life": "^3.3.0",
114
- "@tsparticles/updater-roll": "^3.3.0",
115
- "@tsparticles/updater-rotate": "^3.3.0",
116
- "@tsparticles/updater-tilt": "^3.3.0",
117
- "@tsparticles/updater-wobble": "^3.3.0"
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 [27 Feb 2024 at 12:24]</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>