PageSourceSearch

https://static.olansiid.com/static/assets/script/plugins/particles/particles.js

js olansiid.com collected 2026-09-28 10:41:42 UTC 24,894 bytes, 480 lines download raw bytes

1var pJS=function(e,d){var c=document.querySelector("#"+e+" > .particles-js-canvas-el");
2this.pJS={canvas:{el:c,w:c.offsetWidth,h:c.offsetHeight},particles:{number:{value:400,density:{enable:true,value_area:800}},color:{value:"#fff"},shape:{type:"circle",stroke:{width:0,color:"#ff0000"},polygon:{nb_sides:5},image:{src:"",width:100,height:100}},opacity:{value:1,random:false,anim:{enable:false,speed:2,opacity_min:0,sync:false}},size:{value:20,random:false,anim:{enable:false,speed:20,size_min:0,sync:false}},line_linked:{enable:true,distance:100,color:"#fff",opacity:1,width:1},move:{enable:true,speed:2,direction:"none",random:false,straight:false,out_mode:"out",bounce:false,attract:{enable:false,rotateX:3000,rotateY:3000}},array:[]},interactivity:{detect_on:"canvas",events:{onhover:{enable:true,mode:"grab"},onclick:{enable:true,mode:"push"},resize:true},modes:{grab:{distance:100,line_linked:{opacity:1}},bubble:{distance:200,size:80,duration:0.4},repulse:{distance:200,duration:0.4},push:{particles_nb:4},remove:{particles_nb:2}},mouse:{}},retina_detect:false,fn:{interact:{},modes:{},vendors:{}},tmp:{}};
3var a=this.pJS;
4if(d){Object.deepExtend(a,d)
5}a.tmp.obj={size_value:a.particles.size.value,size_anim_speed:a.particles.size.anim.speed,move_speed:a.particles.move.speed,line_linked_distance:a.particles.line_linked.distance,line_linked_width:a.particles.line_linked.width,mode_grab_distance:a.interactivity.modes.grab.distance,mode_bubble_distance:a.interactivity.modes.bubble.distance,mode_bubble_size:a.interactivity.modes.bubble.size,mode_repulse_distance:a.interactivity.modes.repulse.distance};
6a.fn.retinaInit=function(){if(a.retina_detect&&window.devicePixelRatio>1){a.canvas.pxratio=window.devicePixelRatio;
7a.tmp.retina=true
8}else{a.canvas.pxratio=1;
9a.tmp.retina=false
10}a.canvas.w=a.canvas.el.offsetWidth*a.canvas.pxratio;
11a.canvas.h=a.canvas.el.offsetHeight*a.canvas.pxratio;
12a.particles.size.value=a.tmp.obj.size_value*a.canvas.pxratio;
13a.particles.size.anim.speed=a.tmp.obj.size_anim_speed*a.canvas.pxratio;
14a.particles.move.speed=a.tmp.obj.move_speed*a.canvas.pxratio;
15a.particles.line_linked.distance=a.tmp.obj.line_linked_distance*a.canvas.pxratio;
16a.interactivity.modes.grab.distance=a.tmp.obj.mode_grab_distance*a.canvas.pxratio;
17a.interactivity.modes.bubble.distance=a.tmp.obj.mode_bubble_distance*a.canvas.pxratio;
18a.particles.line_linked.width=a.tmp.obj.line_linked_width*a.canvas.pxratio;
19a.interactivity.modes.bubble.size=a.tmp.obj.mode_bubble_size*a.canvas.pxratio;
20a.interactivity.modes.repulse.distance=a.tmp.obj.mode_repulse_distance*a.canvas.pxratio
21};
22a.fn.canvasInit=function(){a.canvas.ctx=a.canvas.el.getContext("2d")
23};
24a.fn.canvasSize=function(){a.canvas.el.width=a.canvas.w;
25a.canvas.el.height=a.canvas.h;
26if(a&&a.interactivity.events.resize){window.addEventListener("resize",function(){a.canvas.w=a.canvas.el.offsetWidth;
27a.canvas.h=a.canvas.el.offsetHeight;
28if(a.tmp.retina){a.canvas.w*=a.canvas.pxratio;
29a.canvas.h*=a.canvas.pxratio
30}a.canvas.el.width=a.canvas.w;
31a.canvas.el.height=a.canvas.h;
32if(!a.particles.move.enable){a.fn.particlesEmpty();
33a.fn.particlesCreate();
34a.fn.particlesDraw();
35a.fn.vendors.densityAutoParticles()
36}a.fn.vendors.densityAutoParticles()
37})
38}};
39a.fn.canvasPaint=function(){a.canvas.ctx.fillRect(0,0,a.canvas.w,a.canvas.h)
40};
41a.fn.canvasClear=function(){a.canvas.ctx.clearRect(0,0,a.canvas.w,a.canvas.h)
42};
43a.fn.particle=function(h,i,g){this.radius=(a.particles.size.random?Math.random():1)*a.particles.size.value;
44if(a.particles.size.anim.enable){this.size_status=false;
45this.vs=a.particles.size.anim.speed/100;
46if(!a.particles.size.anim.sync){this.vs=this.vs*Math.random()
47}}this.x=g?g.x:Math.random()*a.canvas.w;
48this.y=g?g.y:Math.random()*a.canvas.h;
49if(this.x>a.canvas.w-this.radius*2){this.x=this.x-this.radius
50}else{if(this.x<this.radius*2){this.x=this.x+this.radius
51}}if(this.y>a.canvas.h-this.radius*2){this.y=this.y-this.radius
52}else{if(this.y<this.radius*2){this.y=this.y+this.radius
53}}if(a.particles.move.bounce){a.fn.vendors.checkOverlap(this,g)
54}this.color={};
55if(typeof(h.value)=="object"){if(h.value instanceof Array){var k=h.value[Math.floor(Math.random()*a.particles.color.value.length)];
56this.color.rgb=hexToRgb(k)
57}else{if(h.value.r!=undefined&&h.value.g!=undefined&&h.value.b!=undefined){this.color.rgb={r:h.value.r,g:h.value.g,b:h.value.b}
58}if(h.value.h!=undefined&&h.value.s!=undefined&&h.value.l!=undefined){this.color.hsl={h:h.value.h,s:h.value.s,l:h.value.l}
59}}}else{if(h.value=="random"){this.color.rgb={r:(Math.floor(Math.random()*(255-0+1))+0),g:(Math.floor(Math.random()*(255-0+1))+0),b:(Math.floor(Math.random()*(255-0+1))+0)}
60}
60else{if(typeof(h.value)=="string"){this.color=h;
61this.color.rgb=hexToRgb(this.color.value)
62}}}this.opacity=(a.particles.opacity.random?Math.random():1)*a.particles.opacity.value;
63if(a.particles.opacity.anim.enable){this.opacity_status=false;
64this.vo=a.particles.opacity.anim.speed/100;
65if(!a.particles.opacity.anim.sync){this.vo=this.vo*Math.random()
66}}var m={};
67switch(a.particles.move.direction){case"top":m={x:0,y:-1};
68break;
69case"top-right":m={x:0.5,y:-0.5};
70break;
71case"right":m={x:1,y:-0};
72break;
73case"bottom-right":m={x:0.5,y:0.5};
74break;
75case"bottom":m={x:0,y:1};
76break;
77case"bottom-left":m={x:-0.5,y:1};
78break;
79case"left":m={x:-1,y:0};
80break;
81case"top-left":m={x:-0.5,y:-0.5};
82break;
83default:m={x:0,y:0};
84break
85}if(a.particles.move.straight){this.vx=m.x;
86this.vy=m.y;
87if(a.particles.move.random){this.vx=this.vx*(Math.random());
88this.vy=this.vy*(Math.random())
89}}else{this.vx=m.x+Math.random()-0.5;
90this.vy=m.y+Math.random()-0.5
91}this.vx_i=this.vx;
92this.vy_i=this.vy;
93var l=a.particles.shape.type;
94if(typeof(l)=="object"){if(l instanceof Array){var f=l[Math.floor(Math.random()*l.length)];
95this.shape=f
96}}else{this.shape=l
97}if(this.shape=="image"){var j=a.particles.shape;
98this.img={src:j.image.src,ratio:j.image.width/j.image.height};
99if(!this.img.ratio){this.img.ratio=1
100}if(a.tmp.img_type=="svg"&&a.tmp.source_svg!=undefined){a.fn.vendors.createSvgImg(this);
101if(a.tmp.pushing){this.img.loaded=false
102}}}};
103function b(g){var f=g.match(/[\d.]+/g);
104if(f){return{r:parseInt(f[0]),g:parseInt(f[1]),b:parseInt(f[2]),alpha:parseFloat(f[3])}
105}return null
106}a.fn.particle.prototype.draw=function(){var l=this;
107if(l.radius_bubble!=undefined){var g=l.radius_bubble
108}else{var g=l.radius
109}if(l.opacity_bubble!=undefined){var j=l.opacity_bubble
110}else{var j=l.opacity
111}if(l.color.rgb){var h="rgba("+l.color.rgb.r+","+l.color.rgb.g+","+l.color.rgb.b+","+j+")"
112}else{if(l.color.value.indexOf("rgba")>-1){var k=b(l.color.value);
113var h="rgba("+k.r+","+k.g+","+k.b+","+k.alpha+")"
114}else{var h="hsla("+l.color.hsl.h+","+l.color.hsl.s+"%,"+l.color.hsl.l+"%,"+j+")"
115}}a.canvas.ctx.fillStyle=h;
116a.canvas.ctx.beginPath();
117switch(l.shape){case"circle":a.canvas.ctx.arc(l.x,l.y,g,0,Math.PI*2,false);
118break;
119case"edge":a.canvas.ctx.rect(l.x-g,l.y-g,g*2,g*2);
120break;
121case"triangle":a.fn.vendors.drawShape(a.canvas.ctx,l.x-g,l.y+g/1.66,g*2,3,2);
122break;
123case"polygon":a.fn.vendors.drawShape(a.canvas.ctx,l.x-g/(a.particles.shape.polygon.nb_sides/3.5),l.y-g/(2.66/3.5),g*2.66/(a.particles.shape.polygon.nb_sides/3),a.particles.shape.polygon.nb_sides,1);
124break;
125case"star":a.fn.vendors.drawShape(a.canvas.ctx,l.x-g*2/(a.particles.shape.polygon.nb_sides/4),l.y-g/(2*2.66/3.5),g*2*2.66/(a.particles.shape.polygon.nb_sides/3),a.particles.shape.polygon.nb_sides,2);
126break;
127case"image":function f(){a.canvas.ctx.drawImage(i,l.x-g,l.y-g,g*2,g*2/l.img.ratio)
128}if(a.tmp.img_type=="svg"){var i=l.img.obj
129}else{var i=a.tmp.img_obj
130}if(i){f()
131}break
132}a.canvas.ctx.closePath();
133if(a.particles.shape.stroke.width>0){a.canvas.ctx.strokeStyle=a.particles.shape.stroke.color;
134a.canvas.ctx.lineWidth=a.particles.shape.stroke.width;
135a.canvas.ctx.stroke()
136}a.canvas.ctx.fill()
137};
138a.fn.particlesCreate=function(){for(var f=0;
139f<a.particles.number.value;
140f++){a.particles.array.push(new a.fn.particle(a.particles.color,a.particles.opacity.value))
141}};
142a.fn.particlesUpdate=function(){for(var k=0;
143k<a.particles.array.length;
144k++){var m=a.particles.array[k];
145if(a.particles.move.enable){var h=a.particles.move.speed/2;
146m.x+=m.vx*h;
147m.y+=m.vy*h
148}if(a.particles.opacity.anim.enable){if(m.opacity_status==true){if(m.opacity>=a.particles.opacity.value){m.opacity_status=false
149}m.opacity+=m.vo
150}else{if(m.opacity<=a.particles.opacity.anim.opacity_min){m.opacity_status=true
151}m.opacity-=m.vo
152}if(m.opacity<0){m.opacity=0
153}}if(a.particles.size.anim.enable){if(m.size_status==true){if(m.radius>=a.particles.size.value){m.size_status=false
154}m.radius+=m.vs
155}else{if(m.radius<=a.particles.size.anim.size_min){m.size_status=true
156}m.radius-=m.vs
157}if(m.radius<0){m.radius=0
158}}if(a.particles.move.out_mode=="bounce"){var f={x_left:m.radius,x_right:a.canvas.w,y_top:m.radius,y_bottom:a.canvas.h}
159}else{var f={x_left:-m.radius,x_right:a.canvas.w+m.radius,y_top:-m.radius,y_bottom:a.canvas.h+m.radius}
160}if(m.x-m.radius>a.canvas.w){m.x=f.x_left;
161m.y=Math.random()*a.canvas.h
162}else{if(m.x+m.radius<0){m.x=f.x_right;
163m.y=Math.random()*a.canvas.h
164}}if(m.y-m.radius>a.canvas.h){m.y=f.y_top;
165m.x=Math.random()*a.canvas.w
166}else{if(m.y+m.radius<0){m.y=f.y_bottom;
167m.x=Math.random()*a.canvas.w
168}}switch(a.particles.move.out_mode){case"bounce":if(m.x+m.radius>a.canvas.w){m.vx=-m.vx
169}else{if(m.x-m.radius<0){m.vx=-m.vx
170}}if(m.y+m.radius>a.canvas.h){m.vy=-m.vy
171}else{if(m.y-m.radius<0){m.vy=-m.vy
172}}break
173}if(isInArray("grab",a.interactivity.events.onhover.mode)){a.fn.modes.grabParticle(m)
174}if(isInArray("bubble",a.interactivity.events.onhover.mode)||isInArray("bubble",a.interactivity.events.onclick.mode)){a.fn.modes.bubbleParticle(m)
175}if(isInArray("repulse",a.interactivity.events.onhover.mode)||isInArray("repulse",a.interactivity.events.onclick.mode)){a.fn.modes.repulseParticle(m)
176}if(a.particles.line_linked.enable||a.particles.move.attract.enable){for(var g=k+1;
177g<a.particles.array.length;
178g++){var l=a.particles.array[g];
179if(a.particles.line_linked.enable){a.fn.interact.linkParticles(m,l)
180}if(a.particles.move.attract.enable){a.fn.interact.attractParticles(m,l)
181}if(a.particles.move.bounce){a.fn.interact.bounceParticles(m,l)
182}}}}};
183a.fn.particlesDraw=function(){a.canvas.ctx.clearRect(0,0,a.canvas.w,a.canvas.h);
184a.fn.particlesUpdate();
185for(var f=0;
186f<a.particles.array.length;
187f++){var g=a.particles.array[f];
188g.draw()
189}};
190a.fn.particlesEmpty=function(){a.particles.array=[]
191};
192a.fn.particlesRefresh=function(){cancelRequestAnimFrame(a.fn.checkAnimFrame);
193cancelRequestAnimFrame(a.fn.drawAnimFrame);
194a.tmp.source_svg=undefined;
195a.tmp.img_obj=undefined;
196a.tmp.count_svg=0;
197a.fn.particlesEmpty();
198a.fn.canvasClear();
199a.fn.vendors.start()
200};
201a.fn.interact.linkParticles=function(m,j){var h=m.x-j.x,g=m.y-j.y,l=Math.sqrt(h*h+g*g);
202if(l<=a.particles.line_linked.distance){var k=a.particles.line_linked.opacity-(l/(1/a.particles.line_linked.opacity))/a.particles.line_linked.distance;
203if(k>0){var f=a.particles.line_linked.color_rgb_line;
204if(a.particles.line_linked.color.indexOf("rgba")>-1){var i=b(a.particles.line_linked.color);
205a.canvas.ctx.strokeStyle="rgba("+i.r+","+i.g+","+i.b+","+i.alpha+")"
206}else{a.canvas.ctx.strokeStyle="rgba("+f.r+","+f.g+","+f.b+","+k+")"
207}a.canvas.ctx.lineWidth=a.particles.line_linked.width;
208a.canvas.ctx.beginPath();
209a.canvas.ctx.moveTo(m.x,m.y);
210a.canvas.ctx.lineTo(j.x,j.y);
211a.canvas.ctx.stroke();
212a.canvas.ctx.closePath()
213}}};
214a.fn.interact.attractParticles=function(l,j){var g=l.x-j.x,f=l.y-j.y,k=Math.sqrt(g*g+f*f);
215if(k<=a.particles.line_linked.distance){var i=g/(a.particles.move.attract.rotateX*1000),h=f/(a.particles.move.attract.rotateY*1000);
216l.vx-=i;
217l.vy-=h;
218j.vx+=i;
219j.vy+=h
220}};
221a.fn.interact.bounceParticles=function(k,h){var g=k.x-h.x,f=k.y-h.y,j=Math.sqrt(g*g+f*f),i=k.radius+h.radius;
222if(j<=i){k.vx=-k.vx;
223k.vy=-k.vy;
224h.vx=-h.vx;
225h.vy=-h.vy
226}};
227a.fn.modes.pushParticles=function(f,h){a.tmp.pushing=true;
228for(var g=0;
229g<f;
230g++){a.particles.array.push(new a.fn.particle(a.particles.color,a.particles.opacity.value,{x:h?h.pos_x:Math.random()*a.canvas.w,y:h?h.pos_y:Math.random()*a.canvas.h}));
231if(g==f-1){if(!a.particles.move.enable){a.fn.particlesDraw()
232}a.tmp.pushing=false
233}}};
234a.fn.modes.removeParticles=function(f){a.particles.array.splice(0,f);
235if(!a.particles.move.enable){a.fn.particlesDraw()
236}};
237a.fn.modes.bubbleParticle=function(g){if(a.interactivity.events.onhover.enable&&isInArray("bubble",a.interactivity.events.onhover.mode)){var q=g.x-a.interactivity.mouse.pos_x,h=g.y-a.interactivity.mouse.pos_y,j=Math.sqrt(q*q+h*h),k=1-j/a.interactivity.modes.bubble.distance;
238function n(){g.opacity_bubble=g.opacity;
239g.radius_bubble=g.radius
240}if(j<=a.interactivity.modes.bubble.distance){if(k>=0&&a.interactivity.status=="mousemove"){if(a.interactivity.modes.bubble.size!=a.particles.size.value){if(a.interactivity.modes.bubble.size>a.particles.size.value){var o=g.radius+(a.interactivity.modes.bubble.size*k);
241if(o>=0){g.radius_bubble=o
242}}else{var l=g.radius-a.interactivity.modes.bubble.size,o=g.radius-(l*k);
243if(o>0){g.radius_bubble=o
244}else{g.radius_bubble=0
245}}}if(a.interactivity.modes.bubble.opacity!=a.particles.opacity.value){if(a.interactivity.modes.bubble.opacity>a.particles.opacity.value){var i=a.interactivity.modes.bubble.opacity*k;
246if(i>g.opacity&&i<=a.interactivity.modes.bubble.opacity){g.opacity_bubble=i
247}}else{var i=g.opacity-(a.particles.opacity.value-a.interactivity.modes.bubble.opacity)*k;
248if(i<g.opacity&&i>=a.interactivity.modes.bubble.opacity){g.opacity_bubble=i
249}}}}}else{n()
250}if(a.interactivity.status=="mouseleave"){n()
251}}else{if(a.interactivity.events.onclick.enable&&isInArray("bubble",a.interactivity.events.onclick.mode)){if(a.tmp.bubble_clicking){var q=g.x-a.interactivity.mouse.click_pos_x,h=g.y-a.interactivity.mouse.click_pos_y,j=Math.sqrt(q*q+h*h),m=(new Date().getTime()-a.interactivity.mouse.click_time)/1000;
252if(m>a.interactivity.modes.bubble.duration){a.tmp.bubble_duration_end=true
253}if(m>a.interactivity.modes.bubble.duration*2){a.tmp.bubble_clicking=false;
254a.tmp.bubble_duration_end=false
255}}function f(t,u,s,x,p){if(t!=u){if(!a.tmp.bubble_duration_end){if(j<=a.interactivity.modes.bubble.distance){if(s!=undefined){var r=s
256}else{var r=x
257}if(r!=t){var w=x-(m*(x-t)/a.interactivity.modes.bubble.duration);
258if(p=="size"){g.radius_bubble=w
259}if(p=="opacity"){g.opacity_bubble=w
260}}}else{if(p=="size"){g.radius_bubble=undefined
261}if(p=="opacity"){g.opacity_bubble=undefined
262}}}else{if(s!=undefined){var y=x-(m*(x-t)/a.interactivity.modes.bubble.duration),v=t-y;
263w=t+v;
264if(p=="size"){g.radius_bubble=w
265}if(p=="opacity"){g.opacity_bubble=w
266}}}}}if(a.tmp.bubble_clicking){f(a.interactivity.modes.bubble.size,a.particles.size.value,g.radius_bubble,g.radius,"size");
267f(a.interactivity.modes.bubble.opacity,a.particles.opacity.value,g.opacity_bubble,g.opacity,"opacity")
268}}}};
269a.fn.modes.repulseParticle=function(h){if(a.interactivity.events.onhover.enable&&isInArray("repulse",a.interactivity.events.onhover.mode)&&a.interactivity.status=="mousemove"){var t=h.x-a.interactivity.mouse.pos_x,l=h.y-a.interactivity.mouse.pos_y,o=Math.sqrt(t*t+l*l);
270var m={x:t/o,y:l/o},i=a.interactivity.modes.repulse.distance,j=100,k=clamp((1/i)*(-1*
270Math.pow(o/i,2)+1)*i*j,0,50);
271var q={x:h.x+m.x*k,y:h.y+m.y*k};
272if(a.particles.move.out_mode=="bounce"){if(q.x-h.radius>0&&q.x+h.radius<a.canvas.w){h.x=q.x
273}if(q.y-h.radius>0&&q.y+h.radius<a.canvas.h){h.y=q.y
274}}else{h.x=q.x;
275h.y=q.y
276}}else{if(a.interactivity.events.onclick.enable&&isInArray("repulse",a.interactivity.events.onclick.mode)){if(!a.tmp.repulse_finish){a.tmp.repulse_count++;
277if(a.tmp.repulse_count==a.particles.array.length){a.tmp.repulse_finish=true
278}}if(a.tmp.repulse_clicking){var i=Math.pow(a.interactivity.modes.repulse.distance/6,3);
279var s=a.interactivity.mouse.click_pos_x-h.x,r=a.interactivity.mouse.click_pos_y-h.y,n=s*s+r*r;
280var g=-i/n*1;
281function f(){var p=Math.atan2(r,s);
282h.vx=g*Math.cos(p);
283h.vy=g*Math.sin(p);
284if(a.particles.move.out_mode=="bounce"){var u={x:h.x+h.vx,y:h.y+h.vy};
285if(u.x+h.radius>a.canvas.w){h.vx=-h.vx
286}else{if(u.x-h.radius<0){h.vx=-h.vx
287}}if(u.y+h.radius>a.canvas.h){h.vy=-h.vy
288}else{if(u.y-h.radius<0){h.vy=-h.vy
289}}}}if(n<=i){f()
290}}else{if(a.tmp.repulse_clicking==false){h.vx=h.vx_i;
291h.vy=h.vy_i
292}}}}};
293a.fn.modes.grabParticle=function(k){if(a.interactivity.events.onhover.enable&&a.interactivity.status=="mousemove"){var g=k.x-a.interactivity.mouse.pos_x,i=k.y-a.interactivity.mouse.pos_y,j=Math.sqrt(g*g+i*i);
294if(j<=a.interactivity.modes.grab.distance){var l=a.interactivity.modes.grab.line_linked.opacity-(j/(1/a.interactivity.modes.grab.line_linked.opacity))/a.interactivity.modes.grab.distance;
295if(l>0){var f=a.particles.line_linked.color_rgb_line;
296if(a.particles.line_linked.color.indexOf("rgba")>-1){var h=b(a.particles.line_linked.color);
297a.canvas.ctx.strokeStyle="rgba("+h.r+","+h.g+","+h.b+","+h.alpha+")"
298}else{a.canvas.ctx.strokeStyle="rgba("+f.r+","+f.g+","+f.b+","+l+")"
299}a.canvas.ctx.lineWidth=a.particles.line_linked.width;
300a.canvas.ctx.beginPath();
301a.canvas.ctx.moveTo(k.x,k.y);
302a.canvas.ctx.lineTo(a.interactivity.mouse.pos_x,a.interactivity.mouse.pos_y);
303a.canvas.ctx.stroke();
304a.canvas.ctx.closePath()
305}}}};
306a.fn.vendors.eventsListeners=function(){if(a.interactivity.detect_on=="window"){a.interactivity.el=window
307}else{a.interactivity.el=a.canvas.el
308}if(a.interactivity.events.onhover.enable||a.interactivity.events.onclick.enable){a.interactivity.el.addEventListener("mousemove",function(h){if(a.interactivity.el==window){var g=h.clientX,f=h.clientY
309}else{var g=h.offsetX||h.clientX,f=h.offsetY||h.clientY
310}a.interactivity.mouse.pos_x=g;
311a.interactivity.mouse.pos_y=f;
312if(a.tmp.retina){a.interactivity.mouse.pos_x*=a.canvas.pxratio;
313a.interactivity.mouse.pos_y*=a.canvas.pxratio
314}a.interactivity.status="mousemove"
315});
316a.interactivity.el.addEventListener("mouseleave",function(f){a.interactivity.mouse.pos_x=null;
317a.interactivity.mouse.pos_y=null;
318a.interactivity.status="mouseleave"
319})
320}if(a.interactivity.events.onclick.enable){a.interactivity.el.addEventListener("click",function(){a.interactivity.mouse.click_pos_x=a.interactivity.mouse.pos_x;
321a.interactivity.mouse.click_pos_y=a.interactivity.mouse.pos_y;
322a.interactivity.mouse.click_time=new Date().getTime();
323if(a.interactivity.events.onclick.enable){switch(a.interactivity.events.onclick.mode){case"push":if(a.particles.move.enable){a.fn.modes.pushParticles(a.interactivity.modes.push.particles_nb,a.interactivity.mouse)
324}else{if(a.interactivity.modes.push.particles_nb==1){a.fn.modes.pushParticles(a.interactivity.modes.push.particles_nb,a.interactivity.mouse)
325}else{if(a.interactivity.modes.push.particles_nb>1){a.fn.modes.pushParticles(a.interactivity.modes.push.particles_nb)
326}}}break;
327case"remove":a.fn.modes.removeParticles(a.interactivity.modes.remove.particles_nb);
328break;
329case"bubble":a.tmp.bubble_clicking=true;
330break;
331case"repulse":a.tmp.repulse_clicking=true;
332a.tmp.repulse_count=0;
333a.tmp.repulse_finish=false;
334setTimeout(function(){a.tmp.repulse_clicking=false
335},a.interactivity.modes.repulse.duration*1000);
336break
337}}})
338}};
339a.fn.vendors.densityAutoParticles=function(){if(a.particles.number.density.enable){var h=a.canvas.el.width*a.canvas.el.height/1000;
340if(a.tmp.retina){h=h/(a.canvas.pxratio*2)
341}var g=h*a.particles.number.value/a.particles.number.density.value_area;
342var f=a.particles.array.length-g;
343if(f<0){a.fn.modes.pushParticles(Math.abs(f))
344}else{a.fn.modes.removeParticles(f)
345}}};
346a.fn.vendors.checkOverlap=function(m,f){for(var j=0;
347j<a.particles.array.length;
348j++){var k=a.particles.array[j];
349var h=m.x-k.x,g=m.y-k.y,l=Math.sqrt(h*h+g*g);
350if(l<=m.radius+k.radius){m.x=f?f.x:Math.random()*a.canvas.w;
351m.y=f?f.y:Math.random()*a.canvas.h;
352a.fn.vendors.checkOverlap(m)
353}}};
354a.fn.vendors.createSvgImg=function(k){var m=a.tmp.source_svg,j=/#([0-9A-F]{3,6})/gi,f=m.replace(j,function(o,s,q,n){if(k.color.rgb){var p="rgba("+k.color.rgb.r+","+k.color.rgb.g+","+k.color.rgb.b+","+k.opacity+")"
355}else{var p="hsla("+k.color.hsl.h+","+k.color.hsl.s+"%,"+k.color.hsl.l+"%,"+k.opacity+")"
356}return p
357});
358var h=new Blob([f],{type:"image/svg+xml;charset=utf-8"}),l=window.URL||window.webkitURL||window,i=l.createObjectURL(h);
359var g=new Image();
360g.addEventListener("load",function(){k.img.obj=g;
361k.img.loaded=true;
362l.revokeObjectURL(i);
363a.tmp.count_svg++
364});
365g.src=i
366};
367a.fn.vendors.destroypJS=function(){cancelAnimationFrame(a.fn.drawAnimFrame);
368c.remove();
369pJSDom=null
370};
371a.fn.vendors.drawShape=function(o,l,j,q,p,f){var m=p*f;
372var k=p/f;
373var h=(180*(k-2))/k;
374var n=Math.PI-Math.PI*h/180;
375o.save();
376o.beginPath();
377o.translate(l,j);
378o.moveTo(0,0);
379for(var g=0;
380g<m;
381g++){o.lineTo(q,0);
382o.translate(q,0);
383o.rotate(n)
384}o.fill();
385o.restore()
386};
387a.fn.vendors.exportImg=function(){window.open(a.canvas.el.toDataURL("image/png"),"_blank")
388};
389a.fn.vendors.loadImg=function(g){a.tmp.img_error=undefined;
390if(a.particles.shape.image.src!=""){if(g=="svg"){var h=new XMLHttpRequest();
391h.open("GET",a.particles.shape.image.src);
392h.onreadystatechange=function(i){if(h.readyState==4){if(h.status==200){a.tmp.source_svg=i.currentTarget.response;
393a.fn.vendors.checkBeforeDraw()
394}else{console.log("Error pJS - Image not found");
395a.tmp.img_error=true
396}}};
397h.send()
398}else{var f=new Image();
399f.addEventListener("load",function(){a.tmp.img_obj=f;
400a.fn.vendors.checkBeforeDraw()
401});
402f.src=a.particles.shape.image.src
403}}else{console.log("Error pJS - No image.src");
404a.tmp.img_error=true
405}};
406a.fn.vendors.draw=function(){if(a.particles.shape.type=="image"){if(a.tmp.img_type=="svg"){if(a.tmp.count_svg>=a.particles.number.value){a.fn.particlesDraw();
407if(!a.particles.move.enable){cancelRequestAnimFrame(a.fn.drawAnimFrame)
408}else{a.fn.drawAnimFrame=requestAnimFrame(a.fn.vendors.draw)
409}}else{if(!a.tmp.img_error){a.fn.drawAnimFrame=requestAnimFrame(a.fn.vendors.draw)
410}}}else{if(a.tmp.img_obj!=undefined){a.fn.particlesDraw();
411if(!a.particles.move.enable){cancelRequestAnimFrame(a.fn.drawAnimFrame)
412}else{a.fn.drawAnimFrame=requestAnimFrame(a.fn.vendors.draw)
413}}else{if(!a.tmp.img_error){a.fn.drawAnimFrame=requestAnimFrame(a.fn.vendors.draw)
414}}}}else{a.fn.particlesDraw();
415if(!a.particles.move.enable){cancelRequestAnimFrame(a.fn.drawAnimFrame)
416}else{a.fn.drawAnimFrame=requestAnimFrame(a.fn.vendors.draw)
417}}};
418a.fn.vendors.checkBeforeDraw=function(){if(a.particles.shape.type=="image"){if(a.tmp.img_type=="svg"&&a.tmp.source_svg==undefined){a.tmp.checkAnimFrame=requestAnimFrame(check)
419}else{cancelRequestAnimFrame(a.tmp.checkAnimFrame);
420if(!a.tmp.img_error){a.fn.vendors.init();
421a.fn.vendors.draw()
422}}}else{a.fn.vendors.init();
423a.fn.vendors.draw()
424}};
425a.fn.vendors.init=function(){a.fn.retinaInit();
426a.fn.canvasInit();
427a.fn.canvasSize();
428a.fn.canvasPaint();
429a.fn.particlesCreate();
430a.fn.vendors.densityAutoParticles();
431a.particles.line_linked.color_rgb_line=hexToRgb(a.particles.line_linked.color)
432};
433a.fn.vendors.start=function(){if(isInArray("image",a.particles.shape.type)){a.tmp.img_type=a.particles.shape.image.src.substr(a.particles.shape.image.src.length-3);
434a.fn.vendors.loadImg(a.tmp.img_type)
435}else{a.fn.vendors.checkBeforeDraw()
436}};
437a.fn.vendors.eventsListeners();
438a.fn.vendors.start()
439};
440Object.deepExtend=function(a,c){for(var b in c){if(c[b]&&c[b].constructor&&c[b].constructor===Object){a[b]=a[b]||{};
441arguments.callee(a[b],c[b])
442}else{a[b]=c[b]
443}}return a
444};
445window.requestAnimFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1000/60)
446}
447})();
448window.cancelRequestAnimFrame=(function(){return window.cancelAnimationFrame||window.webkitCancelRequestAnimationFrame||window.mozCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame||clearTimeout
449})();
450function hexToRgb(c){var b=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;
451c=c.replace(b,function(e,h,f,d){return h+h+f+f+d+d
452});
453var a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(c);
454return a?{r:parseInt(a[1],16),g:parseInt(a[2],16),b:parseInt(a[3],16)}:null
455}function clamp(c,b,a){return Math.min(Math.max(c,b),a)
456}function isInArray(a,b){return b.indexOf(a)>-1
457}window.pJSDom=[];
458window.particlesJS=function(f,e){if(typeof(f)!="string"){e=f;
459f="particles-js"
460}if(!f){f="particles-js"
461}var c=document.getElementById(f),g="particles-js-canvas-el",b=c.getElementsByClassName(g);
462if(b.length){while(b.length>0){c.removeChild(b[0])
463}}var d=document.createElement("canvas");
464d.className=g;
465d.style.width="100%";
466d.style.height="100%";
467var a=document.getElementById(f).appendChild(d);
468if(a!=null){setTimeout(function(){pJSDom.push(new pJS(f,e))
469},1000)
470}};
471window.particlesJS.load=function(c,a,d){var b=new XMLHttpRequest();
472b.open("GET",a);
473b.onreadystatechange=function(e){if(b.readyState==4){if(b.status==200){var f=JSON.parse(e.currentTarget.response);
474window.particlesJS(c,f);
475if(d){d()
476}}
476else{console.log("Error pJS - XMLHttpRequest status: "+b.status);
477console.log("Error pJS - File config not found")
478}}};
479b.send()
480};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.