@tsparticles/plugin-polygon-mask 3.0.0-beta.0 → 3.0.0-beta.2
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/README.md +1 -1
- package/browser/Options/Classes/PolygonMask.js +4 -4
- package/browser/Options/Classes/PolygonMaskDraw.js +1 -1
- package/browser/PolygonMaskInstance.js +1 -1
- package/browser/index.js +6 -6
- package/browser/package.json +1 -0
- package/browser/pathseg.js +1 -1
- package/cjs/Options/Classes/PolygonMask.js +8 -8
- package/cjs/Options/Classes/PolygonMaskDraw.js +2 -2
- package/cjs/PolygonMaskInstance.js +6 -6
- package/cjs/index.js +8 -8
- package/cjs/package.json +1 -0
- package/cjs/pathseg.js +1 -1
- package/esm/Options/Classes/PolygonMask.js +4 -4
- package/esm/Options/Classes/PolygonMaskDraw.js +1 -1
- package/esm/PolygonMaskInstance.js +1 -1
- package/esm/index.js +6 -6
- package/esm/package.json +1 -0
- package/esm/pathseg.js +1 -1
- package/package.json +20 -8
- package/report.html +23 -5
- package/tsparticles.plugin.polygon-mask.js +4 -4
- package/tsparticles.plugin.polygon-mask.min.js +1 -1
- package/tsparticles.plugin.polygon-mask.min.js.LICENSE.txt +1 -1
- package/types/Interfaces/ISvgPath.d.ts +1 -1
- package/types/Options/Classes/PolygonMask.d.ts +6 -6
- package/types/Options/Classes/PolygonMaskDraw.d.ts +2 -2
- package/types/Options/Classes/PolygonMaskDrawStroke.d.ts +1 -1
- package/types/Options/Classes/PolygonMaskInline.d.ts +3 -3
- package/types/Options/Classes/PolygonMaskLocalSvg.d.ts +1 -1
- package/types/Options/Classes/PolygonMaskMove.d.ts +2 -2
- package/types/Options/Interfaces/IPolygonMask.d.ts +5 -5
- package/types/Options/Interfaces/IPolygonMaskDraw.d.ts +1 -1
- package/types/Options/Interfaces/IPolygonMaskInline.d.ts +1 -1
- package/types/Options/Interfaces/IPolygonMaskMove.d.ts +1 -1
- package/types/PolygonMaskInstance.d.ts +2 -2
- package/types/index.d.ts +4 -4
- package/types/types.d.ts +3 -3
- package/types/utils.d.ts +2 -2
- package/umd/Options/Classes/PolygonMask.js +9 -9
- package/umd/Options/Classes/PolygonMaskDraw.js +3 -3
- package/umd/PolygonMaskInstance.js +7 -7
- package/umd/index.js +9 -9
- package/umd/pathseg.js +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://www.npmjs.com/package/@tsparticles/plugin-polygon-mask)
|
|
7
7
|
[](https://www.npmjs.com/package/@tsparticles/plugin-polygon-mask) [](https://github.com/sponsors/matteobruni)
|
|
8
8
|
|
|
9
|
-
[tsParticles](https://github.com/
|
|
9
|
+
[tsParticles](https://github.com/tsparticles/tsparticles) plugin for particles polygon mask effect.
|
|
10
10
|
|
|
11
11
|
## How to use it
|
|
12
12
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { deepExtend, isString, } from "@tsparticles/engine";
|
|
2
|
-
import { PolygonMaskDraw } from "./PolygonMaskDraw";
|
|
3
|
-
import { PolygonMaskInline } from "./PolygonMaskInline";
|
|
4
|
-
import { PolygonMaskLocalSvg } from "./PolygonMaskLocalSvg";
|
|
5
|
-
import { PolygonMaskMove } from "./PolygonMaskMove";
|
|
2
|
+
import { PolygonMaskDraw } from "./PolygonMaskDraw.js";
|
|
3
|
+
import { PolygonMaskInline } from "./PolygonMaskInline.js";
|
|
4
|
+
import { PolygonMaskLocalSvg } from "./PolygonMaskLocalSvg.js";
|
|
5
|
+
import { PolygonMaskMove } from "./PolygonMaskMove.js";
|
|
6
6
|
export class PolygonMask {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.draw = new PolygonMaskDraw();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { deepExtend, errorPrefix, getDistance, getDistances, getRandom, isArray, isString, itemFromArray, } from "@tsparticles/engine";
|
|
2
|
-
import { calcClosestPtOnSegment, drawPolygonMask, drawPolygonMaskPath, parsePaths, segmentBounce } from "./utils";
|
|
2
|
+
import { calcClosestPtOnSegment, drawPolygonMask, drawPolygonMaskPath, parsePaths, segmentBounce } from "./utils.js";
|
|
3
3
|
const noPolygonDataLoaded = `${errorPrefix} No polygon data loaded.`, noPolygonFound = `${errorPrefix} No polygon found, you need to specify SVG url in config.`;
|
|
4
4
|
export class PolygonMaskInstance {
|
|
5
5
|
constructor(container, engine) {
|
package/browser/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "./pathseg";
|
|
2
|
-
import { PolygonMask } from "./Options/Classes/PolygonMask";
|
|
3
|
-
import { PolygonMaskInstance } from "./PolygonMaskInstance";
|
|
1
|
+
import "./pathseg.js";
|
|
2
|
+
import { PolygonMask } from "./Options/Classes/PolygonMask.js";
|
|
3
|
+
import { PolygonMaskInstance } from "./PolygonMaskInstance.js";
|
|
4
4
|
class PolygonMaskPlugin {
|
|
5
5
|
constructor(engine) {
|
|
6
6
|
this.id = "polygonMask";
|
|
@@ -27,6 +27,6 @@ class PolygonMaskPlugin {
|
|
|
27
27
|
export async function loadPolygonMaskPlugin(engine, refresh = true) {
|
|
28
28
|
await engine.addPlugin(new PolygonMaskPlugin(engine), refresh);
|
|
29
29
|
}
|
|
30
|
-
export * from "./Enums/PolygonMaskInlineArrangement";
|
|
31
|
-
export * from "./Enums/PolygonMaskMoveType";
|
|
32
|
-
export * from "./Enums/PolygonMaskType";
|
|
30
|
+
export * from "./Enums/PolygonMaskInlineArrangement.js";
|
|
31
|
+
export * from "./Enums/PolygonMaskMoveType.js";
|
|
32
|
+
export * from "./Enums/PolygonMaskType.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "module" }
|
package/browser/pathseg.js
CHANGED
|
@@ -1491,6 +1491,6 @@
|
|
|
1491
1491
|
}
|
|
1492
1492
|
}
|
|
1493
1493
|
catch (e) {
|
|
1494
|
-
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/
|
|
1494
|
+
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles", e);
|
|
1495
1495
|
}
|
|
1496
1496
|
})();
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PolygonMask = void 0;
|
|
4
4
|
const engine_1 = require("@tsparticles/engine");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
5
|
+
const PolygonMaskDraw_js_1 = require("./PolygonMaskDraw.js");
|
|
6
|
+
const PolygonMaskInline_js_1 = require("./PolygonMaskInline.js");
|
|
7
|
+
const PolygonMaskLocalSvg_js_1 = require("./PolygonMaskLocalSvg.js");
|
|
8
|
+
const PolygonMaskMove_js_1 = require("./PolygonMaskMove.js");
|
|
9
9
|
class PolygonMask {
|
|
10
10
|
constructor() {
|
|
11
|
-
this.draw = new
|
|
11
|
+
this.draw = new PolygonMaskDraw_js_1.PolygonMaskDraw();
|
|
12
12
|
this.enable = false;
|
|
13
|
-
this.inline = new
|
|
14
|
-
this.move = new
|
|
13
|
+
this.inline = new PolygonMaskInline_js_1.PolygonMaskInline();
|
|
14
|
+
this.move = new PolygonMaskMove_js_1.PolygonMaskMove();
|
|
15
15
|
this.scale = 1;
|
|
16
16
|
this.type = "none";
|
|
17
17
|
}
|
|
@@ -42,7 +42,7 @@ class PolygonMask {
|
|
|
42
42
|
this.data = data.data;
|
|
43
43
|
}
|
|
44
44
|
else {
|
|
45
|
-
this.data = new
|
|
45
|
+
this.data = new PolygonMaskLocalSvg_js_1.PolygonMaskLocalSvg();
|
|
46
46
|
this.data.load(data.data);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PolygonMaskDraw = void 0;
|
|
4
|
-
const
|
|
4
|
+
const PolygonMaskDrawStroke_js_1 = require("./PolygonMaskDrawStroke.js");
|
|
5
5
|
class PolygonMaskDraw {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.enable = false;
|
|
8
|
-
this.stroke = new
|
|
8
|
+
this.stroke = new PolygonMaskDrawStroke_js_1.PolygonMaskDrawStroke();
|
|
9
9
|
}
|
|
10
10
|
load(data) {
|
|
11
11
|
if (!data) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PolygonMaskInstance = void 0;
|
|
4
4
|
const engine_1 = require("@tsparticles/engine");
|
|
5
|
-
const
|
|
5
|
+
const utils_js_1 = require("./utils.js");
|
|
6
6
|
const noPolygonDataLoaded = `${engine_1.errorPrefix} No polygon data loaded.`, noPolygonFound = `${engine_1.errorPrefix} No polygon found, you need to specify SVG url in config.`;
|
|
7
7
|
class PolygonMaskInstance {
|
|
8
8
|
constructor(container, engine) {
|
|
@@ -208,7 +208,7 @@ class PolygonMaskInstance {
|
|
|
208
208
|
x: (canvasSize.width * position.x) / 100 - this.dimension.width / 2,
|
|
209
209
|
y: (canvasSize.height * position.y) / 100 - this.dimension.height / 2,
|
|
210
210
|
};
|
|
211
|
-
return (0,
|
|
211
|
+
return (0, utils_js_1.parsePaths)(this.paths, scale, this.offset);
|
|
212
212
|
};
|
|
213
213
|
this._polygonBounce = (particle, _delta, direction) => {
|
|
214
214
|
const options = this._container.actualOptions.polygon;
|
|
@@ -220,11 +220,11 @@ class PolygonMaskInstance {
|
|
|
220
220
|
const pos = particle.getPosition(), radius = particle.getRadius();
|
|
221
221
|
for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {
|
|
222
222
|
const pi = this.raw[i], pj = this.raw[j];
|
|
223
|
-
closest = (0,
|
|
223
|
+
closest = (0, utils_js_1.calcClosestPtOnSegment)(pi, pj, pos);
|
|
224
224
|
const dist = (0, engine_1.getDistances)(pos, closest);
|
|
225
225
|
[dx, dy] = [dist.dx, dist.dy];
|
|
226
226
|
if (dist.distance < radius) {
|
|
227
|
-
(0,
|
|
227
|
+
(0, utils_js_1.segmentBounce)(pi, pj, particle.velocity);
|
|
228
228
|
return true;
|
|
229
229
|
}
|
|
230
230
|
}
|
|
@@ -324,10 +324,10 @@ class PolygonMaskInstance {
|
|
|
324
324
|
continue;
|
|
325
325
|
}
|
|
326
326
|
if (path2d && this.offset) {
|
|
327
|
-
(0,
|
|
327
|
+
(0, utils_js_1.drawPolygonMaskPath)(context, path2d, polygonDraw.stroke, this.offset);
|
|
328
328
|
}
|
|
329
329
|
else if (rawData) {
|
|
330
|
-
(0,
|
|
330
|
+
(0, utils_js_1.drawPolygonMask)(context, rawData, polygonDraw.stroke);
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
333
|
}
|
package/cjs/index.js
CHANGED
|
@@ -15,16 +15,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.loadPolygonMaskPlugin = void 0;
|
|
18
|
-
require("./pathseg");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
18
|
+
require("./pathseg.js");
|
|
19
|
+
const PolygonMask_js_1 = require("./Options/Classes/PolygonMask.js");
|
|
20
|
+
const PolygonMaskInstance_js_1 = require("./PolygonMaskInstance.js");
|
|
21
21
|
class PolygonMaskPlugin {
|
|
22
22
|
constructor(engine) {
|
|
23
23
|
this.id = "polygonMask";
|
|
24
24
|
this._engine = engine;
|
|
25
25
|
}
|
|
26
26
|
getPlugin(container) {
|
|
27
|
-
return new
|
|
27
|
+
return new PolygonMaskInstance_js_1.PolygonMaskInstance(container, this._engine);
|
|
28
28
|
}
|
|
29
29
|
loadOptions(options, source) {
|
|
30
30
|
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
|
|
@@ -32,7 +32,7 @@ class PolygonMaskPlugin {
|
|
|
32
32
|
}
|
|
33
33
|
let polygonOptions = options.polygon;
|
|
34
34
|
if (polygonOptions?.load === undefined) {
|
|
35
|
-
options.polygon = polygonOptions = new
|
|
35
|
+
options.polygon = polygonOptions = new PolygonMask_js_1.PolygonMask();
|
|
36
36
|
}
|
|
37
37
|
polygonOptions.load(source?.polygon);
|
|
38
38
|
}
|
|
@@ -45,6 +45,6 @@ async function loadPolygonMaskPlugin(engine, refresh = true) {
|
|
|
45
45
|
await engine.addPlugin(new PolygonMaskPlugin(engine), refresh);
|
|
46
46
|
}
|
|
47
47
|
exports.loadPolygonMaskPlugin = loadPolygonMaskPlugin;
|
|
48
|
-
__exportStar(require("./Enums/PolygonMaskInlineArrangement"), exports);
|
|
49
|
-
__exportStar(require("./Enums/PolygonMaskMoveType"), exports);
|
|
50
|
-
__exportStar(require("./Enums/PolygonMaskType"), exports);
|
|
48
|
+
__exportStar(require("./Enums/PolygonMaskInlineArrangement.js"), exports);
|
|
49
|
+
__exportStar(require("./Enums/PolygonMaskMoveType.js"), exports);
|
|
50
|
+
__exportStar(require("./Enums/PolygonMaskType.js"), exports);
|
package/cjs/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "commonjs" }
|
package/cjs/pathseg.js
CHANGED
|
@@ -1491,6 +1491,6 @@
|
|
|
1491
1491
|
}
|
|
1492
1492
|
}
|
|
1493
1493
|
catch (e) {
|
|
1494
|
-
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/
|
|
1494
|
+
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles", e);
|
|
1495
1495
|
}
|
|
1496
1496
|
})();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { deepExtend, isString, } from "@tsparticles/engine";
|
|
2
|
-
import { PolygonMaskDraw } from "./PolygonMaskDraw";
|
|
3
|
-
import { PolygonMaskInline } from "./PolygonMaskInline";
|
|
4
|
-
import { PolygonMaskLocalSvg } from "./PolygonMaskLocalSvg";
|
|
5
|
-
import { PolygonMaskMove } from "./PolygonMaskMove";
|
|
2
|
+
import { PolygonMaskDraw } from "./PolygonMaskDraw.js";
|
|
3
|
+
import { PolygonMaskInline } from "./PolygonMaskInline.js";
|
|
4
|
+
import { PolygonMaskLocalSvg } from "./PolygonMaskLocalSvg.js";
|
|
5
|
+
import { PolygonMaskMove } from "./PolygonMaskMove.js";
|
|
6
6
|
export class PolygonMask {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.draw = new PolygonMaskDraw();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { deepExtend, errorPrefix, getDistance, getDistances, getRandom, isArray, isString, itemFromArray, } from "@tsparticles/engine";
|
|
2
|
-
import { calcClosestPtOnSegment, drawPolygonMask, drawPolygonMaskPath, parsePaths, segmentBounce } from "./utils";
|
|
2
|
+
import { calcClosestPtOnSegment, drawPolygonMask, drawPolygonMaskPath, parsePaths, segmentBounce } from "./utils.js";
|
|
3
3
|
const noPolygonDataLoaded = `${errorPrefix} No polygon data loaded.`, noPolygonFound = `${errorPrefix} No polygon found, you need to specify SVG url in config.`;
|
|
4
4
|
export class PolygonMaskInstance {
|
|
5
5
|
constructor(container, engine) {
|
package/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "./pathseg";
|
|
2
|
-
import { PolygonMask } from "./Options/Classes/PolygonMask";
|
|
3
|
-
import { PolygonMaskInstance } from "./PolygonMaskInstance";
|
|
1
|
+
import "./pathseg.js";
|
|
2
|
+
import { PolygonMask } from "./Options/Classes/PolygonMask.js";
|
|
3
|
+
import { PolygonMaskInstance } from "./PolygonMaskInstance.js";
|
|
4
4
|
class PolygonMaskPlugin {
|
|
5
5
|
constructor(engine) {
|
|
6
6
|
this.id = "polygonMask";
|
|
@@ -27,6 +27,6 @@ class PolygonMaskPlugin {
|
|
|
27
27
|
export async function loadPolygonMaskPlugin(engine, refresh = true) {
|
|
28
28
|
await engine.addPlugin(new PolygonMaskPlugin(engine), refresh);
|
|
29
29
|
}
|
|
30
|
-
export * from "./Enums/PolygonMaskInlineArrangement";
|
|
31
|
-
export * from "./Enums/PolygonMaskMoveType";
|
|
32
|
-
export * from "./Enums/PolygonMaskType";
|
|
30
|
+
export * from "./Enums/PolygonMaskInlineArrangement.js";
|
|
31
|
+
export * from "./Enums/PolygonMaskMoveType.js";
|
|
32
|
+
export * from "./Enums/PolygonMaskType.js";
|
package/esm/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "module" }
|
package/esm/pathseg.js
CHANGED
|
@@ -1491,6 +1491,6 @@
|
|
|
1491
1491
|
}
|
|
1492
1492
|
}
|
|
1493
1493
|
catch (e) {
|
|
1494
|
-
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/
|
|
1494
|
+
console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles", e);
|
|
1495
1495
|
}
|
|
1496
1496
|
})();
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsparticles/plugin-polygon-mask",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.2",
|
|
4
4
|
"description": "tsParticles polygon mask plugin",
|
|
5
5
|
"homepage": "https://particles.js.org",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "git+https://github.com/
|
|
8
|
+
"url": "git+https://github.com/tsparticles/tsparticles.git",
|
|
9
9
|
"directory": "plugins/polygonMask"
|
|
10
10
|
},
|
|
11
11
|
"keywords": [
|
|
@@ -65,18 +65,30 @@
|
|
|
65
65
|
"author": "Matteo Bruni <matteo.bruni@me.com>",
|
|
66
66
|
"license": "MIT",
|
|
67
67
|
"bugs": {
|
|
68
|
-
"url": "https://github.com/
|
|
68
|
+
"url": "https://github.com/tsparticles/tsparticles/issues"
|
|
69
69
|
},
|
|
70
|
-
"
|
|
70
|
+
"sideEffects": [
|
|
71
|
+
"./**/pathseg.js"
|
|
72
|
+
],
|
|
71
73
|
"jsdelivr": "tsparticles.plugin.polygon-mask.min.js",
|
|
72
74
|
"unpkg": "tsparticles.plugin.polygon-mask.min.js",
|
|
75
|
+
"browser": "browser/index.js",
|
|
76
|
+
"main": "cjs/index.js",
|
|
73
77
|
"module": "esm/index.js",
|
|
74
78
|
"types": "types/index.d.ts",
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
|
|
79
|
+
"exports": {
|
|
80
|
+
".": {
|
|
81
|
+
"types": "./types/index.d.ts",
|
|
82
|
+
"browser": "./browser/index.js",
|
|
83
|
+
"import": "./esm/index.js",
|
|
84
|
+
"require": "./cjs/index.js",
|
|
85
|
+
"umd": "./umd/index.js",
|
|
86
|
+
"default": "./cjs/index.js"
|
|
87
|
+
},
|
|
88
|
+
"./package.json": "./package.json"
|
|
89
|
+
},
|
|
78
90
|
"dependencies": {
|
|
79
|
-
"@tsparticles/engine": "^3.0.0-beta.
|
|
91
|
+
"@tsparticles/engine": "^3.0.0-beta.2"
|
|
80
92
|
},
|
|
81
93
|
"publishConfig": {
|
|
82
94
|
"access": "public"
|