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
|
@@ -1559,15 +1559,30 @@
|
|
|
1559
1559
|
this.type = 0;
|
|
1560
1560
|
}
|
|
1561
1561
|
}
|
|
1562
|
+
var __classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
1563
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
1564
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
1565
|
+
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");
|
|
1566
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
1567
|
+
value;
|
|
1568
|
+
};
|
|
1569
|
+
var __classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
1570
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
1571
|
+
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");
|
|
1572
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
1573
|
+
};
|
|
1574
|
+
var _InteractionManager_engine;
|
|
1562
1575
|
class InteractionManager_InteractionManager {
|
|
1563
|
-
constructor(container) {
|
|
1576
|
+
constructor(engine, container) {
|
|
1564
1577
|
this.container = container;
|
|
1578
|
+
_InteractionManager_engine.set(this, void 0);
|
|
1579
|
+
__classPrivateFieldSet(this, _InteractionManager_engine, engine, "f");
|
|
1565
1580
|
this.externalInteractors = [];
|
|
1566
1581
|
this.particleInteractors = [];
|
|
1567
1582
|
this.init();
|
|
1568
1583
|
}
|
|
1569
1584
|
init() {
|
|
1570
|
-
const interactors =
|
|
1585
|
+
const interactors = __classPrivateFieldGet(this, _InteractionManager_engine, "f").plugins.getInteractors(this.container, true);
|
|
1571
1586
|
this.externalInteractors = [];
|
|
1572
1587
|
this.particleInteractors = [];
|
|
1573
1588
|
for (const interactor of interactors) {
|
|
@@ -1600,6 +1615,7 @@
|
|
|
1600
1615
|
}
|
|
1601
1616
|
}
|
|
1602
1617
|
}
|
|
1618
|
+
_InteractionManager_engine = new WeakMap;
|
|
1603
1619
|
function applyDistance(particle) {
|
|
1604
1620
|
const initialPosition = particle.initialPosition;
|
|
1605
1621
|
const {dx: dx, dy: dy} = getDistances(initialPosition, particle.position);
|
|
@@ -1773,26 +1789,38 @@
|
|
|
1773
1789
|
return proximityFactor / slowFactor;
|
|
1774
1790
|
}
|
|
1775
1791
|
}
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
class
|
|
1785
|
-
|
|
1786
|
-
|
|
1792
|
+
var Plugins_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
1793
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
1794
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
1795
|
+
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");
|
|
1796
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
1797
|
+
value;
|
|
1798
|
+
};
|
|
1799
|
+
var _Plugins_engine;
|
|
1800
|
+
class Plugins {
|
|
1801
|
+
constructor(engine) {
|
|
1802
|
+
_Plugins_engine.set(this, void 0);
|
|
1803
|
+
Plugins_classPrivateFieldSet(this, _Plugins_engine, engine, "f");
|
|
1804
|
+
this.plugins = [];
|
|
1805
|
+
this.interactorsInitializers = new Map;
|
|
1806
|
+
this.updatersInitializers = new Map;
|
|
1807
|
+
this.interactors = new Map;
|
|
1808
|
+
this.updaters = new Map;
|
|
1809
|
+
this.presets = new Map;
|
|
1810
|
+
this.drawers = new Map;
|
|
1811
|
+
this.pathGenerators = new Map;
|
|
1787
1812
|
}
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1813
|
+
getPlugin(plugin) {
|
|
1814
|
+
return this.plugins.find((t => t.id === plugin));
|
|
1815
|
+
}
|
|
1816
|
+
addPlugin(plugin) {
|
|
1817
|
+
if (!this.getPlugin(plugin.id)) {
|
|
1818
|
+
this.plugins.push(plugin);
|
|
1791
1819
|
}
|
|
1792
1820
|
}
|
|
1793
|
-
|
|
1821
|
+
getAvailablePlugins(container) {
|
|
1794
1822
|
const res = new Map;
|
|
1795
|
-
for (const plugin of plugins) {
|
|
1823
|
+
for (const plugin of this.plugins) {
|
|
1796
1824
|
if (!plugin.needsPlugin(container.actualOptions)) {
|
|
1797
1825
|
continue;
|
|
1798
1826
|
}
|
|
@@ -1800,61 +1828,62 @@
|
|
|
1800
1828
|
}
|
|
1801
1829
|
return res;
|
|
1802
1830
|
}
|
|
1803
|
-
|
|
1804
|
-
for (const plugin of plugins) {
|
|
1831
|
+
loadOptions(options, sourceOptions) {
|
|
1832
|
+
for (const plugin of this.plugins) {
|
|
1805
1833
|
plugin.loadOptions(options, sourceOptions);
|
|
1806
1834
|
}
|
|
1807
1835
|
}
|
|
1808
|
-
|
|
1809
|
-
return presets.get(preset);
|
|
1836
|
+
getPreset(preset) {
|
|
1837
|
+
return this.presets.get(preset);
|
|
1810
1838
|
}
|
|
1811
|
-
|
|
1812
|
-
if (override || !
|
|
1813
|
-
presets.set(presetKey, options);
|
|
1839
|
+
addPreset(presetKey, options, override = false) {
|
|
1840
|
+
if (override || !this.getPreset(presetKey)) {
|
|
1841
|
+
this.presets.set(presetKey, options);
|
|
1814
1842
|
}
|
|
1815
1843
|
}
|
|
1816
|
-
|
|
1817
|
-
if (!
|
|
1818
|
-
drawers.set(type, drawer);
|
|
1844
|
+
addShapeDrawer(type, drawer) {
|
|
1845
|
+
if (!this.getShapeDrawer(type)) {
|
|
1846
|
+
this.drawers.set(type, drawer);
|
|
1819
1847
|
}
|
|
1820
1848
|
}
|
|
1821
|
-
|
|
1822
|
-
return drawers.get(type);
|
|
1849
|
+
getShapeDrawer(type) {
|
|
1850
|
+
return this.drawers.get(type);
|
|
1823
1851
|
}
|
|
1824
|
-
|
|
1825
|
-
return drawers.keys();
|
|
1852
|
+
getSupportedShapes() {
|
|
1853
|
+
return this.drawers.keys();
|
|
1826
1854
|
}
|
|
1827
|
-
|
|
1828
|
-
return pathGenerators.get(type);
|
|
1855
|
+
getPathGenerator(type) {
|
|
1856
|
+
return this.pathGenerators.get(type);
|
|
1829
1857
|
}
|
|
1830
|
-
|
|
1831
|
-
if (!
|
|
1832
|
-
pathGenerators.set(type, pathGenerator);
|
|
1858
|
+
addPathGenerator(type, pathGenerator) {
|
|
1859
|
+
if (!this.getPathGenerator(type)) {
|
|
1860
|
+
this.pathGenerators.set(type, pathGenerator);
|
|
1833
1861
|
}
|
|
1834
1862
|
}
|
|
1835
|
-
|
|
1836
|
-
let res = interactors.get(container);
|
|
1863
|
+
getInteractors(container, force = false) {
|
|
1864
|
+
let res = this.interactors.get(container);
|
|
1837
1865
|
if (!res || force) {
|
|
1838
|
-
res = [ ...interactorsInitializers.values() ].map((t => t(container)));
|
|
1839
|
-
interactors.set(container, res);
|
|
1866
|
+
res = [ ...this.interactorsInitializers.values() ].map((t => t(container)));
|
|
1867
|
+
this.interactors.set(container, res);
|
|
1840
1868
|
}
|
|
1841
1869
|
return res;
|
|
1842
1870
|
}
|
|
1843
|
-
|
|
1844
|
-
interactorsInitializers.set(name, initInteractor);
|
|
1871
|
+
addInteractor(name, initInteractor) {
|
|
1872
|
+
this.interactorsInitializers.set(name, initInteractor);
|
|
1845
1873
|
}
|
|
1846
|
-
|
|
1847
|
-
let res = updaters.get(container);
|
|
1874
|
+
getUpdaters(container, force = false) {
|
|
1875
|
+
let res = this.updaters.get(container);
|
|
1848
1876
|
if (!res || force) {
|
|
1849
|
-
res = [ ...updatersInitializers.values() ].map((t => t(container)));
|
|
1850
|
-
updaters.set(container, res);
|
|
1877
|
+
res = [ ...this.updatersInitializers.values() ].map((t => t(container)));
|
|
1878
|
+
this.updaters.set(container, res);
|
|
1851
1879
|
}
|
|
1852
1880
|
return res;
|
|
1853
1881
|
}
|
|
1854
|
-
|
|
1855
|
-
updatersInitializers.set(name, initUpdater);
|
|
1882
|
+
addParticleUpdater(name, initUpdater) {
|
|
1883
|
+
this.updatersInitializers.set(name, initUpdater);
|
|
1856
1884
|
}
|
|
1857
1885
|
}
|
|
1886
|
+
_Plugins_engine = new WeakMap;
|
|
1858
1887
|
class QuadTree_QuadTree {
|
|
1859
1888
|
constructor(rectangle, capacity) {
|
|
1860
1889
|
this.rectangle = rectangle;
|
|
@@ -3381,15 +3410,24 @@
|
|
|
3381
3410
|
}
|
|
3382
3411
|
}
|
|
3383
3412
|
}
|
|
3384
|
-
var
|
|
3413
|
+
var Options_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
3414
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3415
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
3416
|
+
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");
|
|
3417
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
3418
|
+
value;
|
|
3419
|
+
};
|
|
3420
|
+
var Options_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
3385
3421
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3386
3422
|
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");
|
|
3387
3423
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
3388
3424
|
};
|
|
3389
|
-
var _Options_instances, _Options_findDefaultTheme;
|
|
3425
|
+
var _Options_instances, _Options_engine, _Options_findDefaultTheme;
|
|
3390
3426
|
class Options_Options {
|
|
3391
|
-
constructor() {
|
|
3427
|
+
constructor(engine) {
|
|
3392
3428
|
_Options_instances.add(this);
|
|
3429
|
+
_Options_engine.set(this, void 0);
|
|
3430
|
+
Options_classPrivateFieldSet(this, _Options_engine, engine, "f");
|
|
3393
3431
|
this.autoPlay = true;
|
|
3394
3432
|
this.background = new Background;
|
|
3395
3433
|
this.backgroundMask = new BackgroundMask;
|
|
@@ -3482,7 +3520,7 @@
|
|
|
3482
3520
|
this.motion.load(data.motion);
|
|
3483
3521
|
this.particles.load(data.particles);
|
|
3484
3522
|
this.style = deepExtend(this.style, data.style);
|
|
3485
|
-
|
|
3523
|
+
Options_classPrivateFieldGet(this, _Options_engine, "f").plugins.loadOptions(this, data);
|
|
3486
3524
|
if (data.responsive !== undefined) {
|
|
3487
3525
|
for (const responsive of data.responsive) {
|
|
3488
3526
|
const optResponsive = new Responsive;
|
|
@@ -3498,8 +3536,8 @@
|
|
|
3498
3536
|
this.themes.push(optTheme);
|
|
3499
3537
|
}
|
|
3500
3538
|
}
|
|
3501
|
-
this.defaultDarkTheme = (_d =
|
|
3502
|
-
this.defaultLightTheme = (_e =
|
|
3539
|
+
this.defaultDarkTheme = (_d = Options_classPrivateFieldGet(this, _Options_instances, "m", _Options_findDefaultTheme).call(this, "dark")) === null || _d === void 0 ? void 0 : _d.name;
|
|
3540
|
+
this.defaultLightTheme = (_e = Options_classPrivateFieldGet(this, _Options_instances, "m", _Options_findDefaultTheme).call(this, "light")) === null || _e === void 0 ? void 0 : _e.name;
|
|
3503
3541
|
}
|
|
3504
3542
|
setTheme(name) {
|
|
3505
3543
|
if (name) {
|
|
@@ -3508,7 +3546,7 @@
|
|
|
3508
3546
|
this.load(chosenTheme.options);
|
|
3509
3547
|
}
|
|
3510
3548
|
} else {
|
|
3511
|
-
const mediaMatch = typeof matchMedia !== "undefined" && matchMedia("(prefers-color-scheme: dark)"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme =
|
|
3549
|
+
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");
|
|
3512
3550
|
if (defaultTheme) {
|
|
3513
3551
|
this.load(defaultTheme.options);
|
|
3514
3552
|
}
|
|
@@ -3521,13 +3559,26 @@
|
|
|
3521
3559
|
return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;
|
|
3522
3560
|
}
|
|
3523
3561
|
importPreset(preset) {
|
|
3524
|
-
this.load(
|
|
3562
|
+
this.load(Options_classPrivateFieldGet(this, _Options_engine, "f").plugins.getPreset(preset));
|
|
3525
3563
|
}
|
|
3526
3564
|
}
|
|
3527
|
-
_Options_instances = new WeakSet, _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {
|
|
3565
|
+
_Options_engine = new WeakMap, _Options_instances = new WeakSet, _Options_findDefaultTheme = function _Options_findDefaultTheme(mode) {
|
|
3528
3566
|
var _a;
|
|
3529
3567
|
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"));
|
|
3530
3568
|
};
|
|
3569
|
+
var Particle_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
3570
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3571
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
3572
|
+
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");
|
|
3573
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
3574
|
+
value;
|
|
3575
|
+
};
|
|
3576
|
+
var Particle_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
3577
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3578
|
+
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");
|
|
3579
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
3580
|
+
};
|
|
3581
|
+
var _Particle_engine;
|
|
3531
3582
|
const fixOutMode = data => {
|
|
3532
3583
|
if (isInArray(data.outMode, data.checkModes) || isInArray(data.outMode, data.checkModes)) {
|
|
3533
3584
|
if (data.coord > data.maxCoord - data.radius * 2) {
|
|
@@ -3538,11 +3589,13 @@
|
|
|
3538
3589
|
}
|
|
3539
3590
|
};
|
|
3540
3591
|
class Particle_Particle {
|
|
3541
|
-
constructor(id, container, position, overrideOptions, group) {
|
|
3592
|
+
constructor(engine, id, container, position, overrideOptions, group) {
|
|
3542
3593
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
3543
3594
|
this.id = id;
|
|
3544
3595
|
this.container = container;
|
|
3545
3596
|
this.group = group;
|
|
3597
|
+
_Particle_engine.set(this, void 0);
|
|
3598
|
+
Particle_classPrivateFieldSet(this, _Particle_engine, engine, "f");
|
|
3546
3599
|
this.fill = true;
|
|
3547
3600
|
this.close = true;
|
|
3548
3601
|
this.lastPathTime = 0;
|
|
@@ -3636,7 +3689,7 @@
|
|
|
3636
3689
|
this.sides = 24;
|
|
3637
3690
|
let drawer = container.drawers.get(this.shape);
|
|
3638
3691
|
if (!drawer) {
|
|
3639
|
-
drawer =
|
|
3692
|
+
drawer = Particle_classPrivateFieldGet(this, _Particle_engine, "f").plugins.getShapeDrawer(this.shape);
|
|
3640
3693
|
if (drawer) {
|
|
3641
3694
|
container.drawers.set(this.shape, drawer);
|
|
3642
3695
|
}
|
|
@@ -3876,9 +3929,25 @@
|
|
|
3876
3929
|
return life;
|
|
3877
3930
|
}
|
|
3878
3931
|
}
|
|
3932
|
+
_Particle_engine = new WeakMap;
|
|
3933
|
+
var Particles_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
3934
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3935
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
3936
|
+
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");
|
|
3937
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
3938
|
+
value;
|
|
3939
|
+
};
|
|
3940
|
+
var Particles_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
3941
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3942
|
+
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");
|
|
3943
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
3944
|
+
};
|
|
3945
|
+
var _Particles_engine;
|
|
3879
3946
|
class Particles_Particles {
|
|
3880
|
-
constructor(container) {
|
|
3947
|
+
constructor(engine, container) {
|
|
3881
3948
|
this.container = container;
|
|
3949
|
+
_Particles_engine.set(this, void 0);
|
|
3950
|
+
Particles_classPrivateFieldSet(this, _Particles_engine, engine, "f");
|
|
3882
3951
|
this.nextId = 0;
|
|
3883
3952
|
this.array = [];
|
|
3884
3953
|
this.zArray = [];
|
|
@@ -3890,11 +3959,11 @@
|
|
|
3890
3959
|
links: new Map,
|
|
3891
3960
|
triangles: new Map
|
|
3892
3961
|
};
|
|
3893
|
-
this.interactionManager = new InteractionManager(container);
|
|
3962
|
+
this.interactionManager = new InteractionManager(Particles_classPrivateFieldGet(this, _Particles_engine, "f"), container);
|
|
3894
3963
|
const canvasSize = this.container.canvas.size;
|
|
3895
3964
|
this.linksColors = new Map;
|
|
3896
3965
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
3897
|
-
this.updaters =
|
|
3966
|
+
this.updaters = Particles_classPrivateFieldGet(this, _Particles_engine, "f").plugins.getUpdaters(container, true);
|
|
3898
3967
|
}
|
|
3899
3968
|
get count() {
|
|
3900
3969
|
return this.array.length;
|
|
@@ -3908,7 +3977,7 @@
|
|
|
3908
3977
|
this.freqs.links = new Map;
|
|
3909
3978
|
this.freqs.triangles = new Map;
|
|
3910
3979
|
let handled = false;
|
|
3911
|
-
this.updaters =
|
|
3980
|
+
this.updaters = Particles_classPrivateFieldGet(this, _Particles_engine, "f").plugins.getUpdaters(container, true);
|
|
3912
3981
|
this.interactionManager.init();
|
|
3913
3982
|
for (const [, plugin] of container.plugins) {
|
|
3914
3983
|
if (plugin.particlesInitialization !== undefined) {
|
|
@@ -4155,7 +4224,7 @@
|
|
|
4155
4224
|
}
|
|
4156
4225
|
pushParticle(position, overrideOptions, group, initializer) {
|
|
4157
4226
|
try {
|
|
4158
|
-
const particle = new Particle(this.nextId, this.container, position, overrideOptions, group);
|
|
4227
|
+
const particle = new Particle(Particles_classPrivateFieldGet(this, _Particles_engine, "f"), this.nextId, this.container, position, overrideOptions, group);
|
|
4159
4228
|
let canAdd = true;
|
|
4160
4229
|
if (initializer) {
|
|
4161
4230
|
canAdd = initializer(particle);
|
|
@@ -4173,6 +4242,7 @@
|
|
|
4173
4242
|
}
|
|
4174
4243
|
}
|
|
4175
4244
|
}
|
|
4245
|
+
_Particles_engine = new WeakMap;
|
|
4176
4246
|
class Retina_Retina {
|
|
4177
4247
|
constructor(container) {
|
|
4178
4248
|
this.container = container;
|
|
@@ -4260,9 +4330,24 @@
|
|
|
4260
4330
|
}
|
|
4261
4331
|
}
|
|
4262
4332
|
}
|
|
4333
|
+
var Container_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
4334
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4335
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4336
|
+
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");
|
|
4337
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
4338
|
+
value;
|
|
4339
|
+
};
|
|
4340
|
+
var Container_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
4341
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4342
|
+
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");
|
|
4343
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4344
|
+
};
|
|
4345
|
+
var _Container_engine;
|
|
4263
4346
|
class Container_Container {
|
|
4264
|
-
constructor(id, sourceOptions, ...presets) {
|
|
4347
|
+
constructor(engine, id, sourceOptions, ...presets) {
|
|
4265
4348
|
this.id = id;
|
|
4349
|
+
_Container_engine.set(this, void 0);
|
|
4350
|
+
Container_classPrivateFieldSet(this, _Container_engine, engine, "f");
|
|
4266
4351
|
this.fpsLimit = 120;
|
|
4267
4352
|
this.duration = 0;
|
|
4268
4353
|
this.lifeTime = 0;
|
|
@@ -4277,7 +4362,7 @@
|
|
|
4277
4362
|
this._initialSourceOptions = sourceOptions;
|
|
4278
4363
|
this.retina = new Retina(this);
|
|
4279
4364
|
this.canvas = new Canvas(this);
|
|
4280
|
-
this.particles = new Particles(this);
|
|
4365
|
+
this.particles = new Particles(Container_classPrivateFieldGet(this, _Container_engine, "f"), this);
|
|
4281
4366
|
this.drawer = new FrameManager(this);
|
|
4282
4367
|
this.presets = presets;
|
|
4283
4368
|
this.pathGenerator = {
|
|
@@ -4306,8 +4391,8 @@
|
|
|
4306
4391
|
this.plugins = new Map;
|
|
4307
4392
|
this.drawers = new Map;
|
|
4308
4393
|
this.density = 1;
|
|
4309
|
-
this._options = new Options;
|
|
4310
|
-
this.actualOptions = new Options;
|
|
4394
|
+
this._options = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
4395
|
+
this.actualOptions = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
4311
4396
|
this.eventListeners = new EventListeners(this);
|
|
4312
4397
|
if (typeof IntersectionObserver !== "undefined" && IntersectionObserver) {
|
|
4313
4398
|
this.intersectionObserver = new IntersectionObserver((entries => this.intersectionManager(entries)));
|
|
@@ -4422,7 +4507,7 @@
|
|
|
4422
4507
|
return this.start();
|
|
4423
4508
|
}
|
|
4424
4509
|
reset() {
|
|
4425
|
-
this._options = new Options;
|
|
4510
|
+
this._options = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
4426
4511
|
return this.refresh();
|
|
4427
4512
|
}
|
|
4428
4513
|
stop() {
|
|
@@ -4563,20 +4648,20 @@
|
|
|
4563
4648
|
return false;
|
|
4564
4649
|
}
|
|
4565
4650
|
async init() {
|
|
4566
|
-
this._options = new Options;
|
|
4651
|
+
this._options = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
4567
4652
|
for (const preset of this.presets) {
|
|
4568
|
-
this._options.load(
|
|
4653
|
+
this._options.load(Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getPreset(preset));
|
|
4569
4654
|
}
|
|
4570
|
-
const shapes =
|
|
4655
|
+
const shapes = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getSupportedShapes();
|
|
4571
4656
|
for (const type of shapes) {
|
|
4572
|
-
const drawer =
|
|
4657
|
+
const drawer = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getShapeDrawer(type);
|
|
4573
4658
|
if (drawer) {
|
|
4574
4659
|
this.drawers.set(type, drawer);
|
|
4575
4660
|
}
|
|
4576
4661
|
}
|
|
4577
4662
|
this._options.load(this._initialSourceOptions);
|
|
4578
4663
|
this._options.load(this._sourceOptions);
|
|
4579
|
-
this.actualOptions = new Options;
|
|
4664
|
+
this.actualOptions = new Options(Container_classPrivateFieldGet(this, _Container_engine, "f"));
|
|
4580
4665
|
this.actualOptions.load(this._options);
|
|
4581
4666
|
this.retina.init();
|
|
4582
4667
|
this.canvas.init();
|
|
@@ -4587,7 +4672,7 @@
|
|
|
4587
4672
|
this.duration = getRangeValue(this.actualOptions.duration);
|
|
4588
4673
|
this.lifeTime = 0;
|
|
4589
4674
|
this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;
|
|
4590
|
-
const availablePlugins =
|
|
4675
|
+
const availablePlugins = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getAvailablePlugins(this);
|
|
4591
4676
|
for (const [id, plugin] of availablePlugins) {
|
|
4592
4677
|
this.plugins.set(id, plugin);
|
|
4593
4678
|
}
|
|
@@ -4605,7 +4690,7 @@
|
|
|
4605
4690
|
}
|
|
4606
4691
|
const pathOptions = this.actualOptions.particles.move.path;
|
|
4607
4692
|
if (pathOptions.generator) {
|
|
4608
|
-
const customGenerator =
|
|
4693
|
+
const customGenerator = Container_classPrivateFieldGet(this, _Container_engine, "f").plugins.getPathGenerator(pathOptions.generator);
|
|
4609
4694
|
if (customGenerator) {
|
|
4610
4695
|
if (customGenerator.init) {
|
|
4611
4696
|
this.pathGenerator.init = customGenerator.init;
|
|
@@ -4642,24 +4727,41 @@
|
|
|
4642
4727
|
}
|
|
4643
4728
|
}
|
|
4644
4729
|
}
|
|
4645
|
-
|
|
4730
|
+
_Container_engine = new WeakMap;
|
|
4731
|
+
var Loader_classPrivateFieldSet = undefined && undefined.__classPrivateFieldSet || function(receiver, state, value, kind, f) {
|
|
4732
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4733
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4734
|
+
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");
|
|
4735
|
+
return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value),
|
|
4736
|
+
value;
|
|
4737
|
+
};
|
|
4738
|
+
var Loader_classPrivateFieldGet = undefined && undefined.__classPrivateFieldGet || function(receiver, state, kind, f) {
|
|
4739
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4740
|
+
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");
|
|
4741
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
4742
|
+
};
|
|
4743
|
+
var _Loader_engine;
|
|
4646
4744
|
function fetchError(statusCode) {
|
|
4647
4745
|
console.error(`Error tsParticles - fetch status: ${statusCode}`);
|
|
4648
4746
|
console.error("Error tsParticles - File config not found");
|
|
4649
4747
|
}
|
|
4650
4748
|
class Loader {
|
|
4651
|
-
|
|
4652
|
-
|
|
4749
|
+
constructor(engine) {
|
|
4750
|
+
_Loader_engine.set(this, void 0);
|
|
4751
|
+
Loader_classPrivateFieldSet(this, _Loader_engine, engine, "f");
|
|
4752
|
+
}
|
|
4753
|
+
dom() {
|
|
4754
|
+
return Loader_classPrivateFieldGet(this, _Loader_engine, "f").domArray;
|
|
4653
4755
|
}
|
|
4654
|
-
|
|
4655
|
-
const dom =
|
|
4756
|
+
domItem(index) {
|
|
4757
|
+
const dom = this.dom();
|
|
4656
4758
|
const item = dom[index];
|
|
4657
4759
|
if (item && !item.destroyed) {
|
|
4658
4760
|
return item;
|
|
4659
4761
|
}
|
|
4660
4762
|
dom.splice(index, 1);
|
|
4661
4763
|
}
|
|
4662
|
-
|
|
4764
|
+
async loadOptions(params) {
|
|
4663
4765
|
var _a, _b, _c;
|
|
4664
4766
|
const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(Math.random() * 1e4)}`;
|
|
4665
4767
|
const {options: options, index: index} = params;
|
|
@@ -4670,10 +4772,10 @@
|
|
|
4670
4772
|
(_c = document.querySelector("body")) === null || _c === void 0 ? void 0 : _c.append(domContainer);
|
|
4671
4773
|
}
|
|
4672
4774
|
const currentOptions = options instanceof Array ? itemFromArray(options, index) : options;
|
|
4673
|
-
const dom =
|
|
4775
|
+
const dom = this.dom();
|
|
4674
4776
|
const oldIndex = dom.findIndex((v => v.id === tagId));
|
|
4675
4777
|
if (oldIndex >= 0) {
|
|
4676
|
-
const old =
|
|
4778
|
+
const old = this.domItem(oldIndex);
|
|
4677
4779
|
if (old && !old.destroyed) {
|
|
4678
4780
|
old.destroy();
|
|
4679
4781
|
dom.splice(oldIndex, 1);
|
|
@@ -4696,7 +4798,7 @@
|
|
|
4696
4798
|
domContainer.appendChild(canvasEl);
|
|
4697
4799
|
}
|
|
4698
4800
|
}
|
|
4699
|
-
const newItem = new Container(tagId, currentOptions);
|
|
4801
|
+
const newItem = new Container(Loader_classPrivateFieldGet(this, _Loader_engine, "f"), tagId, currentOptions);
|
|
4700
4802
|
if (oldIndex >= 0) {
|
|
4701
4803
|
dom.splice(oldIndex, 0, newItem);
|
|
4702
4804
|
} else {
|
|
@@ -4706,7 +4808,7 @@
|
|
|
4706
4808
|
await newItem.start();
|
|
4707
4809
|
return newItem;
|
|
4708
4810
|
}
|
|
4709
|
-
|
|
4811
|
+
async loadRemoteOptions(params) {
|
|
4710
4812
|
const {url: jsonUrl, index: index} = params;
|
|
4711
4813
|
const url = jsonUrl instanceof Array ? itemFromArray(jsonUrl, index) : jsonUrl;
|
|
4712
4814
|
if (!url) {
|
|
@@ -4718,14 +4820,14 @@
|
|
|
4718
4820
|
return;
|
|
4719
4821
|
}
|
|
4720
4822
|
const data = await response.json();
|
|
4721
|
-
return
|
|
4823
|
+
return this.loadOptions({
|
|
4722
4824
|
tagId: params.tagId,
|
|
4723
4825
|
element: params.element,
|
|
4724
4826
|
index: index,
|
|
4725
4827
|
options: data
|
|
4726
4828
|
});
|
|
4727
4829
|
}
|
|
4728
|
-
|
|
4830
|
+
load(tagId, options, index) {
|
|
4729
4831
|
const params = {
|
|
4730
4832
|
index: index
|
|
4731
4833
|
};
|
|
@@ -4741,7 +4843,7 @@
|
|
|
4741
4843
|
}
|
|
4742
4844
|
return this.loadOptions(params);
|
|
4743
4845
|
}
|
|
4744
|
-
|
|
4846
|
+
async set(id, domContainer, options, index) {
|
|
4745
4847
|
const params = {
|
|
4746
4848
|
index: index
|
|
4747
4849
|
};
|
|
@@ -4762,7 +4864,7 @@
|
|
|
4762
4864
|
}
|
|
4763
4865
|
return this.loadOptions(params);
|
|
4764
4866
|
}
|
|
4765
|
-
|
|
4867
|
+
async loadJSON(tagId, jsonUrl, index) {
|
|
4766
4868
|
let url, id;
|
|
4767
4869
|
if (typeof jsonUrl === "number" || jsonUrl === undefined) {
|
|
4768
4870
|
url = tagId;
|
|
@@ -4770,13 +4872,13 @@
|
|
|
4770
4872
|
id = tagId;
|
|
4771
4873
|
url = jsonUrl;
|
|
4772
4874
|
}
|
|
4773
|
-
return
|
|
4875
|
+
return this.loadRemoteOptions({
|
|
4774
4876
|
tagId: id,
|
|
4775
4877
|
url: url,
|
|
4776
4878
|
index: index
|
|
4777
4879
|
});
|
|
4778
4880
|
}
|
|
4779
|
-
|
|
4881
|
+
async setJSON(id, domContainer, jsonUrl, index) {
|
|
4780
4882
|
let url, newId, newIndex, element;
|
|
4781
4883
|
if (id instanceof HTMLElement) {
|
|
4782
4884
|
element = id;
|
|
@@ -4788,15 +4890,15 @@
|
|
|
4788
4890
|
url = jsonUrl;
|
|
4789
4891
|
newIndex = index;
|
|
4790
4892
|
}
|
|
4791
|
-
return
|
|
4893
|
+
return this.loadRemoteOptions({
|
|
4792
4894
|
tagId: newId,
|
|
4793
4895
|
url: url,
|
|
4794
4896
|
index: newIndex,
|
|
4795
4897
|
element: element
|
|
4796
4898
|
});
|
|
4797
4899
|
}
|
|
4798
|
-
|
|
4799
|
-
const dom =
|
|
4900
|
+
setOnClickHandler(callback) {
|
|
4901
|
+
const dom = this.dom();
|
|
4800
4902
|
if (dom.length === 0) {
|
|
4801
4903
|
throw new Error("Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()");
|
|
4802
4904
|
}
|
|
@@ -4805,6 +4907,7 @@
|
|
|
4805
4907
|
}
|
|
4806
4908
|
}
|
|
4807
4909
|
}
|
|
4910
|
+
_Loader_engine = new WeakMap;
|
|
4808
4911
|
class TrailMaker extends ExternalInteractorBase {
|
|
4809
4912
|
constructor(container) {
|
|
4810
4913
|
super(container);
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.
|
|
2
|
-
!function(t
|
|
1
|
+
/*! tsParticles v1.40.0 by Matteo Bruni */
|
|
2
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var i in o)("object"==typeof exports?exports:e)[i]=o[i]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var i in o)e.o(o,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:o[i]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function o(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}e.r(t),e.d(t,{loadExternalTrailInteraction:function(){return a}});class i{}i.generatedAttribute="generated",i.randomColorValue="random",i.midColorValue="mid",i.touchEndEvent="touchend",i.mouseDownEvent="mousedown",i.mouseUpEvent="mouseup",i.mouseMoveEvent="mousemove",i.touchStartEvent="touchstart",i.touchMoveEvent="touchmove",i.mouseLeaveEvent="mouseleave",i.mouseOutEvent="mouseout",i.touchCancelEvent="touchcancel",i.resizeEvent="resize",i.visibilityChangeEvent="visibilitychange",i.noPolygonDataLoaded="No polygon data loaded.",i.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class n extends class{constructor(e){this.container=e,this.type=0}}{constructor(e){super(e),this.delay=0}interact(e){var t,o,i,n;if(!this.container.retina.reduceFactor)return;const a=this.container,r=a.actualOptions.interactivity.modes.trail,s=1e3*r.delay/this.container.retina.reduceFactor;if(this.delay<s&&(this.delay+=e.value),this.delay<s)return;let u=!0;r.pauseOnStop&&(a.interactivity.mouse.position===this.lastPosition||(null===(t=a.interactivity.mouse.position)||void 0===t?void 0:t.x)===(null===(o=this.lastPosition)||void 0===o?void 0:o.x)&&(null===(i=a.interactivity.mouse.position)||void 0===i?void 0:i.y)===(null===(n=this.lastPosition)||void 0===n?void 0:n.y))&&(u=!1),a.interactivity.mouse.position?this.lastPosition={x:a.interactivity.mouse.position.x,y:a.interactivity.mouse.position.y}:delete this.lastPosition,u&&a.particles.push(r.quantity,a.interactivity.mouse,r.particles),this.delay-=s}isEnabled(){const e=this.container,t=e.actualOptions,i=e.interactivity.mouse,n=t.interactivity.events;return i.clicking&&i.inside&&!!i.position&&o("trail",n.onClick.mode)||i.inside&&!!i.position&&o("trail",n.onHover.mode)}reset(){}}async function a(e){await e.addInteractor("externalTrail",(e=>new n(e)))}return t}()}));
|