tsparticles 1.39.2 → 1.40.2

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.
Files changed (168) hide show
  1. package/Core/Container.d.ts +3 -1
  2. package/Core/Container.js +30 -15
  3. package/Core/Loader.d.ts +12 -9
  4. package/Core/Loader.js +35 -19
  5. package/Core/Particle.d.ts +3 -1
  6. package/Core/Particle.js +17 -2
  7. package/Core/Particles.d.ts +3 -1
  8. package/Core/Particles.js +20 -5
  9. package/Core/Utils/InteractionManager.d.ts +5 -3
  10. package/Core/Utils/InteractionManager.js +19 -3
  11. package/Core/Utils/Plugins.d.ts +29 -15
  12. package/Core/Utils/Plugins.js +58 -46
  13. package/Options/Classes/Options.d.ts +2 -1
  14. package/Options/Classes/Options.js +14 -7
  15. package/Plugins/Emitters/EmitterInstance.d.ts +6 -3
  16. package/Plugins/Emitters/EmitterInstance.js +46 -16
  17. package/Plugins/Emitters/Emitters.d.ts +3 -1
  18. package/Plugins/Emitters/Emitters.js +17 -2
  19. package/Plugins/Emitters/{EmittersMain.d.ts → EmittersEngine.d.ts} +3 -1
  20. package/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
  21. package/Plugins/Emitters/IEmitterShape.d.ts +2 -2
  22. package/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
  23. package/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
  24. package/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +1 -0
  25. package/Plugins/Emitters/ShapeManager.d.ts +6 -3
  26. package/Plugins/Emitters/ShapeManager.js +16 -4
  27. package/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
  28. package/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
  29. package/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
  30. package/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
  31. package/Plugins/Emitters/index.d.ts +3 -3
  32. package/Plugins/Emitters/index.js +25 -6
  33. package/README.md +1 -1
  34. package/browser/Core/Container.d.ts +4 -1
  35. package/browser/Core/Container.js +32 -16
  36. package/browser/Core/Loader.d.ts +12 -9
  37. package/browser/Core/Loader.js +35 -19
  38. package/browser/Core/Particle.d.ts +3 -1
  39. package/browser/Core/Particle.js +18 -3
  40. package/browser/Core/Particles.d.ts +3 -1
  41. package/browser/Core/Particles.js +21 -6
  42. package/browser/Core/Utils/InteractionManager.d.ts +5 -3
  43. package/browser/Core/Utils/InteractionManager.js +19 -3
  44. package/browser/Core/Utils/Plugins.d.ts +29 -15
  45. package/browser/Core/Utils/Plugins.js +58 -46
  46. package/browser/Options/Classes/Options.d.ts +2 -1
  47. package/browser/Options/Classes/Options.js +14 -7
  48. package/browser/Plugins/Emitters/EmitterInstance.d.ts +6 -3
  49. package/browser/Plugins/Emitters/EmitterInstance.js +46 -16
  50. package/browser/Plugins/Emitters/Emitters.d.ts +3 -1
  51. package/browser/Plugins/Emitters/Emitters.js +17 -2
  52. package/{esm/Plugins/Emitters/EmittersMain.d.ts → browser/Plugins/Emitters/EmittersEngine.d.ts} +3 -1
  53. package/browser/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
  54. package/browser/Plugins/Emitters/IEmitterShape.d.ts +2 -2
  55. package/browser/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
  56. package/browser/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
  57. package/browser/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +4 -0
  58. package/browser/Plugins/Emitters/ShapeManager.d.ts +6 -3
  59. package/browser/Plugins/Emitters/ShapeManager.js +16 -4
  60. package/browser/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
  61. package/browser/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
  62. package/browser/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
  63. package/browser/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
  64. package/browser/Plugins/Emitters/index.d.ts +3 -3
  65. package/browser/Plugins/Emitters/index.js +25 -6
  66. package/browser/engine.d.ts +5 -1
  67. package/browser/engine.js +22 -17
  68. package/engine.d.ts +3 -0
  69. package/engine.js +20 -16
  70. package/esm/Core/Container.d.ts +3 -1
  71. package/esm/Core/Container.js +31 -16
  72. package/esm/Core/Loader.d.ts +12 -9
  73. package/esm/Core/Loader.js +35 -19
  74. package/esm/Core/Particle.d.ts +3 -1
  75. package/esm/Core/Particle.js +18 -3
  76. package/esm/Core/Particles.d.ts +3 -1
  77. package/esm/Core/Particles.js +21 -6
  78. package/esm/Core/Utils/InteractionManager.d.ts +5 -3
  79. package/esm/Core/Utils/InteractionManager.js +19 -3
  80. package/esm/Core/Utils/Plugins.d.ts +29 -15
  81. package/esm/Core/Utils/Plugins.js +58 -46
  82. package/esm/Options/Classes/Options.d.ts +2 -1
  83. package/esm/Options/Classes/Options.js +14 -7
  84. package/esm/Plugins/Emitters/EmitterInstance.d.ts +6 -3
  85. package/esm/Plugins/Emitters/EmitterInstance.js +46 -16
  86. package/esm/Plugins/Emitters/Emitters.d.ts +3 -1
  87. package/esm/Plugins/Emitters/Emitters.js +17 -2
  88. package/{browser/Plugins/Emitters/EmittersMain.d.ts → esm/Plugins/Emitters/EmittersEngine.d.ts} +3 -1
  89. package/esm/Plugins/Emitters/{EmittersMain.js → EmittersEngine.js} +0 -0
  90. package/esm/Plugins/Emitters/IEmitterShape.d.ts +2 -2
  91. package/esm/Plugins/Emitters/Options/Classes/Emitter.d.ts +1 -0
  92. package/esm/Plugins/Emitters/Options/Classes/Emitter.js +1 -0
  93. package/esm/Plugins/Emitters/Options/Interfaces/IEmitter.d.ts +1 -0
  94. package/esm/Plugins/Emitters/ShapeManager.d.ts +6 -3
  95. package/esm/Plugins/Emitters/ShapeManager.js +16 -4
  96. package/esm/Plugins/Emitters/Shapes/Circle/CircleShape.d.ts +2 -2
  97. package/esm/Plugins/Emitters/Shapes/Circle/CircleShape.js +2 -2
  98. package/esm/Plugins/Emitters/Shapes/Square/SquareShape.d.ts +2 -2
  99. package/esm/Plugins/Emitters/Shapes/Square/SquareShape.js +4 -4
  100. package/esm/Plugins/Emitters/index.d.ts +3 -3
  101. package/esm/Plugins/Emitters/index.js +25 -6
  102. package/esm/engine.d.ts +3 -0
  103. package/esm/engine.js +20 -16
  104. package/package.json +11 -6
  105. package/report.html +2 -2
  106. package/report.slim.html +2 -2
  107. package/tsparticles.engine.js +227 -118
  108. package/tsparticles.engine.min.js +2 -2
  109. package/tsparticles.interaction.external.attract.js +205 -100
  110. package/tsparticles.interaction.external.attract.min.js +2 -2
  111. package/tsparticles.interaction.external.bounce.js +205 -100
  112. package/tsparticles.interaction.external.bounce.min.js +2 -2
  113. package/tsparticles.interaction.external.bubble.js +205 -100
  114. package/tsparticles.interaction.external.bubble.min.js +2 -2
  115. package/tsparticles.interaction.external.connect.js +205 -100
  116. package/tsparticles.interaction.external.connect.min.js +2 -2
  117. package/tsparticles.interaction.external.grab.js +205 -100
  118. package/tsparticles.interaction.external.grab.min.js +2 -2
  119. package/tsparticles.interaction.external.repulse.js +205 -100
  120. package/tsparticles.interaction.external.repulse.min.js +2 -2
  121. package/tsparticles.interaction.external.trail.js +205 -100
  122. package/tsparticles.interaction.external.trail.min.js +2 -2
  123. package/tsparticles.interaction.particles.attract.js +205 -100
  124. package/tsparticles.interaction.particles.attract.min.js +2 -2
  125. package/tsparticles.interaction.particles.collisions.js +205 -100
  126. package/tsparticles.interaction.particles.collisions.min.js +2 -2
  127. package/tsparticles.interaction.particles.links.js +205 -100
  128. package/tsparticles.interaction.particles.links.min.js +2 -2
  129. package/tsparticles.js +347 -156
  130. package/tsparticles.min.js +2 -2
  131. package/tsparticles.pathseg.min.js +1 -1
  132. package/tsparticles.plugins.absorbers.js +205 -100
  133. package/tsparticles.plugins.absorbers.min.js +2 -2
  134. package/tsparticles.plugins.emitters.js +330 -143
  135. package/tsparticles.plugins.emitters.min.js +2 -2
  136. package/tsparticles.plugins.polygonMask.js +205 -100
  137. package/tsparticles.plugins.polygonMask.min.js +2 -2
  138. package/tsparticles.shape.circle.min.js +1 -1
  139. package/tsparticles.shape.image.js +208 -103
  140. package/tsparticles.shape.image.min.js +2 -2
  141. package/tsparticles.shape.line.min.js +1 -1
  142. package/tsparticles.shape.polygon.min.js +1 -1
  143. package/tsparticles.shape.square.min.js +1 -1
  144. package/tsparticles.shape.star.min.js +1 -1
  145. package/tsparticles.shape.text.js +205 -100
  146. package/tsparticles.shape.text.min.js +2 -2
  147. package/tsparticles.slim.js +227 -118
  148. package/tsparticles.slim.min.js +2 -2
  149. package/tsparticles.updater.angle.js +205 -100
  150. package/tsparticles.updater.angle.min.js +2 -2
  151. package/tsparticles.updater.color.js +205 -100
  152. package/tsparticles.updater.color.min.js +2 -2
  153. package/tsparticles.updater.life.js +205 -100
  154. package/tsparticles.updater.life.min.js +2 -2
  155. package/tsparticles.updater.opacity.js +205 -100
  156. package/tsparticles.updater.opacity.min.js +2 -2
  157. package/tsparticles.updater.outModes.js +205 -100
  158. package/tsparticles.updater.outModes.min.js +2 -2
  159. package/tsparticles.updater.roll.js +205 -100
  160. package/tsparticles.updater.roll.min.js +2 -2
  161. package/tsparticles.updater.size.js +205 -100
  162. package/tsparticles.updater.size.min.js +2 -2
  163. package/tsparticles.updater.strokeColor.js +205 -100
  164. package/tsparticles.updater.strokeColor.min.js +2 -2
  165. package/tsparticles.updater.tilt.js +205 -100
  166. package/tsparticles.updater.tilt.min.js +2 -2
  167. package/tsparticles.updater.wobble.js +205 -100
  168. package/tsparticles.updater.wobble.min.js +2 -2
@@ -1,2 +1,2 @@
1
- /*! tsParticles v1.39.2 by Matteo Bruni */
2
- !function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var n=o();for(var t in n)("object"==typeof exports?exports:e)[t]=n[t]}}(window,(function(){return function(){"use strict";var e={d:function(o,n){for(var t in n)e.o(n,t)&&!e.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:n[t]})},o:function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};e.r(o),e.d(o,{loadColorUpdater:function(){return m}});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 Map,new Map,new Map,new Map,new Map,new Map,new Map;new WeakSet;function t(e){const o=a(e);let n=r(e);return o===n&&(n=0),Math.random()*(o-n)+n}function r(e){return"number"==typeof e?e:e.min}function a(e){return"number"==typeof e?e:e.max}function l(e,o){if(e===o||void 0===o&&"number"==typeof e)return e;const n=r(e),t=a(e);return void 0!==o?{min:Math.min(n,o),max:Math.max(t,o)}:l(n,t)}function s(e,o,n=!0){return e[void 0!==o&&n?o%e.length:function(e){return Math.floor(Math.random()*e.length)}(e)]}function i(e,o,n){let t=n;return t<0&&(t+=1),t>1&&(t-=1),t<1/6?e+6*(o-e)*t:t<.5?o:t<2/3?e+(o-e)*(2/3-t)*6:e}function u(e){if(e.startsWith("rgb")){const o=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return o?{a:o.length>4?parseFloat(o[5]):1,b:parseInt(o[3],10),g:parseInt(o[2],10),r:parseInt(o[1],10)}:void 0}if(e.startsWith("hsl")){const o=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return o?function(e){const o=v(e);return{a:e.a,b:o.b,g:o.g,r:o.r}}({a:o.length>4?parseFloat(o[5]):1,h:parseInt(o[1],10),l:parseInt(o[3],10),s:parseInt(o[2],10)}):void 0}if(e.startsWith("hsv")){const o=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return o?function(e){const o=f(e);return{a:e.a,b:o.b,g:o.g,r:o.r}}({a:o.length>4?parseFloat(o[5]):1,h:parseInt(o[1],10),s:parseInt(o[2],10),v:parseInt(o[3],10)}):void 0}{const o=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,n=e.replace(o,((e,o,n,t,r)=>o+o+n+n+t+t+(void 0!==r?r+r:""))),t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(n);return t?{a:void 0!==t[4]?parseInt(t[4],16)/255:1,b:parseInt(t[3],16),g:parseInt(t[2],16),r:parseInt(t[1],16)}:void 0}}function c(e,o,t=!0){var r,a,l;if(void 0===e)return;const i="string"==typeof e?{value:e}:e;let d;if("string"==typeof i.value)d=i.value===n.randomColorValue?h():function(e){return u(e)}(i.value);else if(i.value instanceof Array){d=c({value:s(i.value,o,t)})}else{const e=i.value,o=null!==(r=e.rgb)&&void 0!==r?r:i.value;if(void 0!==o.r)d=o;else{const o=null!==(a=e.hsl)&&void 0!==a?a:i.value;if(void 0!==o.h&&void 0!==o.l)d=v(o);else{const o=null!==(l=e.hsv)&&void 0!==l?l:i.value;void 0!==o.h&&void 0!==o.v&&(d=f(o))}}}return d}function d(e,o,n=!0){const t=c(e,o,n);return void 0!==t?function(e){const o=e.r/255,n=e.g/255,t=e.b/255,r=Math.max(o,n,t),a=Math.min(o,n,t),l={h:0,l:(r+a)/2,s:0};r!=a&&(l.s=l.l<.5?(r-a)/(r+a):(r-a)/(2-r-a),l.h=o===r?(n-t)/(r-a):l.h=n===r?2+(t-o)/(r-a):4+(o-n)/(r-a));l.l*=100,l.s*=100,l.h*=60,l.h<0&&(l.h+=360);return l}(t):void 0}function v(e){const o={b:0,g:0,r:0},n={h:e.h/360,l:e.l/100,s:e.s/100};if(0===n.s)o.b=n.l,o.g=n.l,o.r=n.l;else{const e=n.l<.5?n.l*(1+n.s):n.l+n.s-n.l*n.s,t=2*n.l-e;o.r=i(t,e,n.h+1/3),o.g=i(t,e,n.h),o.b=i(t,e,n.h-1/3)}return o.r=Math.floor(255*o.r),o.g=Math.floor(255*o.g),o.b=Math.floor(255*o.b),o}function f(e){const o={b:0,g:0,r:0},n=e.h/60,t=e.s/100,r=e.v/100,a=r*t,l=a*(1-Math.abs(n%2-1));let s;if(n>=0&&n<=1?s={r:a,g:l,b:0}:n>1&&n<=2?s={r:l,g:a,b:0}:n>2&&n<=3?s={r:0,g:a,b:l}:n>3&&n<=4?s={r:0,g:l,b:a}:n>4&&n<=5?s={r:l,g:0,b:a}:n>5&&n<=6&&(s={r:a,g:0,b:l}),s){const e=r-a;o.r=Math.floor(255*(s.r+e)),o.g=Math.floor(255*(s.g+e)),o.b=Math.floor(255*(s.b+e))}return o}function h(e){const o=null!=e?e:0;return{b:Math.floor(t(l(o,256))),g:Math.floor(t(l(o,256))),r:Math.floor(t(l(o,256)))}}function p(e,o,n){if(e.enable=o.enable,e.enable){if(e.velocity=o.speed/100*n,o.sync)return;e.status=0,e.velocity*=Math.random(),e.value&&(e.value*=Math.random())}else e.velocity=0}function b(e,o,n,r,a){var l;const s=o;if(!s||!n.enable)return;const i=t(n.offset),u=(null!==(l=o.velocity)&&void 0!==l?l:0)*e.factor+3.6*i;a&&0!==s.status?(s.value-=u,s.value<0&&(s.status=0,s.value+=s.value)):(s.value+=u,a&&s.value>r&&(s.status=1,s.value-=s.value%r)),s.value>r&&(s.value%=r)}class g{constructor(e){this.container=e}init(e){const o=d(e.options.color,e.id,e.options.reduceDuplicates);o&&(e.color=function(e,o,n){const t={h:{enable:!1,value:e.h},s:{enable:!1,value:e.s},l:{enable:!1,value:e.l}};return o&&(p(t.h,o.h,n),p(t.s,o.s,n),p(t.l,o.l,n)),t}(o,e.options.color.animation,this.container.retina.reduceFactor))}isEnabled(e){var o,n,t;const r=e.options.color.animation;return!e.destroyed&&!e.spawning&&(void 0!==(null===(o=e.color)||void 0===o?void 0:o.h.value)&&r.h.enable||void 0!==(null===(n=e.color)||void 0===n?void 0:n.s.value)&&r.s.enable||void 0!==(null===(t=e.color)||void 0===t?void 0:t.l.value)&&r.l.enable)}update(e,o){!function(e,o){var n,t,r;const a=e.options.color.animation;void 0!==(null===(n=e.color)||void 0===n?void 0:n.h)&&b(o,e.color.h,a.h,360,!1),void 0!==(null===(t=e.color)||void 0===t?void 0:t.s)&&b(o,e.color.s,a.s,100,!0),void 0!==(null===(r=e.color)||void 0===r?void 0:r.l)&&b(o,e.color.l,a.l,100,!0)}(e,o)}}async function m(e){await e.addParticleUpdater("color",(e=>new g(e)))}return o}()}));
1
+ /*! tsParticles v1.40.2 by Matteo Bruni */
2
+ !function(e,o){if("object"==typeof exports&&"object"==typeof module)module.exports=o();else if("function"==typeof define&&define.amd)define([],o);else{var n=o();for(var t in n)("object"==typeof exports?exports:e)[t]=n[t]}}(window,(function(){return function(){"use strict";var e={d:function(o,n){for(var t in n)e.o(n,t)&&!e.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:n[t]})},o:function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};e.r(o),e.d(o,{loadColorUpdater:function(){return m}});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;function t(e){const o=a(e);let n=r(e);return o===n&&(n=0),Math.random()*(o-n)+n}function r(e){return"number"==typeof e?e:e.min}function a(e){return"number"==typeof e?e:e.max}function l(e,o){if(e===o||void 0===o&&"number"==typeof e)return e;const n=r(e),t=a(e);return void 0!==o?{min:Math.min(n,o),max:Math.max(t,o)}:l(n,t)}function s(e,o,n=!0){return e[void 0!==o&&n?o%e.length:function(e){return Math.floor(Math.random()*e.length)}(e)]}function i(e,o,n){let t=n;return t<0&&(t+=1),t>1&&(t-=1),t<1/6?e+6*(o-e)*t:t<.5?o:t<2/3?e+(o-e)*(2/3-t)*6:e}function u(e){if(e.startsWith("rgb")){const o=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return o?{a:o.length>4?parseFloat(o[5]):1,b:parseInt(o[3],10),g:parseInt(o[2],10),r:parseInt(o[1],10)}:void 0}if(e.startsWith("hsl")){const o=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return o?function(e){const o=v(e);return{a:e.a,b:o.b,g:o.g,r:o.r}}({a:o.length>4?parseFloat(o[5]):1,h:parseInt(o[1],10),l:parseInt(o[3],10),s:parseInt(o[2],10)}):void 0}if(e.startsWith("hsv")){const o=/hsva?\(\s*(\d+)°\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.]+)\s*)?\)/i.exec(e);return o?function(e){const o=f(e);return{a:e.a,b:o.b,g:o.g,r:o.r}}({a:o.length>4?parseFloat(o[5]):1,h:parseInt(o[1],10),s:parseInt(o[2],10),v:parseInt(o[3],10)}):void 0}{const o=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,n=e.replace(o,((e,o,n,t,r)=>o+o+n+n+t+t+(void 0!==r?r+r:""))),t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(n);return t?{a:void 0!==t[4]?parseInt(t[4],16)/255:1,b:parseInt(t[3],16),g:parseInt(t[2],16),r:parseInt(t[1],16)}:void 0}}function c(e,o,t=!0){var r,a,l;if(void 0===e)return;const i="string"==typeof e?{value:e}:e;let d;if("string"==typeof i.value)d=i.value===n.randomColorValue?h():function(e){return u(e)}(i.value);else if(i.value instanceof Array){d=c({value:s(i.value,o,t)})}else{const e=i.value,o=null!==(r=e.rgb)&&void 0!==r?r:i.value;if(void 0!==o.r)d=o;else{const o=null!==(a=e.hsl)&&void 0!==a?a:i.value;if(void 0!==o.h&&void 0!==o.l)d=v(o);else{const o=null!==(l=e.hsv)&&void 0!==l?l:i.value;void 0!==o.h&&void 0!==o.v&&(d=f(o))}}}return d}function d(e,o,n=!0){const t=c(e,o,n);return void 0!==t?function(e){const o=e.r/255,n=e.g/255,t=e.b/255,r=Math.max(o,n,t),a=Math.min(o,n,t),l={h:0,l:(r+a)/2,s:0};r!=a&&(l.s=l.l<.5?(r-a)/(r+a):(r-a)/(2-r-a),l.h=o===r?(n-t)/(r-a):l.h=n===r?2+(t-o)/(r-a):4+(o-n)/(r-a));l.l*=100,l.s*=100,l.h*=60,l.h<0&&(l.h+=360);return l}(t):void 0}function v(e){const o={b:0,g:0,r:0},n={h:e.h/360,l:e.l/100,s:e.s/100};if(0===n.s)o.b=n.l,o.g=n.l,o.r=n.l;else{const e=n.l<.5?n.l*(1+n.s):n.l+n.s-n.l*n.s,t=2*n.l-e;o.r=i(t,e,n.h+1/3),o.g=i(t,e,n.h),o.b=i(t,e,n.h-1/3)}return o.r=Math.floor(255*o.r),o.g=Math.floor(255*o.g),o.b=Math.floor(255*o.b),o}function f(e){const o={b:0,g:0,r:0},n=e.h/60,t=e.s/100,r=e.v/100,a=r*t,l=a*(1-Math.abs(n%2-1));let s;if(n>=0&&n<=1?s={r:a,g:l,b:0}:n>1&&n<=2?s={r:l,g:a,b:0}:n>2&&n<=3?s={r:0,g:a,b:l}:n>3&&n<=4?s={r:0,g:l,b:a}:n>4&&n<=5?s={r:l,g:0,b:a}:n>5&&n<=6&&(s={r:a,g:0,b:l}),s){const e=r-a;o.r=Math.floor(255*(s.r+e)),o.g=Math.floor(255*(s.g+e)),o.b=Math.floor(255*(s.b+e))}return o}function h(e){const o=null!=e?e:0;return{b:Math.floor(t(l(o,256))),g:Math.floor(t(l(o,256))),r:Math.floor(t(l(o,256)))}}function p(e,o,n){if(e.enable=o.enable,e.enable){if(e.velocity=o.speed/100*n,o.sync)return;e.status=0,e.velocity*=Math.random(),e.value&&(e.value*=Math.random())}else e.velocity=0}function b(e,o,n,r,a){var l;const s=o;if(!s||!n.enable)return;const i=t(n.offset),u=(null!==(l=o.velocity)&&void 0!==l?l:0)*e.factor+3.6*i;a&&0!==s.status?(s.value-=u,s.value<0&&(s.status=0,s.value+=s.value)):(s.value+=u,a&&s.value>r&&(s.status=1,s.value-=s.value%r)),s.value>r&&(s.value%=r)}new WeakMap;class g{constructor(e){this.container=e}init(e){const o=d(e.options.color,e.id,e.options.reduceDuplicates);o&&(e.color=function(e,o,n){const t={h:{enable:!1,value:e.h},s:{enable:!1,value:e.s},l:{enable:!1,value:e.l}};return o&&(p(t.h,o.h,n),p(t.s,o.s,n),p(t.l,o.l,n)),t}(o,e.options.color.animation,this.container.retina.reduceFactor))}isEnabled(e){var o,n,t;const r=e.options.color.animation;return!e.destroyed&&!e.spawning&&(void 0!==(null===(o=e.color)||void 0===o?void 0:o.h.value)&&r.h.enable||void 0!==(null===(n=e.color)||void 0===n?void 0:n.s.value)&&r.s.enable||void 0!==(null===(t=e.color)||void 0===t?void 0:t.l.value)&&r.l.enable)}update(e,o){!function(e,o){var n,t,r;const a=e.options.color.animation;void 0!==(null===(n=e.color)||void 0===n?void 0:n.h)&&b(o,e.color.h,a.h,360,!1),void 0!==(null===(t=e.color)||void 0===t?void 0:t.s)&&b(o,e.color.s,a.s,100,!0),void 0!==(null===(r=e.color)||void 0===r?void 0:r.l)&&b(o,e.color.l,a.l,100,!0)}(e,o)}}async function m(e){await e.addParticleUpdater("color",(e=>new g(e)))}return o}()}));