lecoffre-back/node_modules/tsparticles-interaction-particles-links/tsparticles.interaction.particles.links.min.js
2023-02-17 11:06:01 +01:00

2 lines
9.1 KiB
JavaScript

/*! For license information please see tsparticles.interaction.particles.links.min.js.LICENSE.txt */
!function(i,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("tsparticles-engine"));else if("function"==typeof define&&define.amd)define(["tsparticles-engine"],t);else{var n="object"==typeof exports?t(require("tsparticles-engine")):t(i.window);for(var e in n)("object"==typeof exports?exports:i)[e]=n[e]}}(this,(i=>(()=>{"use strict";var t={961:t=>{t.exports=i}},n={};function e(i){var s=n[i];if(void 0!==s)return s.exports;var o=n[i]={exports:{}};return t[i](o,o.exports,e),o.exports}e.d=(i,t)=>{for(var n in t)e.o(t,n)&&!e.o(i,n)&&Object.defineProperty(i,n,{enumerable:!0,get:t[n]})},e.o=(i,t)=>Object.prototype.hasOwnProperty.call(i,t),e.r=i=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var s={};return(()=>{e.r(s),e.d(s,{Links:()=>r,LinksShadow:()=>n,LinksTriangle:()=>o,loadParticlesLinksInteraction:()=>h});var i=e(961);class t extends i.Circle{constructor(i,t,n,e){super(i,t,n),this.canvasSize=e,this.canvasSize=Object.assign({},e)}contains(i){if(super.contains(i))return!0;const t={x:i.x-this.canvasSize.width,y:i.y};if(super.contains(t))return!0;const n={x:i.x-this.canvasSize.width,y:i.y-this.canvasSize.height};if(super.contains(n))return!0;const e={x:i.x,y:i.y-this.canvasSize.height};return super.contains(e)}intersects(t){if(super.intersects(t))return!0;const n=t,e=t,s={x:t.position.x-this.canvasSize.width,y:t.position.y-this.canvasSize.height};if(void 0!==e.radius){const t=new i.Circle(s.x,s.y,2*e.radius);return super.intersects(t)}if(void 0!==n.size){const t=new i.Rectangle(s.x,s.y,2*n.size.width,2*n.size.height);return super.intersects(t)}return!1}}class n{constructor(){this.blur=5,this.color=new i.OptionsColor,this.color.value="#000",this.enable=!1}load(t){t&&(void 0!==t.blur&&(this.blur=t.blur),this.color=i.OptionsColor.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable))}}class o{constructor(){this.enable=!1,this.frequency=1}load(t){t&&(void 0!==t.color&&(this.color=i.OptionsColor.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity))}}class r{constructor(){this.blink=!1,this.color=new i.OptionsColor,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new n,this.triangles=new o,this.width=1,this.warp=!1}load(t){t&&(void 0!==t.id&&(this.id=t.id),void 0!==t.blink&&(this.blink=t.blink),this.color=i.OptionsColor.create(this.color,t.color),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.distance&&(this.distance=t.distance),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity),this.shadow.load(t.shadow),this.triangles.load(t.triangles),void 0!==t.width&&(this.width=t.width),void 0!==t.warp&&(this.warp=t.warp))}}function l(t,n,e,s,o){let r=(0,i.getDistance)(t,n);if(!o||r<=e)return r;const l={x:n.x-s.width,y:n.y};if(r=(0,i.getDistance)(t,l),r<=e)return r;const a={x:n.x-s.width,y:n.y-s.height};if(r=(0,i.getDistance)(t,a),r<=e)return r;const c={x:n.x,y:n.y-s.height};return r=(0,i.getDistance)(t,c),r}class a extends i.ParticlesInteractorBase{constructor(i){super(i),this.linkContainer=i}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}async interact(n){var e;if(!n.options.links)return;n.links=[];const s=n.getPosition(),o=this.container,r=o.canvas.size;if(s.x<0||s.y<0||s.x>r.width||s.y>r.height)return;const a=n.options.links,c=a.opacity,d=null!==(e=n.retina.linksDistance)&&void 0!==e?e:0,u=a.warp,h=u?new t(s.x,s.y,d,r):new i.Circle(s.x,s.y,d),p=o.particles.quadTree.query(h);for(const i of p){const t=i.options.links;if(n===i||!(null==t?void 0:t.enable)||a.id!==t.id||i.spawning||i.destroyed||!i.links||-1!==n.links.map((i=>i.destination)).indexOf(i)||-1!==i.links.map((i=>i.destination)).indexOf(n))continue;const e=i.getPosition();if(e.x<0||e.y<0||e.x>r.width||e.y>r.height)continue;const o=l(s,e,d,r,u&&t.warp);if(o>d)return;const h=(1-o/d)*c;this.setColor(n),n.links.push({destination:i,opacity:h})}}isEnabled(i){var t;return!!(null===(t=i.options.links)||void 0===t?void 0:t.enable)}loadParticlesOptions(i,...t){var n,e;i.links||(i.links=new r);for(const s of t)i.links.load(null!==(e=null!==(n=null==s?void 0:s.links)&&void 0!==n?n:null==s?void 0:s.lineLinked)&&void 0!==e?e:null==s?void 0:s.line_linked)}reset(){}setColor(t){if(!t.options.links)return;const n=this.linkContainer,e=t.options.links;let s=void 0===e.id?n.particles.linksColor:n.particles.linksColors.get(e.id);if(s)return;const o=e.color;s=(0,i.getLinkRandomColor)(o,e.blink,e.consent),void 0===e.id?n.particles.linksColor=s:n.particles.linksColors.set(e.id,s)}}function c(t,n){const e=((s=t.map((i=>i.id))).sort(((i,t)=>i-t)),s.join("_"));var s;let o=n.get(e);return void 0===o&&(o=(0,i.getRandom)(),n.set(e,o)),o}class d{constructor(i){this.container=i,this._freqs={links:new Map,triangles:new Map}}drawParticle(i,t){var n;const e=t.options;if(!t.links||t.links.length<=0)return;const s=t.links.filter((i=>e.links&&this.getLinkFrequency(t,i.destination)<=e.links.frequency));for(const i of s)this.drawTriangles(e,t,i,s),i.opacity>0&&(null!==(n=t.retina.linksWidth)&&void 0!==n?n:0)>0&&this.drawLinkLine(t,i)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map}particleCreated(i){if(i.links=[],!i.options.links)return;const t=this.container.retina.pixelRatio;i.retina.linksDistance=i.options.links.distance*t,i.retina.linksWidth=i.options.links.width*t}particleDestroyed(i){i.links=[]}drawLinkLine(t,n){const e=this.container,s=e.actualOptions,o=n.destination,r=t.getPosition(),l=o.getPosition();let a=n.opacity;e.canvas.draw((n=>{var c,d,u;if(!t.options.links)return;let h;const p=null===(c=t.options.twinkle)||void 0===c?void 0:c.lines;if(null==p?void 0:p.enable){const t=p.frequency,n=(0,i.rangeColorToRgb)(p.color);(0,i.getRandom)()<t&&n&&(h=n,a=(0,i.getRangeValue)(p.opacity))}if(!h){const n=t.options.links,s=void 0!==(null==n?void 0:n.id)?e.particles.linksColors.get(n.id):e.particles.linksColor;h=(0,i.getLinkColor)(t,o,s)}if(!h)return;const y=null!==(d=t.retina.linksWidth)&&void 0!==d?d:0,g=null!==(u=t.retina.linksDistance)&&void 0!==u?u:0;!function(t,n,e,s,o,r,l,a,c,d,u,h){let p=!1;if((0,i.getDistance)(e,s)<=o)(0,i.drawLine)(t,e,s),p=!0;else if(l){let n,l;const a={x:s.x-r.width,y:s.y},c=(0,i.getDistances)(e,a);if(c.distance<=o){const i=e.y-c.dy/c.dx*e.x;n={x:0,y:i},l={x:r.width,y:i}}else{const t={x:s.x,y:s.y-r.height},a=(0,i.getDistances)(e,t);if(a.distance<=o){const i=-(e.y-a.dy/a.dx*e.x)/(a.dy/a.dx);n={x:i,y:0},l={x:i,y:r.height}}else{const t={x:s.x-r.width,y:s.y-r.height},a=(0,i.getDistances)(e,t);if(a.distance<=o){const i=e.y-a.dy/a.dx*e.x;n={x:-i/(a.dy/a.dx),y:i},l={x:n.x+r.width,y:n.y+r.height}}}}n&&l&&((0,i.drawLine)(t,e,n),(0,i.drawLine)(t,s,l),p=!0)}if(p){if(t.lineWidth=n,a&&(t.globalCompositeOperation=c),t.strokeStyle=(0,i.getStyleFromRgb)(d,u),h.enable){const n=(0,i.rangeColorToRgb)(h.color);n&&(t.shadowBlur=h.blur,t.shadowColor=(0,i.getStyleFromRgb)(n))}t.stroke()}}(n,y,r,l,g,e.canvas.size,t.options.links.warp,s.backgroundMask.enable,s.backgroundMask.composite,h,a,t.options.links.shadow)}))}drawLinkTriangle(t,n,e){var s;if(!t.options.links)return;const o=this.container,r=o.actualOptions,l=n.destination,a=e.destination,c=t.options.links.triangles,d=null!==(s=c.opacity)&&void 0!==s?s:(n.opacity+e.opacity)/2;d<=0||o.canvas.draw((n=>{var e;const s=t.getPosition(),u=l.getPosition(),h=a.getPosition(),p=null!==(e=t.retina.linksDistance)&&void 0!==e?e:0;if((0,i.getDistance)(s,u)>p||(0,i.getDistance)(h,u)>p||(0,i.getDistance)(h,s)>p)return;let y=(0,i.rangeColorToRgb)(c.color);if(!y){const n=t.options.links,e=void 0!==(null==n?void 0:n.id)?o.particles.linksColors.get(n.id):o.particles.linksColor;y=(0,i.getLinkColor)(t,l,e)}y&&function(t,n,e,s,o,r,l,a){(0,i.drawTriangle)(t,n,e,s),o&&(t.globalCompositeOperation=r),t.fillStyle=(0,i.getStyleFromRgb)(l,a),t.fill()}(n,s,u,h,r.backgroundMask.enable,r.backgroundMask.composite,y,d)}))}drawTriangles(i,t,n,e){var s,o,r;const l=n.destination;if(!(null===(s=i.links)||void 0===s?void 0:s.triangles.enable)||!(null===(o=l.options.links)||void 0===o?void 0:o.triangles.enable))return;const a=null===(r=l.links)||void 0===r?void 0:r.filter((i=>{const t=this.getLinkFrequency(l,i.destination);return l.options.links&&t<=l.options.links.frequency&&e.findIndex((t=>t.destination===i.destination))>=0}));if(null==a?void 0:a.length)for(const e of a){const s=e.destination;this.getTriangleFrequency(t,l,s)>i.links.triangles.frequency||this.drawLinkTriangle(t,n,e)}}getLinkFrequency(i,t){return c([i,t],this._freqs.links)}getTriangleFrequency(i,t,n){return c([i,t,n],this._freqs.triangles)}}class u{constructor(){this.id="links"}getPlugin(i){return new d(i)}loadOptions(){}needsPlugin(){return!0}}async function h(i){await async function(i){await i.addInteractor("particlesLinks",(i=>new a(i)))}(i),await async function(i){const t=new u;await i.addPlugin(t)}(i)}})(),s})()));