@tsparticles/interaction-external-trail
Version:
tsParticles trail external interaction
2 lines • 2.55 kB
JavaScript
/*! For license information please see tsparticles.interaction.external.trail.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 o in i)("object"==typeof exports?exports:t)[o]=i[o]}}(this,(t=>(()=>{var e={303:e=>{e.exports=t}},i={};function o(t){var n=i[t];if(void 0!==n)return n.exports;var r=i[t]={exports:{}};return e[t](r,r.exports,o),r.exports}o.d=(t,e)=>{for(var i in e)o.o(e,i)&&!o.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};o.r(n),o.d(n,{Trail:()=>s,loadExternalTrailInteraction:()=>c});var r=o(303);class s{constructor(){this.delay=1,this.pauseOnStop=!1,this.quantity=1}load(t){(0,r.isNull)(t)||(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.quantity&&(this.quantity=t.quantity),void 0!==t.particles&&(this.particles=(0,r.deepExtend)({},t.particles)),void 0!==t.pauseOnStop&&(this.pauseOnStop=t.pauseOnStop))}}const a="trail";class l extends r.ExternalInteractorBase{constructor(t){super(t),this._delay=0}clear(){}init(){}interact(t){const e=this.container,{interactivity:i}=e;if(!e.retina.reduceFactor)return;const o=e.actualOptions.interactivity.modes.trail;if(!o)return;const n=o.delay*r.millisecondsToSeconds/this.container.retina.reduceFactor;if(this._delay<n&&(this._delay+=t.value),this._delay<n)return;const s=!(o.pauseOnStop&&(i.mouse.position===this._lastPosition||i.mouse.position?.x===this._lastPosition?.x&&i.mouse.position?.y===this._lastPosition?.y)),a=e.interactivity.mouse.position;a?this._lastPosition={...a}:delete this._lastPosition,s&&e.particles.push(o.quantity,e.interactivity.mouse,o.particles),this._delay-=n}isEnabled(t){const e=this.container,i=e.actualOptions,o=e.interactivity.mouse,n=(t?.interactivity??i.interactivity).events;return o.clicking&&o.inside&&!!o.position&&(0,r.isInArray)(a,n.onClick.mode)||o.inside&&!!o.position&&(0,r.isInArray)(a,n.onHover.mode)}loadModeOptions(t,...e){t.trail||(t.trail=new s);for(const i of e)t.trail.load(i?.trail)}reset(){}}async function c(t,e=!0){t.checkVersion("3.8.1"),await t.addInteractor("externalTrail",(t=>Promise.resolve(new l(t))),e)}return n})()));