@tsparticles/all 3.0.0-beta.1 → 3.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -37
- package/package.json +40 -40
- package/report.html +23 -5
- package/tsparticles.all.bundle.js +230 -125
- package/tsparticles.all.bundle.min.js +1 -1
- package/tsparticles.all.bundle.min.js.LICENSE.txt +1 -1
- package/tsparticles.all.js +38 -18
- package/tsparticles.all.min.js +1 -1
- package/tsparticles.all.min.js.LICENSE.txt +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Demo / Generator : https://particles.js.org/
|
|
5
5
|
* GitHub : https://www.github.com/matteobruni/tsparticles
|
|
6
6
|
* How to use? : Check the GitHub README
|
|
7
|
-
* v3.0.0-beta.
|
|
7
|
+
* v3.0.0-beta.3
|
|
8
8
|
*/
|
|
9
9
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
10
10
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
@@ -206,6 +206,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
206
206
|
rectBounce: () => (/* reexport */ rectBounce),
|
|
207
207
|
resizeEvent: () => (/* reexport */ resizeEvent),
|
|
208
208
|
rgbToHsl: () => (/* reexport */ rgbToHsl),
|
|
209
|
+
safeIntersectionObserver: () => (/* reexport */ safeIntersectionObserver),
|
|
209
210
|
safeMatchMedia: () => (/* reexport */ safeMatchMedia),
|
|
210
211
|
safeMutationObserver: () => (/* reexport */ safeMutationObserver),
|
|
211
212
|
setLogger: () => (/* reexport */ setLogger),
|
|
@@ -572,6 +573,12 @@ function safeMatchMedia(query) {
|
|
|
572
573
|
}
|
|
573
574
|
return matchMedia(query);
|
|
574
575
|
}
|
|
576
|
+
function safeIntersectionObserver(callback) {
|
|
577
|
+
if (isSsr() || typeof IntersectionObserver === "undefined") {
|
|
578
|
+
return;
|
|
579
|
+
}
|
|
580
|
+
return new IntersectionObserver(callback);
|
|
581
|
+
}
|
|
575
582
|
function safeMutationObserver(callback) {
|
|
576
583
|
if (isSsr() || typeof MutationObserver === "undefined") {
|
|
577
584
|
return;
|
|
@@ -1231,7 +1238,15 @@ function drawParticle(data) {
|
|
|
1231
1238
|
if (colorStyles.stroke) {
|
|
1232
1239
|
context.strokeStyle = colorStyles.stroke;
|
|
1233
1240
|
}
|
|
1234
|
-
|
|
1241
|
+
const drawData = {
|
|
1242
|
+
container,
|
|
1243
|
+
context,
|
|
1244
|
+
particle,
|
|
1245
|
+
radius,
|
|
1246
|
+
opacity,
|
|
1247
|
+
delta
|
|
1248
|
+
};
|
|
1249
|
+
drawShape(drawData);
|
|
1235
1250
|
if (strokeWidth > 0) {
|
|
1236
1251
|
context.stroke();
|
|
1237
1252
|
}
|
|
@@ -1241,11 +1256,19 @@ function drawParticle(data) {
|
|
|
1241
1256
|
if (particle.fill) {
|
|
1242
1257
|
context.fill();
|
|
1243
1258
|
}
|
|
1244
|
-
drawShapeAfterEffect(
|
|
1259
|
+
drawShapeAfterEffect(drawData);
|
|
1245
1260
|
context.globalCompositeOperation = "source-over";
|
|
1246
1261
|
context.setTransform(1, 0, 0, 1, 0, 0);
|
|
1247
1262
|
}
|
|
1248
|
-
function drawShape(
|
|
1263
|
+
function drawShape(data) {
|
|
1264
|
+
const {
|
|
1265
|
+
container,
|
|
1266
|
+
context,
|
|
1267
|
+
particle,
|
|
1268
|
+
radius,
|
|
1269
|
+
opacity,
|
|
1270
|
+
delta
|
|
1271
|
+
} = data;
|
|
1249
1272
|
if (!particle.shape) {
|
|
1250
1273
|
return;
|
|
1251
1274
|
}
|
|
@@ -1253,9 +1276,24 @@ function drawShape(container, context, particle, radius, opacity, delta) {
|
|
|
1253
1276
|
if (!drawer) {
|
|
1254
1277
|
return;
|
|
1255
1278
|
}
|
|
1256
|
-
drawer.draw(
|
|
1279
|
+
drawer.draw({
|
|
1280
|
+
context,
|
|
1281
|
+
particle,
|
|
1282
|
+
radius,
|
|
1283
|
+
opacity,
|
|
1284
|
+
delta,
|
|
1285
|
+
pixelRatio: container.retina.pixelRatio
|
|
1286
|
+
});
|
|
1257
1287
|
}
|
|
1258
|
-
function drawShapeAfterEffect(
|
|
1288
|
+
function drawShapeAfterEffect(data) {
|
|
1289
|
+
const {
|
|
1290
|
+
container,
|
|
1291
|
+
context,
|
|
1292
|
+
particle,
|
|
1293
|
+
radius,
|
|
1294
|
+
opacity,
|
|
1295
|
+
delta
|
|
1296
|
+
} = data;
|
|
1259
1297
|
if (!particle.shape) {
|
|
1260
1298
|
return;
|
|
1261
1299
|
}
|
|
@@ -1263,7 +1301,14 @@ function drawShapeAfterEffect(container, context, particle, radius, opacity, del
|
|
|
1263
1301
|
if (!drawer || !drawer.afterEffect) {
|
|
1264
1302
|
return;
|
|
1265
1303
|
}
|
|
1266
|
-
drawer.afterEffect(
|
|
1304
|
+
drawer.afterEffect({
|
|
1305
|
+
context,
|
|
1306
|
+
particle,
|
|
1307
|
+
radius,
|
|
1308
|
+
opacity,
|
|
1309
|
+
delta,
|
|
1310
|
+
pixelRatio: container.retina.pixelRatio
|
|
1311
|
+
});
|
|
1267
1312
|
}
|
|
1268
1313
|
function drawPlugin(context, plugin, delta) {
|
|
1269
1314
|
if (!plugin.draw) {
|
|
@@ -3647,7 +3692,17 @@ class InteractionManager {
|
|
|
3647
3692
|
|
|
3648
3693
|
|
|
3649
3694
|
|
|
3650
|
-
|
|
3695
|
+
function loadShapeData(shape, shapeOptions, id, reduceDuplicates) {
|
|
3696
|
+
const shapeData = shapeOptions.options[shape];
|
|
3697
|
+
if (!shapeData) {
|
|
3698
|
+
return;
|
|
3699
|
+
}
|
|
3700
|
+
return deepExtend({
|
|
3701
|
+
close: shapeOptions.close,
|
|
3702
|
+
fill: shapeOptions.fill
|
|
3703
|
+
}, itemFromSingleOrMultiple(shapeData, id, reduceDuplicates));
|
|
3704
|
+
}
|
|
3705
|
+
function fixOutMode(data) {
|
|
3651
3706
|
if (!isInArray(data.outMode, data.checkModes)) {
|
|
3652
3707
|
return;
|
|
3653
3708
|
}
|
|
@@ -3657,7 +3712,7 @@ const fixOutMode = data => {
|
|
|
3657
3712
|
} else if (data.coord < diameter) {
|
|
3658
3713
|
data.setCb(data.radius);
|
|
3659
3714
|
}
|
|
3660
|
-
}
|
|
3715
|
+
}
|
|
3661
3716
|
class Particle {
|
|
3662
3717
|
constructor(engine, id, container, position, overrideOptions, group) {
|
|
3663
3718
|
this.container = container;
|
|
@@ -3782,16 +3837,6 @@ class Particle {
|
|
|
3782
3837
|
}
|
|
3783
3838
|
this.offset = Vector.origin;
|
|
3784
3839
|
};
|
|
3785
|
-
this._loadShapeData = (shapeOptions, reduceDuplicates) => {
|
|
3786
|
-
const shapeData = shapeOptions.options[this.shape];
|
|
3787
|
-
if (!shapeData) {
|
|
3788
|
-
return;
|
|
3789
|
-
}
|
|
3790
|
-
return deepExtend({
|
|
3791
|
-
close: shapeOptions.close,
|
|
3792
|
-
fill: shapeOptions.fill
|
|
3793
|
-
}, itemFromSingleOrMultiple(shapeData, this.id, reduceDuplicates));
|
|
3794
|
-
};
|
|
3795
3840
|
this._engine = engine;
|
|
3796
3841
|
this.init(id, position, overrideOptions, group);
|
|
3797
3842
|
}
|
|
@@ -3880,7 +3925,7 @@ class Particle {
|
|
|
3880
3925
|
shapeOptions.load(overrideOptions.shape);
|
|
3881
3926
|
}
|
|
3882
3927
|
}
|
|
3883
|
-
this.shapeData = this.
|
|
3928
|
+
this.shapeData = loadShapeData(this.shape, shapeOptions, this.id, reduceDuplicates);
|
|
3884
3929
|
particlesOptions.load(overrideOptions);
|
|
3885
3930
|
const shapeData = this.shapeData;
|
|
3886
3931
|
if (shapeData) {
|
|
@@ -4191,8 +4236,9 @@ class Particles {
|
|
|
4191
4236
|
return false;
|
|
4192
4237
|
}
|
|
4193
4238
|
particle.destroy(override);
|
|
4239
|
+
const zIdx = this._zArray.indexOf(particle);
|
|
4194
4240
|
this._array.splice(index, 1);
|
|
4195
|
-
this._zArray
|
|
4241
|
+
this._zArray.splice(zIdx, 1);
|
|
4196
4242
|
this.pool.push(particle);
|
|
4197
4243
|
this._engine.dispatchEvent("particleRemoved", {
|
|
4198
4244
|
container: this._container,
|
|
@@ -4299,7 +4345,7 @@ class Particles {
|
|
|
4299
4345
|
this.addManualParticles();
|
|
4300
4346
|
if (!handled) {
|
|
4301
4347
|
const particlesOptions = options.particles,
|
|
4302
|
-
groups =
|
|
4348
|
+
groups = particlesOptions.groups;
|
|
4303
4349
|
for (const group in groups) {
|
|
4304
4350
|
const groupOptions = groups[group];
|
|
4305
4351
|
for (let i = this.count, j = 0; j < groupOptions.number?.value && i < particlesOptions.number.value; i++, j++) {
|
|
@@ -4475,7 +4521,6 @@ function loadContainerOptions(engine, container, ...sourceOptionsArr) {
|
|
|
4475
4521
|
}
|
|
4476
4522
|
class Container {
|
|
4477
4523
|
constructor(engine, id, sourceOptions) {
|
|
4478
|
-
this.id = id;
|
|
4479
4524
|
this._intersectionManager = entries => {
|
|
4480
4525
|
if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) {
|
|
4481
4526
|
return;
|
|
@@ -4514,6 +4559,7 @@ class Container {
|
|
|
4514
4559
|
}
|
|
4515
4560
|
};
|
|
4516
4561
|
this._engine = engine;
|
|
4562
|
+
this.id = Symbol(id);
|
|
4517
4563
|
this.fpsLimit = 120;
|
|
4518
4564
|
this.smooth = false;
|
|
4519
4565
|
this._delay = 0;
|
|
@@ -4543,9 +4589,7 @@ class Container {
|
|
|
4543
4589
|
this._options = loadContainerOptions(this._engine, this);
|
|
4544
4590
|
this.actualOptions = loadContainerOptions(this._engine, this);
|
|
4545
4591
|
this._eventListeners = new EventListeners(this);
|
|
4546
|
-
|
|
4547
|
-
this._intersectionObserver = new IntersectionObserver(entries => this._intersectionManager(entries));
|
|
4548
|
-
}
|
|
4592
|
+
this._intersectionObserver = safeIntersectionObserver(entries => this._intersectionManager(entries));
|
|
4549
4593
|
this._engine.dispatchEvent("containerBuilt", {
|
|
4550
4594
|
container: this
|
|
4551
4595
|
});
|
|
@@ -4988,17 +5032,17 @@ class Engine {
|
|
|
4988
5032
|
return res;
|
|
4989
5033
|
}
|
|
4990
5034
|
get version() {
|
|
4991
|
-
return "3.0.0-beta.
|
|
5035
|
+
return "3.0.0-beta.3";
|
|
4992
5036
|
}
|
|
4993
|
-
addConfig(
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
5037
|
+
addConfig(config) {
|
|
5038
|
+
const name = config.name ?? "default";
|
|
5039
|
+
this._configs.set(name, config);
|
|
5040
|
+
this._eventDispatcher.dispatchEvent("configAdded", {
|
|
5041
|
+
data: {
|
|
5042
|
+
name,
|
|
5043
|
+
config
|
|
4998
5044
|
}
|
|
4999
|
-
}
|
|
5000
|
-
this._configs.set(nameOrConfig.name ?? "default", nameOrConfig);
|
|
5001
|
-
}
|
|
5045
|
+
});
|
|
5002
5046
|
}
|
|
5003
5047
|
addEventListener(type, listener) {
|
|
5004
5048
|
this._eventDispatcher.addEventListener(type, listener);
|
|
@@ -5027,44 +5071,11 @@ class Engine {
|
|
|
5027
5071
|
(override || !this.getPreset(preset)) && this.presets.set(preset, options);
|
|
5028
5072
|
await this.refresh(refresh);
|
|
5029
5073
|
}
|
|
5030
|
-
async addShape(shape, drawer,
|
|
5031
|
-
let customDrawer;
|
|
5032
|
-
let realRefresh = refresh,
|
|
5033
|
-
realInit,
|
|
5034
|
-
realAfterEffect,
|
|
5035
|
-
realDestroy;
|
|
5036
|
-
if (isBoolean(initOrRefresh)) {
|
|
5037
|
-
realRefresh = initOrRefresh;
|
|
5038
|
-
realInit = undefined;
|
|
5039
|
-
} else {
|
|
5040
|
-
realInit = initOrRefresh;
|
|
5041
|
-
}
|
|
5042
|
-
if (isBoolean(afterEffectOrRefresh)) {
|
|
5043
|
-
realRefresh = afterEffectOrRefresh;
|
|
5044
|
-
realAfterEffect = undefined;
|
|
5045
|
-
} else {
|
|
5046
|
-
realAfterEffect = afterEffectOrRefresh;
|
|
5047
|
-
}
|
|
5048
|
-
if (isBoolean(destroyOrRefresh)) {
|
|
5049
|
-
realRefresh = destroyOrRefresh;
|
|
5050
|
-
realDestroy = undefined;
|
|
5051
|
-
} else {
|
|
5052
|
-
realDestroy = destroyOrRefresh;
|
|
5053
|
-
}
|
|
5054
|
-
if (isFunction(drawer)) {
|
|
5055
|
-
customDrawer = {
|
|
5056
|
-
afterEffect: realAfterEffect,
|
|
5057
|
-
destroy: realDestroy,
|
|
5058
|
-
draw: drawer,
|
|
5059
|
-
init: realInit
|
|
5060
|
-
};
|
|
5061
|
-
} else {
|
|
5062
|
-
customDrawer = drawer;
|
|
5063
|
-
}
|
|
5074
|
+
async addShape(shape, drawer, refresh = true) {
|
|
5064
5075
|
executeOnSingleOrMultiple(shape, type => {
|
|
5065
|
-
!this.getShapeDrawer(type) && this.drawers.set(type,
|
|
5076
|
+
!this.getShapeDrawer(type) && this.drawers.set(type, drawer);
|
|
5066
5077
|
});
|
|
5067
|
-
await this.refresh(
|
|
5078
|
+
await this.refresh(refresh);
|
|
5068
5079
|
}
|
|
5069
5080
|
clearPlugins(container) {
|
|
5070
5081
|
this.updaters.delete(container);
|
|
@@ -5142,7 +5153,7 @@ class Engine {
|
|
|
5142
5153
|
}
|
|
5143
5154
|
const currentOptions = itemFromSingleOrMultiple(options, index),
|
|
5144
5155
|
dom = this.dom(),
|
|
5145
|
-
oldIndex = dom.findIndex(v => v.id === id);
|
|
5156
|
+
oldIndex = dom.findIndex(v => v.id.description === id);
|
|
5146
5157
|
if (oldIndex >= 0) {
|
|
5147
5158
|
const old = this.domItem(oldIndex);
|
|
5148
5159
|
if (old && !old.destroyed) {
|
|
@@ -5424,8 +5435,13 @@ if (!isSsr()) {
|
|
|
5424
5435
|
;// CONCATENATED MODULE: ../../shapes/arrow/dist/browser/ArrowDrawer.js
|
|
5425
5436
|
|
|
5426
5437
|
class ArrowDrawer {
|
|
5427
|
-
draw(
|
|
5428
|
-
const
|
|
5438
|
+
draw(data) {
|
|
5439
|
+
const {
|
|
5440
|
+
context,
|
|
5441
|
+
particle,
|
|
5442
|
+
radius
|
|
5443
|
+
} = data,
|
|
5444
|
+
width = radius * 2,
|
|
5429
5445
|
heightFactor = particle.heightFactor ?? 0.5,
|
|
5430
5446
|
headWidthFactor = particle.headWidthFactor ?? 0.2,
|
|
5431
5447
|
bodyHeightFactor = particle.bodyHeightFactor ?? 0.5,
|
|
@@ -5456,14 +5472,22 @@ async function loadArrowShape(engine, refresh = true) {
|
|
|
5456
5472
|
}
|
|
5457
5473
|
;// CONCATENATED MODULE: ../../shapes/bubble/dist/browser/BubbleDrawer.js
|
|
5458
5474
|
class BubbleDrawer {
|
|
5459
|
-
afterEffect(
|
|
5475
|
+
afterEffect(data) {
|
|
5476
|
+
const {
|
|
5477
|
+
context,
|
|
5478
|
+
radius
|
|
5479
|
+
} = data;
|
|
5460
5480
|
context.beginPath();
|
|
5461
5481
|
context.arc(radius / 3, -radius / 3, radius / 3, 0, Math.PI * 2, false);
|
|
5462
5482
|
context.closePath();
|
|
5463
5483
|
context.fillStyle = "#fff9";
|
|
5464
5484
|
context.fill();
|
|
5465
5485
|
}
|
|
5466
|
-
draw(
|
|
5486
|
+
draw(data) {
|
|
5487
|
+
const {
|
|
5488
|
+
context,
|
|
5489
|
+
radius
|
|
5490
|
+
} = data;
|
|
5467
5491
|
context.arc(0, 0, radius, 0, Math.PI * 2, false);
|
|
5468
5492
|
}
|
|
5469
5493
|
}
|
|
@@ -5873,18 +5897,22 @@ async function loadCanvasMaskPlugin(engine, refresh = true) {
|
|
|
5873
5897
|
await engine.addPlugin(new CanvasMaskPlugin(engine), refresh);
|
|
5874
5898
|
}
|
|
5875
5899
|
;// CONCATENATED MODULE: ../../shapes/cards/dist/browser/Utils.js
|
|
5876
|
-
function drawPath(
|
|
5900
|
+
function drawPath(data, path) {
|
|
5877
5901
|
if (!path.segments.length || !path.segments[0].values.length) {
|
|
5878
5902
|
return;
|
|
5879
5903
|
}
|
|
5880
|
-
|
|
5904
|
+
const {
|
|
5905
|
+
context,
|
|
5906
|
+
radius
|
|
5907
|
+
} = data;
|
|
5908
|
+
context.moveTo(path.segments[0].values[0].x * radius, path.segments[0].values[0].y * radius);
|
|
5881
5909
|
for (let i = 0; i < path.segments.length; i++) {
|
|
5882
5910
|
const segment = path.segments[i];
|
|
5883
|
-
|
|
5911
|
+
context.bezierCurveTo(segment.values[1].x * radius, segment.values[1].y * radius, segment.values[2].x * radius, segment.values[2].y * radius, segment.values[3].x * radius, segment.values[3].y * radius);
|
|
5884
5912
|
}
|
|
5885
5913
|
for (let i = path.segments.length - 1; i >= 0; i--) {
|
|
5886
5914
|
const segment = path.segments[i];
|
|
5887
|
-
|
|
5915
|
+
context.bezierCurveTo(-segment.values[2].x * radius, segment.values[2].y * radius, -segment.values[1].x * radius, segment.values[1].y * radius, -segment.values[0].x * radius, segment.values[0].y * radius);
|
|
5888
5916
|
}
|
|
5889
5917
|
}
|
|
5890
5918
|
const n = 1.0 / 2;
|
|
@@ -6129,23 +6157,23 @@ const paths = {
|
|
|
6129
6157
|
;// CONCATENATED MODULE: ../../shapes/cards/dist/browser/CardsSuitsDrawers.js
|
|
6130
6158
|
|
|
6131
6159
|
class SpadeDrawer {
|
|
6132
|
-
draw(
|
|
6133
|
-
drawPath(
|
|
6160
|
+
draw(data) {
|
|
6161
|
+
drawPath(data, paths.spade);
|
|
6134
6162
|
}
|
|
6135
6163
|
}
|
|
6136
6164
|
class HeartDrawer {
|
|
6137
|
-
draw(
|
|
6138
|
-
drawPath(
|
|
6165
|
+
draw(data) {
|
|
6166
|
+
drawPath(data, paths.heart);
|
|
6139
6167
|
}
|
|
6140
6168
|
}
|
|
6141
6169
|
class DiamondDrawer {
|
|
6142
|
-
draw(
|
|
6143
|
-
drawPath(
|
|
6170
|
+
draw(data) {
|
|
6171
|
+
drawPath(data, paths.diamond);
|
|
6144
6172
|
}
|
|
6145
6173
|
}
|
|
6146
6174
|
class ClubDrawer {
|
|
6147
|
-
draw(
|
|
6148
|
-
drawPath(
|
|
6175
|
+
draw(data) {
|
|
6176
|
+
drawPath(data, paths.club);
|
|
6149
6177
|
}
|
|
6150
6178
|
}
|
|
6151
6179
|
;// CONCATENATED MODULE: ../../shapes/cards/dist/browser/index.js
|
|
@@ -6159,21 +6187,31 @@ async function loadCardsShape(engine, refresh = true) {
|
|
|
6159
6187
|
;// CONCATENATED MODULE: ../../shapes/cog/dist/browser/CogDrawer.js
|
|
6160
6188
|
|
|
6161
6189
|
class CogDrawer {
|
|
6162
|
-
afterEffect(
|
|
6190
|
+
afterEffect(data) {
|
|
6191
|
+
const {
|
|
6192
|
+
context,
|
|
6193
|
+
particle,
|
|
6194
|
+
radius
|
|
6195
|
+
} = data;
|
|
6163
6196
|
if (particle.cogHoleRadius === undefined || particle.cogInnerRadius === undefined || particle.cogInnerTaper === undefined || particle.cogNotches === undefined || particle.cogOuterTaper === undefined) {
|
|
6164
6197
|
return;
|
|
6165
6198
|
}
|
|
6166
6199
|
const pi2 = 2 * Math.PI,
|
|
6167
6200
|
holeRadius = radius * particle.cogHoleRadius / 100;
|
|
6168
|
-
|
|
6169
|
-
|
|
6170
|
-
|
|
6171
|
-
|
|
6172
|
-
|
|
6173
|
-
|
|
6174
|
-
|
|
6175
|
-
}
|
|
6176
|
-
draw(
|
|
6201
|
+
context.globalCompositeOperation = "destination-out";
|
|
6202
|
+
context.beginPath();
|
|
6203
|
+
context.moveTo(holeRadius, 0);
|
|
6204
|
+
context.arc(0, 0, holeRadius, 0, pi2);
|
|
6205
|
+
context.closePath();
|
|
6206
|
+
context.fill();
|
|
6207
|
+
context.globalCompositeOperation = "source-over";
|
|
6208
|
+
}
|
|
6209
|
+
draw(data) {
|
|
6210
|
+
const {
|
|
6211
|
+
context,
|
|
6212
|
+
particle,
|
|
6213
|
+
radius
|
|
6214
|
+
} = data;
|
|
6177
6215
|
if (particle.cogHoleRadius === undefined || particle.cogInnerRadius === undefined || particle.cogInnerTaper === undefined || particle.cogNotches === undefined || particle.cogOuterTaper === undefined) {
|
|
6178
6216
|
return;
|
|
6179
6217
|
}
|
|
@@ -6184,14 +6222,14 @@ class CogDrawer {
|
|
|
6184
6222
|
innerRadius = radius * particle.cogInnerRadius / 100;
|
|
6185
6223
|
let a = angle,
|
|
6186
6224
|
toggle = false;
|
|
6187
|
-
|
|
6225
|
+
context.moveTo(radius * Math.cos(taperAO), radius * Math.sin(taperAO));
|
|
6188
6226
|
for (; a <= pi2; a += angle) {
|
|
6189
6227
|
if (toggle) {
|
|
6190
|
-
|
|
6191
|
-
|
|
6228
|
+
context.lineTo(innerRadius * Math.cos(a - taperAI), innerRadius * Math.sin(a - taperAI));
|
|
6229
|
+
context.lineTo(radius * Math.cos(a + taperAO), radius * Math.sin(a + taperAO));
|
|
6192
6230
|
} else {
|
|
6193
|
-
|
|
6194
|
-
|
|
6231
|
+
context.lineTo(radius * Math.cos(a - taperAO), radius * Math.sin(a - taperAO));
|
|
6232
|
+
context.lineTo(innerRadius * Math.cos(a + taperAI), innerRadius * Math.sin(a + taperAI));
|
|
6195
6233
|
}
|
|
6196
6234
|
toggle = !toggle;
|
|
6197
6235
|
}
|
|
@@ -8412,7 +8450,12 @@ async function loadBaseMover(engine, refresh = true) {
|
|
|
8412
8450
|
;// CONCATENATED MODULE: ../../shapes/circle/dist/browser/CircleDrawer.js
|
|
8413
8451
|
|
|
8414
8452
|
class CircleDrawer {
|
|
8415
|
-
draw(
|
|
8453
|
+
draw(data) {
|
|
8454
|
+
const {
|
|
8455
|
+
context,
|
|
8456
|
+
particle,
|
|
8457
|
+
radius
|
|
8458
|
+
} = data;
|
|
8416
8459
|
if (!particle.circleRange) {
|
|
8417
8460
|
particle.circleRange = {
|
|
8418
8461
|
min: 0,
|
|
@@ -11216,8 +11259,15 @@ class ImageDrawer {
|
|
|
11216
11259
|
}
|
|
11217
11260
|
this._engine.images.push(image);
|
|
11218
11261
|
}
|
|
11219
|
-
draw(
|
|
11220
|
-
const
|
|
11262
|
+
draw(data) {
|
|
11263
|
+
const {
|
|
11264
|
+
context,
|
|
11265
|
+
radius,
|
|
11266
|
+
particle,
|
|
11267
|
+
opacity,
|
|
11268
|
+
delta
|
|
11269
|
+
} = data,
|
|
11270
|
+
image = particle.image,
|
|
11221
11271
|
element = image?.element;
|
|
11222
11272
|
if (!image) {
|
|
11223
11273
|
return;
|
|
@@ -11653,8 +11703,13 @@ async function loadLifeUpdater(engine, refresh = true) {
|
|
|
11653
11703
|
}
|
|
11654
11704
|
;// CONCATENATED MODULE: ../../shapes/line/dist/browser/LineDrawer.js
|
|
11655
11705
|
class LineDrawer {
|
|
11656
|
-
draw(
|
|
11657
|
-
const
|
|
11706
|
+
draw(data) {
|
|
11707
|
+
const {
|
|
11708
|
+
context,
|
|
11709
|
+
particle,
|
|
11710
|
+
radius
|
|
11711
|
+
} = data,
|
|
11712
|
+
shapeData = particle.shapeData;
|
|
11658
11713
|
context.moveTo(-radius / 2, 0);
|
|
11659
11714
|
context.lineTo(radius / 2, 0);
|
|
11660
11715
|
context.lineCap = shapeData?.cap ?? "butt";
|
|
@@ -12470,8 +12525,13 @@ async function loadParticlesLinksInteraction(engine, refresh = true) {
|
|
|
12470
12525
|
;// CONCATENATED MODULE: ../../shapes/polygon/dist/browser/PolygonDrawerBase.js
|
|
12471
12526
|
|
|
12472
12527
|
class PolygonDrawerBase {
|
|
12473
|
-
draw(
|
|
12474
|
-
const
|
|
12528
|
+
draw(data) {
|
|
12529
|
+
const {
|
|
12530
|
+
context,
|
|
12531
|
+
particle,
|
|
12532
|
+
radius
|
|
12533
|
+
} = data,
|
|
12534
|
+
start = this.getCenter(particle, radius),
|
|
12475
12535
|
side = this.getSidesData(particle, radius),
|
|
12476
12536
|
sideCount = side.count.numerator * side.count.denominator,
|
|
12477
12537
|
decimalSides = side.count.numerator / side.count.denominator,
|
|
@@ -12705,8 +12765,12 @@ async function loadRotateUpdater(engine, refresh = true) {
|
|
|
12705
12765
|
;// CONCATENATED MODULE: ../../shapes/square/dist/browser/SquareDrawer.js
|
|
12706
12766
|
const fixFactor = Math.sqrt(2);
|
|
12707
12767
|
class SquareDrawer {
|
|
12708
|
-
draw(
|
|
12709
|
-
const
|
|
12768
|
+
draw(data) {
|
|
12769
|
+
const {
|
|
12770
|
+
context,
|
|
12771
|
+
radius
|
|
12772
|
+
} = data,
|
|
12773
|
+
fixedRadius = radius / fixFactor,
|
|
12710
12774
|
fixedDiameter = fixedRadius * 2;
|
|
12711
12775
|
context.rect(-fixedRadius, -fixedRadius, fixedDiameter, fixedDiameter);
|
|
12712
12776
|
}
|
|
@@ -12722,8 +12786,13 @@ async function loadSquareShape(engine, refresh = true) {
|
|
|
12722
12786
|
;// CONCATENATED MODULE: ../../shapes/star/dist/browser/StarDrawer.js
|
|
12723
12787
|
|
|
12724
12788
|
class StarDrawer {
|
|
12725
|
-
draw(
|
|
12726
|
-
const
|
|
12789
|
+
draw(data) {
|
|
12790
|
+
const {
|
|
12791
|
+
context,
|
|
12792
|
+
particle,
|
|
12793
|
+
radius
|
|
12794
|
+
} = data,
|
|
12795
|
+
sides = particle.sides,
|
|
12727
12796
|
inset = particle.starInset ?? 2;
|
|
12728
12797
|
context.moveTo(0, 0 - radius);
|
|
12729
12798
|
for (let i = 0; i < sides; i++) {
|
|
@@ -12861,8 +12930,14 @@ async function loadStrokeColorUpdater(engine, refresh = true) {
|
|
|
12861
12930
|
|
|
12862
12931
|
const validTypes = ["text", "character", "char"];
|
|
12863
12932
|
class TextDrawer {
|
|
12864
|
-
draw(
|
|
12865
|
-
const
|
|
12933
|
+
draw(data) {
|
|
12934
|
+
const {
|
|
12935
|
+
context,
|
|
12936
|
+
particle,
|
|
12937
|
+
radius,
|
|
12938
|
+
opacity
|
|
12939
|
+
} = data,
|
|
12940
|
+
character = particle.shapeData;
|
|
12866
12941
|
if (character === undefined) {
|
|
12867
12942
|
return;
|
|
12868
12943
|
}
|
|
@@ -13792,7 +13867,11 @@ async function loadGradientUpdater(engine, refresh = true) {
|
|
|
13792
13867
|
}
|
|
13793
13868
|
;// CONCATENATED MODULE: ../../shapes/heart/dist/browser/HeartDrawer.js
|
|
13794
13869
|
class HeartDrawer_HeartDrawer {
|
|
13795
|
-
draw(
|
|
13870
|
+
draw(data) {
|
|
13871
|
+
const {
|
|
13872
|
+
context,
|
|
13873
|
+
radius
|
|
13874
|
+
} = data;
|
|
13796
13875
|
const x = -radius,
|
|
13797
13876
|
y = -radius;
|
|
13798
13877
|
context.moveTo(x, y + radius / 2);
|
|
@@ -14642,8 +14721,14 @@ class MultilineTextDrawer {
|
|
|
14642
14721
|
}
|
|
14643
14722
|
};
|
|
14644
14723
|
}
|
|
14645
|
-
draw(
|
|
14646
|
-
const
|
|
14724
|
+
draw(data) {
|
|
14725
|
+
const {
|
|
14726
|
+
particle,
|
|
14727
|
+
context,
|
|
14728
|
+
radius,
|
|
14729
|
+
opacity
|
|
14730
|
+
} = data,
|
|
14731
|
+
character = particle.shapeData;
|
|
14647
14732
|
if (character === undefined) {
|
|
14648
14733
|
return;
|
|
14649
14734
|
}
|
|
@@ -14991,7 +15076,12 @@ function Utils_drawPath(ctx, radius, path) {
|
|
|
14991
15076
|
|
|
14992
15077
|
|
|
14993
15078
|
class PathDrawer {
|
|
14994
|
-
draw(
|
|
15079
|
+
draw(data) {
|
|
15080
|
+
const {
|
|
15081
|
+
context,
|
|
15082
|
+
particle,
|
|
15083
|
+
radius
|
|
15084
|
+
} = data;
|
|
14995
15085
|
if (!particle.pathData) {
|
|
14996
15086
|
return;
|
|
14997
15087
|
}
|
|
@@ -16632,7 +16722,7 @@ async function loadPerlinNoisePath(engine, refresh = true) {
|
|
|
16632
16722
|
};
|
|
16633
16723
|
}
|
|
16634
16724
|
} catch (e) {
|
|
16635
|
-
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/
|
|
16725
|
+
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles", e);
|
|
16636
16726
|
}
|
|
16637
16727
|
})();
|
|
16638
16728
|
;// CONCATENATED MODULE: ../../plugins/polygonMask/dist/browser/Options/Classes/PolygonMaskDrawStroke.js
|
|
@@ -17426,7 +17516,12 @@ function roundedPath(context, path, radius) {
|
|
|
17426
17516
|
}
|
|
17427
17517
|
}
|
|
17428
17518
|
class RoundedPolygonDrawer {
|
|
17429
|
-
draw(
|
|
17519
|
+
draw(data) {
|
|
17520
|
+
const {
|
|
17521
|
+
context,
|
|
17522
|
+
particle,
|
|
17523
|
+
radius
|
|
17524
|
+
} = data;
|
|
17430
17525
|
roundedPath(context, polygon(particle.sides, radius), particle.borderRadius ?? 5);
|
|
17431
17526
|
}
|
|
17432
17527
|
getSidesCount(particle) {
|
|
@@ -17471,8 +17566,13 @@ const RoundedRectDrawer_fixFactor = Math.sqrt(2),
|
|
|
17471
17566
|
ctx.quadraticCurveTo(x, y, x + radius.topLeft, y);
|
|
17472
17567
|
};
|
|
17473
17568
|
class RoundedRectDrawer {
|
|
17474
|
-
draw(
|
|
17475
|
-
const
|
|
17569
|
+
draw(data) {
|
|
17570
|
+
const {
|
|
17571
|
+
context,
|
|
17572
|
+
particle,
|
|
17573
|
+
radius
|
|
17574
|
+
} = data,
|
|
17575
|
+
fixedRadius = radius / RoundedRectDrawer_fixFactor,
|
|
17476
17576
|
fixedDiameter = fixedRadius * 2,
|
|
17477
17577
|
borderRadius = particle.borderRadius ?? 5;
|
|
17478
17578
|
if ("roundRect" in context) {
|
|
@@ -18581,7 +18681,12 @@ async function loadSoundsPlugin(engine, refresh = true) {
|
|
|
18581
18681
|
;// CONCATENATED MODULE: ../../shapes/spiral/dist/browser/SpiralDrawer.js
|
|
18582
18682
|
|
|
18583
18683
|
class SpiralDrawer {
|
|
18584
|
-
draw(
|
|
18684
|
+
draw(data) {
|
|
18685
|
+
const {
|
|
18686
|
+
context,
|
|
18687
|
+
particle,
|
|
18688
|
+
radius
|
|
18689
|
+
} = data;
|
|
18585
18690
|
if (particle.spiralInnerRadius === undefined || particle.spiralLineSpacing === undefined || particle.spiralWidthFactor === undefined) {
|
|
18586
18691
|
return;
|
|
18587
18692
|
}
|