tsparticles 1.39.1 → 1.40.1
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/Container.d.ts +3 -1
- package/Core/Container.js +30 -15
- package/Core/Loader.d.ts +12 -9
- package/Core/Loader.js +35 -19
- package/Core/Particle.d.ts +3 -1
- package/Core/Particle.js +17 -2
- package/Core/Particles.d.ts +3 -1
- package/Core/Particles.js +20 -5
- package/Core/Utils/InteractionManager.d.ts +5 -3
- package/Core/Utils/InteractionManager.js +19 -3
- package/Core/Utils/Plugins.d.ts +29 -15
- package/Core/Utils/Plugins.js +58 -46
- package/Options/Classes/Options.d.ts +2 -1
- package/Options/Classes/Options.js +14 -7
- package/Plugins/Emitters/EmitterInstance.d.ts +6 -3
- package/Plugins/Emitters/EmitterInstance.js +46 -16
- package/Plugins/Emitters/Emitters.d.ts +3 -1
- package/Plugins/Emitters/Emitters.js +17 -2
- package/Plugins/Emitters/{EmittersMain.d.ts → EmittersEngine.d.ts} +3 -1
- package/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
- package/Plugins/Emitters/IEmitterShape.d.ts +2 -2
- package/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
- package/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
- package/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +1 -0
- package/Plugins/Emitters/ShapeManager.d.ts +6 -3
- package/Plugins/Emitters/ShapeManager.js +16 -4
- package/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
- package/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
- package/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
- package/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
- package/Plugins/Emitters/index.d.ts +3 -3
- package/Plugins/Emitters/index.js +25 -6
- package/README.md +3 -3
- package/browser/Core/Container.d.ts +4 -1
- package/browser/Core/Container.js +32 -16
- package/browser/Core/Loader.d.ts +12 -9
- package/browser/Core/Loader.js +35 -19
- package/browser/Core/Particle.d.ts +3 -1
- package/browser/Core/Particle.js +18 -3
- package/browser/Core/Particles.d.ts +3 -1
- package/browser/Core/Particles.js +21 -6
- package/browser/Core/Utils/InteractionManager.d.ts +5 -3
- package/browser/Core/Utils/InteractionManager.js +19 -3
- package/browser/Core/Utils/Plugins.d.ts +29 -15
- package/browser/Core/Utils/Plugins.js +58 -46
- package/browser/Options/Classes/Options.d.ts +2 -1
- package/browser/Options/Classes/Options.js +14 -7
- package/browser/Plugins/Emitters/EmitterInstance.d.ts +6 -3
- package/browser/Plugins/Emitters/EmitterInstance.js +46 -16
- package/browser/Plugins/Emitters/Emitters.d.ts +3 -1
- package/browser/Plugins/Emitters/Emitters.js +17 -2
- package/{esm/Plugins/Emitters/EmittersMain.d.ts → browser/Plugins/Emitters/EmittersEngine.d.ts} +3 -1
- package/browser/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
- package/browser/Plugins/Emitters/IEmitterShape.d.ts +2 -2
- package/browser/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
- package/browser/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
- package/browser/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +4 -0
- package/browser/Plugins/Emitters/ShapeManager.d.ts +6 -3
- package/browser/Plugins/Emitters/ShapeManager.js +16 -4
- package/browser/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
- package/browser/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
- package/browser/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
- package/browser/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
- package/browser/Plugins/Emitters/index.d.ts +3 -3
- package/browser/Plugins/Emitters/index.js +25 -6
- package/browser/engine.d.ts +5 -1
- package/browser/engine.js +22 -17
- package/engine.d.ts +3 -0
- package/engine.js +20 -16
- package/esm/Core/Container.d.ts +3 -1
- package/esm/Core/Container.js +31 -16
- package/esm/Core/Loader.d.ts +12 -9
- package/esm/Core/Loader.js +35 -19
- package/esm/Core/Particle.d.ts +3 -1
- package/esm/Core/Particle.js +18 -3
- package/esm/Core/Particles.d.ts +3 -1
- package/esm/Core/Particles.js +21 -6
- package/esm/Core/Utils/InteractionManager.d.ts +5 -3
- package/esm/Core/Utils/InteractionManager.js +19 -3
- package/esm/Core/Utils/Plugins.d.ts +29 -15
- package/esm/Core/Utils/Plugins.js +58 -46
- package/esm/Options/Classes/Options.d.ts +2 -1
- package/esm/Options/Classes/Options.js +14 -7
- package/esm/Plugins/Emitters/EmitterInstance.d.ts +6 -3
- package/esm/Plugins/Emitters/EmitterInstance.js +46 -16
- package/esm/Plugins/Emitters/Emitters.d.ts +3 -1
- package/esm/Plugins/Emitters/Emitters.js +17 -2
- package/{browser/Plugins/Emitters/EmittersMain.d.ts → esm/Plugins/Emitters/EmittersEngine.d.ts} +3 -1
- package/esm/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
- package/esm/Plugins/Emitters/IEmitterShape.d.ts +2 -2
- package/esm/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
- package/esm/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
- package/esm/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +1 -0
- package/esm/Plugins/Emitters/ShapeManager.d.ts +6 -3
- package/esm/Plugins/Emitters/ShapeManager.js +16 -4
- package/esm/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
- package/esm/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
- package/esm/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
- package/esm/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
- package/esm/Plugins/Emitters/index.d.ts +3 -3
- package/esm/Plugins/Emitters/index.js +25 -6
- package/esm/engine.d.ts +3 -0
- package/esm/engine.js +20 -16
- package/package.json +11 -5
- package/report.html +2 -2
- package/report.slim.html +2 -2
- package/tsparticles.engine.js +227 -118
- package/tsparticles.engine.min.js +2 -2
- package/tsparticles.interaction.external.attract.js +205 -100
- package/tsparticles.interaction.external.attract.min.js +2 -2
- package/tsparticles.interaction.external.bounce.js +205 -100
- package/tsparticles.interaction.external.bounce.min.js +2 -2
- package/tsparticles.interaction.external.bubble.js +205 -100
- package/tsparticles.interaction.external.bubble.min.js +2 -2
- package/tsparticles.interaction.external.connect.js +205 -100
- package/tsparticles.interaction.external.connect.min.js +2 -2
- package/tsparticles.interaction.external.grab.js +205 -100
- package/tsparticles.interaction.external.grab.min.js +2 -2
- package/tsparticles.interaction.external.repulse.js +205 -100
- package/tsparticles.interaction.external.repulse.min.js +2 -2
- package/tsparticles.interaction.external.trail.js +205 -100
- package/tsparticles.interaction.external.trail.min.js +2 -2
- package/tsparticles.interaction.particles.attract.js +205 -100
- package/tsparticles.interaction.particles.attract.min.js +2 -2
- package/tsparticles.interaction.particles.collisions.js +205 -100
- package/tsparticles.interaction.particles.collisions.min.js +2 -2
- package/tsparticles.interaction.particles.links.js +205 -100
- package/tsparticles.interaction.particles.links.min.js +2 -2
- package/tsparticles.js +347 -156
- package/tsparticles.min.js +2 -2
- package/tsparticles.pathseg.min.js +1 -1
- package/tsparticles.plugins.absorbers.js +205 -100
- package/tsparticles.plugins.absorbers.min.js +2 -2
- package/tsparticles.plugins.emitters.js +330 -143
- package/tsparticles.plugins.emitters.min.js +2 -2
- package/tsparticles.plugins.polygonMask.js +205 -100
- package/tsparticles.plugins.polygonMask.min.js +2 -2
- package/tsparticles.shape.circle.min.js +1 -1
- package/tsparticles.shape.image.js +208 -103
- package/tsparticles.shape.image.min.js +2 -2
- 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 +205 -100
- package/tsparticles.shape.text.min.js +2 -2
- package/tsparticles.slim.js +227 -118
- package/tsparticles.slim.min.js +2 -2
- package/tsparticles.updater.angle.js +205 -100
- package/tsparticles.updater.angle.min.js +2 -2
- package/tsparticles.updater.color.js +205 -100
- package/tsparticles.updater.color.min.js +2 -2
- package/tsparticles.updater.life.js +205 -100
- package/tsparticles.updater.life.min.js +2 -2
- package/tsparticles.updater.opacity.js +205 -100
- package/tsparticles.updater.opacity.min.js +2 -2
- package/tsparticles.updater.outModes.js +205 -100
- package/tsparticles.updater.outModes.min.js +2 -2
- package/tsparticles.updater.roll.js +205 -100
- package/tsparticles.updater.roll.min.js +2 -2
- package/tsparticles.updater.size.js +205 -100
- package/tsparticles.updater.size.min.js +2 -2
- package/tsparticles.updater.strokeColor.js +205 -100
- package/tsparticles.updater.strokeColor.min.js +2 -2
- package/tsparticles.updater.tilt.js +205 -100
- package/tsparticles.updater.tilt.min.js +2 -2
- package/tsparticles.updater.wobble.js +205 -100
- package/tsparticles.updater.wobble.min.js +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! tsParticles v1.
|
|
2
|
-
!function(t,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i();else if("function"==typeof define&&define.amd)define([],i);else{var e=i();for(var o in e)("object"==typeof exports?exports:t)[o]=e[o]}}(window,(function(){return function(){"use strict";var t={d:function(i,e){for(var o in e)t.o(e,o)&&!t.o(i,o)&&Object.defineProperty(i,o,{enumerable:!0,get:e[o]})},o:function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},r:function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},i={};t.r(i),t.d(i,{loadEmittersPlugin:function(){return V}});class e{randomPosition(t,i,e){const[o,s]=[i.x/2,i.y/2],n=((t,i)=>{const e=Math.random()/4,o=Math.atan(i/t*Math.tan(2*Math.PI*e)),s=Math.random();return s<.25?o:s<.5?Math.PI-o:s<.75?Math.PI+o:-o})(o,s),a=(d=n,(l=o)*(h=s)/Math.sqrt((h*Math.cos(d))**2+(l*Math.sin(d))**2)),r=e?a*Math.sqrt(Math.random()):a;var l,h,d;return{x:t.x+r*Math.cos(n),y:t.y+r*Math.sin(n)}}}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 Map,new Map,new Map,new Map,new Map,new Map,new Map;new WeakSet;function s(t){const i=r(t);let e=a(t);return i===e&&(e=0),Math.random()*(i-e)+e}function n(t){return"number"==typeof t?t:s(t)}function a(t){return"number"==typeof t?t:t.min}function r(t){return"number"==typeof t?t:t.max}function l(t,i){if(t===i||void 0===i&&"number"==typeof t)return t;const e=a(t),o=r(t);return void 0!==i?{min:Math.min(e,i),max:Math.max(o,i)}:l(e,o)}function h(t,i){return t===i||i instanceof Array&&i.indexOf(t)>-1}function d(t,i,e=!0){return t[void 0!==i&&e?i%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function c(t,i){return{bottom:t.y+i,left:t.x-i,right:t.x+i,top:t.y-i}}function u(t,...i){for(const e of i){if(null==e)continue;if("object"!=typeof e){t=e;continue}const i=Array.isArray(e);!i||"object"==typeof t&&t&&Array.isArray(t)?i||"object"==typeof t&&t&&!Array.isArray(t)||(t={}):t=[];for(const i in e){if("__proto__"===i)continue;const o=e[i],s="object"==typeof o,n=t;n[i]=s&&Array.isArray(o)?o.map((t=>u(n[i],t))):u(n[i],o)}}return t}function p(t,i,e){let o=e;return o<0&&(o+=1),o>1&&(o-=1),o<1/6?t+6*(i-t)*o:o<.5?i:o<2/3?t+(i-t)*(2/3-o)*6:t}function v(t){if(t.startsWith("rgb")){const i=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return i?{a:i.length>4?parseFloat(i[5]):1,b:parseInt(i[3],10),g:parseInt(i[2],10),r:parseInt(i[1],10)}:void 0}if(t.startsWith("hsl")){const i=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return i?function(t){const i=y(t);return{a:t.a,b:i.b,g:i.g,r:i.r}}({a:i.length>4?parseFloat(i[5]):1,h:parseInt(i[1],10),l:parseInt(i[3],10),s:parseInt(i[2],10)}):void 0}if(t.startsWith("hsv")){const i=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return i?function(t){const i=w(t);return{a:t.a,b:i.b,g:i.g,r:i.r}}({a:i.length>4?parseFloat(i[5]):1,h:parseInt(i[1],10),s:parseInt(i[2],10),v:parseInt(i[3],10)}):void 0}{const i=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,e=t.replace(i,((t,i,e,o,s)=>i+i+e+e+o+o+(void 0!==s?s+s:""))),o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(e);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(t,i,e=!0){var s,n,a;if(void 0===t)return;const r="string"==typeof t?{value:t}:t;let l;if("string"==typeof r.value)l=r.value===o.randomColorValue?g():function(t){return v(t)}(r.value);else if(r.value instanceof Array){l=f({value:d(r.value,i,e)})}else{const t=r.value,i=null!==(s=t.rgb)&&void 0!==s?s:r.value;if(void 0!==i.r)l=i;else{const i=null!==(n=t.hsl)&&void 0!==n?n:r.value;if(void 0!==i.h&&void 0!==i.l)l=y(i);else{const i=null!==(a=t.hsv)&&void 0!==a?a:r.value;void 0!==i.h&&void 0!==i.v&&(l=w(i))}}}return l}function m(t,i,e=!0){const o=f(t,i,e);return void 0!==o?function(t){const i=t.r/255,e=t.g/255,o=t.b/255,s=Math.max(i,e,o),n=Math.min(i,e,o),a={h:0,l:(s+n)/2,s:0};s!=n&&(a.s=a.l<.5?(s-n)/(s+n):(s-n)/(2-s-n),a.h=i===s?(e-o)/(s-n):a.h=e===s?2+(o-i)/(s-n):4+(i-e)/(s-n));a.l*=100,a.s*=100,a.h*=60,a.h<0&&(a.h+=360);return a}(o):void 0}function y(t){const i={b:0,g:0,r:0},e={h:t.h/360,l:t.l/100,s:t.s/100};if(0===e.s)i.b=e.l,i.g=e.l,i.r=e.l;else{const t=e.l<.5?e.l*(1+e.s):e.l+e.s-e.l*e.s,o=2*e.l-t;i.r=p(o,t,e.h+1/3),i.g=p(o,t,e.h),i.b=p(o,t,e.h-1/3)}return i.r=Math.floor(255*i.r),i.g=Math.floor(255*i.g),i.b=Math.floor(255*i.b),i}function w(t){const i={b:0,g:0,r:0},e=t.h/60,o=t.s/100,s=t.v/100,n=s*o,a=n*(1-Math.abs(e%2-1));let r;if(e>=0&&e<=1?r={r:n,g:a,b:0}:e>1&&e<=2?r={r:a,g:n,b:0}:e>2&&e<=3?r={r:0,g:n,b:a}:e>3&&e<=4?r={r:0,g:a,b:n}:e>4&&e<=5?r={r:a,g:0,b:n}:e>5&&e<=6&&(r={r:n,g:0,b:a}),r){const t=s-n;i.r=Math.floor(255*(r.r+t)),i.g=Math.floor(255*(r.g+t)),i.b=Math.floor(255*(r.b+t))}return i}function g(t){const i=null!=t?t:0;return{b:Math.floor(s(l(i,256))),g:Math.floor(s(l(i,256))),r:Math.floor(s(l(i,256)))}}class b{constructor(){this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.sync=!0}load(t){void 0!==t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(this.offset=l(t.offset)),void 0!==t.speed&&(this.speed=t.speed),void 0!==t.sync&&(this.sync=t.sync))}}class M{constructor(){this.h=new b,this.s=new b,this.l=new b}load(t){t&&(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}class E{constructor(){this.value="#fff"}static create(t,i){const e=new E;return e.load(t),void 0!==i&&("string"==typeof i||i instanceof Array?e.load({value:i}):e.load(i)),e}load(t){void 0!==(null==t?void 0:t.value)&&(this.value=t.value)}}class C extends E{constructor(){super(),this.animation=new M}static create(t,i){const e=new C;return e.load(t),void 0!==i&&("string"==typeof i||i instanceof Array?e.load({value:i}):e.load(i)),e}load(t){if(super.load(t),!t)return;const i=t.animation;void 0!==i&&(void 0!==i.enable?this.animation.h.load(i):this.animation.load(t.animation))}}class P{constructor(){this.wait=!1}load(t){void 0!==t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=t.delay),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.wait&&(this.wait=t.wait))}}class x{constructor(){this.quantity=1,this.delay=.1}load(t){void 0!==t&&(void 0!==t.quantity&&(this.quantity=l(t.quantity)),void 0!==t.delay&&(this.delay=l(t.delay)))}}class D{constructor(){this.mode="percent",this.height=0,this.width=0}load(t){void 0!==t&&(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.height&&(this.height=t.height),void 0!==t.width&&(this.width=t.width))}}class A{constructor(){this.autoPlay=!0,this.fill=!0,this.life=new P,this.rate=new x,this.shape="square",this.startCount=0}load(t){void 0!==t&&(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.size&&(void 0===this.size&&(this.size=new D),this.size.load(t.size)),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.fill&&(this.fill=t.fill),this.life.load(t.life),this.name=t.name,void 0!==t.particles&&(this.particles=u({},t.particles)),this.rate.load(t.rate),void 0!==t.shape&&(this.shape=t.shape),void 0!==t.position&&(this.position={x:t.position.x,y:t.position.y}),void 0!==t.spawnColor&&(void 0===this.spawnColor&&(this.spawnColor=new C),this.spawnColor.load(t.spawnColor)),void 0!==t.startCount&&(this.startCount=t.startCount))}}const S=new Map;class z{static addShape(t,i){z.getShape(t)||S.set(t,i)}static getShape(t){return S.get(t)}static getSupportedShapes(){return S.keys()}}var I,j,O=function(t,i,e,o,s){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof i?t!==i||!s:!i.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?s.call(t,e):s?s.value=e:i.set(t,e),e},F=function(t,i,e,o){if("a"===e&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof i?t!==i||!o:!i.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===e?o:"a"===e?o.call(t):o?o.value:i.get(t)};class q{constructor(t,i,e,o){var s,n,a,r,l,h,d;this.emitters=t,this.container=i,I.set(this,void 0),j.set(this,void 0),this.currentDuration=0,this.currentEmitDelay=0,this.currentSpawnDelay=0,this.initialPosition=o,e instanceof A?this.options=e:(this.options=new A,this.options.load(e)),this.spawnDelay=1e3*(null!==(s=this.options.life.delay)&&void 0!==s?s:0)/this.container.retina.reduceFactor,this.position=null!==(n=this.initialPosition)&&void 0!==n?n:this.calcPosition(),this.name=this.options.name,this.shape=z.getShape(this.options.shape),this.fill=this.options.fill,O(this,I,!this.options.life.wait,"f"),O(this,j,!1,"f");let c=u({},this.options.particles);null!=c||(c={}),null!==(a=c.move)&&void 0!==a||(c.move={}),null!==(r=(d=c.move).direction)&&void 0!==r||(d.direction=this.options.direction),this.options.spawnColor&&(this.spawnColor=m(this.options.spawnColor)),this.paused=!this.options.autoPlay,this.particlesOptions=c,this.size=null!==(l=this.options.size)&&void 0!==l?l:(()=>{const t=new D;return t.load({height:0,mode:"percent",width:0}),t})(),this.lifeCount=null!==(h=this.options.life.count)&&void 0!==h?h:-1,this.immortal=this.lifeCount<=0,this.play()}externalPlay(){this.paused=!1,this.play()}externalPause(){this.paused=!0,this.pause()}play(){var t;if(!this.paused&&this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal||!this.options.life.count)&&(F(this,I,"f")||this.currentSpawnDelay>=(null!==(t=this.spawnDelay)&&void 0!==t?t:0))){if(void 0===this.emitDelay){const t=n(this.options.rate.delay);this.emitDelay=1e3*t/this.container.retina.reduceFactor}(this.lifeCount>0||this.immortal)&&this.prepareToDie()}}pause(){this.paused||delete this.emitDelay}resize(){const t=this.initialPosition;var i,e,o,s;this.position=t&&(i=t,e=this.container.canvas.size,function(t,i,e){let o=!0;return e&&"bottom"!==e||(o=t.top<i.height),!o||e&&"left"!==e||(o=t.right>0),!o||e&&"right"!==e||(o=t.left<i.width),!o||e&&"top"!==e||(o=t.bottom>0),o}(c(i,null!=o?o:0),e,s))?t:this.calcPosition()}update(t){var i,e,o;this.paused||(F(this,I,"f")&&(O(this,I,!1,"f"),this.currentSpawnDelay=null!==(i=this.spawnDelay)&&void 0!==i?i:0,this.currentEmitDelay=null!==(e=this.emitDelay)&&void 0!==e?e:0),F(this,j,"f")||(O(this,j,!0,"f"),this.emitParticles(this.options.startCount)),void 0!==this.duration&&(this.currentDuration+=t.value,this.currentDuration>=this.duration&&(this.pause(),void 0!==this.spawnDelay&&delete this.spawnDelay,this.immortal||this.lifeCount--,this.lifeCount>0||this.immortal?(this.position=this.calcPosition(),this.spawnDelay=1e3*(null!==(o=this.options.life.delay)&&void 0!==o?o:0)/this.container.retina.reduceFactor):this.destroy(),this.currentDuration-=this.duration,delete this.duration)),void 0!==this.spawnDelay&&(this.currentSpawnDelay+=t.value,this.currentSpawnDelay>=this.spawnDelay&&(this.play(),this.currentSpawnDelay-=this.currentSpawnDelay,delete this.spawnDelay)),void 0!==this.emitDelay&&(this.currentEmitDelay+=t.value,this.currentEmitDelay>=this.emitDelay&&(this.emit(),this.currentEmitDelay-=this.emitDelay)))}prepareToDie(){var t;if(this.paused)return;const i=null===(t=this.options.life)||void 0===t?void 0:t.duration;this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal)&&void 0!==i&&i>0&&(this.duration=1e3*i)}destroy(){this.emitters.removeEmitter(this)}calcPosition(){var t,i;const e=this.container,o=this.options.position;return{x:(null!==(t=null==o?void 0:o.x)&&void 0!==t?t:100*Math.random())/100*e.canvas.size.width,y:(null!==(i=null==o?void 0:o.y)&&void 0!==i?i:100*Math.random())/100*e.canvas.size.height}}emit(){if(this.paused)return;const t=n(this.options.rate.quantity);this.emitParticles(t)}emitParticles(t){var i,e,o;const s=this.container,n=this.position,a={x:"percent"===this.size.mode?s.canvas.size.width*this.size.width/100:this.size.width,y:"percent"===this.size.mode?s.canvas.size.height*this.size.height/100:this.size.height};for(let r=0;r<t;r++){const t=u({},this.particlesOptions);if(this.spawnColor){const e=null===(i=this.options.spawnColor)||void 0===i?void 0:i.animation;e&&(this.spawnColor.h=this.setColorAnimation(e.h,this.spawnColor.h,360),this.spawnColor.s=this.setColorAnimation(e.s,this.spawnColor.s,100),this.spawnColor.l=this.setColorAnimation(e.l,this.spawnColor.l,100)),t.color?t.color.value=this.spawnColor:t.color={value:this.spawnColor}}const r=null!==(o=null===(e=this.shape)||void 0===e?void 0:e.randomPosition(n,a,this.fill))&&void 0!==o?o:n;s.particles.addParticle(r,t)}}setColorAnimation(t,i,e){var o;const a=this.container;if(!t.enable)return i;const r=s(t.offset),l=1e3*n(this.options.rate.delay)/a.retina.reduceFactor;return(i+(null!==(o=t.speed)&&void 0!==o?o:0)*a.fpsLimit/l+3.6*r)%e}}I=new WeakMap,j=new WeakMap;class T{constructor(t){this.container=t,this.array=[],this.emitters=[],this.interactivityEmitters=[];const i=t;i.getEmitter=t=>void 0===t||"number"==typeof t?this.array[t||0]:this.array.find((i=>i.name===t)),i.addEmitter=(t,i)=>this.addEmitter(t,i),i.removeEmitter=t=>{const e=i.getEmitter(t);e&&this.removeEmitter(e)},i.playEmitter=t=>{const e=i.getEmitter(t);e&&e.externalPlay()},i.pauseEmitter=t=>{const e=i.getEmitter(t);e&&e.externalPause()}}init(t){var i,e;if(!t)return;t.emitters&&(t.emitters instanceof Array?this.emitters=t.emitters.map((t=>{const i=new A;return i.load(t),i})):(this.emitters instanceof Array&&(this.emitters=new A),this.emitters.load(t.emitters)));const o=null===(e=null===(i=t.interactivity)||void 0===i?void 0:i.modes)||void 0===e?void 0:e.emitters;if(o&&(o instanceof Array?this.interactivityEmitters=o.map((t=>{const i=new A;return i.load(t),i})):(this.interactivityEmitters instanceof Array&&(this.interactivityEmitters=new A),this.interactivityEmitters.load(o))),this.emitters instanceof Array)for(const t of this.emitters)this.addEmitter(t);else this.addEmitter(this.emitters)}play(){for(const t of this.array)t.play()}pause(){for(const t of this.array)t.pause()}stop(){this.array=[]}update(t){for(const i of this.array)i.update(t)}handleClickMode(t){const i=this.container,e=this.emitters,o=this.interactivityEmitters;if("emitter"===t){let t;o instanceof Array?o.length>0&&(t=d(o)):t=o;const s=null!=t?t:e instanceof Array?d(e):e,n=i.interactivity.mouse.clickPosition;this.addEmitter(u({},s),n)}}resize(){for(const t of this.array)t.resize()}addEmitter(t,i){const e=new A;e.load(t);const o=new q(this,this.container,e,i);return this.array.push(o),o}removeEmitter(t){const i=this.array.indexOf(t);i>=0&&this.array.splice(i,1)}}function k(t,i){return t+i*(Math.random()-.5)}class W{randomPosition(t,i,e){if(e)return{x:k(t.x,i.x),y:k(t.y,i.y)};{const e=i.x/2,o=i.y/2,s=Math.floor(4*Math.random()),n=2*(Math.random()-.5);switch(s){case 0:return{x:t.x+n*e,y:t.y-o};case 1:return{x:t.x-e,y:t.y+n*o};case 2:return{x:t.x+n*e,y:t.y+o};case 3:default:return{x:t.x+e,y:t.y+n*o}}}}}class _{constructor(){this.id="emitters"}getPlugin(t){return new T(t)}needsPlugin(t){var i,e,o;if(void 0===t)return!1;const s=t.emitters;return s instanceof Array&&!!s.length||void 0!==s||!!(null===(o=null===(e=null===(i=t.interactivity)||void 0===i?void 0:i.events)||void 0===e?void 0:e.onClick)||void 0===o?void 0:o.mode)&&h("emitter",t.interactivity.events.onClick.mode)}loadOptions(t,i){var e,o;if(!this.needsPlugin(t)&&!this.needsPlugin(i))return;const s=t;if(null==i?void 0:i.emitters)if((null==i?void 0:i.emitters)instanceof Array)s.emitters=null==i?void 0:i.emitters.map((t=>{const i=new A;return i.load(t),i}));else{let t=s.emitters;void 0===(null==t?void 0:t.load)&&(s.emitters=t=new A),t.load(null==i?void 0:i.emitters)}const n=null===(o=null===(e=null==i?void 0:i.interactivity)||void 0===e?void 0:e.modes)||void 0===o?void 0:o.emitters;if(n)if(n instanceof Array)s.interactivity.modes.emitters=n.map((t=>{const i=new A;return i.load(t),i}));else{let t=s.interactivity.modes.emitters;void 0===(null==t?void 0:t.load)&&(s.interactivity.modes.emitters=t=new A),t.load(n)}}}async function V(t){const i=new _;await t.addPlugin(i),t.addEmitterShape||(t.addEmitterShape=(t,i)=>{z.addShape(t,i)}),t.addEmitterShape("circle",new e),t.addEmitterShape("square",new W)}return i}()}));
|
|
1
|
+
/*! tsParticles v1.40.1 by Matteo Bruni */
|
|
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 i=e();for(var o in i)("object"==typeof exports?exports:t)[o]=i[o]}}(window,(function(){return function(){"use strict";var t={d:function(e,i){for(var o in i)t.o(i,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:i[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={};t.r(e),t.d(e,{loadEmittersPlugin:function(){return J}});class i{randomPosition(t,e,i){const[o,n]=[e.width/2,e.height/2],s=((t,e)=>{const i=Math.random()/4,o=Math.atan(e/t*Math.tan(2*Math.PI*i)),n=Math.random();return n<.25?o:n<.5?Math.PI-o:n<.75?Math.PI+o:-o})(o,n),r=(d=s,(h=o)*(l=n)/Math.sqrt((l*Math.cos(d))**2+(h*Math.sin(d))**2)),a=i?r*Math.sqrt(Math.random()):r;var h,l,d;return{x:t.x+a*Math.cos(s),y:t.y+a*Math.sin(s)}}}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;function n(t){const e=a(t);let i=r(t);return e===i&&(i=0),Math.random()*(e-i)+i}function s(t){return"number"==typeof t?t:n(t)}function r(t){return"number"==typeof t?t:t.min}function a(t){return"number"==typeof t?t:t.max}function h(t,e){if(t===e||void 0===e&&"number"==typeof t)return t;const i=r(t),o=a(t);return void 0!==e?{min:Math.min(i,e),max:Math.max(o,e)}:h(i,o)}function l(t,e){return t===e||e instanceof Array&&e.indexOf(t)>-1}function d(t,e,i=!0){return t[void 0!==e&&i?e%t.length:function(t){return Math.floor(Math.random()*t.length)}(t)]}function c(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function u(t,...e){for(const i of e){if(null==i)continue;if("object"!=typeof i){t=i;continue}const e=Array.isArray(i);!e||"object"==typeof t&&t&&Array.isArray(t)?e||"object"==typeof t&&t&&!Array.isArray(t)||(t={}):t=[];for(const e in i){if("__proto__"===e)continue;const o=i[e],n="object"==typeof o,s=t;s[e]=n&&Array.isArray(o)?o.map((t=>u(s[e],t))):u(s[e],o)}}return t}function f(t,e,i){let o=i;return o<0&&(o+=1),o>1&&(o-=1),o<1/6?t+6*(e-t)*o:o<.5?e:o<2/3?t+(e-t)*(2/3-o)*6:t}function p(t){if(t.startsWith("rgb")){const e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?{a:e.length>4?parseFloat(e[5]):1,b:parseInt(e[3],10),g:parseInt(e[2],10),r:parseInt(e[1],10)}:void 0}if(t.startsWith("hsl")){const e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=y(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),l:parseInt(e[3],10),s:parseInt(e[2],10)}):void 0}if(t.startsWith("hsv")){const e=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(t);return e?function(t){const e=w(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?parseFloat(e[5]):1,h:parseInt(e[1],10),s:parseInt(e[2],10),v:parseInt(e[3],10)}):void 0}{const e=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,i=t.replace(e,((t,e,i,o,n)=>e+e+i+i+o+o+(void 0!==n?n+n:""))),o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(i);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 v(t,e,i=!0){var n,s,r;if(void 0===t)return;const a="string"==typeof t?{value:t}:t;let h;if("string"==typeof a.value)h=a.value===o.randomColorValue?g():function(t){return p(t)}(a.value);else if(a.value instanceof Array){h=v({value:d(a.value,e,i)})}else{const t=a.value,e=null!==(n=t.rgb)&&void 0!==n?n:a.value;if(void 0!==e.r)h=e;else{const e=null!==(s=t.hsl)&&void 0!==s?s:a.value;if(void 0!==e.h&&void 0!==e.l)h=y(e);else{const e=null!==(r=t.hsv)&&void 0!==r?r:a.value;void 0!==e.h&&void 0!==e.v&&(h=w(e))}}}return h}function m(t,e,i=!0){const o=v(t,e,i);return void 0!==o?function(t){const e=t.r/255,i=t.g/255,o=t.b/255,n=Math.max(e,i,o),s=Math.min(e,i,o),r={h:0,l:(n+s)/2,s:0};n!=s&&(r.s=r.l<.5?(n-s)/(n+s):(n-s)/(2-n-s),r.h=e===n?(i-o)/(n-s):r.h=i===n?2+(o-e)/(n-s):4+(e-i)/(n-s));r.l*=100,r.s*=100,r.h*=60,r.h<0&&(r.h+=360);return r}(o):void 0}function y(t){const e={b:0,g:0,r:0},i={h:t.h/360,l:t.l/100,s:t.s/100};if(0===i.s)e.b=i.l,e.g=i.l,e.r=i.l;else{const t=i.l<.5?i.l*(1+i.s):i.l+i.s-i.l*i.s,o=2*i.l-t;e.r=f(o,t,i.h+1/3),e.g=f(o,t,i.h),e.b=f(o,t,i.h-1/3)}return e.r=Math.floor(255*e.r),e.g=Math.floor(255*e.g),e.b=Math.floor(255*e.b),e}function w(t){const e={b:0,g:0,r:0},i=t.h/60,o=t.s/100,n=t.v/100,s=n*o,r=s*(1-Math.abs(i%2-1));let a;if(i>=0&&i<=1?a={r:s,g:r,b:0}:i>1&&i<=2?a={r:r,g:s,b:0}:i>2&&i<=3?a={r:0,g:s,b:r}:i>3&&i<=4?a={r:0,g:r,b:s}:i>4&&i<=5?a={r:r,g:0,b:s}:i>5&&i<=6&&(a={r:s,g:0,b:r}),a){const t=n-s;e.r=Math.floor(255*(a.r+t)),e.g=Math.floor(255*(a.g+t)),e.b=Math.floor(255*(a.b+t))}return e}function g(t){const e=null!=t?t:0;return{b:Math.floor(n(h(e,256))),g:Math.floor(n(h(e,256))),r:Math.floor(n(h(e,256)))}}new WeakMap;class b{constructor(){this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.sync=!0}load(t){void 0!==t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(this.offset=h(t.offset)),void 0!==t.speed&&(this.speed=t.speed),void 0!==t.sync&&(this.sync=t.sync))}}class E{constructor(){this.h=new b,this.s=new b,this.l=new b}load(t){t&&(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}class M{constructor(){this.value="#fff"}static create(t,e){const i=new M;return i.load(t),void 0!==e&&("string"==typeof e||e instanceof Array?i.load({value:e}):i.load(e)),i}load(t){void 0!==(null==t?void 0:t.value)&&(this.value=t.value)}}class C extends M{constructor(){super(),this.animation=new E}static create(t,e){const i=new C;return i.load(t),void 0!==e&&("string"==typeof e||e instanceof Array?i.load({value:e}):i.load(e)),i}load(t){if(super.load(t),!t)return;const e=t.animation;void 0!==e&&(void 0!==e.enable?this.animation.h.load(e):this.animation.load(t.animation))}}class P{constructor(){this.wait=!1}load(t){void 0!==t&&(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=t.delay),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.wait&&(this.wait=t.wait))}}class x{constructor(){this.quantity=1,this.delay=.1}load(t){void 0!==t&&(void 0!==t.quantity&&(this.quantity=h(t.quantity)),void 0!==t.delay&&(this.delay=h(t.delay)))}}class D{constructor(){this.mode="percent",this.height=0,this.width=0}load(t){void 0!==t&&(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.height&&(this.height=t.height),void 0!==t.width&&(this.width=t.width))}}class S{constructor(){this.autoPlay=!0,this.fill=!0,this.life=new P,this.rate=new x,this.shape="square",this.startCount=0}load(t){void 0!==t&&(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.size&&(void 0===this.size&&(this.size=new D),this.size.load(t.size)),void 0!==t.direction&&(this.direction=t.direction),this.domId=t.domId,void 0!==t.fill&&(this.fill=t.fill),this.life.load(t.life),this.name=t.name,void 0!==t.particles&&(this.particles=u({},t.particles)),this.rate.load(t.rate),void 0!==t.shape&&(this.shape=t.shape),void 0!==t.position&&(this.position={x:t.position.x,y:t.position.y}),void 0!==t.spawnColor&&(void 0===this.spawnColor&&(this.spawnColor=new C),this.spawnColor.load(t.spawnColor)),void 0!==t.startCount&&(this.startCount=t.startCount))}}var A,z,I,T=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i},k=function(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)};class j{constructor(t,e,i,o,n){var s,r,a,h,l,d,c;this.emitters=e,this.container=i,A.set(this,void 0),z.set(this,void 0),I.set(this,void 0),T(this,I,t,"f"),this.currentDuration=0,this.currentEmitDelay=0,this.currentSpawnDelay=0,this.initialPosition=n,o instanceof S?this.options=o:(this.options=new S,this.options.load(o)),this.spawnDelay=1e3*(null!==(s=this.options.life.delay)&&void 0!==s?s:0)/this.container.retina.reduceFactor,this.name=this.options.name,this.shape=null===(r=k(this,I,"f").emitterShapeManager)||void 0===r?void 0:r.getShape(this.options.shape),this.fill=this.options.fill,T(this,A,!this.options.life.wait,"f"),T(this,z,!1,"f");let f=u({},this.options.particles);null!=f||(f={}),null!==(a=f.move)&&void 0!==a||(f.move={}),null!==(h=(c=f.move).direction)&&void 0!==h||(c.direction=this.options.direction),this.options.spawnColor&&(this.spawnColor=m(this.options.spawnColor)),this.paused=!this.options.autoPlay,this.particlesOptions=f,this.size=null!==(l=this.options.size)&&void 0!==l?l:(()=>{const t=new D;return t.load({height:0,mode:"percent",width:0}),t})(),this.lifeCount=null!==(d=this.options.life.count)&&void 0!==d?d:-1,this.immortal=this.lifeCount<=0,this.play()}externalPlay(){this.paused=!1,this.play()}externalPause(){this.paused=!0,this.pause()}play(){var t;if(!this.paused&&this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal||!this.options.life.count)&&(k(this,A,"f")||this.currentSpawnDelay>=(null!==(t=this.spawnDelay)&&void 0!==t?t:0))){if(void 0===this.emitDelay){const t=s(this.options.rate.delay);this.emitDelay=1e3*t/this.container.retina.reduceFactor}(this.lifeCount>0||this.immortal)&&this.prepareToDie()}}pause(){this.paused||delete this.emitDelay}resize(){const t=this.initialPosition;var e,i,o,n;this.position=t&&(e=t,i=this.container.canvas.size,function(t,e,i){let o=!0;return i&&"bottom"!==i||(o=t.top<e.height),!o||i&&"left"!==i||(o=t.right>0),!o||i&&"right"!==i||(o=t.left<e.width),!o||i&&"top"!==i||(o=t.bottom>0),o}(c(e,null!=o?o:0),i,n))?t:this.calcPosition()}update(t){var e,i,o;this.paused||(k(this,A,"f")&&(T(this,A,!1,"f"),this.currentSpawnDelay=null!==(e=this.spawnDelay)&&void 0!==e?e:0,this.currentEmitDelay=null!==(i=this.emitDelay)&&void 0!==i?i:0),k(this,z,"f")||(T(this,z,!0,"f"),this.emitParticles(this.options.startCount)),void 0!==this.duration&&(this.currentDuration+=t.value,this.currentDuration>=this.duration&&(this.pause(),void 0!==this.spawnDelay&&delete this.spawnDelay,this.immortal||this.lifeCount--,this.lifeCount>0||this.immortal?(this.position=this.calcPosition(),this.spawnDelay=1e3*(null!==(o=this.options.life.delay)&&void 0!==o?o:0)/this.container.retina.reduceFactor):this.destroy(),this.currentDuration-=this.duration,delete this.duration)),void 0!==this.spawnDelay&&(this.currentSpawnDelay+=t.value,this.currentSpawnDelay>=this.spawnDelay&&(this.play(),this.currentSpawnDelay-=this.currentSpawnDelay,delete this.spawnDelay)),void 0!==this.emitDelay&&(this.currentEmitDelay+=t.value,this.currentEmitDelay>=this.emitDelay&&(this.emit(),this.currentEmitDelay-=this.emitDelay)))}getPosition(){if(this.options.domId){const t=this.container,e=document.getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect();return{x:(i.x+i.width/2)*t.retina.pixelRatio,y:(i.y+i.height/2)*t.retina.pixelRatio}}}return this.position}getSize(){const t=this.container;if(this.options.domId){const e=document.getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect();return{width:i.width*t.retina.pixelRatio,height:i.height*t.retina.pixelRatio}}}return{width:"percent"===this.size.mode?t.canvas.size.width*this.size.width/100:this.size.width,height:"percent"===this.size.mode?t.canvas.size.height*this.size.height/100:this.size.height}}prepareToDie(){var t;if(this.paused)return;const e=null===(t=this.options.life)||void 0===t?void 0:t.duration;this.container.retina.reduceFactor&&(this.lifeCount>0||this.immortal)&&void 0!==e&&e>0&&(this.duration=1e3*e)}destroy(){this.emitters.removeEmitter(this)}calcPosition(){var t,e;const i=this.container,o=this.options.position;return{x:(null!==(t=null==o?void 0:o.x)&&void 0!==t?t:100*Math.random())/100*i.canvas.size.width,y:(null!==(e=null==o?void 0:o.y)&&void 0!==e?e:100*Math.random())/100*i.canvas.size.height}}emit(){if(this.paused)return;const t=s(this.options.rate.quantity);this.emitParticles(t)}emitParticles(t){var e,i,o;const n=this.container,s=this.getPosition(),r=this.getSize();for(let a=0;a<t;a++){const t=u({},this.particlesOptions);if(this.spawnColor){const i=null===(e=this.options.spawnColor)||void 0===e?void 0:e.animation;i&&(this.spawnColor.h=this.setColorAnimation(i.h,this.spawnColor.h,360),this.spawnColor.s=this.setColorAnimation(i.s,this.spawnColor.s,100),this.spawnColor.l=this.setColorAnimation(i.l,this.spawnColor.l,100)),t.color?t.color.value=this.spawnColor:t.color={value:this.spawnColor}}if(!s)return;const a=null!==(o=null===(i=this.shape)||void 0===i?void 0:i.randomPosition(s,r,this.fill))&&void 0!==o?o:s;n.particles.addParticle(a,t)}}setColorAnimation(t,e,i){var o;const r=this.container;if(!t.enable)return e;const a=n(t.offset),h=1e3*s(this.options.rate.delay)/r.retina.reduceFactor;return(e+(null!==(o=t.speed)&&void 0!==o?o:0)*r.fpsLimit/h+3.6*a)%i}}A=new WeakMap,z=new WeakMap,I=new WeakMap;var W,O=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i},F=function(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)};class q{constructor(t,e){this.container=e,W.set(this,void 0),O(this,W,t,"f"),this.array=[],this.emitters=[],this.interactivityEmitters=[];const i=e;i.getEmitter=t=>void 0===t||"number"==typeof t?this.array[t||0]:this.array.find((e=>e.name===t)),i.addEmitter=(t,e)=>this.addEmitter(t,e),i.removeEmitter=t=>{const e=i.getEmitter(t);e&&this.removeEmitter(e)},i.playEmitter=t=>{const e=i.getEmitter(t);e&&e.externalPlay()},i.pauseEmitter=t=>{const e=i.getEmitter(t);e&&e.externalPause()}}init(t){var e,i;if(!t)return;t.emitters&&(t.emitters instanceof Array?this.emitters=t.emitters.map((t=>{const e=new S;return e.load(t),e})):(this.emitters instanceof Array&&(this.emitters=new S),this.emitters.load(t.emitters)));const o=null===(i=null===(e=t.interactivity)||void 0===e?void 0:e.modes)||void 0===i?void 0:i.emitters;if(o&&(o instanceof Array?this.interactivityEmitters=o.map((t=>{const e=new S;return e.load(t),e})):(this.interactivityEmitters instanceof Array&&(this.interactivityEmitters=new S),this.interactivityEmitters.load(o))),this.emitters instanceof Array)for(const t of this.emitters)this.addEmitter(t);else this.addEmitter(this.emitters)}play(){for(const t of this.array)t.play()}pause(){for(const t of this.array)t.pause()}stop(){this.array=[]}update(t){for(const e of this.array)e.update(t)}handleClickMode(t){const e=this.container,i=this.emitters,o=this.interactivityEmitters;if("emitter"===t){let t;o instanceof Array?o.length>0&&(t=d(o)):t=o;const n=null!=t?t:i instanceof Array?d(i):i,s=e.interactivity.mouse.clickPosition;this.addEmitter(u({},n),s)}}resize(){for(const t of this.array)t.resize()}addEmitter(t,e){const i=new S;i.load(t);const o=new j(F(this,W,"f"),this,this.container,i,e);return this.array.push(o),o}removeEmitter(t){const e=this.array.indexOf(t);e>=0&&this.array.splice(e,1)}}W=new WeakMap;var R,_=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i};const B=new Map;class V{constructor(t){R.set(this,void 0),_(this,R,t,"f")}addShape(t,e){this.getShape(t)||B.set(t,e)}getShape(t){return B.get(t)}getSupportedShapes(){return B.keys()}}function L(t,e){return t+e*(Math.random()-.5)}R=new WeakMap;class N{randomPosition(t,e,i){if(i)return{x:L(t.x,e.width),y:L(t.y,e.height)};{const i=e.width/2,o=e.height/2,n=Math.floor(4*Math.random()),s=2*(Math.random()-.5);switch(n){case 0:return{x:t.x+s*i,y:t.y-o};case 1:return{x:t.x-i,y:t.y+s*o};case 2:return{x:t.x+s*i,y:t.y+o};case 3:default:return{x:t.x+i,y:t.y+s*o}}}}}var $,G=function(t,e,i,o,n){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?n.call(t,i):n?n.value=i:e.set(t,i),i},U=function(t,e,i,o){if("a"===i&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!o:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?o:"a"===i?o.call(t):o?o.value:e.get(t)};class H{constructor(t){$.set(this,void 0),G(this,$,t,"f"),this.id="emitters"}getPlugin(t){return new q(U(this,$,"f"),t)}needsPlugin(t){var e,i,o;if(void 0===t)return!1;const n=t.emitters;return n instanceof Array&&!!n.length||void 0!==n||!!(null===(o=null===(i=null===(e=t.interactivity)||void 0===e?void 0:e.events)||void 0===i?void 0:i.onClick)||void 0===o?void 0:o.mode)&&l("emitter",t.interactivity.events.onClick.mode)}loadOptions(t,e){var i,o;if(!this.needsPlugin(t)&&!this.needsPlugin(e))return;const n=t;if(null==e?void 0:e.emitters)if((null==e?void 0:e.emitters)instanceof Array)n.emitters=null==e?void 0:e.emitters.map((t=>{const e=new S;return e.load(t),e}));else{let t=n.emitters;void 0===(null==t?void 0:t.load)&&(n.emitters=t=new S),t.load(null==e?void 0:e.emitters)}const s=null===(o=null===(i=null==e?void 0:e.interactivity)||void 0===i?void 0:i.modes)||void 0===o?void 0:o.emitters;if(s)if(s instanceof Array)n.interactivity.modes.emitters=s.map((t=>{const e=new S;return e.load(t),e}));else{let t=n.interactivity.modes.emitters;void 0===(null==t?void 0:t.load)&&(n.interactivity.modes.emitters=t=new S),t.load(s)}}}async function J(t){t.emitterShapeManager||(t.emitterShapeManager=new V(t)),t.addEmitterShape||(t.addEmitterShape=(e,i)=>{var o;null===(o=t.emitterShapeManager)||void 0===o||o.addShape(e,i)});const e=new H(t);await t.addPlugin(e),t.addEmitterShape("circle",new i),t.addEmitterShape("square",new N)}return $=new WeakMap,e}()}));
|