@tsparticles/effect-filter 4.0.0-beta.10

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/72.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_effect_filter=this.webpackChunk_tsparticles_effect_filter||[]).push([[72],{72(t,e,r){r.d(e,{FilterDrawer:()=>i});var l=r(303);class i{drawAfter(t){let{context:e}=t;e.restore()}drawBefore(t){let{context:e,particle:r}=t;e.save();let i="number"==typeof r.filterBlur?`${r.filterBlur}px`:r.filterBlur,a=r.filterBrightness,s=r.filterContrast,f=r.filterDropShadow,u=r.filterGrayscale,o="number"==typeof r.filterHueRotate?`${r.filterHueRotate}deg`:r.filterHueRotate,$=r.filterInvert,p=r.filterOpacity,c=r.filterSaturate,n=r.filterSepia,h=r.filterUrl,d=i?`blur(${i})`:"",y=(0,l.isNull)(a)?"":`brightness(${a})`,w=(0,l.isNull)(s)?"":`contrast(${s})`,b=f?`drop-shadow(${f})`:"",N=(0,l.isNull)(u)?"":`grayscale(${u})`,g=(0,l.isNull)(o)?"":`hue-rotate(${o})`,B=(0,l.isNull)($)?"":`invert(${$})`,S=(0,l.isNull)(p)?"":`opacity(${p})`,v=(0,l.isNull)(c)?"":`saturate(${c})`,_=(0,l.isNull)(n)?"":`sepia(${n})`,R=h?`url(${h})`:"";e.filter=`${d} ${y} ${w} ${b} ${N} ${g} ${B} ${S} ${v} ${_} ${R}`.trim()}particleInit(t,e){let r=e.effectData;r&&(e.filterBlur=r.blur,e.filterBrightness=r.brightness,e.filterContrast=r.contrast,e.filterDropShadow=r.dropShadow,e.filterGrayscale=r.grayscale,e.filterHueRotate=r.hueRotate,e.filterInvert=r.invert,e.filterOpacity=r.opacity,e.filterSaturate=r.saturate,e.filterSepia=r.sepia,e.filterUrl=r.url)}}}}]);
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Matteo Bruni
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,105 @@
1
+ [![banner](https://particles.js.org/images/banner3.png)](https://particles.js.org)
2
+
3
+ # tsParticles Filter Effect
4
+
5
+ [![jsDelivr](https://data.jsdelivr.com/v1/package/npm/@tsparticles/effect-filter/badge)](https://www.jsdelivr.com/package/npm/@tsparticles/effect-filter)
6
+ [![npmjs](https://badge.fury.io/js/@tsparticles/effect-filter.svg)](https://www.npmjs.com/package/@tsparticles/effect-filter)
7
+ [![npmjs](https://img.shields.io/npm/dt/@tsparticles/effect-filter)](https://www.npmjs.com/package/@tsparticles/effect-filter) [![GitHub Sponsors](https://img.shields.io/github/sponsors/matteobruni)](https://github.com/sponsors/matteobruni)
8
+
9
+ [tsParticles](https://github.com/tsparticles/tsparticles) additional filter effect.
10
+
11
+ ## Quick checklist
12
+
13
+ 1. Install `@tsparticles/engine` (or use the CDN bundle below)
14
+ 2. Call the package loader function(s) before `tsParticles.load(...)`
15
+ 3. Apply the package options in your `tsParticles.load(...)` config
16
+
17
+ ## How to use it
18
+
19
+ ### CDN / Vanilla JS / jQuery
20
+
21
+ The CDN/Vanilla version JS has one required file in vanilla configuration:
22
+
23
+ Including the `tsparticles.effect.filter.min.js` file will export the function to load the effect:
24
+
25
+ ```text
26
+ loadFilterEffect
27
+ ```
28
+
29
+ ### Usage
30
+
31
+ Once the scripts are loaded you can set up `tsParticles` and the effect like this:
32
+
33
+ ```javascript
34
+ (async () => {
35
+ await loadFilterEffect(tsParticles);
36
+
37
+ await tsParticles.load({
38
+ id: "tsparticles",
39
+ options: {
40
+ /* options */
41
+ /* here you can use particles.effect.type: "filter" */
42
+ },
43
+ });
44
+ })();
45
+ ```
46
+
47
+ ### ESM / CommonJS
48
+
49
+ This package is compatible also with ES or CommonJS modules, firstly this needs to be installed, like this:
50
+
51
+ ```shell
52
+ $ npm install @tsparticles/effect-filter
53
+ ```
54
+
55
+ or
56
+
57
+ ```shell
58
+ $ yarn add @tsparticles/effect-filter
59
+ ```
60
+
61
+ Then you need to import it in the app, like this:
62
+
63
+ ```javascript
64
+ const { tsParticles } = require("@tsparticles/engine");
65
+ const { loadFilterEffect } = require("@tsparticles/effect-filter");
66
+
67
+ (async () => {
68
+ await loadFilterEffect(tsParticles);
69
+ })();
70
+ ```
71
+
72
+ or
73
+
74
+ ```javascript
75
+ import { tsParticles } from "@tsparticles/engine";
76
+ import { loadFilterEffect } from "@tsparticles/effect-filter";
77
+
78
+ (async () => {
79
+ await loadFilterEffect(tsParticles);
80
+ })();
81
+ ```
82
+
83
+ ## Safari compatibility
84
+
85
+ As specified in the [MDN docs](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/filter), canvas
86
+ filter is not enabled by default in Safari (and Safari for iOS).
87
+
88
+ It can be enabled in the browser settings, so be careful with this effect if the target user could use Apple Devices.
89
+
90
+ ## Option mapping
91
+
92
+ - Effects are usually enabled through dedicated package loaders and effect-specific options.
93
+ - Package scope: `filter`
94
+ - Start from the usage snippet in this README, then merge with your main options object incrementally.
95
+
96
+ ## Common pitfalls
97
+
98
+ - Calling `tsParticles.load(...)` before `loadFilterEffect(...)`
99
+ - Verify required peer packages before enabling advanced options
100
+ - Change one option group at a time to isolate regressions quickly
101
+
102
+ ## Related docs
103
+
104
+ - All packages catalog: <https://github.com/tsparticles/tsparticles>
105
+ - Main docs: <https://particles.js.org/docs/>
@@ -0,0 +1,31 @@
1
+ import { isNull } from "@tsparticles/engine";
2
+ export class FilterDrawer {
3
+ drawAfter(data) {
4
+ const { context } = data;
5
+ context.restore();
6
+ }
7
+ drawBefore(data) {
8
+ const { context, particle } = data;
9
+ context.save();
10
+ const blurValue = typeof particle.filterBlur === "number" ? `${particle.filterBlur}px` : particle.filterBlur, brightnessValue = particle.filterBrightness, contrastValue = particle.filterContrast, dropShadowValue = particle.filterDropShadow, grayscaleValue = particle.filterGrayscale, hueRotateValue = typeof particle.filterHueRotate === "number" ? `${particle.filterHueRotate}deg` : particle.filterHueRotate, invertValue = particle.filterInvert, opacityValue = particle.filterOpacity, saturateValue = particle.filterSaturate, sepiaValue = particle.filterSepia, urlValue = particle.filterUrl, blurString = blurValue ? `blur(${blurValue})` : "", brightnessString = isNull(brightnessValue) ? "" : `brightness(${brightnessValue})`, contrastString = isNull(contrastValue) ? "" : `contrast(${contrastValue})`, dropShadowString = dropShadowValue ? `drop-shadow(${dropShadowValue})` : "", grayscaleString = isNull(grayscaleValue) ? "" : `grayscale(${grayscaleValue})`, hueRotateString = isNull(hueRotateValue) ? "" : `hue-rotate(${hueRotateValue})`, invertString = isNull(invertValue) ? "" : `invert(${invertValue})`, opacityString = isNull(opacityValue) ? "" : `opacity(${opacityValue})`, saturateString = isNull(saturateValue) ? "" : `saturate(${saturateValue})`, sepiaString = isNull(sepiaValue) ? "" : `sepia(${sepiaValue})`, urlString = urlValue ? `url(${urlValue})` : "";
11
+ context.filter =
12
+ `${blurString} ${brightnessString} ${contrastString} ${dropShadowString} ${grayscaleString} ${hueRotateString} ${invertString} ${opacityString} ${saturateString} ${sepiaString} ${urlString}`.trim();
13
+ }
14
+ particleInit(_container, particle) {
15
+ const effectData = particle.effectData;
16
+ if (!effectData) {
17
+ return;
18
+ }
19
+ particle.filterBlur = effectData.blur;
20
+ particle.filterBrightness = effectData.brightness;
21
+ particle.filterContrast = effectData.contrast;
22
+ particle.filterDropShadow = effectData.dropShadow;
23
+ particle.filterGrayscale = effectData.grayscale;
24
+ particle.filterHueRotate = effectData.hueRotate;
25
+ particle.filterInvert = effectData.invert;
26
+ particle.filterOpacity = effectData.opacity;
27
+ particle.filterSaturate = effectData.saturate;
28
+ particle.filterSepia = effectData.sepia;
29
+ particle.filterUrl = effectData.url;
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ export async function loadFilterEffect(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(e => {
4
+ e.pluginManager.addEffect("filter", async () => {
5
+ const { FilterDrawer } = await import("./FilterDrawer.js");
6
+ return new FilterDrawer();
7
+ });
8
+ });
9
+ }
@@ -0,0 +1 @@
1
+ { "type": "module" }
@@ -0,0 +1,31 @@
1
+ import { isNull } from "@tsparticles/engine";
2
+ export class FilterDrawer {
3
+ drawAfter(data) {
4
+ const { context } = data;
5
+ context.restore();
6
+ }
7
+ drawBefore(data) {
8
+ const { context, particle } = data;
9
+ context.save();
10
+ const blurValue = typeof particle.filterBlur === "number" ? `${particle.filterBlur}px` : particle.filterBlur, brightnessValue = particle.filterBrightness, contrastValue = particle.filterContrast, dropShadowValue = particle.filterDropShadow, grayscaleValue = particle.filterGrayscale, hueRotateValue = typeof particle.filterHueRotate === "number" ? `${particle.filterHueRotate}deg` : particle.filterHueRotate, invertValue = particle.filterInvert, opacityValue = particle.filterOpacity, saturateValue = particle.filterSaturate, sepiaValue = particle.filterSepia, urlValue = particle.filterUrl, blurString = blurValue ? `blur(${blurValue})` : "", brightnessString = isNull(brightnessValue) ? "" : `brightness(${brightnessValue})`, contrastString = isNull(contrastValue) ? "" : `contrast(${contrastValue})`, dropShadowString = dropShadowValue ? `drop-shadow(${dropShadowValue})` : "", grayscaleString = isNull(grayscaleValue) ? "" : `grayscale(${grayscaleValue})`, hueRotateString = isNull(hueRotateValue) ? "" : `hue-rotate(${hueRotateValue})`, invertString = isNull(invertValue) ? "" : `invert(${invertValue})`, opacityString = isNull(opacityValue) ? "" : `opacity(${opacityValue})`, saturateString = isNull(saturateValue) ? "" : `saturate(${saturateValue})`, sepiaString = isNull(sepiaValue) ? "" : `sepia(${sepiaValue})`, urlString = urlValue ? `url(${urlValue})` : "";
11
+ context.filter =
12
+ `${blurString} ${brightnessString} ${contrastString} ${dropShadowString} ${grayscaleString} ${hueRotateString} ${invertString} ${opacityString} ${saturateString} ${sepiaString} ${urlString}`.trim();
13
+ }
14
+ particleInit(_container, particle) {
15
+ const effectData = particle.effectData;
16
+ if (!effectData) {
17
+ return;
18
+ }
19
+ particle.filterBlur = effectData.blur;
20
+ particle.filterBrightness = effectData.brightness;
21
+ particle.filterContrast = effectData.contrast;
22
+ particle.filterDropShadow = effectData.dropShadow;
23
+ particle.filterGrayscale = effectData.grayscale;
24
+ particle.filterHueRotate = effectData.hueRotate;
25
+ particle.filterInvert = effectData.invert;
26
+ particle.filterOpacity = effectData.opacity;
27
+ particle.filterSaturate = effectData.saturate;
28
+ particle.filterSepia = effectData.sepia;
29
+ particle.filterUrl = effectData.url;
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/cjs/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export async function loadFilterEffect(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(e => {
4
+ e.pluginManager.addEffect("filter", async () => {
5
+ const { FilterDrawer } = await import("./FilterDrawer.js");
6
+ return new FilterDrawer();
7
+ });
8
+ });
9
+ }
@@ -0,0 +1 @@
1
+ { "type": "commonjs" }
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Author : Matteo Bruni
3
+ * MIT license: https://opensource.org/licenses/MIT
4
+ * Demo / Generator : https://particles.js.org/
5
+ * GitHub : https://www.github.com/matteobruni/tsparticles
6
+ * How to use? : Check the GitHub README
7
+ * v4.0.0-beta.10
8
+ */
9
+ "use strict";
10
+ /*
11
+ * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
12
+ * This devtool is neither made for production nor for readable output files.
13
+ * It uses "eval()" calls to create a separate source file in the browser devtools.
14
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
15
+ * or disable the default devtool with "devtool: false".
16
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
17
+ */
18
+ (this["webpackChunk_tsparticles_effect_filter"] = this["webpackChunk_tsparticles_effect_filter"] || []).push([["dist_browser_FilterDrawer_js"],{
19
+
20
+ /***/ "./dist/browser/FilterDrawer.js"
21
+ /*!**************************************!*\
22
+ !*** ./dist/browser/FilterDrawer.js ***!
23
+ \**************************************/
24
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
25
+
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FilterDrawer: () => (/* binding */ FilterDrawer)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n\nclass FilterDrawer {\n drawAfter(data) {\n const { context } = data;\n context.restore();\n }\n drawBefore(data) {\n const { context, particle } = data;\n context.save();\n const blurValue = typeof particle.filterBlur === \"number\" ? `${particle.filterBlur}px` : particle.filterBlur, brightnessValue = particle.filterBrightness, contrastValue = particle.filterContrast, dropShadowValue = particle.filterDropShadow, grayscaleValue = particle.filterGrayscale, hueRotateValue = typeof particle.filterHueRotate === \"number\" ? `${particle.filterHueRotate}deg` : particle.filterHueRotate, invertValue = particle.filterInvert, opacityValue = particle.filterOpacity, saturateValue = particle.filterSaturate, sepiaValue = particle.filterSepia, urlValue = particle.filterUrl, blurString = blurValue ? `blur(${blurValue})` : \"\", brightnessString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(brightnessValue) ? \"\" : `brightness(${brightnessValue})`, contrastString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(contrastValue) ? \"\" : `contrast(${contrastValue})`, dropShadowString = dropShadowValue ? `drop-shadow(${dropShadowValue})` : \"\", grayscaleString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(grayscaleValue) ? \"\" : `grayscale(${grayscaleValue})`, hueRotateString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(hueRotateValue) ? \"\" : `hue-rotate(${hueRotateValue})`, invertString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(invertValue) ? \"\" : `invert(${invertValue})`, opacityString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(opacityValue) ? \"\" : `opacity(${opacityValue})`, saturateString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(saturateValue) ? \"\" : `saturate(${saturateValue})`, sepiaString = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_0__.isNull)(sepiaValue) ? \"\" : `sepia(${sepiaValue})`, urlString = urlValue ? `url(${urlValue})` : \"\";\n context.filter = `${blurString} ${brightnessString} ${contrastString} ${dropShadowString} ${grayscaleString} ${hueRotateString} ${invertString} ${opacityString} ${saturateString} ${sepiaString} ${urlString}`.trim();\n }\n particleInit(_container, particle) {\n const effectData = particle.effectData;\n if (!effectData) {\n return;\n }\n particle.filterBlur = effectData.blur;\n particle.filterBrightness = effectData.brightness;\n particle.filterContrast = effectData.contrast;\n particle.filterDropShadow = effectData.dropShadow;\n particle.filterGrayscale = effectData.grayscale;\n particle.filterHueRotate = effectData.hueRotate;\n particle.filterInvert = effectData.invert;\n particle.filterOpacity = effectData.opacity;\n particle.filterSaturate = effectData.saturate;\n particle.filterSepia = effectData.sepia;\n particle.filterUrl = effectData.url;\n }\n}\n\n\n//# sourceURL=webpack://@tsparticles/effect-filter/./dist/browser/FilterDrawer.js?\n}");
27
+
28
+ /***/ }
29
+
30
+ }]);
@@ -0,0 +1,31 @@
1
+ import { isNull } from "@tsparticles/engine";
2
+ export class FilterDrawer {
3
+ drawAfter(data) {
4
+ const { context } = data;
5
+ context.restore();
6
+ }
7
+ drawBefore(data) {
8
+ const { context, particle } = data;
9
+ context.save();
10
+ const blurValue = typeof particle.filterBlur === "number" ? `${particle.filterBlur}px` : particle.filterBlur, brightnessValue = particle.filterBrightness, contrastValue = particle.filterContrast, dropShadowValue = particle.filterDropShadow, grayscaleValue = particle.filterGrayscale, hueRotateValue = typeof particle.filterHueRotate === "number" ? `${particle.filterHueRotate}deg` : particle.filterHueRotate, invertValue = particle.filterInvert, opacityValue = particle.filterOpacity, saturateValue = particle.filterSaturate, sepiaValue = particle.filterSepia, urlValue = particle.filterUrl, blurString = blurValue ? `blur(${blurValue})` : "", brightnessString = isNull(brightnessValue) ? "" : `brightness(${brightnessValue})`, contrastString = isNull(contrastValue) ? "" : `contrast(${contrastValue})`, dropShadowString = dropShadowValue ? `drop-shadow(${dropShadowValue})` : "", grayscaleString = isNull(grayscaleValue) ? "" : `grayscale(${grayscaleValue})`, hueRotateString = isNull(hueRotateValue) ? "" : `hue-rotate(${hueRotateValue})`, invertString = isNull(invertValue) ? "" : `invert(${invertValue})`, opacityString = isNull(opacityValue) ? "" : `opacity(${opacityValue})`, saturateString = isNull(saturateValue) ? "" : `saturate(${saturateValue})`, sepiaString = isNull(sepiaValue) ? "" : `sepia(${sepiaValue})`, urlString = urlValue ? `url(${urlValue})` : "";
11
+ context.filter =
12
+ `${blurString} ${brightnessString} ${contrastString} ${dropShadowString} ${grayscaleString} ${hueRotateString} ${invertString} ${opacityString} ${saturateString} ${sepiaString} ${urlString}`.trim();
13
+ }
14
+ particleInit(_container, particle) {
15
+ const effectData = particle.effectData;
16
+ if (!effectData) {
17
+ return;
18
+ }
19
+ particle.filterBlur = effectData.blur;
20
+ particle.filterBrightness = effectData.brightness;
21
+ particle.filterContrast = effectData.contrast;
22
+ particle.filterDropShadow = effectData.dropShadow;
23
+ particle.filterGrayscale = effectData.grayscale;
24
+ particle.filterHueRotate = effectData.hueRotate;
25
+ particle.filterInvert = effectData.invert;
26
+ particle.filterOpacity = effectData.opacity;
27
+ particle.filterSaturate = effectData.saturate;
28
+ particle.filterSepia = effectData.sepia;
29
+ particle.filterUrl = effectData.url;
30
+ }
31
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/esm/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export async function loadFilterEffect(engine) {
2
+ engine.checkVersion("4.0.0-beta.10");
3
+ await engine.pluginManager.register(e => {
4
+ e.pluginManager.addEffect("filter", async () => {
5
+ const { FilterDrawer } = await import("./FilterDrawer.js");
6
+ return new FilterDrawer();
7
+ });
8
+ });
9
+ }
@@ -0,0 +1 @@
1
+ { "type": "module" }
package/package.json ADDED
@@ -0,0 +1,108 @@
1
+ {
2
+ "name": "@tsparticles/effect-filter",
3
+ "version": "4.0.0-beta.10",
4
+ "description": "tsParticles filter effect",
5
+ "homepage": "https://particles.js.org",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/tsparticles/tsparticles.git",
9
+ "directory": "effects/filter"
10
+ },
11
+ "keywords": [
12
+ "front-end",
13
+ "frontend",
14
+ "tsparticles",
15
+ "particles.js",
16
+ "particlesjs",
17
+ "particles",
18
+ "particle",
19
+ "canvas",
20
+ "jsparticles",
21
+ "xparticles",
22
+ "particles-js",
23
+ "particles-bg",
24
+ "particles-bg-vue",
25
+ "particles-ts",
26
+ "particles.ts",
27
+ "react-particles-js",
28
+ "react-particles.js",
29
+ "react-particles",
30
+ "react",
31
+ "reactjs",
32
+ "vue-particles",
33
+ "ngx-particles",
34
+ "angular-particles",
35
+ "particleground",
36
+ "vue",
37
+ "vuejs",
38
+ "preact",
39
+ "preactjs",
40
+ "jquery",
41
+ "angularjs",
42
+ "angular",
43
+ "typescript",
44
+ "javascript",
45
+ "animation",
46
+ "web",
47
+ "html5",
48
+ "web-design",
49
+ "webdesign",
50
+ "css",
51
+ "html",
52
+ "css3",
53
+ "animated",
54
+ "background",
55
+ "confetti",
56
+ "canvas",
57
+ "fireworks",
58
+ "fireworks-js",
59
+ "confetti-js",
60
+ "confettijs",
61
+ "fireworksjs",
62
+ "canvas-confetti",
63
+ "tsparticles-effect"
64
+ ],
65
+ "author": "Matteo Bruni <matteo.bruni@me.com>",
66
+ "license": "MIT",
67
+ "bugs": {
68
+ "url": "https://github.com/tsparticles/tsparticles/issues"
69
+ },
70
+ "funding": [
71
+ {
72
+ "type": "github",
73
+ "url": "https://github.com/sponsors/matteobruni"
74
+ },
75
+ {
76
+ "type": "github",
77
+ "url": "https://github.com/sponsors/tsparticles"
78
+ },
79
+ {
80
+ "type": "buymeacoffee",
81
+ "url": "https://www.buymeacoffee.com/matteobruni"
82
+ }
83
+ ],
84
+ "sideEffects": false,
85
+ "jsdelivr": "tsparticles.effect.filter.min.js",
86
+ "unpkg": "tsparticles.effect.filter.min.js",
87
+ "browser": "browser/index.js",
88
+ "main": "cjs/index.js",
89
+ "module": "esm/index.js",
90
+ "types": "types/index.d.ts",
91
+ "exports": {
92
+ ".": {
93
+ "types": "./types/index.d.ts",
94
+ "browser": "./browser/index.js",
95
+ "import": "./esm/index.js",
96
+ "require": "./cjs/index.js",
97
+ "default": "./esm/index.js"
98
+ },
99
+ "./package.json": "./package.json"
100
+ },
101
+ "peerDependencies": {
102
+ "@tsparticles/engine": "4.0.0-beta.10"
103
+ },
104
+ "publishConfig": {
105
+ "access": "public"
106
+ },
107
+ "type": "module"
108
+ }