@tsparticles/fireworks 3.6.0-beta.0 → 3.6.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.
package/README.md CHANGED
@@ -68,6 +68,12 @@ fireworks();
68
68
  })();
69
69
  ```
70
70
 
71
+ ** Custom Canvas **
72
+
73
+ ```javascript
74
+ fireworks.create(document.getElementById("custom-id"));
75
+ ```
76
+
71
77
  ** Fireworks Options **
72
78
 
73
79
  ```javascript
@@ -76,6 +82,14 @@ fireworks({
76
82
  });
77
83
  ```
78
84
 
85
+ ** Custom Canvas with Options **
86
+
87
+ ```javascript
88
+ fireworks.create(document.getElementById("custom-id"), {
89
+ colors: ["#ffffff", "#ff0000"],
90
+ });
91
+ ```
92
+
79
93
  #### Options
80
94
 
81
95
  The `fireworks` has only a single `options` object parameter, with the following properties:
@@ -1,4 +1,4 @@
1
- import { isArray, setRangeValue, } from "@tsparticles/engine";
1
+ import { isArray, isNull, setRangeValue, } from "@tsparticles/engine";
2
2
  export class FireworkOptions {
3
3
  constructor() {
4
4
  this.background = "none";
@@ -25,7 +25,7 @@ export class FireworkOptions {
25
25
  };
26
26
  }
27
27
  load(data) {
28
- if (!data) {
28
+ if (isNull(data)) {
29
29
  return;
30
30
  }
31
31
  if (data.background !== undefined) {
@@ -56,23 +56,16 @@ async function initPlugins() {
56
56
  initializing = false;
57
57
  initialized = true;
58
58
  }
59
- export async function fireworks(idOrOptions, sourceOptions) {
60
- await initPlugins();
61
- let id;
62
- const options = new FireworkOptions();
63
- if (isString(idOrOptions)) {
64
- id = idOrOptions;
65
- options.load(sourceOptions);
66
- }
67
- else {
68
- id = "fireworks";
69
- options.load(idOrOptions);
70
- }
71
- const identity = 1, particlesOptions = {
59
+ function getOptions(options, canvas) {
60
+ const identity = 1;
61
+ return {
72
62
  detectRetina: true,
73
63
  background: {
74
64
  color: options.background,
75
65
  },
66
+ fullScreen: {
67
+ enable: !!canvas,
68
+ },
76
69
  fpsLimit: 60,
77
70
  emitters: {
78
71
  direction: MoveDirection.top,
@@ -252,12 +245,34 @@ export async function fireworks(idOrOptions, sourceOptions) {
252
245
  volume: 50,
253
246
  },
254
247
  };
255
- const container = await tsParticles.load({ id, options: particlesOptions });
248
+ }
249
+ async function getFireworksInstance(id, sourceOptions, canvas) {
250
+ await initPlugins();
251
+ const options = new FireworkOptions();
252
+ options.load(sourceOptions);
253
+ const particlesOptions = getOptions(options, canvas), container = await tsParticles.load({ id, element: canvas, options: particlesOptions });
256
254
  if (!container) {
257
255
  return;
258
256
  }
259
257
  return new FireworksInstance(container);
260
258
  }
259
+ export async function fireworks(idOrOptions, sourceOptions) {
260
+ let id;
261
+ let options;
262
+ if (isString(idOrOptions)) {
263
+ id = idOrOptions;
264
+ options = sourceOptions ?? {};
265
+ }
266
+ else {
267
+ id = "fireworks";
268
+ options = idOrOptions ?? {};
269
+ }
270
+ return getFireworksInstance(id, options);
271
+ }
272
+ fireworks.create = async (canvas, options) => {
273
+ const id = canvas.id ?? "fireworks";
274
+ return getFireworksInstance(id, options ?? {}, canvas);
275
+ };
261
276
  fireworks.init = async () => {
262
277
  await initPlugins();
263
278
  };
@@ -28,7 +28,7 @@ class FireworkOptions {
28
28
  };
29
29
  }
30
30
  load(data) {
31
- if (!data) {
31
+ if ((0, engine_1.isNull)(data)) {
32
32
  return;
33
33
  }
34
34
  if (data.background !== undefined) {
package/cjs/fireworks.js CHANGED
@@ -59,23 +59,16 @@ async function initPlugins() {
59
59
  initializing = false;
60
60
  initialized = true;
61
61
  }
62
- async function fireworks(idOrOptions, sourceOptions) {
63
- await initPlugins();
64
- let id;
65
- const options = new FireworkOptions_js_1.FireworkOptions();
66
- if ((0, engine_1.isString)(idOrOptions)) {
67
- id = idOrOptions;
68
- options.load(sourceOptions);
69
- }
70
- else {
71
- id = "fireworks";
72
- options.load(idOrOptions);
73
- }
74
- const identity = 1, particlesOptions = {
62
+ function getOptions(options, canvas) {
63
+ const identity = 1;
64
+ return {
75
65
  detectRetina: true,
76
66
  background: {
77
67
  color: options.background,
78
68
  },
69
+ fullScreen: {
70
+ enable: !!canvas,
71
+ },
79
72
  fpsLimit: 60,
80
73
  emitters: {
81
74
  direction: engine_1.MoveDirection.top,
@@ -255,12 +248,34 @@ async function fireworks(idOrOptions, sourceOptions) {
255
248
  volume: 50,
256
249
  },
257
250
  };
258
- const container = await engine_1.tsParticles.load({ id, options: particlesOptions });
251
+ }
252
+ async function getFireworksInstance(id, sourceOptions, canvas) {
253
+ await initPlugins();
254
+ const options = new FireworkOptions_js_1.FireworkOptions();
255
+ options.load(sourceOptions);
256
+ const particlesOptions = getOptions(options, canvas), container = await engine_1.tsParticles.load({ id, element: canvas, options: particlesOptions });
259
257
  if (!container) {
260
258
  return;
261
259
  }
262
260
  return new FireworksInstance(container);
263
261
  }
262
+ async function fireworks(idOrOptions, sourceOptions) {
263
+ let id;
264
+ let options;
265
+ if ((0, engine_1.isString)(idOrOptions)) {
266
+ id = idOrOptions;
267
+ options = sourceOptions ?? {};
268
+ }
269
+ else {
270
+ id = "fireworks";
271
+ options = idOrOptions ?? {};
272
+ }
273
+ return getFireworksInstance(id, options);
274
+ }
275
+ fireworks.create = async (canvas, options) => {
276
+ const id = canvas.id ?? "fireworks";
277
+ return getFireworksInstance(id, options ?? {}, canvas);
278
+ };
264
279
  fireworks.init = async () => {
265
280
  await initPlugins();
266
281
  };
@@ -1,4 +1,4 @@
1
- import { isArray, setRangeValue, } from "@tsparticles/engine";
1
+ import { isArray, isNull, setRangeValue, } from "@tsparticles/engine";
2
2
  export class FireworkOptions {
3
3
  constructor() {
4
4
  this.background = "none";
@@ -25,7 +25,7 @@ export class FireworkOptions {
25
25
  };
26
26
  }
27
27
  load(data) {
28
- if (!data) {
28
+ if (isNull(data)) {
29
29
  return;
30
30
  }
31
31
  if (data.background !== undefined) {
package/esm/fireworks.js CHANGED
@@ -56,23 +56,16 @@ async function initPlugins() {
56
56
  initializing = false;
57
57
  initialized = true;
58
58
  }
59
- export async function fireworks(idOrOptions, sourceOptions) {
60
- await initPlugins();
61
- let id;
62
- const options = new FireworkOptions();
63
- if (isString(idOrOptions)) {
64
- id = idOrOptions;
65
- options.load(sourceOptions);
66
- }
67
- else {
68
- id = "fireworks";
69
- options.load(idOrOptions);
70
- }
71
- const identity = 1, particlesOptions = {
59
+ function getOptions(options, canvas) {
60
+ const identity = 1;
61
+ return {
72
62
  detectRetina: true,
73
63
  background: {
74
64
  color: options.background,
75
65
  },
66
+ fullScreen: {
67
+ enable: !!canvas,
68
+ },
76
69
  fpsLimit: 60,
77
70
  emitters: {
78
71
  direction: MoveDirection.top,
@@ -252,12 +245,34 @@ export async function fireworks(idOrOptions, sourceOptions) {
252
245
  volume: 50,
253
246
  },
254
247
  };
255
- const container = await tsParticles.load({ id, options: particlesOptions });
248
+ }
249
+ async function getFireworksInstance(id, sourceOptions, canvas) {
250
+ await initPlugins();
251
+ const options = new FireworkOptions();
252
+ options.load(sourceOptions);
253
+ const particlesOptions = getOptions(options, canvas), container = await tsParticles.load({ id, element: canvas, options: particlesOptions });
256
254
  if (!container) {
257
255
  return;
258
256
  }
259
257
  return new FireworksInstance(container);
260
258
  }
259
+ export async function fireworks(idOrOptions, sourceOptions) {
260
+ let id;
261
+ let options;
262
+ if (isString(idOrOptions)) {
263
+ id = idOrOptions;
264
+ options = sourceOptions ?? {};
265
+ }
266
+ else {
267
+ id = "fireworks";
268
+ options = idOrOptions ?? {};
269
+ }
270
+ return getFireworksInstance(id, options);
271
+ }
272
+ fireworks.create = async (canvas, options) => {
273
+ const id = canvas.id ?? "fireworks";
274
+ return getFireworksInstance(id, options ?? {}, canvas);
275
+ };
261
276
  fireworks.init = async () => {
262
277
  await initPlugins();
263
278
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/fireworks",
3
- "version": "3.6.0-beta.0",
3
+ "version": "3.6.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,15 +99,15 @@
99
99
  "./package.json": "./package.json"
100
100
  },
101
101
  "dependencies": {
102
- "@tsparticles/basic": "^3.6.0-beta.0",
103
- "@tsparticles/effect-trail": "^3.6.0-beta.0",
104
- "@tsparticles/engine": "^3.6.0-beta.0",
105
- "@tsparticles/plugin-emitters": "^3.6.0-beta.0",
106
- "@tsparticles/plugin-emitters-shape-square": "^3.6.0-beta.0",
107
- "@tsparticles/plugin-sounds": "^3.6.0-beta.0",
108
- "@tsparticles/updater-destroy": "^3.6.0-beta.0",
109
- "@tsparticles/updater-life": "^3.6.0-beta.0",
110
- "@tsparticles/updater-rotate": "^3.6.0-beta.0"
102
+ "@tsparticles/basic": "^3.6.0",
103
+ "@tsparticles/effect-trail": "^3.6.0",
104
+ "@tsparticles/engine": "^3.6.0",
105
+ "@tsparticles/plugin-emitters": "^3.6.0",
106
+ "@tsparticles/plugin-emitters-shape-square": "^3.6.0",
107
+ "@tsparticles/plugin-sounds": "^3.6.0",
108
+ "@tsparticles/updater-destroy": "^3.6.0",
109
+ "@tsparticles/updater-life": "^3.6.0",
110
+ "@tsparticles/updater-rotate": "^3.6.0"
111
111
  },
112
112
  "publishConfig": {
113
113
  "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/fireworks [7 Oct 2024 at 10:42]</title>
6
+ <title>@tsparticles/fireworks [19 Nov 2024 at 00:03]</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>