@tsparticles/shape-emoji 4.0.5 → 4.1.1

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.
@@ -3,13 +3,13 @@ import { drawEmoji, validTypes } from "./Utils.js";
3
3
  import { loadFont } from "@tsparticles/canvas-utils";
4
4
  const defaultFont = '"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif', noPadding = 0, firstItem = 0;
5
5
  export class EmojiDrawer {
6
- _emojiShapeDict = new Map();
6
+ #emojiShapeDict = new Map();
7
7
  destroy() {
8
- for (const [key, data] of this._emojiShapeDict) {
8
+ for (const [key, data] of this.#emojiShapeDict) {
9
9
  if (data instanceof ImageBitmap) {
10
10
  data.close();
11
11
  }
12
- this._emojiShapeDict.delete(key);
12
+ this.#emojiShapeDict.delete(key);
13
13
  }
14
14
  }
15
15
  draw(data) {
@@ -17,7 +17,7 @@ export class EmojiDrawer {
17
17
  if (!key) {
18
18
  return;
19
19
  }
20
- const image = this._emojiShapeDict.get(key);
20
+ const image = this.#emojiShapeDict.get(key);
21
21
  if (!image) {
22
22
  return;
23
23
  }
@@ -60,7 +60,7 @@ export class EmojiDrawer {
60
60
  ...shapeData,
61
61
  ...emoji,
62
62
  }, font = emojiOptions.font, value = emojiOptions.value, cacheKey = `${value}_${font}`;
63
- if (this._emojiShapeDict.has(cacheKey)) {
63
+ if (this.#emojiShapeDict.has(cacheKey)) {
64
64
  particle.emojiDataKey = cacheKey;
65
65
  return;
66
66
  }
@@ -73,7 +73,7 @@ export class EmojiDrawer {
73
73
  context.textAlign = "center";
74
74
  context.fillText(value, fullSize, fullSize);
75
75
  const image = cacheCanvas instanceof HTMLCanvasElement ? cacheCanvas : cacheCanvas.transferToImageBitmap();
76
- this._emojiShapeDict.set(cacheKey, image);
76
+ this.#emojiShapeDict.set(cacheKey, image);
77
77
  particle.emojiDataKey = cacheKey;
78
78
  }
79
79
  }
package/browser/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { EmojiDrawer } from "./EmojiDrawer.js";
2
2
  import { validTypes } from "./Utils.js";
3
3
  export async function loadEmojiShape(engine) {
4
- engine.checkVersion("4.0.5");
4
+ engine.checkVersion("4.1.1");
5
5
  await engine.pluginManager.register(e => {
6
6
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new EmojiDrawer()));
7
7
  });
@@ -1,6 +1,6 @@
1
1
  import { validTypes } from "./Utils.js";
2
2
  export async function loadEmojiShape(engine) {
3
- engine.checkVersion("4.0.5");
3
+ engine.checkVersion("4.1.1");
4
4
  await engine.pluginManager.register(async (e) => {
5
5
  const { EmojiDrawer } = await import("./EmojiDrawer.js");
6
6
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new EmojiDrawer()));
@@ -3,13 +3,13 @@ import { drawEmoji, validTypes } from "./Utils.js";
3
3
  import { loadFont } from "@tsparticles/canvas-utils";
4
4
  const defaultFont = '"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif', noPadding = 0, firstItem = 0;
5
5
  export class EmojiDrawer {
6
- _emojiShapeDict = new Map();
6
+ #emojiShapeDict = new Map();
7
7
  destroy() {
8
- for (const [key, data] of this._emojiShapeDict) {
8
+ for (const [key, data] of this.#emojiShapeDict) {
9
9
  if (data instanceof ImageBitmap) {
10
10
  data.close();
11
11
  }
12
- this._emojiShapeDict.delete(key);
12
+ this.#emojiShapeDict.delete(key);
13
13
  }
14
14
  }
15
15
  draw(data) {
@@ -17,7 +17,7 @@ export class EmojiDrawer {
17
17
  if (!key) {
18
18
  return;
19
19
  }
20
- const image = this._emojiShapeDict.get(key);
20
+ const image = this.#emojiShapeDict.get(key);
21
21
  if (!image) {
22
22
  return;
23
23
  }
@@ -60,7 +60,7 @@ export class EmojiDrawer {
60
60
  ...shapeData,
61
61
  ...emoji,
62
62
  }, font = emojiOptions.font, value = emojiOptions.value, cacheKey = `${value}_${font}`;
63
- if (this._emojiShapeDict.has(cacheKey)) {
63
+ if (this.#emojiShapeDict.has(cacheKey)) {
64
64
  particle.emojiDataKey = cacheKey;
65
65
  return;
66
66
  }
@@ -73,7 +73,7 @@ export class EmojiDrawer {
73
73
  context.textAlign = "center";
74
74
  context.fillText(value, fullSize, fullSize);
75
75
  const image = cacheCanvas instanceof HTMLCanvasElement ? cacheCanvas : cacheCanvas.transferToImageBitmap();
76
- this._emojiShapeDict.set(cacheKey, image);
76
+ this.#emojiShapeDict.set(cacheKey, image);
77
77
  particle.emojiDataKey = cacheKey;
78
78
  }
79
79
  }
package/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { EmojiDrawer } from "./EmojiDrawer.js";
2
2
  import { validTypes } from "./Utils.js";
3
3
  export async function loadEmojiShape(engine) {
4
- engine.checkVersion("4.0.5");
4
+ engine.checkVersion("4.1.1");
5
5
  await engine.pluginManager.register(e => {
6
6
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new EmojiDrawer()));
7
7
  });
package/cjs/index.lazy.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { validTypes } from "./Utils.js";
2
2
  export async function loadEmojiShape(engine) {
3
- engine.checkVersion("4.0.5");
3
+ engine.checkVersion("4.1.1");
4
4
  await engine.pluginManager.register(async (e) => {
5
5
  const { EmojiDrawer } = await import("./EmojiDrawer.js");
6
6
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new EmojiDrawer()));
@@ -3,13 +3,13 @@ import { drawEmoji, validTypes } from "./Utils.js";
3
3
  import { loadFont } from "@tsparticles/canvas-utils";
4
4
  const defaultFont = '"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif', noPadding = 0, firstItem = 0;
5
5
  export class EmojiDrawer {
6
- _emojiShapeDict = new Map();
6
+ #emojiShapeDict = new Map();
7
7
  destroy() {
8
- for (const [key, data] of this._emojiShapeDict) {
8
+ for (const [key, data] of this.#emojiShapeDict) {
9
9
  if (data instanceof ImageBitmap) {
10
10
  data.close();
11
11
  }
12
- this._emojiShapeDict.delete(key);
12
+ this.#emojiShapeDict.delete(key);
13
13
  }
14
14
  }
15
15
  draw(data) {
@@ -17,7 +17,7 @@ export class EmojiDrawer {
17
17
  if (!key) {
18
18
  return;
19
19
  }
20
- const image = this._emojiShapeDict.get(key);
20
+ const image = this.#emojiShapeDict.get(key);
21
21
  if (!image) {
22
22
  return;
23
23
  }
@@ -60,7 +60,7 @@ export class EmojiDrawer {
60
60
  ...shapeData,
61
61
  ...emoji,
62
62
  }, font = emojiOptions.font, value = emojiOptions.value, cacheKey = `${value}_${font}`;
63
- if (this._emojiShapeDict.has(cacheKey)) {
63
+ if (this.#emojiShapeDict.has(cacheKey)) {
64
64
  particle.emojiDataKey = cacheKey;
65
65
  return;
66
66
  }
@@ -73,7 +73,7 @@ export class EmojiDrawer {
73
73
  context.textAlign = "center";
74
74
  context.fillText(value, fullSize, fullSize);
75
75
  const image = cacheCanvas instanceof HTMLCanvasElement ? cacheCanvas : cacheCanvas.transferToImageBitmap();
76
- this._emojiShapeDict.set(cacheKey, image);
76
+ this.#emojiShapeDict.set(cacheKey, image);
77
77
  particle.emojiDataKey = cacheKey;
78
78
  }
79
79
  }
package/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { EmojiDrawer } from "./EmojiDrawer.js";
2
2
  import { validTypes } from "./Utils.js";
3
3
  export async function loadEmojiShape(engine) {
4
- engine.checkVersion("4.0.5");
4
+ engine.checkVersion("4.1.1");
5
5
  await engine.pluginManager.register(e => {
6
6
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new EmojiDrawer()));
7
7
  });
package/esm/index.lazy.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { validTypes } from "./Utils.js";
2
2
  export async function loadEmojiShape(engine) {
3
- engine.checkVersion("4.0.5");
3
+ engine.checkVersion("4.1.1");
4
4
  await engine.pluginManager.register(async (e) => {
5
5
  const { EmojiDrawer } = await import("./EmojiDrawer.js");
6
6
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new EmojiDrawer()));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/shape-emoji",
3
- "version": "4.0.5",
3
+ "version": "4.1.1",
4
4
  "description": "tsParticles emoji shape",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -65,13 +65,13 @@
65
65
  "./package.json": "./package.json"
66
66
  },
67
67
  "peerDependencies": {
68
- "@tsparticles/engine": "4.0.5"
68
+ "@tsparticles/engine": "4.1.1"
69
69
  },
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
73
  "type": "module",
74
74
  "dependencies": {
75
- "@tsparticles/canvas-utils": "4.0.5"
75
+ "@tsparticles/canvas-utils": "4.1.1"
76
76
  }
77
77
  }
@@ -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
- /* Shape v4.0.5 */
2
+ /* Shape v4.1.1 */
3
3
  (function (global, factory) {
4
4
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@tsparticles/engine'), require('@tsparticles/canvas-utils')) :
5
5
  typeof define === 'function' && define.amd ? define(['exports', '@tsparticles/engine', '@tsparticles/canvas-utils'], factory) :
@@ -16,13 +16,13 @@
16
16
 
17
17
  const defaultFont = '"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif', noPadding = 0, firstItem = 0;
18
18
  class EmojiDrawer {
19
- _emojiShapeDict = new Map();
19
+ #emojiShapeDict = new Map();
20
20
  destroy() {
21
- for (const [key, data] of this._emojiShapeDict) {
21
+ for (const [key, data] of this.#emojiShapeDict) {
22
22
  if (data instanceof ImageBitmap) {
23
23
  data.close();
24
24
  }
25
- this._emojiShapeDict.delete(key);
25
+ this.#emojiShapeDict.delete(key);
26
26
  }
27
27
  }
28
28
  draw(data) {
@@ -30,7 +30,7 @@
30
30
  if (!key) {
31
31
  return;
32
32
  }
33
- const image = this._emojiShapeDict.get(key);
33
+ const image = this.#emojiShapeDict.get(key);
34
34
  if (!image) {
35
35
  return;
36
36
  }
@@ -73,7 +73,7 @@
73
73
  ...shapeData,
74
74
  ...emoji,
75
75
  }, font = emojiOptions.font, value = emojiOptions.value, cacheKey = `${value}_${font}`;
76
- if (this._emojiShapeDict.has(cacheKey)) {
76
+ if (this.#emojiShapeDict.has(cacheKey)) {
77
77
  particle.emojiDataKey = cacheKey;
78
78
  return;
79
79
  }
@@ -86,13 +86,13 @@
86
86
  context.textAlign = "center";
87
87
  context.fillText(value, fullSize, fullSize);
88
88
  const image = cacheCanvas instanceof HTMLCanvasElement ? cacheCanvas : cacheCanvas.transferToImageBitmap();
89
- this._emojiShapeDict.set(cacheKey, image);
89
+ this.#emojiShapeDict.set(cacheKey, image);
90
90
  particle.emojiDataKey = cacheKey;
91
91
  }
92
92
  }
93
93
 
94
94
  async function loadEmojiShape(engine) {
95
- engine.checkVersion("4.0.5");
95
+ engine.checkVersion("4.1.1");
96
96
  await engine.pluginManager.register(e => {
97
97
  e.pluginManager.addShape(validTypes, () => Promise.resolve(new EmojiDrawer()));
98
98
  });
@@ -1 +1 @@
1
- !function(t){t.__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.bundles=t.__tsParticlesInternals.bundles||{},t.__tsParticlesInternals.effects=t.__tsParticlesInternals.effects||{},t.__tsParticlesInternals.engine=t.__tsParticlesInternals.engine||{},t.__tsParticlesInternals.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.palettes=t.__tsParticlesInternals.palettes||{},t.__tsParticlesInternals.paths=t.__tsParticlesInternals.paths||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins.emittersShapes=t.__tsParticlesInternals.plugins.emittersShapes||{},t.__tsParticlesInternals.presets=t.__tsParticlesInternals.presets||{},t.__tsParticlesInternals.shapes=t.__tsParticlesInternals.shapes||{},t.__tsParticlesInternals.updaters=t.__tsParticlesInternals.updaters||{},t.__tsParticlesInternals.utils=t.__tsParticlesInternals.utils||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas.utils=t.__tsParticlesInternals.canvas.utils||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path.utils=t.__tsParticlesInternals.path.utils||{};var s="undefined"!=typeof Proxy?function(t){return new Proxy(t,{get:function(t,s){return s in t||(t[s]={}),t[s]}})}:function(t){return t};t.__tsParticlesInternals.bundles=s(t.__tsParticlesInternals.bundles),t.__tsParticlesInternals.effects=s(t.__tsParticlesInternals.effects),t.__tsParticlesInternals.interactions=s(t.__tsParticlesInternals.interactions),t.__tsParticlesInternals.palettes=s(t.__tsParticlesInternals.palettes),t.__tsParticlesInternals.paths=s(t.__tsParticlesInternals.paths),t.__tsParticlesInternals.plugins=s(t.__tsParticlesInternals.plugins),t.__tsParticlesInternals.plugins.emittersShapes=s(t.__tsParticlesInternals.plugins.emittersShapes),t.__tsParticlesInternals.presets=s(t.__tsParticlesInternals.presets),t.__tsParticlesInternals.shapes=s(t.__tsParticlesInternals.shapes),t.__tsParticlesInternals.updaters=s(t.__tsParticlesInternals.updaters),t.__tsParticlesInternals.utils=s(t.__tsParticlesInternals.utils),t.__tsParticlesInternals.canvas=s(t.__tsParticlesInternals.canvas),t.__tsParticlesInternals.path=s(t.__tsParticlesInternals.path),t.tsparticlesInternalExports=t.tsparticlesInternalExports||{}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:this),function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("@tsparticles/engine"),require("@tsparticles/canvas-utils")):"function"==typeof define&&define.amd?define(["exports","@tsparticles/engine","@tsparticles/canvas-utils"],s):s(((t="undefined"!=typeof globalThis?globalThis:t||self).__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.shapes=t.__tsParticlesInternals.shapes||{},t.__tsParticlesInternals.shapes.emoji=t.__tsParticlesInternals.shapes.emoji||{}),t.__tsParticlesInternals.engine,t.__tsParticlesInternals.canvas.utils)}(this,function(t,s,e){"use strict";const a=["emoji"];const n='"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif';class l{_emojiShapeDict=new Map;destroy(){for(const[t,s]of this._emojiShapeDict)s instanceof ImageBitmap&&s.close(),this._emojiShapeDict.delete(t)}draw(t){const e=t.particle.emojiDataKey;if(!e)return;const a=this._emojiShapeDict.get(e);a&&function(t,e){const{context:a,opacity:n}=t,l=a.globalAlpha,r=e.width,i=r*s.half;a.globalAlpha=n,a.drawImage(e,-i,-i,r,r),a.globalAlpha=l}(t,a)}async init(t){const l=t.actualOptions.particles.shape;if(!a.some(t=>s.isInArray(t,l.type)))return;const r=[e.loadFont(n)],i=a.map(t=>l.options[t])[0];s.executeOnSingleOrMultiple(i,t=>{t.font&&r.push(e.loadFont(t.font))}),await Promise.all(r)}particleDestroy(t){t.emojiDataKey=void 0}particleInit(t,e){const a=e.shapeData;if(!a.value)return;const l=s.itemFromSingleOrMultiple(a.value,e.randomIndexData);if(!l)return;const r="string"==typeof l?{font:a.font??n,padding:a.padding??0,value:l}:{font:n,padding:0,...a,...l},i=r.font,_=r.value,c=`${_}_${i}`;if(this._emojiShapeDict.has(c))return void(e.emojiDataKey=c);const o=r.padding*s.double,p=s.getRangeMax(e.size.value),I=p+o,P=I*s.double,u=new OffscreenCanvas(P,P),h=u.getContext("2d",t.canvas.render.settings);if(!h)return;h.font=`400 ${(p*s.double).toString()}px ${i}`,h.textBaseline="middle",h.textAlign="center",h.fillText(_,I,I);const d=u instanceof HTMLCanvasElement?u:u.transferToImageBitmap();this._emojiShapeDict.set(c,d),e.emojiDataKey=c}}async function r(t){t.checkVersion("4.0.5"),await t.pluginManager.register(t=>{t.pluginManager.addShape(a,()=>Promise.resolve(new l))})}const i=globalThis;i.__tsParticlesInternals=i.__tsParticlesInternals??{},i.loadEmojiShape=r,t.loadEmojiShape=r}),Object.assign(globalThis.window||globalThis,{loadEmojiShape:(globalThis.__tsParticlesInternals.shapes.emoji||{}).loadEmojiShape}),delete(globalThis.window||globalThis).tsparticlesInternalExports;
1
+ !function(t){t.__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.bundles=t.__tsParticlesInternals.bundles||{},t.__tsParticlesInternals.effects=t.__tsParticlesInternals.effects||{},t.__tsParticlesInternals.engine=t.__tsParticlesInternals.engine||{},t.__tsParticlesInternals.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.palettes=t.__tsParticlesInternals.palettes||{},t.__tsParticlesInternals.paths=t.__tsParticlesInternals.paths||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins.emittersShapes=t.__tsParticlesInternals.plugins.emittersShapes||{},t.__tsParticlesInternals.presets=t.__tsParticlesInternals.presets||{},t.__tsParticlesInternals.shapes=t.__tsParticlesInternals.shapes||{},t.__tsParticlesInternals.updaters=t.__tsParticlesInternals.updaters||{},t.__tsParticlesInternals.utils=t.__tsParticlesInternals.utils||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas.utils=t.__tsParticlesInternals.canvas.utils||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path.utils=t.__tsParticlesInternals.path.utils||{};var s="undefined"!=typeof Proxy?function(t){return new Proxy(t,{get:function(t,s){return s in t||(t[s]={}),t[s]}})}:function(t){return t};t.__tsParticlesInternals.bundles=s(t.__tsParticlesInternals.bundles),t.__tsParticlesInternals.effects=s(t.__tsParticlesInternals.effects),t.__tsParticlesInternals.interactions=s(t.__tsParticlesInternals.interactions),t.__tsParticlesInternals.palettes=s(t.__tsParticlesInternals.palettes),t.__tsParticlesInternals.paths=s(t.__tsParticlesInternals.paths),t.__tsParticlesInternals.plugins=s(t.__tsParticlesInternals.plugins),t.__tsParticlesInternals.plugins.emittersShapes=s(t.__tsParticlesInternals.plugins.emittersShapes),t.__tsParticlesInternals.presets=s(t.__tsParticlesInternals.presets),t.__tsParticlesInternals.shapes=s(t.__tsParticlesInternals.shapes),t.__tsParticlesInternals.updaters=s(t.__tsParticlesInternals.updaters),t.__tsParticlesInternals.utils=s(t.__tsParticlesInternals.utils),t.__tsParticlesInternals.canvas=s(t.__tsParticlesInternals.canvas),t.__tsParticlesInternals.path=s(t.__tsParticlesInternals.path),t.tsparticlesInternalExports=t.tsparticlesInternalExports||{}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:this),function(t,s){"object"==typeof exports&&"undefined"!=typeof module?s(exports,require("@tsparticles/engine"),require("@tsparticles/canvas-utils")):"function"==typeof define&&define.amd?define(["exports","@tsparticles/engine","@tsparticles/canvas-utils"],s):s(((t="undefined"!=typeof globalThis?globalThis:t||self).__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.shapes=t.__tsParticlesInternals.shapes||{},t.__tsParticlesInternals.shapes.emoji=t.__tsParticlesInternals.shapes.emoji||{}),t.__tsParticlesInternals.engine,t.__tsParticlesInternals.canvas.utils)}(this,function(t,s,e){"use strict";const a=["emoji"];const n='"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif';class l{#t=new Map;destroy(){for(const[t,s]of this.#t)s instanceof ImageBitmap&&s.close(),this.#t.delete(t)}draw(t){const e=t.particle.emojiDataKey;if(!e)return;const a=this.#t.get(e);a&&function(t,e){const{context:a,opacity:n}=t,l=a.globalAlpha,r=e.width,i=r*s.half;a.globalAlpha=n,a.drawImage(e,-i,-i,r,r),a.globalAlpha=l}(t,a)}async init(t){const l=t.actualOptions.particles.shape;if(!a.some(t=>s.isInArray(t,l.type)))return;const r=[e.loadFont(n)],i=a.map(t=>l.options[t])[0];s.executeOnSingleOrMultiple(i,t=>{t.font&&r.push(e.loadFont(t.font))}),await Promise.all(r)}particleDestroy(t){t.emojiDataKey=void 0}particleInit(t,e){const a=e.shapeData;if(!a.value)return;const l=s.itemFromSingleOrMultiple(a.value,e.randomIndexData);if(!l)return;const r="string"==typeof l?{font:a.font??n,padding:a.padding??0,value:l}:{font:n,padding:0,...a,...l},i=r.font,_=r.value,c=`${_}_${i}`;if(this.#t.has(c))return void(e.emojiDataKey=c);const o=r.padding*s.double,p=s.getRangeMax(e.size.value),I=p+o,P=I*s.double,u=new OffscreenCanvas(P,P),h=u.getContext("2d",t.canvas.render.settings);if(!h)return;h.font=`400 ${(p*s.double).toString()}px ${i}`,h.textBaseline="middle",h.textAlign="center",h.fillText(_,I,I);const d=u instanceof HTMLCanvasElement?u:u.transferToImageBitmap();this.#t.set(c,d),e.emojiDataKey=c}}async function r(t){t.checkVersion("4.1.1"),await t.pluginManager.register(t=>{t.pluginManager.addShape(a,()=>Promise.resolve(new l))})}const i=globalThis;i.__tsParticlesInternals=i.__tsParticlesInternals??{},i.loadEmojiShape=r,t.loadEmojiShape=r}),Object.assign(globalThis.window||globalThis,{loadEmojiShape:(globalThis.__tsParticlesInternals.shapes.emoji||{}).loadEmojiShape}),delete(globalThis.window||globalThis).tsparticlesInternalExports;
@@ -1,7 +1,7 @@
1
1
  import { type Container, type IShapeDrawData, type IShapeDrawer } from "@tsparticles/engine";
2
2
  import type { EmojiParticle } from "./EmojiParticle.js";
3
3
  export declare class EmojiDrawer implements IShapeDrawer<EmojiParticle> {
4
- private readonly _emojiShapeDict;
4
+ #private;
5
5
  destroy(): void;
6
6
  draw(data: IShapeDrawData<EmojiParticle>): void;
7
7
  init(container: Container): Promise<void>;