New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@tsparticles/interaction-external-attract

Package Overview
Dependencies
Maintainers
2
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tsparticles/interaction-external-attract - npm Package Compare versions

Comparing version 3.0.0-beta.3 to 3.0.0-beta.4

9

browser/Attractor.js
import { Circle, ExternalInteractorBase, Vector, clamp, getDistances, getEasing, isInArray, mouseMoveEvent, } from "@tsparticles/engine";
import { Attract } from "./Options/Classes/Attract.js";
const attractMode = "attract";
export class Attractor extends ExternalInteractorBase {

@@ -60,3 +61,3 @@ constructor(engine, container) {

const options = this.container.actualOptions, attract = options.interactivity.modes.attract;
if (!attract || mode !== "attract") {
if (!attract || mode !== attractMode) {
return;

@@ -99,6 +100,6 @@ }

const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;
if (mouseMoveStatus && hoverEnabled && isInArray("attract", hoverMode)) {
if (mouseMoveStatus && hoverEnabled && isInArray(attractMode, hoverMode)) {
this._hoverAttract();
}
else if (clickEnabled && isInArray("attract", clickMode)) {
else if (clickEnabled && isInArray(attractMode, clickMode)) {
this._clickAttract();

@@ -113,3 +114,3 @@ }

const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;
return isInArray("attract", hoverMode) || isInArray("attract", clickMode);
return isInArray(attractMode, hoverMode) || isInArray(attractMode, clickMode);
}

@@ -116,0 +117,0 @@ loadModeOptions(options, ...sources) {

@@ -6,2 +6,3 @@ "use strict";

const Attract_js_1 = require("./Options/Classes/Attract.js");
const attractMode = "attract";
class Attractor extends engine_1.ExternalInteractorBase {

@@ -64,3 +65,3 @@ constructor(engine, container) {

const options = this.container.actualOptions, attract = options.interactivity.modes.attract;
if (!attract || mode !== "attract") {
if (!attract || mode !== attractMode) {
return;

@@ -103,6 +104,6 @@ }

const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === engine_1.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;
if (mouseMoveStatus && hoverEnabled && (0, engine_1.isInArray)("attract", hoverMode)) {
if (mouseMoveStatus && hoverEnabled && (0, engine_1.isInArray)(attractMode, hoverMode)) {
this._hoverAttract();
}
else if (clickEnabled && (0, engine_1.isInArray)("attract", clickMode)) {
else if (clickEnabled && (0, engine_1.isInArray)(attractMode, clickMode)) {
this._clickAttract();

@@ -117,3 +118,3 @@ }

const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;
return (0, engine_1.isInArray)("attract", hoverMode) || (0, engine_1.isInArray)("attract", clickMode);
return (0, engine_1.isInArray)(attractMode, hoverMode) || (0, engine_1.isInArray)(attractMode, clickMode);
}

@@ -120,0 +121,0 @@ loadModeOptions(options, ...sources) {

import { Circle, ExternalInteractorBase, Vector, clamp, getDistances, getEasing, isInArray, mouseMoveEvent, } from "@tsparticles/engine";
import { Attract } from "./Options/Classes/Attract.js";
const attractMode = "attract";
export class Attractor extends ExternalInteractorBase {

@@ -60,3 +61,3 @@ constructor(engine, container) {

const options = this.container.actualOptions, attract = options.interactivity.modes.attract;
if (!attract || mode !== "attract") {
if (!attract || mode !== attractMode) {
return;

@@ -99,6 +100,6 @@ }

const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;
if (mouseMoveStatus && hoverEnabled && isInArray("attract", hoverMode)) {
if (mouseMoveStatus && hoverEnabled && isInArray(attractMode, hoverMode)) {
this._hoverAttract();
}
else if (clickEnabled && isInArray("attract", clickMode)) {
else if (clickEnabled && isInArray(attractMode, clickMode)) {
this._clickAttract();

@@ -113,3 +114,3 @@ }

const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;
return isInArray("attract", hoverMode) || isInArray("attract", clickMode);
return isInArray(attractMode, hoverMode) || isInArray(attractMode, clickMode);
}

@@ -116,0 +117,0 @@ loadModeOptions(options, ...sources) {

{
"name": "@tsparticles/interaction-external-attract",
"version": "3.0.0-beta.3",
"version": "3.0.0-beta.4",
"description": "tsParticles attract external interaction",

@@ -63,3 +63,3 @@ "homepage": "https://particles.js.org",

"canvas-confetti",
"@tsparticles/plugin",
"tsparticles-plugin",
"@tsparticles/interaction"

@@ -91,3 +91,3 @@ ],

"dependencies": {
"@tsparticles/engine": "^3.0.0-beta.3"
"@tsparticles/engine": "^3.0.0-beta.4"
},

@@ -94,0 +94,0 @@ "publishConfig": {

@@ -7,3 +7,3 @@ /*!

* How to use? : Check the GitHub README
* v3.0.0-beta.3
* v3.0.0-beta.4
*/

@@ -138,2 +138,3 @@ (function webpackUniversalModuleDefinition(root, factory) {

const attractMode = "attract";
class Attractor extends engine_root_window_.ExternalInteractorBase {

@@ -210,3 +211,3 @@ constructor(engine, container) {

attract = options.interactivity.modes.attract;
if (!attract || mode !== "attract") {
if (!attract || mode !== attractMode) {
return;

@@ -260,5 +261,5 @@ }

clickMode = events.onClick.mode;
if (mouseMoveStatus && hoverEnabled && (0,engine_root_window_.isInArray)("attract", hoverMode)) {
if (mouseMoveStatus && hoverEnabled && (0,engine_root_window_.isInArray)(attractMode, hoverMode)) {
this._hoverAttract();
} else if (clickEnabled && (0,engine_root_window_.isInArray)("attract", clickMode)) {
} else if (clickEnabled && (0,engine_root_window_.isInArray)(attractMode, clickMode)) {
this._clickAttract();

@@ -277,3 +278,3 @@ }

clickMode = events.onClick.mode;
return (0,engine_root_window_.isInArray)("attract", hoverMode) || (0,engine_root_window_.isInArray)("attract", clickMode);
return (0,engine_root_window_.isInArray)(attractMode, hoverMode) || (0,engine_root_window_.isInArray)(attractMode, clickMode);
}

@@ -280,0 +281,0 @@ loadModeOptions(options, ...sources) {

/*! For license information please see tsparticles.interaction.external.attract.min.js.LICENSE.txt */
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],e);else{var i="object"==typeof exports?e(require("@tsparticles/engine")):e(t.window);for(var a in i)("object"==typeof exports?exports:t)[a]=i[a]}}(this,(t=>(()=>{"use strict";var e={533:e=>{e.exports=t}},i={};function a(t){var r=i[t];if(void 0!==r)return r.exports;var n=i[t]={exports:{}};return e[t](n,n.exports,a),n.exports}a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};return(()=>{a.r(r),a.d(r,{Attract:()=>e,loadExternalAttractInteraction:()=>n});var t=a(533);class e{constructor(){this.distance=200,this.duration=.4,this.easing="ease-out-quad",this.factor=1,this.maxSpeed=50,this.speed=1}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed))}}class i extends t.ExternalInteractorBase{constructor(e,i){super(i),this._clickAttract=()=>{const e=this.container;e.attract||(e.attract={particles:[]});const{attract:i}=e;if(i.finish||(i.count||(i.count=0),i.count++,i.count===e.particles.count&&(i.finish=!0)),i.clicking){const i=e.interactivity.mouse.clickPosition,a=e.retina.attractModeDistance;if(!a||a<0||!i)return;this._processAttract(i,a,new t.Circle(i.x,i.y,a))}else!1===i.clicking&&(i.particles=[])},this._hoverAttract=()=>{const e=this.container,i=e.interactivity.mouse.position,a=e.retina.attractModeDistance;!a||a<0||!i||this._processAttract(i,a,new t.Circle(i.x,i.y,a))},this._processAttract=(e,i,a)=>{const r=this.container,n=r.actualOptions.interactivity.modes.attract;if(!n)return;const c=r.particles.quadTree.query(a,(t=>this.isEnabled(t)));for(const a of c){const{dx:r,dy:c,distance:o}=(0,t.getDistances)(a.position,e),s=n.speed*n.factor,d=(0,t.clamp)((0,t.getEasing)(n.easing)(1-o/i)*s,0,n.maxSpeed),l=t.Vector.create(0===o?s:r/o*d,0===o?s:c/o*d);a.position.subFrom(l)}},this._engine=e,i.attract||(i.attract={particles:[]}),this.handleClickMode=t=>{const e=this.container.actualOptions.interactivity.modes.attract;if(e&&"attract"===t){i.attract||(i.attract={particles:[]}),i.attract.clicking=!0,i.attract.count=0;for(const t of i.attract.particles)this.isEnabled(t)&&t.velocity.setTo(t.initialVelocity);i.attract.particles=[],i.attract.finish=!1,setTimeout((()=>{i.destroyed||(i.attract||(i.attract={particles:[]}),i.attract.clicking=!1)}),1e3*e.duration)}}}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.attract;e&&(t.retina.attractModeDistance=e.distance*t.retina.pixelRatio)}async interact(){const e=this.container,i=e.actualOptions,a=e.interactivity.status===t.mouseMoveEvent,r=i.interactivity.events,n=r.onHover.enable,c=r.onHover.mode,o=r.onClick.enable,s=r.onClick.mode;a&&n&&(0,t.isInArray)("attract",c)?this._hoverAttract():o&&(0,t.isInArray)("attract",s)&&this._clickAttract()}isEnabled(e){const i=this.container,a=i.actualOptions,r=i.interactivity.mouse,n=(e?.interactivity??a.interactivity).events;if(!(r.position&&n.onHover.enable||r.clickPosition&&n.onClick.enable))return!1;const c=n.onHover.mode,o=n.onClick.mode;return(0,t.isInArray)("attract",c)||(0,t.isInArray)("attract",o)}loadModeOptions(t,...i){t.attract||(t.attract=new e);for(const e of i)t.attract.load(e?.attract)}reset(){}}async function n(t,e=!0){await t.addInteractor("externalAttract",(e=>new i(t,e)),e)}})(),r})()));
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],e);else{var i="object"==typeof exports?e(require("@tsparticles/engine")):e(t.window);for(var a in i)("object"==typeof exports?exports:t)[a]=i[a]}}(this,(t=>(()=>{"use strict";var e={533:e=>{e.exports=t}},i={};function a(t){var r=i[t];if(void 0!==r)return r.exports;var n=i[t]={exports:{}};return e[t](n,n.exports,a),n.exports}a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};return(()=>{a.r(r),a.d(r,{Attract:()=>e,loadExternalAttractInteraction:()=>o});var t=a(533);class e{constructor(){this.distance=200,this.duration=.4,this.easing="ease-out-quad",this.factor=1,this.maxSpeed=50,this.speed=1}load(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed))}}const i="attract";class n extends t.ExternalInteractorBase{constructor(e,a){super(a),this._clickAttract=()=>{const e=this.container;e.attract||(e.attract={particles:[]});const{attract:i}=e;if(i.finish||(i.count||(i.count=0),i.count++,i.count===e.particles.count&&(i.finish=!0)),i.clicking){const i=e.interactivity.mouse.clickPosition,a=e.retina.attractModeDistance;if(!a||a<0||!i)return;this._processAttract(i,a,new t.Circle(i.x,i.y,a))}else!1===i.clicking&&(i.particles=[])},this._hoverAttract=()=>{const e=this.container,i=e.interactivity.mouse.position,a=e.retina.attractModeDistance;!a||a<0||!i||this._processAttract(i,a,new t.Circle(i.x,i.y,a))},this._processAttract=(e,i,a)=>{const r=this.container,n=r.actualOptions.interactivity.modes.attract;if(!n)return;const o=r.particles.quadTree.query(a,(t=>this.isEnabled(t)));for(const a of o){const{dx:r,dy:o,distance:c}=(0,t.getDistances)(a.position,e),s=n.speed*n.factor,d=(0,t.clamp)((0,t.getEasing)(n.easing)(1-c/i)*s,0,n.maxSpeed),l=t.Vector.create(0===c?s:r/c*d,0===c?s:o/c*d);a.position.subFrom(l)}},this._engine=e,a.attract||(a.attract={particles:[]}),this.handleClickMode=t=>{const e=this.container.actualOptions.interactivity.modes.attract;if(e&&t===i){a.attract||(a.attract={particles:[]}),a.attract.clicking=!0,a.attract.count=0;for(const t of a.attract.particles)this.isEnabled(t)&&t.velocity.setTo(t.initialVelocity);a.attract.particles=[],a.attract.finish=!1,setTimeout((()=>{a.destroyed||(a.attract||(a.attract={particles:[]}),a.attract.clicking=!1)}),1e3*e.duration)}}}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.attract;e&&(t.retina.attractModeDistance=e.distance*t.retina.pixelRatio)}async interact(){const e=this.container,a=e.actualOptions,r=e.interactivity.status===t.mouseMoveEvent,n=a.interactivity.events,o=n.onHover.enable,c=n.onHover.mode,s=n.onClick.enable,d=n.onClick.mode;r&&o&&(0,t.isInArray)(i,c)?this._hoverAttract():s&&(0,t.isInArray)(i,d)&&this._clickAttract()}isEnabled(e){const a=this.container,r=a.actualOptions,n=a.interactivity.mouse,o=(e?.interactivity??r.interactivity).events;if(!(n.position&&o.onHover.enable||n.clickPosition&&o.onClick.enable))return!1;const c=o.onHover.mode,s=o.onClick.mode;return(0,t.isInArray)(i,c)||(0,t.isInArray)(i,s)}loadModeOptions(t,...i){t.attract||(t.attract=new e);for(const e of i)t.attract.load(e?.attract)}reset(){}}async function o(t,e=!0){await t.addInteractor("externalAttract",(e=>new n(t,e)),e)}})(),r})()));

@@ -1,1 +0,1 @@

/*! tsParticles Attract External Interaction v3.0.0-beta.3 by Matteo Bruni */
/*! tsParticles Attract External Interaction v3.0.0-beta.4 by Matteo Bruni */

@@ -15,2 +15,3 @@ (function (factory) {

const Attract_js_1 = require("./Options/Classes/Attract.js");
const attractMode = "attract";
class Attractor extends engine_1.ExternalInteractorBase {

@@ -73,3 +74,3 @@ constructor(engine, container) {

const options = this.container.actualOptions, attract = options.interactivity.modes.attract;
if (!attract || mode !== "attract") {
if (!attract || mode !== attractMode) {
return;

@@ -112,6 +113,6 @@ }

const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === engine_1.mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;
if (mouseMoveStatus && hoverEnabled && (0, engine_1.isInArray)("attract", hoverMode)) {
if (mouseMoveStatus && hoverEnabled && (0, engine_1.isInArray)(attractMode, hoverMode)) {
this._hoverAttract();
}
else if (clickEnabled && (0, engine_1.isInArray)("attract", clickMode)) {
else if (clickEnabled && (0, engine_1.isInArray)(attractMode, clickMode)) {
this._clickAttract();

@@ -126,3 +127,3 @@ }

const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;
return (0, engine_1.isInArray)("attract", hoverMode) || (0, engine_1.isInArray)("attract", clickMode);
return (0, engine_1.isInArray)(attractMode, hoverMode) || (0, engine_1.isInArray)(attractMode, clickMode);
}

@@ -129,0 +130,0 @@ loadModeOptions(options, ...sources) {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc