@tsparticles/all 4.0.0-beta.15 → 4.0.0-beta.17
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/browser/index.js +1 -1
- package/browser/index.lazy.js +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.lazy.js +1 -1
- package/esm/index.js +1 -1
- package/esm/index.lazy.js +1 -1
- package/package.json +79 -79
- package/report.html +1 -1
- package/tsparticles.all.bundle.js +568 -311
- package/tsparticles.all.bundle.min.js +1 -1
- package/tsparticles.all.js +2 -2
- package/tsparticles.all.min.js +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(g){g.__tsParticlesInternals=g.__tsParticlesInternals||{};g.__tsParticlesInternals.bundles=g.__tsParticlesInternals.bundles||{};g.__tsParticlesInternals.effects=g.__tsParticlesInternals.effects||{};g.__tsParticlesInternals.engine=g.__tsParticlesInternals.engine||{};g.__tsParticlesInternals.interactions=g.__tsParticlesInternals.interactions||{};g.__tsParticlesInternals.palettes=g.__tsParticlesInternals.palettes||{};g.__tsParticlesInternals.paths=g.__tsParticlesInternals.paths||{};g.__tsParticlesInternals.plugins=g.__tsParticlesInternals.plugins||{};g.__tsParticlesInternals.plugins=g.__tsParticlesInternals.plugins||{};g.__tsParticlesInternals.plugins.emittersShapes=g.__tsParticlesInternals.plugins.emittersShapes||{};g.__tsParticlesInternals.presets=g.__tsParticlesInternals.presets||{};g.__tsParticlesInternals.shapes=g.__tsParticlesInternals.shapes||{};g.__tsParticlesInternals.updaters=g.__tsParticlesInternals.updaters||{};g.__tsParticlesInternals.utils=g.__tsParticlesInternals.utils||{};g.__tsParticlesInternals.canvas=g.__tsParticlesInternals.canvas||{};g.__tsParticlesInternals.canvas=g.__tsParticlesInternals.canvas||{};g.__tsParticlesInternals.canvas.utils=g.__tsParticlesInternals.canvas.utils||{};g.__tsParticlesInternals.path=g.__tsParticlesInternals.path||{};g.__tsParticlesInternals.path=g.__tsParticlesInternals.path||{};g.__tsParticlesInternals.path.utils=g.__tsParticlesInternals.path.utils||{};var __tsProxyFactory=typeof Proxy!=="undefined"?function(obj){return new Proxy(obj,{get:function(target,key){if(!(key in target)){target[key]={};}return target[key];}});}:function(obj){return obj;};g.__tsParticlesInternals.bundles=__tsProxyFactory(g.__tsParticlesInternals.bundles);g.__tsParticlesInternals.effects=__tsProxyFactory(g.__tsParticlesInternals.effects);g.__tsParticlesInternals.interactions=__tsProxyFactory(g.__tsParticlesInternals.interactions);g.__tsParticlesInternals.palettes=__tsProxyFactory(g.__tsParticlesInternals.palettes);g.__tsParticlesInternals.paths=__tsProxyFactory(g.__tsParticlesInternals.paths);g.__tsParticlesInternals.plugins=__tsProxyFactory(g.__tsParticlesInternals.plugins);g.__tsParticlesInternals.plugins.emittersShapes=__tsProxyFactory(g.__tsParticlesInternals.plugins.emittersShapes);g.__tsParticlesInternals.presets=__tsProxyFactory(g.__tsParticlesInternals.presets);g.__tsParticlesInternals.shapes=__tsProxyFactory(g.__tsParticlesInternals.shapes);g.__tsParticlesInternals.updaters=__tsProxyFactory(g.__tsParticlesInternals.updaters);g.__tsParticlesInternals.utils=__tsProxyFactory(g.__tsParticlesInternals.utils);g.__tsParticlesInternals.canvas=__tsProxyFactory(g.__tsParticlesInternals.canvas);g.__tsParticlesInternals.path=__tsProxyFactory(g.__tsParticlesInternals.path);g.tsparticlesInternalExports=g.tsparticlesInternalExports||{};})(typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:this);
|
|
2
|
-
/* tsParticles v4.0.0-beta.
|
|
2
|
+
/* tsParticles v4.0.0-beta.17 */
|
|
3
3
|
(function (global, factory) {
|
|
4
4
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
5
5
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
@@ -1081,7 +1081,7 @@
|
|
|
1081
1081
|
}
|
|
1082
1082
|
}
|
|
1083
1083
|
else {
|
|
1084
|
-
const existingCanvases = domContainer.getElementsByTagName(canvasTag), foundCanvas = existingCanvases
|
|
1084
|
+
const existingCanvases = domContainer.getElementsByTagName(canvasTag), foundCanvas = existingCanvases.item(canvasFirstIndex);
|
|
1085
1085
|
if (foundCanvas) {
|
|
1086
1086
|
canvasEl = foundCanvas;
|
|
1087
1087
|
canvasEl.dataset[generatedAttribute] = generatedFalse;
|
|
@@ -1118,7 +1118,7 @@
|
|
|
1118
1118
|
return this._domArray;
|
|
1119
1119
|
}
|
|
1120
1120
|
get version() {
|
|
1121
|
-
return "4.0.0-beta.
|
|
1121
|
+
return "4.0.0-beta.17";
|
|
1122
1122
|
}
|
|
1123
1123
|
addEventListener(type, listener) {
|
|
1124
1124
|
this._eventDispatcher.addEventListener(type, listener);
|
|
@@ -1149,7 +1149,11 @@
|
|
|
1149
1149
|
}
|
|
1150
1150
|
async load(params) {
|
|
1151
1151
|
await this.init();
|
|
1152
|
-
|
|
1152
|
+
let domSourceElement;
|
|
1153
|
+
if (typeof HTMLElement !== "undefined" && params.element instanceof HTMLElement) {
|
|
1154
|
+
domSourceElement = params.element;
|
|
1155
|
+
}
|
|
1156
|
+
const { Container } = await Promise.resolve().then(function () { return Container$1; }), id = params.id ?? domSourceElement?.id ?? `tsparticles${Math.floor(getRandom() * loadRandomFactor).toString()}`, { index, url } = params, options = url ? await getDataFromUrl({ fallback: params.options, url, index }) : params.options, currentOptions = itemFromSingleOrMultiple(options, index), { items } = this, oldIndex = items.findIndex(v => v.id.description === id), newItem = new Container({
|
|
1153
1157
|
dispatchCallback: (eventType, args) => {
|
|
1154
1158
|
this.dispatchEvent(eventType, args);
|
|
1155
1159
|
},
|
|
@@ -1176,8 +1180,10 @@
|
|
|
1176
1180
|
else {
|
|
1177
1181
|
items.push(newItem);
|
|
1178
1182
|
}
|
|
1179
|
-
const
|
|
1180
|
-
|
|
1183
|
+
const sourceCanvas = typeof OffscreenCanvas !== "undefined" && params.element instanceof OffscreenCanvas
|
|
1184
|
+
? params.element
|
|
1185
|
+
: getCanvasFromContainer(getDomContainer(id, domSourceElement));
|
|
1186
|
+
newItem.canvas.loadCanvas(sourceCanvas);
|
|
1181
1187
|
await newItem.start();
|
|
1182
1188
|
return newItem;
|
|
1183
1189
|
}
|
|
@@ -3031,7 +3037,7 @@
|
|
|
3031
3037
|
}
|
|
3032
3038
|
|
|
3033
3039
|
async function loadArrowShape(engine) {
|
|
3034
|
-
engine.checkVersion("4.0.0-beta.
|
|
3040
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3035
3041
|
await engine.pluginManager.register(e => {
|
|
3036
3042
|
e.pluginManager.addShape(["arrow"], () => Promise.resolve(new ArrowDrawer()));
|
|
3037
3043
|
});
|
|
@@ -3112,7 +3118,7 @@
|
|
|
3112
3118
|
}
|
|
3113
3119
|
|
|
3114
3120
|
async function loadBackgroundMaskPlugin(engine) {
|
|
3115
|
-
engine.checkVersion("4.0.0-beta.
|
|
3121
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3116
3122
|
await engine.pluginManager.register(e => {
|
|
3117
3123
|
e.pluginManager.addPlugin(new BackgroundMaskPlugin(e.pluginManager));
|
|
3118
3124
|
});
|
|
@@ -3164,7 +3170,7 @@
|
|
|
3164
3170
|
}
|
|
3165
3171
|
|
|
3166
3172
|
async function loadBlendPlugin(engine) {
|
|
3167
|
-
engine.checkVersion("4.0.0-beta.
|
|
3173
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3168
3174
|
await engine.pluginManager.register(e => {
|
|
3169
3175
|
e.pluginManager.addPlugin(new BlendPlugin());
|
|
3170
3176
|
});
|
|
@@ -3188,7 +3194,7 @@
|
|
|
3188
3194
|
}
|
|
3189
3195
|
|
|
3190
3196
|
async function loadMovePlugin(engine) {
|
|
3191
|
-
engine.checkVersion("4.0.0-beta.
|
|
3197
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3192
3198
|
await engine.pluginManager.register(e => {
|
|
3193
3199
|
const moveEngine = e, movePluginManager = moveEngine.pluginManager;
|
|
3194
3200
|
movePluginManager.initializers.pathGenerators ??= new Map();
|
|
@@ -3289,7 +3295,7 @@
|
|
|
3289
3295
|
|
|
3290
3296
|
const branchingPathName = "branchesPathGenerator";
|
|
3291
3297
|
async function loadBranchesPath(engine) {
|
|
3292
|
-
engine.checkVersion("4.0.0-beta.
|
|
3298
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3293
3299
|
await engine.pluginManager.register((e) => {
|
|
3294
3300
|
ensureBaseMoverLoaded(e);
|
|
3295
3301
|
e.pluginManager.addPathGenerator?.(branchingPathName, container => {
|
|
@@ -3338,7 +3344,7 @@
|
|
|
3338
3344
|
|
|
3339
3345
|
const brownianPathName = "brownianPathGenerator";
|
|
3340
3346
|
async function loadBrownianPath(engine) {
|
|
3341
|
-
engine.checkVersion("4.0.0-beta.
|
|
3347
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3342
3348
|
await engine.pluginManager.register((e) => {
|
|
3343
3349
|
ensureBaseMoverLoaded(e);
|
|
3344
3350
|
e.pluginManager.addPathGenerator?.(brownianPathName, container => {
|
|
@@ -3360,7 +3366,7 @@
|
|
|
3360
3366
|
}
|
|
3361
3367
|
|
|
3362
3368
|
async function loadBubbleEffect(engine) {
|
|
3363
|
-
engine.checkVersion("4.0.0-beta.
|
|
3369
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3364
3370
|
await engine.pluginManager.register(e => {
|
|
3365
3371
|
e.pluginManager.addEffect("bubble", () => {
|
|
3366
3372
|
return Promise.resolve(new BubbleDrawer());
|
|
@@ -3597,7 +3603,7 @@
|
|
|
3597
3603
|
}
|
|
3598
3604
|
|
|
3599
3605
|
async function loadCanvasMaskPlugin(engine) {
|
|
3600
|
-
engine.checkVersion("4.0.0-beta.
|
|
3606
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3601
3607
|
await engine.pluginManager.register(e => {
|
|
3602
3608
|
e.pluginManager.addPlugin(new CanvasMaskPlugin());
|
|
3603
3609
|
});
|
|
@@ -3886,7 +3892,7 @@
|
|
|
3886
3892
|
}
|
|
3887
3893
|
|
|
3888
3894
|
async function loadClubsSuitShape(engine) {
|
|
3889
|
-
engine.checkVersion("4.0.0-beta.
|
|
3895
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3890
3896
|
await engine.pluginManager.register(e => {
|
|
3891
3897
|
e.pluginManager.addShape(["club", "clubs"], () => Promise.resolve(new ClubDrawer()));
|
|
3892
3898
|
});
|
|
@@ -3900,7 +3906,7 @@
|
|
|
3900
3906
|
}
|
|
3901
3907
|
|
|
3902
3908
|
async function loadDiamondsSuitShape(engine) {
|
|
3903
|
-
engine.checkVersion("4.0.0-beta.
|
|
3909
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3904
3910
|
await engine.pluginManager.register(e => {
|
|
3905
3911
|
e.pluginManager.addShape(["diamond", "diamonds"], () => Promise.resolve(new DiamondDrawer()));
|
|
3906
3912
|
});
|
|
@@ -3914,7 +3920,7 @@
|
|
|
3914
3920
|
};
|
|
3915
3921
|
|
|
3916
3922
|
async function loadHeartsSuitShape(engine) {
|
|
3917
|
-
engine.checkVersion("4.0.0-beta.
|
|
3923
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3918
3924
|
await engine.pluginManager.register(e => {
|
|
3919
3925
|
e.pluginManager.addShape(["heart", "hearts"], () => Promise.resolve(new HeartDrawer$1()));
|
|
3920
3926
|
});
|
|
@@ -3928,14 +3934,14 @@
|
|
|
3928
3934
|
}
|
|
3929
3935
|
|
|
3930
3936
|
async function loadSpadesSuitShape(engine) {
|
|
3931
|
-
engine.checkVersion("4.0.0-beta.
|
|
3937
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3932
3938
|
await engine.pluginManager.register(e => {
|
|
3933
3939
|
e.pluginManager.addShape(["spade", "spades"], () => Promise.resolve(new SpadeDrawer()));
|
|
3934
3940
|
});
|
|
3935
3941
|
}
|
|
3936
3942
|
|
|
3937
3943
|
async function loadCardSuitsShape(engine) {
|
|
3938
|
-
engine.checkVersion("4.0.0-beta.
|
|
3944
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
3939
3945
|
await Promise.all([
|
|
3940
3946
|
loadClubsSuitShape(engine),
|
|
3941
3947
|
loadDiamondsSuitShape(engine),
|
|
@@ -3953,17 +3959,7 @@
|
|
|
3953
3959
|
const cacheKey = getCacheKey(radius, hdr, cardData), cardWidth = radius * cardWidthRatio, cardHeight = radius * cardHeightRatio, halfWidth = cardWidth * half$2, halfHeight = cardHeight * half$2;
|
|
3954
3960
|
let cachedData = cardsCache.get(cacheKey);
|
|
3955
3961
|
if (!cachedData) {
|
|
3956
|
-
|
|
3957
|
-
if (typeof OffscreenCanvas === "undefined") {
|
|
3958
|
-
cacheCanvas = safeDocument().createElement("canvas");
|
|
3959
|
-
cacheCanvas.width = cardWidth;
|
|
3960
|
-
cacheCanvas.height = cardHeight;
|
|
3961
|
-
cacheCtx = cacheCanvas.getContext("2d", canvasSettings);
|
|
3962
|
-
}
|
|
3963
|
-
else {
|
|
3964
|
-
cacheCanvas = new OffscreenCanvas(cardWidth, cardHeight);
|
|
3965
|
-
cacheCtx = cacheCanvas.getContext("2d", canvasSettings);
|
|
3966
|
-
}
|
|
3962
|
+
const cacheCanvas = new OffscreenCanvas(cardWidth, cardHeight), cacheCtx = cacheCanvas.getContext("2d", canvasSettings);
|
|
3967
3963
|
if (cacheCtx) {
|
|
3968
3964
|
cacheCtx.translate(halfWidth, halfHeight);
|
|
3969
3965
|
drawRoundedCardFront(cacheCtx, radius, cardData, hdr);
|
|
@@ -4066,14 +4062,14 @@
|
|
|
4066
4062
|
}
|
|
4067
4063
|
|
|
4068
4064
|
async function loadFullCardsShape(engine) {
|
|
4069
|
-
engine.checkVersion("4.0.0-beta.
|
|
4065
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
4070
4066
|
await engine.pluginManager.register(e => {
|
|
4071
4067
|
e.pluginManager.addShape(["card"], container => Promise.resolve(new CardDrawer(container)));
|
|
4072
4068
|
});
|
|
4073
4069
|
}
|
|
4074
4070
|
|
|
4075
4071
|
async function loadCardsShape(engine) {
|
|
4076
|
-
engine.checkVersion("4.0.0-beta.
|
|
4072
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
4077
4073
|
await Promise.all([
|
|
4078
4074
|
loadFullCardsShape(engine),
|
|
4079
4075
|
loadCardSuitsShape(engine),
|
|
@@ -4143,7 +4139,7 @@
|
|
|
4143
4139
|
}
|
|
4144
4140
|
|
|
4145
4141
|
async function loadCogShape(engine) {
|
|
4146
|
-
engine.checkVersion("4.0.0-beta.
|
|
4142
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
4147
4143
|
await engine.pluginManager.register(e => {
|
|
4148
4144
|
e.pluginManager.addShape(["cog"], () => Promise.resolve(new CogDrawer()));
|
|
4149
4145
|
});
|
|
@@ -7783,7 +7779,7 @@
|
|
|
7783
7779
|
|
|
7784
7780
|
const curlNoisePathName = "curlNoise";
|
|
7785
7781
|
async function loadCurlNoisePath(engine) {
|
|
7786
|
-
engine.checkVersion("4.0.0-beta.
|
|
7782
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
7787
7783
|
await engine.pluginManager.register((e) => {
|
|
7788
7784
|
ensureBaseMoverLoaded(e);
|
|
7789
7785
|
e.pluginManager.addPathGenerator?.(curlNoisePathName, container => {
|
|
@@ -7886,7 +7882,7 @@
|
|
|
7886
7882
|
|
|
7887
7883
|
const curvesPathName = "curvesPathGenerator";
|
|
7888
7884
|
async function loadCurvesPath(engine) {
|
|
7889
|
-
engine.checkVersion("4.0.0-beta.
|
|
7885
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
7890
7886
|
await engine.pluginManager.register((e) => {
|
|
7891
7887
|
ensureBaseMoverLoaded(e);
|
|
7892
7888
|
e.pluginManager.addPathGenerator?.(curvesPathName, container => {
|
|
@@ -7912,7 +7908,7 @@
|
|
|
7912
7908
|
});
|
|
7913
7909
|
|
|
7914
7910
|
async function loadEasingBackPlugin(engine) {
|
|
7915
|
-
engine.checkVersion("4.0.0-beta.
|
|
7911
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
7916
7912
|
await engine.pluginManager.register(e => {
|
|
7917
7913
|
for (const [easing, easingFn] of easingsFunctions$d) {
|
|
7918
7914
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -7943,7 +7939,7 @@
|
|
|
7943
7939
|
easingsFunctions$c.set(exports.EasingType.easeInOutBounce, value => value < 0.5 ? (1 - bounceOut(1 - value * 2)) / 2 : (1 + bounceOut(value * 2 - 1)) / 2);
|
|
7944
7940
|
|
|
7945
7941
|
async function loadEasingBouncePlugin(engine) {
|
|
7946
|
-
engine.checkVersion("4.0.0-beta.
|
|
7942
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
7947
7943
|
await engine.pluginManager.register(e => {
|
|
7948
7944
|
for (const [easing, easingFn] of easingsFunctions$c) {
|
|
7949
7945
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -7957,7 +7953,7 @@
|
|
|
7957
7953
|
easingsFunctions$b.set(exports.EasingType.easeInOutCirc, value => value < 0.5 ? (1 - Math.sqrt(1 - (2 * value) ** 2)) / 2 : (Math.sqrt(1 - (-2 * value + 2) ** 2) + 1) / 2);
|
|
7958
7954
|
|
|
7959
7955
|
async function loadEasingCircPlugin(engine) {
|
|
7960
|
-
engine.checkVersion("4.0.0-beta.
|
|
7956
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
7961
7957
|
await engine.pluginManager.register(e => {
|
|
7962
7958
|
for (const [easing, easingFn] of easingsFunctions$b) {
|
|
7963
7959
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -7971,7 +7967,7 @@
|
|
|
7971
7967
|
easingsFunctions$a.set(exports.EasingType.easeInOutCubic, value => value < 0.5 ? 4 * value ** 3 : 1 - (-2 * value + 2) ** 3 / 2);
|
|
7972
7968
|
|
|
7973
7969
|
async function loadEasingCubicPlugin(engine) {
|
|
7974
|
-
engine.checkVersion("4.0.0-beta.
|
|
7970
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
7975
7971
|
await engine.pluginManager.register(e => {
|
|
7976
7972
|
for (const [easing, easingFn] of easingsFunctions$a) {
|
|
7977
7973
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8004,7 +8000,7 @@
|
|
|
8004
8000
|
});
|
|
8005
8001
|
|
|
8006
8002
|
async function loadEasingElasticPlugin(engine) {
|
|
8007
|
-
engine.checkVersion("4.0.0-beta.
|
|
8003
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8008
8004
|
await engine.pluginManager.register(e => {
|
|
8009
8005
|
for (const [easing, easingFn] of easingsFunctions$9) {
|
|
8010
8006
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8028,7 +8024,7 @@
|
|
|
8028
8024
|
});
|
|
8029
8025
|
|
|
8030
8026
|
async function loadEasingExpoPlugin(engine) {
|
|
8031
|
-
engine.checkVersion("4.0.0-beta.
|
|
8027
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8032
8028
|
await engine.pluginManager.register(e => {
|
|
8033
8029
|
for (const [easing, easingFn] of easingsFunctions$8) {
|
|
8034
8030
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8042,7 +8038,7 @@
|
|
|
8042
8038
|
easingsFunctions$7.set(exports.EasingType.easeInOutGaussian, value => gaussian(value));
|
|
8043
8039
|
|
|
8044
8040
|
async function loadEasingGaussianPlugin(engine) {
|
|
8045
|
-
engine.checkVersion("4.0.0-beta.
|
|
8041
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8046
8042
|
await engine.pluginManager.register(e => {
|
|
8047
8043
|
for (const [easing, easingFn] of easingsFunctions$7) {
|
|
8048
8044
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8056,7 +8052,7 @@
|
|
|
8056
8052
|
easingsFunctions$6.set(exports.EasingType.easeInOutLinear, value => value);
|
|
8057
8053
|
|
|
8058
8054
|
async function loadEasingLinearPlugin(engine) {
|
|
8059
|
-
engine.checkVersion("4.0.0-beta.
|
|
8055
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8060
8056
|
await engine.pluginManager.register(e => {
|
|
8061
8057
|
for (const [easing, easingFn] of easingsFunctions$6) {
|
|
8062
8058
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8070,7 +8066,7 @@
|
|
|
8070
8066
|
easingsFunctions$5.set(exports.EasingType.easeInOutQuart, value => value < 0.5 ? 8 * value ** 4 : 1 - (-2 * value + 2) ** 4 / 2);
|
|
8071
8067
|
|
|
8072
8068
|
async function loadEasingQuartPlugin(engine) {
|
|
8073
|
-
engine.checkVersion("4.0.0-beta.
|
|
8069
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8074
8070
|
await engine.pluginManager.register(e => {
|
|
8075
8071
|
for (const [easing, easingFn] of easingsFunctions$5) {
|
|
8076
8072
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8084,7 +8080,7 @@
|
|
|
8084
8080
|
easingsFunctions$4.set(exports.EasingType.easeInOutQuint, value => value < 0.5 ? 16 * value ** 5 : 1 - (-2 * value + 2) ** 5 / 2);
|
|
8085
8081
|
|
|
8086
8082
|
async function loadEasingQuintPlugin(engine) {
|
|
8087
|
-
engine.checkVersion("4.0.0-beta.
|
|
8083
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8088
8084
|
await engine.pluginManager.register(e => {
|
|
8089
8085
|
for (const [easing, easingFn] of easingsFunctions$4) {
|
|
8090
8086
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8098,7 +8094,7 @@
|
|
|
8098
8094
|
easingsFunctions$3.set(exports.EasingType.easeInOutSigmoid, value => sigmoid(value));
|
|
8099
8095
|
|
|
8100
8096
|
async function loadEasingSigmoidPlugin(engine) {
|
|
8101
|
-
engine.checkVersion("4.0.0-beta.
|
|
8097
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8102
8098
|
await engine.pluginManager.register(e => {
|
|
8103
8099
|
for (const [easing, easingFn] of easingsFunctions$3) {
|
|
8104
8100
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8112,7 +8108,7 @@
|
|
|
8112
8108
|
easingsFunctions$2.set(exports.EasingType.easeInOutSine, value => -(Math.cos(Math.PI * value) - 1) / 2);
|
|
8113
8109
|
|
|
8114
8110
|
async function loadEasingSinePlugin(engine) {
|
|
8115
|
-
engine.checkVersion("4.0.0-beta.
|
|
8111
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8116
8112
|
await engine.pluginManager.register(e => {
|
|
8117
8113
|
for (const [easing, easingFn] of easingsFunctions$2) {
|
|
8118
8114
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8126,7 +8122,7 @@
|
|
|
8126
8122
|
easingsFunctions$1.set(exports.EasingType.easeInOutSmoothstep, value => smoothstep$1(value));
|
|
8127
8123
|
|
|
8128
8124
|
async function loadEasingSmoothstepPlugin(engine) {
|
|
8129
|
-
engine.checkVersion("4.0.0-beta.
|
|
8125
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8130
8126
|
await engine.pluginManager.register(e => {
|
|
8131
8127
|
for (const [easing, easingFn] of easingsFunctions$1) {
|
|
8132
8128
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -8395,7 +8391,7 @@
|
|
|
8395
8391
|
}
|
|
8396
8392
|
|
|
8397
8393
|
async function loadInteractivityPlugin(engine) {
|
|
8398
|
-
engine.checkVersion("4.0.0-beta.
|
|
8394
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8399
8395
|
await engine.pluginManager.register(e => {
|
|
8400
8396
|
const interactivityEngine = e, interactivityPluginManager = interactivityEngine.pluginManager;
|
|
8401
8397
|
interactivityPluginManager.addPlugin(new InteractivityPlugin(interactivityPluginManager));
|
|
@@ -8800,7 +8796,7 @@
|
|
|
8800
8796
|
})(EmitterClickMode || (EmitterClickMode = {}));
|
|
8801
8797
|
|
|
8802
8798
|
async function loadEmittersInteraction(engine) {
|
|
8803
|
-
engine.checkVersion("4.0.0-beta.
|
|
8799
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8804
8800
|
await engine.pluginManager.register(async (e) => {
|
|
8805
8801
|
const instancesManager = await getEmittersInstancesManager(e);
|
|
8806
8802
|
ensureInteractivityPluginLoaded(e);
|
|
@@ -8843,7 +8839,7 @@
|
|
|
8843
8839
|
}
|
|
8844
8840
|
|
|
8845
8841
|
async function loadEmittersPluginSimple(engine) {
|
|
8846
|
-
engine.checkVersion("4.0.0-beta.
|
|
8842
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
8847
8843
|
await engine.pluginManager.register(async (e) => {
|
|
8848
8844
|
const instancesManager = await getEmittersInstancesManager(e);
|
|
8849
8845
|
await addEmittersShapesManager(e);
|
|
@@ -9210,7 +9206,7 @@
|
|
|
9210
9206
|
}
|
|
9211
9207
|
|
|
9212
9208
|
async function loadEmittersShapeCanvas(engine) {
|
|
9213
|
-
engine.checkVersion("4.0.0-beta.
|
|
9209
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9214
9210
|
await engine.pluginManager.register((e) => {
|
|
9215
9211
|
ensureEmittersPluginLoaded(e);
|
|
9216
9212
|
e.pluginManager.addEmitterShapeGenerator?.("canvas", new EmittersCanvasShapeGenerator());
|
|
@@ -9350,7 +9346,7 @@
|
|
|
9350
9346
|
}
|
|
9351
9347
|
|
|
9352
9348
|
async function loadEmittersShapePath(engine) {
|
|
9353
|
-
engine.checkVersion("4.0.0-beta.
|
|
9349
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9354
9350
|
await engine.pluginManager.register((e) => {
|
|
9355
9351
|
ensureEmittersPluginLoaded(e);
|
|
9356
9352
|
e.pluginManager.addEmitterShapeGenerator?.("path", new EmittersPathShapeGenerator());
|
|
@@ -9481,7 +9477,7 @@
|
|
|
9481
9477
|
}
|
|
9482
9478
|
|
|
9483
9479
|
async function loadEmittersShapePolygon(engine) {
|
|
9484
|
-
engine.checkVersion("4.0.0-beta.
|
|
9480
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9485
9481
|
await engine.pluginManager.register((e) => {
|
|
9486
9482
|
ensureEmittersPluginLoaded(e);
|
|
9487
9483
|
e.pluginManager.addEmitterShapeGenerator?.("polygon", new EmittersPolygonShapeGenerator());
|
|
@@ -9502,7 +9498,7 @@
|
|
|
9502
9498
|
}
|
|
9503
9499
|
|
|
9504
9500
|
async function loadExportImagePlugin(engine) {
|
|
9505
|
-
engine.checkVersion("4.0.0-beta.
|
|
9501
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9506
9502
|
await engine.pluginManager.register(e => {
|
|
9507
9503
|
e.pluginManager.addPlugin(new ExportImagePlugin());
|
|
9508
9504
|
});
|
|
@@ -9522,7 +9518,7 @@
|
|
|
9522
9518
|
}
|
|
9523
9519
|
|
|
9524
9520
|
async function loadExportJSONPlugin(engine) {
|
|
9525
|
-
engine.checkVersion("4.0.0-beta.
|
|
9521
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9526
9522
|
await engine.pluginManager.register(e => {
|
|
9527
9523
|
e.pluginManager.addPlugin(new ExportJSONPlugin());
|
|
9528
9524
|
});
|
|
@@ -9542,7 +9538,7 @@
|
|
|
9542
9538
|
}
|
|
9543
9539
|
|
|
9544
9540
|
async function loadExportVideoPlugin(engine) {
|
|
9545
|
-
engine.checkVersion("4.0.0-beta.
|
|
9541
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9546
9542
|
await engine.pluginManager.register(e => {
|
|
9547
9543
|
e.pluginManager.addPlugin(new ExportVideoPlugin());
|
|
9548
9544
|
});
|
|
@@ -9720,7 +9716,7 @@
|
|
|
9720
9716
|
}
|
|
9721
9717
|
|
|
9722
9718
|
async function loadExternalCannonInteraction(engine) {
|
|
9723
|
-
engine.checkVersion("4.0.0-beta.
|
|
9719
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9724
9720
|
await engine.pluginManager.register((e) => {
|
|
9725
9721
|
ensureInteractivityPluginLoaded(e);
|
|
9726
9722
|
e.pluginManager.addInteractor?.("externalCannon", container => {
|
|
@@ -9863,7 +9859,7 @@
|
|
|
9863
9859
|
}
|
|
9864
9860
|
|
|
9865
9861
|
async function loadExternalParticleInteraction(engine) {
|
|
9866
|
-
engine.checkVersion("4.0.0-beta.
|
|
9862
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9867
9863
|
await engine.pluginManager.register((e) => {
|
|
9868
9864
|
ensureInteractivityPluginLoaded(e);
|
|
9869
9865
|
e.pluginManager.addInteractor?.("externalParticle", container => {
|
|
@@ -9911,7 +9907,7 @@
|
|
|
9911
9907
|
}
|
|
9912
9908
|
|
|
9913
9909
|
async function loadExternalPopInteraction(engine) {
|
|
9914
|
-
engine.checkVersion("4.0.0-beta.
|
|
9910
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9915
9911
|
await engine.pluginManager.register((e) => {
|
|
9916
9912
|
ensureInteractivityPluginLoaded(e);
|
|
9917
9913
|
e.pluginManager.addInteractor?.("externalPop", container => {
|
|
@@ -9952,7 +9948,7 @@
|
|
|
9952
9948
|
}
|
|
9953
9949
|
|
|
9954
9950
|
async function loadFilterEffect(engine) {
|
|
9955
|
-
engine.checkVersion("4.0.0-beta.
|
|
9951
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
9956
9952
|
await engine.pluginManager.register(e => {
|
|
9957
9953
|
e.pluginManager.addEffect("filter", () => {
|
|
9958
9954
|
return Promise.resolve(new FilterDrawer());
|
|
@@ -10234,7 +10230,7 @@
|
|
|
10234
10230
|
|
|
10235
10231
|
const fractalNoisePathName = "fractalNoise";
|
|
10236
10232
|
async function loadFractalNoisePath(engine) {
|
|
10237
|
-
engine.checkVersion("4.0.0-beta.
|
|
10233
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
10238
10234
|
await engine.pluginManager.register((e) => {
|
|
10239
10235
|
ensureBaseMoverLoaded(e);
|
|
10240
10236
|
e.pluginManager.addPathGenerator?.(fractalNoisePathName, container => {
|
|
@@ -10484,7 +10480,7 @@
|
|
|
10484
10480
|
}
|
|
10485
10481
|
|
|
10486
10482
|
async function loadAbsorbersInteraction(engine) {
|
|
10487
|
-
engine.checkVersion("4.0.0-beta.
|
|
10483
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
10488
10484
|
await engine.pluginManager.register(async (e) => {
|
|
10489
10485
|
const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
|
|
10490
10486
|
ensureInteractivityPluginLoaded(e);
|
|
@@ -10532,7 +10528,7 @@
|
|
|
10532
10528
|
}
|
|
10533
10529
|
|
|
10534
10530
|
async function loadAbsorbersPluginSimple(engine) {
|
|
10535
|
-
engine.checkVersion("4.0.0-beta.
|
|
10531
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
10536
10532
|
await engine.pluginManager.register(async (e) => {
|
|
10537
10533
|
const pluginManager = e.pluginManager, instancesManager = await getAbsorbersInstancesManager(e);
|
|
10538
10534
|
pluginManager.addPlugin(new AbsorbersPlugin(instancesManager));
|
|
@@ -10897,7 +10893,7 @@
|
|
|
10897
10893
|
}
|
|
10898
10894
|
|
|
10899
10895
|
async function loadDestroyUpdater(engine) {
|
|
10900
|
-
engine.checkVersion("4.0.0-beta.
|
|
10896
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
10901
10897
|
await engine.pluginManager.register(e => {
|
|
10902
10898
|
e.pluginManager.addParticleUpdater("destroy", container => {
|
|
10903
10899
|
return Promise.resolve(new DestroyUpdater(e.pluginManager, container));
|
|
@@ -10944,7 +10940,7 @@
|
|
|
10944
10940
|
}
|
|
10945
10941
|
|
|
10946
10942
|
async function loadEmittersShapeCircle(engine) {
|
|
10947
|
-
engine.checkVersion("4.0.0-beta.
|
|
10943
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
10948
10944
|
await engine.pluginManager.register((e) => {
|
|
10949
10945
|
ensureEmittersPluginLoaded(e);
|
|
10950
10946
|
e.pluginManager.addEmitterShapeGenerator?.("circle", new EmittersCircleShapeGenerator());
|
|
@@ -11025,7 +11021,7 @@
|
|
|
11025
11021
|
}
|
|
11026
11022
|
|
|
11027
11023
|
async function loadEmittersShapeSquare(engine) {
|
|
11028
|
-
engine.checkVersion("4.0.0-beta.
|
|
11024
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11029
11025
|
await engine.pluginManager.register((e) => {
|
|
11030
11026
|
ensureEmittersPluginLoaded(e);
|
|
11031
11027
|
e.pluginManager.addEmitterShapeGenerator?.("square", new EmittersSquareShapeGenerator());
|
|
@@ -11218,7 +11214,7 @@
|
|
|
11218
11214
|
}
|
|
11219
11215
|
|
|
11220
11216
|
async function loadExternalDragInteraction(engine) {
|
|
11221
|
-
engine.checkVersion("4.0.0-beta.
|
|
11217
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11222
11218
|
await engine.pluginManager.register((e) => {
|
|
11223
11219
|
ensureInteractivityPluginLoaded(e);
|
|
11224
11220
|
e.pluginManager.addInteractor?.("externalDrag", container => {
|
|
@@ -11422,7 +11418,7 @@
|
|
|
11422
11418
|
}
|
|
11423
11419
|
|
|
11424
11420
|
async function loadExternalTrailInteraction(engine) {
|
|
11425
|
-
engine.checkVersion("4.0.0-beta.
|
|
11421
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11426
11422
|
await engine.pluginManager.register((e) => {
|
|
11427
11423
|
ensureInteractivityPluginLoaded(e);
|
|
11428
11424
|
e.pluginManager.addInteractor?.("externalTrail", container => {
|
|
@@ -11582,7 +11578,7 @@
|
|
|
11582
11578
|
}
|
|
11583
11579
|
|
|
11584
11580
|
async function loadRollUpdater(engine) {
|
|
11585
|
-
engine.checkVersion("4.0.0-beta.
|
|
11581
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11586
11582
|
await engine.pluginManager.register(e => {
|
|
11587
11583
|
e.pluginManager.addParticleUpdater("roll", () => {
|
|
11588
11584
|
return Promise.resolve(new RollUpdater(e.pluginManager));
|
|
@@ -11621,7 +11617,7 @@
|
|
|
11621
11617
|
}
|
|
11622
11618
|
|
|
11623
11619
|
async function loadCircleShape(engine) {
|
|
11624
|
-
engine.checkVersion("4.0.0-beta.
|
|
11620
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11625
11621
|
await engine.pluginManager.register(e => {
|
|
11626
11622
|
e.pluginManager.addShape(["circle"], () => {
|
|
11627
11623
|
return Promise.resolve(new CircleDrawer());
|
|
@@ -11669,7 +11665,7 @@
|
|
|
11669
11665
|
}
|
|
11670
11666
|
|
|
11671
11667
|
async function loadHexColorPlugin(engine) {
|
|
11672
|
-
engine.checkVersion("4.0.0-beta.
|
|
11668
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11673
11669
|
await engine.pluginManager.register(e => {
|
|
11674
11670
|
e.pluginManager.addColorManager("hex", new HexColorManager());
|
|
11675
11671
|
});
|
|
@@ -11722,7 +11718,7 @@
|
|
|
11722
11718
|
}
|
|
11723
11719
|
|
|
11724
11720
|
async function loadHslColorPlugin(engine) {
|
|
11725
|
-
engine.checkVersion("4.0.0-beta.
|
|
11721
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11726
11722
|
await engine.pluginManager.register(e => {
|
|
11727
11723
|
e.pluginManager.addColorManager("hsl", new HslColorManager());
|
|
11728
11724
|
});
|
|
@@ -11771,7 +11767,7 @@
|
|
|
11771
11767
|
}
|
|
11772
11768
|
|
|
11773
11769
|
async function loadOpacityUpdater(engine) {
|
|
11774
|
-
engine.checkVersion("4.0.0-beta.
|
|
11770
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
11775
11771
|
await engine.pluginManager.register(e => {
|
|
11776
11772
|
e.pluginManager.addParticleUpdater("opacity", container => {
|
|
11777
11773
|
return Promise.resolve(new OpacityUpdater(container));
|
|
@@ -12123,7 +12119,7 @@
|
|
|
12123
12119
|
}
|
|
12124
12120
|
|
|
12125
12121
|
async function loadOutModesUpdater(engine) {
|
|
12126
|
-
engine.checkVersion("4.0.0-beta.
|
|
12122
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12127
12123
|
await engine.pluginManager.register(e => {
|
|
12128
12124
|
e.pluginManager.addParticleUpdater("outModes", container => {
|
|
12129
12125
|
return Promise.resolve(new OutOfCanvasUpdater(container));
|
|
@@ -12194,7 +12190,7 @@
|
|
|
12194
12190
|
}
|
|
12195
12191
|
|
|
12196
12192
|
async function loadPaintUpdater(engine) {
|
|
12197
|
-
engine.checkVersion("4.0.0-beta.
|
|
12193
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12198
12194
|
await engine.pluginManager.register(e => {
|
|
12199
12195
|
e.pluginManager.addParticleUpdater("paint", container => {
|
|
12200
12196
|
return Promise.resolve(new PaintUpdater(e.pluginManager, container));
|
|
@@ -12249,7 +12245,7 @@
|
|
|
12249
12245
|
}
|
|
12250
12246
|
|
|
12251
12247
|
async function loadRgbColorPlugin(engine) {
|
|
12252
|
-
engine.checkVersion("4.0.0-beta.
|
|
12248
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12253
12249
|
await engine.pluginManager.register(e => {
|
|
12254
12250
|
e.pluginManager.addColorManager("rgb", new RgbColorManager());
|
|
12255
12251
|
});
|
|
@@ -12292,7 +12288,7 @@
|
|
|
12292
12288
|
}
|
|
12293
12289
|
|
|
12294
12290
|
async function loadSizeUpdater(engine) {
|
|
12295
|
-
engine.checkVersion("4.0.0-beta.
|
|
12291
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12296
12292
|
await engine.pluginManager.register(e => {
|
|
12297
12293
|
e.pluginManager.addParticleUpdater("size", container => {
|
|
12298
12294
|
return Promise.resolve(new SizeUpdater(container));
|
|
@@ -12301,7 +12297,7 @@
|
|
|
12301
12297
|
}
|
|
12302
12298
|
|
|
12303
12299
|
async function loadBasic(engine) {
|
|
12304
|
-
engine.checkVersion("4.0.0-beta.
|
|
12300
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12305
12301
|
await engine.pluginManager.register(async (e) => {
|
|
12306
12302
|
await Promise.all([
|
|
12307
12303
|
loadHexColorPlugin(e),
|
|
@@ -12323,7 +12319,7 @@
|
|
|
12323
12319
|
easingsFunctions.set(exports.EasingType.easeInOutQuad, value => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2));
|
|
12324
12320
|
|
|
12325
12321
|
async function loadEasingQuadPlugin(engine) {
|
|
12326
|
-
engine.checkVersion("4.0.0-beta.
|
|
12322
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12327
12323
|
await engine.pluginManager.register(e => {
|
|
12328
12324
|
for (const [easing, easingFn] of easingsFunctions) {
|
|
12329
12325
|
e.pluginManager.addEasing(easing, easingFn);
|
|
@@ -12402,19 +12398,7 @@
|
|
|
12402
12398
|
particle.emojiDataKey = cacheKey;
|
|
12403
12399
|
return;
|
|
12404
12400
|
}
|
|
12405
|
-
const padding = emojiOptions.padding * double, maxSize = getRangeMax(particle.size.value), fullSize = maxSize + padding, canvasSize = fullSize * double;
|
|
12406
|
-
let cacheCanvas, context;
|
|
12407
|
-
if (typeof OffscreenCanvas === "undefined") {
|
|
12408
|
-
const canvas = safeDocument().createElement("canvas");
|
|
12409
|
-
canvas.width = canvasSize;
|
|
12410
|
-
canvas.height = canvasSize;
|
|
12411
|
-
context = canvas.getContext("2d", container.canvas.render.settings);
|
|
12412
|
-
cacheCanvas = canvas;
|
|
12413
|
-
}
|
|
12414
|
-
else {
|
|
12415
|
-
cacheCanvas = new OffscreenCanvas(canvasSize, canvasSize);
|
|
12416
|
-
context = cacheCanvas.getContext("2d", container.canvas.render.settings);
|
|
12417
|
-
}
|
|
12401
|
+
const padding = emojiOptions.padding * double, maxSize = getRangeMax(particle.size.value), fullSize = maxSize + padding, canvasSize = fullSize * double, cacheCanvas = new OffscreenCanvas(canvasSize, canvasSize), context = cacheCanvas.getContext("2d", container.canvas.render.settings);
|
|
12418
12402
|
if (!context) {
|
|
12419
12403
|
return;
|
|
12420
12404
|
}
|
|
@@ -12429,14 +12413,14 @@
|
|
|
12429
12413
|
}
|
|
12430
12414
|
|
|
12431
12415
|
async function loadEmojiShape(engine) {
|
|
12432
|
-
engine.checkVersion("4.0.0-beta.
|
|
12416
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12433
12417
|
await engine.pluginManager.register(e => {
|
|
12434
12418
|
e.pluginManager.addShape(validTypes$1, () => Promise.resolve(new EmojiDrawer()));
|
|
12435
12419
|
});
|
|
12436
12420
|
}
|
|
12437
12421
|
|
|
12438
12422
|
const minFactor = 1, minRadius$6 = 0, updateVector = Vector.origin;
|
|
12439
|
-
function processAttract(pluginManager, container, position, attractRadius, area, queryCb) {
|
|
12423
|
+
function processAttract(pluginManager, container, position, attractRadius, area, queryCb, onAttractParticle) {
|
|
12440
12424
|
const attractOptions = container.actualOptions.interactivity?.modes.attract;
|
|
12441
12425
|
if (!attractOptions) {
|
|
12442
12426
|
return;
|
|
@@ -12446,10 +12430,11 @@
|
|
|
12446
12430
|
const { dx, dy, distance } = getDistances(particle.position, position), velocity = attractOptions.speed * attractOptions.factor, attractFactor = clamp(pluginManager.getEasing(attractOptions.easing)(identity$5 - distance / attractRadius) * velocity, minFactor, attractOptions.maxSpeed);
|
|
12447
12431
|
updateVector.x = !distance ? velocity : (dx / distance) * attractFactor;
|
|
12448
12432
|
updateVector.y = !distance ? velocity : (dy / distance) * attractFactor;
|
|
12433
|
+
onAttractParticle?.(particle);
|
|
12449
12434
|
particle.position.subFrom(updateVector);
|
|
12450
12435
|
}
|
|
12451
12436
|
}
|
|
12452
|
-
function clickAttract(pluginManager, container, interactivityData, enabledCb) {
|
|
12437
|
+
function clickAttract(pluginManager, container, interactivityData, enabledCb, onAttractParticle) {
|
|
12453
12438
|
container.attract ??= { particles: [] };
|
|
12454
12439
|
const { attract } = container;
|
|
12455
12440
|
if (!attract.finish) {
|
|
@@ -12464,18 +12449,18 @@
|
|
|
12464
12449
|
if (!attractRadius || attractRadius < minRadius$6 || !mousePos) {
|
|
12465
12450
|
return;
|
|
12466
12451
|
}
|
|
12467
|
-
processAttract(pluginManager, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));
|
|
12452
|
+
processAttract(pluginManager, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p), onAttractParticle);
|
|
12468
12453
|
}
|
|
12469
12454
|
else if (attract.clicking === false) {
|
|
12470
12455
|
attract.particles = [];
|
|
12471
12456
|
}
|
|
12472
12457
|
}
|
|
12473
|
-
function hoverAttract(pluginManager, container, interactivityData, enabledCb) {
|
|
12458
|
+
function hoverAttract(pluginManager, container, interactivityData, enabledCb, onAttractParticle) {
|
|
12474
12459
|
const mousePos = interactivityData.mouse.position, attractRadius = container.retina.attractModeDistance;
|
|
12475
12460
|
if (!attractRadius || attractRadius < minRadius$6 || !mousePos) {
|
|
12476
12461
|
return;
|
|
12477
12462
|
}
|
|
12478
|
-
processAttract(pluginManager, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));
|
|
12463
|
+
processAttract(pluginManager, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p), onAttractParticle);
|
|
12479
12464
|
}
|
|
12480
12465
|
|
|
12481
12466
|
let Attract$1 = class Attract {
|
|
@@ -12484,6 +12469,7 @@
|
|
|
12484
12469
|
easing;
|
|
12485
12470
|
factor;
|
|
12486
12471
|
maxSpeed;
|
|
12472
|
+
restore;
|
|
12487
12473
|
speed;
|
|
12488
12474
|
constructor() {
|
|
12489
12475
|
this.distance = 200;
|
|
@@ -12492,6 +12478,12 @@
|
|
|
12492
12478
|
this.factor = 1;
|
|
12493
12479
|
this.maxSpeed = 50;
|
|
12494
12480
|
this.speed = 1;
|
|
12481
|
+
this.restore = {
|
|
12482
|
+
enable: false,
|
|
12483
|
+
delay: 0,
|
|
12484
|
+
speed: 0.08,
|
|
12485
|
+
follow: true,
|
|
12486
|
+
};
|
|
12495
12487
|
}
|
|
12496
12488
|
load(data) {
|
|
12497
12489
|
if (isNull(data)) {
|
|
@@ -12515,18 +12507,28 @@
|
|
|
12515
12507
|
if (data.speed !== undefined) {
|
|
12516
12508
|
this.speed = data.speed;
|
|
12517
12509
|
}
|
|
12510
|
+
if (data.restore !== undefined) {
|
|
12511
|
+
this.restore.enable = data.restore.enable ?? this.restore.enable;
|
|
12512
|
+
this.restore.delay = data.restore.delay ?? this.restore.delay;
|
|
12513
|
+
this.restore.speed = data.restore.speed ?? this.restore.speed;
|
|
12514
|
+
this.restore.follow = data.restore.follow ?? this.restore.follow;
|
|
12515
|
+
}
|
|
12518
12516
|
}
|
|
12519
12517
|
};
|
|
12520
12518
|
|
|
12521
|
-
const attractMode = "attract";
|
|
12519
|
+
const attractMode = "attract", minVelocityLengthSq = 0, minRestoreSpeed$1 = 0.001, maxRestoreSpeed$1 = 1, restoreEpsilon$1 = 0.5;
|
|
12522
12520
|
let Attractor$1 = class Attractor extends ExternalInteractorBase {
|
|
12523
12521
|
handleClickMode;
|
|
12522
|
+
_interactedThisFrame;
|
|
12524
12523
|
_maxDistance;
|
|
12525
12524
|
_pluginManager;
|
|
12525
|
+
_restoreData;
|
|
12526
12526
|
constructor(pluginManager, container) {
|
|
12527
12527
|
super(container);
|
|
12528
12528
|
this._pluginManager = pluginManager;
|
|
12529
12529
|
this._maxDistance = 0;
|
|
12530
|
+
this._interactedThisFrame = new Set();
|
|
12531
|
+
this._restoreData = new Map();
|
|
12530
12532
|
container.attract ??= { particles: [] };
|
|
12531
12533
|
this.handleClickMode = (mode, interactivityData) => {
|
|
12532
12534
|
const options = this.container.actualOptions, attract = options.interactivity?.modes.attract;
|
|
@@ -12567,17 +12569,23 @@
|
|
|
12567
12569
|
container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio;
|
|
12568
12570
|
}
|
|
12569
12571
|
interact(interactivityData) {
|
|
12572
|
+
this._interactedThisFrame.clear();
|
|
12570
12573
|
const container = this.container, options = container.actualOptions, mouseMoveStatus = interactivityData.status === mouseMoveEvent, events = options.interactivity?.events;
|
|
12571
12574
|
if (!events) {
|
|
12572
12575
|
return;
|
|
12573
12576
|
}
|
|
12574
12577
|
const { enable: hoverEnabled, mode: hoverMode } = events.onHover, { enable: clickEnabled, mode: clickMode } = events.onClick;
|
|
12575
12578
|
if (mouseMoveStatus && hoverEnabled && isInArray(attractMode, hoverMode)) {
|
|
12576
|
-
hoverAttract(this._pluginManager, this.container, interactivityData, p => this.isEnabled(interactivityData, p)
|
|
12579
|
+
hoverAttract(this._pluginManager, this.container, interactivityData, p => this.isEnabled(interactivityData, p), p => {
|
|
12580
|
+
this._trackInteractedParticle(p);
|
|
12581
|
+
});
|
|
12577
12582
|
}
|
|
12578
12583
|
else if (clickEnabled && isInArray(attractMode, clickMode)) {
|
|
12579
|
-
clickAttract(this._pluginManager, this.container, interactivityData, p => this.isEnabled(interactivityData, p)
|
|
12584
|
+
clickAttract(this._pluginManager, this.container, interactivityData, p => this.isEnabled(interactivityData, p), p => {
|
|
12585
|
+
this._trackInteractedParticle(p);
|
|
12586
|
+
});
|
|
12580
12587
|
}
|
|
12588
|
+
this._restoreParticles();
|
|
12581
12589
|
}
|
|
12582
12590
|
isEnabled(interactivityData, particle) {
|
|
12583
12591
|
const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
|
|
@@ -12595,10 +12603,67 @@
|
|
|
12595
12603
|
}
|
|
12596
12604
|
reset() {
|
|
12597
12605
|
}
|
|
12606
|
+
_restoreParticles() {
|
|
12607
|
+
const restore = this.container.actualOptions.interactivity?.modes.attract?.restore;
|
|
12608
|
+
if (!restore?.enable || !this._restoreData.size) {
|
|
12609
|
+
return;
|
|
12610
|
+
}
|
|
12611
|
+
const now = Date.now(), restoreDelay = restore.delay * millisecondsToSeconds, restoreSpeed = Math.max(minRestoreSpeed$1, Math.min(maxRestoreSpeed$1, restore.speed));
|
|
12612
|
+
for (const [particle, restoreData] of this._restoreData) {
|
|
12613
|
+
if (this._interactedThisFrame.has(particle)) {
|
|
12614
|
+
continue;
|
|
12615
|
+
}
|
|
12616
|
+
if (particle.destroyed) {
|
|
12617
|
+
this._restoreData.delete(particle);
|
|
12618
|
+
continue;
|
|
12619
|
+
}
|
|
12620
|
+
const target = restoreData.target;
|
|
12621
|
+
if (now - restoreData.lastInteractionTime < restoreDelay) {
|
|
12622
|
+
continue;
|
|
12623
|
+
}
|
|
12624
|
+
let dx = target.x - particle.position.x, dy = target.y - particle.position.y, dz = target.z - particle.position.z;
|
|
12625
|
+
if (restore.follow && particle.options.move.enable) {
|
|
12626
|
+
const { x: vx, y: vy, z: vz } = particle.velocity, velocityLengthSq = vx * vx + vy * vy + vz * vz;
|
|
12627
|
+
if (velocityLengthSq > minVelocityLengthSq) {
|
|
12628
|
+
const parallelScale = (dx * vx + dy * vy + dz * vz) / velocityLengthSq;
|
|
12629
|
+
dx -= vx * parallelScale;
|
|
12630
|
+
dy -= vy * parallelScale;
|
|
12631
|
+
dz -= vz * parallelScale;
|
|
12632
|
+
}
|
|
12633
|
+
}
|
|
12634
|
+
particle.position.x += dx * restoreSpeed;
|
|
12635
|
+
particle.position.y += dy * restoreSpeed;
|
|
12636
|
+
particle.position.z += dz * restoreSpeed;
|
|
12637
|
+
if (Math.abs(dx) <= restoreEpsilon$1 && Math.abs(dy) <= restoreEpsilon$1) {
|
|
12638
|
+
particle.position.x = target.x;
|
|
12639
|
+
particle.position.y = target.y;
|
|
12640
|
+
particle.position.z = target.z;
|
|
12641
|
+
this._restoreData.delete(particle);
|
|
12642
|
+
continue;
|
|
12643
|
+
}
|
|
12644
|
+
}
|
|
12645
|
+
}
|
|
12646
|
+
_trackInteractedParticle(particle) {
|
|
12647
|
+
this._interactedThisFrame.add(particle);
|
|
12648
|
+
const restore = this.container.actualOptions.interactivity?.modes.attract?.restore;
|
|
12649
|
+
if (!restore?.enable) {
|
|
12650
|
+
return;
|
|
12651
|
+
}
|
|
12652
|
+
const now = Date.now();
|
|
12653
|
+
let restoreData = this._restoreData.get(particle);
|
|
12654
|
+
if (!restoreData) {
|
|
12655
|
+
restoreData = {
|
|
12656
|
+
target: particle.position.copy(),
|
|
12657
|
+
lastInteractionTime: now,
|
|
12658
|
+
};
|
|
12659
|
+
this._restoreData.set(particle, restoreData);
|
|
12660
|
+
}
|
|
12661
|
+
restoreData.lastInteractionTime = now;
|
|
12662
|
+
}
|
|
12598
12663
|
};
|
|
12599
12664
|
|
|
12600
12665
|
async function loadExternalAttractInteraction(engine) {
|
|
12601
|
-
engine.checkVersion("4.0.0-beta.
|
|
12666
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12602
12667
|
await engine.pluginManager.register((e) => {
|
|
12603
12668
|
ensureInteractivityPluginLoaded(e);
|
|
12604
12669
|
e.pluginManager.addInteractor?.("externalAttract", container => {
|
|
@@ -12795,7 +12860,7 @@
|
|
|
12795
12860
|
}
|
|
12796
12861
|
|
|
12797
12862
|
async function loadExternalBounceInteraction(engine) {
|
|
12798
|
-
engine.checkVersion("4.0.0-beta.
|
|
12863
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
12799
12864
|
await engine.pluginManager.register((e) => {
|
|
12800
12865
|
ensureInteractivityPluginLoaded(e);
|
|
12801
12866
|
e.pluginManager.addInteractor?.("externalBounce", container => {
|
|
@@ -13175,7 +13240,7 @@
|
|
|
13175
13240
|
}
|
|
13176
13241
|
|
|
13177
13242
|
async function loadExternalBubbleInteraction(engine) {
|
|
13178
|
-
engine.checkVersion("4.0.0-beta.
|
|
13243
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13179
13244
|
await engine.pluginManager.register((e) => {
|
|
13180
13245
|
ensureInteractivityPluginLoaded(e);
|
|
13181
13246
|
e.pluginManager.addInteractor?.("externalBubble", container => {
|
|
@@ -13320,7 +13385,7 @@
|
|
|
13320
13385
|
}
|
|
13321
13386
|
|
|
13322
13387
|
async function loadExternalConnectInteraction(engine) {
|
|
13323
|
-
engine.checkVersion("4.0.0-beta.
|
|
13388
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13324
13389
|
await engine.pluginManager.register((e) => {
|
|
13325
13390
|
ensureInteractivityPluginLoaded(e);
|
|
13326
13391
|
e.pluginManager.addInteractor?.("externalConnect", container => {
|
|
@@ -13432,7 +13497,7 @@
|
|
|
13432
13497
|
}
|
|
13433
13498
|
|
|
13434
13499
|
async function loadExternalDestroyInteraction(engine) {
|
|
13435
|
-
engine.checkVersion("4.0.0-beta.
|
|
13500
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13436
13501
|
await engine.pluginManager.register((e) => {
|
|
13437
13502
|
ensureInteractivityPluginLoaded(e);
|
|
13438
13503
|
e.pluginManager.addInteractor?.("externalDestroy", async (container) => {
|
|
@@ -13576,7 +13641,7 @@
|
|
|
13576
13641
|
}
|
|
13577
13642
|
|
|
13578
13643
|
async function loadExternalGrabInteraction(engine) {
|
|
13579
|
-
engine.checkVersion("4.0.0-beta.
|
|
13644
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13580
13645
|
await engine.pluginManager.register((e) => {
|
|
13581
13646
|
ensureInteractivityPluginLoaded(e);
|
|
13582
13647
|
e.pluginManager.addInteractor?.("externalGrab", container => {
|
|
@@ -13657,7 +13722,7 @@
|
|
|
13657
13722
|
}
|
|
13658
13723
|
|
|
13659
13724
|
async function loadExternalParallaxInteraction(engine) {
|
|
13660
|
-
engine.checkVersion("4.0.0-beta.
|
|
13725
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13661
13726
|
await engine.pluginManager.register((e) => {
|
|
13662
13727
|
ensureInteractivityPluginLoaded(e);
|
|
13663
13728
|
e.pluginManager.addInteractor?.("externalParallax", container => {
|
|
@@ -13700,7 +13765,7 @@
|
|
|
13700
13765
|
}
|
|
13701
13766
|
|
|
13702
13767
|
async function loadExternalPauseInteraction(engine) {
|
|
13703
|
-
engine.checkVersion("4.0.0-beta.
|
|
13768
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13704
13769
|
await engine.pluginManager.register((e) => {
|
|
13705
13770
|
ensureInteractivityPluginLoaded(e);
|
|
13706
13771
|
e.pluginManager.addInteractor?.("externalPause", container => {
|
|
@@ -13785,7 +13850,7 @@
|
|
|
13785
13850
|
}
|
|
13786
13851
|
|
|
13787
13852
|
async function loadExternalPushInteraction(engine) {
|
|
13788
|
-
engine.checkVersion("4.0.0-beta.
|
|
13853
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13789
13854
|
await engine.pluginManager.register((e) => {
|
|
13790
13855
|
ensureInteractivityPluginLoaded(e);
|
|
13791
13856
|
e.pluginManager.addInteractor?.("externalPush", container => {
|
|
@@ -13848,7 +13913,7 @@
|
|
|
13848
13913
|
}
|
|
13849
13914
|
|
|
13850
13915
|
async function loadExternalRemoveInteraction(engine) {
|
|
13851
|
-
engine.checkVersion("4.0.0-beta.
|
|
13916
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
13852
13917
|
await engine.pluginManager.register((e) => {
|
|
13853
13918
|
ensureInteractivityPluginLoaded(e);
|
|
13854
13919
|
e.pluginManager.addInteractor?.("externalRemove", container => {
|
|
@@ -13863,6 +13928,7 @@
|
|
|
13863
13928
|
easing;
|
|
13864
13929
|
factor;
|
|
13865
13930
|
maxSpeed;
|
|
13931
|
+
restore;
|
|
13866
13932
|
speed;
|
|
13867
13933
|
constructor() {
|
|
13868
13934
|
this.distance = 200;
|
|
@@ -13871,6 +13937,12 @@
|
|
|
13871
13937
|
this.speed = 1;
|
|
13872
13938
|
this.maxSpeed = 50;
|
|
13873
13939
|
this.easing = exports.EasingType.easeOutQuad;
|
|
13940
|
+
this.restore = {
|
|
13941
|
+
enable: false,
|
|
13942
|
+
delay: 0,
|
|
13943
|
+
speed: 0.08,
|
|
13944
|
+
follow: true,
|
|
13945
|
+
};
|
|
13874
13946
|
}
|
|
13875
13947
|
load(data) {
|
|
13876
13948
|
if (isNull(data)) {
|
|
@@ -13894,6 +13966,12 @@
|
|
|
13894
13966
|
if (data.maxSpeed !== undefined) {
|
|
13895
13967
|
this.maxSpeed = data.maxSpeed;
|
|
13896
13968
|
}
|
|
13969
|
+
if (data.restore !== undefined) {
|
|
13970
|
+
this.restore.enable = data.restore.enable ?? this.restore.enable;
|
|
13971
|
+
this.restore.delay = data.restore.delay ?? this.restore.delay;
|
|
13972
|
+
this.restore.speed = data.restore.speed ?? this.restore.speed;
|
|
13973
|
+
this.restore.follow = data.restore.follow ?? this.restore.follow;
|
|
13974
|
+
}
|
|
13897
13975
|
}
|
|
13898
13976
|
}
|
|
13899
13977
|
|
|
@@ -13929,19 +14007,23 @@
|
|
|
13929
14007
|
}
|
|
13930
14008
|
}
|
|
13931
14009
|
|
|
13932
|
-
const repulseMode = "repulse", minDistance$3 = 0, repulseRadiusFactor = 6, repulseRadiusPower = 3, squarePower = 2, minRadius$3 = 0, minSpeed = 0, easingOffset = 1;
|
|
14010
|
+
const repulseMode = "repulse", minDistance$3 = 0, repulseRadiusFactor = 6, repulseRadiusPower = 3, squarePower = 2, minRadius$3 = 0, minSpeed = 0, easingOffset = 1, minRestoreSpeed = 0.001, maxRestoreSpeed = 1, restoreEpsilon = 0.5;
|
|
13933
14011
|
let Repulser$1 = class Repulser extends ExternalInteractorBase {
|
|
13934
14012
|
handleClickMode;
|
|
13935
14013
|
_clickVec;
|
|
14014
|
+
_interactedThisFrame;
|
|
13936
14015
|
_maxDistance;
|
|
13937
14016
|
_normVec;
|
|
13938
14017
|
_pluginManager;
|
|
14018
|
+
_restoreData;
|
|
13939
14019
|
constructor(pluginManager, container) {
|
|
13940
14020
|
super(container);
|
|
13941
14021
|
this._pluginManager = pluginManager;
|
|
13942
14022
|
this._maxDistance = 0;
|
|
13943
14023
|
this._normVec = Vector.origin;
|
|
14024
|
+
this._interactedThisFrame = new Set();
|
|
13944
14025
|
this._clickVec = Vector.origin;
|
|
14026
|
+
this._restoreData = new Map();
|
|
13945
14027
|
container.repulse ??= { particles: [] };
|
|
13946
14028
|
this.handleClickMode = (mode, interactivityData) => {
|
|
13947
14029
|
const options = this.container.actualOptions, repulseOpts = options.interactivity?.modes.repulse;
|
|
@@ -13982,6 +14064,7 @@
|
|
|
13982
14064
|
container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio;
|
|
13983
14065
|
}
|
|
13984
14066
|
interact(interactivityData) {
|
|
14067
|
+
this._interactedThisFrame.clear();
|
|
13985
14068
|
const container = this.container, options = container.actualOptions, mouseMoveStatus = interactivityData.status === mouseMoveEvent, events = options.interactivity?.events;
|
|
13986
14069
|
if (!events) {
|
|
13987
14070
|
return;
|
|
@@ -13998,6 +14081,7 @@
|
|
|
13998
14081
|
this._singleSelectorRepulse(interactivityData, selector, div);
|
|
13999
14082
|
});
|
|
14000
14083
|
}
|
|
14084
|
+
this._restoreParticles();
|
|
14001
14085
|
}
|
|
14002
14086
|
isEnabled(interactivityData, particle) {
|
|
14003
14087
|
const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity)?.events;
|
|
@@ -14045,6 +14129,7 @@
|
|
|
14045
14129
|
for (const particle of query) {
|
|
14046
14130
|
const { dx, dy, distance } = getDistances(mouseClickPos, particle.position), d = distance ** squarePower, velocity = repulseOptions.speed, force = (-repulseRadius * velocity) / d;
|
|
14047
14131
|
if (d <= repulseRadius) {
|
|
14132
|
+
this._trackInteractedParticle(particle);
|
|
14048
14133
|
repulse.particles.push(particle);
|
|
14049
14134
|
this._clickVec.x = dx;
|
|
14050
14135
|
this._clickVec.y = dy;
|
|
@@ -14077,9 +14162,46 @@
|
|
|
14077
14162
|
const { dx, dy, distance } = getDistances(particle.position, position), repulseFactor = clamp(easingFunc(easingOffset - distance / repulseRadius) * velocity, minSpeed, maxSpeed);
|
|
14078
14163
|
this._normVec.x = !distance ? velocity : (dx / distance) * repulseFactor;
|
|
14079
14164
|
this._normVec.y = !distance ? velocity : (dy / distance) * repulseFactor;
|
|
14165
|
+
this._trackInteractedParticle(particle);
|
|
14080
14166
|
particle.position.addTo(this._normVec);
|
|
14081
14167
|
}
|
|
14082
14168
|
};
|
|
14169
|
+
_restoreParticles() {
|
|
14170
|
+
const restore = this.container.actualOptions.interactivity?.modes.repulse?.restore;
|
|
14171
|
+
if (!restore?.enable || !this._restoreData.size) {
|
|
14172
|
+
return;
|
|
14173
|
+
}
|
|
14174
|
+
const now = Date.now(), restoreDelay = restore.delay * millisecondsToSeconds, restoreSpeed = Math.max(minRestoreSpeed, Math.min(maxRestoreSpeed, restore.speed));
|
|
14175
|
+
for (const [particle, restoreData] of this._restoreData) {
|
|
14176
|
+
if (this._interactedThisFrame.has(particle)) {
|
|
14177
|
+
continue;
|
|
14178
|
+
}
|
|
14179
|
+
if (particle.destroyed) {
|
|
14180
|
+
this._restoreData.delete(particle);
|
|
14181
|
+
continue;
|
|
14182
|
+
}
|
|
14183
|
+
const target = restoreData.target;
|
|
14184
|
+
if (now - restoreData.lastInteractionTime < restoreDelay) {
|
|
14185
|
+
continue;
|
|
14186
|
+
}
|
|
14187
|
+
if (restore.follow && particle.options.move.enable) {
|
|
14188
|
+
target.x += particle.velocity.x;
|
|
14189
|
+
target.y += particle.velocity.y;
|
|
14190
|
+
target.z += particle.velocity.z;
|
|
14191
|
+
}
|
|
14192
|
+
const dx = target.x - particle.position.x, dy = target.y - particle.position.y, dz = target.z - particle.position.z;
|
|
14193
|
+
particle.position.x += dx * restoreSpeed;
|
|
14194
|
+
particle.position.y += dy * restoreSpeed;
|
|
14195
|
+
particle.position.z += dz * restoreSpeed;
|
|
14196
|
+
if (Math.abs(dx) <= restoreEpsilon && Math.abs(dy) <= restoreEpsilon) {
|
|
14197
|
+
particle.position.x = target.x;
|
|
14198
|
+
particle.position.y = target.y;
|
|
14199
|
+
particle.position.z = target.z;
|
|
14200
|
+
this._restoreData.delete(particle);
|
|
14201
|
+
continue;
|
|
14202
|
+
}
|
|
14203
|
+
}
|
|
14204
|
+
}
|
|
14083
14205
|
_singleSelectorRepulse = (interactivityData, selector, div) => {
|
|
14084
14206
|
const container = this.container, repulse = container.actualOptions.interactivity?.modes.repulse;
|
|
14085
14207
|
if (!repulse) {
|
|
@@ -14099,10 +14221,32 @@
|
|
|
14099
14221
|
this._processRepulse(interactivityData, pos, repulseRadius, area, divRepulse);
|
|
14100
14222
|
});
|
|
14101
14223
|
};
|
|
14224
|
+
_trackInteractedParticle(particle) {
|
|
14225
|
+
this._interactedThisFrame.add(particle);
|
|
14226
|
+
const restore = this.container.actualOptions.interactivity?.modes.repulse?.restore;
|
|
14227
|
+
if (!restore?.enable) {
|
|
14228
|
+
return;
|
|
14229
|
+
}
|
|
14230
|
+
const now = Date.now();
|
|
14231
|
+
let restoreData = this._restoreData.get(particle);
|
|
14232
|
+
if (!restoreData) {
|
|
14233
|
+
restoreData = {
|
|
14234
|
+
target: particle.position.copy(),
|
|
14235
|
+
lastInteractionTime: now,
|
|
14236
|
+
};
|
|
14237
|
+
this._restoreData.set(particle, restoreData);
|
|
14238
|
+
}
|
|
14239
|
+
restoreData.lastInteractionTime = now;
|
|
14240
|
+
if (restore.follow && particle.options.move.enable) {
|
|
14241
|
+
restoreData.target.x += particle.velocity.x;
|
|
14242
|
+
restoreData.target.y += particle.velocity.y;
|
|
14243
|
+
restoreData.target.z += particle.velocity.z;
|
|
14244
|
+
}
|
|
14245
|
+
}
|
|
14102
14246
|
};
|
|
14103
14247
|
|
|
14104
14248
|
async function loadExternalRepulseInteraction(engine) {
|
|
14105
|
-
engine.checkVersion("4.0.0-beta.
|
|
14249
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
14106
14250
|
await engine.pluginManager.register((e) => {
|
|
14107
14251
|
ensureInteractivityPluginLoaded(e);
|
|
14108
14252
|
const pluginManager = e.pluginManager;
|
|
@@ -14184,7 +14328,7 @@
|
|
|
14184
14328
|
}
|
|
14185
14329
|
|
|
14186
14330
|
async function loadExternalSlowInteraction(engine) {
|
|
14187
|
-
engine.checkVersion("4.0.0-beta.
|
|
14331
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
14188
14332
|
await engine.pluginManager.register((e) => {
|
|
14189
14333
|
ensureInteractivityPluginLoaded(e);
|
|
14190
14334
|
e.pluginManager.addInteractor?.("externalSlow", container => {
|
|
@@ -15012,7 +15156,7 @@
|
|
|
15012
15156
|
};
|
|
15013
15157
|
}
|
|
15014
15158
|
async function loadImageShape(engine) {
|
|
15015
|
-
engine.checkVersion("4.0.0-beta.
|
|
15159
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15016
15160
|
await engine.pluginManager.register(e => {
|
|
15017
15161
|
addLoadImageToEngine(e);
|
|
15018
15162
|
e.pluginManager.addPlugin(new ImagePreloaderPlugin(e));
|
|
@@ -15179,7 +15323,7 @@
|
|
|
15179
15323
|
}
|
|
15180
15324
|
|
|
15181
15325
|
async function loadLifeUpdater(engine) {
|
|
15182
|
-
engine.checkVersion("4.0.0-beta.
|
|
15326
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15183
15327
|
await engine.pluginManager.register(e => {
|
|
15184
15328
|
e.pluginManager.addParticleUpdater("life", container => {
|
|
15185
15329
|
return Promise.resolve(new LifeUpdater(container));
|
|
@@ -15205,7 +15349,7 @@
|
|
|
15205
15349
|
}
|
|
15206
15350
|
|
|
15207
15351
|
async function loadLineShape(engine) {
|
|
15208
|
-
engine.checkVersion("4.0.0-beta.
|
|
15352
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15209
15353
|
await engine.pluginManager.register(e => {
|
|
15210
15354
|
e.pluginManager.addShape(["line"], () => Promise.resolve(new LineDrawer()));
|
|
15211
15355
|
});
|
|
@@ -15298,7 +15442,7 @@
|
|
|
15298
15442
|
}
|
|
15299
15443
|
|
|
15300
15444
|
async function loadParticlesAttractInteraction(engine) {
|
|
15301
|
-
engine.checkVersion("4.0.0-beta.
|
|
15445
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15302
15446
|
await engine.pluginManager.register((e) => {
|
|
15303
15447
|
ensureInteractivityPluginLoaded(e);
|
|
15304
15448
|
e.pluginManager.addInteractor?.("particlesAttract", container => {
|
|
@@ -15538,7 +15682,7 @@
|
|
|
15538
15682
|
}
|
|
15539
15683
|
|
|
15540
15684
|
async function loadParticlesCollisionsInteraction(engine) {
|
|
15541
|
-
engine.checkVersion("4.0.0-beta.
|
|
15685
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15542
15686
|
await engine.pluginManager.register((e) => {
|
|
15543
15687
|
ensureInteractivityPluginLoaded(e);
|
|
15544
15688
|
e.pluginManager.addPlugin(new OverlapPlugin());
|
|
@@ -15841,7 +15985,7 @@
|
|
|
15841
15985
|
}
|
|
15842
15986
|
|
|
15843
15987
|
async function loadParticlesLinksInteraction(engine) {
|
|
15844
|
-
engine.checkVersion("4.0.0-beta.
|
|
15988
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15845
15989
|
await engine.pluginManager.register((e) => {
|
|
15846
15990
|
const pluginManager = e.pluginManager;
|
|
15847
15991
|
ensureInteractivityPluginLoaded(e);
|
|
@@ -15931,19 +16075,19 @@
|
|
|
15931
16075
|
}
|
|
15932
16076
|
|
|
15933
16077
|
async function loadGenericPolygonShape(engine) {
|
|
15934
|
-
engine.checkVersion("4.0.0-beta.
|
|
16078
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15935
16079
|
await engine.pluginManager.register(e => {
|
|
15936
16080
|
e.pluginManager.addShape(["polygon"], () => Promise.resolve(new PolygonDrawer()));
|
|
15937
16081
|
});
|
|
15938
16082
|
}
|
|
15939
16083
|
async function loadTriangleShape(engine) {
|
|
15940
|
-
engine.checkVersion("4.0.0-beta.
|
|
16084
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15941
16085
|
await engine.pluginManager.register(e => {
|
|
15942
16086
|
e.pluginManager.addShape(["triangle"], () => Promise.resolve(new TriangleDrawer()));
|
|
15943
16087
|
});
|
|
15944
16088
|
}
|
|
15945
16089
|
async function loadPolygonShape(engine) {
|
|
15946
|
-
engine.checkVersion("4.0.0-beta.
|
|
16090
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
15947
16091
|
await Promise.all([
|
|
15948
16092
|
loadGenericPolygonShape(engine),
|
|
15949
16093
|
loadTriangleShape(engine),
|
|
@@ -16076,7 +16220,7 @@
|
|
|
16076
16220
|
}
|
|
16077
16221
|
|
|
16078
16222
|
async function loadRotateUpdater(engine) {
|
|
16079
|
-
engine.checkVersion("4.0.0-beta.
|
|
16223
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16080
16224
|
await engine.pluginManager.register(e => {
|
|
16081
16225
|
e.pluginManager.addParticleUpdater("rotate", container => {
|
|
16082
16226
|
return Promise.resolve(new RotateUpdater(container));
|
|
@@ -16100,7 +16244,7 @@
|
|
|
16100
16244
|
}
|
|
16101
16245
|
|
|
16102
16246
|
async function loadSquareShape(engine) {
|
|
16103
|
-
engine.checkVersion("4.0.0-beta.
|
|
16247
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16104
16248
|
await engine.pluginManager.register(e => {
|
|
16105
16249
|
e.pluginManager.addShape(["edge", "square"], () => Promise.resolve(new SquareDrawer()));
|
|
16106
16250
|
});
|
|
@@ -16134,14 +16278,14 @@
|
|
|
16134
16278
|
}
|
|
16135
16279
|
|
|
16136
16280
|
async function loadStarShape(engine) {
|
|
16137
|
-
engine.checkVersion("4.0.0-beta.
|
|
16281
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16138
16282
|
await engine.pluginManager.register(e => {
|
|
16139
16283
|
e.pluginManager.addShape(["star"], () => Promise.resolve(new StarDrawer()));
|
|
16140
16284
|
});
|
|
16141
16285
|
}
|
|
16142
16286
|
|
|
16143
16287
|
async function loadSlim(engine) {
|
|
16144
|
-
engine.checkVersion("4.0.0-beta.
|
|
16288
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16145
16289
|
await engine.pluginManager.register(async (e) => {
|
|
16146
16290
|
const loadInteractivityForSlim = async (e) => {
|
|
16147
16291
|
await loadInteractivityPlugin(e);
|
|
@@ -16258,7 +16402,7 @@
|
|
|
16258
16402
|
}
|
|
16259
16403
|
|
|
16260
16404
|
async function loadTextShape(engine) {
|
|
16261
|
-
engine.checkVersion("4.0.0-beta.
|
|
16405
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16262
16406
|
await engine.pluginManager.register(e => {
|
|
16263
16407
|
e.pluginManager.addShape(validTypes, () => Promise.resolve(new TextDrawer()));
|
|
16264
16408
|
});
|
|
@@ -16395,7 +16539,7 @@
|
|
|
16395
16539
|
}
|
|
16396
16540
|
|
|
16397
16541
|
async function loadTiltUpdater(engine) {
|
|
16398
|
-
engine.checkVersion("4.0.0-beta.
|
|
16542
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16399
16543
|
await engine.pluginManager.register(e => {
|
|
16400
16544
|
e.pluginManager.addParticleUpdater("tilt", container => {
|
|
16401
16545
|
return Promise.resolve(new TiltUpdater(container));
|
|
@@ -16528,7 +16672,7 @@
|
|
|
16528
16672
|
}
|
|
16529
16673
|
|
|
16530
16674
|
async function loadTwinkleUpdater(engine) {
|
|
16531
|
-
engine.checkVersion("4.0.0-beta.
|
|
16675
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16532
16676
|
await engine.pluginManager.register(e => {
|
|
16533
16677
|
e.pluginManager.addParticleUpdater("twinkle", container => {
|
|
16534
16678
|
return Promise.resolve(new TwinkleUpdater(e.pluginManager, container));
|
|
@@ -16650,7 +16794,7 @@
|
|
|
16650
16794
|
}
|
|
16651
16795
|
|
|
16652
16796
|
async function loadWobbleUpdater(engine) {
|
|
16653
|
-
engine.checkVersion("4.0.0-beta.
|
|
16797
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16654
16798
|
await engine.pluginManager.register(e => {
|
|
16655
16799
|
e.pluginManager.addParticleUpdater("wobble", container => {
|
|
16656
16800
|
return Promise.resolve(new WobbleUpdater(container));
|
|
@@ -16659,7 +16803,7 @@
|
|
|
16659
16803
|
}
|
|
16660
16804
|
|
|
16661
16805
|
async function loadFull(engine) {
|
|
16662
|
-
engine.checkVersion("4.0.0-beta.
|
|
16806
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
16663
16807
|
await engine.pluginManager.register(async (e) => {
|
|
16664
16808
|
const loadEmittersPluginBundle = async (e) => {
|
|
16665
16809
|
await loadEmittersPlugin(e);
|
|
@@ -17013,7 +17157,7 @@
|
|
|
17013
17157
|
}
|
|
17014
17158
|
|
|
17015
17159
|
async function loadGradientUpdater(engine) {
|
|
17016
|
-
engine.checkVersion("4.0.0-beta.
|
|
17160
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17017
17161
|
await engine.pluginManager.register(e => {
|
|
17018
17162
|
e.pluginManager.addParticleUpdater("gradient", container => {
|
|
17019
17163
|
return Promise.resolve(new GradientUpdater(e.pluginManager, container));
|
|
@@ -17133,7 +17277,7 @@
|
|
|
17133
17277
|
|
|
17134
17278
|
const gridPathName = "gridPathGenerator";
|
|
17135
17279
|
async function loadGridPath(engine) {
|
|
17136
|
-
engine.checkVersion("4.0.0-beta.
|
|
17280
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17137
17281
|
await engine.pluginManager.register((e) => {
|
|
17138
17282
|
ensureBaseMoverLoaded(e);
|
|
17139
17283
|
e.pluginManager.addPathGenerator?.(gridPathName, container => {
|
|
@@ -17162,7 +17306,7 @@
|
|
|
17162
17306
|
}
|
|
17163
17307
|
|
|
17164
17308
|
async function loadHeartShape(engine) {
|
|
17165
|
-
engine.checkVersion("4.0.0-beta.
|
|
17309
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17166
17310
|
await engine.pluginManager.register(e => {
|
|
17167
17311
|
e.pluginManager.addShape(["heart"], () => Promise.resolve(new HeartDrawer()));
|
|
17168
17312
|
});
|
|
@@ -17278,7 +17422,7 @@
|
|
|
17278
17422
|
}
|
|
17279
17423
|
|
|
17280
17424
|
async function loadHsvColorPlugin(engine) {
|
|
17281
|
-
engine.checkVersion("4.0.0-beta.
|
|
17425
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17282
17426
|
await engine.pluginManager.register(e => {
|
|
17283
17427
|
e.pluginManager.addColorManager("hsv", new HsvColorManager());
|
|
17284
17428
|
});
|
|
@@ -17363,7 +17507,7 @@
|
|
|
17363
17507
|
}
|
|
17364
17508
|
|
|
17365
17509
|
async function loadHwbColorPlugin(engine) {
|
|
17366
|
-
engine.checkVersion("4.0.0-beta.
|
|
17510
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17367
17511
|
await engine.pluginManager.register(e => {
|
|
17368
17512
|
e.pluginManager.addColorManager("hwb", new HwbColorManager());
|
|
17369
17513
|
});
|
|
@@ -17526,7 +17670,7 @@
|
|
|
17526
17670
|
}
|
|
17527
17671
|
|
|
17528
17672
|
async function loadInfectionPlugin(engine) {
|
|
17529
|
-
engine.checkVersion("4.0.0-beta.
|
|
17673
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17530
17674
|
await engine.pluginManager.register((e) => {
|
|
17531
17675
|
ensureInteractivityPluginLoaded(e);
|
|
17532
17676
|
e.pluginManager.addPlugin(new InfectionPlugin());
|
|
@@ -17552,7 +17696,7 @@
|
|
|
17552
17696
|
}
|
|
17553
17697
|
|
|
17554
17698
|
async function loadInfinityShape(engine) {
|
|
17555
|
-
engine.checkVersion("4.0.0-beta.
|
|
17699
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17556
17700
|
await engine.pluginManager.register(e => {
|
|
17557
17701
|
e.pluginManager.addShape(["infinity"], () => Promise.resolve(new InfinityDrawer()));
|
|
17558
17702
|
});
|
|
@@ -17653,7 +17797,7 @@
|
|
|
17653
17797
|
}
|
|
17654
17798
|
|
|
17655
17799
|
async function loadLabColorPlugin(engine) {
|
|
17656
|
-
engine.checkVersion("4.0.0-beta.
|
|
17800
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17657
17801
|
await engine.pluginManager.register(e => {
|
|
17658
17802
|
e.pluginManager.addColorManager("lab", new LabColorManager());
|
|
17659
17803
|
});
|
|
@@ -17754,7 +17898,7 @@
|
|
|
17754
17898
|
}
|
|
17755
17899
|
|
|
17756
17900
|
async function loadLchColorPlugin(engine) {
|
|
17757
|
-
engine.checkVersion("4.0.0-beta.
|
|
17901
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17758
17902
|
await engine.pluginManager.register(e => {
|
|
17759
17903
|
e.pluginManager.addColorManager("lch", new LchColorManager());
|
|
17760
17904
|
});
|
|
@@ -17808,7 +17952,7 @@
|
|
|
17808
17952
|
|
|
17809
17953
|
const levyPathName = "levyPathGenerator";
|
|
17810
17954
|
async function loadLevyPath(engine) {
|
|
17811
|
-
engine.checkVersion("4.0.0-beta.
|
|
17955
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
17812
17956
|
await engine.pluginManager.register((e) => {
|
|
17813
17957
|
ensureBaseMoverLoaded(e);
|
|
17814
17958
|
e.pluginManager.addPathGenerator?.(levyPathName, container => {
|
|
@@ -18043,7 +18187,7 @@
|
|
|
18043
18187
|
}
|
|
18044
18188
|
|
|
18045
18189
|
async function loadLightInteraction(engine) {
|
|
18046
|
-
engine.checkVersion("4.0.0-beta.
|
|
18190
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18047
18191
|
await engine.pluginManager.register((e) => {
|
|
18048
18192
|
ensureInteractivityPluginLoaded(e);
|
|
18049
18193
|
e.pluginManager.addInteractor?.("externalLight", container => {
|
|
@@ -18101,7 +18245,7 @@
|
|
|
18101
18245
|
}
|
|
18102
18246
|
|
|
18103
18247
|
async function loadManualParticlesPlugin(engine) {
|
|
18104
|
-
engine.checkVersion("4.0.0-beta.
|
|
18248
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18105
18249
|
await engine.pluginManager.register(e => {
|
|
18106
18250
|
e.pluginManager.addPlugin(new ManualParticlesPlugin());
|
|
18107
18251
|
});
|
|
@@ -18322,7 +18466,7 @@
|
|
|
18322
18466
|
}
|
|
18323
18467
|
|
|
18324
18468
|
async function loadMatrixShape(engine) {
|
|
18325
|
-
engine.checkVersion("4.0.0-beta.
|
|
18469
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18326
18470
|
await engine.pluginManager.register(e => {
|
|
18327
18471
|
e.pluginManager.addShape(["matrix"], () => Promise.resolve(new MatrixDrawer()));
|
|
18328
18472
|
});
|
|
@@ -18388,7 +18532,7 @@
|
|
|
18388
18532
|
}
|
|
18389
18533
|
|
|
18390
18534
|
async function loadMotionPlugin(engine) {
|
|
18391
|
-
engine.checkVersion("4.0.0-beta.
|
|
18535
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18392
18536
|
await engine.pluginManager.register(e => {
|
|
18393
18537
|
e.pluginManager.addPlugin(new MotionPlugin());
|
|
18394
18538
|
});
|
|
@@ -18571,7 +18715,7 @@
|
|
|
18571
18715
|
}
|
|
18572
18716
|
|
|
18573
18717
|
async function loadNamedColorPlugin(engine) {
|
|
18574
|
-
engine.checkVersion("4.0.0-beta.
|
|
18718
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18575
18719
|
await engine.pluginManager.register(e => {
|
|
18576
18720
|
e.pluginManager.addColorManager("named", new NamedColorManager());
|
|
18577
18721
|
});
|
|
@@ -18654,7 +18798,7 @@
|
|
|
18654
18798
|
}
|
|
18655
18799
|
|
|
18656
18800
|
async function loadOklabColorPlugin(engine) {
|
|
18657
|
-
engine.checkVersion("4.0.0-beta.
|
|
18801
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18658
18802
|
await engine.pluginManager.register(e => {
|
|
18659
18803
|
e.pluginManager.addColorManager("oklab", new OklabColorManager());
|
|
18660
18804
|
});
|
|
@@ -18737,7 +18881,7 @@
|
|
|
18737
18881
|
}
|
|
18738
18882
|
|
|
18739
18883
|
async function loadOklchColorPlugin(engine) {
|
|
18740
|
-
engine.checkVersion("4.0.0-beta.
|
|
18884
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18741
18885
|
await engine.pluginManager.register(e => {
|
|
18742
18886
|
e.pluginManager.addColorManager("oklch", new OklchColorManager());
|
|
18743
18887
|
});
|
|
@@ -18893,7 +19037,7 @@
|
|
|
18893
19037
|
}
|
|
18894
19038
|
|
|
18895
19039
|
async function loadOrbitUpdater(engine) {
|
|
18896
|
-
engine.checkVersion("4.0.0-beta.
|
|
19040
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18897
19041
|
await engine.pluginManager.register(e => {
|
|
18898
19042
|
e.pluginManager.addParticleUpdater("orbit", container => {
|
|
18899
19043
|
return Promise.resolve(new OrbitUpdater(e.pluginManager, container));
|
|
@@ -18933,7 +19077,7 @@
|
|
|
18933
19077
|
}
|
|
18934
19078
|
|
|
18935
19079
|
async function loadParticlesEffect(engine) {
|
|
18936
|
-
engine.checkVersion("4.0.0-beta.
|
|
19080
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
18937
19081
|
await engine.pluginManager.register(e => {
|
|
18938
19082
|
e.pluginManager.addEffect("particles", container => {
|
|
18939
19083
|
return Promise.resolve(new ParticlesDrawer(container));
|
|
@@ -19047,7 +19191,7 @@
|
|
|
19047
19191
|
}
|
|
19048
19192
|
|
|
19049
19193
|
async function loadParticlesRepulseInteraction(engine) {
|
|
19050
|
-
engine.checkVersion("4.0.0-beta.
|
|
19194
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19051
19195
|
await engine.pluginManager.register((e) => {
|
|
19052
19196
|
ensureInteractivityPluginLoaded(e);
|
|
19053
19197
|
e.pluginManager.addInteractor?.("particlesRepulse", container => {
|
|
@@ -19074,7 +19218,7 @@
|
|
|
19074
19218
|
}
|
|
19075
19219
|
|
|
19076
19220
|
async function loadPathShape(engine) {
|
|
19077
|
-
engine.checkVersion("4.0.0-beta.
|
|
19221
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19078
19222
|
await engine.pluginManager.register(e => {
|
|
19079
19223
|
e.pluginManager.addShape(["path"], () => Promise.resolve(new PathDrawer()));
|
|
19080
19224
|
});
|
|
@@ -19478,7 +19622,7 @@
|
|
|
19478
19622
|
|
|
19479
19623
|
const perlinNoisePathName = "perlinNoise";
|
|
19480
19624
|
async function loadPerlinNoisePath(engine) {
|
|
19481
|
-
engine.checkVersion("4.0.0-beta.
|
|
19625
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19482
19626
|
await engine.pluginManager.register((e) => {
|
|
19483
19627
|
ensureBaseMoverLoaded(e);
|
|
19484
19628
|
e.pluginManager.addPathGenerator?.(perlinNoisePathName, container => {
|
|
@@ -19541,7 +19685,7 @@
|
|
|
19541
19685
|
}
|
|
19542
19686
|
|
|
19543
19687
|
async function loadPoissonDiscPlugin(engine) {
|
|
19544
|
-
engine.checkVersion("4.0.0-beta.
|
|
19688
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19545
19689
|
await engine.pluginManager.register(e => {
|
|
19546
19690
|
e.pluginManager.addPlugin(new PoissonDiscPlugin());
|
|
19547
19691
|
});
|
|
@@ -19762,7 +19906,7 @@
|
|
|
19762
19906
|
}
|
|
19763
19907
|
|
|
19764
19908
|
async function loadPolygonMaskPlugin(engine) {
|
|
19765
|
-
engine.checkVersion("4.0.0-beta.
|
|
19909
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19766
19910
|
await engine.pluginManager.register(e => {
|
|
19767
19911
|
e.pluginManager.addPlugin(new PolygonMaskPlugin(e.pluginManager));
|
|
19768
19912
|
});
|
|
@@ -19828,7 +19972,7 @@
|
|
|
19828
19972
|
|
|
19829
19973
|
const polygonPathName = "polygonPathGenerator";
|
|
19830
19974
|
async function loadPolygonPath(engine) {
|
|
19831
|
-
engine.checkVersion("4.0.0-beta.
|
|
19975
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19832
19976
|
await engine.pluginManager.register((e) => {
|
|
19833
19977
|
ensureBaseMoverLoaded(e);
|
|
19834
19978
|
e.pluginManager.addPathGenerator?.(polygonPathName, container => {
|
|
@@ -19858,7 +20002,7 @@
|
|
|
19858
20002
|
|
|
19859
20003
|
const randomPathName = "randomPathGenerator";
|
|
19860
20004
|
async function loadRandomPath(engine) {
|
|
19861
|
-
engine.checkVersion("4.0.0-beta.
|
|
20005
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19862
20006
|
await engine.pluginManager.register((e) => {
|
|
19863
20007
|
ensureBaseMoverLoaded(e);
|
|
19864
20008
|
e.pluginManager.addPathGenerator?.(randomPathName, () => {
|
|
@@ -19943,7 +20087,7 @@
|
|
|
19943
20087
|
}
|
|
19944
20088
|
|
|
19945
20089
|
async function loadResponsivePlugin(engine) {
|
|
19946
|
-
engine.checkVersion("4.0.0-beta.
|
|
20090
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19947
20091
|
await engine.pluginManager.register(e => {
|
|
19948
20092
|
e.pluginManager.addPlugin(new ResponsivePlugin());
|
|
19949
20093
|
});
|
|
@@ -19992,7 +20136,7 @@
|
|
|
19992
20136
|
}
|
|
19993
20137
|
|
|
19994
20138
|
async function loadRoundedPolygonShape(engine) {
|
|
19995
|
-
engine.checkVersion("4.0.0-beta.
|
|
20139
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
19996
20140
|
await engine.pluginManager.register(e => {
|
|
19997
20141
|
e.pluginManager.addShape(["rounded-polygon"], () => Promise.resolve(new RoundedPolygonDrawer()));
|
|
19998
20142
|
});
|
|
@@ -20039,7 +20183,7 @@
|
|
|
20039
20183
|
}
|
|
20040
20184
|
|
|
20041
20185
|
async function loadRoundedRectShape(engine) {
|
|
20042
|
-
engine.checkVersion("4.0.0-beta.
|
|
20186
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20043
20187
|
await engine.pluginManager.register(e => {
|
|
20044
20188
|
e.pluginManager.addShape(["rounded-rect"], () => Promise.resolve(new RoundedRectDrawer()));
|
|
20045
20189
|
});
|
|
@@ -20197,7 +20341,7 @@
|
|
|
20197
20341
|
|
|
20198
20342
|
const svgPathName = "svgPathGenerator";
|
|
20199
20343
|
async function loadSVGPath(engine) {
|
|
20200
|
-
engine.checkVersion("4.0.0-beta.
|
|
20344
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20201
20345
|
await engine.pluginManager.register((e) => {
|
|
20202
20346
|
ensureBaseMoverLoaded(e);
|
|
20203
20347
|
e.pluginManager.addPathGenerator?.(svgPathName, container => {
|
|
@@ -20238,7 +20382,7 @@
|
|
|
20238
20382
|
}
|
|
20239
20383
|
|
|
20240
20384
|
async function loadShadowEffect(engine) {
|
|
20241
|
-
engine.checkVersion("4.0.0-beta.
|
|
20385
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20242
20386
|
await engine.pluginManager.register(e => {
|
|
20243
20387
|
e.pluginManager.addEffect("shadow", container => {
|
|
20244
20388
|
return Promise.resolve(new ShadowDrawer(e.pluginManager, container));
|
|
@@ -20260,7 +20404,7 @@
|
|
|
20260
20404
|
|
|
20261
20405
|
const simplexNoisePathName = "simplexNoise";
|
|
20262
20406
|
async function loadSimplexNoisePath(engine) {
|
|
20263
|
-
engine.checkVersion("4.0.0-beta.
|
|
20407
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20264
20408
|
await engine.pluginManager.register((e) => {
|
|
20265
20409
|
ensureBaseMoverLoaded(e);
|
|
20266
20410
|
e.pluginManager.addPathGenerator?.(simplexNoisePathName, container => {
|
|
@@ -20642,7 +20786,7 @@
|
|
|
20642
20786
|
}
|
|
20643
20787
|
|
|
20644
20788
|
async function loadSoundsPlugin(engine) {
|
|
20645
|
-
engine.checkVersion("4.0.0-beta.
|
|
20789
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20646
20790
|
await engine.pluginManager.register(e => {
|
|
20647
20791
|
e.pluginManager.addPlugin(new SoundsPlugin(e));
|
|
20648
20792
|
});
|
|
@@ -20711,7 +20855,7 @@
|
|
|
20711
20855
|
|
|
20712
20856
|
const spiralPathName = "spiralPathGenerator";
|
|
20713
20857
|
async function loadSpiralPath(engine) {
|
|
20714
|
-
engine.checkVersion("4.0.0-beta.
|
|
20858
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20715
20859
|
await engine.pluginManager.register((e) => {
|
|
20716
20860
|
ensureBaseMoverLoaded(e);
|
|
20717
20861
|
e.pluginManager.addPathGenerator?.(spiralPathName, container => {
|
|
@@ -20751,7 +20895,7 @@
|
|
|
20751
20895
|
}
|
|
20752
20896
|
|
|
20753
20897
|
async function loadSpiralShape(engine) {
|
|
20754
|
-
engine.checkVersion("4.0.0-beta.
|
|
20898
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20755
20899
|
await engine.pluginManager.register(e => {
|
|
20756
20900
|
e.pluginManager.addShape(["spiral"], () => Promise.resolve(new SpiralDrawer()));
|
|
20757
20901
|
});
|
|
@@ -20795,7 +20939,7 @@
|
|
|
20795
20939
|
}
|
|
20796
20940
|
|
|
20797
20941
|
async function loadSquircleShape(engine) {
|
|
20798
|
-
engine.checkVersion("4.0.0-beta.
|
|
20942
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20799
20943
|
await engine.pluginManager.register(e => {
|
|
20800
20944
|
e.pluginManager.addShape(["squircle"], () => Promise.resolve(new SquircleDrawer()));
|
|
20801
20945
|
});
|
|
@@ -20916,7 +21060,7 @@
|
|
|
20916
21060
|
}
|
|
20917
21061
|
|
|
20918
21062
|
async function loadThemesPlugin(engine) {
|
|
20919
|
-
engine.checkVersion("4.0.0-beta.
|
|
21063
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
20920
21064
|
await engine.pluginManager.register(e => {
|
|
20921
21065
|
e.pluginManager.addPlugin(new ThemesPlugin());
|
|
20922
21066
|
});
|
|
@@ -20999,7 +21143,7 @@
|
|
|
20999
21143
|
}
|
|
21000
21144
|
|
|
21001
21145
|
async function loadTrailEffect(engine) {
|
|
21002
|
-
engine.checkVersion("4.0.0-beta.
|
|
21146
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
21003
21147
|
await engine.pluginManager.register(e => {
|
|
21004
21148
|
e.pluginManager.addEffect("trail", container => {
|
|
21005
21149
|
return Promise.resolve(new TrailDrawer(container));
|
|
@@ -21074,7 +21218,7 @@
|
|
|
21074
21218
|
}
|
|
21075
21219
|
|
|
21076
21220
|
async function loadTrailPlugin(engine) {
|
|
21077
|
-
engine.checkVersion("4.0.0-beta.
|
|
21221
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
21078
21222
|
await engine.pluginManager.register(e => {
|
|
21079
21223
|
e.pluginManager.addPlugin(new TrailPlugin(e.pluginManager));
|
|
21080
21224
|
});
|
|
@@ -21123,7 +21267,7 @@
|
|
|
21123
21267
|
|
|
21124
21268
|
const zigZagPathName = "zigZagPathGenerator";
|
|
21125
21269
|
async function loadZigZagPath(engine) {
|
|
21126
|
-
engine.checkVersion("4.0.0-beta.
|
|
21270
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
21127
21271
|
await engine.pluginManager.register((e) => {
|
|
21128
21272
|
ensureBaseMoverLoaded(e);
|
|
21129
21273
|
e.pluginManager.addPathGenerator?.(zigZagPathName, container => {
|
|
@@ -21191,14 +21335,14 @@
|
|
|
21191
21335
|
}
|
|
21192
21336
|
|
|
21193
21337
|
async function loadZoomPlugin(engine) {
|
|
21194
|
-
engine.checkVersion("4.0.0-beta.
|
|
21338
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
21195
21339
|
await engine.pluginManager.register(e => {
|
|
21196
21340
|
e.pluginManager.addPlugin(new ZoomPlugin());
|
|
21197
21341
|
});
|
|
21198
21342
|
}
|
|
21199
21343
|
|
|
21200
21344
|
async function loadAll(engine) {
|
|
21201
|
-
engine.checkVersion("4.0.0-beta.
|
|
21345
|
+
engine.checkVersion("4.0.0-beta.17");
|
|
21202
21346
|
await engine.pluginManager.register(async (e) => {
|
|
21203
21347
|
const loadInteractionsForAll = async (e) => {
|
|
21204
21348
|
await loadFull(e);
|
|
@@ -21592,6 +21736,25 @@
|
|
|
21592
21736
|
};
|
|
21593
21737
|
}
|
|
21594
21738
|
|
|
21739
|
+
const transferredCanvases = new WeakMap(), getTransferredCanvas = (canvas) => {
|
|
21740
|
+
const transferredCanvas = transferredCanvases.get(canvas);
|
|
21741
|
+
if (transferredCanvas) {
|
|
21742
|
+
return transferredCanvas;
|
|
21743
|
+
}
|
|
21744
|
+
if (typeof canvas.transferControlToOffscreen !== "function") {
|
|
21745
|
+
throw new TypeError("OffscreenCanvas is required but not supported by this browser");
|
|
21746
|
+
}
|
|
21747
|
+
try {
|
|
21748
|
+
const offscreenCanvas = canvas.transferControlToOffscreen();
|
|
21749
|
+
transferredCanvases.set(canvas, offscreenCanvas);
|
|
21750
|
+
return offscreenCanvas;
|
|
21751
|
+
}
|
|
21752
|
+
catch {
|
|
21753
|
+
throw new TypeError("OffscreenCanvas transfer failed");
|
|
21754
|
+
}
|
|
21755
|
+
}, isHtmlCanvasElement = (canvas) => {
|
|
21756
|
+
return typeof HTMLCanvasElement !== "undefined" && canvas instanceof HTMLCanvasElement;
|
|
21757
|
+
};
|
|
21595
21758
|
function setStyle(canvas, style, important = false) {
|
|
21596
21759
|
if (!style) {
|
|
21597
21760
|
return;
|
|
@@ -21622,8 +21785,9 @@
|
|
|
21622
21785
|
}
|
|
21623
21786
|
}
|
|
21624
21787
|
class CanvasManager {
|
|
21625
|
-
|
|
21788
|
+
domElement;
|
|
21626
21789
|
render;
|
|
21790
|
+
renderCanvas;
|
|
21627
21791
|
size;
|
|
21628
21792
|
zoom = defaultZoom;
|
|
21629
21793
|
_container;
|
|
@@ -21658,9 +21822,10 @@
|
|
|
21658
21822
|
destroy() {
|
|
21659
21823
|
this.stop();
|
|
21660
21824
|
if (this._generated) {
|
|
21661
|
-
const element = this.
|
|
21825
|
+
const element = this.domElement;
|
|
21662
21826
|
element?.remove();
|
|
21663
|
-
this.
|
|
21827
|
+
this.domElement = undefined;
|
|
21828
|
+
this.renderCanvas = undefined;
|
|
21664
21829
|
}
|
|
21665
21830
|
else {
|
|
21666
21831
|
this._resetOriginalStyle();
|
|
@@ -21693,16 +21858,17 @@
|
|
|
21693
21858
|
this._initStyle();
|
|
21694
21859
|
this.initBackground();
|
|
21695
21860
|
this._safeMutationObserver(obs => {
|
|
21696
|
-
|
|
21861
|
+
const element = this.domElement;
|
|
21862
|
+
if (!element || !(element instanceof Node)) {
|
|
21697
21863
|
return;
|
|
21698
21864
|
}
|
|
21699
|
-
obs.observe(
|
|
21865
|
+
obs.observe(element, { attributes: true });
|
|
21700
21866
|
});
|
|
21701
21867
|
this.initPlugins();
|
|
21702
21868
|
this.render.init();
|
|
21703
21869
|
}
|
|
21704
21870
|
initBackground() {
|
|
21705
|
-
const { _container } = this, options = _container.actualOptions, background = options.background, element = this.
|
|
21871
|
+
const { _container } = this, options = _container.actualOptions, background = options.background, element = this.domElement;
|
|
21706
21872
|
if (!element) {
|
|
21707
21873
|
return;
|
|
21708
21874
|
}
|
|
@@ -21727,21 +21893,30 @@
|
|
|
21727
21893
|
}
|
|
21728
21894
|
}
|
|
21729
21895
|
loadCanvas(canvas) {
|
|
21730
|
-
if (this._generated && this.
|
|
21731
|
-
this.
|
|
21896
|
+
if (this._generated && this.domElement) {
|
|
21897
|
+
this.domElement.remove();
|
|
21898
|
+
}
|
|
21899
|
+
const container = this._container, domCanvas = isHtmlCanvasElement(canvas) ? canvas : undefined;
|
|
21900
|
+
this.domElement = domCanvas;
|
|
21901
|
+
this._generated = domCanvas ? domCanvas.dataset[generatedAttribute] === "true" : false;
|
|
21902
|
+
this.renderCanvas = domCanvas ? getTransferredCanvas(domCanvas) : canvas;
|
|
21903
|
+
const domElement = this.domElement;
|
|
21904
|
+
if (domElement) {
|
|
21905
|
+
domElement.ariaHidden = "true";
|
|
21906
|
+
this._originalStyle = cloneStyle(domElement.style);
|
|
21907
|
+
}
|
|
21908
|
+
const standardSize = this._standardSize, renderCanvas = this.renderCanvas;
|
|
21909
|
+
if (domElement) {
|
|
21910
|
+
standardSize.height = domElement.offsetHeight;
|
|
21911
|
+
standardSize.width = domElement.offsetWidth;
|
|
21912
|
+
}
|
|
21913
|
+
else {
|
|
21914
|
+
standardSize.height = renderCanvas.height;
|
|
21915
|
+
standardSize.width = renderCanvas.width;
|
|
21732
21916
|
}
|
|
21733
|
-
const container = this._container;
|
|
21734
|
-
this._generated =
|
|
21735
|
-
generatedAttribute in canvas.dataset ? canvas.dataset[generatedAttribute] === "true" : this._generated;
|
|
21736
|
-
this.element = canvas;
|
|
21737
|
-
this.element.ariaHidden = "true";
|
|
21738
|
-
this._originalStyle = cloneStyle(this.element.style);
|
|
21739
|
-
const standardSize = this._standardSize;
|
|
21740
|
-
standardSize.height = canvas.offsetHeight;
|
|
21741
|
-
standardSize.width = canvas.offsetWidth;
|
|
21742
21917
|
const pxRatio = this._container.retina.pixelRatio, retinaSize = this.size;
|
|
21743
|
-
|
|
21744
|
-
|
|
21918
|
+
renderCanvas.height = retinaSize.height = standardSize.height * pxRatio;
|
|
21919
|
+
renderCanvas.width = retinaSize.width = standardSize.width * pxRatio;
|
|
21745
21920
|
const canSupportHdrQuery = safeMatchMedia("(color-gamut: p3)");
|
|
21746
21921
|
this.render.setContextSettings({
|
|
21747
21922
|
alpha: true,
|
|
@@ -21749,42 +21924,48 @@
|
|
|
21749
21924
|
desynchronized: true,
|
|
21750
21925
|
willReadFrequently: false,
|
|
21751
21926
|
});
|
|
21752
|
-
this.render.setContext(
|
|
21927
|
+
this.render.setContext(renderCanvas.getContext("2d", this.render.settings));
|
|
21753
21928
|
this._safeMutationObserver(obs => {
|
|
21754
21929
|
obs.disconnect();
|
|
21755
21930
|
});
|
|
21756
21931
|
container.retina.init();
|
|
21757
21932
|
this.initBackground();
|
|
21758
21933
|
this._safeMutationObserver(obs => {
|
|
21759
|
-
|
|
21934
|
+
const element = this.domElement;
|
|
21935
|
+
if (!element || !(element instanceof Node)) {
|
|
21760
21936
|
return;
|
|
21761
21937
|
}
|
|
21762
|
-
obs.observe(
|
|
21938
|
+
obs.observe(element, { attributes: true });
|
|
21763
21939
|
});
|
|
21764
21940
|
}
|
|
21765
21941
|
resize() {
|
|
21766
|
-
|
|
21942
|
+
const element = this.domElement;
|
|
21943
|
+
if (!element) {
|
|
21944
|
+
return false;
|
|
21945
|
+
}
|
|
21946
|
+
const container = this._container, renderCanvas = this.renderCanvas;
|
|
21947
|
+
if (renderCanvas === undefined) {
|
|
21767
21948
|
return false;
|
|
21768
21949
|
}
|
|
21769
|
-
const
|
|
21770
|
-
width:
|
|
21771
|
-
height:
|
|
21950
|
+
const currentSize = container.canvas._standardSize, newSize = {
|
|
21951
|
+
width: element.offsetWidth,
|
|
21952
|
+
height: element.offsetHeight,
|
|
21772
21953
|
}, pxRatio = container.retina.pixelRatio, retinaSize = {
|
|
21773
21954
|
width: newSize.width * pxRatio,
|
|
21774
21955
|
height: newSize.height * pxRatio,
|
|
21775
21956
|
};
|
|
21776
21957
|
if (newSize.height === currentSize.height &&
|
|
21777
21958
|
newSize.width === currentSize.width &&
|
|
21778
|
-
retinaSize.height ===
|
|
21779
|
-
retinaSize.width ===
|
|
21959
|
+
retinaSize.height === renderCanvas.height &&
|
|
21960
|
+
retinaSize.width === renderCanvas.width) {
|
|
21780
21961
|
return false;
|
|
21781
21962
|
}
|
|
21782
21963
|
const oldSize = { ...currentSize };
|
|
21783
21964
|
currentSize.height = newSize.height;
|
|
21784
21965
|
currentSize.width = newSize.width;
|
|
21785
21966
|
const canvasSize = this.size;
|
|
21786
|
-
|
|
21787
|
-
|
|
21967
|
+
renderCanvas.width = canvasSize.width = retinaSize.width;
|
|
21968
|
+
renderCanvas.height = canvasSize.height = retinaSize.height;
|
|
21788
21969
|
if (this._container.started) {
|
|
21789
21970
|
container.particles.setResizeFactor({
|
|
21790
21971
|
width: currentSize.width / oldSize.width,
|
|
@@ -21794,7 +21975,7 @@
|
|
|
21794
21975
|
return true;
|
|
21795
21976
|
}
|
|
21796
21977
|
setPointerEvents(type) {
|
|
21797
|
-
const element = this.
|
|
21978
|
+
const element = this.domElement;
|
|
21798
21979
|
if (!element) {
|
|
21799
21980
|
return;
|
|
21800
21981
|
}
|
|
@@ -21813,7 +21994,7 @@
|
|
|
21813
21994
|
this.render.stop();
|
|
21814
21995
|
}
|
|
21815
21996
|
async windowResize() {
|
|
21816
|
-
if (!this.
|
|
21997
|
+
if (!this.domElement || !this.resize()) {
|
|
21817
21998
|
return;
|
|
21818
21999
|
}
|
|
21819
22000
|
const container = this._container, needsRefresh = container.updateActualOptions();
|
|
@@ -21829,7 +22010,7 @@
|
|
|
21829
22010
|
}
|
|
21830
22011
|
};
|
|
21831
22012
|
_initStyle = () => {
|
|
21832
|
-
const element = this.
|
|
22013
|
+
const element = this.domElement, options = this._container.actualOptions;
|
|
21833
22014
|
if (!element) {
|
|
21834
22015
|
return;
|
|
21835
22016
|
}
|
|
@@ -21851,7 +22032,7 @@
|
|
|
21851
22032
|
}
|
|
21852
22033
|
};
|
|
21853
22034
|
_repairStyle = () => {
|
|
21854
|
-
const element = this.
|
|
22035
|
+
const element = this.domElement;
|
|
21855
22036
|
if (!element) {
|
|
21856
22037
|
return;
|
|
21857
22038
|
}
|
|
@@ -21871,7 +22052,7 @@
|
|
|
21871
22052
|
});
|
|
21872
22053
|
};
|
|
21873
22054
|
_resetOriginalStyle = () => {
|
|
21874
|
-
const element = this.
|
|
22055
|
+
const element = this.domElement, originalStyle = this._originalStyle;
|
|
21875
22056
|
if (!element || !originalStyle) {
|
|
21876
22057
|
return;
|
|
21877
22058
|
}
|
|
@@ -21884,7 +22065,7 @@
|
|
|
21884
22065
|
callback(this._mutationObserver);
|
|
21885
22066
|
};
|
|
21886
22067
|
_setFullScreenStyle = () => {
|
|
21887
|
-
const element = this.
|
|
22068
|
+
const element = this.domElement;
|
|
21888
22069
|
if (!element) {
|
|
21889
22070
|
return;
|
|
21890
22071
|
}
|
|
@@ -21958,7 +22139,7 @@
|
|
|
21958
22139
|
manageListener(globalThis, resizeEvent, handlers.resize, add);
|
|
21959
22140
|
return;
|
|
21960
22141
|
}
|
|
21961
|
-
const canvasEl = container.canvas.
|
|
22142
|
+
const canvasEl = container.canvas.domElement;
|
|
21962
22143
|
if (this._resizeObserver && !add) {
|
|
21963
22144
|
if (canvasEl) {
|
|
21964
22145
|
this._resizeObserver.unobserve(canvasEl);
|
|
@@ -22213,8 +22394,6 @@
|
|
|
22213
22394
|
this._initPosition(position);
|
|
22214
22395
|
this.initialVelocity = this._calculateVelocity();
|
|
22215
22396
|
this.velocity = this.initialVelocity.copy();
|
|
22216
|
-
const particles = container.particles;
|
|
22217
|
-
particles.setLastZIndex(this.position.z);
|
|
22218
22397
|
this.zIndexFactor = this.position.z / container.zLayers;
|
|
22219
22398
|
this.sides = 24;
|
|
22220
22399
|
let effectDrawer, shapeDrawer;
|
|
@@ -22364,7 +22543,7 @@
|
|
|
22364
22543
|
return color;
|
|
22365
22544
|
};
|
|
22366
22545
|
_initPosition = position => {
|
|
22367
|
-
const container = this._container, zIndexValue = getRangeValue(this.options.zIndex.value), initialPosition = this._calcPosition(position, clamp(zIndexValue, minZ, container.zLayers));
|
|
22546
|
+
const container = this._container, zIndexValue = Math.floor(getRangeValue(this.options.zIndex.value)), initialPosition = this._calcPosition(position, clamp(zIndexValue, minZ, container.zLayers));
|
|
22368
22547
|
if (!initialPosition) {
|
|
22369
22548
|
throw new Error("a valid position cannot be found for particle");
|
|
22370
22549
|
}
|
|
@@ -22498,10 +22677,8 @@
|
|
|
22498
22677
|
_container;
|
|
22499
22678
|
_groupLimits;
|
|
22500
22679
|
_limit;
|
|
22501
|
-
_maxZIndex;
|
|
22502
|
-
_minZIndex;
|
|
22503
|
-
_needsSort;
|
|
22504
22680
|
_nextId;
|
|
22681
|
+
_particleBuckets;
|
|
22505
22682
|
_particleResetPlugins;
|
|
22506
22683
|
_particleUpdatePlugins;
|
|
22507
22684
|
_pluginManager;
|
|
@@ -22510,19 +22687,17 @@
|
|
|
22510
22687
|
_postUpdatePlugins;
|
|
22511
22688
|
_resizeFactor;
|
|
22512
22689
|
_updatePlugins;
|
|
22513
|
-
|
|
22690
|
+
_zBuckets;
|
|
22514
22691
|
constructor(pluginManager, container) {
|
|
22515
22692
|
this._pluginManager = pluginManager;
|
|
22516
22693
|
this._container = container;
|
|
22517
22694
|
this._nextId = 0;
|
|
22518
22695
|
this._array = [];
|
|
22519
|
-
this._zArray = [];
|
|
22520
22696
|
this._pool = [];
|
|
22521
22697
|
this._limit = 0;
|
|
22522
22698
|
this._groupLimits = new Map();
|
|
22523
|
-
this.
|
|
22524
|
-
this.
|
|
22525
|
-
this._maxZIndex = 0;
|
|
22699
|
+
this._particleBuckets = new Map();
|
|
22700
|
+
this._zBuckets = this._createBuckets(this._container.zLayers);
|
|
22526
22701
|
this.grid = new SpatialHashGrid(spatialHashGridCellSize);
|
|
22527
22702
|
this.checkParticlePositionPlugins = [];
|
|
22528
22703
|
this._particleResetPlugins = [];
|
|
@@ -22564,7 +22739,7 @@
|
|
|
22564
22739
|
return;
|
|
22565
22740
|
}
|
|
22566
22741
|
this._array.push(particle);
|
|
22567
|
-
this.
|
|
22742
|
+
this._insertParticleIntoBucket(particle);
|
|
22568
22743
|
this._nextId++;
|
|
22569
22744
|
this._container.dispatchEvent(exports.EventType.particleAdded, {
|
|
22570
22745
|
particle,
|
|
@@ -22578,12 +22753,14 @@
|
|
|
22578
22753
|
}
|
|
22579
22754
|
clear() {
|
|
22580
22755
|
this._array = [];
|
|
22581
|
-
this.
|
|
22756
|
+
this._particleBuckets.clear();
|
|
22757
|
+
this._resetBuckets(this._container.zLayers);
|
|
22582
22758
|
}
|
|
22583
22759
|
destroy() {
|
|
22584
22760
|
this._array = [];
|
|
22585
22761
|
this._pool.length = 0;
|
|
22586
|
-
this.
|
|
22762
|
+
this._particleBuckets.clear();
|
|
22763
|
+
this._zBuckets = [];
|
|
22587
22764
|
this.checkParticlePositionPlugins = [];
|
|
22588
22765
|
this._particleResetPlugins = [];
|
|
22589
22766
|
this._particleUpdatePlugins = [];
|
|
@@ -22592,8 +22769,14 @@
|
|
|
22592
22769
|
this._updatePlugins = [];
|
|
22593
22770
|
}
|
|
22594
22771
|
drawParticles(delta) {
|
|
22595
|
-
for (
|
|
22596
|
-
|
|
22772
|
+
for (let i = this._zBuckets.length - one; i >= minIndex$1; i--) {
|
|
22773
|
+
const bucket = this._zBuckets[i];
|
|
22774
|
+
if (!bucket) {
|
|
22775
|
+
continue;
|
|
22776
|
+
}
|
|
22777
|
+
for (const particle of bucket) {
|
|
22778
|
+
particle.draw(delta);
|
|
22779
|
+
}
|
|
22597
22780
|
}
|
|
22598
22781
|
}
|
|
22599
22782
|
filter(condition) {
|
|
@@ -22607,15 +22790,14 @@
|
|
|
22607
22790
|
}
|
|
22608
22791
|
async init() {
|
|
22609
22792
|
const container = this._container, options = container.actualOptions;
|
|
22610
|
-
this._minZIndex = 0;
|
|
22611
|
-
this._maxZIndex = 0;
|
|
22612
|
-
this._needsSort = false;
|
|
22613
22793
|
this.checkParticlePositionPlugins = [];
|
|
22614
22794
|
this._updatePlugins = [];
|
|
22615
22795
|
this._particleUpdatePlugins = [];
|
|
22616
22796
|
this._postUpdatePlugins = [];
|
|
22617
22797
|
this._particleResetPlugins = [];
|
|
22618
22798
|
this._postParticleUpdatePlugins = [];
|
|
22799
|
+
this._particleBuckets.clear();
|
|
22800
|
+
this._resetBuckets(container.zLayers);
|
|
22619
22801
|
this.grid = new SpatialHashGrid(spatialHashGridCellSize * container.retina.pixelRatio);
|
|
22620
22802
|
for (const plugin of container.plugins) {
|
|
22621
22803
|
if (plugin.redrawInit) {
|
|
@@ -22716,79 +22898,25 @@
|
|
|
22716
22898
|
}
|
|
22717
22899
|
this._applyDensity(options.particles, pluginsCount);
|
|
22718
22900
|
}
|
|
22719
|
-
setLastZIndex(zIndex) {
|
|
22720
|
-
this._needsSort ||= zIndex >= this._maxZIndex || (zIndex > this._minZIndex && zIndex < this._maxZIndex);
|
|
22721
|
-
}
|
|
22722
22901
|
setResizeFactor(factor) {
|
|
22723
22902
|
this._resizeFactor = factor;
|
|
22724
22903
|
}
|
|
22725
22904
|
update(delta) {
|
|
22726
|
-
const particlesToDelete = new Set();
|
|
22727
22905
|
this.grid.clear();
|
|
22728
22906
|
for (const plugin of this._updatePlugins) {
|
|
22729
22907
|
plugin.update?.(delta);
|
|
22730
22908
|
}
|
|
22731
|
-
const
|
|
22732
|
-
for (const particle of this._array) {
|
|
22733
|
-
if (resizeFactor && !particle.ignoresResizeRatio) {
|
|
22734
|
-
particle.position.x *= resizeFactor.width;
|
|
22735
|
-
particle.position.y *= resizeFactor.height;
|
|
22736
|
-
particle.initialPosition.x *= resizeFactor.width;
|
|
22737
|
-
particle.initialPosition.y *= resizeFactor.height;
|
|
22738
|
-
}
|
|
22739
|
-
particle.ignoresResizeRatio = false;
|
|
22740
|
-
for (const plugin of this._particleResetPlugins) {
|
|
22741
|
-
plugin.particleReset?.(particle);
|
|
22742
|
-
}
|
|
22743
|
-
for (const plugin of this._particleUpdatePlugins) {
|
|
22744
|
-
if (particle.destroyed) {
|
|
22745
|
-
break;
|
|
22746
|
-
}
|
|
22747
|
-
plugin.particleUpdate?.(particle, delta);
|
|
22748
|
-
}
|
|
22749
|
-
if (particle.destroyed) {
|
|
22750
|
-
particlesToDelete.add(particle);
|
|
22751
|
-
continue;
|
|
22752
|
-
}
|
|
22753
|
-
this.grid.insert(particle);
|
|
22754
|
-
}
|
|
22909
|
+
const particlesToDelete = this._updateParticlesPhase1(delta);
|
|
22755
22910
|
for (const plugin of this._postUpdatePlugins) {
|
|
22756
22911
|
plugin.postUpdate?.(delta);
|
|
22757
22912
|
}
|
|
22758
|
-
|
|
22759
|
-
if (particle.destroyed) {
|
|
22760
|
-
particlesToDelete.add(particle);
|
|
22761
|
-
continue;
|
|
22762
|
-
}
|
|
22763
|
-
for (const updater of this._container.particleUpdaters) {
|
|
22764
|
-
updater.update(particle, delta);
|
|
22765
|
-
}
|
|
22766
|
-
if (!particle.destroyed && !particle.spawning) {
|
|
22767
|
-
for (const plugin of this._postParticleUpdatePlugins) {
|
|
22768
|
-
plugin.postParticleUpdate?.(particle, delta);
|
|
22769
|
-
}
|
|
22770
|
-
}
|
|
22771
|
-
else if (particle.destroyed) {
|
|
22772
|
-
particlesToDelete.add(particle);
|
|
22773
|
-
}
|
|
22774
|
-
}
|
|
22913
|
+
this._updateParticlesPhase2(delta, particlesToDelete);
|
|
22775
22914
|
if (particlesToDelete.size) {
|
|
22776
22915
|
for (const particle of particlesToDelete) {
|
|
22777
22916
|
this.remove(particle);
|
|
22778
22917
|
}
|
|
22779
22918
|
}
|
|
22780
22919
|
delete this._resizeFactor;
|
|
22781
|
-
if (this._needsSort) {
|
|
22782
|
-
const zArray = this._zArray;
|
|
22783
|
-
zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);
|
|
22784
|
-
const firstItem = zArray[minIndex$1], lastItem = zArray[zArray.length - lengthOffset];
|
|
22785
|
-
if (!firstItem || !lastItem) {
|
|
22786
|
-
return;
|
|
22787
|
-
}
|
|
22788
|
-
this._maxZIndex = firstItem.position.z;
|
|
22789
|
-
this._minZIndex = lastItem.position.z;
|
|
22790
|
-
this._needsSort = false;
|
|
22791
|
-
}
|
|
22792
22920
|
}
|
|
22793
22921
|
_addToPool = (...particles) => {
|
|
22794
22922
|
this._pool.push(...particles);
|
|
@@ -22818,13 +22946,52 @@
|
|
|
22818
22946
|
this.removeQuantity(particlesCount - particlesNumber, group);
|
|
22819
22947
|
}
|
|
22820
22948
|
};
|
|
22949
|
+
_createBuckets = (zLayers) => {
|
|
22950
|
+
const bucketCount = Math.max(Math.floor(zLayers), one);
|
|
22951
|
+
return Array.from({ length: bucketCount }, () => []);
|
|
22952
|
+
};
|
|
22953
|
+
_getBucketIndex = (zIndex) => {
|
|
22954
|
+
const maxBucketIndex = this._zBuckets.length - one;
|
|
22955
|
+
if (maxBucketIndex <= minIndex$1) {
|
|
22956
|
+
return minIndex$1;
|
|
22957
|
+
}
|
|
22958
|
+
return Math.min(Math.max(Math.floor(zIndex), minIndex$1), maxBucketIndex);
|
|
22959
|
+
};
|
|
22960
|
+
_getParticleInsertIndex = (bucket, particleId) => {
|
|
22961
|
+
let start = minIndex$1, end = bucket.length;
|
|
22962
|
+
while (start < end) {
|
|
22963
|
+
const middle = Math.floor((start + end) / double), middleParticle = bucket[middle];
|
|
22964
|
+
if (!middleParticle) {
|
|
22965
|
+
end = middle;
|
|
22966
|
+
continue;
|
|
22967
|
+
}
|
|
22968
|
+
if (middleParticle.id < particleId) {
|
|
22969
|
+
start = middle + one;
|
|
22970
|
+
}
|
|
22971
|
+
else {
|
|
22972
|
+
end = middle;
|
|
22973
|
+
}
|
|
22974
|
+
}
|
|
22975
|
+
return start;
|
|
22976
|
+
};
|
|
22821
22977
|
_initDensityFactor = densityOptions => {
|
|
22822
22978
|
const container = this._container;
|
|
22823
|
-
if (!
|
|
22979
|
+
if (!densityOptions.enable) {
|
|
22980
|
+
return defaultDensityFactor;
|
|
22981
|
+
}
|
|
22982
|
+
const canvasSize = container.canvas.size, pxRatio = container.retina.pixelRatio;
|
|
22983
|
+
if (!canvasSize.width || !canvasSize.height) {
|
|
22824
22984
|
return defaultDensityFactor;
|
|
22825
22985
|
}
|
|
22826
|
-
|
|
22827
|
-
|
|
22986
|
+
return ((canvasSize.width * canvasSize.height) / (densityOptions.height * densityOptions.width * pxRatio ** squareExp$5));
|
|
22987
|
+
};
|
|
22988
|
+
_insertParticleIntoBucket = (particle) => {
|
|
22989
|
+
const bucketIndex = this._getBucketIndex(particle.position.z), bucket = this._zBuckets[bucketIndex];
|
|
22990
|
+
if (!bucket) {
|
|
22991
|
+
return;
|
|
22992
|
+
}
|
|
22993
|
+
bucket.splice(this._getParticleInsertIndex(bucket, particle.id), empty$1, particle);
|
|
22994
|
+
this._particleBuckets.set(particle.id, bucketIndex);
|
|
22828
22995
|
};
|
|
22829
22996
|
_removeParticle = (index, group, override) => {
|
|
22830
22997
|
const particle = this._array[index];
|
|
@@ -22834,9 +23001,8 @@
|
|
|
22834
23001
|
if (particle.group !== group) {
|
|
22835
23002
|
return false;
|
|
22836
23003
|
}
|
|
22837
|
-
const zIdx = this._zArray.indexOf(particle);
|
|
22838
23004
|
this._array.splice(index, deleteCount);
|
|
22839
|
-
this.
|
|
23005
|
+
this._removeParticleFromBucket(particle);
|
|
22840
23006
|
particle.destroy(override);
|
|
22841
23007
|
this._container.dispatchEvent(exports.EventType.particleRemoved, {
|
|
22842
23008
|
particle,
|
|
@@ -22844,6 +23010,98 @@
|
|
|
22844
23010
|
this._addToPool(particle);
|
|
22845
23011
|
return true;
|
|
22846
23012
|
};
|
|
23013
|
+
_removeParticleFromBucket = (particle) => {
|
|
23014
|
+
const bucketIndex = this._particleBuckets.get(particle.id) ?? this._getBucketIndex(particle.position.z), bucket = this._zBuckets[bucketIndex];
|
|
23015
|
+
if (!bucket) {
|
|
23016
|
+
this._particleBuckets.delete(particle.id);
|
|
23017
|
+
return;
|
|
23018
|
+
}
|
|
23019
|
+
const particleIndex = this._getParticleInsertIndex(bucket, particle.id);
|
|
23020
|
+
if (bucket[particleIndex]?.id !== particle.id) {
|
|
23021
|
+
this._particleBuckets.delete(particle.id);
|
|
23022
|
+
return;
|
|
23023
|
+
}
|
|
23024
|
+
bucket.splice(particleIndex, deleteCount);
|
|
23025
|
+
this._particleBuckets.delete(particle.id);
|
|
23026
|
+
};
|
|
23027
|
+
_resetBuckets = (zLayers) => {
|
|
23028
|
+
const bucketCount = Math.max(Math.floor(zLayers), one);
|
|
23029
|
+
if (this._zBuckets.length !== bucketCount) {
|
|
23030
|
+
this._zBuckets = this._createBuckets(bucketCount);
|
|
23031
|
+
return;
|
|
23032
|
+
}
|
|
23033
|
+
for (const bucket of this._zBuckets) {
|
|
23034
|
+
bucket.length = minIndex$1;
|
|
23035
|
+
}
|
|
23036
|
+
};
|
|
23037
|
+
_updateParticleBucket = (particle) => {
|
|
23038
|
+
const newBucketIndex = this._getBucketIndex(particle.position.z), currentBucketIndex = this._particleBuckets.get(particle.id);
|
|
23039
|
+
if (currentBucketIndex === undefined) {
|
|
23040
|
+
this._insertParticleIntoBucket(particle);
|
|
23041
|
+
return;
|
|
23042
|
+
}
|
|
23043
|
+
if (currentBucketIndex === newBucketIndex) {
|
|
23044
|
+
return;
|
|
23045
|
+
}
|
|
23046
|
+
const currentBucket = this._zBuckets[currentBucketIndex];
|
|
23047
|
+
if (currentBucket) {
|
|
23048
|
+
const particleIndex = this._getParticleInsertIndex(currentBucket, particle.id);
|
|
23049
|
+
if (currentBucket[particleIndex]?.id === particle.id) {
|
|
23050
|
+
currentBucket.splice(particleIndex, deleteCount);
|
|
23051
|
+
}
|
|
23052
|
+
}
|
|
23053
|
+
const newBucket = this._zBuckets[newBucketIndex];
|
|
23054
|
+
if (!newBucket) {
|
|
23055
|
+
this._particleBuckets.set(particle.id, newBucketIndex);
|
|
23056
|
+
return;
|
|
23057
|
+
}
|
|
23058
|
+
newBucket.splice(this._getParticleInsertIndex(newBucket, particle.id), empty$1, particle);
|
|
23059
|
+
this._particleBuckets.set(particle.id, newBucketIndex);
|
|
23060
|
+
};
|
|
23061
|
+
_updateParticlesPhase1 = (delta) => {
|
|
23062
|
+
const particlesToDelete = new Set(), resizeFactor = this._resizeFactor;
|
|
23063
|
+
for (const particle of this._array) {
|
|
23064
|
+
if (resizeFactor && !particle.ignoresResizeRatio) {
|
|
23065
|
+
particle.position.x *= resizeFactor.width;
|
|
23066
|
+
particle.position.y *= resizeFactor.height;
|
|
23067
|
+
particle.initialPosition.x *= resizeFactor.width;
|
|
23068
|
+
particle.initialPosition.y *= resizeFactor.height;
|
|
23069
|
+
}
|
|
23070
|
+
particle.ignoresResizeRatio = false;
|
|
23071
|
+
for (const plugin of this._particleResetPlugins) {
|
|
23072
|
+
plugin.particleReset?.(particle);
|
|
23073
|
+
}
|
|
23074
|
+
for (const plugin of this._particleUpdatePlugins) {
|
|
23075
|
+
if (particle.destroyed) {
|
|
23076
|
+
break;
|
|
23077
|
+
}
|
|
23078
|
+
plugin.particleUpdate?.(particle, delta);
|
|
23079
|
+
}
|
|
23080
|
+
if (particle.destroyed) {
|
|
23081
|
+
particlesToDelete.add(particle);
|
|
23082
|
+
continue;
|
|
23083
|
+
}
|
|
23084
|
+
this.grid.insert(particle);
|
|
23085
|
+
}
|
|
23086
|
+
return particlesToDelete;
|
|
23087
|
+
};
|
|
23088
|
+
_updateParticlesPhase2 = (delta, particlesToDelete) => {
|
|
23089
|
+
for (const particle of this._array) {
|
|
23090
|
+
if (particle.destroyed) {
|
|
23091
|
+
particlesToDelete.add(particle);
|
|
23092
|
+
continue;
|
|
23093
|
+
}
|
|
23094
|
+
for (const updater of this._container.particleUpdaters) {
|
|
23095
|
+
updater.update(particle, delta);
|
|
23096
|
+
}
|
|
23097
|
+
if (!particle.spawning) {
|
|
23098
|
+
for (const plugin of this._postParticleUpdatePlugins) {
|
|
23099
|
+
plugin.postParticleUpdate?.(particle, delta);
|
|
23100
|
+
}
|
|
23101
|
+
}
|
|
23102
|
+
this._updateParticleBucket(particle);
|
|
23103
|
+
}
|
|
23104
|
+
};
|
|
22847
23105
|
}
|
|
22848
23106
|
|
|
22849
23107
|
class Retina {
|
|
@@ -22859,9 +23117,8 @@
|
|
|
22859
23117
|
const container = this.container, options = container.actualOptions;
|
|
22860
23118
|
this.pixelRatio = options.detectRetina ? devicePixelRatio : defaultRatio$1;
|
|
22861
23119
|
this.reduceFactor = defaultReduceFactor;
|
|
22862
|
-
const ratio = this.pixelRatio, canvas = container.canvas;
|
|
22863
|
-
if (
|
|
22864
|
-
const element = canvas.element;
|
|
23120
|
+
const ratio = this.pixelRatio, canvas = container.canvas, element = canvas.domElement;
|
|
23121
|
+
if (element) {
|
|
22865
23122
|
canvas.size.width = element.offsetWidth * ratio;
|
|
22866
23123
|
canvas.size.height = element.offsetHeight * ratio;
|
|
22867
23124
|
}
|
|
@@ -23785,7 +24042,7 @@
|
|
|
23785
24042
|
return;
|
|
23786
24043
|
}
|
|
23787
24044
|
const html = interactivityEl, canvas = container.canvas;
|
|
23788
|
-
canvas.setPointerEvents(html === canvas.
|
|
24045
|
+
canvas.setPointerEvents(html === canvas.domElement ? "initial" : "none");
|
|
23789
24046
|
if (add && !(options.interactivity?.events.onHover.enable || options.interactivity?.events.onClick.enable)) {
|
|
23790
24047
|
return;
|
|
23791
24048
|
}
|
|
@@ -23812,7 +24069,7 @@
|
|
|
23812
24069
|
manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add);
|
|
23813
24070
|
};
|
|
23814
24071
|
_manageListeners = add => {
|
|
23815
|
-
const handlers = this._handlers, container = this._container, interactionManager = this._interactionManager, options = container.actualOptions, detectType = options.interactivity?.detectsOn, canvasEl = container.canvas.
|
|
24072
|
+
const handlers = this._handlers, container = this._container, interactionManager = this._interactionManager, options = container.actualOptions, detectType = options.interactivity?.detectsOn, canvasEl = container.canvas.domElement;
|
|
23816
24073
|
if (detectType === InteractivityDetect.window) {
|
|
23817
24074
|
interactionManager.interactivityData.element = safeDocument();
|
|
23818
24075
|
}
|
|
@@ -23859,7 +24116,7 @@
|
|
|
23859
24116
|
mouse.clicking = false;
|
|
23860
24117
|
};
|
|
23861
24118
|
_mouseTouchMove = e => {
|
|
23862
|
-
const container = this._container, interactionManager = this._interactionManager, options = container.actualOptions, interactivity = interactionManager.interactivityData, canvasEl = container.canvas.
|
|
24119
|
+
const container = this._container, interactionManager = this._interactionManager, options = container.actualOptions, interactivity = interactionManager.interactivityData, canvasEl = container.canvas.domElement;
|
|
23863
24120
|
if (!interactivity.element) {
|
|
23864
24121
|
return;
|
|
23865
24122
|
}
|
|
@@ -24020,7 +24277,7 @@
|
|
|
24020
24277
|
if (!lastTouch) {
|
|
24021
24278
|
return;
|
|
24022
24279
|
}
|
|
24023
|
-
const element = container.canvas.
|
|
24280
|
+
const element = container.canvas.domElement, canvasRect = element ? element.getBoundingClientRect() : undefined, pos = {
|
|
24024
24281
|
x: lastTouch.clientX - (canvasRect ? canvasRect.left : minCoordinate),
|
|
24025
24282
|
y: lastTouch.clientY - (canvasRect ? canvasRect.top : minCoordinate),
|
|
24026
24283
|
};
|
|
@@ -24390,7 +24647,7 @@
|
|
|
24390
24647
|
return res;
|
|
24391
24648
|
}
|
|
24392
24649
|
_exportImage = async (data) => {
|
|
24393
|
-
const element = this._container.canvas.
|
|
24650
|
+
const element = this._container.canvas.domElement;
|
|
24394
24651
|
if (!element) {
|
|
24395
24652
|
return;
|
|
24396
24653
|
}
|
|
@@ -24502,7 +24759,7 @@
|
|
|
24502
24759
|
return res;
|
|
24503
24760
|
}
|
|
24504
24761
|
_exportVideo = async (data) => {
|
|
24505
|
-
const element = this._container.canvas.
|
|
24762
|
+
const element = this._container.canvas.domElement;
|
|
24506
24763
|
if (!element) {
|
|
24507
24764
|
return;
|
|
24508
24765
|
}
|
|
@@ -27197,7 +27454,7 @@
|
|
|
27197
27454
|
setIconStyle(img, pos.top + margin, pos.right -
|
|
27198
27455
|
(margin * (rightOffsets.length + rightOffset) + width + rightOffsets.reduce((a, b) => a + b, defaultAccumulator)), display, options.fullScreen.zIndex + zIndexOffset, width, margin, style);
|
|
27199
27456
|
img.src = path ?? (svg ? `data:image/svg+xml;base64,${btoa(svg)}` : "");
|
|
27200
|
-
const parent = container.canvas.
|
|
27457
|
+
const parent = container.canvas.domElement?.parentNode ?? safeDocument().body;
|
|
27201
27458
|
parent.append(img);
|
|
27202
27459
|
img.addEventListener("click", () => {
|
|
27203
27460
|
void clickCb();
|
|
@@ -27285,11 +27542,11 @@
|
|
|
27285
27542
|
}
|
|
27286
27543
|
async start() {
|
|
27287
27544
|
const container = this._container, options = container.actualOptions, soundsOptions = options.sounds;
|
|
27288
|
-
if (!soundsOptions?.enable || !container.canvas.
|
|
27545
|
+
if (!soundsOptions?.enable || !container.canvas.domElement) {
|
|
27289
27546
|
return;
|
|
27290
27547
|
}
|
|
27291
27548
|
container.muted = true;
|
|
27292
|
-
const canvas = container.canvas.
|
|
27549
|
+
const canvas = container.canvas.domElement, pos = {
|
|
27293
27550
|
top: canvas.offsetTop,
|
|
27294
27551
|
right: canvas.offsetLeft + canvas.offsetWidth,
|
|
27295
27552
|
}, { mute, unmute, volumeDown, volumeUp } = soundsOptions.icons, margin = 10, toggleMute = async () => {
|
|
@@ -27400,7 +27657,7 @@
|
|
|
27400
27657
|
}
|
|
27401
27658
|
_initEvents = () => {
|
|
27402
27659
|
const container = this._container, soundsOptions = container.actualOptions.sounds;
|
|
27403
|
-
if (!soundsOptions?.enable || !container.canvas.
|
|
27660
|
+
if (!soundsOptions?.enable || !container.canvas.domElement) {
|
|
27404
27661
|
return;
|
|
27405
27662
|
}
|
|
27406
27663
|
for (const event of soundsOptions.events) {
|
|
@@ -27812,7 +28069,7 @@
|
|
|
27812
28069
|
this._manageListeners(false);
|
|
27813
28070
|
}
|
|
27814
28071
|
_handleGestureChange = (event) => {
|
|
27815
|
-
const container = this.container, canvas = container.canvas, canvasEl = canvas.
|
|
28072
|
+
const container = this.container, canvas = container.canvas, canvasEl = canvas.domElement;
|
|
27816
28073
|
if (!canvasEl) {
|
|
27817
28074
|
return;
|
|
27818
28075
|
}
|
|
@@ -27833,7 +28090,7 @@
|
|
|
27833
28090
|
this._gestureScale = scale;
|
|
27834
28091
|
};
|
|
27835
28092
|
_handleGestureEnd = (event) => {
|
|
27836
|
-
const container = this.container, canvas = container.canvas, canvasEl = canvas.
|
|
28093
|
+
const container = this.container, canvas = container.canvas, canvasEl = canvas.domElement;
|
|
27837
28094
|
if (!canvasEl) {
|
|
27838
28095
|
return;
|
|
27839
28096
|
}
|
|
@@ -27848,7 +28105,7 @@
|
|
|
27848
28105
|
this._gestureScale = defaultZoom;
|
|
27849
28106
|
};
|
|
27850
28107
|
_handleGestureStart = (event) => {
|
|
27851
|
-
const container = this.container, canvas = container.canvas, canvasEl = canvas.
|
|
28108
|
+
const container = this.container, canvas = container.canvas, canvasEl = canvas.domElement;
|
|
27852
28109
|
if (!canvasEl) {
|
|
27853
28110
|
return;
|
|
27854
28111
|
}
|
|
@@ -27866,7 +28123,7 @@
|
|
|
27866
28123
|
if (!event.ctrlKey && !event.metaKey) {
|
|
27867
28124
|
return;
|
|
27868
28125
|
}
|
|
27869
|
-
const container = this.container, zoomOptions = container.actualOptions.zoom, canvas = container.canvas, canvasEl = canvas.
|
|
28126
|
+
const container = this.container, zoomOptions = container.actualOptions.zoom, canvas = container.canvas, canvasEl = canvas.domElement;
|
|
27870
28127
|
if (!canvasEl) {
|
|
27871
28128
|
return;
|
|
27872
28129
|
}
|
|
@@ -27897,7 +28154,7 @@
|
|
|
27897
28154
|
this._touchDistance = distance;
|
|
27898
28155
|
return;
|
|
27899
28156
|
}
|
|
27900
|
-
const container = this.container, zoomOptions = container.actualOptions.zoom, canvas = container.canvas, canvasEl = canvas.
|
|
28157
|
+
const container = this.container, zoomOptions = container.actualOptions.zoom, canvas = container.canvas, canvasEl = canvas.domElement;
|
|
27901
28158
|
if (!canvasEl) {
|
|
27902
28159
|
return;
|
|
27903
28160
|
}
|
|
@@ -27927,7 +28184,7 @@
|
|
|
27927
28184
|
return false;
|
|
27928
28185
|
};
|
|
27929
28186
|
_manageListeners = add => {
|
|
27930
|
-
const handlers = this._handlers, canvas = this.container.canvas.
|
|
28187
|
+
const handlers = this._handlers, canvas = this.container.canvas.domElement, options = this.container.actualOptions, doc = safeDocument();
|
|
27931
28188
|
if (!canvas) {
|
|
27932
28189
|
return;
|
|
27933
28190
|
}
|