@tsparticles/plugin-canvas-mask 4.0.0-alpha.8 → 4.0.0-beta.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/565.min.js +1 -0
- package/597.min.js +2 -0
- package/browser/CanvasMaskPlugin.js +1 -3
- package/browser/CanvasMaskPluginInstance.js +6 -5
- package/browser/Options/Classes/CanvasMask.js +9 -0
- package/browser/Options/Classes/CanvasMaskOverride.js +2 -0
- package/browser/Options/Classes/CanvasMaskPixels.js +3 -1
- package/browser/Options/Classes/FontTextMask.js +8 -0
- package/browser/Options/Classes/ImageMask.js +1 -0
- package/browser/Options/Classes/TextMask.js +9 -0
- package/browser/Options/Classes/TextMaskLine.js +2 -0
- package/browser/index.js +1 -1
- package/browser/utils.js +6 -89
- package/cjs/CanvasMaskPlugin.js +1 -3
- package/cjs/CanvasMaskPluginInstance.js +6 -5
- package/cjs/Options/Classes/CanvasMask.js +9 -0
- package/cjs/Options/Classes/CanvasMaskOverride.js +2 -0
- package/cjs/Options/Classes/CanvasMaskPixels.js +3 -1
- package/cjs/Options/Classes/FontTextMask.js +8 -0
- package/cjs/Options/Classes/ImageMask.js +1 -0
- package/cjs/Options/Classes/TextMask.js +9 -0
- package/cjs/Options/Classes/TextMaskLine.js +2 -0
- package/cjs/index.js +1 -1
- package/cjs/utils.js +6 -89
- package/dist_browser_CanvasMaskPluginInstance_js.js +3 -3
- package/dist_browser_CanvasMaskPlugin_js.js +9 -9
- package/esm/CanvasMaskPlugin.js +1 -3
- package/esm/CanvasMaskPluginInstance.js +6 -5
- package/esm/Options/Classes/CanvasMask.js +9 -0
- package/esm/Options/Classes/CanvasMaskOverride.js +2 -0
- package/esm/Options/Classes/CanvasMaskPixels.js +3 -1
- package/esm/Options/Classes/FontTextMask.js +8 -0
- package/esm/Options/Classes/ImageMask.js +1 -0
- package/esm/Options/Classes/TextMask.js +9 -0
- package/esm/Options/Classes/TextMaskLine.js +2 -0
- package/esm/index.js +1 -1
- package/esm/utils.js +6 -89
- package/package.json +3 -2
- package/report.html +1 -1
- package/tsparticles.plugin.canvas-mask.js +41 -19
- package/tsparticles.plugin.canvas-mask.min.js +2 -2
- package/types/CanvasMaskPlugin.d.ts +1 -2
- package/types/Options/Classes/FontTextMask.d.ts +3 -3
- package/types/Options/Classes/TextMask.d.ts +1 -0
- package/types/Options/Interfaces/IFontTextMask.d.ts +2 -7
- package/types/Options/Interfaces/ITextMask.d.ts +3 -3
- package/types/Options/Interfaces/ITextMaskLine.d.ts +2 -4
- package/types/utils.d.ts +2 -10
- package/umd/CanvasMaskPlugin.js +1 -3
- package/umd/CanvasMaskPluginInstance.js +8 -7
- package/umd/Options/Classes/CanvasMask.js +9 -0
- package/umd/Options/Classes/CanvasMaskOverride.js +2 -0
- package/umd/Options/Classes/CanvasMaskPixels.js +3 -1
- package/umd/Options/Classes/FontTextMask.js +8 -0
- package/umd/Options/Classes/ImageMask.js +1 -0
- package/umd/Options/Classes/TextMask.js +9 -0
- package/umd/Options/Classes/TextMaskLine.js +2 -0
- package/umd/index.js +1 -1
- package/umd/utils.js +5 -91
- package/722.min.js +0 -2
- package/722.min.js.LICENSE.txt +0 -1
- package/775.min.js +0 -2
- package/775.min.js.LICENSE.txt +0 -1
- package/tsparticles.plugin.canvas-mask.min.js.LICENSE.txt +0 -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
|
-
* v4.0.0-
|
|
7
|
+
* v4.0.0-beta.0
|
|
8
8
|
*/
|
|
9
9
|
"use strict";
|
|
10
10
|
/*
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
\******************************************/
|
|
24
24
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
25
25
|
|
|
26
|
-
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskPlugin: () => (/* binding */ CanvasMaskPlugin)\n/* harmony export */ });\n/* harmony import */ var _Options_Classes_CanvasMask_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Options/Classes/CanvasMask.js */ \"./dist/browser/Options/Classes/CanvasMask.js\");\n\nclass CanvasMaskPlugin {\n
|
|
26
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CanvasMaskPlugin: () => (/* binding */ CanvasMaskPlugin)\n/* harmony export */ });\n/* harmony import */ var _Options_Classes_CanvasMask_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Options/Classes/CanvasMask.js */ \"./dist/browser/Options/Classes/CanvasMask.js\");\n\nclass CanvasMaskPlugin {\n id = \"canvas-mask\";\n async getPlugin(container) {\n const { CanvasMaskPluginInstance } = await __webpack_require__.e(/*! import() */ \"dist_browser_CanvasMaskPluginInstance_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./CanvasMaskPluginInstance.js */ \"./dist/browser/CanvasMaskPluginInstance.js\"));\n return new CanvasMaskPluginInstance(container);\n }\n loadOptions(_container, options, source) {\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n let canvasMaskOptions = options.canvasMask;\n if (canvasMaskOptions?.load === undefined) {\n options.canvasMask = canvasMaskOptions = new _Options_Classes_CanvasMask_js__WEBPACK_IMPORTED_MODULE_0__.CanvasMask();\n }\n canvasMaskOptions.load(source?.canvasMask);\n }\n needsPlugin(options) {\n return options?.canvasMask?.enable ?? false;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/CanvasMaskPlugin.js?\n}");
|
|
27
27
|
|
|
28
28
|
/***/ },
|
|
29
29
|
|
|
@@ -33,7 +33,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
33
33
|
\****************************************************/
|
|
34
34
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
35
35
|
|
|
36
|
-
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 _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
|
|
36
|
+
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 _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 element;\n enable;\n image;\n override;\n pixels;\n position;\n scale;\n selector;\n text;\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 this.image ??= new _ImageMask_js__WEBPACK_IMPORTED_MODULE_3__.ImageMask();\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 this.text ??= new _TextMask_js__WEBPACK_IMPORTED_MODULE_4__.TextMask();\n this.text.load(data.text);\n }\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/CanvasMask.js?\n}");
|
|
37
37
|
|
|
38
38
|
/***/ },
|
|
39
39
|
|
|
@@ -43,7 +43,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
43
43
|
\************************************************************/
|
|
44
44
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
45
45
|
|
|
46
|
-
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\nclass CanvasMaskOverride {\n
|
|
46
|
+
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\nclass CanvasMaskOverride {\n color;\n opacity;\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\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/CanvasMaskOverride.js?\n}");
|
|
47
47
|
|
|
48
48
|
/***/ },
|
|
49
49
|
|
|
@@ -53,7 +53,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
53
53
|
\**********************************************************/
|
|
54
54
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
55
55
|
|
|
56
|
-
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\nconst minAlpha = 0;\nclass CanvasMaskPixels {\n
|
|
56
|
+
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\nconst minAlpha = 0;\nclass CanvasMaskPixels {\n filter;\n offset;\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 (data.filter in globalThis) {\n const filter = globalThis[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\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/CanvasMaskPixels.js?\n}");
|
|
57
57
|
|
|
58
58
|
/***/ },
|
|
59
59
|
|
|
@@ -63,7 +63,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
63
63
|
\******************************************************/
|
|
64
64
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
65
65
|
|
|
66
|
-
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\nclass FontTextMask {\n
|
|
66
|
+
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\nclass FontTextMask {\n family;\n size;\n style;\n variant;\n weight;\n constructor(){\n this.family = \"sans-serif\";\n this.size = 100;\n this.style = \"\";\n this.variant = \"\";\n this.weight = \"\";\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\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/FontTextMask.js?\n}");
|
|
67
67
|
|
|
68
68
|
/***/ },
|
|
69
69
|
|
|
@@ -73,7 +73,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
73
73
|
\***************************************************/
|
|
74
74
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
75
75
|
|
|
76
|
-
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\nclass ImageMask {\n
|
|
76
|
+
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\nclass ImageMask {\n src;\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\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/ImageMask.js?\n}");
|
|
77
77
|
|
|
78
78
|
/***/ },
|
|
79
79
|
|
|
@@ -83,7 +83,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
83
83
|
\**************************************************/
|
|
84
84
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
85
85
|
|
|
86
|
-
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 _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
|
|
86
|
+
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 _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 color;\n fill;\n font;\n lines;\n text;\n constructor(){\n this.color = \"#000000\";\n this.fill = true;\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 if (data.fill !== undefined) {\n this.fill = data.fill;\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\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/TextMask.js?\n}");
|
|
87
87
|
|
|
88
88
|
/***/ },
|
|
89
89
|
|
|
@@ -93,7 +93,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
93
93
|
\******************************************************/
|
|
94
94
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
95
95
|
|
|
96
|
-
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\nclass TextMaskLine {\n
|
|
96
|
+
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\nclass TextMaskLine {\n separator;\n spacing;\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\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/Options/Classes/TextMaskLine.js?\n}");
|
|
97
97
|
|
|
98
98
|
/***/ }
|
|
99
99
|
|
package/esm/CanvasMaskPlugin.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { CanvasMask } from "./Options/Classes/CanvasMask.js";
|
|
2
2
|
export class CanvasMaskPlugin {
|
|
3
|
-
|
|
4
|
-
this.id = "canvasMask";
|
|
5
|
-
}
|
|
3
|
+
id = "canvas-mask";
|
|
6
4
|
async getPlugin(container) {
|
|
7
5
|
const { CanvasMaskPluginInstance } = await import("./CanvasMaskPluginInstance.js");
|
|
8
6
|
return new CanvasMaskPluginInstance(container);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getCanvasImageData, getImageData, getTextData } from "@tsparticles/canvas-utils";
|
|
2
2
|
import { isNull, safeDocument } from "@tsparticles/engine";
|
|
3
|
+
import { addParticlesFromCanvasPixels } from "./utils.js";
|
|
3
4
|
export class CanvasMaskPluginInstance {
|
|
5
|
+
_container;
|
|
4
6
|
constructor(container) {
|
|
5
7
|
this._container = container;
|
|
6
8
|
}
|
|
@@ -20,11 +22,10 @@ export class CanvasMaskPluginInstance {
|
|
|
20
22
|
if (!url) {
|
|
21
23
|
return;
|
|
22
24
|
}
|
|
23
|
-
pixelData = await getImageData(url, offset);
|
|
25
|
+
pixelData = await getImageData(url, offset, container.canvas.settings);
|
|
24
26
|
}
|
|
25
27
|
else if (options.text) {
|
|
26
|
-
const textOptions = options.text;
|
|
27
|
-
const data = getTextData(textOptions, offset);
|
|
28
|
+
const textOptions = options.text, data = getTextData(textOptions, offset, textOptions.fill, container.canvas.settings);
|
|
28
29
|
if (isNull(data)) {
|
|
29
30
|
return;
|
|
30
31
|
}
|
|
@@ -35,7 +36,7 @@ export class CanvasMaskPluginInstance {
|
|
|
35
36
|
if (!canvas) {
|
|
36
37
|
return;
|
|
37
38
|
}
|
|
38
|
-
const context = canvas.getContext("2d");
|
|
39
|
+
const context = canvas.getContext("2d", container.canvas.settings);
|
|
39
40
|
if (!context) {
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
@@ -4,6 +4,15 @@ import { CanvasMaskPixels } from "./CanvasMaskPixels.js";
|
|
|
4
4
|
import { ImageMask } from "./ImageMask.js";
|
|
5
5
|
import { TextMask } from "./TextMask.js";
|
|
6
6
|
export class CanvasMask {
|
|
7
|
+
element;
|
|
8
|
+
enable;
|
|
9
|
+
image;
|
|
10
|
+
override;
|
|
11
|
+
pixels;
|
|
12
|
+
position;
|
|
13
|
+
scale;
|
|
14
|
+
selector;
|
|
15
|
+
text;
|
|
7
16
|
constructor() {
|
|
8
17
|
this.enable = false;
|
|
9
18
|
this.override = new CanvasMaskOverride();
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { isFunction, isNull, isString, } from "@tsparticles/engine";
|
|
2
2
|
const minAlpha = 0;
|
|
3
3
|
export class CanvasMaskPixels {
|
|
4
|
+
filter;
|
|
5
|
+
offset;
|
|
4
6
|
constructor() {
|
|
5
7
|
this.filter = (pixel) => pixel.a > minAlpha;
|
|
6
8
|
this.offset = 4;
|
|
@@ -11,7 +13,7 @@ export class CanvasMaskPixels {
|
|
|
11
13
|
}
|
|
12
14
|
if (data.filter !== undefined) {
|
|
13
15
|
if (isString(data.filter)) {
|
|
14
|
-
if (
|
|
16
|
+
if (data.filter in globalThis) {
|
|
15
17
|
const filter = globalThis[data.filter];
|
|
16
18
|
if (isFunction(filter)) {
|
|
17
19
|
this.filter = filter;
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { isNull } from "@tsparticles/engine";
|
|
2
2
|
export class FontTextMask {
|
|
3
|
+
family;
|
|
4
|
+
size;
|
|
5
|
+
style;
|
|
6
|
+
variant;
|
|
7
|
+
weight;
|
|
3
8
|
constructor() {
|
|
4
9
|
this.family = "sans-serif";
|
|
5
10
|
this.size = 100;
|
|
11
|
+
this.style = "";
|
|
12
|
+
this.variant = "";
|
|
13
|
+
this.weight = "";
|
|
6
14
|
}
|
|
7
15
|
load(data) {
|
|
8
16
|
if (isNull(data)) {
|
|
@@ -2,8 +2,14 @@ import { isNull } from "@tsparticles/engine";
|
|
|
2
2
|
import { FontTextMask } from "./FontTextMask.js";
|
|
3
3
|
import { TextMaskLine } from "./TextMaskLine.js";
|
|
4
4
|
export class TextMask {
|
|
5
|
+
color;
|
|
6
|
+
fill;
|
|
7
|
+
font;
|
|
8
|
+
lines;
|
|
9
|
+
text;
|
|
5
10
|
constructor() {
|
|
6
11
|
this.color = "#000000";
|
|
12
|
+
this.fill = true;
|
|
7
13
|
this.font = new FontTextMask();
|
|
8
14
|
this.lines = new TextMaskLine();
|
|
9
15
|
this.text = "";
|
|
@@ -15,6 +21,9 @@ export class TextMask {
|
|
|
15
21
|
if (data.color !== undefined) {
|
|
16
22
|
this.color = data.color;
|
|
17
23
|
}
|
|
24
|
+
if (data.fill !== undefined) {
|
|
25
|
+
this.fill = data.fill;
|
|
26
|
+
}
|
|
18
27
|
this.font.load(data.font);
|
|
19
28
|
this.lines.load(data.lines);
|
|
20
29
|
if (data.text !== undefined) {
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export async function loadCanvasMaskPlugin(engine) {
|
|
2
|
-
engine.checkVersion("4.0.0-
|
|
2
|
+
engine.checkVersion("4.0.0-beta.0");
|
|
3
3
|
await engine.register(async (e) => {
|
|
4
4
|
const { CanvasMaskPlugin } = await import("./CanvasMaskPlugin.js");
|
|
5
5
|
e.addPlugin(new CanvasMaskPlugin());
|
package/esm/utils.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const defaultWidth = 0, defaultRgb = 0;
|
|
1
|
+
import { getRandom, half, percentDenominator, } from "@tsparticles/engine";
|
|
3
2
|
export function addParticlesFromCanvasPixels(container, data, position, scale, override, filter) {
|
|
4
3
|
const { height, width } = data, numPixels = height * width, indexArray = shuffle(range(numPixels)), maxParticles = Math.min(numPixels, container.actualOptions.particles.number.value), canvasSize = container.canvas.size;
|
|
5
4
|
let selectedPixels = 0;
|
|
@@ -28,8 +27,11 @@ export function addParticlesFromCanvasPixels(container, data, position, scale, o
|
|
|
28
27
|
y: pixelPos.y * scale + positionOffset.y,
|
|
29
28
|
}, pOptions = {};
|
|
30
29
|
if (override.color) {
|
|
31
|
-
pOptions.
|
|
32
|
-
|
|
30
|
+
pOptions.fill = {
|
|
31
|
+
color: {
|
|
32
|
+
value: pixel,
|
|
33
|
+
},
|
|
34
|
+
enable: true,
|
|
33
35
|
};
|
|
34
36
|
}
|
|
35
37
|
if (override.opacity) {
|
|
@@ -41,91 +43,6 @@ export function addParticlesFromCanvasPixels(container, data, position, scale, o
|
|
|
41
43
|
selectedPixels++;
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
|
-
export function getCanvasImageData(ctx, size, offset, clear = true) {
|
|
45
|
-
const imageData = ctx.getImageData(originPoint.x, originPoint.y, size.width, size.height).data;
|
|
46
|
-
if (clear) {
|
|
47
|
-
ctx.clearRect(originPoint.x, originPoint.y, size.width, size.height);
|
|
48
|
-
}
|
|
49
|
-
const pixels = [];
|
|
50
|
-
for (let i = 0; i < imageData.length; i += offset) {
|
|
51
|
-
const idx = i / offset, pos = {
|
|
52
|
-
x: idx % size.width,
|
|
53
|
-
y: Math.floor(idx / size.width),
|
|
54
|
-
};
|
|
55
|
-
pixels[pos.y] ??= [];
|
|
56
|
-
const indexesOffset = {
|
|
57
|
-
r: 0,
|
|
58
|
-
g: 1,
|
|
59
|
-
b: 2,
|
|
60
|
-
a: 3,
|
|
61
|
-
}, alphaFactor = 255, row = pixels[pos.y];
|
|
62
|
-
if (!row) {
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
|
-
row[pos.x] = {
|
|
66
|
-
r: imageData[i + indexesOffset.r] ?? defaultRgb,
|
|
67
|
-
g: imageData[i + indexesOffset.g] ?? defaultRgb,
|
|
68
|
-
b: imageData[i + indexesOffset.b] ?? defaultRgb,
|
|
69
|
-
a: (imageData[i + indexesOffset.a] ?? defaultAlpha) / alphaFactor,
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
return {
|
|
73
|
-
pixels,
|
|
74
|
-
width: Math.min(...pixels.map(row => row.length)),
|
|
75
|
-
height: pixels.length,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
export function getImageData(src, offset) {
|
|
79
|
-
const image = new Image();
|
|
80
|
-
image.crossOrigin = "Anonymous";
|
|
81
|
-
const p = new Promise((resolve, reject) => {
|
|
82
|
-
image.onerror = reject;
|
|
83
|
-
image.onload = () => {
|
|
84
|
-
const canvas = safeDocument().createElement("canvas");
|
|
85
|
-
canvas.width = image.width;
|
|
86
|
-
canvas.height = image.height;
|
|
87
|
-
const context = canvas.getContext("2d");
|
|
88
|
-
if (!context) {
|
|
89
|
-
reject(new Error("Could not get canvas context"));
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
context.drawImage(image, originPoint.x, originPoint.y, image.width, image.height, originPoint.x, originPoint.y, canvas.width, canvas.height);
|
|
93
|
-
resolve(getCanvasImageData(context, canvas, offset));
|
|
94
|
-
};
|
|
95
|
-
});
|
|
96
|
-
image.src = src;
|
|
97
|
-
return p;
|
|
98
|
-
}
|
|
99
|
-
export function getTextData(textOptions, offset) {
|
|
100
|
-
const canvas = safeDocument().createElement("canvas"), context = canvas.getContext("2d"), { font, text, lines: linesOptions, color } = textOptions;
|
|
101
|
-
if (!text || !context) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
const lines = text.split(linesOptions.separator), fontSize = isNumber(font.size) ? `${font.size.toString()}px` : font.size, linesData = [];
|
|
105
|
-
let maxWidth = 0, totalHeight = 0;
|
|
106
|
-
for (const line of lines) {
|
|
107
|
-
context.font = `${font.style ?? ""} ${font.variant ?? ""} ${font.weight?.toString() ?? ""} ${fontSize} ${font.family}`;
|
|
108
|
-
const measure = context.measureText(line), lineData = {
|
|
109
|
-
measure,
|
|
110
|
-
text: line,
|
|
111
|
-
height: measure.actualBoundingBoxAscent + measure.actualBoundingBoxDescent,
|
|
112
|
-
width: measure.width,
|
|
113
|
-
};
|
|
114
|
-
maxWidth = Math.max(maxWidth || defaultWidth, lineData.width);
|
|
115
|
-
totalHeight += lineData.height + linesOptions.spacing;
|
|
116
|
-
linesData.push(lineData);
|
|
117
|
-
}
|
|
118
|
-
canvas.width = maxWidth;
|
|
119
|
-
canvas.height = totalHeight;
|
|
120
|
-
let currentHeight = 0;
|
|
121
|
-
for (const line of linesData) {
|
|
122
|
-
context.font = `${font.style ?? ""} ${font.variant ?? ""} ${font.weight?.toString() ?? ""} ${fontSize} ${font.family}`;
|
|
123
|
-
context.fillStyle = color;
|
|
124
|
-
context.fillText(line.text, originPoint.x, currentHeight + line.measure.actualBoundingBoxAscent);
|
|
125
|
-
currentHeight += line.height + linesOptions.spacing;
|
|
126
|
-
}
|
|
127
|
-
return getCanvasImageData(context, canvas, offset);
|
|
128
|
-
}
|
|
129
46
|
function shuffle(array) {
|
|
130
47
|
const lengthOffset = 1, minIndex = 0;
|
|
131
48
|
for (let currentIndex = array.length - lengthOffset; currentIndex >= minIndex; currentIndex--) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsparticles/plugin-canvas-mask",
|
|
3
|
-
"version": "4.0.0-
|
|
3
|
+
"version": "4.0.0-beta.0",
|
|
4
4
|
"description": "tsParticles canvas mask plugin",
|
|
5
5
|
"homepage": "https://particles.js.org",
|
|
6
6
|
"repository": {
|
|
@@ -86,7 +86,8 @@
|
|
|
86
86
|
"./package.json": "./package.json"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@tsparticles/
|
|
89
|
+
"@tsparticles/canvas-utils": "4.0.0-beta.0",
|
|
90
|
+
"@tsparticles/engine": "4.0.0-beta.0"
|
|
90
91
|
},
|
|
91
92
|
"publishConfig": {
|
|
92
93
|
"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 [19 Mar 2026 at 14:01]</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
|
-
* v4.0.0-
|
|
7
|
+
* v4.0.0-beta.0
|
|
8
8
|
*/
|
|
9
9
|
/*
|
|
10
10
|
* ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
|
|
@@ -16,25 +16,25 @@
|
|
|
16
16
|
*/
|
|
17
17
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
18
18
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
19
|
-
module.exports = factory(require("@tsparticles/engine"));
|
|
19
|
+
module.exports = factory(require("@tsparticles/canvas-utils"), require("@tsparticles/engine"));
|
|
20
20
|
else if(typeof define === 'function' && define.amd)
|
|
21
|
-
define(["@tsparticles/engine"], factory);
|
|
21
|
+
define(["@tsparticles/canvas-utils", "@tsparticles/engine"], factory);
|
|
22
22
|
else {
|
|
23
|
-
var a = typeof exports === 'object' ? factory(require("@tsparticles/engine")) : factory(root["window"]);
|
|
23
|
+
var a = typeof exports === 'object' ? factory(require("@tsparticles/canvas-utils"), require("@tsparticles/engine")) : factory(root["window"], root["window"]);
|
|
24
24
|
for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
|
|
25
25
|
}
|
|
26
|
-
})(this, (__WEBPACK_EXTERNAL_MODULE__tsparticles_engine__) => {
|
|
26
|
+
})(this, (__WEBPACK_EXTERNAL_MODULE__tsparticles_canvas_utils__, __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__) => {
|
|
27
27
|
return /******/ (() => { // webpackBootstrap
|
|
28
28
|
/******/ "use strict";
|
|
29
29
|
/******/ var __webpack_modules__ = ({
|
|
30
30
|
|
|
31
|
-
/***/ "
|
|
32
|
-
|
|
33
|
-
!***
|
|
34
|
-
|
|
35
|
-
(
|
|
31
|
+
/***/ "@tsparticles/canvas-utils"
|
|
32
|
+
/*!***************************************************************************************************************************************************!*\
|
|
33
|
+
!*** external {"commonjs":"@tsparticles/canvas-utils","commonjs2":"@tsparticles/canvas-utils","amd":"@tsparticles/canvas-utils","root":"window"} ***!
|
|
34
|
+
\***************************************************************************************************************************************************/
|
|
35
|
+
(module) {
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_canvas_utils__;
|
|
38
38
|
|
|
39
39
|
/***/ },
|
|
40
40
|
|
|
@@ -46,6 +46,16 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
|
|
|
46
46
|
|
|
47
47
|
module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
48
48
|
|
|
49
|
+
/***/ },
|
|
50
|
+
|
|
51
|
+
/***/ "./dist/browser/index.js"
|
|
52
|
+
/*!*******************************!*\
|
|
53
|
+
!*** ./dist/browser/index.js ***!
|
|
54
|
+
\*******************************/
|
|
55
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
56
|
+
|
|
57
|
+
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadCanvasMaskPlugin: () => (/* binding */ loadCanvasMaskPlugin)\n/* harmony export */ });\nasync function loadCanvasMaskPlugin(engine) {\n engine.checkVersion(\"4.0.0-beta.0\");\n await engine.register(async (e)=>{\n const { CanvasMaskPlugin } = await __webpack_require__.e(/*! import() */ \"dist_browser_CanvasMaskPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./CanvasMaskPlugin.js */ \"./dist/browser/CanvasMaskPlugin.js\"));\n e.addPlugin(new CanvasMaskPlugin());\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-canvas-mask/./dist/browser/index.js?\n}");
|
|
58
|
+
|
|
49
59
|
/***/ }
|
|
50
60
|
|
|
51
61
|
/******/ });
|
|
@@ -60,12 +70,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
|
60
70
|
/******/ if (cachedModule !== undefined) {
|
|
61
71
|
/******/ return cachedModule.exports;
|
|
62
72
|
/******/ }
|
|
63
|
-
/******/ // Check if module exists (development only)
|
|
64
|
-
/******/ if (__webpack_modules__[moduleId] === undefined) {
|
|
65
|
-
/******/ var e = new Error("Cannot find module '" + moduleId + "'");
|
|
66
|
-
/******/ e.code = 'MODULE_NOT_FOUND';
|
|
67
|
-
/******/ throw e;
|
|
68
|
-
/******/ }
|
|
69
73
|
/******/ // Create a new module (and put it into the cache)
|
|
70
74
|
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
71
75
|
/******/ // no module.id needed
|
|
@@ -74,6 +78,12 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
|
74
78
|
/******/ };
|
|
75
79
|
/******/
|
|
76
80
|
/******/ // Execute the module function
|
|
81
|
+
/******/ if (!(moduleId in __webpack_modules__)) {
|
|
82
|
+
/******/ delete __webpack_module_cache__[moduleId];
|
|
83
|
+
/******/ var e = new Error("Cannot find module '" + moduleId + "'");
|
|
84
|
+
/******/ e.code = 'MODULE_NOT_FOUND';
|
|
85
|
+
/******/ throw e;
|
|
86
|
+
/******/ }
|
|
77
87
|
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
78
88
|
/******/
|
|
79
89
|
/******/ // Return the exports of the module
|
|
@@ -118,6 +128,18 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
|
118
128
|
/******/ };
|
|
119
129
|
/******/ })();
|
|
120
130
|
/******/
|
|
131
|
+
/******/ /* webpack/runtime/global */
|
|
132
|
+
/******/ (() => {
|
|
133
|
+
/******/ __webpack_require__.g = (function() {
|
|
134
|
+
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
135
|
+
/******/ try {
|
|
136
|
+
/******/ return this || new Function('return this')();
|
|
137
|
+
/******/ } catch (e) {
|
|
138
|
+
/******/ if (typeof window === 'object') return window;
|
|
139
|
+
/******/ }
|
|
140
|
+
/******/ })();
|
|
141
|
+
/******/ })();
|
|
142
|
+
/******/
|
|
121
143
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
122
144
|
/******/ (() => {
|
|
123
145
|
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
@@ -182,8 +204,8 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_engine__;
|
|
|
182
204
|
/******/ /* webpack/runtime/publicPath */
|
|
183
205
|
/******/ (() => {
|
|
184
206
|
/******/ var scriptUrl;
|
|
185
|
-
/******/ if (
|
|
186
|
-
/******/ var document =
|
|
207
|
+
/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
|
|
208
|
+
/******/ var document = __webpack_require__.g.document;
|
|
187
209
|
/******/ if (!scriptUrl && document) {
|
|
188
210
|
/******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')
|
|
189
211
|
/******/ scriptUrl = document.currentScript.src;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/canvas-utils"),require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/canvas-utils","@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/canvas-utils"),require("@tsparticles/engine")):t(e.window,e.window);for(var i in r)("object"==typeof exports?exports:e)[i]=r[i]}}(this,(e,t)=>(()=>{"use strict";var r,i,o,n={425(t){t.exports=e},303(e){e.exports=t}},a={};function s(e){var t=a[e];if(void 0!==t)return t.exports;var r=a[e]={exports:{}};return n[e](r,r.exports,s),r.exports}s.m=n,s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.u=e=>""+e+".min.js",s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),c={},s.l=(e,t,r,i)=>{if(c[e])return void c[e].push(t);if(void 0!==r)for(var o,n,a=document.getElementsByTagName("script"),l=0;l<a.length;l++){var p=a[l];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")=="@tsparticles/plugin-canvas-mask:"+r){o=p;break}}o||(n=!0,(o=document.createElement("script")).charset="utf-8",s.nc&&o.setAttribute("nonce",s.nc),o.setAttribute("data-webpack","@tsparticles/plugin-canvas-mask:"+r),o.src=e),c[e]=[t];var u=(t,r)=>{o.onerror=o.onload=null,clearTimeout(d);var i=c[e];if(delete c[e],o.parentNode&&o.parentNode.removeChild(o),i&&i.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=u.bind(null,o.onerror),o.onload=u.bind(null,o.onload),n&&document.head.appendChild(o)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.g.importScripts&&(l=s.g.location+"");var c,l,p=s.g.document;if(!l&&p&&(p.currentScript&&"SCRIPT"===p.currentScript.tagName.toUpperCase()&&(l=p.currentScript.src),!l)){var u=p.getElementsByTagName("script");if(u.length)for(var d=u.length-1;d>-1&&(!l||!/^http(s?):/.test(l));)l=u[d--].src}if(!l)throw Error("Automatic publicPath is not supported in this browser");s.p=l=l.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={837:0},s.f.j=(e,t)=>{var i=s.o(r,e)?r[e]:void 0;if(0!==i)if(i)t.push(i[2]);else{var o=new Promise((t,o)=>i=r[e]=[t,o]);t.push(i[2]=o);var n=s.p+s.u(e),a=Error();s.l(n,t=>{if(s.o(r,e)&&(0!==(i=r[e])&&(r[e]=void 0),i)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;a.message="Loading chunk "+e+` failed.
|
|
2
|
+
(`+o+": "+n+")",a.name="ChunkLoadError",a.type=o,a.request=n,i[1](a)}},"chunk-"+e,e)}},i=(e,t)=>{var i,o,[n,a,c]=t,l=0;if(n.some(e=>0!==r[e])){for(i in a)s.o(a,i)&&(s.m[i]=a[i]);c&&c(s)}for(e&&e(t);l<n.length;l++)o=n[l],s.o(r,o)&&r[o]&&r[o][0](),r[o]=0},(o=this.webpackChunk_tsparticles_plugin_canvas_mask=this.webpackChunk_tsparticles_plugin_canvas_mask||[]).forEach(i.bind(null,0)),o.push=i.bind(null,o.push.bind(o));var f={};async function b(e){e.checkVersion("4.0.0-beta.0"),await e.register(async e=>{let{CanvasMaskPlugin:t}=await s.e(597).then(s.bind(s,597));e.addPlugin(new t)})}return s.r(f),s.d(f,{loadCanvasMaskPlugin:()=>b}),f})());
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { CanvasMaskOptions, ICanvasMaskOptions } from "./types.js";
|
|
2
2
|
import { type Container, type IContainerPlugin, type IPlugin, type RecursivePartial } from "@tsparticles/engine";
|
|
3
3
|
export declare class CanvasMaskPlugin implements IPlugin {
|
|
4
|
-
readonly id
|
|
5
|
-
constructor();
|
|
4
|
+
readonly id = "canvas-mask";
|
|
6
5
|
getPlugin(container: Container): Promise<IContainerPlugin>;
|
|
7
6
|
loadOptions(_container: Container, options: CanvasMaskOptions, source?: RecursivePartial<ICanvasMaskOptions>): void;
|
|
8
7
|
needsPlugin(options?: RecursivePartial<ICanvasMaskOptions>): boolean;
|
|
@@ -3,9 +3,9 @@ import type { IFontTextMask } from "../Interfaces/IFontTextMask.js";
|
|
|
3
3
|
export declare class FontTextMask implements IFontTextMask, IOptionLoader<IFontTextMask> {
|
|
4
4
|
family: string;
|
|
5
5
|
size: string | number;
|
|
6
|
-
style
|
|
7
|
-
variant
|
|
8
|
-
weight
|
|
6
|
+
style: string;
|
|
7
|
+
variant: string;
|
|
8
|
+
weight: string;
|
|
9
9
|
constructor();
|
|
10
10
|
load(data?: RecursivePartial<IFontTextMask>): void;
|
|
11
11
|
}
|
|
@@ -4,6 +4,7 @@ import type { ITextMask } from "../Interfaces/ITextMask.js";
|
|
|
4
4
|
import { TextMaskLine } from "./TextMaskLine.js";
|
|
5
5
|
export declare class TextMask implements ITextMask, IOptionLoader<ITextMask> {
|
|
6
6
|
color: string;
|
|
7
|
+
fill: boolean;
|
|
7
8
|
font: FontTextMask;
|
|
8
9
|
lines: TextMaskLine;
|
|
9
10
|
text: string;
|
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
size: number | string;
|
|
4
|
-
style?: string;
|
|
5
|
-
variant?: string;
|
|
6
|
-
weight?: number | string;
|
|
7
|
-
}
|
|
1
|
+
import type { ITextDataFontOptions } from "@tsparticles/canvas-utils";
|
|
2
|
+
export type IFontTextMask = ITextDataFontOptions;
|