@tsparticles/updater-destroy 3.0.0-alpha.1 → 3.0.0-beta.1

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 (42) hide show
  1. package/README.md +16 -12
  2. package/browser/DestroyUpdater.js +15 -72
  3. package/browser/Options/Classes/Destroy.js +2 -2
  4. package/browser/Options/Classes/Split.js +18 -3
  5. package/browser/Types.js +1 -0
  6. package/browser/Utils.js +74 -0
  7. package/browser/index.js +3 -3
  8. package/browser/package.json +1 -0
  9. package/cjs/DestroyUpdater.js +15 -72
  10. package/cjs/Options/Classes/Destroy.js +4 -4
  11. package/cjs/Options/Classes/Split.js +19 -4
  12. package/cjs/Types.js +2 -0
  13. package/cjs/Utils.js +78 -0
  14. package/cjs/index.js +3 -14
  15. package/cjs/package.json +1 -0
  16. package/esm/DestroyUpdater.js +15 -72
  17. package/esm/Options/Classes/Destroy.js +2 -2
  18. package/esm/Options/Classes/Split.js +18 -3
  19. package/esm/Types.js +1 -0
  20. package/esm/Utils.js +74 -0
  21. package/esm/index.js +3 -3
  22. package/esm/package.json +1 -0
  23. package/package.json +19 -6
  24. package/report.html +4 -4
  25. package/tsparticles.updater.destroy.js +118 -76
  26. package/tsparticles.updater.destroy.min.js +1 -1
  27. package/tsparticles.updater.destroy.min.js.LICENSE.txt +1 -8
  28. package/types/DestroyUpdater.d.ts +2 -17
  29. package/types/Options/Classes/Destroy.d.ts +4 -4
  30. package/types/Options/Classes/DestroyBounds.d.ts +2 -2
  31. package/types/Options/Classes/Split.d.ts +6 -4
  32. package/types/Options/Interfaces/IDestroy.d.ts +3 -3
  33. package/types/Options/Interfaces/ISplit.d.ts +3 -1
  34. package/types/Types.d.ts +14 -0
  35. package/types/Utils.d.ts +3 -0
  36. package/types/index.d.ts +1 -1
  37. package/umd/DestroyUpdater.js +16 -73
  38. package/umd/Options/Classes/Destroy.js +5 -5
  39. package/umd/Options/Classes/Split.js +20 -5
  40. package/umd/Types.js +12 -0
  41. package/umd/Utils.js +88 -0
  42. package/umd/index.js +4 -4
package/umd/Utils.js ADDED
@@ -0,0 +1,88 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@tsparticles/engine"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.split = void 0;
13
+ const engine_1 = require("@tsparticles/engine");
14
+ function addSplitParticle(engine, container, parent, splitParticlesOptions) {
15
+ const destroyOptions = parent.options.destroy;
16
+ if (!destroyOptions) {
17
+ return;
18
+ }
19
+ const splitOptions = destroyOptions.split, options = (0, engine_1.loadParticlesOptions)(engine, container, parent.options), factor = (0, engine_1.getValue)(splitOptions.factor), parentColor = parent.getFillColor();
20
+ if (splitOptions.color) {
21
+ options.color.load(splitOptions.color);
22
+ }
23
+ else if (splitOptions.colorOffset && parentColor) {
24
+ options.color.load({
25
+ value: {
26
+ hsl: {
27
+ h: parentColor.h + (0, engine_1.getRangeValue)(splitOptions.colorOffset.h ?? 0),
28
+ s: parentColor.s + (0, engine_1.getRangeValue)(splitOptions.colorOffset.s ?? 0),
29
+ l: parentColor.l + (0, engine_1.getRangeValue)(splitOptions.colorOffset.l ?? 0),
30
+ },
31
+ },
32
+ });
33
+ }
34
+ else {
35
+ options.color.load({
36
+ value: {
37
+ hsl: parent.getFillColor(),
38
+ },
39
+ });
40
+ }
41
+ options.move.load({
42
+ center: {
43
+ x: parent.position.x,
44
+ y: parent.position.y,
45
+ mode: "precise",
46
+ },
47
+ });
48
+ if ((0, engine_1.isNumber)(options.size.value)) {
49
+ options.size.value /= factor;
50
+ }
51
+ else {
52
+ options.size.value.min /= factor;
53
+ options.size.value.max /= factor;
54
+ }
55
+ options.load(splitParticlesOptions);
56
+ const offset = splitOptions.sizeOffset ? (0, engine_1.setRangeValue)(-parent.size.value, parent.size.value) : 0, position = {
57
+ x: parent.position.x + (0, engine_1.randomInRange)(offset),
58
+ y: parent.position.y + (0, engine_1.randomInRange)(offset),
59
+ };
60
+ return container.particles.addParticle(position, options, parent.group, (particle) => {
61
+ if (particle.size.value < 0.5) {
62
+ return false;
63
+ }
64
+ particle.velocity.length = (0, engine_1.randomInRange)((0, engine_1.setRangeValue)(parent.velocity.length, particle.velocity.length));
65
+ particle.splitCount = (parent.splitCount ?? 0) + 1;
66
+ particle.unbreakable = true;
67
+ setTimeout(() => {
68
+ particle.unbreakable = false;
69
+ }, 500);
70
+ return true;
71
+ });
72
+ }
73
+ function split(engine, container, particle) {
74
+ const destroyOptions = particle.options.destroy;
75
+ if (!destroyOptions) {
76
+ return;
77
+ }
78
+ const splitOptions = destroyOptions.split;
79
+ if (splitOptions.count >= 0 && (particle.splitCount === undefined || particle.splitCount++ > splitOptions.count)) {
80
+ return;
81
+ }
82
+ const rate = (0, engine_1.getValue)(splitOptions.rate), particlesSplitOptions = (0, engine_1.itemFromSingleOrMultiple)(splitOptions.particles);
83
+ for (let i = 0; i < rate; i++) {
84
+ addSplitParticle(engine, container, particle, particlesSplitOptions);
85
+ }
86
+ }
87
+ exports.split = split;
88
+ });
package/umd/index.js CHANGED
@@ -4,15 +4,15 @@
4
4
  if (v !== undefined) module.exports = v;
5
5
  }
6
6
  else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "./DestroyUpdater"], factory);
7
+ define(["require", "exports", "./DestroyUpdater.js"], factory);
8
8
  }
9
9
  })(function (require, exports) {
10
10
  "use strict";
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.loadDestroyUpdater = void 0;
13
- const DestroyUpdater_1 = require("./DestroyUpdater");
14
- async function loadDestroyUpdater(engine) {
15
- await engine.addParticleUpdater("destroy", (container) => new DestroyUpdater_1.DestroyUpdater(engine, container));
13
+ const DestroyUpdater_js_1 = require("./DestroyUpdater.js");
14
+ async function loadDestroyUpdater(engine, refresh = true) {
15
+ await engine.addParticleUpdater("destroy", (container) => new DestroyUpdater_js_1.DestroyUpdater(engine, container), refresh);
16
16
  }
17
17
  exports.loadDestroyUpdater = loadDestroyUpdater;
18
18
  });