tsparticles 3.0.2 → 3.0.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.
@@ -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.2
7
+ * v3.0.3
8
8
  */
9
9
  (function webpackUniversalModuleDefinition(root, factory) {
10
10
  if(typeof exports === 'object' && typeof module === 'object')
@@ -5166,7 +5166,7 @@ class Engine {
5166
5166
  return res;
5167
5167
  }
5168
5168
  get version() {
5169
- return "3.0.2";
5169
+ return "3.0.3";
5170
5170
  }
5171
5171
  addConfig(config) {
5172
5172
  const name = config.name ?? "default";
@@ -5281,7 +5281,7 @@ class Engine {
5281
5281
  this._initialized = true;
5282
5282
  }
5283
5283
  async load(params) {
5284
- const id = params.id ?? `tsparticles${Math.floor(getRandom() * 10000)}`,
5284
+ const id = params.id ?? params.element?.id ?? `tsparticles${Math.floor(getRandom() * 10000)}`,
5285
5285
  {
5286
5286
  index,
5287
5287
  url
@@ -8182,8 +8182,9 @@ class EmojiDrawer {
8182
8182
  this._emojiShapeDict = new Map();
8183
8183
  }
8184
8184
  destroy() {
8185
- for (const [, emojiData] of this._emojiShapeDict) {
8185
+ for (const [key, emojiData] of this._emojiShapeDict) {
8186
8186
  emojiData instanceof ImageBitmap && emojiData?.close();
8187
+ this._emojiShapeDict.delete(key);
8187
8188
  }
8188
8189
  }
8189
8190
  draw(data) {
@@ -8218,52 +8219,50 @@ class EmojiDrawer {
8218
8219
  delete particle.emojiData;
8219
8220
  }
8220
8221
  particleInit(container, particle) {
8221
- if (!particle.emojiData) {
8222
- const shapeData = particle.shapeData;
8223
- if (!shapeData?.value) {
8224
- return;
8225
- }
8226
- const emoji = itemFromSingleOrMultiple(shapeData.value, particle.randomIndexData),
8227
- font = shapeData.font ?? defaultFont;
8228
- if (!emoji) {
8222
+ const shapeData = particle.shapeData;
8223
+ if (!shapeData?.value) {
8224
+ return;
8225
+ }
8226
+ const emoji = itemFromSingleOrMultiple(shapeData.value, particle.randomIndexData),
8227
+ font = shapeData.font ?? defaultFont;
8228
+ if (!emoji) {
8229
+ return;
8230
+ }
8231
+ const key = `${emoji}_${font}`,
8232
+ existingData = this._emojiShapeDict.get(key);
8233
+ if (existingData) {
8234
+ particle.emojiData = existingData;
8235
+ return;
8236
+ }
8237
+ const canvasSize = getRangeMax(particle.size.value) * 2;
8238
+ let emojiData;
8239
+ if (typeof OffscreenCanvas !== "undefined") {
8240
+ const canvas = new OffscreenCanvas(canvasSize, canvasSize),
8241
+ context = canvas.getContext("2d");
8242
+ if (!context) {
8229
8243
  return;
8230
8244
  }
8231
- const key = `${emoji}_${font}`,
8232
- existingData = this._emojiShapeDict.get(key);
8233
- if (existingData) {
8234
- particle.emojiData = existingData;
8245
+ context.font = `400 ${getRangeMax(particle.size.value) * 2}px ${font}`;
8246
+ context.textBaseline = "middle";
8247
+ context.textAlign = "center";
8248
+ context.fillText(emoji, getRangeMax(particle.size.value), getRangeMax(particle.size.value));
8249
+ emojiData = canvas.transferToImageBitmap();
8250
+ } else {
8251
+ const canvas = document.createElement("canvas");
8252
+ canvas.width = canvasSize;
8253
+ canvas.height = canvasSize;
8254
+ const context = canvas.getContext("2d");
8255
+ if (!context) {
8235
8256
  return;
8236
8257
  }
8237
- const canvasSize = getRangeMax(particle.size.value) * 2;
8238
- let emojiData;
8239
- if (typeof OffscreenCanvas !== "undefined") {
8240
- const canvas = new OffscreenCanvas(canvasSize, canvasSize),
8241
- context = canvas.getContext("2d");
8242
- if (!context) {
8243
- return;
8244
- }
8245
- context.font = `400 ${getRangeMax(particle.size.value) * 2}px ${font}`;
8246
- context.textBaseline = "middle";
8247
- context.textAlign = "center";
8248
- context.fillText(emoji, getRangeMax(particle.size.value), getRangeMax(particle.size.value));
8249
- emojiData = canvas.transferToImageBitmap();
8250
- } else {
8251
- const canvas = document.createElement("canvas");
8252
- canvas.width = canvasSize;
8253
- canvas.height = canvasSize;
8254
- const context = canvas.getContext("2d");
8255
- if (!context) {
8256
- return;
8257
- }
8258
- context.font = `400 ${getRangeMax(particle.size.value) * 2}px ${font}`;
8259
- context.textBaseline = "middle";
8260
- context.textAlign = "center";
8261
- context.fillText(emoji, getRangeMax(particle.size.value), getRangeMax(particle.size.value));
8262
- emojiData = canvas;
8263
- }
8264
- this._emojiShapeDict.set(key, emojiData);
8265
- particle.emojiData = emojiData;
8258
+ context.font = `400 ${getRangeMax(particle.size.value) * 2}px ${font}`;
8259
+ context.textBaseline = "middle";
8260
+ context.textAlign = "center";
8261
+ context.fillText(emoji, getRangeMax(particle.size.value), getRangeMax(particle.size.value));
8262
+ emojiData = canvas;
8266
8263
  }
8264
+ this._emojiShapeDict.set(key, emojiData);
8265
+ particle.emojiData = emojiData;
8267
8266
  }
8268
8267
  }
8269
8268
  ;// CONCATENATED MODULE: ../../shapes/emoji/dist/browser/index.js