2 lines
3.3 KiB
JavaScript
2 lines
3.3 KiB
JavaScript
/*! For license information please see tsparticles.interaction.external.grab.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 n in i)("object"==typeof exports?exports:t)[n]=i[n]}}(this,(t=>(()=>{"use strict";var e={961:e=>{e.exports=t}},i={};function n(t){var o=i[t];if(void 0!==o)return o.exports;var r=i[t]={exports:{}};return e[t](r,r.exports,n),r.exports}n.d=(t,e)=>{for(var i in e)n.o(e,i)&&!n.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};return(()=>{n.r(o),n.d(o,{Grab:()=>i,GrabLinks:()=>e,loadExternalGrabInteraction:()=>a});var t=n(961);class e{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(e){e&&(void 0!==e.blink&&(this.blink=e.blink),void 0!==e.color&&(this.color=t.OptionsColor.create(this.color,e.color)),void 0!==e.consent&&(this.consent=e.consent),void 0!==e.opacity&&(this.opacity=e.opacity))}}class i{constructor(){this.distance=100,this.links=new e}get lineLinked(){return this.links}set lineLinked(t){this.links=t}get line_linked(){return this.links}set line_linked(t){this.links=t}load(t){var e,i;t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(null!==(i=null!==(e=t.links)&&void 0!==e?e:t.lineLinked)&&void 0!==i?i:t.line_linked))}}function r(e,i,n,o,r){e.canvas.draw((e=>{var s;const a=i.getPosition();!function(e,i,n,o,r,s){(0,t.drawLine)(e,n,o),e.strokeStyle=(0,t.getStyleFromRgb)(r,s),e.lineWidth=i,e.stroke()}(e,null!==(s=i.retina.linksWidth)&&void 0!==s?s:0,a,r,n,o)}))}class s extends t.ExternalInteractorBase{constructor(t){super(t)}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity.modes.grab;e&&(t.retina.grabModeDistance=e.distance*t.retina.pixelRatio)}async interact(){var e,i;const n=this.container,o=n.actualOptions.interactivity;if(!o.modes.grab||!o.events.onHover.enable||n.interactivity.status!==t.mouseMoveEvent)return;const s=n.interactivity.mouse.position;if(!s)return;const a=n.retina.grabModeDistance;if(!a||a<0)return;const l=n.particles.quadTree.queryCircle(s,a,(t=>this.isEnabled(t)));for(const c of l){const l=c.getPosition(),d=(0,t.getDistance)(l,s);if(d>a)continue;const u=o.modes.grab.links,v=u.opacity,p=v-d*v/a;if(p<=0)continue;const b=null!==(e=u.color)&&void 0!==e?e:null===(i=c.options.links)||void 0===i?void 0:i.color;if(!n.particles.grabLineColor&&b){const e=o.modes.grab.links;n.particles.grabLineColor=(0,t.getLinkRandomColor)(b,e.blink,e.consent)}const f=(0,t.getLinkColor)(c,void 0,n.particles.grabLineColor);if(!f)return;r(n,c,f,p,s)}}isEnabled(e){var i;const n=this.container,o=n.interactivity.mouse,r=(null!==(i=null==e?void 0:e.interactivity)&&void 0!==i?i:n.actualOptions.interactivity).events;return r.onHover.enable&&!!o.position&&(0,t.isInArray)("grab",r.onHover.mode)}loadModeOptions(t,...e){t.grab||(t.grab=new i);for(const i of e)t.grab.load(null==i?void 0:i.grab)}reset(){}}async function a(t){await t.addInteractor("externalGrab",(t=>new s(t)))}})(),o})())); |