tsparticles 1.42.1 → 1.42.4
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.
- package/Core/Canvas.d.ts +1 -1
- package/Core/Canvas.js +16 -7
- package/Core/Particles.js +2 -3
- package/browser/Core/Canvas.d.ts +1 -1
- package/browser/Core/Canvas.js +16 -7
- package/browser/Core/Particles.js +2 -3
- package/esm/Core/Canvas.d.ts +1 -1
- package/esm/Core/Canvas.js +16 -7
- package/esm/Core/Particles.js +2 -3
- package/package.json +15 -3
- package/report.html +2 -2
- package/report.slim.html +2 -2
- package/tsparticles.engine.js +15 -10
- package/tsparticles.engine.min.js +2 -2
- package/tsparticles.interaction.external.attract.js +15 -10
- package/tsparticles.interaction.external.attract.min.js +1 -1
- package/tsparticles.interaction.external.bounce.js +15 -10
- package/tsparticles.interaction.external.bounce.min.js +1 -1
- package/tsparticles.interaction.external.bubble.js +15 -10
- package/tsparticles.interaction.external.bubble.min.js +1 -1
- package/tsparticles.interaction.external.connect.js +15 -10
- package/tsparticles.interaction.external.connect.min.js +1 -1
- package/tsparticles.interaction.external.grab.js +15 -10
- package/tsparticles.interaction.external.grab.min.js +1 -1
- package/tsparticles.interaction.external.repulse.js +15 -10
- package/tsparticles.interaction.external.repulse.min.js +1 -1
- package/tsparticles.interaction.external.trail.js +15 -10
- package/tsparticles.interaction.external.trail.min.js +1 -1
- package/tsparticles.interaction.particles.attract.js +15 -10
- package/tsparticles.interaction.particles.attract.min.js +1 -1
- package/tsparticles.interaction.particles.collisions.js +15 -10
- package/tsparticles.interaction.particles.collisions.min.js +1 -1
- package/tsparticles.interaction.particles.links.js +15 -10
- package/tsparticles.interaction.particles.links.min.js +1 -1
- package/tsparticles.js +15 -10
- package/tsparticles.min.js +2 -2
- package/tsparticles.pathseg.min.js +1 -1
- package/tsparticles.plugins.absorbers.js +15 -10
- package/tsparticles.plugins.absorbers.min.js +1 -1
- package/tsparticles.plugins.emitters.js +15 -10
- package/tsparticles.plugins.emitters.min.js +1 -1
- package/tsparticles.plugins.polygonMask.js +15 -10
- package/tsparticles.plugins.polygonMask.min.js +1 -1
- package/tsparticles.shape.circle.min.js +1 -1
- package/tsparticles.shape.image.js +15 -10
- package/tsparticles.shape.image.min.js +1 -1
- package/tsparticles.shape.line.min.js +1 -1
- package/tsparticles.shape.polygon.min.js +1 -1
- package/tsparticles.shape.square.min.js +1 -1
- package/tsparticles.shape.star.min.js +1 -1
- package/tsparticles.shape.text.js +15 -10
- package/tsparticles.shape.text.min.js +1 -1
- package/tsparticles.slim.js +15 -10
- package/tsparticles.slim.min.js +2 -2
- package/tsparticles.updater.angle.js +15 -10
- package/tsparticles.updater.angle.min.js +1 -1
- package/tsparticles.updater.color.js +15 -10
- package/tsparticles.updater.color.min.js +1 -1
- package/tsparticles.updater.life.js +15 -10
- package/tsparticles.updater.life.min.js +1 -1
- package/tsparticles.updater.opacity.js +15 -10
- package/tsparticles.updater.opacity.min.js +1 -1
- package/tsparticles.updater.outModes.js +15 -10
- package/tsparticles.updater.outModes.min.js +1 -1
- package/tsparticles.updater.roll.js +15 -10
- package/tsparticles.updater.roll.min.js +1 -1
- package/tsparticles.updater.size.js +15 -10
- package/tsparticles.updater.size.min.js +1 -1
- package/tsparticles.updater.strokeColor.js +15 -10
- package/tsparticles.updater.strokeColor.min.js +1 -1
- package/tsparticles.updater.tilt.js +15 -10
- package/tsparticles.updater.tilt.min.js +1 -1
- package/tsparticles.updater.wobble.js +15 -10
- package/tsparticles.updater.wobble.min.js +1 -1
- package/umd/Core/Canvas.d.ts +1 -1
- package/umd/Core/Canvas.js +16 -7
- package/umd/Core/Particles.js +2 -3
|
@@ -2093,9 +2093,9 @@
|
|
|
2093
2093
|
paint() {
|
|
2094
2094
|
const options = this.container.actualOptions;
|
|
2095
2095
|
this.draw((ctx => {
|
|
2096
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
2096
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
2097
2097
|
clear(ctx, this.size);
|
|
2098
|
-
this.paintBase(
|
|
2098
|
+
this.paintBase(this.coverColorStyle);
|
|
2099
2099
|
} else {
|
|
2100
2100
|
this.paintBase();
|
|
2101
2101
|
}
|
|
@@ -2138,11 +2138,16 @@
|
|
|
2138
2138
|
const container = this.container;
|
|
2139
2139
|
const pxRatio = container.retina.pixelRatio;
|
|
2140
2140
|
const size = container.canvas.size;
|
|
2141
|
+
const newSize = {
|
|
2142
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2143
|
+
height: this.element.offsetHeight * pxRatio
|
|
2144
|
+
};
|
|
2145
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2146
|
+
return;
|
|
2147
|
+
}
|
|
2141
2148
|
const oldSize = Object.assign({}, size);
|
|
2142
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2143
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2144
|
-
this.element.width = size.width;
|
|
2145
|
-
this.element.height = size.height;
|
|
2149
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2150
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2146
2151
|
if (this.container.started) {
|
|
2147
2152
|
this.resizeFactor = {
|
|
2148
2153
|
width: size.width / oldSize.width,
|
|
@@ -2266,12 +2271,13 @@
|
|
|
2266
2271
|
const color = cover.color;
|
|
2267
2272
|
const coverRgb = colorToRgb(color);
|
|
2268
2273
|
if (coverRgb) {
|
|
2269
|
-
|
|
2274
|
+
const coverColor = {
|
|
2270
2275
|
r: coverRgb.r,
|
|
2271
2276
|
g: coverRgb.g,
|
|
2272
2277
|
b: coverRgb.b,
|
|
2273
2278
|
a: cover.opacity
|
|
2274
2279
|
};
|
|
2280
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2275
2281
|
}
|
|
2276
2282
|
}
|
|
2277
2283
|
initTrail() {
|
|
@@ -4458,10 +4464,9 @@
|
|
|
4458
4464
|
delete container.canvas.resizeFactor;
|
|
4459
4465
|
}
|
|
4460
4466
|
async draw(delta) {
|
|
4461
|
-
const container = this.container;
|
|
4462
|
-
container.canvas.clear();
|
|
4463
|
-
const canvasSize = this.container.canvas.size;
|
|
4467
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4464
4468
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4469
|
+
container.canvas.clear();
|
|
4465
4470
|
await this.update(delta);
|
|
4466
4471
|
if (this.needsSort) {
|
|
4467
4472
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(window,(function(){return function(){"use strict";var t={d:function(e,n){for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})},o:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function n(t,e){const n=t.x-e.x,o=t.y-e.y;return{dx:n,dy:o,distance:Math.sqrt(n*n+o*o)}}function o(t,e){switch(e){case"ease-out-quad":return 1-(1-t)**2;case"ease-out-cubic":return 1-(1-t)**3;case"ease-out-quart":return 1-(1-t)**4;case"ease-out-quint":return 1-(1-t)**5;case"ease-out-expo":return 1===t?1:1-Math.pow(2,-10*t);case"ease-out-sine":return Math.sin(t*Math.PI/2);case"ease-out-back":{const e=1.70158;return 1+(e+1)*Math.pow(t-1,3)+e*Math.pow(t-1,2)}case"ease-out-circ":return Math.sqrt(1-Math.pow(t-1,2));default:return t}}function a(t,e){return t===e||e instanceof Array&&e.indexOf(t)>-1}t.r(e),t.d(e,{loadExternalAttractInteraction:function(){return u}});class i extends class{constructor(t,e){this.position={x:t,y:e}}}{constructor(t,e,n){super(t,e),this.radius=n}contains(t){return e=t,o=this.position,n(e,o).distance<=this.radius;var e,o}intersects(t){const e=t,n=t,o=this.position,a=t.position,i=Math.abs(a.x-o.x),r=Math.abs(a.y-o.y),s=this.radius;if(void 0!==n.radius){return s+n.radius>Math.sqrt(i*i+r+r)}if(void 0!==e.size){const t=e.size.width,n=e.size.height,o=Math.pow(i-t,2)+Math.pow(r-n,2);return!(i>s+t||r>s+n)&&(i<=t||r<=n||o<=s*s)}return!1}}class r{}r.generatedAttribute="generated",r.randomColorValue="random",r.midColorValue="mid",r.touchEndEvent="touchend",r.mouseDownEvent="mousedown",r.mouseUpEvent="mouseup",r.mouseMoveEvent="mousemove",r.touchStartEvent="touchstart",r.touchMoveEvent="touchmove",r.mouseLeaveEvent="mouseleave",r.mouseOutEvent="mouseout",r.touchCancelEvent="touchcancel",r.resizeEvent="resize",r.visibilityChangeEvent="visibilitychange",r.noPolygonDataLoaded="No polygon data loaded.",r.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;class s{constructor(t,e){let n,o;if(void 0===e){if("number"==typeof t)throw new Error("tsParticles - Vector not initialized correctly");const e=t;[n,o]=[e.x,e.y]}else[n,o]=[t,e];this.x=n,this.y=o}static clone(t){return s.create(t.x,t.y)}static create(t,e){return new s(t,e)}static get origin(){return s.create(0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(t){this.updateFromAngle(t,this.length)}get length(){return Math.sqrt(this.x**2+this.y**2)}set length(t){this.updateFromAngle(this.angle,t)}add(t){return s.create(this.x+t.x,this.y+t.y)}addTo(t){this.x+=t.x,this.y+=t.y}sub(t){return s.create(this.x-t.x,this.y-t.y)}subFrom(t){this.x-=t.x,this.y-=t.y}mult(t){return s.create(this.x*t,this.y*t)}multTo(t){this.x*=t,this.y*=t}div(t){return s.create(this.x/t,this.y/t)}divTo(t){this.x/=t,this.y/=t}distanceTo(t){return this.sub(t).length}getLengthSq(){return this.x**2+this.y**2}distanceToSq(t){return this.sub(t).getLengthSq()}manhattanDistanceTo(t){return Math.abs(t.x-this.x)+Math.abs(t.y-this.y)}copy(){return s.clone(this)}setTo(t){this.x=t.x,this.y=t.y}rotate(t){return s.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t))}updateFromAngle(t,e){this.x=Math.cos(t)*e,this.y=Math.sin(t)*e}}new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class c extends class{constructor(t){this.container=t,this.type=0}}{constructor(t){super(t)}isEnabled(){const t=this.container,e=t.actualOptions,n=t.interactivity.mouse,o=e.interactivity.events;if(!(n.position&&o.onHover.enable||n.clickPosition&&o.onClick.enable))return!1;const i=o.onHover.mode,r=o.onClick.mode;return a("attract",i)||a("attract",r)}reset(){}async interact(){const t=this.container,e=t.actualOptions,n=t.interactivity.status===r.mouseMoveEvent,o=e.interactivity.events,i=o.onHover.enable,s=o.onHover.mode,c=o.onClick.enable,u=o.onClick.mode;n&&i&&a("attract",s)?this.hoverAttract():c&&a("attract",u)&&this.clickAttract()}hoverAttract(){const t=this.container,e=t.interactivity.mouse.position;if(!e)return;const n=t.retina.attractModeDistance;this.processAttract(e,n,new i(e.x,e.y,n))}processAttract(t,e,a){const i=this.container,r=i.actualOptions.interactivity.modes.attract,c=i.particles.quadTree.query(a);for(const a of c){const{dx:i,dy:c,distance:l}=n(a.position,t),y=r.speed*r.factor,p=(u=o(1-l/e,r.easing)*y,h=0,d=r.maxSpeed,Math.min(Math.max(u,h),d)),v=s.create(0===l?y:i/l*p,0===l?y:c/l*p);a.position.subFrom(v)}var u,h,d}clickAttract(){const t=this.container;if(t.attract.finish||(t.attract.count||(t.attract.count=0),t.attract.count++,t.attract.count===t.particles.count&&(t.attract.finish=!0)),t.attract.clicking){const e=t.interactivity.mouse.clickPosition;if(!e)return;const n=t.retina.attractModeDistance;this.processAttract(e,n,new i(e.x,e.y,n))}else!1===t.attract.clicking&&(t.attract.particles=[])}}async function u(t){await t.addInteractor("externalAttract",(t=>new c(t)))}return e}()}));
|
|
@@ -2125,9 +2125,9 @@
|
|
|
2125
2125
|
paint() {
|
|
2126
2126
|
const options = this.container.actualOptions;
|
|
2127
2127
|
this.draw((ctx => {
|
|
2128
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
2128
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
2129
2129
|
clear(ctx, this.size);
|
|
2130
|
-
this.paintBase(
|
|
2130
|
+
this.paintBase(this.coverColorStyle);
|
|
2131
2131
|
} else {
|
|
2132
2132
|
this.paintBase();
|
|
2133
2133
|
}
|
|
@@ -2170,11 +2170,16 @@
|
|
|
2170
2170
|
const container = this.container;
|
|
2171
2171
|
const pxRatio = container.retina.pixelRatio;
|
|
2172
2172
|
const size = container.canvas.size;
|
|
2173
|
+
const newSize = {
|
|
2174
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2175
|
+
height: this.element.offsetHeight * pxRatio
|
|
2176
|
+
};
|
|
2177
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2178
|
+
return;
|
|
2179
|
+
}
|
|
2173
2180
|
const oldSize = Object.assign({}, size);
|
|
2174
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2175
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2176
|
-
this.element.width = size.width;
|
|
2177
|
-
this.element.height = size.height;
|
|
2181
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2182
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2178
2183
|
if (this.container.started) {
|
|
2179
2184
|
this.resizeFactor = {
|
|
2180
2185
|
width: size.width / oldSize.width,
|
|
@@ -2298,12 +2303,13 @@
|
|
|
2298
2303
|
const color = cover.color;
|
|
2299
2304
|
const coverRgb = colorToRgb(color);
|
|
2300
2305
|
if (coverRgb) {
|
|
2301
|
-
|
|
2306
|
+
const coverColor = {
|
|
2302
2307
|
r: coverRgb.r,
|
|
2303
2308
|
g: coverRgb.g,
|
|
2304
2309
|
b: coverRgb.b,
|
|
2305
2310
|
a: cover.opacity
|
|
2306
2311
|
};
|
|
2312
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2307
2313
|
}
|
|
2308
2314
|
}
|
|
2309
2315
|
initTrail() {
|
|
@@ -4490,10 +4496,9 @@
|
|
|
4490
4496
|
delete container.canvas.resizeFactor;
|
|
4491
4497
|
}
|
|
4492
4498
|
async draw(delta) {
|
|
4493
|
-
const container = this.container;
|
|
4494
|
-
container.canvas.clear();
|
|
4495
|
-
const canvasSize = this.container.canvas.size;
|
|
4499
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4496
4500
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4501
|
+
container.canvas.clear();
|
|
4497
4502
|
await this.update(delta);
|
|
4498
4503
|
if (this.needsSort) {
|
|
4499
4504
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var o=e();for(var n in o)("object"==typeof exports?exports:t)[n]=o[n]}}(window,(function(){return function(){"use strict";var t={d:function(e,o){for(var n in o)t.o(o,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:o[n]})},o:function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function o(t){return"number"==typeof t?t:function(t){const e=i(t);let o=n(t);return e===o&&(o=0),Math.random()*(e-o)+o}(t)}function n(t){return"number"==typeof t?t:t.min}function i(t){return"number"==typeof t?t:t.max}function s(t,e){if(t===e||void 0===e&&"number"==typeof t)return t;const o=n(t),r=i(t);return void 0!==e?{min:Math.min(o,e),max:Math.max(r,e)}:s(o,r)}function r(t){const e=t.random,{enable:n,minimumValue:i}="boolean"==typeof e?{enable:e,minimumValue:0}:e;return o(n?s(t.value,i):t.value)}function a(t,e){const o=t.x-e.x,n=t.y-e.y;return{dx:o,dy:n,distance:Math.sqrt(o*o+n*n)}}function c(t,e,o,n){return b.create(t.x*(o-n)/(o+n)+2*e.x*n/(o+n),t.y)}function u(t,e,o,n,i,s){const r={bounced:!1};return e.min>=n.min&&e.min<=n.max&&e.max>=n.min&&e.max<=n.max&&(t.max>=o.min&&t.max<=(o.max+o.min)/2&&i>0||t.min<=o.max&&t.min>(o.max+o.min)/2&&i<0)&&(r.velocity=i*-s,r.bounced=!0),r}function h(t,e){return t===e||e instanceof Array&&e.indexOf(t)>-1}function y(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function l(t,e){const o=t.selectors;if(o instanceof Array)for(const n of o)e(n,t);else e(o,t)}function f(t,e){const{x:o,y:n}=t.velocity.sub(e.velocity),[i,s]=[t.position,e.position],{dx:r,dy:u}=a(s,i);if(o*r+n*u>=0){const o=-Math.atan2(u,r),n=t.mass,i=e.mass,s=t.velocity.rotate(o),a=e.velocity.rotate(o),h=c(s,a,n,i),y=c(a,s,n,i),l=h.rotate(-o),f=y.rotate(-o);t.velocity.x=l.x*t.factor.x,t.velocity.y=l.y*t.factor.y,e.velocity.x=f.x*e.factor.x,e.velocity.y=f.y*e.factor.y}}function d(t,e){const o=y(t.getPosition(),t.getRadius()),n=u({min:o.left,max:o.right},{min:o.top,max:o.bottom},{min:e.left,max:e.right},{min:e.top,max:e.bottom},t.velocity.x,r(t.options.bounce.horizontal));n.bounced&&(void 0!==n.velocity&&(t.velocity.x=n.velocity),void 0!==n.position&&(t.position.x=n.position));const i=u({min:o.top,max:o.bottom},{min:o.left,max:o.right},{min:e.top,max:e.bottom},{min:e.left,max:e.right},t.velocity.y,r(t.options.bounce.vertical));i.bounced&&(void 0!==i.velocity&&(t.velocity.y=i.velocity),void 0!==i.position&&(t.position.y=i.position))}t.r(e),t.d(e,{loadExternalBounceInteraction:function(){return M}});class m{constructor(t,e){this.position={x:t,y:e}}}class x extends m{constructor(t,e,o){super(t,e),this.radius=o}contains(t){return e=t,o=this.position,a(e,o).distance<=this.radius;var e,o}intersects(t){const e=t,o=t,n=this.position,i=t.position,s=Math.abs(i.x-n.x),r=Math.abs(i.y-n.y),a=this.radius;if(void 0!==o.radius){return a+o.radius>Math.sqrt(s*s+r+r)}if(void 0!==e.size){const t=e.size.width,o=e.size.height,n=Math.pow(s-t,2)+Math.pow(r-o,2);return!(s>a+t||r>a+o)&&(s<=t||r<=o||n<=a*a)}return!1}}class p{}p.generatedAttribute="generated",p.randomColorValue="random",p.midColorValue="mid",p.touchEndEvent="touchend",p.mouseDownEvent="mousedown",p.mouseUpEvent="mouseup",p.mouseMoveEvent="mousemove",p.touchStartEvent="touchstart",p.touchMoveEvent="touchmove",p.mouseLeaveEvent="mouseleave",p.mouseOutEvent="mouseout",p.touchCancelEvent="touchcancel",p.resizeEvent="resize",p.visibilityChangeEvent="visibilitychange",p.noPolygonDataLoaded="No polygon data loaded.",p.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;class v extends m{constructor(t,e,o,n){super(t,e),this.size={height:n,width:o}}contains(t){const e=this.size.width,o=this.size.height,n=this.position;return t.x>=n.x&&t.x<=n.x+e&&t.y>=n.y&&t.y<=n.y+o}intersects(t){const e=t,o=t,n=this.size.width,i=this.size.height,s=this.position,r=t.position;if(void 0!==o.radius)return o.intersects(this);if(void 0!==e.size){const t=e.size,o=t.width,a=t.height;return r.x<s.x+n&&r.x+o>s.x&&r.y<s.y+i&&r.y+a>s.y}return!1}}class b{constructor(t,e){let o,n;if(void 0===e){if("number"==typeof t)throw new Error("tsParticles - Vector not initialized correctly");const e=t;[o,n]=[e.x,e.y]}else[o,n]=[t,e];this.x=o,this.y=n}static clone(t){return b.create(t.x,t.y)}static create(t,e){return new b(t,e)}static get origin(){return b.create(0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(t){this.updateFromAngle(t,this.length)}get length(){return Math.sqrt(this.x**2+this.y**2)}set length(t){this.updateFromAngle(this.angle,t)}add(t){return b.create(this.x+t.x,this.y+t.y)}addTo(t){this.x+=t.x,this.y+=t.y}sub(t){return b.create(this.x-t.x,this.y-t.y)}subFrom(t){this.x-=t.x,this.y-=t.y}mult(t){return b.create(this.x*t,this.y*t)}multTo(t){this.x*=t,this.y*=t}div(t){return b.create(this.x/t,this.y/t)}divTo(t){this.x/=t,this.y/=t}distanceTo(t){return this.sub(t).length}getLengthSq(){return this.x**2+this.y**2}distanceToSq(t){return this.sub(t).getLengthSq()}manhattanDistanceTo(t){return Math.abs(t.x-this.x)+Math.abs(t.y-this.y)}copy(){return b.clone(this)}setTo(t){this.x=t.x,this.y=t.y}rotate(t){return b.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t))}updateFromAngle(t,e){this.x=Math.cos(t)*e,this.y=Math.sin(t)*e}}new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class g extends class{constructor(t){this.container=t,this.type=0}}{constructor(t){super(t)}isEnabled(){const t=this.container,e=t.actualOptions,o=t.interactivity.mouse,n=e.interactivity.events,i=n.onDiv;return o.position&&n.onHover.enable&&h("bounce",n.onHover.mode)||function(t,e){return e instanceof Array?!!e.find((e=>e.enable&&h(t,e.mode))):h(t,e.mode)}("bounce",i)}async interact(){const t=this.container,e=t.actualOptions.interactivity.events,o=t.interactivity.status===p.mouseMoveEvent,n=e.onHover.enable,i=e.onHover.mode,s=e.onDiv;o&&n&&h("bounce",i)?this.processMouseBounce():function(t,e,o){if(e instanceof Array)for(const n of e){const e=n.mode;n.enable&&h(t,e)&&l(n,o)}else{const n=e.mode;e.enable&&h(t,n)&&l(e,o)}}("bounce",s,((t,e)=>this.singleSelectorBounce(t,e)))}reset(){}processMouseBounce(){const t=this.container,e=10*t.retina.pixelRatio,o=t.interactivity.mouse.position,n=t.retina.bounceModeDistance;o&&this.processBounce(o,n,new x(o.x,o.y,n+e))}singleSelectorBounce(t,e){const o=this.container,n=document.querySelectorAll(t);n.length&&n.forEach((t=>{const n=t,i=o.retina.pixelRatio,s={x:(n.offsetLeft+n.offsetWidth/2)*i,y:(n.offsetTop+n.offsetHeight/2)*i},r=n.offsetWidth/2*i,a=10*i,c="circle"===e.type?new x(s.x,s.y,r+a):new v(n.offsetLeft*i-a,n.offsetTop*i-a,n.offsetWidth*i+2*a,n.offsetHeight*i+2*a);this.processBounce(s,r,c)}))}processBounce(t,e,o){const n=this.container.particles.quadTree.query(o);for(const s of n)o instanceof x?f({position:(i=s).getPosition(),radius:i.getRadius(),mass:i.getMass(),velocity:i.velocity,factor:b.create(r(i.options.bounce.horizontal),r(i.options.bounce.vertical))},{position:t,radius:e,mass:e**2*Math.PI/2,velocity:b.origin,factor:b.origin}):o instanceof v&&d(s,y(t,e));var i}}async function M(t){await t.addInteractor("externalBounce",(t=>new g(t)))}return e}()}));
|
|
@@ -2034,9 +2034,9 @@
|
|
|
2034
2034
|
paint() {
|
|
2035
2035
|
const options = this.container.actualOptions;
|
|
2036
2036
|
this.draw((ctx => {
|
|
2037
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
2037
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
2038
2038
|
clear(ctx, this.size);
|
|
2039
|
-
this.paintBase(
|
|
2039
|
+
this.paintBase(this.coverColorStyle);
|
|
2040
2040
|
} else {
|
|
2041
2041
|
this.paintBase();
|
|
2042
2042
|
}
|
|
@@ -2079,11 +2079,16 @@
|
|
|
2079
2079
|
const container = this.container;
|
|
2080
2080
|
const pxRatio = container.retina.pixelRatio;
|
|
2081
2081
|
const size = container.canvas.size;
|
|
2082
|
+
const newSize = {
|
|
2083
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2084
|
+
height: this.element.offsetHeight * pxRatio
|
|
2085
|
+
};
|
|
2086
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2087
|
+
return;
|
|
2088
|
+
}
|
|
2082
2089
|
const oldSize = Object.assign({}, size);
|
|
2083
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2084
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2085
|
-
this.element.width = size.width;
|
|
2086
|
-
this.element.height = size.height;
|
|
2090
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2091
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2087
2092
|
if (this.container.started) {
|
|
2088
2093
|
this.resizeFactor = {
|
|
2089
2094
|
width: size.width / oldSize.width,
|
|
@@ -2207,12 +2212,13 @@
|
|
|
2207
2212
|
const color = cover.color;
|
|
2208
2213
|
const coverRgb = colorToRgb(color);
|
|
2209
2214
|
if (coverRgb) {
|
|
2210
|
-
|
|
2215
|
+
const coverColor = {
|
|
2211
2216
|
r: coverRgb.r,
|
|
2212
2217
|
g: coverRgb.g,
|
|
2213
2218
|
b: coverRgb.b,
|
|
2214
2219
|
a: cover.opacity
|
|
2215
2220
|
};
|
|
2221
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2216
2222
|
}
|
|
2217
2223
|
}
|
|
2218
2224
|
initTrail() {
|
|
@@ -4399,10 +4405,9 @@
|
|
|
4399
4405
|
delete container.canvas.resizeFactor;
|
|
4400
4406
|
}
|
|
4401
4407
|
async draw(delta) {
|
|
4402
|
-
const container = this.container;
|
|
4403
|
-
container.canvas.clear();
|
|
4404
|
-
const canvasSize = this.container.canvas.size;
|
|
4408
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4405
4409
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4410
|
+
container.canvas.clear();
|
|
4406
4411
|
await this.update(delta);
|
|
4407
4412
|
if (this.needsSort) {
|
|
4408
4413
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function o(e,t,o){return Math.min(Math.max(e,t),o)}function n(e,t,o,n){return Math.floor((e*o+t*n)/(o+n))}function i(e){const t=s(e);let o=r(e);return t===o&&(o=0),Math.random()*(t-o)+o}function r(e){return"number"==typeof e?e:e.min}function s(e){return"number"==typeof e?e:e.max}function a(e,t){if(e===t||void 0===t&&"number"==typeof e)return e;const o=r(e),n=s(e);return void 0!==t?{min:Math.min(o,t),max:Math.max(n,t)}:a(o,n)}function l(e,t){return function(e,t){const o=e.x-t.x,n=e.y-t.y;return{dx:o,dy:n,distance:Math.sqrt(o*o+n*n)}}(e,t).distance}function u(e,t){if(t instanceof Array){for(const o of t)if(e.matches(o))return!0;return!1}return e.matches(t)}function b(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}function c(e,t,o=!0){return e[void 0!==t&&o?t%e.length:function(e){return Math.floor(Math.random()*e.length)}(e)]}function d(e,t){const o=e.selectors;if(o instanceof Array)for(const n of o)t(n,e);else t(o,e)}function f(e,t){if(t&&e)return e instanceof Array?e.find((e=>u(t,e.selectors))):u(t,e.selectors)?e:void 0}function v(e,t,o){let n=o;return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function h(e){if(e.startsWith("rgb")){const t=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return t?{a:t.length>4?parseFloat(t[5]):1,b:parseInt(t[3],10),g:parseInt(t[2],10),r:parseInt(t[1],10)}:void 0}if(e.startsWith("hsl")){const t=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return t?function(e){const t=g(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}({a:t.length>4?parseFloat(t[5]):1,h:parseInt(t[1],10),l:parseInt(t[3],10),s:parseInt(t[2],10)}):void 0}if(e.startsWith("hsv")){const t=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return t?function(e){const t=m(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}({a:t.length>4?parseFloat(t[5]):1,h:parseInt(t[1],10),s:parseInt(t[2],10),v:parseInt(t[3],10)}):void 0}{const t=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,o=e.replace(t,((e,t,o,n,i)=>t+t+o+o+n+n+(void 0!==i?i+i:""))),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(o);return n?{a:void 0!==n[4]?parseInt(n[4],16)/255:1,b:parseInt(n[3],16),g:parseInt(n[2],16),r:parseInt(n[1],16)}:void 0}}function p(e,t,o=!0){var n,i,r;if(void 0===e)return;const s="string"==typeof e?{value:e}:e;let a;if("string"==typeof s.value)a=s.value===O.randomColorValue?M():function(e){return h(e)}(s.value);else if(s.value instanceof Array){a=p({value:c(s.value,t,o)})}else{const e=s.value,t=null!==(n=e.rgb)&&void 0!==n?n:s.value;if(void 0!==t.r)a=t;else{const t=null!==(i=e.hsl)&&void 0!==i?i:s.value;if(void 0!==t.h&&void 0!==t.l)a=g(t);else{const t=null!==(r=e.hsv)&&void 0!==r?r:s.value;void 0!==t.h&&void 0!==t.v&&(a=m(t))}}}return a}function y(e){const t=e.r/255,o=e.g/255,n=e.b/255,i=Math.max(t,o,n),r=Math.min(t,o,n),s={h:0,l:(i+r)/2,s:0};return i!=r&&(s.s=s.l<.5?(i-r)/(i+r):(i-r)/(2-i-r),s.h=t===i?(o-n)/(i-r):s.h=o===i?2+(n-t)/(i-r):4+(t-o)/(i-r)),s.l*=100,s.s*=100,s.h*=60,s.h<0&&(s.h+=360),s}function g(e){const t={b:0,g:0,r:0},o={h:e.h/360,l:e.l/100,s:e.s/100};if(0===o.s)t.b=o.l,t.g=o.l,t.r=o.l;else{const e=o.l<.5?o.l*(1+o.s):o.l+o.s-o.l*o.s,n=2*o.l-e;t.r=v(n,e,o.h+1/3),t.g=v(n,e,o.h),t.b=v(n,e,o.h-1/3)}return t.r=Math.floor(255*t.r),t.g=Math.floor(255*t.g),t.b=Math.floor(255*t.b),t}function m(e){const t={b:0,g:0,r:0},o=e.h/60,n=e.s/100,i=e.v/100,r=i*n,s=r*(1-Math.abs(o%2-1));let a;if(o>=0&&o<=1?a={r:r,g:s,b:0}:o>1&&o<=2?a={r:s,g:r,b:0}:o>2&&o<=3?a={r:0,g:r,b:s}:o>3&&o<=4?a={r:0,g:s,b:r}:o>4&&o<=5?a={r:s,g:0,b:r}:o>5&&o<=6&&(a={r:r,g:0,b:s}),a){const e=i-r;t.r=Math.floor(255*(a.r+e)),t.g=Math.floor(255*(a.g+e)),t.b=Math.floor(255*(a.b+e))}return t}function M(e){const t=null!=e?e:0;return{b:Math.floor(i(a(t,256))),g:Math.floor(i(a(t,256))),r:Math.floor(i(a(t,256)))}}function x(e,t,o,i){let r=e,s=t;return void 0===r.r&&(r=g(e)),void 0===s.r&&(s=g(t)),{b:n(r.b,s.b,o,i),g:n(r.g,s.g,o,i),r:n(r.r,s.r,o,i)}}e.r(t),e.d(t,{loadExternalBubbleInteraction:function(){return B}});class z{constructor(e,t){this.position={x:e,y:t}}}class w extends z{constructor(e,t,o){super(e,t),this.radius=o}contains(e){return l(e,this.position)<=this.radius}intersects(e){const t=e,o=e,n=this.position,i=e.position,r=Math.abs(i.x-n.x),s=Math.abs(i.y-n.y),a=this.radius;if(void 0!==o.radius){return a+o.radius>Math.sqrt(r*r+s+s)}if(void 0!==t.size){const e=t.size.width,o=t.size.height,n=Math.pow(r-e,2)+Math.pow(s-o,2);return!(r>a+e||s>a+o)&&(r<=e||s<=o||n<=a*a)}return!1}}class O{}O.generatedAttribute="generated",O.randomColorValue="random",O.midColorValue="mid",O.touchEndEvent="touchend",O.mouseDownEvent="mousedown",O.mouseUpEvent="mouseup",O.mouseMoveEvent="mousemove",O.touchStartEvent="touchstart",O.touchMoveEvent="touchmove",O.mouseLeaveEvent="mouseleave",O.mouseOutEvent="mouseout",O.touchCancelEvent="touchcancel",O.resizeEvent="resize",O.visibilityChangeEvent="visibilitychange",O.noPolygonDataLoaded="No polygon data loaded.",O.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;class E extends z{constructor(e,t,o,n){super(e,t),this.size={height:n,width:o}}contains(e){const t=this.size.width,o=this.size.height,n=this.position;return e.x>=n.x&&e.x<=n.x+t&&e.y>=n.y&&e.y<=n.y+o}intersects(e){const t=e,o=e,n=this.size.width,i=this.size.height,r=this.position,s=e.position;if(void 0!==o.radius)return o.intersects(this);if(void 0!==t.size){const e=t.size,o=e.width,a=e.height;return s.x<r.x+n&&s.x+o>r.x&&s.y<r.y+i&&s.y+a>r.y}return!1}}new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;function C(e,t,n,i){if(t>=n){return o(e+(t-n)*i,e,t)}if(t<n){return o(e-(n-t)*i,t,e)}}new WeakMap;class k extends class{constructor(e){this.container=e,this.type=0}}{constructor(e){super(e)}isEnabled(){const e=this.container,t=e.actualOptions,o=e.interactivity.mouse,n=t.interactivity.events,i=function(e,t){return t instanceof Array?!!t.find((t=>t.enable&&b(e,t.mode))):b(e,t.mode)}("bubble",n.onDiv);if(!(i||n.onHover.enable&&o.position||n.onClick.enable&&o.clickPosition))return!1;const r=n.onHover.mode,s=n.onClick.mode;return b("bubble",r)||b("bubble",s)||i}reset(e,t){e.bubble.inRange&&!t||(delete e.bubble.div,delete e.bubble.opacity,delete e.bubble.radius,delete e.bubble.color)}async interact(){const e=this.container.actualOptions.interactivity.events,t=e.onHover,o=e.onClick,n=t.enable,i=t.mode,r=o.enable,s=o.mode,a=e.onDiv;n&&b("bubble",i)?this.hoverBubble():r&&b("bubble",s)?this.clickBubble():function(e,t,o){if(t instanceof Array)for(const n of t){const t=n.mode;n.enable&&b(e,t)&&d(n,o)}else{const n=t.mode;t.enable&&b(e,n)&&d(t,o)}}("bubble",a,((e,t)=>this.singleSelectorHover(e,t)))}singleSelectorHover(e,t){const o=this.container,n=document.querySelectorAll(e);n.length&&n.forEach((e=>{const n=e,i=o.retina.pixelRatio,r={x:(n.offsetLeft+n.offsetWidth/2)*i,y:(n.offsetTop+n.offsetHeight/2)*i},s=n.offsetWidth/2*i,a="circle"===t.type?new w(r.x,r.y,s):new E(n.offsetLeft*i,n.offsetTop*i,n.offsetWidth*i,n.offsetHeight*i),l=o.particles.quadTree.query(a);for(const e of l){if(!a.contains(e.getPosition()))continue;e.bubble.inRange=!0;const t=f(o.actualOptions.interactivity.modes.bubble.divs,n);e.bubble.div&&e.bubble.div===n||(this.reset(e,!0),e.bubble.div=n),this.hoverBubbleSize(e,1,t),this.hoverBubbleOpacity(e,1,t),this.hoverBubbleColor(e,1,t)}}))}process(e,t,o,n){const i=this.container,r=n.bubbleObj.optValue;if(void 0===r)return;const s=i.actualOptions.interactivity.modes.bubble.duration,a=i.retina.bubbleModeDistance,l=n.particlesObj.optValue,u=n.bubbleObj.value,b=n.particlesObj.value||0,c=n.type;if(r!==l)if(i.bubble.durationEnd)u&&("size"===c&&delete e.bubble.radius,"opacity"===c&&delete e.bubble.opacity);else if(t<=a){if((null!=u?u:b)!==r){const t=b-o*(b-r)/s;"size"===c&&(e.bubble.radius=t),"opacity"===c&&(e.bubble.opacity=t)}}else"size"===c&&delete e.bubble.radius,"opacity"===c&&delete e.bubble.opacity}clickBubble(){var e,t;const o=this.container,n=o.actualOptions,i=o.interactivity.mouse.clickPosition;if(!i)return;const r=o.retina.bubbleModeDistance,a=o.particles.quadTree.queryCircle(i,r);for(const r of a){if(!o.bubble.clicking)continue;r.bubble.inRange=!o.bubble.durationEnd;const a=l(r.getPosition(),i),u=((new Date).getTime()-(o.interactivity.mouse.clickTime||0))/1e3;u>n.interactivity.modes.bubble.duration&&(o.bubble.durationEnd=!0),u>2*n.interactivity.modes.bubble.duration&&(o.bubble.clicking=!1,o.bubble.durationEnd=!1);const b={bubbleObj:{optValue:o.retina.bubbleModeSize,value:r.bubble.radius},particlesObj:{optValue:s(r.options.size.value)*o.retina.pixelRatio,value:r.size.value},type:"size"};this.process(r,a,u,b);const c={bubbleObj:{optValue:n.interactivity.modes.bubble.opacity,value:r.bubble.opacity},particlesObj:{optValue:s(r.options.opacity.value),value:null!==(t=null===(e=r.opacity)||void 0===e?void 0:e.value)&&void 0!==t?t:1},type:"opacity"};this.process(r,a,u,c),o.bubble.durationEnd?delete r.bubble.color:a<=o.retina.bubbleModeDistance?this.hoverBubbleColor(r,a):delete r.bubble.color}}hoverBubble(){const e=this.container,t=e.interactivity.mouse.position;if(void 0===t)return;const o=e.retina.bubbleModeDistance,n=e.particles.quadTree.queryCircle(t,o);for(const i of n){i.bubble.inRange=!0;const n=l(i.getPosition(),t),r=1-n/o;n<=o?r>=0&&e.interactivity.status===O.mouseMoveEvent&&(this.hoverBubbleSize(i,r),this.hoverBubbleOpacity(i,r),this.hoverBubbleColor(i,r)):this.reset(i),e.interactivity.status===O.mouseLeaveEvent&&this.reset(i)}}hoverBubbleSize(e,t,o){const n=this.container,i=(null==o?void 0:o.size)?o.size*n.retina.pixelRatio:n.retina.bubbleModeSize;if(void 0===i)return;const r=s(e.options.size.value)*n.retina.pixelRatio,a=C(e.size.value,i,r,t);void 0!==a&&(e.bubble.radius=a)}hoverBubbleOpacity(e,t,o){var n,i,r;const a=this.container.actualOptions,l=null!==(n=null==o?void 0:o.opacity)&&void 0!==n?n:a.interactivity.modes.bubble.opacity;if(!l)return;const u=e.options.opacity.value,b=C(null!==(r=null===(i=e.opacity)||void 0===i?void 0:i.value)&&void 0!==r?r:1,l,s(u),t);void 0!==b&&(e.bubble.opacity=b)}hoverBubbleColor(e,t,o){const n=this.container.actualOptions,i=null!=o?o:n.interactivity.modes.bubble;if(!e.bubble.finalColor){const t=i.color;if(!t)return;const o=t instanceof Array?c(t):t;e.bubble.finalColor=function(e,t,o=!0){const n=p(e,t,o);return void 0!==n?y(n):void 0}(o)}if(e.bubble.finalColor)if(i.mix){e.bubble.color=void 0;const o=e.getFillColor();e.bubble.color=o?y(x(o,e.bubble.finalColor,1-t,t)):e.bubble.finalColor}else e.bubble.color=e.bubble.finalColor}}async function B(e){await e.addInteractor("externalBubble",(e=>new k(e)))}return t}()}));
|
|
@@ -1994,9 +1994,9 @@
|
|
|
1994
1994
|
paint() {
|
|
1995
1995
|
const options = this.container.actualOptions;
|
|
1996
1996
|
this.draw((ctx => {
|
|
1997
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
1997
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
1998
1998
|
clear(ctx, this.size);
|
|
1999
|
-
this.paintBase(
|
|
1999
|
+
this.paintBase(this.coverColorStyle);
|
|
2000
2000
|
} else {
|
|
2001
2001
|
this.paintBase();
|
|
2002
2002
|
}
|
|
@@ -2039,11 +2039,16 @@
|
|
|
2039
2039
|
const container = this.container;
|
|
2040
2040
|
const pxRatio = container.retina.pixelRatio;
|
|
2041
2041
|
const size = container.canvas.size;
|
|
2042
|
+
const newSize = {
|
|
2043
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2044
|
+
height: this.element.offsetHeight * pxRatio
|
|
2045
|
+
};
|
|
2046
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2047
|
+
return;
|
|
2048
|
+
}
|
|
2042
2049
|
const oldSize = Object.assign({}, size);
|
|
2043
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2044
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2045
|
-
this.element.width = size.width;
|
|
2046
|
-
this.element.height = size.height;
|
|
2050
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2051
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2047
2052
|
if (this.container.started) {
|
|
2048
2053
|
this.resizeFactor = {
|
|
2049
2054
|
width: size.width / oldSize.width,
|
|
@@ -2167,12 +2172,13 @@
|
|
|
2167
2172
|
const color = cover.color;
|
|
2168
2173
|
const coverRgb = colorToRgb(color);
|
|
2169
2174
|
if (coverRgb) {
|
|
2170
|
-
|
|
2175
|
+
const coverColor = {
|
|
2171
2176
|
r: coverRgb.r,
|
|
2172
2177
|
g: coverRgb.g,
|
|
2173
2178
|
b: coverRgb.b,
|
|
2174
2179
|
a: cover.opacity
|
|
2175
2180
|
};
|
|
2181
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2176
2182
|
}
|
|
2177
2183
|
}
|
|
2178
2184
|
initTrail() {
|
|
@@ -4359,10 +4365,9 @@
|
|
|
4359
4365
|
delete container.canvas.resizeFactor;
|
|
4360
4366
|
}
|
|
4361
4367
|
async draw(delta) {
|
|
4362
|
-
const container = this.container;
|
|
4363
|
-
container.canvas.clear();
|
|
4364
|
-
const canvasSize = this.container.canvas.size;
|
|
4368
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4365
4369
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4370
|
+
container.canvas.clear();
|
|
4366
4371
|
await this.update(delta);
|
|
4367
4372
|
if (this.needsSort) {
|
|
4368
4373
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(window,(function(){return function(){"use strict";var e={d:function(t,n){for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}e.r(t),e.d(t,{loadExternalConnectInteraction:function(){return i}});class o{}o.generatedAttribute="generated",o.randomColorValue="random",o.midColorValue="mid",o.touchEndEvent="touchend",o.mouseDownEvent="mousedown",o.mouseUpEvent="mouseup",o.mouseMoveEvent="mousemove",o.touchStartEvent="touchstart",o.touchMoveEvent="touchmove",o.mouseLeaveEvent="mouseleave",o.mouseOutEvent="mouseout",o.touchCancelEvent="touchcancel",o.resizeEvent="resize",o.visibilityChangeEvent="visibilitychange",o.noPolygonDataLoaded="No polygon data loaded.",o.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class a extends class{constructor(e){this.container=e,this.type=0}}{constructor(e){super(e)}isEnabled(){const e=this.container,t=e.interactivity.mouse,o=e.actualOptions.interactivity.events;return!(!o.onHover.enable||!t.position)&&n("connect",o.onHover.mode)}reset(){}async interact(){const e=this.container;if(e.actualOptions.interactivity.events.onHover.enable&&"mousemove"===e.interactivity.status){const t=e.interactivity.mouse.position;if(!t)return;const n=Math.abs(e.retina.connectModeRadius),o=e.particles.quadTree.queryCircle(t,n);let a=0;for(const t of o){const n=t.getPosition();for(const i of o.slice(a+1)){const o=i.getPosition(),a=Math.abs(e.retina.connectModeDistance),r=Math.abs(n.x-o.x),c=Math.abs(n.y-o.y);r<a&&c<a&&e.canvas.drawConnectLine(t,i)}++a}}}}async function i(e){await e.addInteractor("externalConnect",(e=>new a(e)))}return t}()}));
|
|
@@ -1994,9 +1994,9 @@
|
|
|
1994
1994
|
paint() {
|
|
1995
1995
|
const options = this.container.actualOptions;
|
|
1996
1996
|
this.draw((ctx => {
|
|
1997
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
1997
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
1998
1998
|
clear(ctx, this.size);
|
|
1999
|
-
this.paintBase(
|
|
1999
|
+
this.paintBase(this.coverColorStyle);
|
|
2000
2000
|
} else {
|
|
2001
2001
|
this.paintBase();
|
|
2002
2002
|
}
|
|
@@ -2039,11 +2039,16 @@
|
|
|
2039
2039
|
const container = this.container;
|
|
2040
2040
|
const pxRatio = container.retina.pixelRatio;
|
|
2041
2041
|
const size = container.canvas.size;
|
|
2042
|
+
const newSize = {
|
|
2043
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2044
|
+
height: this.element.offsetHeight * pxRatio
|
|
2045
|
+
};
|
|
2046
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2047
|
+
return;
|
|
2048
|
+
}
|
|
2042
2049
|
const oldSize = Object.assign({}, size);
|
|
2043
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2044
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2045
|
-
this.element.width = size.width;
|
|
2046
|
-
this.element.height = size.height;
|
|
2050
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2051
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2047
2052
|
if (this.container.started) {
|
|
2048
2053
|
this.resizeFactor = {
|
|
2049
2054
|
width: size.width / oldSize.width,
|
|
@@ -2167,12 +2172,13 @@
|
|
|
2167
2172
|
const color = cover.color;
|
|
2168
2173
|
const coverRgb = colorToRgb(color);
|
|
2169
2174
|
if (coverRgb) {
|
|
2170
|
-
|
|
2175
|
+
const coverColor = {
|
|
2171
2176
|
r: coverRgb.r,
|
|
2172
2177
|
g: coverRgb.g,
|
|
2173
2178
|
b: coverRgb.b,
|
|
2174
2179
|
a: cover.opacity
|
|
2175
2180
|
};
|
|
2181
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2176
2182
|
}
|
|
2177
2183
|
}
|
|
2178
2184
|
initTrail() {
|
|
@@ -4359,10 +4365,9 @@
|
|
|
4359
4365
|
delete container.canvas.resizeFactor;
|
|
4360
4366
|
}
|
|
4361
4367
|
async draw(delta) {
|
|
4362
|
-
const container = this.container;
|
|
4363
|
-
container.canvas.clear();
|
|
4364
|
-
const canvasSize = this.container.canvas.size;
|
|
4368
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4365
4369
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4370
|
+
container.canvas.clear();
|
|
4366
4371
|
await this.update(delta);
|
|
4367
4372
|
if (this.needsSort) {
|
|
4368
4373
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(window,(function(){return function(){"use strict";var e={d:function(t,n){for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function n(e,t,n,o){return Math.floor((e*n+t*o)/(n+o))}function o(e){const t=a(e);let n=r(e);return t===n&&(n=0),Math.random()*(t-n)+n}function r(e){return"number"==typeof e?e:e.min}function a(e){return"number"==typeof e?e:e.max}function i(e,t){if(e===t||void 0===t&&"number"==typeof e)return e;const n=r(e),o=a(e);return void 0!==t?{min:Math.min(n,t),max:Math.max(o,t)}:i(n,o)}function s(e,t){return function(e,t){const n=e.x-t.x,o=e.y-t.y;return{dx:n,dy:o,distance:Math.sqrt(n*n+o*o)}}(e,t).distance}function l(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}function u(e,t,n=!0){return e[void 0!==t&&n?t%e.length:function(e){return Math.floor(Math.random()*e.length)}(e)]}function c(e,t,n){let o=n;return o<0&&(o+=1),o>1&&(o-=1),o<1/6?e+6*(t-e)*o:o<.5?t:o<2/3?e+(t-e)*(2/3-o)*6:e}function d(e){if(e.startsWith("rgb")){const t=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return t?{a:t.length>4?parseFloat(t[5]):1,b:parseInt(t[3],10),g:parseInt(t[2],10),r:parseInt(t[1],10)}:void 0}if(e.startsWith("hsl")){const t=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return t?function(e){const t=v(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}({a:t.length>4?parseFloat(t[5]):1,h:parseInt(t[1],10),l:parseInt(t[3],10),s:parseInt(t[2],10)}):void 0}if(e.startsWith("hsv")){const t=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return t?function(e){const t=g(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}({a:t.length>4?parseFloat(t[5]):1,h:parseInt(t[1],10),s:parseInt(t[2],10),v:parseInt(t[3],10)}):void 0}{const t=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,n=e.replace(t,((e,t,n,o,r)=>t+t+n+n+o+o+(void 0!==r?r+r:""))),o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(n);return o?{a:void 0!==o[4]?parseInt(o[4],16)/255:1,b:parseInt(o[3],16),g:parseInt(o[2],16),r:parseInt(o[1],16)}:void 0}}function f(e,t,n=!0){var o,r,a;if(void 0===e)return;const i="string"==typeof e?{value:e}:e;let s;if("string"==typeof i.value)s=i.value===m.randomColorValue?p():function(e){return d(e)}(i.value);else if(i.value instanceof Array){s=f({value:u(i.value,t,n)})}else{const e=i.value,t=null!==(o=e.rgb)&&void 0!==o?o:i.value;if(void 0!==t.r)s=t;else{const t=null!==(r=e.hsl)&&void 0!==r?r:i.value;if(void 0!==t.h&&void 0!==t.l)s=v(t);else{const t=null!==(a=e.hsv)&&void 0!==a?a:i.value;void 0!==t.h&&void 0!==t.v&&(s=g(t))}}}return s}function v(e){const t={b:0,g:0,r:0},n={h:e.h/360,l:e.l/100,s:e.s/100};if(0===n.s)t.b=n.l,t.g=n.l,t.r=n.l;else{const e=n.l<.5?n.l*(1+n.s):n.l+n.s-n.l*n.s,o=2*n.l-e;t.r=c(o,e,n.h+1/3),t.g=c(o,e,n.h),t.b=c(o,e,n.h-1/3)}return t.r=Math.floor(255*t.r),t.g=Math.floor(255*t.g),t.b=Math.floor(255*t.b),t}function g(e){const t={b:0,g:0,r:0},n=e.h/60,o=e.s/100,r=e.v/100,a=r*o,i=a*(1-Math.abs(n%2-1));let s;if(n>=0&&n<=1?s={r:a,g:i,b:0}:n>1&&n<=2?s={r:i,g:a,b:0}:n>2&&n<=3?s={r:0,g:a,b:i}:n>3&&n<=4?s={r:0,g:i,b:a}:n>4&&n<=5?s={r:i,g:0,b:a}:n>5&&n<=6&&(s={r:a,g:0,b:i}),s){const e=r-a;t.r=Math.floor(255*(s.r+e)),t.g=Math.floor(255*(s.g+e)),t.b=Math.floor(255*(s.b+e))}return t}function p(e){const t=null!=e?e:0;return{b:Math.floor(o(i(t,256))),g:Math.floor(o(i(t,256))),r:Math.floor(o(i(t,256)))}}function b(e,t,o){var r,a;if(o===m.randomColorValue)return p();if("mid"!==o)return o;{const o=null!==(r=e.getFillColor())&&void 0!==r?r:e.getStrokeColor(),i=null!==(a=null==t?void 0:t.getFillColor())&&void 0!==a?a:null==t?void 0:t.getStrokeColor();if(o&&i&&t)return function(e,t,o,r){let a=e,i=t;return void 0===a.r&&(a=v(e)),void 0===i.r&&(i=v(t)),{b:n(a.b,i.b,o,r),g:n(a.g,i.g,o,r),r:n(a.r,i.r,o,r)}}(o,i,e.getRadius(),t.getRadius());{const e=null!=o?o:i;if(e)return v(e)}}}function h(e,t,n){const o="string"==typeof e?e:e.value;return o===m.randomColorValue?n?f({value:o}):t?m.randomColorValue:m.midColorValue:f({value:o})}e.r(t),e.d(t,{loadExternalGrabInteraction:function(){return M}});class m{}m.generatedAttribute="generated",m.randomColorValue="random",m.midColorValue="mid",m.touchEndEvent="touchend",m.mouseDownEvent="mousedown",m.mouseUpEvent="mouseup",m.mouseMoveEvent="mousemove",m.touchStartEvent="touchstart",m.touchMoveEvent="touchmove",m.mouseLeaveEvent="mouseleave",m.mouseOutEvent="mouseout",m.touchCancelEvent="touchcancel",m.resizeEvent="resize",m.visibilityChangeEvent="visibilitychange",m.noPolygonDataLoaded="No polygon data loaded.",m.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class y extends class{constructor(e){this.container=e,this.type=0}}{constructor(e){super(e)}isEnabled(){const e=this.container,t=e.interactivity.mouse,n=e.actualOptions.interactivity.events;return n.onHover.enable&&!!t.position&&l("grab",n.onHover.mode)}reset(){}async interact(){var e;const t=this.container,n=t.actualOptions,o=n.interactivity;if(o.events.onHover.enable&&t.interactivity.status===m.mouseMoveEvent){const r=t.interactivity.mouse.position;if(!r)return;const a=t.retina.grabModeDistance,i=t.particles.quadTree.queryCircle(r,a);for(const l of i){const i=s(l.getPosition(),r);if(i<=a){const s=o.modes.grab.links,u=s.opacity,c=u-i*u/a;if(c<=0)continue;const d=null!==(e=s.color)&&void 0!==e?e:l.options.links.color;if(!t.particles.grabLineColor){const e=n.interactivity.modes.grab.links;t.particles.grabLineColor=h(d,e.blink,e.consent)}const f=b(l,void 0,t.particles.grabLineColor);if(!f)return;t.canvas.drawGrabLine(l,f,c,r)}}}}}async function M(e){await e.addInteractor("externalGrab",(e=>new y(e)))}return t}()}));
|
|
@@ -2125,9 +2125,9 @@
|
|
|
2125
2125
|
paint() {
|
|
2126
2126
|
const options = this.container.actualOptions;
|
|
2127
2127
|
this.draw((ctx => {
|
|
2128
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
2128
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
2129
2129
|
clear(ctx, this.size);
|
|
2130
|
-
this.paintBase(
|
|
2130
|
+
this.paintBase(this.coverColorStyle);
|
|
2131
2131
|
} else {
|
|
2132
2132
|
this.paintBase();
|
|
2133
2133
|
}
|
|
@@ -2170,11 +2170,16 @@
|
|
|
2170
2170
|
const container = this.container;
|
|
2171
2171
|
const pxRatio = container.retina.pixelRatio;
|
|
2172
2172
|
const size = container.canvas.size;
|
|
2173
|
+
const newSize = {
|
|
2174
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2175
|
+
height: this.element.offsetHeight * pxRatio
|
|
2176
|
+
};
|
|
2177
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2178
|
+
return;
|
|
2179
|
+
}
|
|
2173
2180
|
const oldSize = Object.assign({}, size);
|
|
2174
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2175
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2176
|
-
this.element.width = size.width;
|
|
2177
|
-
this.element.height = size.height;
|
|
2181
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2182
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2178
2183
|
if (this.container.started) {
|
|
2179
2184
|
this.resizeFactor = {
|
|
2180
2185
|
width: size.width / oldSize.width,
|
|
@@ -2298,12 +2303,13 @@
|
|
|
2298
2303
|
const color = cover.color;
|
|
2299
2304
|
const coverRgb = colorToRgb(color);
|
|
2300
2305
|
if (coverRgb) {
|
|
2301
|
-
|
|
2306
|
+
const coverColor = {
|
|
2302
2307
|
r: coverRgb.r,
|
|
2303
2308
|
g: coverRgb.g,
|
|
2304
2309
|
b: coverRgb.b,
|
|
2305
2310
|
a: cover.opacity
|
|
2306
2311
|
};
|
|
2312
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2307
2313
|
}
|
|
2308
2314
|
}
|
|
2309
2315
|
initTrail() {
|
|
@@ -4490,10 +4496,9 @@
|
|
|
4490
4496
|
delete container.canvas.resizeFactor;
|
|
4491
4497
|
}
|
|
4492
4498
|
async draw(delta) {
|
|
4493
|
-
const container = this.container;
|
|
4494
|
-
container.canvas.clear();
|
|
4495
|
-
const canvasSize = this.container.canvas.size;
|
|
4499
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4496
4500
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4501
|
+
container.canvas.clear();
|
|
4497
4502
|
await this.update(delta);
|
|
4498
4503
|
if (this.needsSort) {
|
|
4499
4504
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var s=t();for(var n in s)("object"==typeof exports?exports:e)[n]=s[n]}}(window,(function(){return function(){"use strict";var e={d:function(t,s){for(var n in s)e.o(s,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:s[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function s(e,t){const s=e.x-t.x,n=e.y-t.y;return{dx:s,dy:n,distance:Math.sqrt(s*s+n*n)}}function n(e,t){switch(t){case"ease-out-quad":return 1-(1-e)**2;case"ease-out-cubic":return 1-(1-e)**3;case"ease-out-quart":return 1-(1-e)**4;case"ease-out-quint":return 1-(1-e)**5;case"ease-out-expo":return 1===e?1:1-Math.pow(2,-10*e);case"ease-out-sine":return Math.sin(e*Math.PI/2);case"ease-out-back":{const t=1.70158;return 1+(t+1)*Math.pow(e-1,3)+t*Math.pow(e-1,2)}case"ease-out-circ":return Math.sqrt(1-Math.pow(e-1,2));default:return e}}function i(e,t){if(t instanceof Array){for(const s of t)if(e.matches(s))return!0;return!1}return e.matches(t)}function o(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}function r(e,t){const s=e.selectors;if(s instanceof Array)for(const n of s)t(n,e);else t(s,e)}e.r(t),e.d(t,{loadExternalRepulseInteraction:function(){return p}});class a{constructor(e,t){this.position={x:e,y:t}}}class c extends a{constructor(e,t,s){super(e,t),this.radius=s}contains(e){return t=e,n=this.position,s(t,n).distance<=this.radius;var t,n}intersects(e){const t=e,s=e,n=this.position,i=e.position,o=Math.abs(i.x-n.x),r=Math.abs(i.y-n.y),a=this.radius;if(void 0!==s.radius){return a+s.radius>Math.sqrt(o*o+r+r)}if(void 0!==t.size){const e=t.size.width,s=t.size.height,n=Math.pow(o-e,2)+Math.pow(r-s,2);return!(o>a+e||r>a+s)&&(o<=e||r<=s||n<=a*a)}return!1}}class u{}u.generatedAttribute="generated",u.randomColorValue="random",u.midColorValue="mid",u.touchEndEvent="touchend",u.mouseDownEvent="mousedown",u.mouseUpEvent="mouseup",u.mouseMoveEvent="mousemove",u.touchStartEvent="touchstart",u.touchMoveEvent="touchmove",u.mouseLeaveEvent="mouseleave",u.mouseOutEvent="mouseout",u.touchCancelEvent="touchcancel",u.resizeEvent="resize",u.visibilityChangeEvent="visibilitychange",u.noPolygonDataLoaded="No polygon data loaded.",u.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;class l extends a{constructor(e,t,s,n){super(e,t),this.size={height:n,width:s}}contains(e){const t=this.size.width,s=this.size.height,n=this.position;return e.x>=n.x&&e.x<=n.x+t&&e.y>=n.y&&e.y<=n.y+s}intersects(e){const t=e,s=e,n=this.size.width,i=this.size.height,o=this.position,r=e.position;if(void 0!==s.radius)return s.intersects(this);if(void 0!==t.size){const e=t.size,s=e.width,a=e.height;return r.x<o.x+n&&r.x+s>o.x&&r.y<o.y+i&&r.y+a>o.y}return!1}}class h{constructor(e,t){let s,n;if(void 0===t){if("number"==typeof e)throw new Error("tsParticles - Vector not initialized correctly");const t=e;[s,n]=[t.x,t.y]}else[s,n]=[e,t];this.x=s,this.y=n}static clone(e){return h.create(e.x,e.y)}static create(e,t){return new h(e,t)}static get origin(){return h.create(0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this.updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.x**2+this.y**2)}set length(e){this.updateFromAngle(this.angle,e)}add(e){return h.create(this.x+e.x,this.y+e.y)}addTo(e){this.x+=e.x,this.y+=e.y}sub(e){return h.create(this.x-e.x,this.y-e.y)}subFrom(e){this.x-=e.x,this.y-=e.y}mult(e){return h.create(this.x*e,this.y*e)}multTo(e){this.x*=e,this.y*=e}div(e){return h.create(this.x/e,this.y/e)}divTo(e){this.x/=e,this.y/=e}distanceTo(e){return this.sub(e).length}getLengthSq(){return this.x**2+this.y**2}distanceToSq(e){return this.sub(e).getLengthSq()}manhattanDistanceTo(e){return Math.abs(e.x-this.x)+Math.abs(e.y-this.y)}copy(){return h.clone(this)}setTo(e){this.x=e.x,this.y=e.y}rotate(e){return h.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e))}updateFromAngle(e,t){this.x=Math.cos(e)*t,this.y=Math.sin(e)*t}}new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class d extends class{constructor(e){this.container=e,this.type=0}}{constructor(e){super(e)}isEnabled(){const e=this.container,t=e.actualOptions,s=e.interactivity.mouse,n=t.interactivity.events,i=function(e,t){return t instanceof Array?!!t.find((t=>t.enable&&o(e,t.mode))):o(e,t.mode)}("repulse",n.onDiv);if(!(i||n.onHover.enable&&s.position||n.onClick.enable&&s.clickPosition))return!1;const r=n.onHover.mode,a=n.onClick.mode;return o("repulse",r)||o("repulse",a)||i}reset(){}async interact(){const e=this.container,t=e.actualOptions,s=e.interactivity.status===u.mouseMoveEvent,n=t.interactivity.events,i=n.onHover.enable,a=n.onHover.mode,c=n.onClick.enable,l=n.onClick.mode,h=n.onDiv;s&&i&&o("repulse",a)?this.hoverRepulse():c&&o("repulse",l)?this.clickRepulse():function(e,t,s){if(t instanceof Array)for(const n of t){const t=n.mode;n.enable&&o(e,t)&&r(n,s)}else{const n=t.mode;t.enable&&o(e,n)&&r(t,s)}}("repulse",h,((e,t)=>this.singleSelectorRepulse(e,t)))}singleSelectorRepulse(e,t){const s=this.container,n=document.querySelectorAll(e);n.length&&n.forEach((e=>{const n=e,o=s.retina.pixelRatio,r={x:(n.offsetLeft+n.offsetWidth/2)*o,y:(n.offsetTop+n.offsetHeight/2)*o},a=n.offsetWidth/2*o,u="circle"===t.type?new c(r.x,r.y,a):new l(n.offsetLeft*o,n.offsetTop*o,n.offsetWidth*o,n.offsetHeight*o),h=function(e,t){if(t&&e)return e instanceof Array?e.find((e=>i(t,e.selectors))):i(t,e.selectors)?e:void 0}(s.actualOptions.interactivity.modes.repulse.divs,n);this.processRepulse(r,a,u,h)}))}hoverRepulse(){const e=this.container,t=e.interactivity.mouse.position;if(!t)return;const s=e.retina.repulseModeDistance;this.processRepulse(t,s,new c(t.x,t.y,s))}processRepulse(e,t,i,o){var r;const a=this.container,c=a.particles.quadTree.query(i),u=a.actualOptions.interactivity.modes.repulse;for(const i of c){const{dx:a,dy:c,distance:f}=s(i.position,e),y=(null!==(r=null==o?void 0:o.speed)&&void 0!==r?r:u.speed)*u.factor,v=(l=n(1-f/t,u.easing)*y,d=0,p=u.maxSpeed,Math.min(Math.max(l,d),p)),x=h.create(0===f?y:a/f*v,0===f?y:c/f*v);i.position.addTo(x)}var l,d,p}clickRepulse(){const e=this.container;if(e.repulse.finish||(e.repulse.count||(e.repulse.count=0),e.repulse.count++,e.repulse.count===e.particles.count&&(e.repulse.finish=!0)),e.repulse.clicking){const t=e.retina.repulseModeDistance,n=Math.pow(t/6,3),i=e.interactivity.mouse.clickPosition;if(void 0===i)return;const o=new c(i.x,i.y,n),r=e.particles.quadTree.query(o);for(const t of r){const{dx:o,dy:r,distance:a}=s(i,t.position),c=a**2,u=e.actualOptions.interactivity.modes.repulse.speed,l=-n*u/c;if(c<=n){e.repulse.particles.push(t);const s=h.create(o,r);s.length=l,t.velocity.setTo(s)}}}else if(!1===e.repulse.clicking){for(const t of e.repulse.particles)t.velocity.setTo(t.initialVelocity);e.repulse.particles=[]}}}async function p(e){await e.addInteractor("externalRepulse",(e=>new d(e)))}return t}()}));
|
|
@@ -1994,9 +1994,9 @@
|
|
|
1994
1994
|
paint() {
|
|
1995
1995
|
const options = this.container.actualOptions;
|
|
1996
1996
|
this.draw((ctx => {
|
|
1997
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
1997
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
1998
1998
|
clear(ctx, this.size);
|
|
1999
|
-
this.paintBase(
|
|
1999
|
+
this.paintBase(this.coverColorStyle);
|
|
2000
2000
|
} else {
|
|
2001
2001
|
this.paintBase();
|
|
2002
2002
|
}
|
|
@@ -2039,11 +2039,16 @@
|
|
|
2039
2039
|
const container = this.container;
|
|
2040
2040
|
const pxRatio = container.retina.pixelRatio;
|
|
2041
2041
|
const size = container.canvas.size;
|
|
2042
|
+
const newSize = {
|
|
2043
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2044
|
+
height: this.element.offsetHeight * pxRatio
|
|
2045
|
+
};
|
|
2046
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2047
|
+
return;
|
|
2048
|
+
}
|
|
2042
2049
|
const oldSize = Object.assign({}, size);
|
|
2043
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2044
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2045
|
-
this.element.width = size.width;
|
|
2046
|
-
this.element.height = size.height;
|
|
2050
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2051
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2047
2052
|
if (this.container.started) {
|
|
2048
2053
|
this.resizeFactor = {
|
|
2049
2054
|
width: size.width / oldSize.width,
|
|
@@ -2167,12 +2172,13 @@
|
|
|
2167
2172
|
const color = cover.color;
|
|
2168
2173
|
const coverRgb = colorToRgb(color);
|
|
2169
2174
|
if (coverRgb) {
|
|
2170
|
-
|
|
2175
|
+
const coverColor = {
|
|
2171
2176
|
r: coverRgb.r,
|
|
2172
2177
|
g: coverRgb.g,
|
|
2173
2178
|
b: coverRgb.b,
|
|
2174
2179
|
a: cover.opacity
|
|
2175
2180
|
};
|
|
2181
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2176
2182
|
}
|
|
2177
2183
|
}
|
|
2178
2184
|
initTrail() {
|
|
@@ -4359,10 +4365,9 @@
|
|
|
4359
4365
|
delete container.canvas.resizeFactor;
|
|
4360
4366
|
}
|
|
4361
4367
|
async draw(delta) {
|
|
4362
|
-
const container = this.container;
|
|
4363
|
-
container.canvas.clear();
|
|
4364
|
-
const canvasSize = this.container.canvas.size;
|
|
4368
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4365
4369
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4370
|
+
container.canvas.clear();
|
|
4366
4371
|
await this.update(delta);
|
|
4367
4372
|
if (this.needsSort) {
|
|
4368
4373
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var i in o)("object"==typeof exports?exports:e)[i]=o[i]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var i in o)e.o(o,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:o[i]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function o(e,t){return e===t||t instanceof Array&&t.indexOf(e)>-1}e.r(t),e.d(t,{loadExternalTrailInteraction:function(){return a}});class i{}i.generatedAttribute="generated",i.randomColorValue="random",i.midColorValue="mid",i.touchEndEvent="touchend",i.mouseDownEvent="mousedown",i.mouseUpEvent="mouseup",i.mouseMoveEvent="mousemove",i.touchStartEvent="touchstart",i.touchMoveEvent="touchmove",i.mouseLeaveEvent="mouseleave",i.mouseOutEvent="mouseout",i.touchCancelEvent="touchcancel",i.resizeEvent="resize",i.visibilityChangeEvent="visibilitychange",i.noPolygonDataLoaded="No polygon data loaded.",i.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class n extends class{constructor(e){this.container=e,this.type=0}}{constructor(e){super(e),this.delay=0}async interact(e){var t,o,i,n;if(!this.container.retina.reduceFactor)return;const a=this.container,r=a.actualOptions.interactivity.modes.trail,s=1e3*r.delay/this.container.retina.reduceFactor;if(this.delay<s&&(this.delay+=e.value),this.delay<s)return;let u=!0;r.pauseOnStop&&(a.interactivity.mouse.position===this.lastPosition||(null===(t=a.interactivity.mouse.position)||void 0===t?void 0:t.x)===(null===(o=this.lastPosition)||void 0===o?void 0:o.x)&&(null===(i=a.interactivity.mouse.position)||void 0===i?void 0:i.y)===(null===(n=this.lastPosition)||void 0===n?void 0:n.y))&&(u=!1),a.interactivity.mouse.position?this.lastPosition={x:a.interactivity.mouse.position.x,y:a.interactivity.mouse.position.y}:delete this.lastPosition,u&&a.particles.push(r.quantity,a.interactivity.mouse,r.particles),this.delay-=s}isEnabled(){const e=this.container,t=e.actualOptions,i=e.interactivity.mouse,n=t.interactivity.events;return i.clicking&&i.inside&&!!i.position&&o("trail",n.onClick.mode)||i.inside&&!!i.position&&o("trail",n.onHover.mode)}reset(){}}async function a(e){await e.addInteractor("externalTrail",(e=>new n(e)))}return t}()}));
|
|
@@ -1994,9 +1994,9 @@
|
|
|
1994
1994
|
paint() {
|
|
1995
1995
|
const options = this.container.actualOptions;
|
|
1996
1996
|
this.draw((ctx => {
|
|
1997
|
-
if (options.backgroundMask.enable && options.backgroundMask.cover
|
|
1997
|
+
if (options.backgroundMask.enable && options.backgroundMask.cover) {
|
|
1998
1998
|
clear(ctx, this.size);
|
|
1999
|
-
this.paintBase(
|
|
1999
|
+
this.paintBase(this.coverColorStyle);
|
|
2000
2000
|
} else {
|
|
2001
2001
|
this.paintBase();
|
|
2002
2002
|
}
|
|
@@ -2039,11 +2039,16 @@
|
|
|
2039
2039
|
const container = this.container;
|
|
2040
2040
|
const pxRatio = container.retina.pixelRatio;
|
|
2041
2041
|
const size = container.canvas.size;
|
|
2042
|
+
const newSize = {
|
|
2043
|
+
width: this.element.offsetWidth * pxRatio,
|
|
2044
|
+
height: this.element.offsetHeight * pxRatio
|
|
2045
|
+
};
|
|
2046
|
+
if (newSize.height === size.height && newSize.width === size.width && newSize.height === this.element.height && newSize.width === this.element.width) {
|
|
2047
|
+
return;
|
|
2048
|
+
}
|
|
2042
2049
|
const oldSize = Object.assign({}, size);
|
|
2043
|
-
size.width = this.element.offsetWidth * pxRatio;
|
|
2044
|
-
size.height = this.element.offsetHeight * pxRatio;
|
|
2045
|
-
this.element.width = size.width;
|
|
2046
|
-
this.element.height = size.height;
|
|
2050
|
+
this.element.width = size.width = this.element.offsetWidth * pxRatio;
|
|
2051
|
+
this.element.height = size.height = this.element.offsetHeight * pxRatio;
|
|
2047
2052
|
if (this.container.started) {
|
|
2048
2053
|
this.resizeFactor = {
|
|
2049
2054
|
width: size.width / oldSize.width,
|
|
@@ -2167,12 +2172,13 @@
|
|
|
2167
2172
|
const color = cover.color;
|
|
2168
2173
|
const coverRgb = colorToRgb(color);
|
|
2169
2174
|
if (coverRgb) {
|
|
2170
|
-
|
|
2175
|
+
const coverColor = {
|
|
2171
2176
|
r: coverRgb.r,
|
|
2172
2177
|
g: coverRgb.g,
|
|
2173
2178
|
b: coverRgb.b,
|
|
2174
2179
|
a: cover.opacity
|
|
2175
2180
|
};
|
|
2181
|
+
this.coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);
|
|
2176
2182
|
}
|
|
2177
2183
|
}
|
|
2178
2184
|
initTrail() {
|
|
@@ -4359,10 +4365,9 @@
|
|
|
4359
4365
|
delete container.canvas.resizeFactor;
|
|
4360
4366
|
}
|
|
4361
4367
|
async draw(delta) {
|
|
4362
|
-
const container = this.container;
|
|
4363
|
-
container.canvas.clear();
|
|
4364
|
-
const canvasSize = this.container.canvas.size;
|
|
4368
|
+
const container = this.container, canvasSize = this.container.canvas.size;
|
|
4365
4369
|
this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, canvasSize.width * 3 / 2, canvasSize.height * 3 / 2), 4);
|
|
4370
|
+
container.canvas.clear();
|
|
4366
4371
|
await this.update(delta);
|
|
4367
4372
|
if (this.needsSort) {
|
|
4368
4373
|
this.zArray.sort(((a, b) => b.position.z - a.position.z || a.id - b.id));
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.42.
|
|
1
|
+
/*! tsParticles v1.42.4 by Matteo Bruni */
|
|
2
2
|
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var o=t();for(var n in o)("object"==typeof exports?exports:e)[n]=o[n]}}(window,(function(){return function(){"use strict";var e={d:function(t,o){for(var n in o)e.o(o,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:o[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function o(e,t){const o=e.x-t.x,n=e.y-t.y;return{dx:o,dy:n,distance:Math.sqrt(o*o+n*n)}}e.r(t),e.d(t,{loadParticlesAttractInteraction:function(){return r}});class n{}n.generatedAttribute="generated",n.randomColorValue="random",n.midColorValue="mid",n.touchEndEvent="touchend",n.mouseDownEvent="mousedown",n.mouseUpEvent="mouseup",n.mouseMoveEvent="mousemove",n.touchStartEvent="touchstart",n.touchMoveEvent="touchmove",n.mouseLeaveEvent="mouseleave",n.mouseOutEvent="mouseout",n.touchCancelEvent="touchcancel",n.resizeEvent="resize",n.visibilityChangeEvent="visibilitychange",n.noPolygonDataLoaded="No polygon data loaded.",n.noPolygonFound="No polygon found, you need to specify SVG url in config.";new WeakMap;new WeakMap;new WeakMap,new WeakSet;new WeakMap;new WeakMap;new WeakMap;new WeakMap;class a extends class{constructor(e){this.container=e,this.type=1}}{constructor(e){super(e)}async interact(e){var t;const n=this.container,a=null!==(t=e.retina.attractDistance)&&void 0!==t?t:n.retina.attractDistance,r=e.getPosition(),i=n.particles.quadTree.queryCircle(r,a);for(const t of i){if(e===t||!t.options.move.attract.enable||t.destroyed||t.spawning)continue;const n=t.getPosition(),{dx:a,dy:i}=o(r,n),c=e.options.move.attract.rotate,s=a/(1e3*c.x),u=i/(1e3*c.y),l=t.size.value/e.size.value,d=1/l;e.velocity.x-=s*l,e.velocity.y-=u*l,t.velocity.x+=s*d,t.velocity.y+=u*d}}isEnabled(e){return e.options.move.attract.enable}reset(){}}async function r(e){await e.addInteractor("particlesAttract",(e=>new a(e)))}return t}()}));
|