@tsparticles/plugin-canvas-mask 3.6.0-beta.0 → 3.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/CanvasMaskInstance.js +2 -1
- package/browser/Options/Classes/CanvasMask.js +2 -1
- package/browser/Options/Classes/CanvasMaskOverride.js +2 -1
- package/browser/Options/Classes/CanvasMaskPixels.js +2 -2
- package/browser/Options/Classes/FontTextMask.js +2 -1
- package/browser/Options/Classes/ImageMask.js +2 -1
- package/browser/Options/Classes/TextMask.js +2 -1
- package/browser/Options/Classes/TextMaskLine.js +2 -1
- package/cjs/CanvasMaskInstance.js +2 -1
- package/cjs/Options/Classes/CanvasMask.js +2 -1
- package/cjs/Options/Classes/CanvasMaskOverride.js +2 -1
- package/cjs/Options/Classes/CanvasMaskPixels.js +1 -1
- package/cjs/Options/Classes/FontTextMask.js +2 -1
- package/cjs/Options/Classes/ImageMask.js +2 -1
- package/cjs/Options/Classes/TextMask.js +2 -1
- package/cjs/Options/Classes/TextMaskLine.js +2 -1
- package/esm/CanvasMaskInstance.js +2 -1
- package/esm/Options/Classes/CanvasMask.js +2 -1
- package/esm/Options/Classes/CanvasMaskOverride.js +2 -1
- package/esm/Options/Classes/CanvasMaskPixels.js +2 -2
- package/esm/Options/Classes/FontTextMask.js +2 -1
- package/esm/Options/Classes/ImageMask.js +2 -1
- package/esm/Options/Classes/TextMask.js +2 -1
- package/esm/Options/Classes/TextMaskLine.js +2 -1
- package/package.json +2 -2
- package/report.html +1 -1
- package/tsparticles.plugin.canvas-mask.js +9 -9
- package/tsparticles.plugin.canvas-mask.min.js +1 -1
- package/tsparticles.plugin.canvas-mask.min.js.LICENSE.txt +1 -1
- package/types/CanvasMaskInstance.d.ts +1 -1
- package/types/Options/Classes/CanvasMask.d.ts +1 -1
- package/types/Options/Classes/CanvasMaskOverride.d.ts +1 -1
- package/types/Options/Classes/FontTextMask.d.ts +1 -1
- package/types/Options/Classes/ImageMask.d.ts +1 -1
- package/types/Options/Classes/TextMask.d.ts +1 -1
- package/types/Options/Classes/TextMaskLine.d.ts +1 -1
- package/umd/CanvasMaskInstance.js +3 -2
- package/umd/Options/Classes/CanvasMask.js +3 -2
- package/umd/Options/Classes/CanvasMaskOverride.js +3 -2
- package/umd/Options/Classes/CanvasMaskPixels.js +1 -1
- package/umd/Options/Classes/FontTextMask.js +3 -2
- package/umd/Options/Classes/ImageMask.js +3 -2
- package/umd/Options/Classes/TextMask.js +3 -2
- package/umd/Options/Classes/TextMaskLine.js +3 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { addParticlesFromCanvasPixels, getCanvasImageData, getImageData, getTextData, } from "./utils.js";
|
|
2
|
+
import { isNull } from "@tsparticles/engine";
|
|
2
3
|
export class CanvasMaskInstance {
|
|
3
4
|
constructor(container) {
|
|
4
5
|
this._container = container;
|
|
@@ -24,7 +25,7 @@ export class CanvasMaskInstance {
|
|
|
24
25
|
else if (options.text) {
|
|
25
26
|
const textOptions = options.text;
|
|
26
27
|
const data = getTextData(textOptions, offset);
|
|
27
|
-
if (
|
|
28
|
+
if (isNull(data)) {
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
31
|
pixelData = data;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull } from "@tsparticles/engine";
|
|
1
2
|
import { CanvasMaskOverride } from "./CanvasMaskOverride.js";
|
|
2
3
|
import { CanvasMaskPixels } from "./CanvasMaskPixels.js";
|
|
3
4
|
import { ImageMask } from "./ImageMask.js";
|
|
@@ -14,7 +15,7 @@ export class CanvasMask {
|
|
|
14
15
|
this.scale = 1;
|
|
15
16
|
}
|
|
16
17
|
load(data) {
|
|
17
|
-
if (
|
|
18
|
+
if (isNull(data)) {
|
|
18
19
|
return;
|
|
19
20
|
}
|
|
20
21
|
if (data.element !== undefined && data.element instanceof HTMLCanvasElement) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isFunction, isString } from "@tsparticles/engine";
|
|
1
|
+
import { isFunction, isNull, isString, } from "@tsparticles/engine";
|
|
2
2
|
const minAlpha = 0;
|
|
3
3
|
export class CanvasMaskPixels {
|
|
4
4
|
constructor() {
|
|
@@ -6,7 +6,7 @@ export class CanvasMaskPixels {
|
|
|
6
6
|
this.offset = 4;
|
|
7
7
|
}
|
|
8
8
|
load(data) {
|
|
9
|
-
if (
|
|
9
|
+
if (isNull(data)) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
12
|
if (data.filter !== undefined) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull } from "@tsparticles/engine";
|
|
1
2
|
import { FontTextMask } from "./FontTextMask.js";
|
|
2
3
|
import { TextMaskLine } from "./TextMaskLine.js";
|
|
3
4
|
export class TextMask {
|
|
@@ -8,7 +9,7 @@ export class TextMask {
|
|
|
8
9
|
this.text = "";
|
|
9
10
|
}
|
|
10
11
|
load(data) {
|
|
11
|
-
if (
|
|
12
|
+
if (isNull(data)) {
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
14
15
|
if (data.color !== undefined) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CanvasMaskInstance = void 0;
|
|
4
4
|
const utils_js_1 = require("./utils.js");
|
|
5
|
+
const engine_1 = require("@tsparticles/engine");
|
|
5
6
|
class CanvasMaskInstance {
|
|
6
7
|
constructor(container) {
|
|
7
8
|
this._container = container;
|
|
@@ -27,7 +28,7 @@ class CanvasMaskInstance {
|
|
|
27
28
|
else if (options.text) {
|
|
28
29
|
const textOptions = options.text;
|
|
29
30
|
const data = (0, utils_js_1.getTextData)(textOptions, offset);
|
|
30
|
-
if (
|
|
31
|
+
if ((0, engine_1.isNull)(data)) {
|
|
31
32
|
return;
|
|
32
33
|
}
|
|
33
34
|
pixelData = data;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CanvasMask = void 0;
|
|
4
|
+
const engine_1 = require("@tsparticles/engine");
|
|
4
5
|
const CanvasMaskOverride_js_1 = require("./CanvasMaskOverride.js");
|
|
5
6
|
const CanvasMaskPixels_js_1 = require("./CanvasMaskPixels.js");
|
|
6
7
|
const ImageMask_js_1 = require("./ImageMask.js");
|
|
@@ -17,7 +18,7 @@ class CanvasMask {
|
|
|
17
18
|
this.scale = 1;
|
|
18
19
|
}
|
|
19
20
|
load(data) {
|
|
20
|
-
if (
|
|
21
|
+
if ((0, engine_1.isNull)(data)) {
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
24
|
if (data.element !== undefined && data.element instanceof HTMLCanvasElement) {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CanvasMaskOverride = void 0;
|
|
4
|
+
const engine_1 = require("@tsparticles/engine");
|
|
4
5
|
class CanvasMaskOverride {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.color = true;
|
|
7
8
|
this.opacity = false;
|
|
8
9
|
}
|
|
9
10
|
load(data) {
|
|
10
|
-
if (
|
|
11
|
+
if ((0, engine_1.isNull)(data)) {
|
|
11
12
|
return;
|
|
12
13
|
}
|
|
13
14
|
if (data.color !== undefined) {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FontTextMask = void 0;
|
|
4
|
+
const engine_1 = require("@tsparticles/engine");
|
|
4
5
|
class FontTextMask {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.family = "sans-serif";
|
|
7
8
|
this.size = 100;
|
|
8
9
|
}
|
|
9
10
|
load(data) {
|
|
10
|
-
if (
|
|
11
|
+
if ((0, engine_1.isNull)(data)) {
|
|
11
12
|
return;
|
|
12
13
|
}
|
|
13
14
|
if (data.family !== undefined) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ImageMask = void 0;
|
|
4
|
+
const engine_1 = require("@tsparticles/engine");
|
|
4
5
|
class ImageMask {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.src = "";
|
|
7
8
|
}
|
|
8
9
|
load(data) {
|
|
9
|
-
if (
|
|
10
|
+
if ((0, engine_1.isNull)(data)) {
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
13
|
if (data.src !== undefined) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TextMask = void 0;
|
|
4
|
+
const engine_1 = require("@tsparticles/engine");
|
|
4
5
|
const FontTextMask_js_1 = require("./FontTextMask.js");
|
|
5
6
|
const TextMaskLine_js_1 = require("./TextMaskLine.js");
|
|
6
7
|
class TextMask {
|
|
@@ -11,7 +12,7 @@ class TextMask {
|
|
|
11
12
|
this.text = "";
|
|
12
13
|
}
|
|
13
14
|
load(data) {
|
|
14
|
-
if (
|
|
15
|
+
if ((0, engine_1.isNull)(data)) {
|
|
15
16
|
return;
|
|
16
17
|
}
|
|
17
18
|
if (data.color !== undefined) {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TextMaskLine = void 0;
|
|
4
|
+
const engine_1 = require("@tsparticles/engine");
|
|
4
5
|
class TextMaskLine {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.separator = "\n";
|
|
7
8
|
this.spacing = 10;
|
|
8
9
|
}
|
|
9
10
|
load(data) {
|
|
10
|
-
if (
|
|
11
|
+
if ((0, engine_1.isNull)(data)) {
|
|
11
12
|
return;
|
|
12
13
|
}
|
|
13
14
|
if (data.separator !== undefined) {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { addParticlesFromCanvasPixels, getCanvasImageData, getImageData, getTextData, } from "./utils.js";
|
|
2
|
+
import { isNull } from "@tsparticles/engine";
|
|
2
3
|
export class CanvasMaskInstance {
|
|
3
4
|
constructor(container) {
|
|
4
5
|
this._container = container;
|
|
@@ -24,7 +25,7 @@ export class CanvasMaskInstance {
|
|
|
24
25
|
else if (options.text) {
|
|
25
26
|
const textOptions = options.text;
|
|
26
27
|
const data = getTextData(textOptions, offset);
|
|
27
|
-
if (
|
|
28
|
+
if (isNull(data)) {
|
|
28
29
|
return;
|
|
29
30
|
}
|
|
30
31
|
pixelData = data;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull } from "@tsparticles/engine";
|
|
1
2
|
import { CanvasMaskOverride } from "./CanvasMaskOverride.js";
|
|
2
3
|
import { CanvasMaskPixels } from "./CanvasMaskPixels.js";
|
|
3
4
|
import { ImageMask } from "./ImageMask.js";
|
|
@@ -14,7 +15,7 @@ export class CanvasMask {
|
|
|
14
15
|
this.scale = 1;
|
|
15
16
|
}
|
|
16
17
|
load(data) {
|
|
17
|
-
if (
|
|
18
|
+
if (isNull(data)) {
|
|
18
19
|
return;
|
|
19
20
|
}
|
|
20
21
|
if (data.element !== undefined && data.element instanceof HTMLCanvasElement) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isFunction, isString } from "@tsparticles/engine";
|
|
1
|
+
import { isFunction, isNull, isString, } from "@tsparticles/engine";
|
|
2
2
|
const minAlpha = 0;
|
|
3
3
|
export class CanvasMaskPixels {
|
|
4
4
|
constructor() {
|
|
@@ -6,7 +6,7 @@ export class CanvasMaskPixels {
|
|
|
6
6
|
this.offset = 4;
|
|
7
7
|
}
|
|
8
8
|
load(data) {
|
|
9
|
-
if (
|
|
9
|
+
if (isNull(data)) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
12
|
if (data.filter !== undefined) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isNull } from "@tsparticles/engine";
|
|
1
2
|
import { FontTextMask } from "./FontTextMask.js";
|
|
2
3
|
import { TextMaskLine } from "./TextMaskLine.js";
|
|
3
4
|
export class TextMask {
|
|
@@ -8,7 +9,7 @@ export class TextMask {
|
|
|
8
9
|
this.text = "";
|
|
9
10
|
}
|
|
10
11
|
load(data) {
|
|
11
|
-
if (
|
|
12
|
+
if (isNull(data)) {
|
|
12
13
|
return;
|
|
13
14
|
}
|
|
14
15
|
if (data.color !== undefined) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsparticles/plugin-canvas-mask",
|
|
3
|
-
"version": "3.6.0
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "tsParticles canvas mask plugin",
|
|
5
5
|
"homepage": "https://particles.js.org",
|
|
6
6
|
"repository": {
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"./package.json": "./package.json"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@tsparticles/engine": "^3.6.0
|
|
89
|
+
"@tsparticles/engine": "^3.6.0"
|
|
90
90
|
},
|
|
91
91
|
"publishConfig": {
|
|
92
92
|
"access": "public"
|
package/report.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8"/>
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
6
|
-
<title>@tsparticles/plugin-canvas-mask [
|
|
6
|
+
<title>@tsparticles/plugin-canvas-mask [18 Nov 2024 at 23:53]</title>
|
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
|
8
8
|
|
|
9
9
|
<script>
|
|
@@ -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.6.0
|
|
7
|
+
* v3.6.0
|
|
8
8
|
*/
|
|
9
9
|
/*
|
|
10
10
|
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
|
@@ -34,7 +34,7 @@ return /******/ (() => { // webpackBootstrap
|
|
|
34
34
|
\********************************************/
|
|
35
35
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
36
36
|
|
|
37
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskInstance: () => (/* binding */ CanvasMaskInstance)\n/* harmony export */ });\n/* harmony import */ var
|
|
37
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskInstance: () => (/* binding */ CanvasMaskInstance)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.js */ \"./dist/browser/utils.js\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\n\nclass CanvasMaskInstance {\n constructor(container) {\n this._container = container;\n }\n async init() {\n const container = this._container,\n options = container.actualOptions.canvasMask;\n if (!options?.enable) {\n return;\n }\n let pixelData = {\n pixels: [],\n height: 0,\n width: 0\n };\n const offset = options.pixels.offset;\n if (options.image) {\n const url = options.image.src;\n if (!url) {\n return;\n }\n pixelData = await (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.getImageData)(url, offset);\n } else if (options.text) {\n const textOptions = options.text;\n const data = (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.getTextData)(textOptions, offset);\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n pixelData = data;\n } else if (options.element ?? options.selector) {\n const canvas = options.element ?? (options.selector && document.querySelector(options.selector));\n if (!canvas) {\n return;\n }\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n pixelData = (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.getCanvasImageData)(context, canvas, offset);\n }\n (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.addParticlesFromCanvasPixels)(container, pixelData, options.position, options.scale, options.override, options.pixels.filter);\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/CanvasMaskInstance.js?");
|
|
38
38
|
|
|
39
39
|
/***/ }),
|
|
40
40
|
|
|
@@ -54,7 +54,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
54
54
|
\****************************************************/
|
|
55
55
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
56
56
|
|
|
57
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMask: () => (/* binding */ CanvasMask)\n/* harmony export */ });\n/* harmony import */ var
|
|
57
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMask: () => (/* binding */ CanvasMask)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _CanvasMaskOverride_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CanvasMaskOverride.js */ \"./dist/browser/Options/Classes/CanvasMaskOverride.js\");\n/* harmony import */ var _CanvasMaskPixels_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CanvasMaskPixels.js */ \"./dist/browser/Options/Classes/CanvasMaskPixels.js\");\n/* harmony import */ var _ImageMask_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ImageMask.js */ \"./dist/browser/Options/Classes/ImageMask.js\");\n/* harmony import */ var _TextMask_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./TextMask.js */ \"./dist/browser/Options/Classes/TextMask.js\");\n\n\n\n\n\nclass CanvasMask {\n constructor() {\n this.enable = false;\n this.override = new _CanvasMaskOverride_js__WEBPACK_IMPORTED_MODULE_1__.CanvasMaskOverride();\n this.pixels = new _CanvasMaskPixels_js__WEBPACK_IMPORTED_MODULE_2__.CanvasMaskPixels();\n this.position = {\n x: 50,\n y: 50\n };\n this.scale = 1;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.element !== undefined && data.element instanceof HTMLCanvasElement) {\n this.element = data.element;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.image) {\n if (!this.image) {\n this.image = new _ImageMask_js__WEBPACK_IMPORTED_MODULE_3__.ImageMask();\n }\n this.image.load(data.image);\n }\n this.pixels.load(data.pixels);\n if (data.position) {\n this.position = {\n x: data.position.x ?? this.position.x,\n y: data.position.y ?? this.position.y\n };\n }\n this.override.load(data.override);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.selector !== undefined) {\n this.selector = data.selector;\n }\n if (data.text) {\n if (!this.text) {\n this.text = new _TextMask_js__WEBPACK_IMPORTED_MODULE_4__.TextMask();\n }\n this.text.load(data.text);\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/CanvasMask.js?");
|
|
58
58
|
|
|
59
59
|
/***/ }),
|
|
60
60
|
|
|
@@ -64,7 +64,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
64
64
|
\************************************************************/
|
|
65
65
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
66
66
|
|
|
67
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskOverride: () => (/* binding */ CanvasMaskOverride)\n/* harmony export */ });\nclass CanvasMaskOverride {\n constructor() {\n this.color = true;\n this.opacity = false;\n }\n load(data) {\n if (
|
|
67
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskOverride: () => (/* binding */ CanvasMaskOverride)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nclass CanvasMaskOverride {\n constructor() {\n this.color = true;\n this.opacity = false;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = data.color;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/CanvasMaskOverride.js?");
|
|
68
68
|
|
|
69
69
|
/***/ }),
|
|
70
70
|
|
|
@@ -74,7 +74,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
74
74
|
\**********************************************************/
|
|
75
75
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
76
76
|
|
|
77
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskPixels: () => (/* binding */ CanvasMaskPixels)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nconst minAlpha = 0;\nclass CanvasMaskPixels {\n constructor() {\n this.filter = pixel => pixel.a > minAlpha;\n this.offset = 4;\n }\n load(data) {\n if (
|
|
77
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskPixels: () => (/* binding */ CanvasMaskPixels)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nconst minAlpha = 0;\nclass CanvasMaskPixels {\n constructor() {\n this.filter = pixel => pixel.a > minAlpha;\n this.offset = 4;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.filter !== undefined) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isString)(data.filter)) {\n if (Object.hasOwn(window, data.filter)) {\n const filter = window[data.filter];\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isFunction)(filter)) {\n this.filter = filter;\n }\n }\n } else {\n this.filter = data.filter;\n }\n }\n if (data.offset !== undefined) {\n this.offset = data.offset;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/CanvasMaskPixels.js?");
|
|
78
78
|
|
|
79
79
|
/***/ }),
|
|
80
80
|
|
|
@@ -84,7 +84,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
84
84
|
\******************************************************/
|
|
85
85
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
86
86
|
|
|
87
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FontTextMask: () => (/* binding */ FontTextMask)\n/* harmony export */ });\nclass FontTextMask {\n constructor() {\n this.family = \"sans-serif\";\n this.size = 100;\n }\n load(data) {\n if (
|
|
87
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FontTextMask: () => (/* binding */ FontTextMask)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nclass FontTextMask {\n constructor() {\n this.family = \"sans-serif\";\n this.size = 100;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.family !== undefined) {\n this.family = data.family;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.style !== undefined) {\n this.style = data.style;\n }\n if (data.variant !== undefined) {\n this.variant = data.variant;\n }\n if (data.weight !== undefined) {\n this.weight = data.weight;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/FontTextMask.js?");
|
|
88
88
|
|
|
89
89
|
/***/ }),
|
|
90
90
|
|
|
@@ -94,7 +94,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
94
94
|
\***************************************************/
|
|
95
95
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
96
96
|
|
|
97
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ImageMask: () => (/* binding */ ImageMask)\n/* harmony export */ });\nclass ImageMask {\n constructor() {\n this.src = \"\";\n }\n load(data) {\n if (
|
|
97
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ImageMask: () => (/* binding */ ImageMask)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nclass ImageMask {\n constructor() {\n this.src = \"\";\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.src !== undefined) {\n this.src = data.src;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/ImageMask.js?");
|
|
98
98
|
|
|
99
99
|
/***/ }),
|
|
100
100
|
|
|
@@ -104,7 +104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
104
104
|
\**************************************************/
|
|
105
105
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
106
106
|
|
|
107
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TextMask: () => (/* binding */ TextMask)\n/* harmony export */ });\n/* harmony import */ var
|
|
107
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TextMask: () => (/* binding */ TextMask)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FontTextMask_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FontTextMask.js */ \"./dist/browser/Options/Classes/FontTextMask.js\");\n/* harmony import */ var _TextMaskLine_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TextMaskLine.js */ \"./dist/browser/Options/Classes/TextMaskLine.js\");\n\n\n\nclass TextMask {\n constructor() {\n this.color = \"#000000\";\n this.font = new _FontTextMask_js__WEBPACK_IMPORTED_MODULE_1__.FontTextMask();\n this.lines = new _TextMaskLine_js__WEBPACK_IMPORTED_MODULE_2__.TextMaskLine();\n this.text = \"\";\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = data.color;\n }\n this.font.load(data.font);\n this.lines.load(data.lines);\n if (data.text !== undefined) {\n this.text = data.text;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/TextMask.js?");
|
|
108
108
|
|
|
109
109
|
/***/ }),
|
|
110
110
|
|
|
@@ -114,7 +114,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
114
114
|
\******************************************************/
|
|
115
115
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
116
116
|
|
|
117
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TextMaskLine: () => (/* binding */ TextMaskLine)\n/* harmony export */ });\nclass TextMaskLine {\n constructor() {\n this.separator = \"\\n\";\n this.spacing = 10;\n }\n load(data) {\n if (
|
|
117
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ TextMaskLine: () => (/* binding */ TextMaskLine)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__);\n\nclass TextMaskLine {\n constructor() {\n this.separator = \"\\n\";\n this.spacing = 10;\n }\n load(data) {\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(data)) {\n return;\n }\n if (data.separator !== undefined) {\n this.separator = data.separator;\n }\n if (data.spacing !== undefined) {\n this.spacing = data.spacing;\n }\n }\n}\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/TextMaskLine.js?");
|
|
118
118
|
|
|
119
119
|
/***/ }),
|
|
120
120
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see tsparticles.plugin.canvas-mask.min.js.LICENSE.txt */
|
|
2
|
-
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],e);else{var i="object"==typeof exports?e(require("@tsparticles/engine")):e(t.window);for(var o in i)("object"==typeof exports?exports:t)[o]=i[o]}}(this,(t=>(()=>{var e={303:e=>{e.exports=t}},i={};function o(t){var s=i[t];if(void 0!==s)return s.exports;var n=i[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s={};o.r(s),o.d(s,{loadCanvasMaskPlugin:()=>m});class
|
|
2
|
+
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],e);else{var i="object"==typeof exports?e(require("@tsparticles/engine")):e(t.window);for(var o in i)("object"==typeof exports?exports:t)[o]=i[o]}}(this,(t=>(()=>{var e={303:e=>{e.exports=t}},i={};function o(t){var s=i[t];if(void 0!==s)return s.exports;var n=i[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s={};o.r(s),o.d(s,{loadCanvasMaskPlugin:()=>m});var n=o(303);class r{constructor(){this.color=!0,this.opacity=!1}load(t){(0,n.isNull)(t)||(void 0!==t.color&&(this.color=t.color),void 0!==t.opacity&&(this.opacity=t.opacity))}}class a{constructor(){this.filter=t=>t.a>0,this.offset=4}load(t){if(!(0,n.isNull)(t)){if(void 0!==t.filter)if((0,n.isString)(t.filter)){if(Object.hasOwn(window,t.filter)){const e=window[t.filter];(0,n.isFunction)(e)&&(this.filter=e)}}else this.filter=t.filter;void 0!==t.offset&&(this.offset=t.offset)}}}class l{constructor(){this.src=""}load(t){(0,n.isNull)(t)||void 0!==t.src&&(this.src=t.src)}}class c{constructor(){this.family="sans-serif",this.size=100}load(t){(0,n.isNull)(t)||(void 0!==t.family&&(this.family=t.family),void 0!==t.size&&(this.size=t.size),void 0!==t.style&&(this.style=t.style),void 0!==t.variant&&(this.variant=t.variant),void 0!==t.weight&&(this.weight=t.weight))}}class h{constructor(){this.separator="\n",this.spacing=10}load(t){(0,n.isNull)(t)||(void 0!==t.separator&&(this.separator=t.separator),void 0!==t.spacing&&(this.spacing=t.spacing))}}class d{constructor(){this.color="#000000",this.font=new c,this.lines=new h,this.text=""}load(t){(0,n.isNull)(t)||(void 0!==t.color&&(this.color=t.color),this.font.load(t.font),this.lines.load(t.lines),void 0!==t.text&&(this.text=t.text))}}class f{constructor(){this.enable=!1,this.override=new r,this.pixels=new a,this.position={x:50,y:50},this.scale=1}load(t){(0,n.isNull)(t)||(void 0!==t.element&&t.element instanceof HTMLCanvasElement&&(this.element=t.element),void 0!==t.enable&&(this.enable=t.enable),t.image&&(this.image||(this.image=new l),this.image.load(t.image)),this.pixels.load(t.pixels),t.position&&(this.position={x:t.position.x??this.position.x,y:t.position.y??this.position.y}),this.override.load(t.override),void 0!==t.scale&&(this.scale=t.scale),void 0!==t.selector&&(this.selector=t.selector),t.text&&(this.text||(this.text=new d),this.text.load(t.text)))}}const u={x:0,y:0};function p(t,e,i,o,s,r){const{height:a,width:l}=e,c=a*l,h=function(t){const e=1,i=0;for(let o=t.length-e;o>=i;o--){const e=Math.floor((0,n.getRandom)()*o);[t[o],t[e]]=[t[e],t[o]]}return t}(x(c)),d=Math.min(c,t.actualOptions.particles.number.value),f=t.canvas.size;let u=0;const p=f.width*i.x/n.percentDenominator-l*o*.5,g=f.height*i.y/n.percentDenominator-a*o*.5;for(;u<d&&h.length;){const i=0,n=h.pop()??i,a={x:n%l,y:Math.floor(n/l)},c=e.pixels[a.y][a.x];if(!r(c))continue;const d={x:a.x*o+p,y:a.y*o+g},f={};s.color&&(f.color={value:c}),s.opacity&&(f.opacity={value:c.a}),t.particles.addParticle(d,f),u++}}function g(t,e,i,o=!0){const s=t.getImageData(u.x,u.y,e.width,e.height).data;o&&t.clearRect(u.x,u.y,e.width,e.height);const n=[];for(let t=0;t<s.length;t+=i){const o=t/i,r={x:o%e.width,y:Math.floor(o/e.width)};n[r.y]||(n[r.y]=[]);const a={r:0,g:1,b:2,a:3},l=255;n[r.y][r.x]={r:s[t+a.r],g:s[t+a.g],b:s[t+a.b],a:s[t+a.a]/l}}return{pixels:n,width:Math.min(...n.map((t=>t.length))),height:n.length}}const x=t=>[...Array(t).keys()];class y{constructor(t){this._container=t}async init(){const t=this._container,e=t.actualOptions.canvasMask;if(!e?.enable)return;let i={pixels:[],height:0,width:0};const o=e.pixels.offset;if(e.image){const t=e.image.src;if(!t)return;i=await function(t,e){const i=new Image;i.crossOrigin="Anonymous";const o=new Promise(((t,o)=>{i.onerror=o,i.onload=()=>{const s=document.createElement("canvas");s.width=i.width,s.height=i.height;const r=s.getContext("2d");if(!r)return o(new Error(`${n.errorPrefix} Could not get canvas context`));r.drawImage(i,u.x,u.y,i.width,i.height,u.x,u.y,s.width,s.height),t(g(r,s,e))}}));return i.src=t,o}(t,o)}else if(e.text){const t=function(t,e){const i=document.createElement("canvas"),o=i.getContext("2d"),{font:s,text:r,lines:a,color:l}=t;if(!r||!o)return;const c=r.split(a.separator),h=(0,n.isNumber)(s.size)?`${s.size}px`:s.size,d=[];let f=0,p=0;for(const t of c){o.font=`${s.style??""} ${s.variant??""} ${s.weight??""} ${h} ${s.family}`;const e=o.measureText(t),i={measure:e,text:t,height:e.actualBoundingBoxAscent+e.actualBoundingBoxDescent,width:e.width};f=Math.max(f||0,i.width),p+=i.height+a.spacing,d.push(i)}i.width=f,i.height=p;let x=0;for(const t of d)o.font=`${s.style??""} ${s.variant??""} ${s.weight??""} ${h} ${s.family}`,o.fillStyle=l,o.fillText(t.text,u.x,x+t.measure.actualBoundingBoxAscent),x+=t.height+a.spacing;return g(o,i,e)}(e.text,o);if((0,n.isNull)(t))return;i=t}else if(e.element??e.selector){const t=e.element??(e.selector&&document.querySelector(e.selector));if(!t)return;const s=t.getContext("2d");if(!s)return;i=g(s,t,o)}p(t,i,e.position,e.scale,e.override,e.pixels.filter)}}class v{constructor(){this.id="canvasMask"}getPlugin(t){return Promise.resolve(new y(t))}loadOptions(t,e){if(!this.needsPlugin(t)&&!this.needsPlugin(e))return;let i=t.canvasMask;void 0===i?.load&&(t.canvasMask=i=new f),i.load(e?.canvasMask)}needsPlugin(t){return t?.canvasMask?.enable??!1}}async function m(t,e=!0){await t.addPlugin(new v,e)}return s})()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
/*! tsParticles Canvas Mask Plugin v3.6.0
|
|
1
|
+
/*! tsParticles Canvas Mask Plugin v3.6.0 by Matteo Bruni */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { type IContainerPlugin } from "@tsparticles/engine";
|
|
1
2
|
import type { CanvasMaskContainer } from "./types.js";
|
|
2
|
-
import type { IContainerPlugin } from "@tsparticles/engine";
|
|
3
3
|
export declare class CanvasMaskInstance implements IContainerPlugin {
|
|
4
4
|
private readonly _container;
|
|
5
5
|
constructor(container: CanvasMaskContainer);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ICoordinates, type IOptionLoader, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import { CanvasMaskOverride } from "./CanvasMaskOverride.js";
|
|
3
3
|
import { CanvasMaskPixels } from "./CanvasMaskPixels.js";
|
|
4
4
|
import type { ICanvasMask } from "../Interfaces/ICanvasMask.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IOptionLoader, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import type { ICanvasMaskOverride } from "../Interfaces/ICanvasMaskOverride.js";
|
|
3
3
|
export declare class CanvasMaskOverride implements ICanvasMaskOverride, IOptionLoader<ICanvasMaskOverride> {
|
|
4
4
|
color: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IOptionLoader, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import type { IFontTextMask } from "../Interfaces/IFontTextMask.js";
|
|
3
3
|
export declare class FontTextMask implements IFontTextMask, IOptionLoader<IFontTextMask> {
|
|
4
4
|
family: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IOptionLoader, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import type { IImageMask } from "../Interfaces/IImageMask.js";
|
|
3
3
|
export declare class ImageMask implements IImageMask, IOptionLoader<IImageMask> {
|
|
4
4
|
src: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IOptionLoader, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import { FontTextMask } from "./FontTextMask.js";
|
|
3
3
|
import type { ITextMask } from "../Interfaces/ITextMask.js";
|
|
4
4
|
import { TextMaskLine } from "./TextMaskLine.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IOptionLoader, type RecursivePartial } from "@tsparticles/engine";
|
|
2
2
|
import type { ITextMaskLine } from "../Interfaces/ITextMaskLine.js";
|
|
3
3
|
export declare class TextMaskLine implements ITextMaskLine, IOptionLoader<ITextMaskLine> {
|
|
4
4
|
separator: string;
|
|
@@ -4,13 +4,14 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./utils.js"], factory);
|
|
7
|
+
define(["require", "exports", "./utils.js", "@tsparticles/engine"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CanvasMaskInstance = void 0;
|
|
13
13
|
const utils_js_1 = require("./utils.js");
|
|
14
|
+
const engine_1 = require("@tsparticles/engine");
|
|
14
15
|
class CanvasMaskInstance {
|
|
15
16
|
constructor(container) {
|
|
16
17
|
this._container = container;
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
else if (options.text) {
|
|
37
38
|
const textOptions = options.text;
|
|
38
39
|
const data = (0, utils_js_1.getTextData)(textOptions, offset);
|
|
39
|
-
if (
|
|
40
|
+
if ((0, engine_1.isNull)(data)) {
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
43
|
pixelData = data;
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./CanvasMaskOverride.js", "./CanvasMaskPixels.js", "./ImageMask.js", "./TextMask.js"], factory);
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine", "./CanvasMaskOverride.js", "./CanvasMaskPixels.js", "./ImageMask.js", "./TextMask.js"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CanvasMask = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
13
14
|
const CanvasMaskOverride_js_1 = require("./CanvasMaskOverride.js");
|
|
14
15
|
const CanvasMaskPixels_js_1 = require("./CanvasMaskPixels.js");
|
|
15
16
|
const ImageMask_js_1 = require("./ImageMask.js");
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
this.scale = 1;
|
|
27
28
|
}
|
|
28
29
|
load(data) {
|
|
29
|
-
if (
|
|
30
|
+
if ((0, engine_1.isNull)(data)) {
|
|
30
31
|
return;
|
|
31
32
|
}
|
|
32
33
|
if (data.element !== undefined && data.element instanceof HTMLCanvasElement) {
|
|
@@ -4,19 +4,20 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CanvasMaskOverride = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
13
14
|
class CanvasMaskOverride {
|
|
14
15
|
constructor() {
|
|
15
16
|
this.color = true;
|
|
16
17
|
this.opacity = false;
|
|
17
18
|
}
|
|
18
19
|
load(data) {
|
|
19
|
-
if (
|
|
20
|
+
if ((0, engine_1.isNull)(data)) {
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
23
|
if (data.color !== undefined) {
|
|
@@ -4,19 +4,20 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.FontTextMask = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
13
14
|
class FontTextMask {
|
|
14
15
|
constructor() {
|
|
15
16
|
this.family = "sans-serif";
|
|
16
17
|
this.size = 100;
|
|
17
18
|
}
|
|
18
19
|
load(data) {
|
|
19
|
-
if (
|
|
20
|
+
if ((0, engine_1.isNull)(data)) {
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
23
|
if (data.family !== undefined) {
|
|
@@ -4,18 +4,19 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.ImageMask = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
13
14
|
class ImageMask {
|
|
14
15
|
constructor() {
|
|
15
16
|
this.src = "";
|
|
16
17
|
}
|
|
17
18
|
load(data) {
|
|
18
|
-
if (
|
|
19
|
+
if ((0, engine_1.isNull)(data)) {
|
|
19
20
|
return;
|
|
20
21
|
}
|
|
21
22
|
if (data.src !== undefined) {
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports", "./FontTextMask.js", "./TextMaskLine.js"], factory);
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine", "./FontTextMask.js", "./TextMaskLine.js"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TextMask = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
13
14
|
const FontTextMask_js_1 = require("./FontTextMask.js");
|
|
14
15
|
const TextMaskLine_js_1 = require("./TextMaskLine.js");
|
|
15
16
|
class TextMask {
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
this.text = "";
|
|
21
22
|
}
|
|
22
23
|
load(data) {
|
|
23
|
-
if (
|
|
24
|
+
if ((0, engine_1.isNull)(data)) {
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
27
|
if (data.color !== undefined) {
|
|
@@ -4,19 +4,20 @@
|
|
|
4
4
|
if (v !== undefined) module.exports = v;
|
|
5
5
|
}
|
|
6
6
|
else if (typeof define === "function" && define.amd) {
|
|
7
|
-
define(["require", "exports"], factory);
|
|
7
|
+
define(["require", "exports", "@tsparticles/engine"], factory);
|
|
8
8
|
}
|
|
9
9
|
})(function (require, exports) {
|
|
10
10
|
"use strict";
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TextMaskLine = void 0;
|
|
13
|
+
const engine_1 = require("@tsparticles/engine");
|
|
13
14
|
class TextMaskLine {
|
|
14
15
|
constructor() {
|
|
15
16
|
this.separator = "\n";
|
|
16
17
|
this.spacing = 10;
|
|
17
18
|
}
|
|
18
19
|
load(data) {
|
|
19
|
-
if (
|
|
20
|
+
if ((0, engine_1.isNull)(data)) {
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
23
|
if (data.separator !== undefined) {
|