@tsparticles/plugin-absorbers 4.0.0-alpha.24 → 4.0.0-alpha.26

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.
@@ -1 +1 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[295],{295(i,s,t){t.r(s),t.d(s,{AbsorbersPlugin:()=>a});var o=t(303),e=t(725);class a{id="absorbers";_instancesManager;constructor(i){this._instancesManager=i}async getPlugin(i){let{AbsorbersPluginInstance:s}=await t.e(776).then(t.bind(t,776));return new s(i,this._instancesManager)}loadOptions(i,s,t){(this.needsPlugin(s)||this.needsPlugin(t))&&t?.absorbers&&(s.absorbers=(0,o.executeOnSingleOrMultiple)(t.absorbers,i=>{let s=new e.h;return s.load(i),s}))}needsPlugin(i){if(!i)return!1;let s=i.absorbers;return(0,o.isArray)(s)?!!s.length:!!s}}},725(i,s,t){t.d(s,{h:()=>l});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class l{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[355],{355(i,s,t){t.r(s),t.d(s,{AbsorbersPlugin:()=>a});var o=t(303),e=t(667);class a{id="absorbers";_instancesManager;constructor(i){this._instancesManager=i}async getPlugin(i){let{AbsorbersPluginInstance:s}=await t.e(404).then(t.bind(t,404));return new s(i,this._instancesManager)}loadOptions(i,s,t){(this.needsPlugin(s)||this.needsPlugin(t))&&t?.absorbers&&(s.absorbers=(0,o.executeOnSingleOrMultiple)(t.absorbers,i=>{let s=new e.h;return s.load(i),s}))}needsPlugin(i){if(!i)return!1;let s=i.absorbers;return(0,o.isArray)(s)?!!s.length:!!s}}},667(i,s,t){t.d(s,{h:()=>l});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class l{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
@@ -1 +1 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[776],{776(a,t,s){s.d(t,{AbsorbersPluginInstance:()=>n});var e=s(303);class n{_container;_instancesManager;constructor(a,t){this._container=a,this._instancesManager=t,this._instancesManager.initContainer(a)}draw(a){for(let t of this._instancesManager.getArray(this._container))t.draw(a)}async init(){let a=this._container.actualOptions.absorbers,t=(0,e.executeOnSingleOrMultiple)(a,async a=>{await this._instancesManager.addAbsorber(this._container,a)});(0,e.isArray)(t)?await Promise.all(t):await t}particleUpdate(a,t){for(let s of this._instancesManager.getArray(this._container))if(s.attract(a,t),a.destroyed)break}resize(){for(let a of this._instancesManager.getArray(this._container))a.resize()}stop(){this._instancesManager.clear(this._container)}}}}]);
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[404],{404(a,t,s){s.d(t,{AbsorbersPluginInstance:()=>n});var e=s(303);class n{_container;_instancesManager;constructor(a,t){this._container=a,this._instancesManager=t,this._instancesManager.initContainer(a)}draw(a){for(let t of this._instancesManager.getArray(this._container))t.draw(a)}async init(){let a=this._container.actualOptions.absorbers,t=(0,e.executeOnSingleOrMultiple)(a,async a=>{await this._instancesManager.addAbsorber(this._container,a)});(0,e.isArray)(t)?await Promise.all(t):await t}particleUpdate(a,t){for(let s of this._instancesManager.getArray(this._container))if(s.attract(a,t),a.destroyed)break}resize(){for(let a of this._instancesManager.getArray(this._container))a.resize()}stop(){this._instancesManager.clear(this._container)}}}}]);
package/675.min.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[675],{675(i,s,t){t.d(s,{AbsorbersInteractor:()=>n});var o=t(702),e=t(303),a=t(667);let r="absorbers";class n extends o.ExternalInteractorBase{handleClickMode;maxDistance;_dragging=!1;_draggingAbsorber;_instancesManager;constructor(i,s){super(i),this.maxDistance=0,this._instancesManager=s,this._instancesManager.initContainer(i),this.handleClickMode=(i,t)=>{let o=this.container,n=o.actualOptions.interactivity.modes.absorbers;if(!n||i!==r)return;let{clickPosition:l}=t.mouse;if(l&&s.getArray(this.container).some(i=>(0,e.getDistance)(i.position,l)<i.size))return;let d=(0,e.itemFromArray)(n)??new a.h;this._instancesManager.addAbsorber(o,d,l)}}clear(){}init(){}interact(i,s){for(let t of this.container.particles.filter(s=>this.isEnabled(i,s)))for(let o of this._instancesManager.getArray(this.container)){if(o.options.draggable){let s=i.mouse;s.clicking&&s.downPosition?(0,e.getDistance)(o.position,s.downPosition)<=o.size&&(this._dragging=!0,this._draggingAbsorber=o):(this._dragging=!1,this._draggingAbsorber=void 0),this._dragging&&this._draggingAbsorber==o&&s.position&&(o.position.x=s.position.x,o.position.y=s.position.y)}if(o.attract(t,s),t.destroyed)break}}isEnabled(i,s){let t=this.container.actualOptions,o=i.mouse,a=(s?.interactivity??t.interactivity).events;return!!o.clickPosition&&!!a.onClick.enable&&(0,e.isInArray)(r,a.onClick.mode)}loadModeOptions(i,...s){for(let t of(i.absorbers??=[],s))if(t)if((0,e.isArray)(t.absorbers))for(let s of t.absorbers){let t=new a.h;t.load(s),i.absorbers.push(t)}else{let s=new a.h;s.load(t.absorbers),i.absorbers.push(s)}}reset(){}}},667(i,s,t){t.d(s,{h:()=>n});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class n{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
@@ -1 +1 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[830],{830(i,t,s){s.d(t,{AbsorberInstance:()=>n});var o=s(303),e=s(725);let a=o.doublePI;class n{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_engine;_firstSpawn;_immortal;_lifeCount;_spawnDelay;initialPosition;constructor(i,t,s,a){this._container=t,this._engine=i,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=a?o.Vector.create(a.x,a.y):void 0,s instanceof e.h?this.options=s:(this.options=new e.h,this.options.load(s)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=(0,o.getRangeValue)(this.options.size.value)*t.retina.pixelRatio,this.mass=this.size*this.options.size.density*t.retina.reduceFactor;const n=this.options.size.limit;this.limit={radius:n.radius*t.retina.pixelRatio*t.retina.reduceFactor,mass:n.mass},this.color=(0,o.rangeColorToRgb)(this._engine,this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition(),this._firstSpawn=!this.options.life.wait,this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this._spawnDelay=t.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/t.retina.reduceFactor:1/0}attract(i,t){let s=this._container,e=this.options,a=i.getPosition(),{dx:n,dy:r,distance:l}=(0,o.getDistances)(this.position,a),h=o.Vector.create(n,r);if(h.length=this.mass/Math.pow(l,2)*s.retina.reduceFactor,l<this.size+i.getRadius()){let o=.033*i.getRadius()*s.retina.pixelRatio*t.factor;this.size>i.getRadius()&&l<this.size-i.getRadius()||void 0!==i.absorberOrbit&&i.absorberOrbit.length<0?e.destroy?i.destroy():(i.needsNewPosition=!0,this._updateParticlePosition(i,h)):(e.destroy&&(i.size.value-=o),this._updateParticlePosition(i,h)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=o),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=o*this.options.size.density*s.retina.reduceFactor)}else this._updateParticlePosition(i,h)}draw(i){i.translate(this.position.x,this.position.y),i.beginPath(),i.arc(o.originPoint.x,o.originPoint.y,this.size,0,a,!1),i.closePath(),i.fillStyle=(0,o.getStyleFromRgb)(this.color,this._container.hdr,this.opacity),i.fill()}resize(){let i=this.initialPosition;this.position=i&&(0,o.isPointInside)(i,this._container.canvas.size,o.Vector.origin)?i:this._calcPosition()}update(i){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=i.value,this._currentDuration>=this._duration&&(!this._immortal&&this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=i.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{let i=(0,o.calcPositionOrRandomFromSizeRanged)({size:this._container.canvas.size,position:this.options.position});return o.Vector.create(i.x,i.y)};_prepareToDie=()=>{let i=void 0!==this.options.life.duration?(0,o.getRangeValue)(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==i&&i>0&&(this._duration=i*o.millisecondsToSeconds)};_updateParticlePosition=(i,t)=>{if(i.destroyed)return;let s=this._container,e=s.canvas.size;if(i.needsNewPosition){let t=(0,o.calcPositionOrRandomFromSize)({size:e});i.position.setTo(t),i.velocity.setTo(i.initialVelocity),i.absorberOrbit=void 0,i.needsNewPosition=!1}if(this.options.orbits){if(void 0===i.absorberOrbit&&(i.absorberOrbit=o.Vector.origin,i.absorberOrbit.length=(0,o.getDistance)(i.getPosition(),this.position),i.absorberOrbit.angle=(0,o.getRandom)()*a),i.absorberOrbit.length<=this.size&&!this.options.destroy){let t=Math.min(e.width,e.height);i.absorberOrbit.length=t*(1+(.2*(0,o.getRandom)()-.1))}i.absorberOrbitDirection??=i.velocity.x>=0?o.RotateDirection.clockwise:o.RotateDirection.counterClockwise;let n=i.absorberOrbit.length,r=i.absorberOrbit.angle,l=i.absorberOrbitDirection;i.velocity.setTo(o.Vector.origin);let h={x:l===o.RotateDirection.clockwise?Math.cos:Math.sin,y:l===o.RotateDirection.clockwise?Math.sin:Math.cos};i.position.x=this.position.x+n*h.x(r),i.position.y=this.position.y+n*h.y(r),i.absorberOrbit.length-=t.length,i.absorberOrbit.angle+=(i.retina.moveSpeed??0)*s.retina.pixelRatio/o.percentDenominator*s.retina.reduceFactor}else{let s=o.Vector.origin;s.length=t.length,s.angle=t.angle,i.velocity.addTo(s)}};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}},725(i,t,s){s.d(t,{h:()=>r});var o=s(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class n extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class r{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new n}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[698],{698(i,t,s){s.d(t,{AbsorberInstance:()=>n});var o=s(303),e=s(667);let a=o.doublePI;class n{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_engine;_firstSpawn;_immortal;_lifeCount;_spawnDelay;initialPosition;constructor(i,t,s,a){this._container=t,this._engine=i,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=a?o.Vector.create(a.x,a.y):void 0,s instanceof e.h?this.options=s:(this.options=new e.h,this.options.load(s)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=(0,o.getRangeValue)(this.options.size.value)*t.retina.pixelRatio,this.mass=this.size*this.options.size.density*t.retina.reduceFactor;const n=this.options.size.limit;this.limit={radius:n.radius*t.retina.pixelRatio*t.retina.reduceFactor,mass:n.mass},this.color=(0,o.rangeColorToRgb)(this._engine,this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition(),this._firstSpawn=!this.options.life.wait,this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this._spawnDelay=t.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/t.retina.reduceFactor:1/0}attract(i,t){let s=this._container,e=this.options,a=i.getPosition(),{dx:n,dy:r,distance:l}=(0,o.getDistances)(this.position,a),h=o.Vector.create(n,r);if(h.length=this.mass/Math.pow(l,2)*s.retina.reduceFactor,l<this.size+i.getRadius()){let o=.033*i.getRadius()*s.retina.pixelRatio*t.factor;this.size>i.getRadius()&&l<this.size-i.getRadius()||void 0!==i.absorberOrbit&&i.absorberOrbit.length<0?e.destroy?i.destroy():(i.needsNewPosition=!0,this._updateParticlePosition(i,h)):(e.destroy&&(i.size.value-=o),this._updateParticlePosition(i,h)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=o),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=o*this.options.size.density*s.retina.reduceFactor)}else this._updateParticlePosition(i,h)}draw(i){i.translate(this.position.x,this.position.y),i.beginPath(),i.arc(o.originPoint.x,o.originPoint.y,this.size,0,a,!1),i.closePath(),i.fillStyle=(0,o.getStyleFromRgb)(this.color,this._container.hdr,this.opacity),i.fill()}resize(){let i=this.initialPosition;this.position=i&&(0,o.isPointInside)(i,this._container.canvas.size,o.Vector.origin)?i:this._calcPosition()}update(i){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=i.value,this._currentDuration>=this._duration&&(!this._immortal&&this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?(0,o.getRangeValue)(this.options.life.delay??0)*o.millisecondsToSeconds/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=i.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{let i=(0,o.calcPositionOrRandomFromSizeRanged)({size:this._container.canvas.size,position:this.options.position});return o.Vector.create(i.x,i.y)};_prepareToDie=()=>{let i=void 0!==this.options.life.duration?(0,o.getRangeValue)(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==i&&i>0&&(this._duration=i*o.millisecondsToSeconds)};_updateParticlePosition=(i,t)=>{if(i.destroyed)return;let s=this._container,e=s.canvas.size;if(i.needsNewPosition){let t=(0,o.calcPositionOrRandomFromSize)({size:e});i.position.setTo(t),i.velocity.setTo(i.initialVelocity),i.absorberOrbit=void 0,i.needsNewPosition=!1}if(this.options.orbits){if(void 0===i.absorberOrbit&&(i.absorberOrbit=o.Vector.origin,i.absorberOrbit.length=(0,o.getDistance)(i.getPosition(),this.position),i.absorberOrbit.angle=(0,o.getRandom)()*a),i.absorberOrbit.length<=this.size&&!this.options.destroy){let t=Math.min(e.width,e.height);i.absorberOrbit.length=t*(1+(.2*(0,o.getRandom)()-.1))}i.absorberOrbitDirection??=i.velocity.x>=0?o.RotateDirection.clockwise:o.RotateDirection.counterClockwise;let n=i.absorberOrbit.length,r=i.absorberOrbit.angle,l=i.absorberOrbitDirection;i.velocity.setTo(o.Vector.origin);let h={x:l===o.RotateDirection.clockwise?Math.cos:Math.sin,y:l===o.RotateDirection.clockwise?Math.sin:Math.cos};i.position.x=this.position.x+n*h.x(r),i.position.y=this.position.y+n*h.y(r),i.absorberOrbit.length-=t.length,i.absorberOrbit.angle+=(i.retina.moveSpeed??0)*s.retina.pixelRatio/o.percentDenominator*s.retina.reduceFactor}else{let s=o.Vector.origin;s.length=t.length,s.angle=t.angle,i.velocity.addTo(s)}};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}},667(i,t,s){s.d(t,{h:()=>r});var o=s(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class n extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class r{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new n}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);
@@ -1 +1 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[991],{991(r,e,t){t.r(e),t.d(e,{AbsorbersInstancesManager:()=>i});var s=t(303);class i{_containerArrays;_engine;constructor(r){this._containerArrays=new Map,this._engine=r}async addAbsorber(r,e,s){let{AbsorberInstance:i}=await t.e(830).then(t.bind(t,830)),n=new i(this._engine,r,e,s);return this.getArray(r).push(n),n}clear(r){this.initContainer(r),this._containerArrays.set(r,[])}getArray(r){this.initContainer(r);let e=this._containerArrays.get(r);return e||(e=[],this._containerArrays.set(r,e)),e}initContainer(r){this._containerArrays.has(r)||(this._containerArrays.set(r,[]),r.getAbsorber??=e=>{let t=this.getArray(r);return void 0===e||(0,s.isNumber)(e)?t[e??0]:t.find(r=>r.name===e)},r.addAbsorber??=(e,t)=>this.addAbsorber(r,e,t))}removeAbsorber(r,e){let t=this.getArray(r).indexOf(e);t>=0&&this.getArray(r).splice(t,1)}}}}]);
1
+ "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[939],{939(r,e,t){t.r(e),t.d(e,{AbsorbersInstancesManager:()=>i});var s=t(303);class i{_containerArrays;_engine;constructor(r){this._containerArrays=new Map,this._engine=r}async addAbsorber(r,e,s){let{AbsorberInstance:i}=await t.e(698).then(t.bind(t,698)),n=new i(this._engine,r,e,s);return this.getArray(r).push(n),n}clear(r){this.initContainer(r),this._containerArrays.set(r,[])}getArray(r){this.initContainer(r);let e=this._containerArrays.get(r);return e||(e=[],this._containerArrays.set(r,e)),e}initContainer(r){this._containerArrays.has(r)||(this._containerArrays.set(r,[]),r.getAbsorber??=e=>{let t=this.getArray(r);return void 0===e||(0,s.isNumber)(e)?t[e??0]:t.find(r=>r.name===e)},r.addAbsorber??=(e,t)=>this.addAbsorber(r,e,t))}removeAbsorber(r,e){let t=this.getArray(r).indexOf(e);t>=0&&this.getArray(r).splice(t,1)}}}}]);
@@ -4,11 +4,13 @@ import { Absorber } from "./Options/Classes/Absorber.js";
4
4
  const absorbersMode = "absorbers";
5
5
  export class AbsorbersInteractor extends ExternalInteractorBase {
6
6
  handleClickMode;
7
+ maxDistance;
8
+ _dragging = false;
9
+ _draggingAbsorber;
7
10
  _instancesManager;
8
- dragging = false;
9
- draggingAbsorber;
10
11
  constructor(container, instancesManager) {
11
12
  super(container);
13
+ this.maxDistance = 0;
12
14
  this._instancesManager = instancesManager;
13
15
  this._instancesManager.initContainer(container);
14
16
  this.handleClickMode = (mode, interactivityData) => {
@@ -41,15 +43,15 @@ export class AbsorbersInteractor extends ExternalInteractorBase {
41
43
  if (mouse.clicking && mouse.downPosition) {
42
44
  const mouseDist = getDistance(absorber.position, mouse.downPosition);
43
45
  if (mouseDist <= absorber.size) {
44
- this.dragging = true;
45
- this.draggingAbsorber = absorber;
46
+ this._dragging = true;
47
+ this._draggingAbsorber = absorber;
46
48
  }
47
49
  }
48
50
  else {
49
- this.dragging = false;
50
- this.draggingAbsorber = undefined;
51
+ this._dragging = false;
52
+ this._draggingAbsorber = undefined;
51
53
  }
52
- if (this.dragging && this.draggingAbsorber == absorber && mouse.position) {
54
+ if (this._dragging && this._draggingAbsorber == absorber && mouse.position) {
53
55
  absorber.position.x = mouse.position.x;
54
56
  absorber.position.y = mouse.position.y;
55
57
  }
package/browser/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersPlugin(engine) {
2
- engine.checkVersion("4.0.0-alpha.24");
2
+ engine.checkVersion("4.0.0-alpha.26");
3
3
  await engine.register(async (e) => {
4
4
  const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
5
  import("@tsparticles/plugin-interactivity"),
@@ -4,11 +4,13 @@ import { Absorber } from "./Options/Classes/Absorber.js";
4
4
  const absorbersMode = "absorbers";
5
5
  export class AbsorbersInteractor extends ExternalInteractorBase {
6
6
  handleClickMode;
7
+ maxDistance;
8
+ _dragging = false;
9
+ _draggingAbsorber;
7
10
  _instancesManager;
8
- dragging = false;
9
- draggingAbsorber;
10
11
  constructor(container, instancesManager) {
11
12
  super(container);
13
+ this.maxDistance = 0;
12
14
  this._instancesManager = instancesManager;
13
15
  this._instancesManager.initContainer(container);
14
16
  this.handleClickMode = (mode, interactivityData) => {
@@ -41,15 +43,15 @@ export class AbsorbersInteractor extends ExternalInteractorBase {
41
43
  if (mouse.clicking && mouse.downPosition) {
42
44
  const mouseDist = getDistance(absorber.position, mouse.downPosition);
43
45
  if (mouseDist <= absorber.size) {
44
- this.dragging = true;
45
- this.draggingAbsorber = absorber;
46
+ this._dragging = true;
47
+ this._draggingAbsorber = absorber;
46
48
  }
47
49
  }
48
50
  else {
49
- this.dragging = false;
50
- this.draggingAbsorber = undefined;
51
+ this._dragging = false;
52
+ this._draggingAbsorber = undefined;
51
53
  }
52
- if (this.dragging && this.draggingAbsorber == absorber && mouse.position) {
54
+ if (this._dragging && this._draggingAbsorber == absorber && mouse.position) {
53
55
  absorber.position.x = mouse.position.x;
54
56
  absorber.position.y = mouse.position.y;
55
57
  }
package/cjs/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersPlugin(engine) {
2
- engine.checkVersion("4.0.0-alpha.24");
2
+ engine.checkVersion("4.0.0-alpha.26");
3
3
  await engine.register(async (e) => {
4
4
  const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
5
  import("@tsparticles/plugin-interactivity"),
@@ -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-alpha.24
7
+ * v4.0.0-alpha.26
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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-alpha.24
7
+ * v4.0.0-alpha.26
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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-alpha.24
7
+ * v4.0.0-alpha.26
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 */ AbsorbersInteractor: () => (/* binding */ AbsorbersInteractor)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"./dist/browser/Options/Classes/Absorber.js\");\n\n\n\nconst absorbersMode = \"absorbers\";\nclass AbsorbersInteractor extends _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__.ExternalInteractorBase {\n handleClickMode;\n _instancesManager;\n dragging = false;\n draggingAbsorber;\n constructor(container, instancesManager){\n super(container);\n this._instancesManager = instancesManager;\n this._instancesManager.initContainer(container);\n this.handleClickMode = (mode, interactivityData)=>{\n const container = this.container, options = container.actualOptions, absorbers = options.interactivity.modes.absorbers;\n if (!absorbers || mode !== absorbersMode) {\n return;\n }\n const { clickPosition } = interactivityData.mouse;\n if (clickPosition) {\n const existingAbsorber = instancesManager.getArray(this.container).some((t)=>(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(t.position, clickPosition) < t.size);\n if (existingAbsorber) {\n return;\n }\n }\n const absorbersModeOptions = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(absorbers) ?? new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n void this._instancesManager.addAbsorber(container, absorbersModeOptions, clickPosition);\n };\n }\n clear() {}\n init() {}\n interact(interactivityData, delta) {\n for (const particle of this.container.particles.filter((p)=>this.isEnabled(interactivityData, p))){\n for (const absorber of this._instancesManager.getArray(this.container)){\n if (absorber.options.draggable) {\n const mouse = interactivityData.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(absorber.position, mouse.downPosition);\n if (mouseDist <= absorber.size) {\n this.dragging = true;\n this.draggingAbsorber = absorber;\n }\n } else {\n this.dragging = false;\n this.draggingAbsorber = undefined;\n }\n if (this.dragging && this.draggingAbsorber == absorber && mouse.position) {\n absorber.position.x = mouse.position.x;\n absorber.position.y = mouse.position.y;\n }\n }\n absorber.attract(particle, delta);\n if (particle.destroyed) {\n break;\n }\n }\n }\n }\n isEnabled(interactivityData, particle) {\n const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity).events;\n if (!mouse.clickPosition || !events.onClick.enable) {\n return false;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isInArray)(absorbersMode, events.onClick.mode);\n }\n loadModeOptions(options, ...sources) {\n options.absorbers ??= [];\n for (const source of sources){\n if (!source) {\n continue;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isArray)(source.absorbers)) {\n for (const absorber of source.absorbers){\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n tmp.load(absorber);\n options.absorbers.push(tmp);\n }\n } else {\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n tmp.load(source.absorbers);\n options.absorbers.push(tmp);\n }\n }\n }\n reset() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/AbsorbersInteractor.js?\n}");
26
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AbsorbersInteractor: () => (/* binding */ AbsorbersInteractor)\n/* harmony export */ });\n/* harmony import */ var _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\");\n/* harmony import */ var _tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @tsparticles/engine */ \"@tsparticles/engine\");\n/* harmony import */ var _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Options/Classes/Absorber.js */ \"./dist/browser/Options/Classes/Absorber.js\");\n\n\n\nconst absorbersMode = \"absorbers\";\nclass AbsorbersInteractor extends _tsparticles_plugin_interactivity__WEBPACK_IMPORTED_MODULE_0__.ExternalInteractorBase {\n handleClickMode;\n maxDistance;\n _dragging = false;\n _draggingAbsorber;\n _instancesManager;\n constructor(container, instancesManager){\n super(container);\n this.maxDistance = 0;\n this._instancesManager = instancesManager;\n this._instancesManager.initContainer(container);\n this.handleClickMode = (mode, interactivityData)=>{\n const container = this.container, options = container.actualOptions, absorbers = options.interactivity.modes.absorbers;\n if (!absorbers || mode !== absorbersMode) {\n return;\n }\n const { clickPosition } = interactivityData.mouse;\n if (clickPosition) {\n const existingAbsorber = instancesManager.getArray(this.container).some((t)=>(0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(t.position, clickPosition) < t.size);\n if (existingAbsorber) {\n return;\n }\n }\n const absorbersModeOptions = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.itemFromArray)(absorbers) ?? new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n void this._instancesManager.addAbsorber(container, absorbersModeOptions, clickPosition);\n };\n }\n clear() {}\n init() {}\n interact(interactivityData, delta) {\n for (const particle of this.container.particles.filter((p)=>this.isEnabled(interactivityData, p))){\n for (const absorber of this._instancesManager.getArray(this.container)){\n if (absorber.options.draggable) {\n const mouse = interactivityData.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.getDistance)(absorber.position, mouse.downPosition);\n if (mouseDist <= absorber.size) {\n this._dragging = true;\n this._draggingAbsorber = absorber;\n }\n } else {\n this._dragging = false;\n this._draggingAbsorber = undefined;\n }\n if (this._dragging && this._draggingAbsorber == absorber && mouse.position) {\n absorber.position.x = mouse.position.x;\n absorber.position.y = mouse.position.y;\n }\n }\n absorber.attract(particle, delta);\n if (particle.destroyed) {\n break;\n }\n }\n }\n }\n isEnabled(interactivityData, particle) {\n const container = this.container, options = container.actualOptions, mouse = interactivityData.mouse, events = (particle?.interactivity ?? options.interactivity).events;\n if (!mouse.clickPosition || !events.onClick.enable) {\n return false;\n }\n return (0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isInArray)(absorbersMode, events.onClick.mode);\n }\n loadModeOptions(options, ...sources) {\n options.absorbers ??= [];\n for (const source of sources){\n if (!source) {\n continue;\n }\n if ((0,_tsparticles_engine__WEBPACK_IMPORTED_MODULE_1__.isArray)(source.absorbers)) {\n for (const absorber of source.absorbers){\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n tmp.load(absorber);\n options.absorbers.push(tmp);\n }\n } else {\n const tmp = new _Options_Classes_Absorber_js__WEBPACK_IMPORTED_MODULE_2__.Absorber();\n tmp.load(source.absorbers);\n options.absorbers.push(tmp);\n }\n }\n }\n reset() {}\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/AbsorbersInteractor.js?\n}");
27
27
 
28
28
  /***/ },
29
29
 
@@ -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-alpha.24
7
+ * v4.0.0-alpha.26
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -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-alpha.24
7
+ * v4.0.0-alpha.26
8
8
  */
9
9
  "use strict";
10
10
  /*
@@ -4,11 +4,13 @@ import { Absorber } from "./Options/Classes/Absorber.js";
4
4
  const absorbersMode = "absorbers";
5
5
  export class AbsorbersInteractor extends ExternalInteractorBase {
6
6
  handleClickMode;
7
+ maxDistance;
8
+ _dragging = false;
9
+ _draggingAbsorber;
7
10
  _instancesManager;
8
- dragging = false;
9
- draggingAbsorber;
10
11
  constructor(container, instancesManager) {
11
12
  super(container);
13
+ this.maxDistance = 0;
12
14
  this._instancesManager = instancesManager;
13
15
  this._instancesManager.initContainer(container);
14
16
  this.handleClickMode = (mode, interactivityData) => {
@@ -41,15 +43,15 @@ export class AbsorbersInteractor extends ExternalInteractorBase {
41
43
  if (mouse.clicking && mouse.downPosition) {
42
44
  const mouseDist = getDistance(absorber.position, mouse.downPosition);
43
45
  if (mouseDist <= absorber.size) {
44
- this.dragging = true;
45
- this.draggingAbsorber = absorber;
46
+ this._dragging = true;
47
+ this._draggingAbsorber = absorber;
46
48
  }
47
49
  }
48
50
  else {
49
- this.dragging = false;
50
- this.draggingAbsorber = undefined;
51
+ this._dragging = false;
52
+ this._draggingAbsorber = undefined;
51
53
  }
52
- if (this.dragging && this.draggingAbsorber == absorber && mouse.position) {
54
+ if (this._dragging && this._draggingAbsorber == absorber && mouse.position) {
53
55
  absorber.position.x = mouse.position.x;
54
56
  absorber.position.y = mouse.position.y;
55
57
  }
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export async function loadAbsorbersPlugin(engine) {
2
- engine.checkVersion("4.0.0-alpha.24");
2
+ engine.checkVersion("4.0.0-alpha.26");
3
3
  await engine.register(async (e) => {
4
4
  const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
5
5
  import("@tsparticles/plugin-interactivity"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsparticles/plugin-absorbers",
3
- "version": "4.0.0-alpha.24",
3
+ "version": "4.0.0-alpha.26",
4
4
  "description": "tsParticles absorbers plugin",
5
5
  "homepage": "https://particles.js.org",
6
6
  "repository": {
@@ -86,8 +86,8 @@
86
86
  "./package.json": "./package.json"
87
87
  },
88
88
  "dependencies": {
89
- "@tsparticles/engine": "4.0.0-alpha.24",
90
- "@tsparticles/plugin-interactivity": "4.0.0-alpha.24"
89
+ "@tsparticles/engine": "4.0.0-alpha.26",
90
+ "@tsparticles/plugin-interactivity": "4.0.0-alpha.26"
91
91
  },
92
92
  "publishConfig": {
93
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-absorbers [12 Feb 2026 at 18:50]</title>
6
+ <title>@tsparticles/plugin-absorbers [26 Feb 2026 at 18:08]</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-alpha.24
7
+ * v4.0.0-alpha.26
8
8
  */
9
9
  /*
10
10
  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
@@ -54,7 +54,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__tsparticles_plugin_interactivity__;
54
54
  \*******************************/
55
55
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
56
56
 
57
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\nasync function loadAbsorbersPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.24\");\n await engine.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin }] = await Promise.all([\n Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\", 19)),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInstancesManager.js */ \"./dist/browser/AbsorbersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"./dist/browser/AbsorbersPlugin.js\"))\n ]), instancesManager = new AbsorbersInstancesManager(e);\n ensureInteractivityPluginLoaded(e);\n e.addPlugin(new AbsorbersPlugin(instancesManager));\n e.addInteractor?.(\"externalAbsorbers\", async (container)=>{\n const { AbsorbersInteractor } = await __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInteractor.js */ \"./dist/browser/AbsorbersInteractor.js\"));\n return new AbsorbersInteractor(container, instancesManager);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/index.js?\n}");
57
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadAbsorbersPlugin: () => (/* binding */ loadAbsorbersPlugin)\n/* harmony export */ });\nasync function loadAbsorbersPlugin(engine) {\n engine.checkVersion(\"4.0.0-alpha.26\");\n await engine.register(async (e)=>{\n const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin }] = await Promise.all([\n Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! @tsparticles/plugin-interactivity */ \"@tsparticles/plugin-interactivity\", 19)),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInstancesManager_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInstancesManager.js */ \"./dist/browser/AbsorbersInstancesManager.js\")),\n __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersPlugin_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersPlugin.js */ \"./dist/browser/AbsorbersPlugin.js\"))\n ]), instancesManager = new AbsorbersInstancesManager(e);\n ensureInteractivityPluginLoaded(e);\n e.addPlugin(new AbsorbersPlugin(instancesManager));\n e.addInteractor?.(\"externalAbsorbers\", async (container)=>{\n const { AbsorbersInteractor } = await __webpack_require__.e(/*! import() */ \"dist_browser_AbsorbersInteractor_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./AbsorbersInteractor.js */ \"./dist/browser/AbsorbersInteractor.js\"));\n return new AbsorbersInteractor(container, instancesManager);\n });\n });\n}\n\n\n//# sourceURL=webpack://@tsparticles/plugin-absorbers/./dist/browser/index.js?\n}");
58
58
 
59
59
  /***/ }
60
60
 
@@ -1,2 +1,2 @@
1
1
  !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/plugin-interactivity","@tsparticles/engine"],t);else{var r="object"==typeof exports?t(require("@tsparticles/plugin-interactivity"),require("@tsparticles/engine")):t(e.window,e.window);for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}(this,(e,t)=>(()=>{"use strict";var r,o,i,n={303(e){e.exports=t},702(t){t.exports=e}},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,l=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,s.t=function(e,t){if(1&t&&(e=this(e)),8&t||"object"==typeof e&&e&&(4&t&&e.__esModule||16&t&&"function"==typeof e.then))return e;var r=Object.create(null);s.r(r);var o={};c=c||[null,l({}),l([]),l(l)];for(var i=2&t&&e;("object"==typeof i||"function"==typeof i)&&!~c.indexOf(i);i=l(i))Object.getOwnPropertyNames(i).forEach(t=>o[t]=()=>e[t]);return o.default=()=>e,s.d(r,o),r},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),p={},s.l=(e,t,r,o)=>{if(p[e])return void p[e].push(t);if(void 0!==r)for(var i,n,a=document.getElementsByTagName("script"),c=0;c<a.length;c++){var l=a[c];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")=="@tsparticles/plugin-absorbers:"+r){i=l;break}}i||(n=!0,(i=document.createElement("script")).charset="utf-8",s.nc&&i.setAttribute("nonce",s.nc),i.setAttribute("data-webpack","@tsparticles/plugin-absorbers:"+r),i.src=e),p[e]=[t];var u=(t,r)=>{i.onerror=i.onload=null,clearTimeout(d);var o=p[e];if(delete p[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(r)),t)return t(r)},d=setTimeout(u.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=u.bind(null,i.onerror),i.onload=u.bind(null,i.onload),n&&document.head.appendChild(i)},s.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.g.importScripts&&(u=s.g.location+"");var c,l,p,u,d=s.g.document;if(!u&&d&&(d.currentScript&&"SCRIPT"===d.currentScript.tagName.toUpperCase()&&(u=d.currentScript.src),!u)){var f=d.getElementsByTagName("script");if(f.length)for(var b=f.length-1;b>-1&&(!u||!/^http(s?):/.test(u));)u=f[b--].src}if(!u)throw Error("Automatic publicPath is not supported in this browser");s.p=u=u.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r={425:0},s.f.j=(e,t)=>{var o=s.o(r,e)?r[e]:void 0;if(0!==o)if(o)t.push(o[2]);else{var i=new Promise((t,i)=>o=r[e]=[t,i]);t.push(o[2]=i);var n=s.p+s.u(e),a=Error();s.l(n,t=>{if(s.o(r,e)&&(0!==(o=r[e])&&(r[e]=void 0),o)){var i=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;a.message="Loading chunk "+e+` failed.
2
- (`+i+": "+n+")",a.name="ChunkLoadError",a.type=i,a.request=n,o[1](a)}},"chunk-"+e,e)}},o=(e,t)=>{var o,i,[n,a,c]=t,l=0;if(n.some(e=>0!==r[e])){for(o in a)s.o(a,o)&&(s.m[o]=a[o]);c&&c(s)}for(e&&e(t);l<n.length;l++)i=n[l],s.o(r,i)&&r[i]&&r[i][0](),r[i]=0},(i=this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).forEach(o.bind(null,0)),i.push=o.bind(null,i.push.bind(i));var g={};async function h(e){e.checkVersion("4.0.0-alpha.24"),await e.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{AbsorbersInstancesManager:r},{AbsorbersPlugin:o}]=await Promise.all([Promise.resolve().then(s.t.bind(s,702,19)),s.e(991).then(s.bind(s,991)),s.e(295).then(s.bind(s,295))]),i=new r(e);t(e),e.addPlugin(new o(i)),e.addInteractor?.("externalAbsorbers",async e=>{let{AbsorbersInteractor:t}=await s.e(415).then(s.bind(s,415));return new t(e,i)})})}return s.r(g),s.d(g,{loadAbsorbersPlugin:()=>h}),g})());
2
+ (`+i+": "+n+")",a.name="ChunkLoadError",a.type=i,a.request=n,o[1](a)}},"chunk-"+e,e)}},o=(e,t)=>{var o,i,[n,a,c]=t,l=0;if(n.some(e=>0!==r[e])){for(o in a)s.o(a,o)&&(s.m[o]=a[o]);c&&c(s)}for(e&&e(t);l<n.length;l++)i=n[l],s.o(r,i)&&r[i]&&r[i][0](),r[i]=0},(i=this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).forEach(o.bind(null,0)),i.push=o.bind(null,i.push.bind(i));var g={};async function h(e){e.checkVersion("4.0.0-alpha.26"),await e.register(async e=>{let[{ensureInteractivityPluginLoaded:t},{AbsorbersInstancesManager:r},{AbsorbersPlugin:o}]=await Promise.all([Promise.resolve().then(s.t.bind(s,702,19)),s.e(939).then(s.bind(s,939)),s.e(355).then(s.bind(s,355))]),i=new r(e);t(e),e.addPlugin(new o(i)),e.addInteractor?.("externalAbsorbers",async e=>{let{AbsorbersInteractor:t}=await s.e(675).then(s.bind(s,675));return new t(e,i)})})}return s.r(g),s.d(g,{loadAbsorbersPlugin:()=>h}),g})());
@@ -5,9 +5,10 @@ import type { AbsorberContainer } from "./AbsorberContainer.js";
5
5
  import type { AbsorbersInstancesManager } from "./AbsorbersInstancesManager.js";
6
6
  export declare class AbsorbersInteractor extends ExternalInteractorBase<AbsorberContainer> {
7
7
  handleClickMode: (mode: string, interactivityData: IInteractivityData) => void;
8
+ readonly maxDistance: number;
9
+ private _dragging;
10
+ private _draggingAbsorber;
8
11
  private readonly _instancesManager;
9
- private dragging;
10
- private draggingAbsorber;
11
12
  constructor(container: AbsorberContainer, instancesManager: AbsorbersInstancesManager);
12
13
  clear(): void;
13
14
  init(): void;
@@ -16,11 +16,13 @@
16
16
  const absorbersMode = "absorbers";
17
17
  class AbsorbersInteractor extends plugin_interactivity_1.ExternalInteractorBase {
18
18
  handleClickMode;
19
+ maxDistance;
20
+ _dragging = false;
21
+ _draggingAbsorber;
19
22
  _instancesManager;
20
- dragging = false;
21
- draggingAbsorber;
22
23
  constructor(container, instancesManager) {
23
24
  super(container);
25
+ this.maxDistance = 0;
24
26
  this._instancesManager = instancesManager;
25
27
  this._instancesManager.initContainer(container);
26
28
  this.handleClickMode = (mode, interactivityData) => {
@@ -53,15 +55,15 @@
53
55
  if (mouse.clicking && mouse.downPosition) {
54
56
  const mouseDist = (0, engine_1.getDistance)(absorber.position, mouse.downPosition);
55
57
  if (mouseDist <= absorber.size) {
56
- this.dragging = true;
57
- this.draggingAbsorber = absorber;
58
+ this._dragging = true;
59
+ this._draggingAbsorber = absorber;
58
60
  }
59
61
  }
60
62
  else {
61
- this.dragging = false;
62
- this.draggingAbsorber = undefined;
63
+ this._dragging = false;
64
+ this._draggingAbsorber = undefined;
63
65
  }
64
- if (this.dragging && this.draggingAbsorber == absorber && mouse.position) {
66
+ if (this._dragging && this._draggingAbsorber == absorber && mouse.position) {
65
67
  absorber.position.x = mouse.position.x;
66
68
  absorber.position.y = mouse.position.y;
67
69
  }
package/umd/index.js CHANGED
@@ -45,7 +45,7 @@ var __importStar = (this && this.__importStar) || (function () {
45
45
  Object.defineProperty(exports, "__esModule", { value: true });
46
46
  exports.loadAbsorbersPlugin = loadAbsorbersPlugin;
47
47
  async function loadAbsorbersPlugin(engine) {
48
- engine.checkVersion("4.0.0-alpha.24");
48
+ engine.checkVersion("4.0.0-alpha.26");
49
49
  await engine.register(async (e) => {
50
50
  const [{ ensureInteractivityPluginLoaded }, { AbsorbersInstancesManager }, { AbsorbersPlugin },] = await Promise.all([
51
51
  __syncRequire ? Promise.resolve().then(() => __importStar(require("@tsparticles/plugin-interactivity"))) : new Promise((resolve_1, reject_1) => { require(["@tsparticles/plugin-interactivity"], resolve_1, reject_1); }).then(__importStar),
package/415.min.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(this.webpackChunk_tsparticles_plugin_absorbers=this.webpackChunk_tsparticles_plugin_absorbers||[]).push([[415],{415(i,s,t){t.d(s,{AbsorbersInteractor:()=>n});var o=t(702),e=t(303),a=t(725);let r="absorbers";class n extends o.ExternalInteractorBase{handleClickMode;_instancesManager;dragging=!1;draggingAbsorber;constructor(i,s){super(i),this._instancesManager=s,this._instancesManager.initContainer(i),this.handleClickMode=(i,t)=>{let o=this.container,n=o.actualOptions.interactivity.modes.absorbers;if(!n||i!==r)return;let{clickPosition:l}=t.mouse;if(l&&s.getArray(this.container).some(i=>(0,e.getDistance)(i.position,l)<i.size))return;let d=(0,e.itemFromArray)(n)??new a.h;this._instancesManager.addAbsorber(o,d,l)}}clear(){}init(){}interact(i,s){for(let t of this.container.particles.filter(s=>this.isEnabled(i,s)))for(let o of this._instancesManager.getArray(this.container)){if(o.options.draggable){let s=i.mouse;s.clicking&&s.downPosition?(0,e.getDistance)(o.position,s.downPosition)<=o.size&&(this.dragging=!0,this.draggingAbsorber=o):(this.dragging=!1,this.draggingAbsorber=void 0),this.dragging&&this.draggingAbsorber==o&&s.position&&(o.position.x=s.position.x,o.position.y=s.position.y)}if(o.attract(t,s),t.destroyed)break}}isEnabled(i,s){let t=this.container.actualOptions,o=i.mouse,a=(s?.interactivity??t.interactivity).events;return!!o.clickPosition&&!!a.onClick.enable&&(0,e.isInArray)(r,a.onClick.mode)}loadModeOptions(i,...s){for(let t of(i.absorbers??=[],s))if(t)if((0,e.isArray)(t.absorbers))for(let s of t.absorbers){let t=new a.h;t.load(s),i.absorbers.push(t)}else{let s=new a.h;s.load(t.absorbers),i.absorbers.push(s)}}reset(){}}},725(i,s,t){t.d(s,{h:()=>n});var o=t(303);class e{count;delay;duration;wait;constructor(){this.wait=!1}load(i){(0,o.isNull)(i)||(void 0!==i.count&&(this.count=i.count),void 0!==i.delay&&(this.delay=(0,o.setRangeValue)(i.delay)),void 0!==i.duration&&(this.duration=(0,o.setRangeValue)(i.duration)),void 0!==i.wait&&(this.wait=i.wait))}}class a{mass;radius;constructor(){this.radius=0,this.mass=0}load(i){(0,o.isNull)(i)||(void 0!==i.mass&&(this.mass=i.mass),void 0!==i.radius&&(this.radius=i.radius))}}class r extends o.ValueWithRandom{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new a}load(i){(0,o.isNull)(i)||(super.load(i),void 0!==i.density&&(this.density=i.density),(0,o.isNumber)(i.limit)?this.limit.radius=i.limit:this.limit.load(i.limit))}}class n{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new o.OptionsColor,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new e,this.size=new r}load(i){(0,o.isNull)(i)||(void 0!==i.color&&(this.color=o.OptionsColor.create(this.color,i.color)),void 0!==i.draggable&&(this.draggable=i.draggable),void 0!==i.life&&this.life.load(i.life),this.name=i.name,void 0!==i.opacity&&(this.opacity=i.opacity),void 0!==i.position&&(this.position={},void 0!==i.position.x&&(this.position.x=(0,o.setRangeValue)(i.position.x)),void 0!==i.position.y&&(this.position.y=(0,o.setRangeValue)(i.position.y))),void 0!==i.size&&this.size.load(i.size),void 0!==i.destroy&&(this.destroy=i.destroy),void 0!==i.orbits&&(this.orbits=i.orbits))}}}}]);