@tsparticles/plugin-polygon-mask 3.2.2 → 3.4.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/Enums/PolygonMaskInlineArrangement.js +8 -1
- package/browser/Enums/PolygonMaskMoveType.js +5 -1
- package/browser/Enums/PolygonMaskType.js +7 -1
- package/browser/Options/Classes/PolygonMask.js +3 -2
- package/browser/Options/Classes/PolygonMaskInline.js +2 -1
- package/browser/Options/Classes/PolygonMaskMove.js +2 -1
- package/browser/PolygonMaskInstance.js +33 -34
- package/browser/PolygonMaskPlugin.js +5 -4
- package/browser/index.js +1 -1
- package/cjs/Enums/PolygonMaskInlineArrangement.js +9 -0
- package/cjs/Enums/PolygonMaskMoveType.js +6 -0
- package/cjs/Enums/PolygonMaskType.js +8 -0
- package/cjs/Options/Classes/PolygonMask.js +3 -2
- package/cjs/Options/Classes/PolygonMaskInline.js +2 -1
- package/cjs/Options/Classes/PolygonMaskMove.js +2 -1
- package/cjs/PolygonMaskInstance.js +37 -61
- package/cjs/PolygonMaskPlugin.js +5 -27
- package/cjs/index.js +2 -14
- package/cjs/pathseg.js +1 -0
- package/esm/Enums/PolygonMaskInlineArrangement.js +8 -1
- package/esm/Enums/PolygonMaskMoveType.js +5 -1
- package/esm/Enums/PolygonMaskType.js +7 -1
- package/esm/Options/Classes/PolygonMask.js +3 -2
- package/esm/Options/Classes/PolygonMaskInline.js +2 -1
- package/esm/Options/Classes/PolygonMaskMove.js +2 -1
- package/esm/PolygonMaskInstance.js +33 -34
- package/esm/PolygonMaskPlugin.js +5 -4
- package/esm/index.js +1 -1
- package/package.json +2 -2
- package/report.html +1 -1
- package/tsparticles.plugin.polygon-mask.js +122 -200
- package/tsparticles.plugin.polygon-mask.min.js +1 -1
- package/tsparticles.plugin.polygon-mask.min.js.LICENSE.txt +1 -1
- package/types/Enums/PolygonMaskInlineArrangement.d.ts +1 -1
- package/types/Enums/PolygonMaskMoveType.d.ts +1 -1
- package/types/Enums/PolygonMaskType.d.ts +1 -1
- package/types/PolygonMaskInstance.d.ts +2 -2
- package/types/PolygonMaskPlugin.d.ts +1 -1
- package/umd/Enums/PolygonMaskInlineArrangement.js +9 -0
- package/umd/Enums/PolygonMaskMoveType.js +6 -0
- package/umd/Enums/PolygonMaskType.js +8 -0
- package/umd/Options/Classes/PolygonMask.js +4 -3
- package/umd/Options/Classes/PolygonMaskInline.js +3 -2
- package/umd/Options/Classes/PolygonMaskMove.js +3 -2
- package/umd/PolygonMaskInstance.js +38 -63
- package/umd/PolygonMaskPlugin.js +6 -29
- package/umd/index.js +3 -16
- package/719.min.js +0 -2
- package/719.min.js.LICENSE.txt +0 -1
- package/787.min.js +0 -2
- package/787.min.js.LICENSE.txt +0 -1
- package/856.min.js +0 -2
- package/856.min.js.LICENSE.txt +0 -1
- package/dist_browser_PolygonMaskInstance_js.js +0 -30
- package/dist_browser_PolygonMaskPlugin_js.js +0 -90
- package/dist_browser_utils_js.js +0 -30
package/cjs/PolygonMaskPlugin.js
CHANGED
|
@@ -1,38 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.PolygonMaskPlugin = void 0;
|
|
27
4
|
const PolygonMask_js_1 = require("./Options/Classes/PolygonMask.js");
|
|
5
|
+
const PolygonMaskInstance_js_1 = require("./PolygonMaskInstance.js");
|
|
6
|
+
const PolygonMaskType_js_1 = require("./Enums/PolygonMaskType.js");
|
|
28
7
|
class PolygonMaskPlugin {
|
|
29
8
|
constructor(engine) {
|
|
30
9
|
this.id = "polygonMask";
|
|
31
10
|
this._engine = engine;
|
|
32
11
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return new PolygonMaskInstance(container, this._engine);
|
|
12
|
+
getPlugin(container) {
|
|
13
|
+
return Promise.resolve(new PolygonMaskInstance_js_1.PolygonMaskInstance(container, this._engine));
|
|
36
14
|
}
|
|
37
15
|
loadOptions(options, source) {
|
|
38
16
|
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
@@ -46,7 +24,7 @@ class PolygonMaskPlugin {
|
|
|
46
24
|
}
|
|
47
25
|
needsPlugin(options) {
|
|
48
26
|
return (options?.polygon?.enable ??
|
|
49
|
-
(options?.polygon?.type !== undefined && options.polygon.type !==
|
|
27
|
+
(options?.polygon?.type !== undefined && options.polygon.type !== PolygonMaskType_js_1.PolygonMaskType.none));
|
|
50
28
|
}
|
|
51
29
|
}
|
|
52
30
|
exports.PolygonMaskPlugin = PolygonMaskPlugin;
|
package/cjs/index.js
CHANGED
|
@@ -10,27 +10,15 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
15
|
};
|
|
28
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
17
|
exports.loadPolygonMaskPlugin = void 0;
|
|
30
18
|
require("./pathseg.js");
|
|
19
|
+
const PolygonMaskPlugin_js_1 = require("./PolygonMaskPlugin.js");
|
|
31
20
|
async function loadPolygonMaskPlugin(engine, refresh = true) {
|
|
32
|
-
|
|
33
|
-
await engine.addPlugin(new PolygonMaskPlugin(engine), refresh);
|
|
21
|
+
await engine.addPlugin(new PolygonMaskPlugin_js_1.PolygonMaskPlugin(engine), refresh);
|
|
34
22
|
}
|
|
35
23
|
exports.loadPolygonMaskPlugin = loadPolygonMaskPlugin;
|
|
36
24
|
__exportStar(require("./Enums/PolygonMaskInlineArrangement.js"), exports);
|
package/cjs/pathseg.js
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
-
export
|
|
1
|
+
export var PolygonMaskInlineArrangement;
|
|
2
|
+
(function (PolygonMaskInlineArrangement) {
|
|
3
|
+
PolygonMaskInlineArrangement["equidistant"] = "equidistant";
|
|
4
|
+
PolygonMaskInlineArrangement["onePerPoint"] = "one-per-point";
|
|
5
|
+
PolygonMaskInlineArrangement["perPoint"] = "per-point";
|
|
6
|
+
PolygonMaskInlineArrangement["randomLength"] = "random-length";
|
|
7
|
+
PolygonMaskInlineArrangement["randomPoint"] = "random-point";
|
|
8
|
+
})(PolygonMaskInlineArrangement || (PolygonMaskInlineArrangement = {}));
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
export
|
|
1
|
+
export var PolygonMaskType;
|
|
2
|
+
(function (PolygonMaskType) {
|
|
3
|
+
PolygonMaskType["inline"] = "inline";
|
|
4
|
+
PolygonMaskType["inside"] = "inside";
|
|
5
|
+
PolygonMaskType["outside"] = "outside";
|
|
6
|
+
PolygonMaskType["none"] = "none";
|
|
7
|
+
})(PolygonMaskType || (PolygonMaskType = {}));
|
|
@@ -3,6 +3,7 @@ import { PolygonMaskDraw } from "./PolygonMaskDraw.js";
|
|
|
3
3
|
import { PolygonMaskInline } from "./PolygonMaskInline.js";
|
|
4
4
|
import { PolygonMaskLocalSvg } from "./PolygonMaskLocalSvg.js";
|
|
5
5
|
import { PolygonMaskMove } from "./PolygonMaskMove.js";
|
|
6
|
+
import { PolygonMaskType } from "../../Enums/PolygonMaskType.js";
|
|
6
7
|
export class PolygonMask {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.draw = new PolygonMaskDraw();
|
|
@@ -10,7 +11,7 @@ export class PolygonMask {
|
|
|
10
11
|
this.inline = new PolygonMaskInline();
|
|
11
12
|
this.move = new PolygonMaskMove();
|
|
12
13
|
this.scale = 1;
|
|
13
|
-
this.type =
|
|
14
|
+
this.type = PolygonMaskType.none;
|
|
14
15
|
}
|
|
15
16
|
load(data) {
|
|
16
17
|
if (!data) {
|
|
@@ -29,7 +30,7 @@ export class PolygonMask {
|
|
|
29
30
|
this.enable = data.enable;
|
|
30
31
|
}
|
|
31
32
|
else {
|
|
32
|
-
this.enable = this.type !==
|
|
33
|
+
this.enable = this.type !== PolygonMaskType.none;
|
|
33
34
|
}
|
|
34
35
|
if (data.url !== undefined) {
|
|
35
36
|
this.url = data.url;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { PolygonMaskInlineArrangement, } from "../../Enums/PolygonMaskInlineArrangement.js";
|
|
1
2
|
export class PolygonMaskInline {
|
|
2
3
|
constructor() {
|
|
3
|
-
this.arrangement =
|
|
4
|
+
this.arrangement = PolygonMaskInlineArrangement.onePerPoint;
|
|
4
5
|
}
|
|
5
6
|
load(data) {
|
|
6
7
|
if (!data) {
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { deepExtend, errorPrefix, getDistance, getDistances, getRandom, isArray, isString, itemFromArray, percentDenominator, } from "@tsparticles/engine";
|
|
1
|
+
import { OutModeDirection, deepExtend, errorPrefix, getDistance, getDistances, getRandom, isArray, isString, itemFromArray, percentDenominator, } from "@tsparticles/engine";
|
|
2
|
+
import { calcClosestPointOnSegment, drawPolygonMask, drawPolygonMaskPath, parsePaths, segmentBounce } from "./utils.js";
|
|
3
|
+
import { PolygonMaskInlineArrangement } from "./Enums/PolygonMaskInlineArrangement.js";
|
|
4
|
+
import { PolygonMaskType } from "./Enums/PolygonMaskType.js";
|
|
2
5
|
const noPolygonDataLoaded = `${errorPrefix} No polygon data loaded.`, noPolygonFound = `${errorPrefix} No polygon found, you need to specify SVG url in config.`, origin = {
|
|
3
6
|
x: 0,
|
|
4
7
|
y: 0,
|
|
5
8
|
}, half = 0.5, double = 2;
|
|
6
9
|
export class PolygonMaskInstance {
|
|
7
10
|
constructor(container, engine) {
|
|
8
|
-
this._checkInsidePolygon =
|
|
11
|
+
this._checkInsidePolygon = position => {
|
|
9
12
|
const container = this._container, options = container.actualOptions.polygon;
|
|
10
|
-
if (!options?.enable || options.type ===
|
|
13
|
+
if (!options?.enable || options.type === PolygonMaskType.none || options.type === PolygonMaskType.inline) {
|
|
11
14
|
return true;
|
|
12
15
|
}
|
|
13
16
|
if (!this.raw) {
|
|
@@ -21,11 +24,11 @@ export class PolygonMaskInstance {
|
|
|
21
24
|
inside = !inside;
|
|
22
25
|
}
|
|
23
26
|
}
|
|
24
|
-
if (options.type ===
|
|
27
|
+
if (options.type === PolygonMaskType.inside) {
|
|
25
28
|
return inside;
|
|
26
29
|
}
|
|
27
30
|
else {
|
|
28
|
-
return options.type ===
|
|
31
|
+
return options.type === PolygonMaskType.outside ? !inside : false;
|
|
29
32
|
}
|
|
30
33
|
};
|
|
31
34
|
this._createPath2D = () => {
|
|
@@ -75,7 +78,7 @@ export class PolygonMaskInstance {
|
|
|
75
78
|
if (!req.ok) {
|
|
76
79
|
throw new Error(`${errorPrefix} occurred during polygon mask download`);
|
|
77
80
|
}
|
|
78
|
-
return
|
|
81
|
+
return this._parseSvgPath(await req.text(), force);
|
|
79
82
|
};
|
|
80
83
|
this._drawPoints = () => {
|
|
81
84
|
if (!this.raw) {
|
|
@@ -88,7 +91,7 @@ export class PolygonMaskInstance {
|
|
|
88
91
|
});
|
|
89
92
|
}
|
|
90
93
|
};
|
|
91
|
-
this._getEquidistantPointByIndex =
|
|
94
|
+
this._getEquidistantPointByIndex = index => {
|
|
92
95
|
const container = this._container, options = container.actualOptions, polygonMaskOptions = options.polygon;
|
|
93
96
|
if (!polygonMaskOptions) {
|
|
94
97
|
return;
|
|
@@ -114,7 +117,7 @@ export class PolygonMaskInstance {
|
|
|
114
117
|
y: (point?.y ?? origin.y) * scale + (this.offset?.y ?? origin.y),
|
|
115
118
|
};
|
|
116
119
|
};
|
|
117
|
-
this._getPointByIndex =
|
|
120
|
+
this._getPointByIndex = index => {
|
|
118
121
|
if (!this.raw?.length) {
|
|
119
122
|
throw new Error(noPolygonDataLoaded);
|
|
120
123
|
}
|
|
@@ -167,14 +170,14 @@ export class PolygonMaskInstance {
|
|
|
167
170
|
const namespaces = 'xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"';
|
|
168
171
|
svg = `<svg ${namespaces} width="${data.size.width}" height="${data.size.height}">${path}</svg>`;
|
|
169
172
|
}
|
|
170
|
-
this.raw =
|
|
173
|
+
this.raw = this._parseSvgPath(svg, force);
|
|
171
174
|
}
|
|
172
175
|
this._createPath2D();
|
|
173
176
|
this._engine.dispatchEvent("polygonMaskLoaded", {
|
|
174
177
|
container: this._container,
|
|
175
178
|
});
|
|
176
179
|
};
|
|
177
|
-
this._parseSvgPath =
|
|
180
|
+
this._parseSvgPath = (xml, force) => {
|
|
178
181
|
const forceDownload = force ?? false;
|
|
179
182
|
if (this.paths !== undefined && !forceDownload) {
|
|
180
183
|
return this.raw;
|
|
@@ -209,24 +212,22 @@ export class PolygonMaskInstance {
|
|
|
209
212
|
x: (canvasSize.width * position.x) / percentDenominator - this.dimension.width * half,
|
|
210
213
|
y: (canvasSize.height * position.y) / percentDenominator - this.dimension.height * half,
|
|
211
214
|
};
|
|
212
|
-
const { parsePaths } = await import("./utils.js");
|
|
213
215
|
return parsePaths(this.paths, scale, this.offset);
|
|
214
216
|
};
|
|
215
|
-
this._polygonBounce =
|
|
217
|
+
this._polygonBounce = (particle, delta, direction) => {
|
|
216
218
|
const options = this._container.actualOptions.polygon;
|
|
217
|
-
if (!this.raw || !options?.enable || direction !==
|
|
219
|
+
if (!this.raw || !options?.enable || direction !== OutModeDirection.top) {
|
|
218
220
|
return false;
|
|
219
221
|
}
|
|
220
|
-
if (options.type ===
|
|
222
|
+
if (options.type === PolygonMaskType.inside || options.type === PolygonMaskType.outside) {
|
|
221
223
|
let closest, dx, dy;
|
|
222
224
|
const pos = particle.getPosition(), radius = particle.getRadius(), offset = 1;
|
|
223
225
|
for (let i = 0, j = this.raw.length - offset; i < this.raw.length; j = i++) {
|
|
224
|
-
const pi = this.raw[i], pj = this.raw[j]
|
|
226
|
+
const pi = this.raw[i], pj = this.raw[j];
|
|
225
227
|
closest = calcClosestPointOnSegment(pi, pj, pos);
|
|
226
228
|
const dist = getDistances(pos, closest);
|
|
227
229
|
[dx, dy] = [dist.dx, dist.dy];
|
|
228
230
|
if (dist.distance < radius) {
|
|
229
|
-
const { segmentBounce } = await import("./utils.js");
|
|
230
231
|
segmentBounce(pi, pj, particle.velocity);
|
|
231
232
|
return true;
|
|
232
233
|
}
|
|
@@ -245,7 +246,7 @@ export class PolygonMaskInstance {
|
|
|
245
246
|
return true;
|
|
246
247
|
}
|
|
247
248
|
}
|
|
248
|
-
else if (options.type ===
|
|
249
|
+
else if (options.type === PolygonMaskType.inline && particle.initialPosition) {
|
|
249
250
|
const dist = getDistance(particle.initialPosition, particle.getPosition()), { velocity } = particle;
|
|
250
251
|
if (dist > this._moveRadius) {
|
|
251
252
|
velocity.x = velocity.y * half - velocity.x;
|
|
@@ -261,19 +262,19 @@ export class PolygonMaskInstance {
|
|
|
261
262
|
return;
|
|
262
263
|
}
|
|
263
264
|
let position;
|
|
264
|
-
if (options.type ===
|
|
265
|
+
if (options.type === PolygonMaskType.inline) {
|
|
265
266
|
switch (options.inline.arrangement) {
|
|
266
|
-
case
|
|
267
|
+
case PolygonMaskInlineArrangement.randomPoint:
|
|
267
268
|
position = this._getRandomPoint();
|
|
268
269
|
break;
|
|
269
|
-
case
|
|
270
|
+
case PolygonMaskInlineArrangement.randomLength:
|
|
270
271
|
position = this._getRandomPointByLength();
|
|
271
272
|
break;
|
|
272
|
-
case
|
|
273
|
+
case PolygonMaskInlineArrangement.equidistant:
|
|
273
274
|
position = this._getEquidistantPointByIndex(container.particles.count);
|
|
274
275
|
break;
|
|
275
|
-
case
|
|
276
|
-
case
|
|
276
|
+
case PolygonMaskInlineArrangement.onePerPoint:
|
|
277
|
+
case PolygonMaskInlineArrangement.perPoint:
|
|
277
278
|
default:
|
|
278
279
|
position = this._getPointByIndex(container.particles.count);
|
|
279
280
|
}
|
|
@@ -304,11 +305,11 @@ export class PolygonMaskInstance {
|
|
|
304
305
|
clickPositionValid(position) {
|
|
305
306
|
const options = this._container.actualOptions.polygon;
|
|
306
307
|
return (!!options?.enable &&
|
|
307
|
-
options.type !==
|
|
308
|
-
options.type !==
|
|
308
|
+
options.type !== PolygonMaskType.none &&
|
|
309
|
+
options.type !== PolygonMaskType.inline &&
|
|
309
310
|
this._checkInsidePolygon(position));
|
|
310
311
|
}
|
|
311
|
-
|
|
312
|
+
draw(context) {
|
|
312
313
|
if (!this.paths?.length) {
|
|
313
314
|
return;
|
|
314
315
|
}
|
|
@@ -327,11 +328,9 @@ export class PolygonMaskInstance {
|
|
|
327
328
|
continue;
|
|
328
329
|
}
|
|
329
330
|
if (path2d && this.offset) {
|
|
330
|
-
const { drawPolygonMaskPath } = await import("./utils.js");
|
|
331
331
|
drawPolygonMaskPath(context, path2d, polygonDraw.stroke, this.offset);
|
|
332
332
|
}
|
|
333
333
|
else if (rawData) {
|
|
334
|
-
const { drawPolygonMask } = await import("./utils.js");
|
|
335
334
|
drawPolygonMask(context, rawData, polygonDraw.stroke);
|
|
336
335
|
}
|
|
337
336
|
}
|
|
@@ -347,8 +346,8 @@ export class PolygonMaskInstance {
|
|
|
347
346
|
await this._initRawData();
|
|
348
347
|
}
|
|
349
348
|
}
|
|
350
|
-
|
|
351
|
-
return
|
|
349
|
+
particleBounce(particle, delta, direction) {
|
|
350
|
+
return this._polygonBounce(particle, delta, direction);
|
|
352
351
|
}
|
|
353
352
|
particlePosition(position) {
|
|
354
353
|
const options = this._container.actualOptions.polygon, defaultLength = 0;
|
|
@@ -360,9 +359,9 @@ export class PolygonMaskInstance {
|
|
|
360
359
|
particlesInitialization() {
|
|
361
360
|
const options = this._container.actualOptions.polygon;
|
|
362
361
|
if (options?.enable &&
|
|
363
|
-
options.type ===
|
|
364
|
-
(options.inline.arrangement ===
|
|
365
|
-
options.inline.arrangement ===
|
|
362
|
+
options.type === PolygonMaskType.inline &&
|
|
363
|
+
(options.inline.arrangement === PolygonMaskInlineArrangement.onePerPoint ||
|
|
364
|
+
options.inline.arrangement === PolygonMaskInlineArrangement.perPoint)) {
|
|
366
365
|
this._drawPoints();
|
|
367
366
|
return true;
|
|
368
367
|
}
|
|
@@ -370,7 +369,7 @@ export class PolygonMaskInstance {
|
|
|
370
369
|
}
|
|
371
370
|
resize() {
|
|
372
371
|
const container = this._container, options = container.actualOptions.polygon;
|
|
373
|
-
if (!(options?.enable && options.type !==
|
|
372
|
+
if (!(options?.enable && options.type !== PolygonMaskType.none)) {
|
|
374
373
|
return;
|
|
375
374
|
}
|
|
376
375
|
if (this.redrawTimeout) {
|
package/esm/PolygonMaskPlugin.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { PolygonMask } from "./Options/Classes/PolygonMask.js";
|
|
2
|
+
import { PolygonMaskInstance } from "./PolygonMaskInstance.js";
|
|
3
|
+
import { PolygonMaskType } from "./Enums/PolygonMaskType.js";
|
|
2
4
|
export class PolygonMaskPlugin {
|
|
3
5
|
constructor(engine) {
|
|
4
6
|
this.id = "polygonMask";
|
|
5
7
|
this._engine = engine;
|
|
6
8
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return new PolygonMaskInstance(container, this._engine);
|
|
9
|
+
getPlugin(container) {
|
|
10
|
+
return Promise.resolve(new PolygonMaskInstance(container, this._engine));
|
|
10
11
|
}
|
|
11
12
|
loadOptions(options, source) {
|
|
12
13
|
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
@@ -20,6 +21,6 @@ export class PolygonMaskPlugin {
|
|
|
20
21
|
}
|
|
21
22
|
needsPlugin(options) {
|
|
22
23
|
return (options?.polygon?.enable ??
|
|
23
|
-
(options?.polygon?.type !== undefined && options.polygon.type !==
|
|
24
|
+
(options?.polygon?.type !== undefined && options.polygon.type !== PolygonMaskType.none));
|
|
24
25
|
}
|
|
25
26
|
}
|
package/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./pathseg.js";
|
|
2
|
+
import { PolygonMaskPlugin } from "./PolygonMaskPlugin.js";
|
|
2
3
|
export async function loadPolygonMaskPlugin(engine, refresh = true) {
|
|
3
|
-
const { PolygonMaskPlugin } = await import("./PolygonMaskPlugin.js");
|
|
4
4
|
await engine.addPlugin(new PolygonMaskPlugin(engine), refresh);
|
|
5
5
|
}
|
|
6
6
|
export * from "./Enums/PolygonMaskInlineArrangement.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsparticles/plugin-polygon-mask",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "tsParticles polygon mask plugin",
|
|
5
5
|
"homepage": "https://particles.js.org",
|
|
6
6
|
"repository": {
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"./package.json": "./package.json"
|
|
89
89
|
},
|
|
90
90
|
"dependencies": {
|
|
91
|
-
"@tsparticles/engine": "^3.
|
|
91
|
+
"@tsparticles/engine": "^3.4.0"
|
|
92
92
|
},
|
|
93
93
|
"publishConfig": {
|
|
94
94
|
"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-polygon-mask [
|
|
6
|
+
<title>@tsparticles/plugin-polygon-mask [13 May 2024 at 00:11]</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>
|