tsparticles 1.39.3 → 1.40.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/Core/Container.d.ts +3 -1
- package/Core/Container.js +27 -12
- package/Core/Loader.d.ts +12 -9
- package/Core/Loader.js +35 -19
- package/Core/Particle.d.ts +3 -1
- package/Core/Particle.js +17 -2
- package/Core/Particles.d.ts +3 -1
- package/Core/Particles.js +20 -5
- package/Core/Utils/InteractionManager.d.ts +3 -1
- package/Core/Utils/InteractionManager.js +17 -3
- package/Core/Utils/Plugins.d.ts +29 -15
- package/Core/Utils/Plugins.js +58 -46
- package/Options/Classes/Options.d.ts +2 -1
- package/Options/Classes/Options.js +13 -6
- package/Plugins/Emitters/EmitterInstance.d.ts +6 -3
- package/Plugins/Emitters/EmitterInstance.js +46 -16
- package/Plugins/Emitters/Emitters.d.ts +3 -1
- package/Plugins/Emitters/Emitters.js +17 -2
- package/Plugins/Emitters/{EmittersMain.d.ts → EmittersEngine.d.ts} +3 -1
- package/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
- package/Plugins/Emitters/IEmitterShape.d.ts +2 -2
- package/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
- package/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
- package/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +1 -0
- package/Plugins/Emitters/ShapeManager.d.ts +6 -3
- package/Plugins/Emitters/ShapeManager.js +16 -4
- package/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
- package/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
- package/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
- package/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
- package/Plugins/Emitters/index.d.ts +3 -3
- package/Plugins/Emitters/index.js +25 -6
- package/README.md +1 -1
- package/browser/Core/Container.d.ts +4 -1
- package/browser/Core/Container.js +29 -13
- package/browser/Core/Loader.d.ts +12 -9
- package/browser/Core/Loader.js +35 -19
- package/browser/Core/Particle.d.ts +3 -1
- package/browser/Core/Particle.js +18 -3
- package/browser/Core/Particles.d.ts +3 -1
- package/browser/Core/Particles.js +21 -6
- package/browser/Core/Utils/InteractionManager.d.ts +3 -1
- package/browser/Core/Utils/InteractionManager.js +17 -3
- package/browser/Core/Utils/Plugins.d.ts +29 -15
- package/browser/Core/Utils/Plugins.js +58 -46
- package/browser/Options/Classes/Options.d.ts +2 -1
- package/browser/Options/Classes/Options.js +13 -6
- package/browser/Plugins/Emitters/EmitterInstance.d.ts +6 -3
- package/browser/Plugins/Emitters/EmitterInstance.js +46 -16
- package/browser/Plugins/Emitters/Emitters.d.ts +3 -1
- package/browser/Plugins/Emitters/Emitters.js +17 -2
- package/{esm/Plugins/Emitters/EmittersMain.d.ts → browser/Plugins/Emitters/EmittersEngine.d.ts} +3 -1
- package/browser/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
- package/browser/Plugins/Emitters/IEmitterShape.d.ts +2 -2
- package/browser/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
- package/browser/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
- package/browser/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +4 -0
- package/browser/Plugins/Emitters/ShapeManager.d.ts +6 -3
- package/browser/Plugins/Emitters/ShapeManager.js +16 -4
- package/browser/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
- package/browser/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
- package/browser/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
- package/browser/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
- package/browser/Plugins/Emitters/index.d.ts +3 -3
- package/browser/Plugins/Emitters/index.js +25 -6
- package/browser/engine.d.ts +5 -1
- package/browser/engine.js +22 -17
- package/engine.d.ts +3 -0
- package/engine.js +20 -16
- package/esm/Core/Container.d.ts +3 -1
- package/esm/Core/Container.js +28 -13
- package/esm/Core/Loader.d.ts +12 -9
- package/esm/Core/Loader.js +35 -19
- package/esm/Core/Particle.d.ts +3 -1
- package/esm/Core/Particle.js +18 -3
- package/esm/Core/Particles.d.ts +3 -1
- package/esm/Core/Particles.js +21 -6
- package/esm/Core/Utils/InteractionManager.d.ts +3 -1
- package/esm/Core/Utils/InteractionManager.js +17 -3
- package/esm/Core/Utils/Plugins.d.ts +29 -15
- package/esm/Core/Utils/Plugins.js +58 -46
- package/esm/Options/Classes/Options.d.ts +2 -1
- package/esm/Options/Classes/Options.js +13 -6
- package/esm/Plugins/Emitters/EmitterInstance.d.ts +6 -3
- package/esm/Plugins/Emitters/EmitterInstance.js +46 -16
- package/esm/Plugins/Emitters/Emitters.d.ts +3 -1
- package/esm/Plugins/Emitters/Emitters.js +17 -2
- package/{browser/Plugins/Emitters/EmittersMain.d.ts → esm/Plugins/Emitters/EmittersEngine.d.ts} +3 -1
- package/esm/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
- package/esm/Plugins/Emitters/IEmitterShape.d.ts +2 -2
- package/esm/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
- package/esm/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
- package/esm/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +1 -0
- package/esm/Plugins/Emitters/ShapeManager.d.ts +6 -3
- package/esm/Plugins/Emitters/ShapeManager.js +16 -4
- package/esm/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
- package/esm/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
- package/esm/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
- package/esm/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
- package/esm/Plugins/Emitters/index.d.ts +3 -3
- package/esm/Plugins/Emitters/index.js +25 -6
- package/esm/engine.d.ts +3 -0
- package/esm/engine.js +20 -16
- package/package.json +1 -1
- package/report.html +2 -2
- package/report.slim.html +2 -2
- package/tsparticles.engine.js +221 -114
- package/tsparticles.engine.min.js +2 -2
- package/tsparticles.interaction.external.attract.js +199 -96
- package/tsparticles.interaction.external.attract.min.js +2 -2
- package/tsparticles.interaction.external.bounce.js +199 -96
- package/tsparticles.interaction.external.bounce.min.js +2 -2
- package/tsparticles.interaction.external.bubble.js +199 -96
- package/tsparticles.interaction.external.bubble.min.js +2 -2
- package/tsparticles.interaction.external.connect.js +199 -96
- package/tsparticles.interaction.external.connect.min.js +2 -2
- package/tsparticles.interaction.external.grab.js +199 -96
- package/tsparticles.interaction.external.grab.min.js +2 -2
- package/tsparticles.interaction.external.repulse.js +199 -96
- package/tsparticles.interaction.external.repulse.min.js +2 -2
- package/tsparticles.interaction.external.trail.js +199 -96
- package/tsparticles.interaction.external.trail.min.js +2 -2
- package/tsparticles.interaction.particles.attract.js +199 -96
- package/tsparticles.interaction.particles.attract.min.js +2 -2
- package/tsparticles.interaction.particles.collisions.js +199 -96
- package/tsparticles.interaction.particles.collisions.min.js +2 -2
- package/tsparticles.interaction.particles.links.js +199 -96
- package/tsparticles.interaction.particles.links.min.js +2 -2
- package/tsparticles.js +341 -152
- package/tsparticles.min.js +2 -2
- package/tsparticles.pathseg.min.js +1 -1
- package/tsparticles.plugins.absorbers.js +199 -96
- package/tsparticles.plugins.absorbers.min.js +2 -2
- package/tsparticles.plugins.emitters.js +324 -139
- package/tsparticles.plugins.emitters.min.js +2 -2
- package/tsparticles.plugins.polygonMask.js +199 -96
- package/tsparticles.plugins.polygonMask.min.js +2 -2
- package/tsparticles.shape.circle.min.js +1 -1
- package/tsparticles.shape.image.js +202 -99
- package/tsparticles.shape.image.min.js +2 -2
- package/tsparticles.shape.line.min.js +1 -1
- package/tsparticles.shape.polygon.min.js +1 -1
- package/tsparticles.shape.square.min.js +1 -1
- package/tsparticles.shape.star.min.js +1 -1
- package/tsparticles.shape.text.js +199 -96
- package/tsparticles.shape.text.min.js +2 -2
- package/tsparticles.slim.js +221 -114
- package/tsparticles.slim.min.js +2 -2
- package/tsparticles.updater.angle.js +199 -96
- package/tsparticles.updater.angle.min.js +2 -2
- package/tsparticles.updater.color.js +199 -96
- package/tsparticles.updater.color.min.js +2 -2
- package/tsparticles.updater.life.js +199 -96
- package/tsparticles.updater.life.min.js +2 -2
- package/tsparticles.updater.opacity.js +199 -96
- package/tsparticles.updater.opacity.min.js +2 -2
- package/tsparticles.updater.outModes.js +199 -96
- package/tsparticles.updater.outModes.min.js +2 -2
- package/tsparticles.updater.roll.js +199 -96
- package/tsparticles.updater.roll.min.js +2 -2
- package/tsparticles.updater.size.js +199 -96
- package/tsparticles.updater.size.min.js +2 -2
- package/tsparticles.updater.strokeColor.js +199 -96
- package/tsparticles.updater.strokeColor.min.js +2 -2
- package/tsparticles.updater.tilt.js +199 -96
- package/tsparticles.updater.tilt.min.js +2 -2
- package/tsparticles.updater.wobble.js +199 -96
- package/tsparticles.updater.wobble.min.js +2 -2
|
@@ -796,15 +796,30 @@
|
|
|
796
796
|
}
|
|
797
797
|
}
|
|
798
798
|
}
|
|
799
|
+
var __classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
800
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
801
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
802
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
803
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
804
|
+
value;
|
|
805
|
+
};
|
|
806
|
+
var __classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
807
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
808
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
809
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
810
|
+
};
|
|
811
|
+
var _InteractionManager_engine;
|
|
799
812
|
class InteractionManager_InteractionManager {
|
|
800
|
-
constructor(container) {
|
|
813
|
+
constructor(engine, container) {
|
|
801
814
|
this.container = container;
|
|
815
|
+
_InteractionManager_engine.set(this, void 0);
|
|
816
|
+
__classPrivateFieldSet(this, _InteractionManager_engine, engine, "f");
|
|
802
817
|
this.externalInteractors = [];
|
|
803
818
|
this.particleInteractors = [];
|
|
804
819
|
this.init();
|
|
805
820
|
}
|
|
806
821
|
init() {
|
|
807
|
-
const interactors =
|
|
822
|
+
const interactors = __classPrivateFieldGet(this, _InteractionManager_engine, "f").plugins.getInteractors(this.container, true);
|
|
808
823
|
this.externalInteractors = [];
|
|
809
824
|
this.particleInteractors = [];
|
|
810
825
|
for (const interactor of interactors) {
|
|
@@ -837,6 +852,7 @@
|
|
|
837
852
|
}
|
|
838
853
|
}
|
|
839
854
|
}
|
|
855
|
+
_InteractionManager_engine = new WeakMap;
|
|
840
856
|
function applyDistance(particle) {
|
|
841
857
|
const initialPosition = particle.initialPosition;
|
|
842
858
|
const {dx: dx, dy: dy} = getDistances(initialPosition, particle.position);
|
|
@@ -1010,26 +1026,38 @@
|
|
|
1010
1026
|
return proximityFactor / slowFactor;
|
|
1011
1027
|
}
|
|
1012
1028
|
}
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
class
|
|
1022
|
-
|
|
1023
|
-
|
|
1029
|
+
var Plugins_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
1030
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
1031
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
1032
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
1033
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
1034
|
+
value;
|
|
1035
|
+
};
|
|
1036
|
+
var _Plugins_engine;
|
|
1037
|
+
class Plugins {
|
|
1038
|
+
constructor(engine) {
|
|
1039
|
+
_Plugins_engine.set(this, void 0);
|
|
1040
|
+
Plugins_classPrivateFieldSet(this, _Plugins_engine, engine, "f");
|
|
1041
|
+
this.plugins = [];
|
|
1042
|
+
this.interactorsInitializers = new Map;
|
|
1043
|
+
this.updatersInitializers = new Map;
|
|
1044
|
+
this.interactors = new Map;
|
|
1045
|
+
this.updaters = new Map;
|
|
1046
|
+
this.presets = new Map;
|
|
1047
|
+
this.drawers = new Map;
|
|
1048
|
+
this.pathGenerators = new Map;
|
|
1024
1049
|
}
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1050
|
+
getPlugin(plugin) {
|
|
1051
|
+
return this.plugins.find((t => t.id === plugin));
|
|
1052
|
+
}
|
|
1053
|
+
addPlugin(plugin) {
|
|
1054
|
+
if (!this.getPlugin(plugin.id)) {
|
|
1055
|
+
this.plugins.push(plugin);
|
|
1028
1056
|
}
|
|
1029
1057
|
}
|
|
1030
|
-
|
|
1058
|
+
getAvailablePlugins(container) {
|
|
1031
1059
|
const res = new Map;
|
|
1032
|
-
for (const plugin of plugins) {
|
|
1060
|
+
for (const plugin of this.plugins) {
|
|
1033
1061
|
if (!plugin.needsPlugin(container.actualOptions)) {
|
|
1034
1062
|
continue;
|
|
1035
1063
|
}
|
|
@@ -1037,61 +1065,62 @@
|
|
|
1037
1065
|
}
|
|
1038
1066
|
return res;
|
|
1039
1067
|
}
|
|
1040
|
-
|
|
1041
|
-
for (const plugin of plugins) {
|
|
1068
|
+
loadOptions(options, sourceOptions) {
|
|
1069
|
+
for (const plugin of this.plugins) {
|
|
1042
1070
|
plugin.loadOptions(options, sourceOptions);
|
|
1043
1071
|
}
|
|
1044
1072
|
}
|
|
1045
|
-
|
|
1046
|
-
return presets.get(preset);
|
|
1073
|
+
getPreset(preset) {
|
|
1074
|
+
return this.presets.get(preset);
|
|
1047
1075
|
}
|
|
1048
|
-
|
|
1049
|
-
if (override || !
|
|
1050
|
-
presets.set(presetKey, options);
|
|
1076
|
+
addPreset(presetKey, options, override = false) {
|
|
1077
|
+
if (override || !this.getPreset(presetKey)) {
|
|
1078
|
+
this.presets.set(presetKey, options);
|
|
1051
1079
|
}
|
|
1052
1080
|
}
|
|
1053
|
-
|
|
1054
|
-
if (!
|
|
1055
|
-
drawers.set(type, drawer);
|
|
1081
|
+
addShapeDrawer(type, drawer) {
|
|
1082
|
+
if (!this.getShapeDrawer(type)) {
|
|
1083
|
+
this.drawers.set(type, drawer);
|
|
1056
1084
|
}
|
|
1057
1085
|
}
|
|
1058
|
-
|
|
1059
|
-
return drawers.get(type);
|
|
1086
|
+
getShapeDrawer(type) {
|
|
1087
|
+
return this.drawers.get(type);
|
|
1060
1088
|
}
|
|
1061
|
-
|
|
1062
|
-
return drawers.keys();
|
|
1089
|
+
getSupportedShapes() {
|
|
1090
|
+
return this.drawers.keys();
|
|
1063
1091
|
}
|
|
1064
|
-
|
|
1065
|
-
return pathGenerators.get(type);
|
|
1092
|
+
getPathGenerator(type) {
|
|
1093
|
+
return this.pathGenerators.get(type);
|
|
1066
1094
|
}
|
|
1067
|
-
|
|
1068
|
-
if (!
|
|
1069
|
-
pathGenerators.set(type, pathGenerator);
|
|
1095
|
+
addPathGenerator(type, pathGenerator) {
|
|
1096
|
+
if (!this.getPathGenerator(type)) {
|
|
1097
|
+
this.pathGenerators.set(type, pathGenerator);
|
|
1070
1098
|
}
|
|
1071
1099
|
}
|
|
1072
|
-
|
|
1073
|
-
let res = interactors.get(container);
|
|
1100
|
+
getInteractors(container, force = false) {
|
|
1101
|
+
let res = this.interactors.get(container);
|
|
1074
1102
|
if (!res || force) {
|
|
1075
|
-
res = [ ...interactorsInitializers.values() ].map((t => t(container)));
|
|
1076
|
-
interactors.set(container, res);
|
|
1103
|
+
res = [ ...this.interactorsInitializers.values() ].map((t => t(container)));
|
|
1104
|
+
this.interactors.set(container, res);
|
|
1077
1105
|
}
|
|
1078
1106
|
return res;
|
|
1079
1107
|
}
|
|
1080
|
-
|
|
1081
|
-
interactorsInitializers.set(name, initInteractor);
|
|
1108
|
+
addInteractor(name, initInteractor) {
|
|
1109
|
+
this.interactorsInitializers.set(name, initInteractor);
|
|
1082
1110
|
}
|
|
1083
|
-
|
|
1084
|
-
let res = updaters.get(container);
|
|
1111
|
+
getUpdaters(container, force = false) {
|
|
1112
|
+
let res = this.updaters.get(container);
|
|
1085
1113
|
if (!res || force) {
|
|
1086
|
-
res = [ ...updatersInitializers.values() ].map((t => t(container)));
|
|
1087
|
-
updaters.set(container, res);
|
|
1114
|
+
res = [ ...this.updatersInitializers.values() ].map((t => t(container)));
|
|
1115
|
+
this.updaters.set(container, res);
|
|
1088
1116
|
}
|
|
1089
1117
|
return res;
|
|
1090
1118
|
}
|
|
1091
|
-
|
|
1092
|
-
updatersInitializers.set(name, initUpdater);
|
|
1119
|
+
addParticleUpdater(name, initUpdater) {
|
|
1120
|
+
this.updatersInitializers.set(name, initUpdater);
|
|
1093
1121
|
}
|
|
1094
1122
|
}
|
|
1123
|
+
_Plugins_engine = new WeakMap;
|
|
1095
1124
|
class QuadTree_QuadTree {
|
|
1096
1125
|
constructor(rectangle, capacity) {
|
|
1097
1126
|
this.rectangle = rectangle;
|
|
@@ -2709,15 +2738,24 @@
|
|
|
2709
2738
|
}
|
|
2710
2739
|
}
|
|
2711
2740
|
}
|
|
2712
|
-
var
|
|
2741
|
+
var Options_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
2742
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
2743
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
2744
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
2745
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
2746
|
+
value;
|
|
2747
|
+
};
|
|
2748
|
+
var Options_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
2713
2749
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
2714
2750
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
2715
2751
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
2716
2752
|
};
|
|
2717
|
-
var _Options_instances, _Options_findDefaultTheme;
|
|
2753
|
+
var _Options_instances, _Options_engine, _Options_findDefaultTheme;
|
|
2718
2754
|
class Options_Options {
|
|
2719
|
-
constructor() {
|
|
2755
|
+
constructor(engine) {
|
|
2720
2756
|
_Options_instances.add(this);
|
|
2757
|
+
_Options_engine.set(this, void 0);
|
|
2758
|
+
Options_classPrivateFieldSet(this, _Options_engine, engine, "f");
|
|
2721
2759
|
this.autoPlay = true;
|
|
2722
2760
|
this.background = new Background;
|
|
2723
2761
|
this.backgroundMask = new BackgroundMask;
|
|
@@ -2810,7 +2848,7 @@
|
|
|
2810
2848
|
this.motion.load(data.motion);
|
|
2811
2849
|
this.particles.load(data.particles);
|
|
2812
2850
|
this.style = deepExtend(this.style, data.style);
|
|
2813
|
-
|
|
2851
|
+
Options_classPrivateFieldGet(this, _Options_engine, "f").plugins.loadOptions(this, data);
|
|
2814
2852
|
if (data.responsive !== undefined) {
|
|
2815
2853
|
for (const responsive of data.responsive) {
|
|
2816
2854
|
const optResponsive = new Responsive;
|
|
@@ -2826,8 +2864,8 @@
|
|
|
2826
2864
|
this.themes.push(optTheme);
|
|
2827
2865
|
}
|
|
2828
2866
|
}
|
|
2829
|
-
this.defaultDarkTheme = (_d =
|
|
2830
|
-
this.defaultLightTheme = (_e =
|
|
2867
|
+
this.defaultDarkTheme = (_d = Options_classPrivateFieldGet(this, _Options_instances, "m", _Options_findDefaultTheme).call(this, "dark")) === null || _d === void 0 ? void 0 : _d.name;
|
|
2868
|
+
this.defaultLightTheme = (_e = Options_classPrivateFieldGet(this, _Options_instances, "m", _Options_findDefaultTheme).call(this, "light")) === null || _e === void 0 ? void 0 : _e.name;
|
|
2831
2869
|
}
|
|
2832
2870
|
setTheme(name) {
|
|
2833
2871
|
if (name) {
|
|
@@ -2836,7 +2874,7 @@
|
|
|
2836
2874
|
this.load(chosenTheme.options);
|
|
2837
2875
|
}
|
|
2838
2876
|
} else {
|
|
2839
|
-
const mediaMatch = typeof matchMedia !== "undefined" && matchMedia("(prefers-color-scheme: dark)"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme =
|
|
2877
|
+
const mediaMatch = typeof matchMedia !== "undefined" && matchMedia("(prefers-color-scheme: dark)"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = Options_classPrivateFieldGet(this, _Options_instances, "m", _Options_findDefaultTheme).call(this, clientDarkMode ? "dark" : "light");
|
|
2840
2878
|
if (defaultTheme) {
|
|
2841
2879
|
this.load(defaultTheme.options);
|
|
2842
2880
|
}
|
|
@@ -2849,13 +2887,26 @@
|
|
|
2849
2887
|
return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;
|
|
2850
2888
|
}
|
|
2851
2889
|
importPreset(preset) {
|
|
2852
|
-
this.load(
|
|
2890
|
+
this.load(Options_classPrivateFieldGet(this, _Options_engine, "f").plugins.getPreset(preset));
|
|
2853
2891
|
}
|
|
2854
2892
|
}
|
|
2855
|
-
_Options_instances = new WeakSet, _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {
|
|
2893
|
+
_Options_engine = new WeakMap, _Options_instances = new WeakSet, _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {
|
|
2856
2894
|
var _a;
|
|
2857
2895
|
return (_a = this.themes.find((theme => theme.default.value && theme.default.mode === mode))) !== null && _a !== void 0 ? _a : this.themes.find((theme => theme.default.value && theme.default.mode === "any"));
|
|
2858
2896
|
};
|
|
2897
|
+
var Particle_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
2898
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
2899
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
2900
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
2901
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
2902
|
+
value;
|
|
2903
|
+
};
|
|
2904
|
+
var Particle_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
2905
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
2906
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
2907
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
2908
|
+
};
|
|
2909
|
+
var _Particle_engine;
|
|
2859
2910
|
const fixOutMode = data => {
|
|
2860
2911
|
if (isInArray(data.outMode, data.checkModes) || isInArray(data.outMode, data.checkModes)) {
|
|
2861
2912
|
if (data.coord > data.maxCoord - data.radius * 2) {
|
|
@@ -2866,11 +2917,13 @@
|
|
|
2866
2917
|
}
|
|
2867
2918
|
};
|
|
2868
2919
|
class Particle_Particle {
|
|
2869
|
-
constructor(id, container, position, overrideOptions, group) {
|
|
2920
|
+
constructor(engine, id, container, position, overrideOptions, group) {
|
|
2870
2921
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
2871
2922
|
this.id = id;
|
|
2872
2923
|
this.container = container;
|
|
2873
2924
|
this.group = group;
|
|
2925
|
+
_Particle_engine.set(this, void 0);
|
|
2926
|
+
Particle_classPrivateFieldSet(this, _Particle_engine, engine, "f");
|
|
2874
2927
|
this.fill = true;
|
|
2875
2928
|
this.close = true;
|
|
2876
2929
|
this.lastPathTime = 0;
|
|
@@ -2964,7 +3017,7 @@
|
|
|
2964
3017
|
this.sides = 24;
|
|
2965
3018
|
let drawer = container.drawers.get(this.shape);
|
|
2966
3019
|
if (!drawer) {
|
|
2967
|
-
drawer =
|
|
3020
|
+
drawer = Particle_classPrivateFieldGet(this, _Particle_engine, "f").plugins.getShapeDrawer(this.shape);
|
|
2968
3021
|
if (drawer) {
|
|
2969
3022
|
container.drawers.set(this.shape, drawer);
|
|
2970
3023
|
}
|
|
@@ -3204,9 +3257,25 @@
|
|
|
3204
3257
|
return life;
|
|
3205
3258
|
}
|
|
3206
3259
|
}
|
|
3260
|
+
_Particle_engine = new WeakMap;
|
|
3261
|
+
var Particles_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
3262
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3263
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
3264
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
3265
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
3266
|
+
value;
|
|
3267
|
+
};
|
|
3268
|
+
var Particles_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
3269
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3270
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
3271
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
3272
|
+
};
|
|
3273
|
+
var _Particles_engine;
|
|
3207
3274
|
class Particles_Particles {
|
|
3208
|
-
constructor(container) {
|
|
3275
|
+
constructor(engine, container) {
|
|
3209
3276
|
this.container = container;
|
|
3277
|
+
_Particles_engine.set(this, void 0);
|
|
3278
|
+
Particles_classPrivateFieldSet(this, _Particles_engine, engine, "f");
|
|
3210
3279
|
this.nextId = 0;
|
|
3211
3280
|
this.array = [];
|
|
3212
3281
|
this.zArray = [];
|
|
@@ -3218,11 +3287,11 @@
|
|
|
3218
3287
|
links: new Map,
|
|
3219
3288
|
triangles: new Map
|
|
3220
3289
|
};
|
|
3221
|
-
this.interactionManager = new InteractionManager(container);
|
|
3290
|
+
this.interactionManager = new InteractionManager(Particles_classPrivateFieldGet(this, _Particles_engine, "f"), container);
|
|
3222
3291
|
const canvasSize = this.container.canvas.size;
|
|
3223
3292
|
this.linksColors = new Map;
|
|
3224
3293
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
3225
|
-
this.updaters =
|
|
3294
|
+
this.updaters = Particles_classPrivateFieldGet(this, _Particles_engine, "f").plugins.getUpdaters(container, true);
|
|
3226
3295
|
}
|
|
3227
3296
|
get count() {
|
|
3228
3297
|
return this.array.length;
|
|
@@ -3236,7 +3305,7 @@
|
|
|
3236
3305
|
this.freqs.links = new Map;
|
|
3237
3306
|
this.freqs.triangles = new Map;
|
|
3238
3307
|
let handled = false;
|
|
3239
|
-
this.updaters =
|
|
3308
|
+
this.updaters = Particles_classPrivateFieldGet(this, _Particles_engine, "f").plugins.getUpdaters(container, true);
|
|
3240
3309
|
this.interactionManager.init();
|
|
3241
3310
|
for (const [, plugin] of container.plugins) {
|
|
3242
3311
|
if (plugin.particlesInitialization !== undefined) {
|
|
@@ -3483,7 +3552,7 @@
|
|
|
3483
3552
|
}
|
|
3484
3553
|
pushParticle(position, overrideOptions, group, initializer) {
|
|
3485
3554
|
try {
|
|
3486
|
-
const particle = new Particle(this.nextId, this.container, position, overrideOptions, group);
|
|
3555
|
+
const particle = new Particle(Particles_classPrivateFieldGet(this, _Particles_engine, "f"), this.nextId, this.container, position, overrideOptions, group);
|
|
3487
3556
|
let canAdd = true;
|
|
3488
3557
|
if (initializer) {
|
|
3489
3558
|
canAdd = initializer(particle);
|
|
@@ -3501,6 +3570,7 @@
|
|
|
3501
3570
|
}
|
|
3502
3571
|
}
|
|
3503
3572
|
}
|
|
3573
|
+
_Particles_engine = new WeakMap;
|
|
3504
3574
|
class Retina_Retina {
|
|
3505
3575
|
constructor(container) {
|
|
3506
3576
|
this.container = container;
|
|
@@ -3588,9 +3658,24 @@
|
|
|
3588
3658
|
}
|
|
3589
3659
|
}
|
|
3590
3660
|
}
|
|
3661
|
+
var Container_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
3662
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3663
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
3664
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
3665
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
3666
|
+
value;
|
|
3667
|
+
};
|
|
3668
|
+
var Container_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
3669
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3670
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
3671
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
3672
|
+
};
|
|
3673
|
+
var _Container_engine;
|
|
3591
3674
|
class Container_Container {
|
|
3592
|
-
constructor(id, sourceOptions, ...presets) {
|
|
3675
|
+
constructor(engine, id, sourceOptions, ...presets) {
|
|
3593
3676
|
this.id = id;
|
|
3677
|
+
_Container_engine.set(this, void 0);
|
|
3678
|
+
Container_classPrivateFieldSet(this, _Container_engine, engine, "f");
|
|
3594
3679
|
this.fpsLimit = 120;
|
|
3595
3680
|
this.duration = 0;
|
|
3596
3681
|
this.lifeTime = 0;
|
|
@@ -3605,7 +3690,7 @@
|
|
|
3605
3690
|
this._initialSourceOptions = sourceOptions;
|
|
3606
3691
|
this.retina = new Retina(this);
|
|
3607
3692
|
this.canvas = new Canvas(this);
|
|
3608
|
-
this.particles = new Particles(this);
|
|
3693
|
+
this.particles = new Particles(Container_classPrivateFieldGet(this, _Container_engine, "f"), this);
|
|
3609
3694
|
this.drawer = new FrameManager(this);
|
|
3610
3695
|
this.presets = presets;
|
|
3611
3696
|
this.pathGenerator = {
|
|
@@ -3634,8 +3719,8 @@
|
|
|
3634
3719
|
this.plugins = new Map;
|
|
3635
3720
|
this.drawers = new Map;
|
|
3636
3721
|
this.density = 1;
|
|
3637
|
-
this._options = new Options;
|
|
3638
|
-
this.actualOptions = new Options;
|
|
3722
|
+
this._options = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
3723
|
+
this.actualOptions = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
3639
3724
|
this.eventListeners = new EventListeners(this);
|
|
3640
3725
|
if (typeof IntersectionObserver !== "undefined" && IntersectionObserver) {
|
|
3641
3726
|
this.intersectionObserver = new IntersectionObserver((entries => this.intersectionManager(entries)));
|
|
@@ -3750,7 +3835,7 @@
|
|
|
3750
3835
|
return this.start();
|
|
3751
3836
|
}
|
|
3752
3837
|
reset() {
|
|
3753
|
-
this._options = new Options;
|
|
3838
|
+
this._options = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
3754
3839
|
return this.refresh();
|
|
3755
3840
|
}
|
|
3756
3841
|
stop() {
|
|
@@ -3891,20 +3976,20 @@
|
|
|
3891
3976
|
return false;
|
|
3892
3977
|
}
|
|
3893
3978
|
async init() {
|
|
3894
|
-
this._options = new Options;
|
|
3979
|
+
this._options = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
3895
3980
|
for (const preset of this.presets) {
|
|
3896
|
-
this._options.load(
|
|
3981
|
+
this._options.load(Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getPreset(preset));
|
|
3897
3982
|
}
|
|
3898
|
-
const shapes =
|
|
3983
|
+
const shapes = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getSupportedShapes();
|
|
3899
3984
|
for (const type of shapes) {
|
|
3900
|
-
const drawer =
|
|
3985
|
+
const drawer = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getShapeDrawer(type);
|
|
3901
3986
|
if (drawer) {
|
|
3902
3987
|
this.drawers.set(type, drawer);
|
|
3903
3988
|
}
|
|
3904
3989
|
}
|
|
3905
3990
|
this._options.load(this._initialSourceOptions);
|
|
3906
3991
|
this._options.load(this._sourceOptions);
|
|
3907
|
-
this.actualOptions = new Options;
|
|
3992
|
+
this.actualOptions = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
3908
3993
|
this.actualOptions.load(this._options);
|
|
3909
3994
|
this.retina.init();
|
|
3910
3995
|
this.canvas.init();
|
|
@@ -3915,7 +4000,7 @@
|
|
|
3915
4000
|
this.duration = getRangeValue(this.actualOptions.duration);
|
|
3916
4001
|
this.lifeTime = 0;
|
|
3917
4002
|
this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;
|
|
3918
|
-
const availablePlugins =
|
|
4003
|
+
const availablePlugins = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getAvailablePlugins(this);
|
|
3919
4004
|
for (const [id, plugin] of availablePlugins) {
|
|
3920
4005
|
this.plugins.set(id, plugin);
|
|
3921
4006
|
}
|
|
@@ -3933,7 +4018,7 @@
|
|
|
3933
4018
|
}
|
|
3934
4019
|
const pathOptions = this.actualOptions.particles.move.path;
|
|
3935
4020
|
if (pathOptions.generator) {
|
|
3936
|
-
const customGenerator =
|
|
4021
|
+
const customGenerator = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getPathGenerator(pathOptions.generator);
|
|
3937
4022
|
if (customGenerator) {
|
|
3938
4023
|
if (customGenerator.init) {
|
|
3939
4024
|
this.pathGenerator.init = customGenerator.init;
|
|
@@ -3970,24 +4055,41 @@
|
|
|
3970
4055
|
}
|
|
3971
4056
|
}
|
|
3972
4057
|
}
|
|
3973
|
-
|
|
4058
|
+
_Container_engine = new WeakMap;
|
|
4059
|
+
var Loader_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
4060
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4061
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4062
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
4063
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
4064
|
+
value;
|
|
4065
|
+
};
|
|
4066
|
+
var Loader_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
4067
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4068
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4069
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4070
|
+
};
|
|
4071
|
+
var _Loader_engine;
|
|
3974
4072
|
function fetchError(statusCode) {
|
|
3975
4073
|
console.error(`Error tsParticles - fetch status: ${statusCode}`);
|
|
3976
4074
|
console.error("Error tsParticles - File config not found");
|
|
3977
4075
|
}
|
|
3978
4076
|
class Loader {
|
|
3979
|
-
|
|
3980
|
-
|
|
4077
|
+
constructor(engine) {
|
|
4078
|
+
_Loader_engine.set(this, void 0);
|
|
4079
|
+
Loader_classPrivateFieldSet(this, _Loader_engine, engine, "f");
|
|
4080
|
+
}
|
|
4081
|
+
dom() {
|
|
4082
|
+
return Loader_classPrivateFieldGet(this, _Loader_engine, "f").domArray;
|
|
3981
4083
|
}
|
|
3982
|
-
|
|
3983
|
-
const dom =
|
|
4084
|
+
domItem(index) {
|
|
4085
|
+
const dom = this.dom();
|
|
3984
4086
|
const item = dom[index];
|
|
3985
4087
|
if (item && !item.destroyed) {
|
|
3986
4088
|
return item;
|
|
3987
4089
|
}
|
|
3988
4090
|
dom.splice(index, 1);
|
|
3989
4091
|
}
|
|
3990
|
-
|
|
4092
|
+
async loadOptions(params) {
|
|
3991
4093
|
var _a, _b, _c;
|
|
3992
4094
|
const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 1e4)}`;
|
|
3993
4095
|
const {options: options, index: index} = params;
|
|
@@ -3998,10 +4100,10 @@
|
|
|
3998
4100
|
(_c = document.querySelector("body")) === null || _c === void 0 ? void 0 : _c.append(domContainer);
|
|
3999
4101
|
}
|
|
4000
4102
|
const currentOptions = options instanceof Array ? itemFromArray(options, index) : options;
|
|
4001
|
-
const dom =
|
|
4103
|
+
const dom = this.dom();
|
|
4002
4104
|
const oldIndex = dom.findIndex((v => v.id === tagId));
|
|
4003
4105
|
if (oldIndex >= 0) {
|
|
4004
|
-
const old =
|
|
4106
|
+
const old = this.domItem(oldIndex);
|
|
4005
4107
|
if (old && !old.destroyed) {
|
|
4006
4108
|
old.destroy();
|
|
4007
4109
|
dom.splice(oldIndex, 1);
|
|
@@ -4024,7 +4126,7 @@
|
|
|
4024
4126
|
domContainer.appendChild(canvasEl);
|
|
4025
4127
|
}
|
|
4026
4128
|
}
|
|
4027
|
-
const newItem = new Container(tagId, currentOptions);
|
|
4129
|
+
const newItem = new Container(Loader_classPrivateFieldGet(this, _Loader_engine, "f"), tagId, currentOptions);
|
|
4028
4130
|
if (oldIndex >= 0) {
|
|
4029
4131
|
dom.splice(oldIndex, 0, newItem);
|
|
4030
4132
|
} else {
|
|
@@ -4034,7 +4136,7 @@
|
|
|
4034
4136
|
await newItem.start();
|
|
4035
4137
|
return newItem;
|
|
4036
4138
|
}
|
|
4037
|
-
|
|
4139
|
+
async loadRemoteOptions(params) {
|
|
4038
4140
|
const {url: jsonUrl, index: index} = params;
|
|
4039
4141
|
const url = jsonUrl instanceof Array ? itemFromArray(jsonUrl, index) : jsonUrl;
|
|
4040
4142
|
if (!url) {
|
|
@@ -4046,14 +4148,14 @@
|
|
|
4046
4148
|
return;
|
|
4047
4149
|
}
|
|
4048
4150
|
const data = await response.json();
|
|
4049
|
-
return
|
|
4151
|
+
return this.loadOptions({
|
|
4050
4152
|
tagId: params.tagId,
|
|
4051
4153
|
element: params.element,
|
|
4052
4154
|
index: index,
|
|
4053
4155
|
options: data
|
|
4054
4156
|
});
|
|
4055
4157
|
}
|
|
4056
|
-
|
|
4158
|
+
load(tagId, options, index) {
|
|
4057
4159
|
const params = {
|
|
4058
4160
|
index: index
|
|
4059
4161
|
};
|
|
@@ -4069,7 +4171,7 @@
|
|
|
4069
4171
|
}
|
|
4070
4172
|
return this.loadOptions(params);
|
|
4071
4173
|
}
|
|
4072
|
-
|
|
4174
|
+
async set(id, domContainer, options, index) {
|
|
4073
4175
|
const params = {
|
|
4074
4176
|
index: index
|
|
4075
4177
|
};
|
|
@@ -4090,7 +4192,7 @@
|
|
|
4090
4192
|
}
|
|
4091
4193
|
return this.loadOptions(params);
|
|
4092
4194
|
}
|
|
4093
|
-
|
|
4195
|
+
async loadJSON(tagId, jsonUrl, index) {
|
|
4094
4196
|
let url, id;
|
|
4095
4197
|
if (typeof jsonUrl === "number" || jsonUrl === undefined) {
|
|
4096
4198
|
url = tagId;
|
|
@@ -4098,13 +4200,13 @@
|
|
|
4098
4200
|
id = tagId;
|
|
4099
4201
|
url = jsonUrl;
|
|
4100
4202
|
}
|
|
4101
|
-
return
|
|
4203
|
+
return this.loadRemoteOptions({
|
|
4102
4204
|
tagId: id,
|
|
4103
4205
|
url: url,
|
|
4104
4206
|
index: index
|
|
4105
4207
|
});
|
|
4106
4208
|
}
|
|
4107
|
-
|
|
4209
|
+
async setJSON(id, domContainer, jsonUrl, index) {
|
|
4108
4210
|
let url, newId, newIndex, element;
|
|
4109
4211
|
if (id instanceof HTMLElement) {
|
|
4110
4212
|
element = id;
|
|
@@ -4116,15 +4218,15 @@
|
|
|
4116
4218
|
url = jsonUrl;
|
|
4117
4219
|
newIndex = index;
|
|
4118
4220
|
}
|
|
4119
|
-
return
|
|
4221
|
+
return this.loadRemoteOptions({
|
|
4120
4222
|
tagId: newId,
|
|
4121
4223
|
url: url,
|
|
4122
4224
|
index: newIndex,
|
|
4123
4225
|
element: element
|
|
4124
4226
|
});
|
|
4125
4227
|
}
|
|
4126
|
-
|
|
4127
|
-
const dom =
|
|
4228
|
+
setOnClickHandler(callback) {
|
|
4229
|
+
const dom = this.dom();
|
|
4128
4230
|
if (dom.length === 0) {
|
|
4129
4231
|
throw new Error("Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()");
|
|
4130
4232
|
}
|
|
@@ -4133,6 +4235,7 @@
|
|
|
4133
4235
|
}
|
|
4134
4236
|
}
|
|
4135
4237
|
}
|
|
4238
|
+
_Loader_engine = new WeakMap;
|
|
4136
4239
|
function NumberUtils_clamp(num, min, max) {
|
|
4137
4240
|
return Math.min(Math.max(num, min), max);
|
|
4138
4241
|
}
|