diff --git a/404.html b/404.html new file mode 100644 index 0000000..d8e3b49 --- /dev/null +++ b/404.html @@ -0,0 +1,50 @@ + + + + + Single Page Apps for GitHub Pages + + + + diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 0000000..5b497a5 --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,27 @@ +{ + "files": { + "main.css": "/goit-react-hw-08-phonebook/static/css/main.89e30610.css", + "main.js": "/goit-react-hw-08-phonebook/static/js/main.720916f3.js", + "static/js/178.cb2c5bce.chunk.js": "/goit-react-hw-08-phonebook/static/js/178.cb2c5bce.chunk.js", + "static/js/728.624f15cc.chunk.js": "/goit-react-hw-08-phonebook/static/js/728.624f15cc.chunk.js", + "static/js/343.b5188439.chunk.js": "/goit-react-hw-08-phonebook/static/js/343.b5188439.chunk.js", + "static/js/957.3236e324.chunk.js": "/goit-react-hw-08-phonebook/static/js/957.3236e324.chunk.js", + "static/js/754.ba64efbe.chunk.js": "/goit-react-hw-08-phonebook/static/js/754.ba64efbe.chunk.js", + "static/js/908.32590a6e.chunk.js": "/goit-react-hw-08-phonebook/static/js/908.32590a6e.chunk.js", + "static/js/6.7e78ad05.chunk.js": "/goit-react-hw-08-phonebook/static/js/6.7e78ad05.chunk.js", + "index.html": "/goit-react-hw-08-phonebook/index.html", + "main.89e30610.css.map": "/goit-react-hw-08-phonebook/static/css/main.89e30610.css.map", + "main.720916f3.js.map": "/goit-react-hw-08-phonebook/static/js/main.720916f3.js.map", + "178.cb2c5bce.chunk.js.map": "/goit-react-hw-08-phonebook/static/js/178.cb2c5bce.chunk.js.map", + "728.624f15cc.chunk.js.map": "/goit-react-hw-08-phonebook/static/js/728.624f15cc.chunk.js.map", + "343.b5188439.chunk.js.map": "/goit-react-hw-08-phonebook/static/js/343.b5188439.chunk.js.map", + "957.3236e324.chunk.js.map": "/goit-react-hw-08-phonebook/static/js/957.3236e324.chunk.js.map", + "754.ba64efbe.chunk.js.map": "/goit-react-hw-08-phonebook/static/js/754.ba64efbe.chunk.js.map", + "908.32590a6e.chunk.js.map": "/goit-react-hw-08-phonebook/static/js/908.32590a6e.chunk.js.map", + "6.7e78ad05.chunk.js.map": "/goit-react-hw-08-phonebook/static/js/6.7e78ad05.chunk.js.map" + }, + "entrypoints": [ + "static/css/main.89e30610.css", + "static/js/main.720916f3.js" + ] +} \ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..082303a --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +React App
\ No newline at end of file diff --git a/logo192.png b/logo192.png new file mode 100644 index 0000000..fc44b0a Binary files /dev/null and b/logo192.png differ diff --git a/logo512.png b/logo512.png new file mode 100644 index 0000000..a4e47a6 Binary files /dev/null and b/logo512.png differ diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/static/css/main.89e30610.css b/static/css/main.89e30610.css new file mode 100644 index 0000000..0f4fdb5 --- /dev/null +++ b/static/css/main.89e30610.css @@ -0,0 +1,2 @@ +:where(html){line-height:1.15}:where(h1){-webkit-margin-after:.67em;-webkit-margin-before:.67em;font-size:2em;margin-block-end:.67em;margin-block-start:.67em}:where(dl,ol,ul) :where(dl,ol,ul){-webkit-margin-after:0;-webkit-margin-before:0;margin-block-end:0;margin-block-start:0}:where(hr){box-sizing:content-box;color:inherit;height:0}:where(pre){font-family:monospace,monospace;font-size:1em}:where(abbr[title]){text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}:where(b,strong){font-weight:bolder}:where(code,kbd,samp){font-family:monospace,monospace;font-size:1em}:where(small){font-size:80%}:where(table){border-color:currentColor;text-indent:0}:where(button,input,select){margin:0}:where(button){text-transform:none}:where(button,input:is([type=button i],[type=reset i],[type=submit i])){-webkit-appearance:button}:where(progress){vertical-align:baseline}:where(select){text-transform:none}:where(textarea){margin:0}:where(input[type=search i]){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focus-inner{border-style:none;padding:0}:where(button,input:is([type=button i],[type=color i],[type=reset i],[type=submit i]))::-moz-focusring{outline:1px dotted ButtonText}:where(:-moz-ui-invalid){box-shadow:none}:where(dialog){background-color:#fff;border:solid;color:#000;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;left:0;margin:auto;padding:1em;position:absolute;right:0;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content}:where(dialog:not([open])){display:none}:where(summary){display:list-item}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#aee1f9;background-image:linear-gradient(90deg,#ecf6e6,#aee1f9 35%,#ecf6e6 120%);background-size:100% 100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;height:100%;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace} +/*# sourceMappingURL=main.89e30610.css.map*/ \ No newline at end of file diff --git a/static/css/main.89e30610.css.map b/static/css/main.89e30610.css.map new file mode 100644 index 0000000..7e06535 --- /dev/null +++ b/static/css/main.89e30610.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.89e30610.css","mappings":"AAOA,aACE,gBACF,CAUA,WAEE,0BAAwB,CACxB,2BAA0B,CAF1B,aAAc,CACd,sBAAwB,CACxB,wBACF,CASA,kCACE,sBAAmB,CACnB,uBAAqB,CADrB,kBAAmB,CACnB,oBACF,CAOA,WACE,sBAAuB,CACvB,aAAc,CACd,QACF,CAOA,YACE,+BAAiC,CACjC,aACF,CASA,oBACE,yBAA0B,CAC1B,wCAAiC,CAAjC,gCACF,CAMA,iBACE,kBACF,CAOA,sBACE,+BAAiC,CACjC,aACF,CAMA,cACE,aACF,CAUA,cACE,yBAA0B,CAC1B,aACF,CASA,4BACE,QACF,CAMA,eACE,mBACF,CAMA,wEACE,yBACF,CAMA,iBACE,uBACF,CAMA,eACE,mBACF,CAMA,iBACE,QACF,CAOA,6BACE,4BAA6B,CAC7B,mBACF,CAMA,wDAEE,WACF,CAMA,4BACE,aAAc,CACd,WACF,CAMA,4BACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CAMA,yGACE,iBAAkB,CAClB,SACF,CAMA,uGACE,6BACF,CAMA,yBACE,eACF,CASA,eACE,qBAAuB,CACvB,YAAa,CACb,UAAY,CACZ,uBAAwB,CACxB,0BAAmB,CAAnB,kBAAmB,CACnB,MAAO,CACP,WAAY,CACZ,WAAY,CACZ,iBAAkB,CAClB,OAAQ,CACR,sBAAuB,CACvB,yBAAkB,CAAlB,iBACF,CAEA,2BACE,YACF,CAMA,gBACE,iBACF,CCrQA,KAKE,kCAAmC,CACnC,iCAAkC,CAClC,wBAAyB,CACzB,wEAKC,CAED,yBAA0B,CAb1B,mIAEY,CAYZ,WAAY,CAfZ,QAgBF,CAEA,KACE,uEAEF","sources":["../node_modules/@csstools/normalize.css/normalize.css","index.css"],"sourcesContent":["/* Document\n * ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n */\n\n:where(html) {\n line-height: 1.15; /* 1 */\n}\n\n/* Sections\n * ========================================================================== */\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Edge, Firefox, and Safari.\n */\n\n:where(h1) {\n font-size: 2em;\n margin-block-end: 0.67em;\n margin-block-start: 0.67em;\n}\n\n/* Grouping content\n * ========================================================================== */\n\n/**\n * Remove the margin on nested lists in Chrome, Edge, and Safari.\n */\n\n:where(dl, ol, ul) :where(dl, ol, ul) {\n margin-block-end: 0;\n margin-block-start: 0;\n}\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Correct the inheritance of border color in Firefox.\n */\n\n:where(hr) {\n box-sizing: content-box; /* 1 */\n color: inherit; /* 2 */\n height: 0; /* 1 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\n:where(pre) {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n * ========================================================================== */\n\n/**\n * Add the correct text decoration in Safari.\n */\n\n:where(abbr[title]) {\n text-decoration: underline;\n text-decoration: underline dotted;\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\n:where(b, strong) {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\n:where(code, kbd, samp) {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\n:where(small) {\n font-size: 80%;\n}\n\n/* Tabular data\n * ========================================================================== */\n\n/**\n * 1. Correct table border color in Chrome, Edge, and Safari.\n * 2. Remove text indentation from table contents in Chrome, Edge, and Safari.\n */\n\n:where(table) {\n border-color: currentColor; /* 1 */\n text-indent: 0; /* 2 */\n}\n\n/* Forms\n * ========================================================================== */\n\n/**\n * Remove the margin on controls in Safari.\n */\n\n:where(button, input, select) {\n margin: 0;\n}\n\n/**\n * Remove the inheritance of text transform in Firefox.\n */\n\n:where(button) {\n text-transform: none;\n}\n\n/**\n * Correct the inability to style buttons in iOS and Safari.\n */\n\n:where(button, input:is([type=\"button\" i], [type=\"reset\" i], [type=\"submit\" i])) {\n -webkit-appearance: button;\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Edge, and Firefox.\n */\n\n:where(progress) {\n vertical-align: baseline;\n}\n\n/**\n * Remove the inheritance of text transform in Firefox.\n */\n\n:where(select) {\n text-transform: none;\n}\n\n/**\n * Remove the margin in Firefox and Safari.\n */\n\n:where(textarea) {\n margin: 0;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome, Edge, and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n:where(input[type=\"search\" i]) {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Safari.\n */\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * Correct the text style of placeholders in Chrome, Edge, and Safari.\n */\n\n::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.54;\n}\n\n/**\n * Remove the inner padding in Chrome, Edge, and Safari on macOS.\n */\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style upload buttons in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/**\n * Remove the inner border and padding of focus outlines in Firefox.\n */\n\n:where(button, input:is([type=\"button\" i], [type=\"color\" i], [type=\"reset\" i], [type=\"submit\" i]))::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus outline styles unset by the previous rule in Firefox.\n */\n\n:where(button, input:is([type=\"button\" i], [type=\"color\" i], [type=\"reset\" i], [type=\"submit\" i]))::-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Remove the additional :invalid styles in Firefox.\n */\n\n:where(:-moz-ui-invalid) {\n box-shadow: none;\n}\n\n/* Interactive\n * ========================================================================== */\n\n/*\n * Add the correct styles in Safari.\n */\n\n:where(dialog) {\n background-color: white;\n border: solid;\n color: black;\n height: -moz-fit-content;\n height: fit-content;\n left: 0;\n margin: auto;\n padding: 1em;\n position: absolute;\n right: 0;\n width: -moz-fit-content;\n width: fit-content;\n}\n\n:where(dialog:not([open])) {\n display: none;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\n:where(summary) {\n display: list-item;\n}\n","@import-normalize; /* bring in normalize.css styles */\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: #aee1f9;\n background-image: linear-gradient(\n 90deg,\n #ecf6e6 0%,\n #aee1f9 35%,\n #ecf6e6 120%\n );\n\n background-size: 100% 100%;\n height: 100%;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/178.cb2c5bce.chunk.js b/static/js/178.cb2c5bce.chunk.js new file mode 100644 index 0000000..f588f5b --- /dev/null +++ b/static/js/178.cb2c5bce.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkreact_homework_template=self.webpackChunkreact_homework_template||[]).push([[178],{178:function(e,a,n){n.r(a),n.d(a,{default:function(){return p}});var t=n(5861),i=n(4687),o=n.n(i),r=n(2431),l=n(2147),s=n(2791),c=n(184),u=function(){var e=(0,s.useCallback)(function(){var e=(0,t.Z)(o().mark((function e(a){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,l.R)(a);case 2:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}(),[]),a=(0,s.useCallback)(function(){var e=(0,t.Z)(o().mark((function e(a){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,a;case 2:case"end":return e.stop()}}),e)})));return function(a){return e.apply(this,arguments)}}(),[]);return(0,c.jsx)(r.Z,{id:"tsparticles",init:e,loaded:a,options:{background:{position:"50% 50%",repeat:"no-repeat",size:"cover"},backgroundMask:{cover:{color:{value:{r:174,g:225,b:249}}},enable:!0},fullScreen:{zIndex:-1},interactivity:{events:{onClick:{enable:!1,mode:"push"},onHover:{enable:!0,mode:"bubble",parallax:{force:60}}},modes:{attract:{distance:200,duration:.4,easing:"ease-out-quad",factor:1,maxSpeed:50,speed:1},bounce:{distance:200},bubble:{distance:200,duration:2,mix:!1,opacity:1,size:25,divs:{distance:200,duration:.4,mix:!1,selectors:[]}},connect:{distance:80,links:{opacity:.5},radius:60},grab:{distance:400,links:{blink:!1,consent:!1,opacity:1}},push:{default:!0,groups:[],quantity:4},remove:{quantity:2},repulse:{distance:200,duration:.4,factor:100,speed:1,maxSpeed:50,easing:"ease-out-quad",divs:{distance:200,duration:.4,factor:100,speed:1,maxSpeed:50,easing:"ease-out-quad",selectors:[]}},trail:{delay:1,pauseOnStop:!1,quantity:1},light:{area:{gradient:{start:{value:"#ffffff"},stop:{value:"#000000"}},radius:1e3},shadow:{color:{value:"#000000"},length:2e3}}}},particles:{color:{value:"#ffffff"},move:{attract:{rotate:{x:600,y:1200}},enable:!0,outModes:{bottom:"out",left:"out",right:"out",top:"out"}},number:{density:{enable:!0},value:80},opacity:{animation:{speed:1,minimumValue:.1}},size:{random:{enable:!0},value:{min:1,max:10},animation:{speed:40,minimumValue:.1}},life:{count:0,delay:{random:{enable:!1,minimumValue:0},value:0,sync:!1},duration:{random:{enable:!1,minimumValue:1e-4},value:0,sync:!1}},roll:{darken:{enable:!1,value:0},enable:!1,enlighten:{enable:!1,value:0},mode:"vertical",speed:25},tilt:{random:{enable:!1,minimumValue:0},value:0,animation:{enable:!1,speed:0,decay:0,sync:!1},direction:"clockwise",enable:!1},twinkle:{lines:{enable:!1,frequency:.05,opacity:1},particles:{enable:!1,frequency:.05,opacity:1}},wobble:{distance:5,enable:!1,speed:{angle:50,move:10}},orbit:{animation:{count:0,enable:!1,speed:1,decay:0,sync:!1},enable:!1,opacity:1,rotation:{random:{enable:!1,minimumValue:0},value:45},width:1},links:{blink:!1,color:{value:"#ffffff"},consent:!1,distance:150,enable:!0,frequency:1,opacity:1,shadow:{blur:5,color:{value:"#000"},enable:!1},triangles:{enable:!1,frequency:1},width:1,warp:!1},repulse:{random:{enable:!1,minimumValue:0},value:0,enabled:!1,distance:1,duration:1,factor:1,speed:1}}}})},d={container:{minHeight:"calc(100vh - 50px)",display:"flex",alignItems:"center",justifyContent:"center"},title:{fontWeight:500,fontSize:48,textAlign:"center",fontFamily:"Times New Roman"}};function p(){return(0,c.jsxs)("div",{style:d.container,children:[(0,c.jsx)(u,{}),(0,c.jsxs)("h1",{style:d.title,children:[(0,c.jsxs)("p",{children:["Hi!",(0,c.jsx)("span",{role:"img","aria-label":"hi icon",style:{padding:"0 10px"},children:"\ud83d\udc4b\ud83c\udffb"}),"This is phonebook app for your contacts."]}),(0,c.jsxs)("p",{children:["Here you can log in and save the necessary numbers of people",(0,c.jsx)("span",{role:"img","aria-label":"people icon",style:{padding:"0 10px"},children:"\ud83d\udc65"}),"you need in your account."]}),(0,c.jsxs)("p",{children:["You can register several times to create separate accounts that will store the phones of colleagues,friends or relatives separately.",(0,c.jsx)("span",{role:"img","aria-label":"Phone icon",children:"\ud83d\udcf2"})]})]})]})}}}]); +//# sourceMappingURL=178.cb2c5bce.chunk.js.map \ No newline at end of file diff --git a/static/js/178.cb2c5bce.chunk.js.map b/static/js/178.cb2c5bce.chunk.js.map new file mode 100644 index 0000000..688df07 --- /dev/null +++ b/static/js/178.cb2c5bce.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/178.cb2c5bce.chunk.js","mappings":"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","sources":["components/BgHomeParticles/BgHomeParticles.jsx","pages/Home.js"],"sourcesContent":["import Particles from 'react-particles';\nimport { loadFull } from 'tsparticles';\nimport { useCallback } from 'react';\n\nconst ParticlesGrowing = () => {\n const particlesInit = useCallback(async engine => {\n await loadFull(engine);\n }, []);\n\n const particlesLoaded = useCallback(async container => {\n await container;\n }, []);\n\n return (\n \n );\n};\n\nexport default ParticlesGrowing;\n","import ParticlesGrowing from 'components/BgHomeParticles/BgHomeParticles';\n\nconst styles = {\n container: {\n minHeight: 'calc(100vh - 50px)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n title: {\n fontWeight: 500,\n fontSize: 48,\n textAlign: 'center',\n fontFamily: 'Times New Roman',\n },\n};\n\nexport default function Home() {\n return (\n
\n \n

\n

\n Hi!\n \n 👋🏻\n \n This is phonebook app for your contacts.\n

\n

\n Here you can log in and save the necessary numbers of people\n \n 👥\n \n you need in your account.\n

\n

\n You can register several times to create separate accounts that will\n store the phones of colleagues,friends or relatives separately.\n \n 📲\n \n

\n

\n {/*
*/}\n
\n );\n}\n"],"names":["particlesInit","useCallback","engine","loadFull","particlesLoaded","container","id","init","loaded","options","background","position","repeat","size","backgroundMask","cover","color","value","r","g","b","enable","fullScreen","zIndex","interactivity","events","onClick","mode","onHover","parallax","force","modes","attract","distance","duration","easing","factor","maxSpeed","speed","bounce","bubble","mix","opacity","divs","selectors","connect","links","radius","grab","blink","consent","push","default","groups","quantity","remove","repulse","trail","delay","pauseOnStop","light","area","gradient","start","stop","shadow","length","particles","move","rotate","x","y","outModes","bottom","left","right","top","number","density","animation","minimumValue","random","min","max","life","count","sync","roll","darken","enlighten","tilt","decay","direction","twinkle","lines","frequency","wobble","angle","orbit","rotation","width","blur","triangles","warp","enabled","styles","minHeight","display","alignItems","justifyContent","title","fontWeight","fontSize","textAlign","fontFamily","Home","style","role","padding"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/343.b5188439.chunk.js b/static/js/343.b5188439.chunk.js new file mode 100644 index 0000000..5667752 --- /dev/null +++ b/static/js/343.b5188439.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkreact_homework_template=self.webpackChunkreact_homework_template||[]).push([[343],{6343:function(e,t,n){n.r(t),n.d(t,{default:function(){return w}});var a,r,i=n(9434),o=n(9273),l=n(168),s=n(7691),d=s.ZP.form(a||(a=(0,l.Z)(["\n width: 320px;\n"]))),u=(s.ZP.label(r||(r=(0,l.Z)(["\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n"]))),n(1614)),m=n(6747),c=n(7338),p=n(3736),x=n(1643),h=n(4217),f=n(184),v=function(e){var t=e.onData,n=(0,i.I0)(),a=(0,i.v9)(h.Li);return(0,f.jsx)(u.Z,{component:"div",maxWidth:"xs",style:{maxWidth:440},children:(0,f.jsxs)(m.Z,{sx:{marginTop:8,display:"flex",flexDirection:"column",alignItems:"center",backgroundColor:"white",padding:"20px",boxShadow:" rgb(33 33 33) 0px 2px 10px 1px"},children:[(0,f.jsx)("h1",{style:{textAlign:"center",fontFamily:"monospace"},children:"Entrance"}),(0,f.jsxs)(d,{onSubmit:function(e){e.preventDefault();var a=e.currentTarget;t(n((0,o.Ib)({email:a.elements.email.value,password:a.elements.password.value}))),a.reset()},autoComplete:"off",children:[(0,f.jsx)(c.Z,{margin:"normal",required:!0,fullWidth:!0,autoFocus:!0,label:"Email",name:"email",autoComplete:"email",type:"email",variant:"standard"}),(0,f.jsx)(c.Z,{margin:"normal",required:!0,fullWidth:!0,name:"password",label:"Password",type:"password",autoComplete:"current-password",variant:"standard"}),a?(0,f.jsx)(p.Z,{fullWidth:!0,variant:"contained",style:{marginTop:30},children:(0,f.jsx)(x.BR,{height:22,stroke:"#fff"})}):(0,f.jsx)(p.Z,{type:"submit",fullWidth:!0,variant:"contained",style:{marginTop:30},children:"Log In"})]})]})})},g=n(5218);function w(){var e=(0,i.v9)(h.Li),t=(0,i.v9)(h.Hn);return(0,f.jsxs)("div",{children:[(0,f.jsx)("title",{children:"Login"}),(0,f.jsx)(v,{onData:function(){"Request failed with status code 400"===t&&!1===e&&g.ZP.error("You have entered an incorrect email address or password, or you have not yet registered!")}})]})}}}]); +//# sourceMappingURL=343.b5188439.chunk.js.map \ No newline at end of file diff --git a/static/js/343.b5188439.chunk.js.map b/static/js/343.b5188439.chunk.js.map new file mode 100644 index 0000000..b1ba90f --- /dev/null +++ b/static/js/343.b5188439.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/343.b5188439.chunk.js","mappings":"mOAEaA,EAAOC,EAAAA,GAAAA,KAAH,yC,GAIIA,EAAAA,GAAAA,MAAH,6F,oECELC,EAAY,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OACpBC,GAAWC,EAAAA,EAAAA,MACXC,GAAYC,EAAAA,EAAAA,IAAYC,EAAAA,IAiB9B,OACE,SAACC,EAAA,EAAD,CAAWC,UAAU,MAAMC,SAAS,KAAKC,MAAO,CAAED,SAAU,KAA5D,UACE,UAACE,EAAA,EAAD,CACEC,GAAI,CACFC,UAAW,EACXC,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,gBAAiB,QACjBC,QAAS,OACTC,UAAW,mCARf,WAWE,eAAIT,MAAO,CAAEU,UAAW,SAAUC,WAAY,aAA9C,uBAGA,UAACvB,EAAD,CAAMwB,SA/BS,SAAAC,GACnBA,EAAEC,iBACF,IAAMC,EAAOF,EAAEG,cACfzB,EACEC,GACEyB,EAAAA,EAAAA,IAAM,CACJC,MAAOH,EAAKI,SAASD,MAAME,MAC3BC,SAAUN,EAAKI,SAASE,SAASD,UAKvCL,EAAKO,OACN,EAkBmCC,aAAa,MAA3C,WACE,SAACC,EAAA,EAAD,CACEC,OAAO,SACPC,UAAQ,EACRC,WAAS,EACTC,WAAS,EACTC,MAAM,QACNC,KAAK,QACLP,aAAa,QACbQ,KAAK,QACLC,QAAQ,cAEV,SAACR,EAAA,EAAD,CACEC,OAAO,SACPC,UAAQ,EACRC,WAAS,EACTG,KAAK,WACLD,MAAM,WACNE,KAAK,WACLR,aAAa,mBACbS,QAAQ,aAETtC,GACC,SAACuC,EAAA,EAAD,CAAQN,WAAS,EAACK,QAAQ,YAAYhC,MAAO,CAAEG,UAAW,IAA1D,UACE,SAAC,KAAD,CAAM+B,OAAQ,GAAIC,OAAO,YAG3B,SAACF,EAAA,EAAD,CACEF,KAAK,SACLJ,WAAS,EACTK,QAAQ,YACRhC,MAAO,CAAEG,UAAW,IAJtB,2BAaX,E,UC9Ec,SAASiC,IACtB,IAAM1C,GAAYC,EAAAA,EAAAA,IAAYC,EAAAA,IACxByC,GAAS1C,EAAAA,EAAAA,IAAY2C,EAAAA,IAY3B,OACE,4BACE,sCAEA,SAAChD,EAAD,CAAWC,OAdI,WAEJ,wCAAX8C,IACc,IAAd3C,GAEA6C,EAAAA,GAAAA,MACE,2FAGL,MAQF,C","sources":["components/LoginForm/LoginForm.styled.js","components/LoginForm/LoginForm.jsx","pages/Login.js"],"sourcesContent":["import styled from 'styled-components';\n\nexport const Form = styled.form`\n width: 320px;\n`;\n\nexport const Label = styled.label`\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n`;\n","import { useDispatch } from 'react-redux';\nimport { logIn } from 'redux/auth/operations';\nimport { Form } from './LoginForm.styled';\nimport { Button, TextField, Box, Container } from '@mui/material';\nimport { Puff } from 'react-loading-icons';\nimport { useSelector } from 'react-redux';\nimport { selectAuthIsLoading } from 'redux/auth/selectors';\n\nexport const LoginForm = ({ onData }) => {\n const dispatch = useDispatch();\n const isLoading = useSelector(selectAuthIsLoading);\n\n const handleSubmit = e => {\n e.preventDefault();\n const form = e.currentTarget;\n onData(\n dispatch(\n logIn({\n email: form.elements.email.value,\n password: form.elements.password.value,\n })\n )\n );\n\n form.reset();\n };\n\n return (\n \n \n

\n Entrance\n

\n
\n \n \n {isLoading ? (\n \n ) : (\n \n Log In\n \n )}\n \n \n
\n );\n};\n","import { LoginForm } from 'components/LoginForm/LoginForm';\nimport toast from 'react-hot-toast';\nimport { useSelector } from 'react-redux';\nimport { selectAuthIsLoading, selectAuthError } from 'redux/auth/selectors';\n\nexport default function Login() {\n const isLoading = useSelector(selectAuthIsLoading);\n const status = useSelector(selectAuthError);\n\n const onRegister = () => {\n if (\n status === 'Request failed with status code 400' &&\n isLoading === false\n ) {\n toast.error(\n 'You have entered an incorrect email address or password, or you have not yet registered!'\n );\n }\n };\n return (\n
\n Login\n\n \n
\n );\n}\n"],"names":["Form","styled","LoginForm","onData","dispatch","useDispatch","isLoading","useSelector","selectAuthIsLoading","Container","component","maxWidth","style","Box","sx","marginTop","display","flexDirection","alignItems","backgroundColor","padding","boxShadow","textAlign","fontFamily","onSubmit","e","preventDefault","form","currentTarget","logIn","email","elements","value","password","reset","autoComplete","TextField","margin","required","fullWidth","autoFocus","label","name","type","variant","Button","height","stroke","Login","status","selectAuthError","toast"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6.7e78ad05.chunk.js b/static/js/6.7e78ad05.chunk.js new file mode 100644 index 0000000..a75fb4d --- /dev/null +++ b/static/js/6.7e78ad05.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkreact_homework_template=self.webpackChunkreact_homework_template||[]).push([[6],{6300:function(t){t.exports=function t(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var n,a,r;if(Array.isArray(e)){if((n=e.length)!=i.length)return!1;for(a=n;0!==a--;)if(!t(e[a],i[a]))return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((n=(r=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(a=n;0!==a--;)if(!Object.prototype.hasOwnProperty.call(i,r[a]))return!1;for(a=n;0!==a--;){var o=r[a];if(("_owner"!==o||!e.$$typeof)&&!t(e[o],i[o]))return!1}return!0}return e!==e&&i!==i}},2431:function(t,e,i){i.d(e,{Z:function(){return b}});var n=i(5861),a=i(5671),r=i(3144),o=i(1752),s=i(1120),u=i(136),l=i(7277),c=i(4687),h=i.n(c),d=i(2791),v=i(4099),f=i(6300),p=i.n(f),y="tsparticles",m=function(t){(0,u.Z)(i,t);var e=(0,l.Z)(i);function i(t){var n;return(0,a.Z)(this,i),(n=e.call(this,t)).state={init:!1,library:void 0},n}return(0,r.Z)(i,[{key:"destroy",value:function(){this.state.library&&(this.state.library.destroy(),this.setState({library:void 0}))}},{key:"shouldComponentUpdate",value:function(t){return!p()(t,this.props)}},{key:"componentDidUpdate",value:function(){this.refresh()}},{key:"forceUpdate",value:function(){var t=this;this.refresh().then((function(){(0,o.Z)((0,s.Z)(i.prototype),"forceUpdate",t).call(t)}))}},{key:"componentDidMount",value:function(){var t=this;(0,n.Z)(h().mark((function e(){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.props.init){e.next=3;break}return e.next=3,t.props.init(v.S6);case 3:t.setState({init:!0},(0,n.Z)(h().mark((function e(){return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.loadParticles();case 2:case"end":return e.stop()}}),e)}))));case 4:case"end":return e.stop()}}),e)})))()}},{key:"componentWillUnmount",value:function(){this.destroy()}},{key:"render",value:function(){var t=this.props,e=t.width,i=t.height,n=t.className,a=t.canvasClassName,r=t.id;return d.createElement("div",{className:n,id:r},d.createElement("canvas",{className:a,style:Object.assign(Object.assign({},this.props.style),{width:e,height:i})}))}},{key:"refresh",value:function(){var t=(0,n.Z)(h().mark((function t(){return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.destroy(),t.next=3,this.loadParticles();case 3:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"loadParticles",value:function(){var t=(0,n.Z)(h().mark((function t(){var e,a,r,o,s,u,l=this;return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.state.init){t.next=2;break}return t.abrupt("return");case 2:if(o=function(){var t=(0,n.Z)(h().mark((function t(e){return h().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(l.props.container&&(l.props.container.current=e),l.setState({library:e}),!l.props.loaded){t.next=5;break}return t.next=5,l.props.loaded(e);case 5:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),s=null!==(a=null!==(e=this.props.id)&&void 0!==e?e:i.defaultProps.id)&&void 0!==a?a:y,!this.props.url){t.next=10;break}return t.next=7,v.S6.loadJSON(s,this.props.url);case 7:t.t0=t.sent,t.next=13;break;case 10:return t.next=12,v.S6.load(s,null!==(r=this.props.params)&&void 0!==r?r:this.props.options);case 12:t.t0=t.sent;case 13:return u=t.t0,t.next=16,o(u);case 16:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()}]),i}(d.Component);m.defaultProps={width:"100%",height:"100%",options:{},style:{},url:void 0,id:y};var b=m},4099:function(t,e,i){i.d(e,{RC:function(){return ee},Cd:function(){return Ue},L8:function(){return li},Oz:function(){return Et},$S:function(){return ci},Ae:function(){return je},SW:function(){return re},OW:function(){return f},dU:function(){return B},p:function(){return S},Gz:function(){return R},M_:function(){return G},kR:function(){return X},gy:function(){return K},uZ:function(){return g},oc:function(){return pt},ZB:function(){return V},iC:function(){return N},XD:function(){return j},pS:function(){return wt},Wd:function(){return xt},KH:function(){return J},Sp:function(){return M},oW:function(){return O},_X:function(){return m},bS:function(){return gt},BE:function(){return yt},Dt:function(){return mt},sZ:function(){return b},KI:function(){return z},Uv:function(){return Z},Gu:function(){return x},vz:function(){return ft},iz:function(){return vt},NA:function(){return C},wm:function(){return U},dB:function(){return L},Ac:function(){return H},Kr:function(){return T},c8:function(){return F},wA:function(){return $},mx:function(){return q},hT:function(){return qe},aM:function(){return Ot},Wt:function(){return Ct},vd:function(){return w},lN:function(){return ut},tX:function(){return ot},dp:function(){return Y},lC:function(){return lt},Cs:function(){return _},S6:function(){return vi}});var n=i(7762),a=i(5861),r=i(5671),o=i(3144),s=i(4687),u=i.n(s),l=function(){function t(){(0,r.Z)(this,t),this._listeners=new Map}return(0,o.Z)(t,[{key:"addEventListener",value:function(t,e){var i;this.removeEventListener(t,e),this._listeners.get(t)||this._listeners.set(t,[]),null===(i=this._listeners.get(t))||void 0===i||i.push(e)}},{key:"dispatchEvent",value:function(t,e){var i;null===(i=this._listeners.get(t))||void 0===i||i.forEach((function(t){return t(e)}))}},{key:"hasEventListener",value:function(t){return!!this._listeners.get(t)}},{key:"removeAllEventListeners",value:function(t){t?this._listeners.delete(t):this._listeners=new Map}},{key:"removeEventListener",value:function(t,e){var i=this._listeners.get(t);if(i){var n=i.length,a=i.indexOf(e);a<0||(1===n?this._listeners.delete(t):i.splice(a,1))}}}]),t}(),c=i(9439),h=i(136),d=i(7277),v=function(){function t(e,i,n){if((0,r.Z)(this,t),"number"!==typeof e&&e){this.x=e.x,this.y=e.y;var a=e;this.z=a.z?a.z:0}else{if(void 0===e||void 0===i)throw new Error("tsParticles - Vector3d not initialized correctly");this.x=e,this.y=i,this.z=null!==n&&void 0!==n?n:0}}return(0,o.Z)(t,[{key:"angle",get:function(){return Math.atan2(this.y,this.x)},set:function(t){this.updateFromAngle(t,this.length)}},{key:"length",get:function(){return Math.sqrt(this.getLengthSq())},set:function(t){this.updateFromAngle(this.angle,t)}},{key:"add",value:function(e){return t.create(this.x+e.x,this.y+e.y,this.z+e.z)}},{key:"addTo",value:function(t){this.x+=t.x,this.y+=t.y,this.z+=t.z}},{key:"copy",value:function(){return t.clone(this)}},{key:"distanceTo",value:function(t){return this.sub(t).length}},{key:"distanceToSq",value:function(t){return this.sub(t).getLengthSq()}},{key:"div",value:function(e){return t.create(this.x/e,this.y/e,this.z/e)}},{key:"divTo",value:function(t){this.x/=t,this.y/=t,this.z/=t}},{key:"getLengthSq",value:function(){return Math.pow(this.x,2)+Math.pow(this.y,2)}},{key:"mult",value:function(e){return t.create(this.x*e,this.y*e,this.z*e)}},{key:"multTo",value:function(t){this.x*=t,this.y*=t,this.z*=t}},{key:"rotate",value:function(e){return t.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e),0)}},{key:"setTo",value:function(t){this.x=t.x,this.y=t.y;var e=t;this.z=e.z?e.z:0}},{key:"sub",value:function(e){return t.create(this.x-e.x,this.y-e.y,this.z-e.z)}},{key:"subFrom",value:function(t){this.x-=t.x,this.y-=t.y,this.z-=t.z}},{key:"updateFromAngle",value:function(t,e){this.x=Math.cos(t)*e,this.y=Math.sin(t)*e}}],[{key:"origin",get:function(){return t.create(0,0,0)}},{key:"clone",value:function(e){return t.create(e.x,e.y,e.z)}},{key:"create",value:function(e,i,n){return new t(e,i,n)}}]),t}(),f=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t,n){return(0,r.Z)(this,i),e.call(this,t,n,0)}return(0,o.Z)(i,null,[{key:"origin",get:function(){return i.create(0,0)}},{key:"clone",value:function(t){return i.create(t.x,t.y)}},{key:"create",value:function(t,e){return new i(t,e)}}]),i}(v),p=Math.random,y=new Map;function m(t){return y.get(t)||function(t){return t}}function b(){return g(p(),0,1-1e-16)}function g(t,e,i){return Math.min(Math.max(t,e),i)}function k(t,e,i,n){return Math.floor((t*i+e*n)/(i+n))}function w(t){var e=z(t),i=Z(t);return e===i&&(i=0),b()*(e-i)+i}function x(t){return"number"===typeof t?t:w(t)}function Z(t){return"number"===typeof t?t:t.min}function z(t){return"number"===typeof t?t:t.max}function _(t,e){if(t===e||void 0===e&&"number"===typeof t)return t;var i=Z(t),n=z(t);return void 0!==e?{min:Math.min(i,e),max:Math.max(n,e)}:_(i,n)}function C(t){var e=t.random,i="boolean"===typeof e?{enable:e,minimumValue:0}:e,n=i.enable,a=i.minimumValue;return x(n?_(t.value,a):t.value)}function O(t,e){var i=t.x-e.x,n=t.y-e.y;return{dx:i,dy:n,distance:Math.sqrt(Math.pow(i,2)+Math.pow(n,2))}}function M(t,e){return O(t,e).distance}function P(t,e,i,n){return f.create(t.x*(i-n)/(i+n)+2*e.x*n/(i+n),t.y)}function S(t){var e,i,n,a;return{x:(null!==(i=null===(e=t.position)||void 0===e?void 0:e.x)&&void 0!==i?i:100*b())*t.size.width/100,y:(null!==(a=null===(n=t.position)||void 0===n?void 0:n.y)&&void 0!==a?a:100*b())*t.size.height/100}}function R(t){var e,i,n={x:void 0!==(null===(e=t.position)||void 0===e?void 0:e.x)?x(t.position.x):void 0,y:void 0!==(null===(i=t.position)||void 0===i?void 0:i.y)?x(t.position.y):void 0};return S({size:t.size,position:n})}function D(t){var e,i,n,a;return{x:null!==(i=null===(e=t.position)||void 0===e?void 0:e.x)&&void 0!==i?i:b()*t.size.width,y:null!==(a=null===(n=t.position)||void 0===n?void 0:n.y)&&void 0!==a?a:b()*t.size.height}}function I(t){return t?t.endsWith("%")?parseFloat(t)/100:parseFloat(t):1}function E(t,e,i,n,a,r){var o={bounced:!1};return e.minn.max||e.maxn.max||(t.max>=i.min&&t.max<=(i.max+i.min)/2&&a>0||t.min<=i.max&&t.min>(i.max+i.min)/2&&a<0)&&(o.velocity=a*-r,o.bounced=!0),o}function T(){return"undefined"===typeof window||!window||"undefined"===typeof window.document||!window.document}function A(t){if(!T()&&"undefined"!==typeof matchMedia)return matchMedia(t)}function L(t,e){return t===e||e instanceof Array&&e.indexOf(t)>-1}function q(t,e){return W.apply(this,arguments)}function W(){return(W=(0,a.Z)(u().mark((function t(e,i){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,document.fonts.load("".concat(null!==i&&void 0!==i?i:"400"," 36px '").concat(null!==e&&void 0!==e?e:"Verdana","'"));case 3:t.next=7;break;case 5:t.prev=5,t.t0=t.catch(0);case 7:case"end":return t.stop()}}),t,null,[[0,5]])})))).apply(this,arguments)}function B(t){return Math.floor(b()*t.length)}function F(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return t[void 0!==e&&i?e%t.length:B(t)]}function H(t,e,i,n,a){return function(t,e,i,n){var a=!0;n&&"bottom"!==n||(a=t.topi.x);!a||n&&"right"!==n||(a=t.lefti.y);return a}(G(t,null!==n&&void 0!==n?n:0),e,i,a)}function G(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function V(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function rt(t){var e,i=(0,n.Z)(it);try{for(i.s();!(e=i.n()).done;){var a=(0,c.Z)(e.value,2)[1];if(t.startsWith(a.stringPrefix))return a.parseString(t)}}catch(s){i.e(s)}finally{i.f()}var r=t.replace(/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,(function(t,e,i,n,a){return e+e+i+i+n+n+(void 0!==a?a+a:"")})),o=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(r);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 ot(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(t){var a="string"===typeof t?{value:t}:t;if("string"===typeof a.value)return st(a.value,e,i);if(a.value instanceof Array)return ot({value:F(a.value,e,i)});var r,o=(0,n.Z)(it);try{for(o.s();!(r=o.n()).done;){var s=(0,c.Z)(r.value,2),u=s[1],l=u.handleRangeColor(a);if(l)return l}}catch(h){o.e(h)}finally{o.f()}}}function st(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(t){var a="string"===typeof t?{value:t}:t;if("string"===typeof a.value)return a.value===tt?dt():ct(a.value);if(a.value instanceof Array)return st({value:F(a.value,e,i)});var r,o=(0,n.Z)(it);try{for(o.s();!(r=o.n()).done;){var s=(0,c.Z)(r.value,2),u=s[1],l=u.handleColor(a);if(l)return l}}catch(h){o.e(h)}finally{o.f()}}}function ut(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=ot(t,e,i);return n?lt(n):void 0}function lt(t){var e=t.r/255,i=t.g/255,n=t.b/255,a=Math.max(e,i,n),r=Math.min(e,i,n),o={h:0,l:(a+r)/2,s:0};return a!==r&&(o.s=o.l<.5?(a-r)/(a+r):(a-r)/(2-a-r),o.h=e===a?(i-n)/(a-r):o.h=i===a?2+(n-e)/(a-r):4+(e-i)/(a-r)),o.l*=100,o.s*=100,o.h*=60,o.h<0&&(o.h+=360),o.h>=360&&(o.h-=360),o}function ct(t){return rt(t)}function ht(t){var e={b:0,g:0,r:0},i={h:t.h/360,l:t.l/100,s:t.s/100};if(i.s){var n=i.l<.5?i.l*(1+i.s):i.l+i.s-i.l*i.s,a=2*i.l-n;e.r=at(a,n,i.h+1/3),e.g=at(a,n,i.h),e.b=at(a,n,i.h-1/3)}else e.b=i.l,e.g=i.l,e.r=i.l;return e.r=Math.floor(255*e.r),e.g=Math.floor(255*e.g),e.b=Math.floor(255*e.b),e}function dt(t){var e=null!==t&&void 0!==t?t:0;return{b:Math.floor(w(_(e,256))),g:Math.floor(w(_(e,256))),r:Math.floor(w(_(e,256)))}}function vt(t,e){return"rgba(".concat(t.r,", ").concat(t.g,", ").concat(t.b,", ").concat(null!==e&&void 0!==e?e:1,")")}function ft(t,e){return"hsla(".concat(t.h,", ").concat(t.s,"%, ").concat(t.l,"%, ").concat(null!==e&&void 0!==e?e:1,")")}function pt(t,e,i,n){var a=t,r=e;return void 0===a.r&&(a=ht(t)),void 0===r.r&&(r=ht(e)),{b:k(a.b,r.b,i,n),g:k(a.g,r.g,i,n),r:k(a.r,r.r,i,n)}}function yt(t,e,i){var n,a;if(i===tt)return dt();if(i!==et)return i;var r=null!==(n=t.getFillColor())&&void 0!==n?n:t.getStrokeColor(),o=null!==(a=null===e||void 0===e?void 0:e.getFillColor())&&void 0!==a?a:null===e||void 0===e?void 0:e.getStrokeColor();if(r&&o&&e)return pt(r,o,t.getRadius(),e.getRadius());var s=null!==r&&void 0!==r?r:o;return s?ht(s):void 0}function mt(t,e,i){var n="string"===typeof t?t:t.value;return n===tt?i?ot({value:n}):e?tt:et:n===et?et:ot({value:n})}function bt(t){return void 0!==t?{h:t.h.value,s:t.s.value,l:t.l.value}:void 0}function gt(t,e,i){var n={h:{enable:!1,value:t.h},s:{enable:!1,value:t.s},l:{enable:!1,value:t.l}};return e&&(kt(n.h,e.h,i),kt(n.s,e.s,i),kt(n.l,e.l,i)),n}function kt(t,e,i){t.enable=e.enable,t.enable?(t.velocity=x(e.speed)/100*i,t.decay=1-x(e.decay),t.status="increasing",t.loops=0,t.maxLoops=x(e.count),e.sync||(t.velocity*=b(),t.value*=b()),t.initialValue=t.value):t.velocity=0}function wt(t,e,i){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.closePath()}function xt(t,e,i,n){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.lineTo(n.x,n.y),t.closePath()}function Zt(t,e){t.clearRect(0,0,e.width,e.height)}var zt="generated",_t="touchend",Ct="pointermove",Ot="pointerleave";function Mt(t,e,i){var n,a=e[i];void 0!==a&&(t[i]=(null!==(n=t[i])&&void 0!==n?n:1)*a)}var Pt=function(){function t(e){var i=this;(0,r.Z)(this,t),this.container=e,this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[],this._mutationObserver=T()||"undefined"===typeof MutationObserver?void 0:new MutationObserver((function(t){var e,a=(0,n.Z)(t);try{for(a.s();!(e=a.n()).done;){var r=e.value;"attributes"===r.type&&"style"===r.attributeName&&i._repairStyle()}}catch(o){a.e(o)}finally{a.f()}}))}return(0,o.Z)(t,[{key:"_fullScreen",get:function(){return this.container.actualOptions.fullScreen.enable}},{key:"clear",value:function(){var t=this,e=this.container.actualOptions,i=e.particles.move.trail,n=this._trailFill;e.backgroundMask.enable?this.paint():i.enable&&i.length>0&&n?n.color?this._paintBase(vt(n.color,n.opacity)):n.image&&this._paintImage(n.image,n.opacity):this.draw((function(e){Zt(e,t.size)}))}},{key:"destroy",value:function(){var t,e;null===(t=this._mutationObserver)||void 0===t||t.disconnect(),this._generated?null===(e=this.element)||void 0===e||e.remove():this._resetOriginalStyle(),this.stop(),this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}},{key:"draw",value:function(t){if(this._context)return t(this._context)}},{key:"drawParticle",value:function(t,e){var i,n=this;if(!t.spawning&&!t.destroyed){var a=t.getRadius();if(!(a<=0)){var r=t.getFillColor(),o=null!==(i=t.getStrokeColor())&&void 0!==i?i:r,s=this._getPluginParticleColors(t),u=(0,c.Z)(s,2),l=u[0],h=u[1];l||(l=r),h||(h=o),(l||h)&&this.draw((function(i){var r,o,s,u,c=n.container.actualOptions,d=t.options.zIndex,v=Math.pow(1-t.zIndexFactor,d.opacityRate),f=null!==(s=null!==(r=t.bubble.opacity)&&void 0!==r?r:null===(o=t.opacity)||void 0===o?void 0:o.value)&&void 0!==s?s:1,p=f*v,y=(null!==(u=t.strokeOpacity)&&void 0!==u?u:f)*v,m={},b={fill:l?ft(l,p):void 0};b.stroke=h?ft(h,y):b.fill,n._applyPreDrawUpdaters(i,t,a,p,b,m),function(t){var e,i,n,a,r,o=t.container,s=t.context,u=t.particle,l=t.delta,c=t.colorStyles,h=t.backgroundMask,d=t.composite,v=t.radius,f=t.opacity,p=t.shadow,y=t.transform,m=u.getPosition(),b=u.rotation+(u.pathRotation?u.velocity.angle:0),g=Math.sin(b),k=Math.cos(b),w={a:k*(null!==(e=y.a)&&void 0!==e?e:1),b:g*(null!==(i=y.b)&&void 0!==i?i:1),c:-g*(null!==(n=y.c)&&void 0!==n?n:1),d:k*(null!==(a=y.d)&&void 0!==a?a:1)};s.setTransform(w.a,w.b,w.c,w.d,m.x,m.y),s.beginPath(),h&&(s.globalCompositeOperation=d);var x=u.shadowColor;p.enable&&x&&(s.shadowBlur=p.blur,s.shadowColor=vt(x),s.shadowOffsetX=p.offset.x,s.shadowOffsetY=p.offset.y),c.fill&&(s.fillStyle=c.fill);var Z=null!==(r=u.strokeWidth)&&void 0!==r?r:0;s.lineWidth=Z,c.stroke&&(s.strokeStyle=c.stroke),function(t,e,i,n,a,r){if(i.shape){var o=t.drawers.get(i.shape);o&&o.draw(e,i,n,a,r,t.retina.pixelRatio)}}(o,s,u,v,f,l),Z>0&&s.stroke(),u.close&&s.closePath(),u.fill&&s.fill(),function(t,e,i,n,a,r){if(i.shape){var o=t.drawers.get(i.shape);(null===o||void 0===o?void 0:o.afterEffect)&&o.afterEffect(e,i,n,a,r,t.retina.pixelRatio)}}(o,s,u,v,f,l),s.globalCompositeOperation="source-over",s.setTransform(1,0,0,1,0,0)}({container:n.container,context:i,particle:t,delta:e,colorStyles:b,backgroundMask:c.backgroundMask.enable,composite:c.backgroundMask.composite,radius:a*Math.pow(1-t.zIndexFactor,d.sizeRate),opacity:p,shadow:t.options.shadow,transform:m}),n._applyPostDrawUpdaters(t)}))}}}},{key:"drawParticlePlugin",value:function(t,e,i){this.draw((function(n){!function(t,e,i,n){e.drawParticle&&e.drawParticle(t,i,n)}(n,t,e,i)}))}},{key:"drawPlugin",value:function(t,e){this.draw((function(i){!function(t,e,i){e.draw&&e.draw(t,i)}(i,t,e)}))}},{key:"init",value:function(){var t=(0,a.Z)(u().mark((function t(){var e;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.resize(),this._initStyle(),this._initCover(),t.prev=3,t.next=6,this._initTrail();case 6:t.next=11;break;case 8:t.prev=8,t.t0=t.catch(3),console.error(t.t0);case 11:this.initBackground(),this.element&&(null===(e=this._mutationObserver)||void 0===e||e.observe(this.element,{attributes:!0})),this.initUpdaters(),this.initPlugins(),this.paint();case 16:case"end":return t.stop()}}),t,this,[[3,8]])})));return function(){return t.apply(this,arguments)}}()},{key:"initBackground",value:function(){var t=this.container.actualOptions.background,e=this.element,i=null===e||void 0===e?void 0:e.style;if(i){if(t.color){var n=ot(t.color);i.backgroundColor=n?vt(n,t.opacity):""}else i.backgroundColor="";i.backgroundImage=t.image||"",i.backgroundPosition=t.position||"",i.backgroundRepeat=t.repeat||"",i.backgroundSize=t.size||""}}},{key:"initPlugins",value:function(){this._resizePlugins=[];var t,e=(0,n.Z)(this.container.plugins);try{for(e.s();!(t=e.n()).done;){var i=(0,c.Z)(t.value,2)[1];i.resize&&this._resizePlugins.push(i),(i.particleFillColor||i.particleStrokeColor)&&this._colorPlugins.push(i)}}catch(a){e.e(a)}finally{e.f()}}},{key:"initUpdaters",value:function(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];var t,e=(0,n.Z)(this.container.particles.updaters);try{for(e.s();!(t=e.n()).done;){var i=t.value;i.afterDraw&&this._postDrawUpdaters.push(i),(i.getColorStyles||i.getTransformValues||i.beforeDraw)&&this._preDrawUpdaters.push(i)}}catch(a){e.e(a)}finally{e.f()}}},{key:"loadCanvas",value:function(t){var e,i;this._generated&&(null===(e=this.element)||void 0===e||e.remove()),this._generated=t.dataset&&zt in t.dataset?"true"===t.dataset.generated:this._generated,this.element=t,this.element.ariaHidden="true",this._originalStyle=V({},this.element.style),this.size.height=t.offsetHeight,this.size.width=t.offsetWidth,this._context=this.element.getContext("2d"),null===(i=this._mutationObserver)||void 0===i||i.observe(this.element,{attributes:!0}),this.container.retina.init(),this.initBackground()}},{key:"paint",value:function(){var t=this,e=this.container.actualOptions;this.draw((function(i){e.backgroundMask.enable&&e.backgroundMask.cover?(Zt(i,t.size),t._paintBase(t._coverColorStyle)):t._paintBase()}))}},{key:"resize",value:function(){if(this.element){var t=this.container,e=t.retina.pixelRatio,i=t.canvas.size,n=this.element.offsetWidth*e,a=this.element.offsetHeight*e;if(a!==i.height||n!==i.width||a!==this.element.height||n!==this.element.width){var r=Object.assign({},i);this.element.width=i.width=this.element.offsetWidth*e,this.element.height=i.height=this.element.offsetHeight*e,this.container.started&&(this.resizeFactor={width:i.width/r.width,height:i.height/r.height})}}}},{key:"stop",value:function(){var t=this;this.draw((function(e){Zt(e,t.size)}))}},{key:"windowResize",value:function(){var t=(0,a.Z)(u().mark((function t(){var e,i;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.element){t.next=2;break}return t.abrupt("return");case 2:if(this.resize(),e=this.container,i=e.updateActualOptions(),e.particles.setDensity(),this._applyResizePlugins(),!i){t.next=9;break}return t.next=9,e.refresh();case 9:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"_applyPostDrawUpdaters",value:function(t){var e,i,a=(0,n.Z)(this._postDrawUpdaters);try{for(a.s();!(i=a.n()).done;){var r=i.value;null===(e=r.afterDraw)||void 0===e||e.call(r,t)}}catch(o){a.e(o)}finally{a.f()}}},{key:"_applyPreDrawUpdaters",value:function(t,e,i,a,r,o){var s,u,l=(0,n.Z)(this._preDrawUpdaters);try{for(l.s();!(u=l.n()).done;){var c=u.value;if(c.getColorStyles){var h=c.getColorStyles(e,t,i,a),d=h.fill,v=h.stroke;d&&(r.fill=d),v&&(r.stroke=v)}if(c.getTransformValues){var f=c.getTransformValues(e);for(var p in f)Mt(o,f,p)}null===(s=c.beforeDraw)||void 0===s||s.call(c,e)}}catch(y){l.e(y)}finally{l.f()}}},{key:"_applyResizePlugins",value:function(){var t,e=(0,n.Z)(this._resizePlugins);try{for(e.s();!(t=e.n()).done;){var i=t.value;i.resize&&i.resize()}}catch(a){e.e(a)}finally{e.f()}}},{key:"_getPluginParticleColors",value:function(t){var e,i,a,r=(0,n.Z)(this._colorPlugins);try{for(r.s();!(a=r.n()).done;){var o=a.value;if(!e&&o.particleFillColor&&(e=ut(o.particleFillColor(t))),!i&&o.particleStrokeColor&&(i=ut(o.particleStrokeColor(t))),e&&i)break}}catch(s){r.e(s)}finally{r.f()}return[e,i]}},{key:"_initCover",value:function(){var t=this.container.actualOptions.backgroundMask.cover,e=ot(t.color);if(e){var i={r:e.r,g:e.g,b:e.b,a:t.opacity};this._coverColorStyle=vt(i,i.a)}}},{key:"_initStyle",value:function(){var t=this.element,e=this.container.actualOptions;if(t)for(var i in this._fullScreen?(this._originalStyle=V({},t.style),this._setFullScreenStyle()):this._resetOriginalStyle(),e.style)if(i&&e.style){var n=e.style[i];n&&t.style.setProperty(i,n,"important")}}},{key:"_initTrail",value:function(){var t=(0,a.Z)(u().mark((function t(){var e,i,n,a,r,o=this;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=this.container.actualOptions,i=e.particles.move.trail,n=i.fill,i.enable){t.next=3;break}return t.abrupt("return");case 3:if(!n.color){t.next=11;break}if(a=ot(n.color)){t.next=7;break}return t.abrupt("return");case 7:r=e.particles.move.trail,this._trailFill={color:Object.assign({},a),opacity:1/r.length},t.next=13;break;case 11:return t.next=13,new Promise((function(t,e){if(n.image){var a=document.createElement("img");a.addEventListener("load",(function(){o._trailFill={image:a,opacity:1/i.length},t()})),a.addEventListener("error",(function(t){e(t.error)})),a.src=n.image}}));case 13:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"_paintBase",value:function(t){var e=this;this.draw((function(i){!function(t,e,i){t.fillStyle=null!==i&&void 0!==i?i:"rgba(0,0,0,0)",t.fillRect(0,0,e.width,e.height)}(i,e.size,t)}))}},{key:"_paintImage",value:function(t,e){var i=this;this.draw((function(n){!function(t,e,i,n){i&&(t.globalAlpha=n,t.drawImage(i,0,0,e.width,e.height),t.globalAlpha=1)}(n,i.size,t,e)}))}},{key:"_repairStyle",value:function(){var t,e,i=this.element;i&&(null===(t=this._mutationObserver)||void 0===t||t.disconnect(),this._initStyle(),this.initBackground(),null===(e=this._mutationObserver)||void 0===e||e.observe(i,{attributes:!0}))}},{key:"_resetOriginalStyle",value:function(){var t=this.element,e=this._originalStyle;t&&e&&(t.style.position=e.position,t.style.zIndex=e.zIndex,t.style.top=e.top,t.style.left=e.left,t.style.width=e.width,t.style.height=e.height)}},{key:"_setFullScreenStyle",value:function(){var t=this.element;if(t){var e="important";t.style.setProperty("position","fixed",e),t.style.setProperty("z-index",this.container.actualOptions.fullScreen.zIndex.toString(10),e),t.style.setProperty("top","0",e),t.style.setProperty("left","0",e),t.style.setProperty("width","100%",e),t.style.setProperty("height","100%",e)}}}]),t}();function St(t,e,i,n,a){if(n){var r={passive:!0};"boolean"===typeof a?r.capture=a:void 0!==a&&(r=a),t.addEventListener(e,i,r)}else{var o=a;t.removeEventListener(e,i,o)}}var Rt=function(){function t(e){var i=this;(0,r.Z)(this,t),this.container=e,this.canPush=!0,this.handlers={mouseMove:function(t){return i.mouseTouchMove(t)},touchStart:function(t){return i.mouseTouchMove(t)},touchMove:function(t){return i.mouseTouchMove(t)},touchEnd:function(){return i.mouseTouchFinish()},mouseLeave:function(){return i.mouseTouchFinish()},touchCancel:function(){return i.mouseTouchFinish()},touchEndClick:function(t){return i.mouseTouchClick(t)},mouseUp:function(t){return i.mouseTouchClick(t)},mouseDown:function(){return i.mouseDown()},visibilityChange:function(){return i.handleVisibilityChange()},themeChange:function(t){return i.handleThemeChange(t)},oldThemeChange:function(t){return i.handleThemeChange(t)},resize:function(){return i.handleWindowResize()}}}return(0,o.Z)(t,[{key:"addListeners",value:function(){this.manageListeners(!0)}},{key:"removeListeners",value:function(){this.manageListeners(!1)}},{key:"doMouseTouchClick",value:function(t){var e=this,i=this.container,n=i.actualOptions;if(this.canPush){var a=i.interactivity.mouse,r=a.position;if(!r)return;a.clickPosition=Object.assign({},r),a.clickTime=(new Date).getTime(),J(n.interactivity.events.onClick.mode,(function(t){return e.handleClickMode(t)}))}"touchend"===t.type&&setTimeout((function(){return e.mouseTouchFinish()}),500)}},{key:"handleClickMode",value:function(t){this.container.handleClickMode(t)}},{key:"handleThemeChange",value:function(t){var e=t,i=this.container,n=i.options,a=n.defaultThemes,r=e.matches?a.dark:a.light,o=n.themes.find((function(t){return t.name===r}));o&&o.default.auto&&i.loadTheme(r)}},{key:"handleVisibilityChange",value:function(){var t=this.container,e=t.actualOptions;this.mouseTouchFinish(),e.pauseOnBlur&&((null===document||void 0===document?void 0:document.hidden)?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.getAnimationStatus()?t.play(!0):t.draw(!0)))}},{key:"handleWindowResize",value:function(){var t=this;this.resizeTimeout&&(clearTimeout(this.resizeTimeout),delete this.resizeTimeout),this.resizeTimeout=setTimeout((0,a.Z)(u().mark((function e(){var i;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",null===(i=t.container.canvas)||void 0===i?void 0:i.windowResize());case 1:case"end":return e.stop()}}),e)}))),1e3*this.container.actualOptions.interactivity.events.resize.delay)}},{key:"manageListeners",value:function(t){var e,i=this,n=this.handlers,a=this.container,r=a.actualOptions,o=r.interactivity.detectsOn,s=Ot;if("window"===o)a.interactivity.element=window,s="pointerout";else if("parent"===o&&a.canvas.element){var u=a.canvas.element;a.interactivity.element=null!==(e=u.parentElement)&&void 0!==e?e:u.parentNode}else a.interactivity.element=a.canvas.element;var l=A("(prefers-color-scheme: dark)");l&&(void 0!==l.addEventListener?St(l,"change",n.themeChange,t):void 0!==l.addListener&&(t?l.addListener(n.oldThemeChange):l.removeListener(n.oldThemeChange)));var c=a.interactivity.element;if(c){var h=c;(r.interactivity.events.onHover.enable||r.interactivity.events.onClick.enable)&&(St(c,Ct,n.mouseMove,t),St(c,"touchstart",n.touchStart,t),St(c,"touchmove",n.touchMove,t),r.interactivity.events.onClick.enable?(St(c,_t,n.touchEndClick,t),St(c,"pointerup",n.mouseUp,t),St(c,"pointerdown",n.mouseDown,t)):St(c,_t,n.touchEnd,t),St(c,s,n.mouseLeave,t),St(c,"touchcancel",n.touchCancel,t)),a.canvas.element&&(a.canvas.element.style.pointerEvents=h===a.canvas.element?"initial":"none"),r.interactivity.events.resize&&("undefined"!==typeof ResizeObserver?this.resizeObserver&&!t?(a.canvas.element&&this.resizeObserver.unobserve(a.canvas.element),this.resizeObserver.disconnect(),delete this.resizeObserver):!this.resizeObserver&&t&&a.canvas.element&&(this.resizeObserver=new ResizeObserver((function(t){t.find((function(t){return t.target===a.canvas.element}))&&i.handleWindowResize()})),this.resizeObserver.observe(a.canvas.element)):St(window,"resize",n.resize,t)),document&&St(document,"visibilitychange",n.visibilityChange,t,!1)}}},{key:"mouseDown",value:function(){var t=this.container.interactivity;if(t){var e=t.mouse;e.clicking=!0,e.downPosition=e.position}}},{key:"mouseTouchClick",value:function(t){var e=this.container,i=e.actualOptions,a=e.interactivity.mouse;a.inside=!0;var r=!1,o=a.position;if(o&&i.interactivity.events.onClick.enable){var s,u=(0,n.Z)(e.plugins);try{for(u.s();!(s=u.n()).done;){var l=(0,c.Z)(s.value,2)[1];if(l.clickPositionValid&&(r=l.clickPositionValid(o)))break}}catch(h){u.e(h)}finally{u.f()}r||this.doMouseTouchClick(t),a.clicking=!1}}},{key:"mouseTouchFinish",value:function(){var t=this.container.interactivity;if(t){var e=t.mouse;delete e.position,delete e.clickPosition,delete e.downPosition,t.status=Ot,e.inside=!1,e.clicking=!1}}},{key:"mouseTouchMove",value:function(t){var e,i,n,a,r,o,s,u=this.container,l=u.actualOptions;if(null===(e=u.interactivity)||void 0===e?void 0:e.element){var c;u.interactivity.mouse.inside=!0;var h=u.canvas.element;if(t.type.startsWith("pointer")){this.canPush=!0;var d=t;if(u.interactivity.element===window){if(h){var v=h.getBoundingClientRect();c={x:d.clientX-v.left,y:d.clientY-v.top}}}else if("parent"===l.interactivity.detectsOn){var f=d.target,p=d.currentTarget,y=u.canvas.element;if(f&&p&&y){var m=f.getBoundingClientRect(),b=p.getBoundingClientRect(),g=y.getBoundingClientRect();c={x:d.offsetX+2*m.left-(b.left+g.left),y:d.offsetY+2*m.top-(b.top+g.top)}}else c={x:null!==(i=d.offsetX)&&void 0!==i?i:d.clientX,y:null!==(n=d.offsetY)&&void 0!==n?n:d.clientY}}else d.target===u.canvas.element&&(c={x:null!==(a=d.offsetX)&&void 0!==a?a:d.clientX,y:null!==(r=d.offsetY)&&void 0!==r?r:d.clientY})}else{this.canPush="touchmove"!==t.type;var k=t,w=k.touches[k.touches.length-1],x=null===h||void 0===h?void 0:h.getBoundingClientRect();c={x:w.clientX-(null!==(o=null===x||void 0===x?void 0:x.left)&&void 0!==o?o:0),y:w.clientY-(null!==(s=null===x||void 0===x?void 0:x.top)&&void 0!==s?s:0)}}var Z=u.retina.pixelRatio;c&&(c.x*=Z,c.y*=Z),u.interactivity.mouse.position=c,u.interactivity.status=Ct}}}]),t}();function Dt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:60,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{value:t,factor:i?60/e:60*t/1e3}}var It=function(){function t(e){(0,r.Z)(this,t),this.container=e}return(0,o.Z)(t,[{key:"nextFrame",value:function(){var t=(0,a.Z)(u().mark((function t(e){var i,n,a;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,(n=this.container).smooth||void 0===n.lastFrameTime||!(e1e3)){t.next=12;break}return n.draw(!1),t.abrupt("return");case 12:return t.next=14,n.particles.draw(a);case 14:if(!(n.duration>0&&n.lifeTime>n.duration)){t.next=17;break}return n.destroy(),t.abrupt("return");case 17:n.getAnimationStatus()&&n.draw(!1),t.next=23;break;case 20:t.prev=20,t.t0=t.catch(0),console.error("tsParticles error in animation loop",t.t0);case 23:case"end":return t.stop()}}),t,this,[[0,20]])})));return function(e){return t.apply(this,arguments)}}()}]),t}(),Et=function(){function t(){(0,r.Z)(this,t),this.value=""}return(0,o.Z)(t,[{key:"load",value:function(t){void 0!==(null===t||void 0===t?void 0:t.value)&&(this.value=t.value)}}],[{key:"create",value:function(e,i){var n=new t;return n.load(e),void 0!==i&&("string"===typeof i||i instanceof Array?n.load({value:i}):n.load(i)),n}}]),t}(),Tt=function(){function t(){(0,r.Z)(this,t),this.color=new Et,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.color&&(this.color=Et.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image),void 0!==t.position&&(this.position=t.position),void 0!==t.repeat&&(this.repeat=t.repeat),void 0!==t.size&&(this.size=t.size),void 0!==t.opacity&&(this.opacity=t.opacity))}}]),t}(),At=function(){function t(){(0,r.Z)(this,t),this.color=new Et,this.color.value="#fff",this.opacity=1}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.color&&(this.color=Et.create(this.color,t.color)),void 0!==t.opacity&&(this.opacity=t.opacity))}}]),t}(),Lt=function(){function t(){(0,r.Z)(this,t),this.composite="destination-out",this.cover=new At,this.enable=!1}return(0,o.Z)(t,[{key:"load",value:function(t){if(t){if(void 0!==t.composite&&(this.composite=t.composite),void 0!==t.cover){var e=t.cover,i="string"===typeof t.cover?{color:t.cover}:t.cover;this.cover.load(void 0!==e.color?e:{color:i})}void 0!==t.enable&&(this.enable=t.enable)}}}]),t}(),qt=function(){function t(){(0,r.Z)(this,t),this.enable=!0,this.zIndex=0}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.zIndex&&(this.zIndex=t.zIndex))}}]),t}(),Wt=function(){function t(){(0,r.Z)(this,t),this.enable=!1,this.mode=[]}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode))}}]),t}(),Bt=function(){function t(){(0,r.Z)(this,t),this.selectors=[],this.enable=!1,this.mode=[],this.type="circle"}return(0,o.Z)(t,[{key:"el",get:function(){return this.elementId},set:function(t){this.elementId=t}},{key:"elementId",get:function(){return this.ids},set:function(t){this.ids=t}},{key:"ids",get:function(){return J(this.selectors,(function(t){return t.replace("#","")}))},set:function(t){this.selectors=J(t,(function(t){return"#".concat(t)}))}},{key:"load",value:function(t){var e,i;if(t){var n=null!==(i=null!==(e=t.ids)&&void 0!==e?e:t.elementId)&&void 0!==i?i:t.el;void 0!==n&&(this.ids=n),void 0!==t.selectors&&(this.selectors=t.selectors),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.type&&(this.type=t.type)}}}]),t}(),Ft=function(){function t(){(0,r.Z)(this,t),this.enable=!1,this.force=2,this.smooth=10}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.force&&(this.force=t.force),void 0!==t.smooth&&(this.smooth=t.smooth))}}]),t}(),Ht=function(){function t(){(0,r.Z)(this,t),this.enable=!1,this.mode=[],this.parallax=new Ft}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),this.parallax.load(t.parallax))}}]),t}(),Gt=function(){function t(){(0,r.Z)(this,t),this.delay=.5,this.enable=!0}return(0,o.Z)(t,[{key:"load",value:function(t){void 0!==t&&(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.enable&&(this.enable=t.enable))}}]),t}(),Vt=function(){function t(){(0,r.Z)(this,t),this.onClick=new Wt,this.onDiv=new Bt,this.onHover=new Ht,this.resize=new Gt}return(0,o.Z)(t,[{key:"onclick",get:function(){return this.onClick},set:function(t){this.onClick=t}},{key:"ondiv",get:function(){return this.onDiv},set:function(t){this.onDiv=t}},{key:"onhover",get:function(){return this.onHover},set:function(t){this.onHover=t}},{key:"load",value:function(t){var e,i,n;if(t){this.onClick.load(null!==(e=t.onClick)&&void 0!==e?e:t.onclick);var a=null!==(i=t.onDiv)&&void 0!==i?i:t.ondiv;void 0!==a&&(this.onDiv=J(a,(function(t){var e=new Bt;return e.load(t),e}))),this.onHover.load(null!==(n=t.onHover)&&void 0!==n?n:t.onhover),"boolean"===typeof t.resize?this.resize.enable=t.resize:this.resize.load(t.resize)}}}]),t}(),Ut=function(){function t(e,i){(0,r.Z)(this,t),this._engine=e,this._container=i}return(0,o.Z)(t,[{key:"load",value:function(t){if(t&&this._container){var e=this._engine.plugins.interactors.get(this._container);if(e){var i,a=(0,n.Z)(e);try{for(a.s();!(i=a.n()).done;){var r=i.value;r.loadModeOptions&&r.loadModeOptions(this,t)}}catch(o){a.e(o)}finally{a.f()}}}}}]),t}(),jt=function(){function t(e,i){(0,r.Z)(this,t),this.detectsOn="window",this.events=new Vt,this.modes=new Ut(e,i)}return(0,o.Z)(t,[{key:"detect_on",get:function(){return this.detectsOn},set:function(t){this.detectsOn=t}},{key:"load",value:function(t){var e;if(t){var i=null!==(e=t.detectsOn)&&void 0!==e?e:t.detect_on;void 0!==i&&(this.detectsOn=i),this.events.load(t.events),this.modes.load(t.modes)}}}]),t}(),Nt=function(){function t(){(0,r.Z)(this,t)}return(0,o.Z)(t,[{key:"load",value:function(t){var e,i;t&&(void 0!==t.position&&(this.position={x:null!==(e=t.position.x)&&void 0!==e?e:50,y:null!==(i=t.position.y)&&void 0!==i?i:50}),void 0!==t.options&&(this.options=V({},t.options)))}}]),t}(),Kt=function(){function t(){(0,r.Z)(this,t),this.maxWidth=1/0,this.options={},this.mode="canvas"}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.maxWidth&&(this.maxWidth=t.maxWidth),void 0!==t.mode&&("screen"===t.mode?this.mode="screen":this.mode="canvas"),void 0!==t.options&&(this.options=V({},t.options)))}}]),t}(),Xt=function(){function t(){(0,r.Z)(this,t),this.auto=!1,this.mode="any",this.value=!1}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.auto&&(this.auto=t.auto),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.value&&(this.value=t.value))}}]),t}(),Yt=function(){function t(){(0,r.Z)(this,t),this.name="",this.default=new Xt}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.name&&(this.name=t.name),this.default.load(t.default),void 0!==t.options&&(this.options=V({},t.options)))}}]),t}(),Jt=i(1752),$t=i(1120),Qt=function(){function t(){(0,r.Z)(this,t),this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.decay=0,this.sync=!0}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.count&&(this.count=_(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(this.offset=_(t.offset)),void 0!==t.speed&&(this.speed=_(t.speed)),void 0!==t.decay&&(this.decay=_(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}]),t}(),te=function(){function t(){(0,r.Z)(this,t),this.h=new Qt,this.s=new Qt,this.l=new Qt}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}]),t}(),ee=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,r.Z)(this,i),(t=e.call(this)).animation=new te,t}return(0,o.Z)(i,[{key:"load",value:function(t){if((0,Jt.Z)((0,$t.Z)(i.prototype),"load",this).call(this,t),t){var e=t.animation;void 0!==e&&(void 0!==e.enable?this.animation.h.load(e):this.animation.load(t.animation))}}}],[{key:"create",value:function(t,e){var n=new i;return n.load(t),void 0!==e&&("string"===typeof e||e instanceof Array?n.load({value:e}):n.load(e)),n}}]),i}(Et),ie=function(){function t(){(0,r.Z)(this,t),this.speed=2}return(0,o.Z)(t,[{key:"load",value:function(t){t&&void 0!==t.speed&&(this.speed=t.speed)}}]),t}(),ne=function(){function t(){(0,r.Z)(this,t),this.enable=!0,this.retries=0}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.retries&&(this.retries=t.retries))}}]),t}(),ae=function(){function t(){(0,r.Z)(this,t),this.enable=!1,this.minimumValue=0}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.minimumValue&&(this.minimumValue=t.minimumValue))}}]),t}(),re=function(){function t(){(0,r.Z)(this,t),this.random=new ae,this.value=0}return(0,o.Z)(t,[{key:"load",value:function(t){t&&("boolean"===typeof t.random?this.random.enable=t.random:this.random.load(t.random),void 0!==t.value&&(this.value=_(t.value,this.random.enable?this.random.minimumValue:void 0)))}}]),t}(),oe=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,r.Z)(this,i),(t=e.call(this)).random.minimumValue=.1,t.value=1,t}return(0,o.Z)(i)}(re),se=function(){function t(){(0,r.Z)(this,t),this.horizontal=new oe,this.vertical=new oe}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(this.horizontal.load(t.horizontal),this.vertical.load(t.vertical))}}]),t}(),ue=function(){function t(){(0,r.Z)(this,t),this.absorb=new ie,this.bounce=new se,this.enable=!1,this.mode="bounce",this.overlap=new ne}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(this.absorb.load(t.absorb),this.bounce.load(t.bounce),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),this.overlap.load(t.overlap))}}]),t}(),le=function(){function t(){(0,r.Z)(this,t),this.offset=0,this.value=90}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.offset&&(this.offset=_(t.offset)),void 0!==t.value&&(this.value=_(t.value)))}}]),t}(),ce=function(){function t(){(0,r.Z)(this,t),this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}return(0,o.Z)(t,[{key:"rotateX",get:function(){return this.rotate.x},set:function(t){this.rotate.x=t}},{key:"rotateY",get:function(){return this.rotate.y},set:function(t){this.rotate.y=t}},{key:"load",value:function(t){var e,i,n,a;if(t){void 0!==t.distance&&(this.distance=_(t.distance)),void 0!==t.enable&&(this.enable=t.enable);var r=null!==(i=null===(e=t.rotate)||void 0===e?void 0:e.x)&&void 0!==i?i:t.rotateX;void 0!==r&&(this.rotate.x=r);var o=null!==(a=null===(n=t.rotate)||void 0===n?void 0:n.y)&&void 0!==a?a:t.rotateY;void 0!==o&&(this.rotate.y=o)}}}]),t}(),he=function(){function t(){(0,r.Z)(this,t),this.x=50,this.y=50,this.mode="percent",this.radius=0}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.radius&&(this.radius=t.radius))}}]),t}(),de=function(){function t(){(0,r.Z)(this,t),this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.acceleration&&(this.acceleration=_(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.inverse&&(this.inverse=t.inverse),void 0!==t.maxSpeed&&(this.maxSpeed=_(t.maxSpeed)))}}]),t}(),ve=function(){function t(){(0,r.Z)(this,t),this.clamp=!0,this.delay=new re,this.enable=!1,this.options={}}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.clamp&&(this.clamp=t.clamp),this.delay.load(t.delay),void 0!==t.enable&&(this.enable=t.enable),this.generator=t.generator,t.options&&(this.options=V(this.options,t.options)))}}]),t}(),fe=function(){function t(){(0,r.Z)(this,t)}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.color&&(this.color=Et.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image))}}]),t}(),pe=function(){function t(){(0,r.Z)(this,t),this.enable=!1,this.length=10,this.fill=new fe}return(0,o.Z)(t,[{key:"fillColor",get:function(){return this.fill.color},set:function(t){this.fill.load({color:t})}},{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0===t.fill&&void 0===t.fillColor||this.fill.load(t.fill||{color:t.fillColor}),void 0!==t.length&&(this.length=t.length))}}]),t}(),ye=function(){function t(){(0,r.Z)(this,t),this.default="out"}return(0,o.Z)(t,[{key:"load",value:function(t){var e,i,n,a;t&&(void 0!==t.default&&(this.default=t.default),this.bottom=null!==(e=t.bottom)&&void 0!==e?e:t.default,this.left=null!==(i=t.left)&&void 0!==i?i:t.default,this.right=null!==(n=t.right)&&void 0!==n?n:t.default,this.top=null!==(a=t.top)&&void 0!==a?a:t.default)}}]),t}(),me=function(){function t(){(0,r.Z)(this,t),this.acceleration=0,this.enable=!1}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.acceleration&&(this.acceleration=_(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),this.position=t.position?V({},t.position):void 0)}}]),t}(),be=function(){function t(){(0,r.Z)(this,t),this.angle=new le,this.attract=new ce,this.center=new he,this.decay=0,this.distance={},this.direction="none",this.drift=0,this.enable=!1,this.gravity=new de,this.path=new ve,this.outModes=new ye,this.random=!1,this.size=!1,this.speed=2,this.spin=new me,this.straight=!1,this.trail=new pe,this.vibrate=!1,this.warp=!1}return(0,o.Z)(t,[{key:"bounce",get:function(){return this.collisions},set:function(t){this.collisions=t}},{key:"collisions",get:function(){return!1},set:function(t){}},{key:"noise",get:function(){return this.path},set:function(t){this.path=t}},{key:"outMode",get:function(){return this.outModes.default},set:function(t){this.outModes.default=t}},{key:"out_mode",get:function(){return this.outMode},set:function(t){this.outMode=t}},{key:"load",value:function(t){var e,i,n;if(t){this.angle.load("number"===typeof t.angle?{value:t.angle}:t.angle),this.attract.load(t.attract),this.center.load(t.center),void 0!==t.decay&&(this.decay=_(t.decay)),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.distance&&(this.distance="number"===typeof t.distance?{horizontal:t.distance,vertical:t.distance}:Object.assign({},t.distance)),void 0!==t.drift&&(this.drift=_(t.drift)),void 0!==t.enable&&(this.enable=t.enable),this.gravity.load(t.gravity);var a=null!==(i=null!==(e=t.outModes)&&void 0!==e?e:t.outMode)&&void 0!==i?i:t.out_mode;void 0!==a&&("object"===typeof a?this.outModes.load(a):this.outModes.load({default:a})),this.path.load(null!==(n=t.path)&&void 0!==n?n:t.noise),void 0!==t.random&&(this.random=t.random),void 0!==t.size&&(this.size=t.size),void 0!==t.speed&&(this.speed=_(t.speed)),this.spin.load(t.spin),void 0!==t.straight&&(this.straight=t.straight),this.trail.load(t.trail),void 0!==t.vibrate&&(this.vibrate=t.vibrate),void 0!==t.warp&&(this.warp=t.warp)}}}]),t}(),ge=function(){function t(){(0,r.Z)(this,t),this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.sync=!1}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.count&&(this.count=_(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=_(t.speed)),void 0!==t.decay&&(this.decay=_(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}]),t}(),ke=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,r.Z)(this,i),(t=e.call(this)).destroy="none",t.enable=!1,t.speed=2,t.startValue="random",t.sync=!1,t}return(0,o.Z)(i,[{key:"opacity_min",get:function(){return this.minimumValue},set:function(t){this.minimumValue=t}},{key:"load",value:function(t){var e;t&&((0,Jt.Z)((0,$t.Z)(i.prototype),"load",this).call(this,t),void 0!==t.destroy&&(this.destroy=t.destroy),void 0!==t.enable&&(this.enable=t.enable),this.minimumValue=null!==(e=t.minimumValue)&&void 0!==e?e:t.opacity_min,void 0!==t.speed&&(this.speed=t.speed),void 0!==t.startValue&&(this.startValue=t.startValue),void 0!==t.sync&&(this.sync=t.sync))}}]),i}(ge),we=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,r.Z)(this,i),(t=e.call(this)).animation=new ke,t.random.minimumValue=.1,t.value=1,t}return(0,o.Z)(i,[{key:"anim",get:function(){return this.animation},set:function(t){this.animation=t}},{key:"load",value:function(t){var e;if(t){(0,Jt.Z)((0,$t.Z)(i.prototype),"load",this).call(this,t);var n=null!==(e=t.animation)&&void 0!==e?e:t.anim;void 0!==n&&(this.animation.load(n),this.value=_(this.value,this.animation.enable?this.animation.minimumValue:void 0))}}}]),i}(re),xe=function(){function t(){(0,r.Z)(this,t),this.enable=!1,this.width=1920,this.height=1080}return(0,o.Z)(t,[{key:"area",get:function(){return this.width},set:function(t){this.width=t}},{key:"factor",get:function(){return this.height},set:function(t){this.height=t}},{key:"value_area",get:function(){return this.area},set:function(t){this.area=t}},{key:"load",value:function(t){var e,i,n;if(t){void 0!==t.enable&&(this.enable=t.enable);var a=null!==(i=null!==(e=t.width)&&void 0!==e?e:t.area)&&void 0!==i?i:t.value_area;void 0!==a&&(this.width=a);var r=null!==(n=t.height)&&void 0!==n?n:t.factor;void 0!==r&&(this.height=r)}}}]),t}(),Ze=function(){function t(){(0,r.Z)(this,t),this.density=new xe,this.limit=0,this.value=0}return(0,o.Z)(t,[{key:"max",get:function(){return this.limit},set:function(t){this.limit=t}},{key:"load",value:function(t){var e;if(t){this.density.load(t.density);var i=null!==(e=t.limit)&&void 0!==e?e:t.max;void 0!==i&&(this.limit=i),void 0!==t.value&&(this.value=t.value)}}}]),t}(),ze=function(){function t(){(0,r.Z)(this,t),this.blur=0,this.color=new Et,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.blur&&(this.blur=t.blur),this.color=Et.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.offset&&(void 0!==t.offset.x&&(this.offset.x=t.offset.x),void 0!==t.offset.y&&(this.offset.y=t.offset.y)))}}]),t}(),_e="character",Ce="char",Oe="image",Me="images",Pe="polygon",Se="star",Re=function(){function t(){(0,r.Z)(this,t),this.options={},this.type="circle"}return(0,o.Z)(t,[{key:"character",get:function(){var t;return null!==(t=this.options[_e])&&void 0!==t?t:this.options.char},set:function(t){this.options.char=this.options[_e]=t}},{key:"custom",get:function(){return this.options},set:function(t){this.options=t}},{key:"image",get:function(){var t;return null!==(t=this.options.image)&&void 0!==t?t:this.options.images},set:function(t){this.options.images=this.options.image=t}},{key:"images",get:function(){return this.image},set:function(t){this.image=t}},{key:"polygon",get:function(){var t;return null!==(t=this.options.polygon)&&void 0!==t?t:this.options.star},set:function(t){this.options.star=this.options.polygon=t}},{key:"stroke",get:function(){return[]},set:function(t){}},{key:"load",value:function(t){var e,i,n;if(t){var a=null!==(e=t.options)&&void 0!==e?e:t.custom;if(void 0!==a)for(var r in a){var o=a[r];o&&(this.options[r]=V(null!==(i=this.options[r])&&void 0!==i?i:{},o))}this.loadShape(t.character,_e,Ce,!0),this.loadShape(t.polygon,Pe,Se,!1),this.loadShape(null!==(n=t.image)&&void 0!==n?n:t.images,Oe,Me,!0),void 0!==t.type&&(this.type=t.type)}}},{key:"loadShape",value:function(t,e,i,n){var a,r;if(t){var o=t instanceof Array,s=o?[]:{},u=o!==this.options[e]instanceof Array,l=o!==this.options[i]instanceof Array;u&&(this.options[e]=s),l&&n&&(this.options[i]=s),this.options[e]=V(null!==(a=this.options[e])&&void 0!==a?a:s,t),this.options[i]&&!n||(this.options[i]=V(null!==(r=this.options[i])&&void 0!==r?r:s,t))}}}]),t}(),De=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,r.Z)(this,i),(t=e.call(this)).destroy="none",t.enable=!1,t.speed=5,t.startValue="random",t.sync=!1,t}return(0,o.Z)(i,[{key:"size_min",get:function(){return this.minimumValue},set:function(t){this.minimumValue=t}},{key:"load",value:function(t){var e;(0,Jt.Z)((0,$t.Z)(i.prototype),"load",this).call(this,t),t&&(void 0!==t.destroy&&(this.destroy=t.destroy),void 0!==t.enable&&(this.enable=t.enable),this.minimumValue=null!==(e=t.minimumValue)&&void 0!==e?e:t.size_min,void 0!==t.speed&&(this.speed=t.speed),void 0!==t.startValue&&(this.startValue=t.startValue),void 0!==t.sync&&(this.sync=t.sync))}}]),i}(ge),Ie=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,r.Z)(this,i),(t=e.call(this)).animation=new De,t.random.minimumValue=1,t.value=3,t}return(0,o.Z)(i,[{key:"anim",get:function(){return this.animation},set:function(t){this.animation=t}},{key:"load",value:function(t){var e;if((0,Jt.Z)((0,$t.Z)(i.prototype),"load",this).call(this,t),t){var n=null!==(e=t.animation)&&void 0!==e?e:t.anim;void 0!==n&&(this.animation.load(n),this.value=_(this.value,this.animation.enable?this.animation.minimumValue:void 0))}}}]),i}(re),Ee=function(){function t(){(0,r.Z)(this,t),this.width=0}return(0,o.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.color&&(this.color=ee.create(this.color,t.color)),void 0!==t.width&&(this.width=_(t.width)),void 0!==t.opacity&&(this.opacity=_(t.opacity)))}}]),t}(),Te=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,r.Z)(this,i),(t=e.call(this)).opacityRate=1,t.sizeRate=1,t.velocityRate=1,t}return(0,o.Z)(i,[{key:"load",value:function(t){(0,Jt.Z)((0,$t.Z)(i.prototype),"load",this).call(this,t),t&&(void 0!==t.opacityRate&&(this.opacityRate=t.opacityRate),void 0!==t.sizeRate&&(this.sizeRate=t.sizeRate),void 0!==t.velocityRate&&(this.velocityRate=t.velocityRate))}}]),i}(re),Ae=function(){function t(e,i){(0,r.Z)(this,t),this._engine=e,this._container=i,this.bounce=new se,this.collisions=new ue,this.color=new ee,this.color.value="#fff",this.groups={},this.move=new be,this.number=new Ze,this.opacity=new we,this.reduceDuplicates=!1,this.shadow=new ze,this.shape=new Re,this.size=new Ie,this.stroke=new Ee,this.zIndex=new Te}return(0,o.Z)(t,[{key:"load",value:function(t){var e,i,a,r,o,s;if(t){if(this.bounce.load(t.bounce),this.color.load(ee.create(this.color,t.color)),void 0!==t.groups)for(var u in t.groups){var l=t.groups[u];void 0!==l&&(this.groups[u]=V(null!==(e=this.groups[u])&&void 0!==e?e:{},l))}this.move.load(t.move),this.number.load(t.number),this.opacity.load(t.opacity),void 0!==t.reduceDuplicates&&(this.reduceDuplicates=t.reduceDuplicates),this.shape.load(t.shape),this.size.load(t.size),this.shadow.load(t.shadow),this.zIndex.load(t.zIndex);var c=null!==(a=null===(i=t.move)||void 0===i?void 0:i.collisions)&&void 0!==a?a:null===(r=t.move)||void 0===r?void 0:r.bounce;void 0!==c&&(this.collisions.enable=c),this.collisions.load(t.collisions),void 0!==t.interactivity&&(this.interactivity=V({},t.interactivity));var h=null!==(o=t.stroke)&&void 0!==o?o:null===(s=t.shape)||void 0===s?void 0:s.stroke;if(h&&(this.stroke=J(h,(function(t){var e=new Ee;return e.load(t),e}))),this._container){var d=this._engine.plugins.updaters.get(this._container);if(d){var v,f=(0,n.Z)(d);try{for(f.s();!(v=f.n()).done;){var p=v.value;p.loadOptions&&p.loadOptions(this,t)}}catch(k){f.e(k)}finally{f.f()}}var y=this._engine.plugins.interactors.get(this._container);if(y){var m,b=(0,n.Z)(y);try{for(b.s();!(m=b.n()).done;){var g=m.value;g.loadParticlesOptions&&g.loadParticlesOptions(this,t)}}catch(k){b.e(k)}finally{b.f()}}}}}}]),t}();function Le(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n2?n-2:0),r=2;rscreen.availWidth:i.maxWidth*e>t}));return this.load(null===n||void 0===n?void 0:n.options),null===n||void 0===n?void 0:n.maxWidth}},{key:"setTheme",value:function(t){if(t){var e=this.themes.find((function(e){return e.name===t}));e&&this.load(e.options)}else{var i=A("(prefers-color-scheme: dark)"),n=i&&i.matches,a=this._findDefaultTheme(n?"dark":"light");a&&this.load(a.options)}}},{key:"_findDefaultTheme",value:function(t){var e;return null!==(e=this.themes.find((function(e){return e.default.value&&e.default.mode===t})))&&void 0!==e?e:this.themes.find((function(t){return t.default.value&&"any"===t.default.mode}))}},{key:"_importPreset",value:function(t){this.load(this._engine.plugins.getPreset(t))}}]),t}(),Be=function(){function t(e,i){(0,r.Z)(this,t),this.container=i,this._engine=e,this._interactors=this._engine.plugins.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[]}return(0,o.Z)(t,[{key:"externalInteract",value:function(){var t=(0,a.Z)(u().mark((function t(e){var i,a,r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=(0,n.Z)(this._externalInteractors),t.prev=1,i.s();case 3:if((a=i.n()).done){t.next=10;break}if(!(r=a.value).isEnabled()){t.next=8;break}return t.next=8,r.interact(e);case 8:t.next=3;break;case 10:t.next=15;break;case 12:t.prev=12,t.t0=t.catch(1),i.e(t.t0);case 15:return t.prev=15,i.f(),t.finish(15);case 18:case"end":return t.stop()}}),t,this,[[1,12,15,18]])})));return function(e){return t.apply(this,arguments)}}()},{key:"handleClickMode",value:function(t){var e,i=(0,n.Z)(this._externalInteractors);try{for(i.s();!(e=i.n()).done;){var a=e.value;a.handleClickMode&&a.handleClickMode(t)}}catch(r){i.e(r)}finally{i.f()}}},{key:"init",value:function(){this._externalInteractors=[],this._particleInteractors=[];var t,e=(0,n.Z)(this._interactors);try{for(e.s();!(t=e.n()).done;){var i=t.value;switch(i.type){case"external":this._externalInteractors.push(i);break;case"particles":this._particleInteractors.push(i)}i.init()}}catch(a){e.e(a)}finally{e.f()}}},{key:"particlesInteract",value:function(){var t=(0,a.Z)(u().mark((function t(e,i){var a,r,o,s,l;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:a=(0,n.Z)(this._externalInteractors);try{for(a.s();!(r=a.n()).done;)r.value.clear(e,i)}catch(u){a.e(u)}finally{a.f()}o=(0,n.Z)(this._particleInteractors),t.prev=3,o.s();case 5:if((s=o.n()).done){t.next=12;break}if(!(l=s.value).isEnabled(e)){t.next=10;break}return t.next=10,l.interact(e,i);case 10:t.next=5;break;case 12:t.next=17;break;case 14:t.prev=14,t.t0=t.catch(3),o.e(t.t0);case 17:return t.prev=17,o.f(),t.finish(17);case 20:case"end":return t.stop()}}),t,this,[[3,14,17,20]])})));return function(e,i){return t.apply(this,arguments)}}()},{key:"reset",value:function(){var t=(0,a.Z)(u().mark((function t(e){var i,a,r,o,s,l;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:i=(0,n.Z)(this._externalInteractors),t.prev=1,i.s();case 3:if((a=i.n()).done){t.next=10;break}if(!(r=a.value).isEnabled()){t.next=8;break}return t.next=8,r.reset(e);case 8:t.next=3;break;case 10:t.next=15;break;case 12:t.prev=12,t.t0=t.catch(1),i.e(t.t0);case 15:return t.prev=15,i.f(),t.finish(15);case 18:o=(0,n.Z)(this._particleInteractors),t.prev=19,o.s();case 21:if((s=o.n()).done){t.next=28;break}if(!(l=s.value).isEnabled(e)){t.next=26;break}return t.next=26,l.reset(e);case 26:t.next=21;break;case 28:t.next=33;break;case 30:t.prev=30,t.t1=t.catch(19),o.e(t.t1);case 33:return t.prev=33,o.f(),t.finish(33);case 36:case"end":return t.stop()}}),t,this,[[1,12,15,18],[19,30,33,36]])})));return function(e){return t.apply(this,arguments)}}()}]),t}(),Fe=function(t){L(t.outMode,t.checkModes)&&(t.coord>t.maxCoord-2*t.radius?t.setCb(-t.radius):t.coord<2*t.radius&&t.setCb(t.radius))},He=function(){function t(e,i,n,a,o,s){(0,r.Z)(this,t),this.container=n,this._engine=e,this.init(i,a,o,s)}return(0,o.Z)(t,[{key:"destroy",value:function(t){var e;if(!this.unbreakable&&!this.destroyed){this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;var i,a=(0,n.Z)(this.container.plugins);try{for(a.s();!(i=a.n()).done;){var r=(0,c.Z)(i.value,2)[1];r.particleDestroyed&&r.particleDestroyed(this,t)}}catch(l){a.e(l)}finally{a.f()}var o,s=(0,n.Z)(this.container.particles.updaters);try{for(s.s();!(o=s.n()).done;){var u=o.value;u.particleDestroyed&&u.particleDestroyed(this,t)}}catch(l){s.e(l)}finally{s.f()}null===(e=this.pathGenerator)||void 0===e||e.reset(this)}}},{key:"draw",value:function(t){var e,i=this.container,a=(0,n.Z)(i.plugins);try{for(a.s();!(e=a.n()).done;){var r=(0,c.Z)(e.value,2)[1];i.canvas.drawParticlePlugin(r,this,t)}}catch(o){a.e(o)}finally{a.f()}i.canvas.drawParticle(this,t)}},{key:"getFillColor",value:function(){var t;return this._getRollColor(null!==(t=this.bubble.color)&&void 0!==t?t:bt(this.color))}},{key:"getMass",value:function(){return Math.pow(this.getRadius(),2)*Math.PI/2}},{key:"getPosition",value:function(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}},{key:"getRadius",value:function(){var t;return null!==(t=this.bubble.radius)&&void 0!==t?t:this.size.value}},{key:"getStrokeColor",value:function(){var t;return this._getRollColor(null!==(t=this.bubble.color)&&void 0!==t?t:bt(this.strokeColor))}},{key:"init",value:function(t,e,i,a){var r,o,s,u,l,h,d,v,p,y=this.container,m=this._engine;this.id=t,this.group=a,this.fill=!0,this.pathRotation=!1,this.close=!0,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType="normal",this.ignoresResizeRatio=!0;var k=y.retina.pixelRatio,_=y.actualOptions,O=qe(this._engine,y,_.particles),M=O.shape.type,P=O.reduceDuplicates;this.shape=$(M,this.id,P);var S=O.shape;if(i&&i.shape&&i.shape.type){var R=$(i.shape.type,this.id,P);R&&(this.shape=R,S.load(i.shape))}this.shapeData=this._loadShapeData(S,P),O.load(i),O.load(null===(r=this.shapeData)||void 0===r?void 0:r.particles),this.interactivity=new jt(m,y),this.interactivity.load(y.actualOptions.interactivity),this.interactivity.load(O.interactivity),this.fill=null!==(s=null===(o=this.shapeData)||void 0===o?void 0:o.fill)&&void 0!==s?s:this.fill,this.close=null!==(l=null===(u=this.shapeData)||void 0===u?void 0:u.close)&&void 0!==l?l:this.close,this.options=O;var D=this.options.move.path;this.pathDelay=1e3*C(D.delay),D.generator&&(this.pathGenerator=this._engine.plugins.getPathGenerator(D.generator),this.pathGenerator&&y.addPath(D.generator,this.pathGenerator)&&this.pathGenerator.init(y));var I=x(this.options.zIndex.value);y.retina.initParticle(this);var E=this.options.size,T=E.value,A=E.animation;if(this.size={enable:E.animation.enable,value:x(E.value)*y.retina.pixelRatio,max:z(T)*k,min:Z(T)*k,loops:0,maxLoops:x(E.animation.count)},A.enable)switch(this.size.status="increasing",this.size.decay=1-x(A.decay),A.startValue){case"min":this.size.value=this.size.min,this.size.status="increasing";break;case"random":this.size.value=w(this.size),this.size.status=b()>=.5?"increasing":"decreasing";break;default:this.size.value=this.size.max,this.size.status="decreasing"}this.size.initialValue=this.size.value,this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this.position=this._calcPosition(y,e,g(I,0,y.zLayers)),this.initialPosition=this.position.copy();var L=y.canvas.size,q=Object.assign({},this.options.move.center),W="percent"===q.mode;switch(this.moveCenter={x:q.x*(W?L.width/100:1),y:q.y*(W?L.height/100:1),radius:null!==(h=this.options.move.center.radius)&&void 0!==h?h:0,mode:null!==(d=this.options.move.center.mode)&&void 0!==d?d:"percent"},this.direction=function(t,e,i){if("number"===typeof t)return t*Math.PI/180;switch(t){case"top":return-Math.PI/2;case"top-right":return-Math.PI/4;case"right":return 0;case"bottom-right":return Math.PI/4;case"bottom":return Math.PI/2;case"bottom-left":return 3*Math.PI/4;case"left":return Math.PI;case"top-left":return-3*Math.PI/4;case"inside":return Math.atan2(i.y-e.y,i.x-e.x);case"outside":return Math.atan2(e.y-i.y,e.x-i.x);default:return b()*Math.PI*2}}(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case"inside":this.outType="inside";break;case"outside":this.outType="outside"}this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-x(this.options.move.decay),this.offset=f.origin;var B=y.particles;B.needsSort=B.needsSort||B.lastZIndex=-t&&this.position.y>=-t&&this.position.y<=e.height+t&&this.position.x<=e.width+t}},{key:"isVisible",value:function(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}},{key:"reset",value:function(){var t,e,i=(0,n.Z)(this.container.particles.updaters);try{for(i.s();!(e=i.n()).done;){var a=e.value;null===(t=a.reset)||void 0===t||t.call(a,this)}}catch(r){i.e(r)}finally{i.f()}}},{key:"_calcPosition",value:function(t,e,i){var a,r,o,s,u,l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,h=(0,n.Z)(t.plugins);try{for(h.s();!(u=h.n()).done;){var d=(0,c.Z)(u.value,2),f=d[1],p=void 0!==f.particlePosition?f.particlePosition(e,this):void 0;if(void 0!==p)return v.create(p.x,p.y,i)}}catch(Z){h.e(Z)}finally{h.f()}var y=t.canvas.size,m=D({size:y,position:e}),b=v.create(m.x,m.y,i),g=this.getRadius(),k=this.options.move.outModes,w=function(e){Fe({outMode:e,checkModes:["bounce","bounce-horizontal"],coord:b.x,maxCoord:t.canvas.size.width,setCb:function(t){return b.x+=t},radius:g})},x=function(e){Fe({outMode:e,checkModes:["bounce","bounce-vertical"],coord:b.y,maxCoord:t.canvas.size.height,setCb:function(t){return b.y+=t},radius:g})};return w(null!==(a=k.left)&&void 0!==a?a:k.default),w(null!==(r=k.right)&&void 0!==r?r:k.default),x(null!==(o=k.top)&&void 0!==o?o:k.default),x(null!==(s=k.bottom)&&void 0!==s?s:k.default),this._checkOverlap(b,l)?this._calcPosition(t,void 0,i,l+1):b}},{key:"_calculateVelocity",value:function(){var t=function(t){var e=f.origin;return e.length=1,e.angle=t,e}(this.direction).copy(),e=this.options.move;if("inside"===e.direction||"outside"===e.direction)return t;var i=Math.PI/180*x(e.angle.value),n=Math.PI/180*x(e.angle.offset),a={left:n-i/2,right:n+i/2};return e.straight||(t.angle+=w(_(a.left,a.right))),e.random&&"number"===typeof e.speed&&(t.length*=b()),t}},{key:"_checkOverlap",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=this.options.collisions,a=this.getRadius();if(!i.enable)return!1;var r=i.overlap;if(r.enable)return!1;var o=r.retries;if(o>=0&&e>o)throw new Error("Particle is overlapping and can't be placed");var s,u=!1,l=(0,n.Z)(this.container.particles.array);try{for(l.s();!(s=l.n()).done;){var c=s.value;if(M(t,c.position)Math.sqrt(Math.pow(r.x,2)+Math.pow(r.y,2));if(void 0!==e.size){var s=e.size.width,u=e.size.height;return Math.pow(r.x-s,2)+Math.pow(r.y-u,2)<=Math.pow(o,2)||r.x<=o+s&&r.y<=o+u||r.x<=s||r.y<=u}return!1}}]),i}(Ve),je=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t,n,a,o){var s;return(0,r.Z)(this,i),(s=e.call(this,t,n)).size={height:o,width:a},s}return(0,o.Z)(i,[{key:"contains",value:function(t){var e=this.size.width,i=this.size.height,n=this.position;return t.x>=n.x&&t.x<=n.x+e&&t.y>=n.y&&t.y<=n.y+i}},{key:"intersects",value:function(t){t instanceof Ue&&t.intersects(this);var e=this.size.width,n=this.size.height,a=this.position,r=t.position,o=t instanceof i?t.size:{width:0,height:0},s=o.width,u=o.height;return r.xa.x&&r.ya.y}}]),i}(Ve),Ne=function(){function t(e,i){(0,r.Z)(this,t),this.rectangle=e,this.capacity=i,this._points=[],this._divided=!1}return(0,o.Z)(t,[{key:"insert",value:function(t){var e,i,n,a,r;return!!this.rectangle.contains(t.position)&&(this._points.lengthh.particle.getRadius()&&(!e||e(h.particle))||u.push(h.particle)}}catch(d){c.e(d)}finally{c.f()}return this._divided&&(null===(a=this._NE)||void 0===a||a.query(t,e,u),null===(r=this._NW)||void 0===r||r.query(t,e,u),null===(o=this._SE)||void 0===o||o.query(t,e,u),null===(s=this._SW)||void 0===s||s.query(t,e,u)),u}},{key:"queryCircle",value:function(t,e,i){return this.query(new Ue(t.x,t.y,e),i)}},{key:"queryRectangle",value:function(t,e,i){return this.query(new je(t.x,t.y,e.width,e.height),i)}},{key:"subdivide",value:function(){var e=this.rectangle.position.x,i=this.rectangle.position.y,n=this.rectangle.size.width,a=this.rectangle.size.height,r=this.capacity;this._NE=new t(new je(e,i,n/2,a/2),r),this._NW=new t(new je(e+n/2,i,n/2,a/2),r),this._SE=new t(new je(e,i+a/2,n/2,a/2),r),this._SW=new t(new je(e+n/2,i+a/2,n/2,a/2),r),this._divided=!0}}]),t}(),Ke=function(){function t(e,i){(0,r.Z)(this,t),this.container=i,this._engine=e,this.nextId=0,this.array=[],this.zArray=[],this.pool=[],this.limit=0,this.needsSort=!1,this.lastZIndex=0,this.interactionManager=new Be(this._engine,i);var n=this.container.canvas.size;this.quadTree=new Ne(new je(-n.width/4,-n.height/4,3*n.width/2,3*n.height/2),4),this.movers=this._engine.plugins.getMovers(i,!0),this.updaters=this._engine.plugins.getUpdaters(i,!0)}return(0,o.Z)(t,[{key:"count",get:function(){return this.array.length}},{key:"addManualParticles",value:function(){var t,e,i=this.container,a=i.actualOptions,r=(0,n.Z)(a.manualParticles);try{for(r.s();!(t=r.n()).done;){var o=t.value;this.addParticle((e={size:i.canvas.size,position:o.position}).position&&void 0!==e.position.x&&void 0!==e.position.y?{x:e.position.x*e.size.width/100,y:e.position.y*e.size.height/100}:void 0,o.options)}}catch(s){r.e(s)}finally{r.f()}}},{key:"addParticle",value:function(t,e,i,n){var a=this.container.actualOptions.particles.number.limit;if(a>0){var r=this.count+1-a;r>0&&this.removeQuantity(r)}return this._pushParticle(t,e,i,n)}},{key:"clear",value:function(){this.array=[],this.zArray=[]}},{key:"destroy",value:function(){this.array=[],this.zArray=[],this.movers=[],this.updaters=[]}},{key:"draw",value:function(){var t=(0,a.Z)(u().mark((function t(e){var i,a,r,o,s,l,h,d;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=this.container,a=this.container.canvas.size,this.quadTree=new Ne(new je(-a.width/4,-a.height/4,3*a.width/2,3*a.height/2),4),i.canvas.clear(),t.next=5,this.update(e);case 5:this.needsSort&&(this.zArray.sort((function(t,e){return e.position.z-t.position.z||t.id-e.id})),this.lastZIndex=this.zArray[this.zArray.length-1].position.z,this.needsSort=!1),r=(0,n.Z)(i.plugins);try{for(r.s();!(o=r.n()).done;)s=(0,c.Z)(o.value,2),l=s[1],i.canvas.drawPlugin(l,e)}catch(u){r.e(u)}finally{r.f()}h=(0,n.Z)(this.zArray);try{for(h.s();!(d=h.n()).done;)d.value.draw(e)}catch(u){h.e(u)}finally{h.f()}case 10:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"handleClickMode",value:function(t){this.interactionManager.handleClickMode(t)}},{key:"init",value:function(){var t,e=this.container,i=e.actualOptions;this.lastZIndex=0,this.needsSort=!1;var a=!1;this.updaters=this._engine.plugins.getUpdaters(e,!0),this.interactionManager.init();var r,o=(0,n.Z)(e.plugins);try{for(o.s();!(r=o.n()).done;){var s=(0,c.Z)(r.value,2)[1];if(void 0!==s.particlesInitialization&&(a=s.particlesInitialization()),a)break}}catch(y){o.e(y)}finally{o.f()}this.interactionManager.init();var u,l=(0,n.Z)(e.pathGenerators);try{for(l.s();!(u=l.n()).done;){(0,c.Z)(u.value,2)[1].init(e)}}catch(y){l.e(y)}finally{l.f()}if(this.addManualParticles(),!a){for(var h in i.particles.groups)for(var d=i.particles.groups[h],v=this.count,f=0;f<(null===(t=d.number)||void 0===t?void 0:t.value)&&v1&&void 0!==arguments[1]?arguments[1]:1,i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0;if(!(t<0||t>this.count))for(var a=0,r=t;a0?a.limit:o,u=Math.min(o,s)*r+e,l=Math.min(this.count,this.array.filter((function(t){return t.group===i})).length);this.limit=a.limit*r,lu&&this.removeQuantity(l-u,i)}}},{key:"_initDensityFactor",value:function(t){var e=this.container;if(!e.canvas.element||!t.enable)return 1;var i=e.canvas.element,n=e.retina.pixelRatio;return i.width*i.height/(t.factor*Math.pow(n,2)*t.area)}},{key:"_pushParticle",value:function(t,e,i,n){try{var a=this.pool.pop();a?a.init(this.nextId,t,e,i):a=new He(this._engine,this.nextId,this.container,t,e,i);var r=!0;if(n&&(r=n(a)),!r)return;return this.array.push(a),this.zArray.push(a),this.nextId++,this._engine.dispatchEvent("particleAdded",{container:this.container,data:{particle:a}}),a}catch(o){return void console.warn("error adding particle: ".concat(o))}}}]),t}(),Xe=function(){function t(e){(0,r.Z)(this,t),this.container=e}return(0,o.Z)(t,[{key:"init",value:function(){var t=this.container,e=t.actualOptions;this.pixelRatio=!e.detectRetina||T()?1:window.devicePixelRatio,this.reduceFactor=1;var i=this.pixelRatio;if(t.canvas.element){var n=t.canvas.element;t.canvas.size.width=n.offsetWidth*i,t.canvas.size.height=n.offsetHeight*i}var a=e.particles;this.attractDistance=x(a.move.attract.distance)*i,this.sizeAnimationSpeed=x(a.size.animation.speed)*i,this.maxSpeed=x(a.move.gravity.maxSpeed)*i}},{key:"initParticle",value:function(t){var e=t.options,i=this.pixelRatio,n=e.move.distance,a=t.retina;a.attractDistance=x(e.move.attract.distance)*i,a.moveDrift=x(e.move.drift)*i,a.moveSpeed=x(e.move.speed)*i,a.sizeAnimationSpeed=x(e.size.animation.speed)*i;var r=a.maxDistance;r.horizontal=void 0!==n.horizontal?n.horizontal*i:void 0,r.vertical=void 0!==n.vertical?n.vertical*i:void 0,a.maxSpeed=x(e.move.gravity.maxSpeed)*i}}]),t}();function Ye(t){return t&&!t.destroyed}function Je(t,e){for(var i=new We(t,e),n=arguments.length,a=new Array(n>2?n-2:0),r=2;r2&&void 0!==arguments[2]&&arguments[2];return!(!Ye(this)||!i&&this.pathGenerators.has(t))&&(this.pathGenerators.set(t,null!==e&&void 0!==e?e:$e),!0)}},{key:"destroy",value:function(){var t=this;if(Ye(this)){this.stop(),this.particles.destroy(),this.canvas.destroy();var e,i=(0,n.Z)(this.drawers);try{for(i.s();!(e=i.n()).done;){var a=(0,c.Z)(e.value,2)[1];a.destroy&&a.destroy(this)}}catch(h){i.e(h)}finally{i.f()}var r,o=(0,n.Z)(this.drawers.keys());try{for(o.s();!(r=o.n()).done;){var s=r.value;this.drawers.delete(s)}}catch(h){o.e(h)}finally{o.f()}this._engine.plugins.destroy(this),this.destroyed=!0;var u=this._engine.dom(),l=u.findIndex((function(e){return e===t}));l>=0&&u.splice(l,1),this._engine.dispatchEvent("containerDestroyed",{container:this})}}},{key:"draw",value:function(t){var e=this;if(Ye(this)){var i=t;this._drawAnimationFrame=(T()?function(t){return setTimeout(t)}:function(t){return(requestAnimationFrame||setTimeout)(t)})(function(){var t=(0,a.Z)(u().mark((function t(n){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i&&(e.lastFrameTime=void 0,i=!1),t.next=3,e.frameManager.nextFrame(n);case 3:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())}}},{key:"exportConfiguration",value:function(){return JSON.stringify(this.actualOptions,(function(t,e){if("_engine"!==t&&"_container"!==t)return e}),2)}},{key:"exportImage",value:function(t,e,i){var n=this.canvas.element;n&&n.toBlob(t,null!==e&&void 0!==e?e:"image/png",i)}},{key:"exportImg",value:function(t){this.exportImage(t)}},{key:"getAnimationStatus",value:function(){return!this._paused&&!this.pageHidden&&Ye(this)}},{key:"handleClickMode",value:function(t){if(Ye(this)){this.particles.handleClickMode(t);var e,i=(0,n.Z)(this.plugins);try{for(i.s();!(e=i.n()).done;){var a=(0,c.Z)(e.value,2)[1];a.handleClickMode&&a.handleClickMode(t)}}catch(r){i.e(r)}finally{i.f()}}}},{key:"init",value:function(){var t=(0,a.Z)(u().mark((function t(){var e,i,a,r,o,s,l,h,d,v,f,p,y,m,b,g,k,w,Z,z,_,C,O;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Ye(this)){t.next=2;break}return t.abrupt("return");case 2:e=this._engine.plugins.getSupportedShapes(),i=(0,n.Z)(e);try{for(i.s();!(a=i.n()).done;)r=a.value,(o=this._engine.plugins.getShapeDrawer(r))&&this.drawers.set(r,o)}catch(u){i.e(u)}finally{i.f()}this._options=Je(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=Je(this._engine,this,this._options),s=this._engine.plugins.getAvailablePlugins(this),l=(0,n.Z)(s);try{for(l.s();!(h=l.n()).done;)d=(0,c.Z)(h.value,2),v=d[0],f=d[1],this.plugins.set(v,f)}catch(u){l.e(u)}finally{l.f()}return this.retina.init(),t.next=13,this.canvas.init();case 13:this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize(),this.zLayers=this.actualOptions.zLayers,this.duration=1e3*x(this.actualOptions.duration),this._delay=1e3*x(this.actualOptions.delay),this.lifeTime=0,this.fpsLimit=this.actualOptions.fpsLimit>0?this.actualOptions.fpsLimit:120,this.smooth=this.actualOptions.smooth,p=(0,n.Z)(this.drawers),t.prev=23,p.s();case 25:if((y=p.n()).done){t.next=32;break}if(m=(0,c.Z)(y.value,2),!(b=m[1]).init){t.next=30;break}return t.next=30,b.init(this);case 30:t.next=25;break;case 32:t.next=37;break;case 34:t.prev=34,t.t0=t.catch(23),p.e(t.t0);case 37:return t.prev=37,p.f(),t.finish(37);case 40:g=(0,n.Z)(this.plugins),t.prev=41,g.s();case 43:if((k=g.n()).done){t.next=50;break}if(w=(0,c.Z)(k.value,2),!(Z=w[1]).init){t.next=48;break}return t.next=48,Z.init();case 48:t.next=43;break;case 50:t.next=55;break;case 52:t.prev=52,t.t1=t.catch(41),g.e(t.t1);case 55:return t.prev=55,g.f(),t.finish(55);case 58:this._engine.dispatchEvent("containerInit",{container:this}),this.particles.init(),this.particles.setDensity(),z=(0,n.Z)(this.plugins);try{for(z.s();!(_=z.n()).done;)C=(0,c.Z)(_.value,2),(O=C[1]).particlesSetup&&O.particlesSetup()}catch(u){z.e(u)}finally{z.f()}this._engine.dispatchEvent("particlesSetup",{container:this});case 64:case"end":return t.stop()}}),t,this,[[23,34,37,40],[41,52,55,58]])})));return function(){return t.apply(this,arguments)}}()},{key:"loadTheme",value:function(){var t=(0,a.Z)(u().mark((function t(e){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Ye(this)){t.next=2;break}return t.abrupt("return");case 2:return this._currentTheme=e,t.next=5,this.refresh();case 5:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"pause",value:function(){if(Ye(this)&&(void 0!==this._drawAnimationFrame&&((T()?function(t){return clearTimeout(t)}:function(t){return(cancelAnimationFrame||clearTimeout)(t)})(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){var t,e=(0,n.Z)(this.plugins);try{for(e.s();!(t=e.n()).done;){var i=(0,c.Z)(t.value,2)[1];i.pause&&i.pause()}}catch(a){e.e(a)}finally{e.f()}this.pageHidden||(this._paused=!0),this._engine.dispatchEvent("containerPaused",{container:this})}}},{key:"play",value:function(t){if(Ye(this)){var e=this._paused||t;if(!this._firstStart||this.actualOptions.autoPlay){if(this._paused&&(this._paused=!1),e){var i,a=(0,n.Z)(this.plugins);try{for(a.s();!(i=a.n()).done;){var r=(0,c.Z)(i.value,2)[1];r.play&&r.play()}}catch(o){a.e(o)}finally{a.f()}}this._engine.dispatchEvent("containerPlay",{container:this}),this.draw(e||!1)}else this._firstStart=!1}}},{key:"refresh",value:function(){var t=(0,a.Z)(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Ye(this)){t.next=2;break}return t.abrupt("return");case 2:return this.stop(),t.abrupt("return",this.start());case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"reset",value:function(){var t=(0,a.Z)(u().mark((function t(){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Ye(this)){t.next=2;break}return t.abrupt("return");case 2:return this._options=Je(this._engine,this),t.abrupt("return",this.refresh());case 4:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"setNoise",value:function(t,e,i){Ye(this)&&this.setPath(t,e,i)}},{key:"setPath",value:function(t,e,i){if(t&&Ye(this)){var n=Object.assign({},$e);if("function"===typeof t)n.generate=t,e&&(n.init=e),i&&(n.update=i);else{var a=n;n.generate=t.generate||a.generate,n.init=t.init||a.init,n.update=t.update||a.update}this.addPath("default",n,!0)}}},{key:"start",value:function(){var t=(0,a.Z)(u().mark((function t(){var e=this;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(Ye(this)&&!this.started){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,this.init();case 4:return this.started=!0,t.next=7,new Promise((function(t){e._delayTimeout=setTimeout((0,a.Z)(u().mark((function i(){var a,r,o,s;return u().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:e._eventListeners.addListeners(),e.interactivity.element instanceof HTMLElement&&e._intersectionObserver&&e._intersectionObserver.observe(e.interactivity.element),a=(0,n.Z)(e.plugins),i.prev=3,a.s();case 5:if((r=a.n()).done){i.next=12;break}if(o=(0,c.Z)(r.value,2),!(s=o[1]).start){i.next=10;break}return i.next=10,s.start();case 10:i.next=5;break;case 12:i.next=17;break;case 14:i.prev=14,i.t0=i.catch(3),a.e(i.t0);case 17:return i.prev=17,a.f(),i.finish(17);case 20:e._engine.dispatchEvent("containerStarted",{container:e}),e.play(),t();case 23:case"end":return i.stop()}}),i,null,[[3,14,17,20]])}))),e._delay)}));case 7:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"stop",value:function(){if(Ye(this)&&this.started){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);var t,e=(0,n.Z)(this.plugins);try{for(e.s();!(t=e.n()).done;){var i=(0,c.Z)(t.value,2)[1];i.stop&&i.stop()}}catch(s){e.e(s)}finally{e.f()}var a,r=(0,n.Z)(this.plugins.keys());try{for(r.s();!(a=r.n()).done;){var o=a.value;this.plugins.delete(o)}}catch(s){r.e(s)}finally{r.f()}this._sourceOptions=this._options,this._engine.dispatchEvent("containerStopped",{container:this})}}},{key:"updateActualOptions",value:function(){this.actualOptions.responsive=[];var t=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this.responsiveMaxWidth!==t&&(this.responsiveMaxWidth=t,!0)}},{key:"_intersectionManager",value:function(t){if(Ye(this)&&this.actualOptions.pauseOnOutsideViewport){var e,i=(0,n.Z)(t);try{for(i.s();!(e=i.n()).done;){var a=e.value;a.target===this.interactivity.element&&(a.isIntersecting?this.play:this.pause)()}}catch(r){i.e(r)}finally{i.f()}}}}]),t}();function ti(t,e){return ei.apply(this,arguments)}function ei(){return(ei=(0,a.Z)(u().mark((function t(e,i){var n,a;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=$(e,i)){t.next=3;break}return t.abrupt("return");case 3:return t.next=5,fetch(n);case 5:if(!(a=t.sent).ok){t.next=8;break}return t.abrupt("return",a.json());case 8:console.error("tsParticles - Error ".concat(a.status," while retrieving config file"));case 9:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var ii=function(){function t(e){(0,r.Z)(this,t),this._engine=e}return(0,o.Z)(t,[{key:"load",value:function(t,e,i){var n={index:i,remote:!1};return"string"===typeof t?n.tagId=t:n.options=t,"number"===typeof e?n.index=e:n.options=null!==e&&void 0!==e?e:n.options,this.loadOptions(n)}},{key:"loadJSON",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n){var a,r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return"number"===typeof i||void 0===i?a=e:(r=e,a=i),t.abrupt("return",this.loadRemoteOptions({tagId:r,url:a,index:n,remote:!0}));case 2:case"end":return t.stop()}}),t,this)})));return function(e,i,n){return t.apply(this,arguments)}}()},{key:"loadOptions",value:function(){var t=(0,a.Z)(u().mark((function t(e){var i,n,a,r,o,s,l,c,h,d,v,f,p,y,m;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=null!==(i=e.tagId)&&void 0!==i?i:"tsparticles".concat(Math.floor(1e4*b())),o=e.index,s=e.url,!e.remote){t.next=10;break}return t.next=7,ti(s,o);case 7:t.t0=t.sent,t.next=11;break;case 10:t.t0=e.options;case 11:return l=t.t0,(c=null!==(n=e.element)&&void 0!==n?n:document.getElementById(r))||((c=document.createElement("div")).id=r,null===(a=document.querySelector("body"))||void 0===a||a.append(c)),h=$(l,o),d=this._engine.dom(),(v=d.findIndex((function(t){return t.id===r})))>=0&&(f=this._engine.domItem(v))&&!f.destroyed&&(f.destroy(),d.splice(v,1)),"canvas"===c.tagName.toLowerCase()?(p=c).dataset.generated="false":(y=c.getElementsByTagName("canvas")).length?(p=y[0]).dataset.generated="false":((p=document.createElement("canvas")).dataset.generated="true",c.appendChild(p)),p.style.width||(p.style.width="100%"),p.style.height||(p.style.height="100%"),m=new Qe(this._engine,r,h),v>=0?d.splice(v,0,m):d.push(m),m.canvas.loadCanvas(p),t.next=24,m.start();case 24:return t.abrupt("return",m);case 25:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"loadRemoteOptions",value:function(){var t=(0,a.Z)(u().mark((function t(e){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this.loadOptions(e));case 1:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}()},{key:"set",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n,a){var r;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r={index:a,remote:!1},"string"===typeof e?r.tagId=e:r.element=e,i instanceof HTMLElement?r.element=i:r.options=i,"number"===typeof n?r.index=n:r.options=null!==n&&void 0!==n?n:r.options,t.abrupt("return",this.loadOptions(r));case 5:case"end":return t.stop()}}),t,this)})));return function(e,i,n,a){return t.apply(this,arguments)}}()},{key:"setJSON",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n,a){var r,o,s,l;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e instanceof HTMLElement?(l=e,r=i,s=n):(o=e,l=i,r=n,s=a),t.abrupt("return",this.loadRemoteOptions({tagId:o,url:r,index:s,element:l,remote:!0}));case 2:case"end":return t.stop()}}),t,this)})));return function(e,i,n,a){return t.apply(this,arguments)}}()}]),t}(),ni=i(3433);function ai(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],a=e.get(t);return a&&!n||(a=(0,ni.Z)(i.values()).map((function(e){return e(t)})),e.set(t,a)),a}var ri=function(){function t(e){(0,r.Z)(this,t),this._engine=e,this.plugins=[],this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.drawers=new Map,this.pathGenerators=new Map}return(0,o.Z)(t,[{key:"addInteractor",value:function(t,e){this._initializers.interactors.set(t,e)}},{key:"addParticleMover",value:function(t,e){this._initializers.movers.set(t,e)}},{key:"addParticleUpdater",value:function(t,e){this._initializers.updaters.set(t,e)}},{key:"addPathGenerator",value:function(t,e){this.getPathGenerator(t)||this.pathGenerators.set(t,e)}},{key:"addPlugin",value:function(t){this.getPlugin(t.id)||this.plugins.push(t)}},{key:"addPreset",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];!i&&this.getPreset(t)||this.presets.set(t,e)}},{key:"addShapeDrawer",value:function(t,e){var i=this;J(t,(function(t){i.getShapeDrawer(t)||i.drawers.set(t,e)}))}},{key:"destroy",value:function(t){this.updaters.delete(t),this.movers.delete(t),this.interactors.delete(t)}},{key:"getAvailablePlugins",value:function(t){var e,i=new Map,a=(0,n.Z)(this.plugins);try{for(a.s();!(e=a.n()).done;){var r=e.value;r.needsPlugin(t.actualOptions)&&i.set(r.id,r.getPlugin(t))}}catch(o){a.e(o)}finally{a.f()}return i}},{key:"getInteractors",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return ai(t,this.interactors,this._initializers.interactors,e)}},{key:"getMovers",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return ai(t,this.movers,this._initializers.movers,e)}},{key:"getPathGenerator",value:function(t){return this.pathGenerators.get(t)}},{key:"getPlugin",value:function(t){return this.plugins.find((function(e){return e.id===t}))}},{key:"getPreset",value:function(t){return this.presets.get(t)}},{key:"getShapeDrawer",value:function(t){return this.drawers.get(t)}},{key:"getSupportedShapes",value:function(){return this.drawers.keys()}},{key:"getUpdaters",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return ai(t,this.updaters,this._initializers.updaters,e)}},{key:"loadOptions",value:function(t,e){var i,a=(0,n.Z)(this.plugins);try{for(a.s();!(i=a.n()).done;){i.value.loadOptions(t,e)}}catch(r){a.e(r)}finally{a.f()}}},{key:"loadParticlesOptions",value:function(t,e){var i=this.updaters.get(t);if(i){for(var a=arguments.length,r=new Array(a>2?a-2:0),o=2;o2&&void 0!==a[2]&&a[2],this.plugins.addPreset(e,i,n),t.next=4,this.refresh();case 4:case"end":return t.stop()}}),t,this)})));return function(e,i){return t.apply(this,arguments)}}()},{key:"addShape",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n,a,r){var o;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o="function"===typeof i?{afterEffect:a,destroy:r,draw:i,init:n}:i,this.plugins.addShapeDrawer(e,o),t.next=4,this.refresh();case 4:case"end":return t.stop()}}),t,this)})));return function(e,i,n,a,r){return t.apply(this,arguments)}}()},{key:"dispatchEvent",value:function(t,e){this._eventDispatcher.dispatchEvent(t,e)}},{key:"dom",value:function(){return this._domArray}},{key:"domItem",value:function(t){var e=this.dom(),i=e[t];if(i&&!i.destroyed)return i;e.splice(t,1)}},{key:"init",value:function(){this._initialized||(this._initialized=!0)}},{key:"load",value:function(){var t=(0,a.Z)(u().mark((function t(e,i){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._loader.load(e,i));case 1:case"end":return t.stop()}}),t,this)})));return function(e,i){return t.apply(this,arguments)}}()},{key:"loadFromArray",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._loader.load(e,i,n));case 1:case"end":return t.stop()}}),t,this)})));return function(e,i,n){return t.apply(this,arguments)}}()},{key:"loadJSON",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._loader.loadJSON(e,i,n));case 1:case"end":return t.stop()}}),t,this)})));return function(e,i,n){return t.apply(this,arguments)}}()},{key:"refresh",value:function(){var t=(0,a.Z)(u().mark((function t(){var e,i,a;return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=(0,n.Z)(this.dom()),t.prev=1,e.s();case 3:if((i=e.n()).done){t.next=9;break}return a=i.value,t.next=7,a.refresh();case 7:t.next=3;break;case 9:t.next=14;break;case 11:t.prev=11,t.t0=t.catch(1),e.e(t.t0);case 14:return t.prev=14,e.f(),t.finish(14);case 17:case"end":return t.stop()}}),t,this,[[1,11,14,17]])})));return function(){return t.apply(this,arguments)}}()},{key:"removeEventListener",value:function(t,e){this._eventDispatcher.removeEventListener(t,e)}},{key:"set",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._loader.set(e,i,n));case 1:case"end":return t.stop()}}),t,this)})));return function(e,i,n){return t.apply(this,arguments)}}()},{key:"setJSON",value:function(){var t=(0,a.Z)(u().mark((function t(e,i,n,a){return u().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",this._loader.setJSON(e,i,n,a));case 1:case"end":return t.stop()}}),t,this)})));return function(e,i,n,a){return t.apply(this,arguments)}}()},{key:"setOnClickHandler",value:function(t){var e=this.dom();if(!e.length)throw new Error("Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()");var i,a=(0,n.Z)(e);try{for(a.s();!(i=a.n()).done;){i.value.addClickHandler(t)}}catch(r){a.e(r)}finally{a.f()}}}]),t}(),si=function(){function t(){(0,r.Z)(this,t),this.key="hsl",this.stringPrefix="hsl"}return(0,o.Z)(t,[{key:"handleColor",value:function(t){var e,i=null!==(e=t.value.hsl)&&void 0!==e?e:t.value;if(void 0!==i.h&&void 0!==i.s&&void 0!==i.l)return ht(i)}},{key:"handleRangeColor",value:function(t){var e,i=null!==(e=t.value.hsl)&&void 0!==e?e:t.value;if(void 0!==i.h&&void 0!==i.l)return ht({h:x(i.h),l:x(i.l),s:x(i.s)})}},{key:"parseString",value:function(t){if(t.startsWith("hsl")){var e=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i.exec(t);return e?function(t){var e=ht(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}({a:e.length>4?I(e[5]):1,h:parseInt(e[1],10),l:parseInt(e[3],10),s:parseInt(e[2],10)}):void 0}}}]),t}(),ui=function(){function t(){(0,r.Z)(this,t),this.key="rgb",this.stringPrefix="rgb"}return(0,o.Z)(t,[{key:"handleColor",value:function(t){var e,i=null!==(e=t.value.rgb)&&void 0!==e?e:t.value;if(void 0!==i.r)return i}},{key:"handleRangeColor",value:function(t){var e,i=null!==(e=t.value.rgb)&&void 0!==e?e:t.value;if(void 0!==i.r)return{r:x(i.r),g:x(i.g),b:x(i.b)}}},{key:"parseString",value:function(t){if(t.startsWith(this.stringPrefix)){var e=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i.exec(t);return e?{a:e.length>4?I(e[5]):1,b:parseInt(e[3],10),g:parseInt(e[2],10),r:parseInt(e[1],10)}:void 0}}}]),t}(),li=(0,o.Z)((function t(e){(0,r.Z)(this,t),this.container=e,this.type="external"})),ci=(0,o.Z)((function t(e){(0,r.Z)(this,t),this.container=e,this.type="particles"})),hi=new ui,di=new si;nt(hi),nt(di);var vi=new oi;vi.init()},2147:function(t,e,i){i.d(e,{R:function(){return en}});var n=i(5861),a=i(4687),r=i.n(a),o=i(5671),s=i(3144),u=i(4099),l=i(1752),c=i(1120),h=i(136),d=i(7277),v=function(){function t(){(0,o.Z)(this,t),this.radius=0,this.mass=0}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.mass&&(this.mass=t.mass),void 0!==t.radius&&(this.radius=t.radius))}}]),t}(),f=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,o.Z)(this,i),(t=e.call(this)).density=5,t.value=50,t.limit=new v,t}return(0,s.Z)(i,[{key:"load",value:function(t){t&&((0,l.Z)((0,c.Z)(i.prototype),"load",this).call(this,t),void 0!==t.density&&(this.density=t.density),"number"===typeof t.limit?this.limit.radius=t.limit:this.limit.load(t.limit))}}]),i}(u.SW),p=function(){function t(){(0,o.Z)(this,t),this.color=new u.Oz,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.size=new f}return(0,s.Z)(t,[{key:"load",value:function(t){void 0!==t&&(void 0!==t.color&&(this.color=u.Oz.create(this.color,t.color)),void 0!==t.draggable&&(this.draggable=t.draggable),this.name=t.name,void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=(0,u.Cs)(t.position.x)),void 0!==t.position.y&&(this.position.y=(0,u.Cs)(t.position.y))),void 0!==t.size&&this.size.load(t.size),void 0!==t.destroy&&(this.destroy=t.destroy),void 0!==t.orbits&&(this.orbits=t.orbits))}}]),t}(),y=i(7762),m=function(){function t(e,i,n,a){var r,s,l;(0,o.Z)(this,t),this.absorbers=e,this.container=i,this.initialPosition=a?u.OW.create(a.x,a.y):void 0,n instanceof p?this.options=n:(this.options=new p,this.options.load(n)),this.dragging=!1,this.name=this.options.name,this.opacity=this.options.opacity,this.size=(0,u.Gu)(this.options.size.value)*i.retina.pixelRatio,this.mass=this.size*this.options.size.density*i.retina.reduceFactor;var c=this.options.size.limit;this.limit={radius:c.radius*i.retina.pixelRatio*i.retina.reduceFactor,mass:c.mass},this.color=null!==(r=(0,u.tX)(this.options.color))&&void 0!==r?r:{b:0,g:0,r:0},this.position=null!==(l=null===(s=this.initialPosition)||void 0===s?void 0:s.copy())&&void 0!==l?l:this.calcPosition()}return(0,s.Z)(t,[{key:"attract",value:function(t){var e=this.container,i=this.options;if(i.draggable){var n=e.interactivity.mouse;if(n.clicking&&n.downPosition)(0,u.Sp)(this.position,n.downPosition)<=this.size&&(this.dragging=!0);else this.dragging=!1;this.dragging&&n.position&&(this.position.x=n.position.x,this.position.y=n.position.y)}var a=t.getPosition(),r=(0,u.oW)(this.position,a),o=r.dx,s=r.dy,l=r.distance,c=u.OW.create(o,s);if(c.length=this.mass/Math.pow(l,2)*e.retina.reduceFactor,lt.getRadius()&&l=0?"clockwise":"counter-clockwise");var s=t.absorberOrbit.length,l=t.absorberOrbit.angle,c=t.absorberOrbitDirection;t.velocity.setTo(u.OW.origin);var h={x:"clockwise"===c?Math.cos:Math.sin,y:"clockwise"===c?Math.sin:Math.cos};t.position.x=this.position.x+s*h.x(l),t.position.y=this.position.y+s*h.y(l),t.absorberOrbit.length-=e.length,t.absorberOrbit.angle+=(null!==(i=t.retina.moveSpeed)&&void 0!==i?i:0)*n.retina.pixelRatio/100*n.retina.reduceFactor}else{var d=u.OW.origin;d.length=e.length,d.angle=e.angle,t.velocity.addTo(d)}}}}]),t}(),b=function(){function t(e){var i=this;(0,o.Z)(this,t),this.container=e,this.array=[],this.absorbers=[],this.interactivityAbsorbers=[],e.getAbsorber=function(t){return void 0===t||"number"===typeof t?i.array[t||0]:i.array.find((function(e){return e.name===t}))},e.addAbsorber=function(t,e){return i.addAbsorber(t,e)}}return(0,s.Z)(t,[{key:"addAbsorber",value:function(t,e){var i=new m(this,this.container,t,e);return this.array.push(i),i}},{key:"draw",value:function(t){var e,i=(0,y.Z)(this.array);try{for(i.s();!(e=i.n()).done;){e.value.draw(t)}}catch(n){i.e(n)}finally{i.f()}}},{key:"handleClickMode",value:function(t){var e=this.absorbers,i=this.interactivityAbsorbers;if("absorber"===t){var n=(0,u.wA)(i),a=null!==n&&void 0!==n?n:(0,u.wA)(e),r=this.container.interactivity.mouse.clickPosition;this.addAbsorber(a,r)}}},{key:"init",value:function(){var t=(0,n.Z)(r().mark((function t(){var e=this;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this.absorbers=this.container.actualOptions.absorbers,this.interactivityAbsorbers=this.container.actualOptions.interactivity.modes.absorbers,(0,u.KH)(this.absorbers,(function(t){e.addAbsorber(t)}));case 3:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"particleUpdate",value:function(t){var e,i=(0,y.Z)(this.array);try{for(i.s();!(e=i.n()).done;){if(e.value.attract(t),t.destroyed)break}}catch(n){i.e(n)}finally{i.f()}}},{key:"removeAbsorber",value:function(t){var e=this.array.indexOf(t);e>=0&&this.array.splice(e,1)}},{key:"resize",value:function(){var t,e=(0,y.Z)(this.array);try{for(e.s();!(t=e.n()).done;){t.value.resize()}}catch(i){e.e(i)}finally{e.f()}}},{key:"stop",value:function(){this.array=[]}}]),t}(),g=function(){function t(){(0,o.Z)(this,t),this.id="absorbers"}return(0,s.Z)(t,[{key:"getPlugin",value:function(t){return new b(t)}},{key:"loadOptions",value:function(t,e){var i,n;(this.needsPlugin(t)||this.needsPlugin(e))&&((null===e||void 0===e?void 0:e.absorbers)&&(t.absorbers=(0,u.KH)(e.absorbers,(function(t){var e=new p;return e.load(t),e}))),t.interactivity.modes.absorbers=(0,u.KH)(null===(n=null===(i=null===e||void 0===e?void 0:e.interactivity)||void 0===i?void 0:i.modes)||void 0===n?void 0:n.absorbers,(function(t){var e=new p;return e.load(t),e})))}},{key:"needsPlugin",value:function(t){var e,i,n;if(!t)return!1;var a=t.absorbers;return a instanceof Array?!!a.length:!!a||!(!(null===(n=null===(i=null===(e=t.interactivity)||void 0===e?void 0:e.events)||void 0===i?void 0:i.onClick)||void 0===n?void 0:n.mode)||!(0,u.dB)("absorber",t.interactivity.events.onClick.mode))}}]),t}();function k(t){return w.apply(this,arguments)}function w(){return(w=(0,n.Z)(r().mark((function t(e){var i;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new g,t.next=3,e.addPlugin(i);case 3:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var x=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.bottom&&(this.bottom=(0,u.Cs)(t.bottom)),void 0!==t.left&&(this.left=(0,u.Cs)(t.left)),void 0!==t.right&&(this.right=(0,u.Cs)(t.right)),void 0!==t.top&&(this.top=(0,u.Cs)(t.top)))}}]),t}(),Z=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,o.Z)(this,i),(t=e.call(this)).value=3,t}return(0,s.Z)(i)}(u.SW),z=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,o.Z)(this,i),(t=e.call(this)).value={min:4,max:9},t}return(0,s.Z)(i)}(u.SW),_=function(){function t(){(0,o.Z)(this,t),this.count=1,this.factor=new Z,this.rate=new z,this.sizeOffset=!0}return(0,s.Z)(t,[{key:"load",value:function(t){var e;t&&(void 0!==t.color&&(this.color=u.Oz.create(this.color,t.color)),void 0!==t.count&&(this.count=t.count),this.factor.load(t.factor),this.rate.load(t.rate),this.particles=(0,u.KH)(t.particles,(function(t){return(0,u.ZB)({},t)})),void 0!==t.sizeOffset&&(this.sizeOffset=t.sizeOffset),t.colorOffset&&(this.colorOffset=null!==(e=this.colorOffset)&&void 0!==e?e:{},void 0!==t.colorOffset.h&&(this.colorOffset.h=t.colorOffset.h),void 0!==t.colorOffset.s&&(this.colorOffset.s=t.colorOffset.s),void 0!==t.colorOffset.l&&(this.colorOffset.l=t.colorOffset.l)))}}]),t}(),C=function(){function t(){(0,o.Z)(this,t),this.bounds=new x,this.mode="none",this.split=new _}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(t.mode&&(this.mode=t.mode),t.bounds&&this.bounds.load(t.bounds),this.split.load(t.split))}}]),t}(),O=function(){function t(e,i){(0,o.Z)(this,t),this.engine=e,this.container=i}return(0,s.Z)(t,[{key:"init",value:function(t){var e=this.container,i=t.options.destroy;if(i){t.splitCount=0;var n=i.bounds;t.destroyBounds||(t.destroyBounds={}),n.bottom&&(t.destroyBounds.bottom=(0,u.Gu)(n.bottom)*e.canvas.size.height/100),n.left&&(t.destroyBounds.left=(0,u.Gu)(n.left)*e.canvas.size.width/100),n.right&&(t.destroyBounds.right=(0,u.Gu)(n.right)*e.canvas.size.width/100),n.top&&(t.destroyBounds.top=(0,u.Gu)(n.top)*e.canvas.size.height/100)}}},{key:"isEnabled",value:function(t){return!t.destroyed}},{key:"loadOptions",value:function(t){t.destroy||(t.destroy=new C);for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n=i.bottom||void 0!==i.left&&e.x<=i.left||void 0!==i.right&&e.x>=i.right||void 0!==i.top&&e.y<=i.top)&&t.destroy()}}},{key:"addSplitParticle",value:function(t,e){var i,n,a,r=t.options.destroy;if(r){var o=r.split,s=(0,u.hT)(this.engine,this.container,t.options),l=(0,u.NA)(o.factor),c=t.getFillColor();o.color?s.color.load(o.color):o.colorOffset&&c?s.color.load({value:{hsl:{h:c.h+(0,u.Gu)(null!==(i=o.colorOffset.h)&&void 0!==i?i:0),s:c.s+(0,u.Gu)(null!==(n=o.colorOffset.s)&&void 0!==n?n:0),l:c.l+(0,u.Gu)(null!==(a=o.colorOffset.l)&&void 0!==a?a:0)}}}):s.color.load({value:{hsl:t.getFillColor()}}),s.move.load({center:{x:t.position.x,y:t.position.y,mode:"precise"}}),"number"===typeof s.size.value?s.size.value/=l:(s.size.value.min/=l,s.size.value.max/=l),s.load(e);var h=o.sizeOffset?(0,u.Cs)(-t.size.value,t.size.value):0,d={x:t.position.x+(0,u.vd)(h),y:t.position.y+(0,u.vd)(h)};return this.container.particles.addParticle(d,s,t.group,(function(e){var i;return!(e.size.value<.5)&&(e.velocity.length=(0,u.vd)((0,u.Cs)(t.velocity.length,e.velocity.length)),e.splitCount=(null!==(i=t.splitCount)&&void 0!==i?i:0)+1,e.unbreakable=!0,setTimeout((function(){e.unbreakable=!1}),500),!0)}))}}},{key:"split",value:function(t){var e=t.options.destroy;if(e){var i=e.split;if(!(i.count>=0&&(void 0===t.splitCount||t.splitCount++>i.count)))for(var n=(0,u.NA)(i.rate),a=(0,u.wA)(i.particles),r=0;r0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(null!==(t=this._spawnDelay)&&void 0!==t?t:0))){if(void 0===this._emitDelay){var e=(0,u.Gu)(this.options.rate.delay);this._emitDelay=1e3*e/this.container.retina.reduceFactor}(this._lifeCount>0||this._immortal)&&this.prepareToDie()}}},{key:"resize",value:function(){var t=this._initialPosition;this.position=t&&(0,u.Ac)(t,this.container.canvas.size,u.OW.origin)?t:this.calcPosition()}},{key:"update",value:function(t){var e,i,n;this._paused||(this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=null!==(e=this._spawnDelay)&&void 0!==e?e:0,this._currentEmitDelay=null!==(i=this._emitDelay)&&void 0!==i?i:0),this._startParticlesAdded||(this._startParticlesAdded=!0,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!==(n=this.options.life.delay)&&void 0!==n?n: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._engine.dispatchEvent("emitterPlay",{container:this.container}),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)))}},{key:"calcPosition",value:function(){return(0,u.Gz)({size:this.container.canvas.size,position:this.options.position})}},{key:"destroy",value:function(){this.emitters.removeEmitter(this),this._engine.dispatchEvent("emitterDestroyed",{container:this.container,data:{emitter:this}})}},{key:"emit",value:function(){if(!this._paused){var t=(0,u.Gu)(this.options.rate.quantity);this.emitParticles(t)}}},{key:"emitParticles",value:function(t){for(var e,i,n,a=this.getPosition(),r=this.getSize(),o=(0,u.wA)(this._particlesOptions),s=0;s0||this._immortal)&&void 0!==e&&e>0&&(this._duration=1e3*e)}}},{key:"setColorAnimation",value:function(t,e,i){var n,a=this.container;if(!t.enable)return e;var r=(0,u.vd)(t.offset),o=1e3*(0,u.Gu)(this.options.rate.delay)/a.retina.reduceFactor;return(e+(0,u.Gu)(null!==(n=t.speed)&&void 0!==n?n:0)*a.fpsLimit/o+3.6*r)%i}}]),t}(),A=function(){function t(e,i){var n=this;(0,o.Z)(this,t),this.container=i,this._engine=e,this.array=[],this.emitters=[],this.interactivityEmitters={random:{count:1,enable:!1},value:[]},i.getEmitter=function(t){return void 0===t||"number"===typeof t?n.array[t||0]:n.array.find((function(e){return e.name===t}))},i.addEmitter=function(t,e){return n.addEmitter(t,e)},i.removeEmitter=function(t){var e=i.getEmitter(t);e&&n.removeEmitter(e)},i.playEmitter=function(t){var e=i.getEmitter(t);e&&e.externalPlay()},i.pauseEmitter=function(t){var e=i.getEmitter(t);e&&e.externalPause()}}return(0,s.Z)(t,[{key:"addEmitter",value:function(t,e){var i=new E;i.load(t);var n=new T(this._engine,this,this.container,i,e);return this.array.push(n),n}},{key:"handleClickMode",value:function(t){var e=this,i=this.emitters,n=this.interactivityEmitters;if("emitter"===t){var a;if(n&&n.value instanceof Array)if(n.value.length>0&&n.random.enable){a=[];for(var r=[],o=0;o=0&&this.array.splice(e,1)}},{key:"resize",value:function(){var t,e=(0,y.Z)(this.array);try{for(e.s();!(t=e.n()).done;){t.value.resize()}}catch(i){e.e(i)}finally{e.f()}}},{key:"stop",value:function(){this.array=[]}},{key:"update",value:function(t){var e,i=(0,y.Z)(this.array);try{for(i.s();!(e=i.n()).done;){e.value.update(t)}}catch(n){i.e(n)}finally{i.f()}}}]),t}(),L=new Map,q=function(){function t(e){(0,o.Z)(this,t),this._engine=e}return(0,s.Z)(t,[{key:"addShape",value:function(t,e){this.getShape(t)||L.set(t,e)}},{key:"getShape",value:function(t){return L.get(t)}},{key:"getSupportedShapes",value:function(){return L.keys()}}]),t}();function W(t,e){return t+e*((0,u.sZ)()-.5)}var B=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"randomPosition",value:function(t,e,i){if(i)return{x:W(t.x,e.width),y:W(t.y,e.height)};var n=e.width/2,a=e.height/2,r=Math.floor(4*(0,u.sZ)()),o=2*((0,u.sZ)()-.5);switch(r){case 0:return{x:t.x+o*n,y:t.y-a};case 1:return{x:t.x-n,y:t.y+o*a};case 2:return{x:t.x+o*n,y:t.y+a};default:return{x:t.x+n,y:t.y+o*a}}}}]),t}(),F=function(){function t(e){(0,o.Z)(this,t),this._engine=e,this.id="emitters"}return(0,s.Z)(t,[{key:"getPlugin",value:function(t){return new A(this._engine,t)}},{key:"loadOptions",value:function(t,e){var i,n,a,r,o,s;if(this.needsPlugin(t)||this.needsPlugin(e)){(null===e||void 0===e?void 0:e.emitters)&&(t.emitters=(0,u.KH)(e.emitters,(function(t){var e=new E;return e.load(t),e})));var l=null===(n=null===(i=null===e||void 0===e?void 0:e.interactivity)||void 0===i?void 0:i.modes)||void 0===n?void 0:n.emitters;if(l)if(l instanceof Array)t.interactivity.modes.emitters={random:{count:1,enable:!0},value:l.map((function(t){var e=new E;return e.load(t),e}))};else{var c=l;if(void 0!==c.value)if(c.value instanceof Array)t.interactivity.modes.emitters={random:{count:null!==(a=c.random.count)&&void 0!==a?a:1,enable:null!==(r=c.random.enable)&&void 0!==r&&r},value:c.value.map((function(t){var e=new E;return e.load(t),e}))};else{var h=new E;h.load(c.value),t.interactivity.modes.emitters={random:{count:null!==(o=c.random.count)&&void 0!==o?o:1,enable:null!==(s=c.random.enable)&&void 0!==s&&s},value:h}}else(t.interactivity.modes.emitters={random:{count:1,enable:!1},value:new E}).value.load(l)}}}},{key:"needsPlugin",value:function(t){var e,i,n;if(!t)return!1;var a=t.emitters;return a instanceof Array&&!!a.length||void 0!==a||!!(null===(n=null===(i=null===(e=t.interactivity)||void 0===e?void 0:e.events)||void 0===i?void 0:i.onClick)||void 0===n?void 0:n.mode)&&(0,u.dB)("emitter",t.interactivity.events.onClick.mode)}}]),t}();function H(t){return G.apply(this,arguments)}function G(){return(G=(0,n.Z)(r().mark((function t(e){var i;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e.emitterShapeManager||(e.emitterShapeManager=new q(e)),e.addEmitterShape||(e.addEmitterShape=function(t,i){var n;null===(n=e.emitterShapeManager)||void 0===n||n.addShape(t,i)}),i=new F(e),t.next=5,e.addPlugin(i);case 5:e.addEmitterShape("circle",new S),e.addEmitterShape("square",new B);case 7:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var V=function(){function t(){(0,o.Z)(this,t),this.delay=1,this.pauseOnStop=!1,this.quantity=1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.quantity&&(this.quantity=t.quantity),void 0!==t.particles&&(this.particles=(0,u.ZB)({},t.particles)),void 0!==t.pauseOnStop&&(this.pauseOnStop=t.pauseOnStop))}}]),t}(),U=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t){var n;return(0,o.Z)(this,i),(n=e.call(this,t))._delay=0,n}return(0,s.Z)(i,[{key:"clear",value:function(){}},{key:"init",value:function(){}},{key:"interact",value:function(){var t=(0,n.Z)(r().mark((function t(e){var i,n,a,o,s,u,l,c,h;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.container.retina.reduceFactor){t.next=2;break}return t.abrupt("return");case 2:if(s=this.container,u=s.actualOptions,l=u.interactivity.modes.trail){t.next=5;break}return t.abrupt("return");case 5:if(c=1e3*l.delay/this.container.retina.reduceFactor,this._delay1?e-1:0),n=1;n=.5?"darken":"enlighten";t.roll.alter={type:i,value:(0,u.Gu)("darken"===i?e.darken.value:e.enlighten.value)}}else e.darken.enable?t.roll.alter={type:"darken",value:(0,u.Gu)(e.darken.value)}:e.enlighten.enable&&(t.roll.alter={type:"enlighten",value:(0,u.Gu)(e.enlighten.value)});else t.roll={enable:!1,horizontal:!1,vertical:!1,angle:0,speed:0}}},{key:"isEnabled",value:function(t){var e=t.options.roll;return!t.destroyed&&!t.spawning&&!!(null===e||void 0===e?void 0:e.enable)}},{key:"loadOptions",value:function(t){t.roll||(t.roll=new X);for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;na&&(t.roll.angle-=a)}}(t,e)}}]),t}();function J(t){return $.apply(this,arguments)}function $(){return($=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("roll",(function(){return new Y}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Q=function(t){var e=function(e,i){return t.load(e,i)};return e.load=function(e,i,n){t.loadJSON(e,i).then((function(t){t&&n(t)})).catch((function(){n(void 0)}))},e.setOnClickHandler=function(e){t.setOnClickHandler(e)},{particlesJS:e,pJSDom:t.dom()}},tt=function(){function t(){(0,o.Z)(this,t),this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=(0,u.Cs)(t.speed)),void 0!==t.decay&&(this.decay=(0,u.Cs)(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}]),t}(),et=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,o.Z)(this,i),(t=e.call(this)).animation=new tt,t.direction="clockwise",t.path=!1,t.value=0,t}return(0,s.Z)(i,[{key:"load",value:function(t){t&&((0,l.Z)((0,c.Z)(i.prototype),"load",this).call(this,t),void 0!==t.direction&&(this.direction=t.direction),this.animation.load(t.animation),void 0!==t.path&&(this.path=t.path))}}]),i}(u.SW);var it=function(){function t(e){(0,o.Z)(this,t),this.container=e}return(0,s.Z)(t,[{key:"init",value:function(t){var e=t.options.rotate;if(e){t.rotate={enable:e.animation.enable,value:(0,u.Gu)(e.value)*Math.PI/180},t.pathRotation=e.path;var i=e.direction;if("random"===i)i=Math.floor(2*(0,u.sZ)())>0?"counter-clockwise":"clockwise";switch(i){case"counter-clockwise":case"counterClockwise":t.rotate.status="decreasing";break;case"clockwise":t.rotate.status="increasing"}var n=e.animation;n.enable&&(t.rotate.decay=1-(0,u.Gu)(n.decay),t.rotate.velocity=(0,u.Gu)(n.speed)/360*this.container.retina.reduceFactor,n.sync||(t.rotate.velocity*=(0,u.sZ)())),t.rotation=t.rotate.value}}},{key:"isEnabled",value:function(t){var e=t.options.rotate;return!!e&&(!t.destroyed&&!t.spawning&&e.animation.enable&&!e.path)}},{key:"loadOptions",value:function(t){t.rotate||(t.rotate=new et);for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;nu&&(a.value-=u)):(a.value-=s,a.value<0&&(a.value+=u)),a.velocity&&1!==l&&(a.velocity*=l))}}(t,e),t.rotation=null!==(n=null===(i=t.rotate)||void 0===i?void 0:i.value)&&void 0!==n?n:0)}}]),t}();function nt(t){return at.apply(this,arguments)}function at(){return(at=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("rotate",(function(t){return new it(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var rt=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"init",value:function(t){var e,i=t.container,n=t.options,a=n.move.gravity,r=n.move.spin;if(t.gravity={enable:a.enable,acceleration:(0,u.Gu)(a.acceleration),inverse:a.inverse},r.enable){var o=null!==(e=r.position)&&void 0!==e?e:{x:50,y:50},s={x:o.x/100*i.canvas.size.width,y:o.y/100*i.canvas.size.height},l=t.getPosition(),c=(0,u.Sp)(l,s),h=(0,u.Gu)(r.acceleration);t.retina.spinAcceleration=h*i.retina.pixelRatio,t.spin={center:s,direction:t.velocity.x>=0?"clockwise":"counter-clockwise",angle:t.velocity.angle,radius:c,acceleration:t.retina.spinAcceleration}}}},{key:"isEnabled",value:function(t){return!t.destroyed&&t.options.move.enable}},{key:"move",value:function(t,e){var i,n,a,r,o,s=t.options,l=s.move;if(l.enable){var c=t.container,h=function(t){return t.slow.inRange?t.slow.factor:1}(t),d=(null!==(i=(r=t.retina).moveSpeed)&&void 0!==i?i:r.moveSpeed=(0,u.Gu)(l.speed)*c.retina.pixelRatio)*c.retina.reduceFactor,v=null!==(n=(o=t.retina).moveDrift)&&void 0!==n?n:o.moveDrift=(0,u.Gu)(t.options.move.drift)*c.retina.pixelRatio,f=(0,u.KI)(s.size.value)*c.retina.pixelRatio,p=d*((l.size?t.getRadius()/f:1)*h*(e.factor||1))/2;if(l.spin.enable)!function(t,e){var i=t.container;if(t.spin){var n={x:"clockwise"===t.spin.direction?Math.cos:Math.sin,y:"clockwise"===t.spin.direction?Math.sin:Math.cos};t.position.x=t.spin.center.x+t.spin.radius*n.x(t.spin.angle),t.position.y=t.spin.center.y+t.spin.radius*n.y(t.spin.angle),t.spin.radius+=t.spin.acceleration;var a=Math.max(i.canvas.size.width,i.canvas.size.height);t.spin.radius>a/2?(t.spin.radius=a/2,t.spin.acceleration*=-1):t.spin.radius<0&&(t.spin.radius=0,t.spin.acceleration*=-1),t.spin.angle+=e/100*(1-t.spin.radius/a)}}(t,p);else{!function(t,e){var i,n=t.options.move.path;if(n.enable)if(t.lastPathTime<=t.pathDelay)t.lastPathTime+=e.value;else{var a=null===(i=t.pathGenerator)||void 0===i?void 0:i.generate(t);a&&t.velocity.addTo(a),n.clamp&&(t.velocity.x=(0,u.uZ)(t.velocity.x,-1,1),t.velocity.y=(0,u.uZ)(t.velocity.y,-1,1)),t.lastPathTime-=t.pathDelay}}(t,e);var y=t.gravity,m=(null===y||void 0===y?void 0:y.enable)&&y.inverse?-1:1;(null===y||void 0===y?void 0:y.enable)&&p&&(t.velocity.y+=m*(y.acceleration*e.factor)/(60*p)),v&&p&&(t.velocity.x+=v*e.factor/(60*p));var b=t.moveDecay;1!=b&&t.velocity.multTo(b);var g=t.velocity.mult(p),k=null!==(a=t.retina.maxSpeed)&&void 0!==a?a:c.retina.maxSpeed;(null===y||void 0===y?void 0:y.enable)&&k>0&&(!y.inverse&&g.y>=0&&g.y>=k||y.inverse&&g.y<=0&&g.y<=-k)&&(g.y=m*k,p&&(t.velocity.y=g.y/p));var w=t.options.zIndex,x=Math.pow(1-t.zIndexFactor,w.velocityRate);1!=x&&g.multTo(x),t.position.addTo(g),l.vibrate&&(t.position.x+=Math.sin(t.position.x*Math.cos(t.position.y)),t.position.y+=Math.cos(t.position.y*Math.sin(t.position.x)))}!function(t){var e=t.initialPosition,i=(0,u.oW)(e,t.position),n=i.dx,a=i.dy,r=Math.abs(n),o=Math.abs(a),s=t.retina.maxDistance.horizontal,l=t.retina.maxDistance.vertical;if(s||l)if((s&&r>=s||l&&o>=l)&&!t.misplaced)t.misplaced=!!s&&r>s||!!l&&o>l,s&&(t.velocity.x=t.velocity.y/2-t.velocity.x),l&&(t.velocity.y=t.velocity.x/2-t.velocity.y);else if((!s||re.x&&h.x>0)&&(h.x*=-(0,u.sZ)()),l&&(c.ye.y&&h.y>0)&&(h.y*=-(0,u.sZ)())}}(t)}}}]),t}();function ot(t){return st.apply(this,arguments)}function st(){return(st=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.addMover("base",(function(){return new rt}));case 1:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var ut=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"draw",value:function(t,e,i){e.circleRange||(e.circleRange={min:0,max:2*Math.PI});var n=e.circleRange;t.arc(0,0,i,n.min,n.max,!1)}},{key:"getSidesCount",value:function(){return 12}},{key:"particleInit",value:function(t,e){var i,n=e.shapeData,a=null!==(i=null===n||void 0===n?void 0:n.angle)&&void 0!==i?i:{max:360,min:0};e.circleRange="object"!==typeof a?{min:0,max:a*Math.PI/180}:{min:a.min*Math.PI/180,max:a.max*Math.PI/180}}}]),t}();function lt(t){return ct.apply(this,arguments)}function ct(){return(ct=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addShape("circle",new ut);case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function ht(t,e,i,n,a){var r,o,s=e;if(s&&i.enable&&!(void 0!==s.loops&&void 0!==s.maxLoops&&s.maxLoops>0&&s.loops>=s.maxLoops)){var l=(0,u.vd)(i.offset),c=(null!==(r=e.velocity)&&void 0!==r?r:0)*t.factor+3.6*l,h=null!==(o=e.decay)&&void 0!==o?o:1;a&&"increasing"!==s.status?(s.value-=c,s.value<0&&(s.loops||(s.loops=0),s.loops++,s.status="increasing",s.value+=s.value)):(s.value+=c,s.value>n&&(s.loops||(s.loops=0),s.loops++,a&&(s.status="decreasing",s.value-=s.value%n))),s.velocity&&1!==h&&(s.velocity*=h),s.value>n&&(s.value%=n)}}var dt=function(){function t(e){(0,o.Z)(this,t),this.container=e}return(0,s.Z)(t,[{key:"init",value:function(t){var e=(0,u.lN)(t.options.color,t.id,t.options.reduceDuplicates);e&&(t.color=(0,u.bS)(e,t.options.color.animation,this.container.retina.reduceFactor))}},{key:"isEnabled",value:function(t){var e,i,n,a=t.options.color.animation;return!t.destroyed&&!t.spawning&&(void 0!==(null===(e=t.color)||void 0===e?void 0:e.h.value)&&a.h.enable||void 0!==(null===(i=t.color)||void 0===i?void 0:i.s.value)&&a.s.enable||void 0!==(null===(n=t.color)||void 0===n?void 0:n.l.value)&&a.l.enable)}},{key:"update",value:function(t,e){!function(t,e){var i,n,a,r=t.options.color.animation,o=null===(i=t.color)||void 0===i?void 0:i.h,s=null===(n=t.color)||void 0===n?void 0:n.s,u=null===(a=t.color)||void 0===a?void 0:a.l;o&&ht(e,o,r.h,360,!1),s&&ht(e,s,r.s,100,!0),u&&ht(e,u,r.l,100,!0)}(t,e)}}]),t}();function vt(t){return ft.apply(this,arguments)}function ft(){return(ft=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("color",(function(t){return new dt(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var pt=function(){function t(){(0,o.Z)(this,t),this.distance=200,this.duration=.4,this.easing="ease-out-quad",this.factor=1,this.maxSpeed=50,this.speed=1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed))}}]),t}(),yt=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t,n){var a;return(0,o.Z)(this,i),(a=e.call(this,n))._engine=t,n.attract||(n.attract={particles:[]}),a.handleClickMode=function(t){var e=a.container.actualOptions.interactivity.modes.attract;if(e&&"attract"===t){n.attract||(n.attract={particles:[]}),n.attract.clicking=!0,n.attract.count=0;var i,r=(0,y.Z)(n.attract.particles);try{for(r.s();!(i=r.n()).done;){var o=i.value;a.isEnabled(o)&&o.velocity.setTo(o.initialVelocity)}}catch(s){r.e(s)}finally{r.f()}n.attract.particles=[],n.attract.finish=!1,setTimeout((function(){n.destroyed||(n.attract||(n.attract={particles:[]}),n.attract.clicking=!1)}),1e3*e.duration)}},a}return(0,s.Z)(i,[{key:"clear",value:function(){}},{key:"init",value:function(){var t=this.container,e=t.actualOptions.interactivity.modes.attract;e&&(t.retina.attractModeDistance=e.distance*t.retina.pixelRatio)}},{key:"interact",value:function(){var t=(0,n.Z)(r().mark((function t(){var e,i,n,a,o,s,l,c;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=this.container,i=e.actualOptions,n=e.interactivity.status===u.Wt,a=i.interactivity.events,o=a.onHover.enable,s=a.onHover.mode,l=a.onClick.enable,c=a.onClick.mode,n&&o&&(0,u.dB)("attract",s)?this.hoverAttract():l&&(0,u.dB)("attract",c)&&this.clickAttract();case 2:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"isEnabled",value:function(t){var e,i=this.container,n=i.actualOptions,a=i.interactivity.mouse,r=(null!==(e=null===t||void 0===t?void 0:t.interactivity)&&void 0!==e?e:n.interactivity).events;if((!a.position||!r.onHover.enable)&&(!a.clickPosition||!r.onClick.enable))return!1;var o=r.onHover.mode,s=r.onClick.mode;return(0,u.dB)("attract",o)||(0,u.dB)("attract",s)}},{key:"loadModeOptions",value:function(t){t.attract||(t.attract=new pt);for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n1?e-1:0),n=1;n=i){var a=t+(e-i)*n;return(0,u.uZ)(a,t,e)}if(e1?e-1:0),n=1;ns.duration&&(a.bubble.durationEnd=!0),m>2*s.duration&&(a.bubble.clicking=!1,a.bubble.durationEnd=!1);var b={bubbleObj:{optValue:a.retina.bubbleModeSize,value:v.bubble.radius},particlesObj:{optValue:(0,u.KI)(v.options.size.value)*a.retina.pixelRatio,value:v.size.value},type:"size"};this.process(v,p,m,b);var g={bubbleObj:{optValue:s.opacity,value:v.bubble.opacity},particlesObj:{optValue:(0,u.KI)(v.options.opacity.value),value:null!==(i=null===(e=v.opacity)||void 0===e?void 0:e.value)&&void 0!==i?i:1},type:"opacity"};this.process(v,p,m,g),a.bubble.durationEnd?delete v.bubble.color:p<=l?this.hoverBubbleColor(v,p):delete v.bubble.color}}}catch(k){d.e(k)}finally{d.f()}}}}},{key:"hoverBubble",value:function(t){var e=this,i=this.container,n=i.interactivity.mouse.position,a=i.retina.bubbleModeDistance;if(a&&!(a<0)&&void 0!==n){var r,o=i.particles.quadTree.queryCircle(n,a,(function(t){return e.isEnabled(t)})),s=(0,y.Z)(o);try{for(s.s();!(r=s.n()).done;){var l=r.value;l.bubble.inRange=!0;var c=l.getPosition(),h=(0,u.Sp)(c,n),d=1-h/a;h<=a?d>=0&&i.interactivity.status===u.Wt&&(this.hoverBubbleSize(l,d),this.hoverBubbleOpacity(l,d),this.hoverBubbleColor(l,d)):this.reset(l),i.interactivity.status===u.aM&&this.reset(l)}}catch(v){s.e(v)}finally{s.f()}}}},{key:"hoverBubbleColor",value:function(t,e,i){var n=this.container.actualOptions,a=null!==i&&void 0!==i?i:n.interactivity.modes.bubble;if(a){if(!t.bubble.finalColor){var r=a.color;if(!r)return;var o=(0,u.wA)(r);t.bubble.finalColor=(0,u.lN)(o)}if(t.bubble.finalColor)if(a.mix){t.bubble.color=void 0;var s=t.getFillColor();t.bubble.color=s?(0,u.lC)((0,u.oc)(s,t.bubble.finalColor,1-e,e)):t.bubble.finalColor}else t.bubble.color=t.bubble.finalColor}}},{key:"hoverBubbleOpacity",value:function(t,e,i){var n,a,r,o,s=this.container.actualOptions,l=null!==(n=null===i||void 0===i?void 0:i.opacity)&&void 0!==n?n:null===(a=s.interactivity.modes.bubble)||void 0===a?void 0:a.opacity;if(l){var c=t.options.opacity.value,h=Ct(null!==(o=null===(r=t.opacity)||void 0===r?void 0:r.value)&&void 0!==o?o:1,l,(0,u.KI)(c),e);void 0!==h&&(t.bubble.opacity=h)}}},{key:"hoverBubbleSize",value:function(t,e,i){var n=this.container,a=(null===i||void 0===i?void 0:i.size)?i.size*n.retina.pixelRatio:n.retina.bubbleModeSize;if(void 0!==a){var r=(0,u.KI)(t.options.size.value)*n.retina.pixelRatio,o=Ct(t.size.value,a,r,e);void 0!==o&&(t.bubble.radius=o)}}},{key:"process",value:function(t,e,i,n){var a=this.container,r=n.bubbleObj.optValue,o=a.actualOptions.interactivity.modes.bubble;if(o&&void 0!==r){var s=o.duration,u=a.retina.bubbleModeDistance,l=n.particlesObj.optValue,c=n.bubbleObj.value,h=n.particlesObj.value||0,d=n.type;if(u&&!(u<0)&&r!==l)if(a.bubble||(a.bubble={}),a.bubble.durationEnd)c&&("size"===d&&delete t.bubble.radius,"opacity"===d&&delete t.bubble.opacity);else if(e<=u){if((null!==c&&void 0!==c?c:h)!==r){var v=h-i*(h-r)/s;"size"===d&&(t.bubble.radius=v),"opacity"===d&&(t.bubble.opacity=v)}}else"size"===d&&delete t.bubble.radius,"opacity"===d&&delete t.bubble.opacity}}},{key:"singleSelectorHover",value:function(t,e,i){var n=this,a=this.container,r=document.querySelectorAll(e),o=a.actualOptions.interactivity.modes.bubble;o&&r.length&&r.forEach((function(e){var r,s=e,l=a.retina.pixelRatio,c={x:(s.offsetLeft+s.offsetWidth/2)*l,y:(s.offsetTop+s.offsetHeight/2)*l},h=s.offsetWidth/2*l,d="circle"===i.type?new u.Cd(c.x,c.y,h):new u.Ae(s.offsetLeft*l,s.offsetTop*l,s.offsetWidth*l,s.offsetHeight*l),v=a.particles.quadTree.query(d,(function(t){return n.isEnabled(t)})),f=(0,y.Z)(v);try{for(f.s();!(r=f.n()).done;){var p=r.value;if(d.contains(p.getPosition())){p.bubble.inRange=!0;var m=o.divs,b=(0,u.iC)(m,s);p.bubble.div&&p.bubble.div===s||(n.clear(p,t,!0),p.bubble.div=s),n.hoverBubbleSize(p,1,b),n.hoverBubbleOpacity(p,1,b),n.hoverBubbleColor(p,1,b)}}}catch(g){f.e(g)}finally{f.f()}}))}}]),i}(u.L8);function Mt(t){return Pt.apply(this,arguments)}function Pt(){return(Pt=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addInteractor("externalBubble",(function(t){return new Ot(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var St=function(){function t(){(0,o.Z)(this,t),this.opacity=.5}return(0,s.Z)(t,[{key:"load",value:function(t){t&&void 0!==t.opacity&&(this.opacity=t.opacity)}}]),t}(),Rt=function(){function t(){(0,o.Z)(this,t),this.distance=80,this.links=new St,this.radius=60}return(0,s.Z)(t,[{key:"lineLinked",get:function(){return this.links},set:function(t){this.links=t}},{key:"line_linked",get:function(){return this.links},set:function(t){this.links=t}},{key:"load",value:function(t){var e,i;t&&(void 0!==t.distance&&(this.distance=t.distance),this.links.load(null!==(i=null!==(e=t.links)&&void 0!==e?e:t.lineLinked)&&void 0!==i?i:t.line_linked),void 0!==t.radius&&(this.radius=t.radius))}}]),t}();function Dt(t,e,i,n){var a=t.actualOptions.interactivity.modes.connect;if(a)return function(t,e,i,n){var a=Math.floor(i.getRadius()/e.getRadius()),r=e.getFillColor(),o=i.getFillColor();if(r&&o){var s=e.getPosition(),l=i.getPosition(),c=(0,u.oc)(r,o,e.getRadius(),i.getRadius()),h=t.createLinearGradient(s.x,s.y,l.x,l.y);return h.addColorStop(0,(0,u.vz)(r,n)),h.addColorStop(a>1?1:a,(0,u.iz)(c,n)),h.addColorStop(1,(0,u.vz)(o,n)),h}}(e,i,n,a.links.opacity)}function It(t,e,i){t.canvas.draw((function(n){var a,r=Dt(t,n,e,i);if(r){var o=e.getPosition(),s=i.getPosition();!function(t,e,i,n,a){(0,u.pS)(t,n,a),t.lineWidth=e,t.strokeStyle=i,t.stroke()}(n,null!==(a=e.retina.linksWidth)&&void 0!==a?a:0,r,o,s)}}))}var Et=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t){return(0,o.Z)(this,i),e.call(this,t)}return(0,s.Z)(i,[{key:"clear",value:function(){}},{key:"init",value:function(){var t=this.container,e=t.actualOptions.interactivity.modes.connect;e&&(t.retina.connectModeDistance=e.distance*t.retina.pixelRatio,t.retina.connectModeRadius=e.radius*t.retina.pixelRatio)}},{key:"interact",value:function(){var t=(0,n.Z)(r().mark((function t(){var e,i,n,a,o,s,u,l,c,h,d,v,f,p,m,b,g=this;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=this.container,!e.actualOptions.interactivity.events.onHover.enable||"pointermove"!==e.interactivity.status){t.next=9;break}if(i=e.interactivity.mouse.position,!(!e.retina.connectModeDistance||e.retina.connectModeDistance<0||!e.retina.connectModeRadius||e.retina.connectModeRadius<0)&&i){t.next=5;break}return t.abrupt("return");case 5:n=Math.abs(e.retina.connectModeRadius),a=e.particles.quadTree.queryCircle(i,n,(function(t){return g.isEnabled(t)})),o=0,s=(0,y.Z)(a);try{for(s.s();!(u=s.n()).done;){l=u.value,c=l.getPosition(),h=(0,y.Z)(a.slice(o+1));try{for(h.s();!(d=h.n()).done;)v=d.value,f=v.getPosition(),p=Math.abs(e.retina.connectModeDistance),m=Math.abs(c.x-f.x),b=Math.abs(c.y-f.y),m1?e-1:0),n=1;nl)){t.next=18;break}return t.abrupt("continue",27);case 18:if(m=o.modes.grab.links,b=m.opacity,!((g=b-p*b/l)<=0)){t.next=21;break}return t.abrupt("continue",27);case 21:if(k=null!==(e=m.color)&&void 0!==e?e:null===(i=v.options.links)||void 0===i?void 0:i.color,!n.particles.grabLineColor&&k&&(w=o.modes.grab.links,n.particles.grabLineColor=(0,u.Dt)(k,w.blink,w.consent)),x=(0,u.BE)(v,void 0,n.particles.grabLineColor)){t.next=26;break}return t.abrupt("return");case 26:Wt(n,v,x,g,s);case 27:t.next=13;break;case 29:t.next=34;break;case 31:t.prev=31,t.t0=t.catch(11),h.e(t.t0);case 34:return t.prev=34,h.f(),t.finish(34);case 37:case"end":return t.stop()}}),t,this,[[11,31,34,37]])})));return function(){return t.apply(this,arguments)}}()},{key:"isEnabled",value:function(t){var e,i=this.container,n=i.interactivity.mouse,a=(null!==(e=null===t||void 0===t?void 0:t.interactivity)&&void 0!==e?e:i.actualOptions.interactivity).events;return a.onHover.enable&&!!n.position&&(0,u.dB)("grab",a.onHover.mode)}},{key:"loadModeOptions",value:function(t){t.grab||(t.grab=new qt);for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n1?e-1:0),n=1;n1?e-1:0),n=1;n1?e-1:0),n=1;n1?e-1:0),n=1;n");return"".concat(n.substring(0,r),' fill="').concat(a,'"').concat(n.substring(r))}(t,i,null!==(s=null===(o=a.opacity)||void 0===o?void 0:o.value)&&void 0!==s?s:1),h={color:i,data:Object.assign(Object.assign({},t),{svgData:c}),loaded:!1,ratio:e.width/e.height,replaceColor:null!==(l=e.replaceColor)&&void 0!==l?l:e.replace_color,source:e.src};return new Promise((function(e){var i=new Blob([c],{type:"image/svg+xml"}),a=URL||window.URL||window.webkitURL||window,o=a.createObjectURL(i),s=new Image;s.addEventListener("load",(function(){h.loaded=!0,h.element=s,e(h),a.revokeObjectURL(o)})),s.addEventListener("error",(0,n.Z)(r().mark((function i(){var n;return r().wrap((function(i){for(;;)switch(i.prev=i.next){case 0:return a.revokeObjectURL(o),n=Object.assign(Object.assign({},t),{error:!1,loading:!0}),i.next=4,ce(n);case 4:h.loaded=!0,h.element=n.element,e(h);case 7:case"end":return i.stop()}}),i)})))),s.src=o}))}var pe=function(){function t(){(0,o.Z)(this,t),this._images=[]}return(0,s.Z)(t,[{key:"addImage",value:function(t,e){var i=this.getImages(t);null===i||void 0===i||i.images.push(e)}},{key:"destroy",value:function(){this._images=[]}},{key:"draw",value:function(t,e,i,n){var a,r=e.image,o=null===r||void 0===r?void 0:r.element;if(o){var s=null!==(a=null===r||void 0===r?void 0:r.ratio)&&void 0!==a?a:1,u={x:-i,y:-i};t.globalAlpha=n,t.drawImage(o,u.x,u.y,2*i,2*i/s),t.globalAlpha=1}}},{key:"getImages",value:function(t){var e=this._images.find((function(e){return e.id===t.id}));return e||(this._images.push({id:t.id,images:[]}),this.getImages(t))}},{key:"getSidesCount",value:function(){return 12}},{key:"loadShape",value:function(t){var e=this;if("image"===t.shape||"images"===t.shape){var i=t.container,n=this.getImages(i).images,a=t.shapeData;n.find((function(t){return t.source===a.src}))||this.loadImageShape(i,a).then((function(){e.loadShape(t)}))}}},{key:"particleInit",value:function(t,e){var i,a=this;if("image"===e.shape||"images"===e.shape){var o=this.getImages(t).images,s=e.shapeData,u=e.getFillColor(),l=null!==(i=s.replaceColor)&&void 0!==i?i:s.replace_color,c=o.find((function(t){return t.source===s.src}));c&&(c.loading?setTimeout((function(){a.particleInit(t,e)})):(0,n.Z)(r().mark((function t(){var i,n,a,o,h,d;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!c.svgData||!u){t.next=6;break}return t.next=3,fe(c,s,u,e);case 3:a=t.sent,t.next=7;break;case 6:a={color:u,data:c,element:c.element,loaded:!0,ratio:s.width/s.height,replaceColor:l,source:s.src};case 7:a.ratio||(a.ratio=1),o=null!==(i=s.fill)&&void 0!==i?i:e.fill,h=null!==(n=s.close)&&void 0!==n?n:e.close,d={image:a,fill:o,close:h},e.image=d.image,e.fill=d.fill,e.close=d.close;case 12:case"end":return t.stop()}}),t)})))())}}},{key:"loadImageShape",value:function(){var t=(0,n.Z)(r().mark((function t(e,i){var n,a,o,s;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a=i.src){t.next=3;break}throw new Error("Error tsParticles - No image.src");case 3:return t.prev=3,o={source:a,type:a.substring(a.length-3),error:!1,loading:!0},this.addImage(e,o),s=(null!==(n=i.replaceColor)&&void 0!==n?n:i.replace_color)?de:ce,t.next=9,s(o);case 9:t.next=14;break;case 11:throw t.prev=11,t.t0=t.catch(3),new Error("tsParticles error - ".concat(i.src," not found"));case 14:case"end":return t.stop()}}),t,this,[[3,11]])})));return function(e,i){return t.apply(this,arguments)}}()}]),t}();function ye(t){return me.apply(this,arguments)}function me(){return(me=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addShape(["image","images"],new pe);case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var be=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,o.Z)(this,i),(t=e.call(this)).sync=!1,t}return(0,s.Z)(i,[{key:"load",value:function(t){t&&((0,l.Z)((0,c.Z)(i.prototype),"load",this).call(this,t),void 0!==t.sync&&(this.sync=t.sync))}}]),i}(u.SW),ge=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,o.Z)(this,i),(t=e.call(this)).random.minimumValue=1e-4,t.sync=!1,t}return(0,s.Z)(i,[{key:"load",value:function(t){t&&((0,l.Z)((0,c.Z)(i.prototype),"load",this).call(this,t),void 0!==t.sync&&(this.sync=t.sync))}}]),i}(u.SW),ke=function(){function t(){(0,o.Z)(this,t),this.count=0,this.delay=new be,this.duration=new ge}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.count&&(this.count=t.count),this.delay.load(t.delay),this.duration.load(t.duration))}}]),t}(),we=function(){function t(e){(0,o.Z)(this,t),this.container=e}return(0,s.Z)(t,[{key:"init",value:function(t){var e=this.container,i=t.options.life;i&&(t.life={delay:e.retina.reduceFactor?(0,u.Gu)(i.delay.value)*(i.delay.sync?1:(0,u.sZ)())/e.retina.reduceFactor*1e3:0,delayTime:0,duration:e.retina.reduceFactor?(0,u.Gu)(i.duration.value)*(i.duration.sync?1:(0,u.sZ)())/e.retina.reduceFactor*1e3:0,time:0,count:i.count},t.life.duration<=0&&(t.life.duration=-1),t.life.count<=0&&(t.life.count=-1),t.life&&(t.spawning=t.life.delay>0))}},{key:"isEnabled",value:function(t){return!t.destroyed}},{key:"loadOptions",value:function(t){t.life||(t.life=new ke);for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;n=t.life.delay))return;n=!0,t.spawning=!1,i.delayTime=0,i.time=0}if(-1!==i.duration&&!t.spawning&&(n?i.time=0:i.time+=e.value,!(i.time0&&t.life.count--,0!==t.life.count){var a=this.container.canvas.size,r=(0,u.Cs)(0,a.width),o=(0,u.Cs)(0,a.width);t.position.x=(0,u.vd)(r),t.position.y=(0,u.vd)(o),t.spawning=!0,i.delayTime=0,i.time=0,t.reset();var s=t.options.life;s&&(i.delay=1e3*(0,u.Gu)(s.delay.value),i.duration=1e3*(0,u.Gu)(s.duration.value))}else t.destroy()}}}]),t}();function xe(t){return Ze.apply(this,arguments)}function Ze(){return(Ze=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("life",(function(t){return new we(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var ze=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"draw",value:function(t,e,i){t.moveTo(-i/2,0),t.lineTo(i/2,0)}},{key:"getSidesCount",value:function(){return 1}}]),t}();function _e(t){return Ce.apply(this,arguments)}function Ce(){return(Ce=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addShape("line",new ze);case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Oe=function(){function t(e){(0,o.Z)(this,t),this.container=e}return(0,s.Z)(t,[{key:"init",value:function(t){var e=t.options.opacity;t.opacity={enable:e.animation.enable,max:(0,u.KI)(e.value),min:(0,u.Uv)(e.value),value:(0,u.Gu)(e.value),loops:0,maxLoops:(0,u.Gu)(e.animation.count)};var i=e.animation;if(i.enable){t.opacity.decay=1-(0,u.Gu)(i.decay),t.opacity.status="increasing";var n=e.value;switch(t.opacity.min=(0,u.Uv)(n),t.opacity.max=(0,u.KI)(n),i.startValue){case"min":t.opacity.value=t.opacity.min,t.opacity.status="increasing";break;case"random":t.opacity.value=(0,u.vd)(t.opacity),t.opacity.status=(0,u.sZ)()>=.5?"increasing":"decreasing";break;default:t.opacity.value=t.opacity.max,t.opacity.status="decreasing"}t.opacity.velocity=(0,u.Gu)(i.speed)/100*this.container.retina.reduceFactor,i.sync||(t.opacity.velocity*=(0,u.sZ)())}t.opacity.initialValue=t.opacity.value}},{key:"isEnabled",value:function(t){var e,i,n,a;return!t.destroyed&&!t.spawning&&!!t.opacity&&t.opacity.enable&&((null!==(e=t.opacity.maxLoops)&&void 0!==e?e:0)<=0||(null!==(i=t.opacity.maxLoops)&&void 0!==i?i:0)>0&&(null!==(n=t.opacity.loops)&&void 0!==n?n:0)<(null!==(a=t.opacity.maxLoops)&&void 0!==a?a:0))}},{key:"reset",value:function(t){t.opacity&&(t.opacity.loops=0)}},{key:"update",value:function(t,e){this.isEnabled(t)&&function(t,e){var i,n,a,r,o,s;if(t.opacity){var l=t.opacity.min,c=t.opacity.max,h=null!==(i=t.opacity.decay)&&void 0!==i?i:1;if(!(t.destroyed||!t.opacity.enable||(null!==(n=t.opacity.maxLoops)&&void 0!==n?n:0)>0&&(null!==(a=t.opacity.loops)&&void 0!==a?a:0)>(null!==(r=t.opacity.maxLoops)&&void 0!==r?r:0))){switch(t.opacity.status){case"increasing":t.opacity.value>=c?(t.opacity.status="decreasing",t.opacity.loops||(t.opacity.loops=0),t.opacity.loops++):t.opacity.value+=(null!==(o=t.opacity.velocity)&&void 0!==o?o:0)*e.factor;break;case"decreasing":t.opacity.value<=l?(t.opacity.status="increasing",t.opacity.loops||(t.opacity.loops=0),t.opacity.loops++):t.opacity.value-=(null!==(s=t.opacity.velocity)&&void 0!==s?s:0)*e.factor}t.opacity.velocity&&1!==t.opacity.decay&&(t.opacity.velocity*=h),function(t,e,i,n){switch(t.options.opacity.animation.destroy){case"max":e>=n&&t.destroy();break;case"min":e<=i&&t.destroy()}}(t,t.opacity.value,l,c),t.destroyed||(t.opacity.value=(0,u.uZ)(t.opacity.value,l,c))}}}(t,e)}}]),t}();function Me(t){return Pe.apply(this,arguments)}function Pe(){return(Pe=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("opacity",(function(t){return new Oe(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Se=i(9439);var Re=function(){function t(e){(0,o.Z)(this,t),this.container=e,this.modes=["bounce","bounce-vertical","bounce-horizontal","bounceVertical","bounceHorizontal","split"]}return(0,s.Z)(t,[{key:"update",value:function(t,e,i,n){if(this.modes.includes(n)){var a,r=this.container,o=!1,s=(0,y.Z)(r.plugins);try{for(s.s();!(a=s.n()).done;){var l=(0,Se.Z)(a.value,2)[1];if(void 0!==l.particleBounce&&(o=l.particleBounce(t,i,e)),o)break}}catch(p){s.e(p)}finally{s.f()}if(!o){var c=t.getPosition(),h=t.offset,d=t.getRadius(),v=(0,u.M_)(c,d),f=r.canvas.size;!function(t){if("bounce"===t.outMode||"bounce-horizontal"===t.outMode||"bounceHorizontal"===t.outMode||"split"===t.outMode){t.bounds.right<0?t.particle.position.x=t.size+t.offset.x:t.bounds.left>t.canvasSize.width&&(t.particle.position.x=t.canvasSize.width-t.size-t.offset.x);var e=t.particle.velocity.x,i=!1;if("right"===t.direction&&t.bounds.right>=t.canvasSize.width&&e>0||"left"===t.direction&&t.bounds.left<=0&&e<0){var n=(0,u.NA)(t.particle.options.bounce.horizontal);t.particle.velocity.x*=-n,i=!0}if(i){var a=t.offset.x+t.size;t.bounds.right>=t.canvasSize.width?t.particle.position.x=t.canvasSize.width-a:t.bounds.left<=0&&(t.particle.position.x=a),"split"===t.outMode&&t.particle.destroy()}}}({particle:t,outMode:n,direction:e,bounds:v,canvasSize:f,offset:h,size:d}),function(t){if("bounce"===t.outMode||"bounce-vertical"===t.outMode||"bounceVertical"===t.outMode||"split"===t.outMode){t.bounds.bottom<0?t.particle.position.y=t.size+t.offset.y:t.bounds.top>t.canvasSize.height&&(t.particle.position.y=t.canvasSize.height-t.size-t.offset.y);var e=t.particle.velocity.y,i=!1;if("bottom"===t.direction&&t.bounds.bottom>=t.canvasSize.height&&e>0||"top"===t.direction&&t.bounds.top<=0&&e<0){var n=(0,u.NA)(t.particle.options.bounce.vertical);t.particle.velocity.y*=-n,i=!0}if(i){var a=t.offset.y+t.size;t.bounds.bottom>=t.canvasSize.height?t.particle.position.y=t.canvasSize.height-a:t.bounds.top<=0&&(t.particle.position.y=a),"split"===t.outMode&&t.particle.destroy()}}}({particle:t,outMode:n,direction:e,bounds:v,canvasSize:f,offset:h,size:d})}}}}]),t}(),De=function(){function t(e){(0,o.Z)(this,t),this.container=e,this.modes=["destroy"]}return(0,s.Z)(t,[{key:"update",value:function(t,e,i,n){if(this.modes.includes(n)){var a=this.container;switch(t.outType){case"normal":case"outside":if((0,u.Ac)(t.position,a.canvas.size,u.OW.origin,t.getRadius(),e))return;break;case"inside":var r=(0,u.oW)(t.position,t.moveCenter),o=r.dx,s=r.dy,l=t.velocity,c=l.x,h=l.y;if(c<0&&o>t.moveCenter.radius||h<0&&s>t.moveCenter.radius||c>=0&&o<-t.moveCenter.radius||h>=0&&s<-t.moveCenter.radius)return}a.particles.remove(t,void 0,!0)}}}]),t}(),Ie=function(){function t(e){(0,o.Z)(this,t),this.container=e,this.modes=["none"]}return(0,s.Z)(t,[{key:"update",value:function(t,e,i,n){if(this.modes.includes(n)&&(!t.options.move.distance.horizontal||"left"!==e&&"right"!==e)&&(!t.options.move.distance.vertical||"top"!==e&&"bottom"!==e)){var a=t.options.move.gravity,r=this.container,o=r.canvas.size,s=t.getRadius();if(a.enable){var l=t.position;(!a.inverse&&l.y>o.height+s&&"bottom"===e||a.inverse&&l.y<-s&&"top"===e)&&r.particles.remove(t)}else{if(t.velocity.y>0&&t.position.y<=o.height+s||t.velocity.y<0&&t.position.y>=-s||t.velocity.x>0&&t.position.x<=o.width+s||t.velocity.x<0&&t.position.x>=-s)return;(0,u.Ac)(t.position,r.canvas.size,u.OW.origin,s,e)||r.particles.remove(t)}}}}]),t}(),Ee=function(){function t(e){(0,o.Z)(this,t),this.container=e,this.modes=["out"]}return(0,s.Z)(t,[{key:"update",value:function(t,e,i,n){if(this.modes.includes(n)){var a=this.container;if("inside"===t.outType){var r=t.velocity,o=r.x,s=r.y,l=u.OW.origin;l.length=t.moveCenter.radius,l.angle=t.velocity.angle+Math.PI,l.addTo(u.OW.create(t.moveCenter));var c=(0,u.oW)(t.position,l),h=c.dx,d=c.dy;if(o<=0&&h>=0||s<=0&&d>=0||o>=0&&h<=0||s>=0&&d<=0)return;t.position.x=Math.floor((0,u.vd)({min:0,max:a.canvas.size.width})),t.position.y=Math.floor((0,u.vd)({min:0,max:a.canvas.size.height}));var v=(0,u.oW)(t.position,t.moveCenter),f=v.dx,p=v.dy;t.direction=Math.atan2(-p,-f),t.velocity.angle=t.direction}else{if((0,u.Ac)(t.position,a.canvas.size,u.OW.origin,t.getRadius(),e))return;switch(t.outType){case"outside":t.position.x=Math.floor((0,u.vd)({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.x,t.position.y=Math.floor((0,u.vd)({min:-t.moveCenter.radius,max:t.moveCenter.radius}))+t.moveCenter.y;var y=(0,u.oW)(t.position,t.moveCenter),m=y.dx,b=y.dy;t.moveCenter.radius&&(t.direction=Math.atan2(b,m),t.velocity.angle=t.direction);break;case"normal":var g=t.options.move.warp,k=a.canvas.size,w={bottom:k.height+t.getRadius()+t.offset.y,left:-t.getRadius()-t.offset.x,right:k.width+t.getRadius()+t.offset.x,top:-t.getRadius()-t.offset.y},x=t.getRadius(),Z=(0,u.M_)(t.position,x);"right"===e&&Z.left>k.width+t.offset.x?(t.position.x=w.left,t.initialPosition.x=t.position.x,g||(t.position.y=(0,u.sZ)()*k.height,t.initialPosition.y=t.position.y)):"left"===e&&Z.right<-t.offset.x&&(t.position.x=w.right,t.initialPosition.x=t.position.x,g||(t.position.y=(0,u.sZ)()*k.height,t.initialPosition.y=t.position.y)),"bottom"===e&&Z.top>k.height+t.offset.y?(g||(t.position.x=(0,u.sZ)()*k.width,t.initialPosition.x=t.position.x),t.position.y=w.top,t.initialPosition.y=t.position.y):"top"===e&&Z.bottom<-t.offset.y&&(g||(t.position.x=(0,u.sZ)()*k.width,t.initialPosition.x=t.position.x),t.position.y=w.bottom,t.initialPosition.y=t.position.y)}}}}}]),t}(),Te=function(){function t(e){(0,o.Z)(this,t),this.container=e,this.updaters=[new Re(e),new De(e),new Ee(e),new Ie(e)]}return(0,s.Z)(t,[{key:"init",value:function(){}},{key:"isEnabled",value:function(t){return!t.destroyed&&!t.spawning}},{key:"update",value:function(t,e){var i,n,a,r,o=t.options.move.outModes;this.updateOutMode(t,e,null!==(i=o.bottom)&&void 0!==i?i:o.default,"bottom"),this.updateOutMode(t,e,null!==(n=o.left)&&void 0!==n?n:o.default,"left"),this.updateOutMode(t,e,null!==(a=o.right)&&void 0!==a?a:o.default,"right"),this.updateOutMode(t,e,null!==(r=o.top)&&void 0!==r?r:o.default,"top")}},{key:"updateOutMode",value:function(t,e,i,n){var a,r=(0,y.Z)(this.updaters);try{for(r.s();!(a=r.n()).done;){a.value.update(t,n,e,i)}}catch(o){r.e(o)}finally{r.f()}}}]),t}();function Ae(t){return Le.apply(this,arguments)}function Le(){return(Le=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("outModes",(function(t){return new Te(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var qe=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"init",value:function(){}},{key:"isEnabled",value:function(t){return!(0,u.Kr)()&&!t.destroyed&&t.container.actualOptions.interactivity.events.onHover.parallax.enable}},{key:"move",value:function(t){var e=t.container,i=e.actualOptions;if(!(0,u.Kr)()&&i.interactivity.events.onHover.parallax.enable){var n=i.interactivity.events.onHover.parallax.force,a=e.interactivity.mouse.position;if(a){var r=e.canvas.size.width/2,o=e.canvas.size.height/2,s=i.interactivity.events.onHover.parallax.smooth,l=t.getRadius()/n,c=(a.x-r)*l,h=(a.y-o)*l;t.offset.x+=(c-t.offset.x)/s,t.offset.y+=(h-t.offset.y)/s}}}}]),t}();function We(t){return Be.apply(this,arguments)}function Be(){return(Be=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e.addMover("parallax",(function(){return new qe}));case 1:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Fe=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t){return(0,o.Z)(this,i),e.call(this,t)}return(0,s.Z)(i,[{key:"clear",value:function(){}},{key:"init",value:function(){}},{key:"interact",value:function(){var t=(0,n.Z)(r().mark((function t(e){var i,n,a,o,s,l,c,h,d,v,f,p,m,b,g,k,w;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=this.container,a=null!==(i=e.retina.attractDistance)&&void 0!==i?i:n.retina.attractDistance,o=e.getPosition(),s=n.particles.quadTree.queryCircle(o,a),l=(0,y.Z)(s),t.prev=2,l.s();case 4:if((c=l.n()).done){t.next=15;break}if(h=c.value,e!==h&&h.options.move.attract.enable&&!h.destroyed&&!h.spawning){t.next=8;break}return t.abrupt("continue",13);case 8:d=h.getPosition(),v=(0,u.oW)(o,d),f=v.dx,p=v.dy,m=e.options.move.attract.rotate,b=f/(1e3*m.x),g=p/(1e3*m.y),k=h.size.value/e.size.value,w=1/k,e.velocity.x-=b*k,e.velocity.y-=g*k,h.velocity.x+=b*w,h.velocity.y+=g*w;case 13:t.next=4;break;case 15:t.next=20;break;case 17:t.prev=17,t.t0=t.catch(2),l.e(t.t0);case 20:return t.prev=20,l.f(),t.finish(20);case 23:case"end":return t.stop()}}),t,this,[[2,17,20,23]])})));return function(e){return t.apply(this,arguments)}}()},{key:"isEnabled",value:function(t){return t.options.move.attract.enable}},{key:"reset",value:function(){}}]),i}(u.$S);function He(t){return Ge.apply(this,arguments)}function Ge(){return(Ge=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addInteractor("particlesAttract",(function(t){return new Fe(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function Ve(t,e,i,n,a,r){var o=(0,u.uZ)(t.options.collisions.absorb.speed*a.factor/10,0,n);t.size.value+=o/2,i.size.value-=o,n<=r&&(i.size.value=0,i.destroy())}function Ue(t,e){(0,u.kR)((0,u.gy)(t),(0,u.gy)(e))}function je(t,e,i,n){switch(t.options.collisions.mode){case"absorb":!function(t,e,i,n){var a=t.getRadius(),r=e.getRadius();void 0===a&&void 0!==r?t.destroy():void 0!==a&&void 0===r?e.destroy():void 0!==a&&void 0!==r&&(a>=r?Ve(t,0,e,r,i,n):Ve(e,0,t,a,i,n))}(t,e,i,n);break;case"bounce":Ue(t,e);break;case"destroy":!function(t,e){t.unbreakable||e.unbreakable||Ue(t,e),void 0===t.getRadius()&&void 0!==e.getRadius()?t.destroy():void 0!==t.getRadius()&&void 0===e.getRadius()?e.destroy():void 0!==t.getRadius()&&void 0!==e.getRadius()&&(t.getRadius()>=e.getRadius()?t:e).destroy()}(t,e)}}var Ne=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t){return(0,o.Z)(this,i),e.call(this,t)}return(0,s.Z)(i,[{key:"clear",value:function(){}},{key:"init",value:function(){}},{key:"interact",value:function(){var t=(0,n.Z)(r().mark((function t(e,i){var n,a,o,s,l,c,h,d,v;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=this.container,a=e.getPosition(),o=e.getRadius(),s=n.particles.quadTree.queryCircle(a,2*o),l=(0,y.Z)(s),t.prev=2,l.s();case 4:if((c=l.n()).done){t.next=17;break}if(h=c.value,e!==h&&h.options.collisions.enable&&e.options.collisions.mode===h.options.collisions.mode&&!h.destroyed&&!h.spawning){t.next=8;break}return t.abrupt("continue",15);case 8:if(d=h.getPosition(),v=h.getRadius(),!(Math.abs(Math.round(a.z)-Math.round(d.z))>o+v)){t.next=11;break}return t.abrupt("continue",15);case 11:if(!((0,u.Sp)(a,d)>o+v)){t.next=14;break}return t.abrupt("continue",15);case 14:je(e,h,i,n.retina.pixelRatio);case 15:t.next=4;break;case 17:t.next=22;break;case 19:t.prev=19,t.t0=t.catch(2),l.e(t.t0);case 22:return t.prev=22,l.f(),t.finish(22);case 25:case"end":return t.stop()}}),t,this,[[2,19,22,25]])})));return function(e,i){return t.apply(this,arguments)}}()},{key:"isEnabled",value:function(t){return t.options.collisions.enable}},{key:"reset",value:function(){}}]),i}(u.$S);function Ke(t){return Xe.apply(this,arguments)}function Xe(){return(Xe=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addInteractor("particlesCollisions",(function(t){return new Ne(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Ye=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t,n,a,r){var s;return(0,o.Z)(this,i),(s=e.call(this,t,n,a)).canvasSize=r,s.canvasSize=Object.assign({},r),s}return(0,s.Z)(i,[{key:"contains",value:function(t){if((0,l.Z)((0,c.Z)(i.prototype),"contains",this).call(this,t))return!0;var e={x:t.x-this.canvasSize.width,y:t.y};if((0,l.Z)((0,c.Z)(i.prototype),"contains",this).call(this,e))return!0;var n={x:t.x-this.canvasSize.width,y:t.y-this.canvasSize.height};if((0,l.Z)((0,c.Z)(i.prototype),"contains",this).call(this,n))return!0;var a={x:t.x,y:t.y-this.canvasSize.height};return(0,l.Z)((0,c.Z)(i.prototype),"contains",this).call(this,a)}},{key:"intersects",value:function(t){if((0,l.Z)((0,c.Z)(i.prototype),"intersects",this).call(this,t))return!0;var e=t,n=t,a={x:t.position.x-this.canvasSize.width,y:t.position.y-this.canvasSize.height};if(void 0!==n.radius){var r=new u.Cd(a.x,a.y,2*n.radius);return(0,l.Z)((0,c.Z)(i.prototype),"intersects",this).call(this,r)}if(void 0!==e.size){var o=new u.Ae(a.x,a.y,2*e.size.width,2*e.size.height);return(0,l.Z)((0,c.Z)(i.prototype),"intersects",this).call(this,o)}return!1}}]),i}(u.Cd),Je=function(){function t(){(0,o.Z)(this,t),this.blur=5,this.color=new u.Oz,this.color.value="#000",this.enable=!1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.blur&&(this.blur=t.blur),this.color=u.Oz.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable))}}]),t}(),$e=function(){function t(){(0,o.Z)(this,t),this.enable=!1,this.frequency=1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.color&&(this.color=u.Oz.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity))}}]),t}(),Qe=function(){function t(){(0,o.Z)(this,t),this.blink=!1,this.color=new u.Oz,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new Je,this.triangles=new $e,this.width=1,this.warp=!1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.id&&(this.id=t.id),void 0!==t.blink&&(this.blink=t.blink),this.color=u.Oz.create(this.color,t.color),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.distance&&(this.distance=t.distance),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity),this.shadow.load(t.shadow),this.triangles.load(t.triangles),void 0!==t.width&&(this.width=t.width),void 0!==t.warp&&(this.warp=t.warp))}}]),t}();function ti(t,e,i,n,a){var r=(0,u.Sp)(t,e);if(!a||r<=i)return r;var o={x:e.x-n.width,y:e.y};if((r=(0,u.Sp)(t,o))<=i)return r;var s={x:e.x-n.width,y:e.y-n.height};if((r=(0,u.Sp)(t,s))<=i)return r;var l={x:e.x,y:e.y-n.height};return r=(0,u.Sp)(t,l)}var ei=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(t){var n;return(0,o.Z)(this,i),(n=e.call(this,t)).linkContainer=t,n}return(0,s.Z)(i,[{key:"clear",value:function(){}},{key:"init",value:function(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}},{key:"interact",value:function(){var t=(0,n.Z)(r().mark((function t(e){var i,n,a,o,s,l,c,h,d,v,f,p,m,b,g,k,w;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.options.links){t.next=2;break}return t.abrupt("return");case 2:if(e.links=[],n=e.getPosition(),a=this.container,o=a.canvas.size,!(n.x<0||n.y<0||n.x>o.width||n.y>o.height)){t.next=6;break}return t.abrupt("return");case 6:s=e.options.links,l=s.opacity,c=null!==(i=e.retina.linksDistance)&&void 0!==i?i:0,h=s.warp,d=h?new Ye(n.x,n.y,c,o):new u.Cd(n.x,n.y,c),v=a.particles.quadTree.query(d),f=(0,y.Z)(v),t.prev=8,f.s();case 10:if((p=f.n()).done){t.next=26;break}if(m=p.value,b=m.options.links,e!==m&&(null===b||void 0===b?void 0:b.enable)&&s.id===b.id&&!m.spawning&&!m.destroyed&&m.links&&-1===e.links.map((function(t){return t.destination})).indexOf(m)&&-1===m.links.map((function(t){return t.destination})).indexOf(e)){t.next=15;break}return t.abrupt("continue",24);case 15:if(!((g=m.getPosition()).x<0||g.y<0||g.x>o.width||g.y>o.height)){t.next=18;break}return t.abrupt("continue",24);case 18:if(!((k=ti(n,g,c,o,h&&b.warp))>c)){t.next=21;break}return t.abrupt("return");case 21:w=(1-k/c)*l,this.setColor(e),e.links.push({destination:m,opacity:w});case 24:t.next=10;break;case 26:t.next=31;break;case 28:t.prev=28,t.t0=t.catch(8),f.e(t.t0);case 31:return t.prev=31,f.f(),t.finish(31);case 34:case"end":return t.stop()}}),t,this,[[8,28,31,34]])})));return function(e){return t.apply(this,arguments)}}()},{key:"isEnabled",value:function(t){var e;return!!(null===(e=t.options.links)||void 0===e?void 0:e.enable)}},{key:"loadParticlesOptions",value:function(t){var e,i;t.links||(t.links=new Qe);for(var n=arguments.length,a=new Array(n>1?n-1:0),r=1;r0&&(null!==(i=e.retina.linksWidth)&&void 0!==i?i:0)>0&&this.drawLinkLine(e,u)}}catch(l){s.e(l)}finally{s.f()}}}},{key:"init",value:function(){var t=(0,n.Z)(r().mark((function t(){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:this._freqs.links=new Map,this._freqs.triangles=new Map;case 2:case"end":return t.stop()}}),t,this)})));return function(){return t.apply(this,arguments)}}()},{key:"particleCreated",value:function(t){if(t.links=[],t.options.links){var e=this.container.retina.pixelRatio;t.retina.linksDistance=t.options.links.distance*e,t.retina.linksWidth=t.options.links.width*e}}},{key:"particleDestroyed",value:function(t){t.links=[]}},{key:"drawLinkLine",value:function(t,e){var i=this.container,n=i.actualOptions,a=e.destination,r=t.getPosition(),o=a.getPosition(),s=e.opacity;i.canvas.draw((function(e){var l,c,h;if(t.options.links){var d,v=null===(l=t.options.twinkle)||void 0===l?void 0:l.lines;if(null===v||void 0===v?void 0:v.enable){var f=v.frequency,p=(0,u.tX)(v.color);(0,u.sZ)()v||(0,u.Sp)(d,h)>v||(0,u.Sp)(d,n)>v)){var f=(0,u.tX)(l.color);if(!f){var p=t.options.links,y=void 0!==(null===p||void 0===p?void 0:p.id)?a.particles.linksColors.get(p.id):a.particles.linksColor;f=(0,u.BE)(t,o,y)}f&&function(t,e,i,n,a,r,o,s){(0,u.Wd)(t,e,i,n),a&&(t.globalCompositeOperation=r),t.fillStyle=(0,u.iz)(o,s),t.fill()}(e,n,h,d,r.backgroundMask.enable,r.backgroundMask.composite,f,c)}}))}}},{key:"drawTriangles",value:function(t,e,i,n){var a,r,o,s=this,u=i.destination;if((null===(a=t.links)||void 0===a?void 0:a.triangles.enable)&&(null===(r=u.options.links)||void 0===r?void 0:r.triangles.enable)){var l=null===(o=u.links)||void 0===o?void 0:o.filter((function(t){var e=s.getLinkFrequency(u,t.destination);return u.options.links&&e<=u.options.links.frequency&&n.findIndex((function(e){return e.destination===t.destination}))>=0}));if(null===l||void 0===l?void 0:l.length){var c,h=(0,y.Z)(l);try{for(h.s();!(c=h.n()).done;){var d=c.value,v=d.destination;this.getTriangleFrequency(e,u,v)>t.links.triangles.frequency||this.drawLinkTriangle(e,i,d)}}catch(f){h.e(f)}finally{h.f()}}}}},{key:"getLinkFrequency",value:function(t,e){return ai([t,e],this._freqs.links)}},{key:"getTriangleFrequency",value:function(t,e,i){return ai([t,e,i],this._freqs.triangles)}}]),t}(),oi=function(){function t(){(0,o.Z)(this,t),this.id="links"}return(0,s.Z)(t,[{key:"getPlugin",value:function(t){return new ri(t)}},{key:"loadOptions",value:function(){}},{key:"needsPlugin",value:function(){return!0}}]),t}();function si(t){return ui.apply(this,arguments)}function ui(){return(ui=(0,n.Z)(r().mark((function t(e){var i;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new oi,t.next=3,e.addPlugin(i);case 3:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function li(t){return ci.apply(this,arguments)}function ci(){return(ci=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,ii(e);case 2:return t.next=4,si(e);case 4:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var hi=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"draw",value:function(t,e,i){var n=this.getCenter(e,i),a=this.getSidesData(e,i),r=a.count.numerator*a.count.denominator,o=a.count.numerator/a.count.denominator,s=180*(o-2)/o,u=Math.PI-Math.PI*s/180;if(t){t.beginPath(),t.translate(n.x,n.y),t.moveTo(0,0);for(var l=0;l0&&(null!==(n=t.size.loops)&&void 0!==n?n:0)<(null!==(a=t.size.maxLoops)&&void 0!==a?a:0))}},{key:"reset",value:function(t){t.size.loops=0}},{key:"update",value:function(t,e){this.isEnabled(t)&&function(t,e){var i,n,a,r,o,s=(null!==(i=t.size.velocity)&&void 0!==i?i:0)*e.factor,l=t.size.min,c=t.size.max,h=null!==(n=t.size.decay)&&void 0!==n?n:1;if(!(t.destroyed||!t.size.enable||(null!==(a=t.size.maxLoops)&&void 0!==a?a:0)>0&&(null!==(r=t.size.loops)&&void 0!==r?r:0)>(null!==(o=t.size.maxLoops)&&void 0!==o?o:0))){switch(t.size.status){case"increasing":t.size.value>=c?(t.size.status="decreasing",t.size.loops||(t.size.loops=0),t.size.loops++):t.size.value+=s;break;case"decreasing":t.size.value<=l?(t.size.status="increasing",t.size.loops||(t.size.loops=0),t.size.loops++):t.size.value-=s}t.size.velocity&&1!==h&&(t.size.velocity*=h),function(t,e,i,n){switch(t.options.size.animation.destroy){case"max":e>=n&&t.destroy();break;case"min":e<=i&&t.destroy()}}(t,t.size.value,l,c),t.destroyed||(t.size.value=(0,u.uZ)(t.size.value,l,c))}}(t,e)}}]),t}();function wi(t){return xi.apply(this,arguments)}function xi(){return(xi=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("size",(function(){return new ki}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Zi=Math.sqrt(2),zi=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"draw",value:function(t,e,i){t.rect(-i/Zi,-i/Zi,2*i/Zi,2*i/Zi)}},{key:"getSidesCount",value:function(){return 4}}]),t}();function _i(t){return Ci.apply(this,arguments)}function Ci(){return(Ci=(0,n.Z)(r().mark((function t(e){var i;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=new zi,t.next=3,e.addShape(["edge","square"],i);case 3:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Oi=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"draw",value:function(t,e,i){var n,a=e.sides,r=null!==(n=e.starInset)&&void 0!==n?n:2;t.moveTo(0,0-i);for(var o=0;o0&&s.loops>=s.maxLoops)){var l=(0,u.vd)(i.offset),c=(null!==(r=e.velocity)&&void 0!==r?r:0)*t.factor+3.6*l,h=null!==(o=e.decay)&&void 0!==o?o:1;a&&"increasing"!==s.status?(s.value-=c,s.value<0&&(s.loops||(s.loops=0),s.loops++,s.status="increasing",s.value+=s.value)):(s.value+=c,s.value>n&&(s.loops||(s.loops=0),s.loops++,a&&(s.status="decreasing",s.value-=s.value%n))),s.velocity&&1!==h&&(s.velocity*=h),s.value>n&&(s.value%=n)}}var Ri=function(){function t(e){(0,o.Z)(this,t),this.container=e}return(0,s.Z)(t,[{key:"init",value:function(t){var e,i,n,a=this.container,r=(0,u.wA)(t.options.stroke,t.id,t.options.reduceDuplicates);t.strokeWidth=(0,u.Gu)(r.width)*a.retina.pixelRatio,t.strokeOpacity=(0,u.Gu)(null!==(e=r.opacity)&&void 0!==e?e:1),t.strokeAnimation=null===(i=r.color)||void 0===i?void 0:i.animation;var o=null!==(n=(0,u.lN)(r.color))&&void 0!==n?n:t.getFillColor();o&&(t.strokeColor=(0,u.bS)(o,t.strokeAnimation,a.retina.reduceFactor))}},{key:"isEnabled",value:function(t){var e,i,n,a=t.strokeAnimation;return!t.destroyed&&!t.spawning&&!!a&&(void 0!==(null===(e=t.strokeColor)||void 0===e?void 0:e.h.value)&&t.strokeColor.h.enable||void 0!==(null===(i=t.strokeColor)||void 0===i?void 0:i.s.value)&&t.strokeColor.s.enable||void 0!==(null===(n=t.strokeColor)||void 0===n?void 0:n.l.value)&&t.strokeColor.l.enable)}},{key:"update",value:function(t,e){this.isEnabled(t)&&function(t,e){if(t.strokeColor&&t.strokeAnimation){var i=t.strokeColor.h;i&&Si(e,i,t.strokeAnimation.h,360,!1);var n=t.strokeColor.s;n&&Si(e,n,t.strokeAnimation.s,100,!0);var a=t.strokeColor.l;a&&Si(e,a,t.strokeAnimation.l,100,!0)}}(t,e)}}]),t}();function Di(t){return Ii.apply(this,arguments)}function Ii(){return(Ii=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("strokeColor",(function(t){return new Ri(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Ei=["text","character","char"],Ti=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"draw",value:function(t,e,i,n){var a,r,o,s=e.shapeData;if(void 0!==s){var l=s.value;if(void 0!==l){var c=e;void 0===c.text&&(c.text=(0,u.wA)(l,e.randomIndexData));var h=c.text,d=null!==(a=s.style)&&void 0!==a?a:"",v=null!==(r=s.weight)&&void 0!==r?r:"400",f=2*Math.round(i),p=null!==(o=s.font)&&void 0!==o?o:"Verdana",y=e.fill,m=h.length*i/2;t.font="".concat(d," ").concat(v," ").concat(f,'px "').concat(p,'"');var b={x:-m,y:i/2};t.globalAlpha=n,y?t.fillText(h,b.x,b.y):t.strokeText(h,b.x,b.y),t.globalAlpha=1}}}},{key:"getSidesCount",value:function(){return 12}},{key:"init",value:function(){var t=(0,n.Z)(r().mark((function t(e){var i,n,a;return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(i=e.actualOptions,!Ei.find((function(t){return(0,u.dB)(t,i.particles.shape.type)}))){t.next=6;break}return n=Ei.map((function(t){return i.particles.shape.options[t]})).find((function(t){return!!t})),a=[],(0,u.KH)(n,(function(t){a.push((0,u.mx)(t.font,t.weight))})),t.next=6,Promise.all(a);case 6:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()}]),t}();function Ai(t){return Li.apply(this,arguments)}function Li(){return(Li=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addShape(Ei,new Ti);case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function qi(t){return Wi.apply(this,arguments)}function Wi(){return(Wi=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,ot(e);case 2:return t.next=4,We(e);case 4:return t.next=6,mt(e);case 6:return t.next=8,wt(e);case 8:return t.next=10,Mt(e);case 10:return t.next=12,Tt(e);case 12:return t.next=14,Ft(e);case 14:return t.next=16,Vt(e);case 16:return t.next=18,Kt(e);case 18:return t.next=20,$t(e);case 20:return t.next=22,ne(e);case 22:return t.next=24,se(e);case 24:return t.next=26,He(e);case 26:return t.next=28,Ke(e);case 28:return t.next=30,li(e);case 30:return t.next=32,lt(e);case 32:return t.next=34,ye(e);case 34:return t.next=36,_e(e);case 36:return t.next=38,bi(e);case 38:return t.next=40,_i(e);case 40:return t.next=42,Mi(e);case 42:return t.next=44,Ai(e);case 44:return t.next=46,xe(e);case 46:return t.next=48,Me(e);case 48:return t.next=50,wi(e);case 50:return t.next=52,nt(e);case 52:return t.next=54,vt(e);case 54:return t.next=56,Di(e);case 56:return t.next=58,Ae(e);case 58:return t.next=60,Q(e);case 60:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Bi=function(){function t(){(0,o.Z)(this,t),this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=(0,u.Cs)(t.speed)),void 0!==t.decay&&(this.decay=(0,u.Cs)(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}]),t}(),Fi=function(t){(0,h.Z)(i,t);var e=(0,d.Z)(i);function i(){var t;return(0,o.Z)(this,i),(t=e.call(this)).animation=new Bi,t.direction="clockwise",t.enable=!1,t.value=0,t}return(0,s.Z)(i,[{key:"load",value:function(t){(0,l.Z)((0,c.Z)(i.prototype),"load",this).call(this,t),t&&(this.animation.load(t.animation),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.enable&&(this.enable=t.enable))}}]),i}(u.SW);var Hi=function(){function t(e){(0,o.Z)(this,t),this.container=e}return(0,s.Z)(t,[{key:"getTransformValues",value:function(t){var e,i=(null===(e=t.tilt)||void 0===e?void 0:e.enable)&&t.tilt;return{b:i?Math.cos(i.value)*i.cosDirection:void 0,c:i?Math.sin(i.value)*i.sinDirection:void 0}}},{key:"init",value:function(t){var e,i=t.options.tilt;if(i){t.tilt={enable:i.enable,value:(0,u.Gu)(i.value)*Math.PI/180,sinDirection:(0,u.sZ)()>=.5?1:-1,cosDirection:(0,u.sZ)()>=.5?1:-1};var n=i.direction;if("random"===n)n=Math.floor(2*(0,u.sZ)())>0?"counter-clockwise":"clockwise";switch(n){case"counter-clockwise":case"counterClockwise":t.tilt.status="decreasing";break;case"clockwise":t.tilt.status="increasing"}var a=null===(e=t.options.tilt)||void 0===e?void 0:e.animation;(null===a||void 0===a?void 0:a.enable)&&(t.tilt.decay=1-(0,u.Gu)(a.decay),t.tilt.velocity=(0,u.Gu)(a.speed)/360*this.container.retina.reduceFactor,a.sync||(t.tilt.velocity*=(0,u.sZ)()))}}},{key:"isEnabled",value:function(t){var e,i=null===(e=t.options.tilt)||void 0===e?void 0:e.animation;return!t.destroyed&&!t.spawning&&!!(null===i||void 0===i?void 0:i.enable)}},{key:"loadOptions",value:function(t){t.tilt||(t.tilt=new Fi);for(var e=arguments.length,i=new Array(e>1?e-1:0),n=1;no&&(t.tilt.value-=o)):(t.tilt.value-=r,t.tilt.value<0&&(t.tilt.value+=o)),t.tilt.velocity&&1!==s&&(t.tilt.velocity*=s))}}(t,e)}}]),t}();function Gi(t){return Vi.apply(this,arguments)}function Vi(){return(Vi=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("tilt",(function(t){return new Hi(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}var Ui=function(){function t(){(0,o.Z)(this,t),this.enable=!1,this.frequency=.05,this.opacity=1}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(void 0!==t.color&&(this.color=u.Oz.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=(0,u.Cs)(t.opacity)))}}]),t}(),ji=function(){function t(){(0,o.Z)(this,t),this.lines=new Ui,this.particles=new Ui}return(0,s.Z)(t,[{key:"load",value:function(t){t&&(this.lines.load(t.lines),this.particles.load(t.particles))}}]),t}(),Ni=function(){function t(){(0,o.Z)(this,t)}return(0,s.Z)(t,[{key:"getColorStyles",value:function(t,e,i,n){var a=t.options.twinkle;if(!a)return{};var r=a.particles,o=r.enable&&(0,u.sZ)()1?e-1:0),n=1;n1?e-1:0),n=1;no&&(t.wobble.angle-=o),t.position.x+=r*Math.cos(t.wobble.angle),t.position.y+=r*Math.abs(Math.sin(t.wobble.angle))}}(t,e)}}]),t}();function Qi(t){return tn.apply(this,arguments)}function tn(){return(tn=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.addParticleUpdater("wobble",(function(t){return new $i(t)}));case 2:case"end":return t.stop()}}),t)})))).apply(this,arguments)}function en(t){return nn.apply(this,arguments)}function nn(){return(nn=(0,n.Z)(r().mark((function t(e){return r().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,qi(e);case 2:return t.next=4,M(e);case 4:return t.next=6,J(e);case 6:return t.next=8,Gi(e);case 8:return t.next=10,Ki(e);case 10:return t.next=12,Qi(e);case 12:return t.next=14,j(e);case 14:return t.next=16,k(e);case 16:return t.next=18,H(e);case 18:case"end":return t.stop()}}),t)})))).apply(this,arguments)}},1752:function(t,e,i){i.d(e,{Z:function(){return r}});var n=i(1120);function a(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=(0,n.Z)(t)););return t}function r(){return r="undefined"!==typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,i){var n=a(t,e);if(n){var r=Object.getOwnPropertyDescriptor(n,e);return r.get?r.get.call(arguments.length<3?t:i):r.value}},r.apply(this,arguments)}}}]); +//# sourceMappingURL=6.7e78ad05.chunk.js.map \ No newline at end of file diff --git a/static/js/6.7e78ad05.chunk.js.map b/static/js/6.7e78ad05.chunk.js.map new file mode 100644 index 0000000..96ec0e6 --- /dev/null +++ b/static/js/6.7e78ad05.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6.7e78ad05.chunk.js","mappings":"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","sources":["../node_modules/fast-deep-equal/react.js","../node_modules/react-particles/esm/Particles.js","../node_modules/react-particles/esm/index.js","../node_modules/tsparticles-engine/esm/Utils/EventDispatcher.js","../node_modules/tsparticles-engine/esm/Core/Utils/Vector3d.js","../node_modules/tsparticles-engine/esm/Core/Utils/Vector.js","../node_modules/tsparticles-engine/esm/Utils/NumberUtils.js","../node_modules/tsparticles-engine/esm/Utils/Utils.js","../node_modules/tsparticles-engine/esm/Utils/ColorUtils.js","../node_modules/tsparticles-engine/esm/Utils/CanvasUtils.js","../node_modules/tsparticles-engine/esm/Core/Utils/Constants.js","../node_modules/tsparticles-engine/esm/Core/Canvas.js","../node_modules/tsparticles-engine/esm/Core/Utils/EventListeners.js","../node_modules/tsparticles-engine/esm/Core/Utils/FrameManager.js","../node_modules/tsparticles-engine/esm/Options/Classes/OptionsColor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Background/Background.js","../node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMaskCover.js","../node_modules/tsparticles-engine/esm/Options/Classes/BackgroundMask/BackgroundMask.js","../node_modules/tsparticles-engine/esm/Options/Classes/FullScreen/FullScreen.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/ClickEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/DivEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Parallax.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/HoverEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/ResizeEvent.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Events/Events.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Modes/Modes.js","../node_modules/tsparticles-engine/esm/Options/Classes/Interactivity/Interactivity.js","../node_modules/tsparticles-engine/esm/Options/Classes/ManualParticle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Responsive.js","../node_modules/tsparticles-engine/esm/Options/Classes/Theme/ThemeDefault.js","../node_modules/tsparticles-engine/esm/Options/Classes/Theme/Theme.js","../node_modules/tsparticles-engine/esm/Options/Classes/ColorAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/HslAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/AnimatableColor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/CollisionsAbsorb.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/CollisionsOverlap.js","../node_modules/tsparticles-engine/esm/Options/Classes/Random.js","../node_modules/tsparticles-engine/esm/Options/Classes/ValueWithRandom.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Bounce/ParticlesBounce.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Collisions/Collisions.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAngle.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveAttract.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveCenter.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveGravity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Path/MovePath.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveTrailFill.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/MoveTrail.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/OutModes.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Spin.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Move/Move.js","../node_modules/tsparticles-engine/esm/Options/Classes/AnimationOptions.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/OpacityAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Opacity/Opacity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesDensity.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Number/ParticlesNumber.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shadow.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Shape/Shape.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/SizeAnimation.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Size/Size.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/Stroke.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/ZIndex/ZIndex.js","../node_modules/tsparticles-engine/esm/Options/Classes/Particles/ParticlesOptions.js","../node_modules/tsparticles-engine/esm/Utils/OptionsUtils.js","../node_modules/tsparticles-engine/esm/Options/Classes/Options.js","../node_modules/tsparticles-engine/esm/Core/Utils/InteractionManager.js","../node_modules/tsparticles-engine/esm/Core/Particle.js","../node_modules/tsparticles-engine/esm/Core/Utils/Point.js","../node_modules/tsparticles-engine/esm/Core/Utils/Range.js","../node_modules/tsparticles-engine/esm/Core/Utils/Circle.js","../node_modules/tsparticles-engine/esm/Core/Utils/Rectangle.js","../node_modules/tsparticles-engine/esm/Core/Utils/QuadTree.js","../node_modules/tsparticles-engine/esm/Core/Particles.js","../node_modules/tsparticles-engine/esm/Core/Retina.js","../node_modules/tsparticles-engine/esm/Core/Container.js","../node_modules/tsparticles-engine/esm/Core/Loader.js","../node_modules/tsparticles-engine/esm/Core/Utils/Plugins.js","../node_modules/tsparticles-engine/esm/engine.js","../node_modules/tsparticles-engine/esm/Utils/HslColorManager.js","../node_modules/tsparticles-engine/esm/Utils/RgbColorManager.js","../node_modules/tsparticles-engine/esm/Core/Utils/ExternalInteractorBase.js","../node_modules/tsparticles-engine/esm/Core/Utils/ParticlesInteractorBase.js","../node_modules/tsparticles-engine/esm/index.js","../node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/AbsorberSizeLimit.js","../node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/AbsorberSize.js","../node_modules/tsparticles-plugin-absorbers/esm/Options/Classes/Absorber.js","../node_modules/tsparticles-plugin-absorbers/esm/AbsorberInstance.js","../node_modules/tsparticles-plugin-absorbers/esm/Absorbers.js","../node_modules/tsparticles-plugin-absorbers/esm/index.js","../node_modules/tsparticles-updater-destroy/esm/Options/Classes/DestroyBounds.js","../node_modules/tsparticles-updater-destroy/esm/Options/Classes/SplitFactor.js","../node_modules/tsparticles-updater-destroy/esm/Options/Classes/SplitRate.js","../node_modules/tsparticles-updater-destroy/esm/Options/Classes/Split.js","../node_modules/tsparticles-updater-destroy/esm/Options/Classes/Destroy.js","../node_modules/tsparticles-updater-destroy/esm/DestroyUpdater.js","../node_modules/tsparticles-updater-destroy/esm/index.js","../node_modules/tsparticles-plugin-emitters/esm/Shapes/Circle/CircleShape.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterLife.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterRate.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/EmitterSize.js","../node_modules/tsparticles-plugin-emitters/esm/Options/Classes/Emitter.js","../node_modules/tsparticles-plugin-emitters/esm/EmitterInstance.js","../node_modules/tsparticles-plugin-emitters/esm/Emitters.js","../node_modules/tsparticles-plugin-emitters/esm/ShapeManager.js","../node_modules/tsparticles-plugin-emitters/esm/Shapes/Square/SquareShape.js","../node_modules/tsparticles-plugin-emitters/esm/index.js","../node_modules/tsparticles-interaction-external-trail/esm/Options/Classes/Trail.js","../node_modules/tsparticles-interaction-external-trail/esm/TrailMaker.js","../node_modules/tsparticles-interaction-external-trail/esm/index.js","../node_modules/tsparticles-updater-roll/esm/Options/Classes/RollLight.js","../node_modules/tsparticles-updater-roll/esm/Options/Classes/Roll.js","../node_modules/tsparticles-updater-roll/esm/RollUpdater.js","../node_modules/tsparticles-updater-roll/esm/index.js","../node_modules/tsparticles-particles.js/esm/index.js","../node_modules/tsparticles-updater-angle/esm/Options/Classes/RotateAnimation.js","../node_modules/tsparticles-updater-angle/esm/Options/Classes/Rotate.js","../node_modules/tsparticles-updater-angle/esm/RotateUpdater.js","../node_modules/tsparticles-updater-angle/esm/index.js","../node_modules/tsparticles-move-base/esm/BaseMover.js","../node_modules/tsparticles-move-base/esm/Utils.js","../node_modules/tsparticles-move-base/esm/index.js","../node_modules/tsparticles-shape-circle/esm/CircleDrawer.js","../node_modules/tsparticles-shape-circle/esm/index.js","../node_modules/tsparticles-updater-color/esm/ColorUpdater.js","../node_modules/tsparticles-updater-color/esm/index.js","../node_modules/tsparticles-interaction-external-attract/esm/Options/Classes/Attract.js","../node_modules/tsparticles-interaction-external-attract/esm/Attractor.js","../node_modules/tsparticles-interaction-external-attract/esm/index.js","../node_modules/tsparticles-interaction-external-bounce/esm/Options/Classes/Bounce.js","../node_modules/tsparticles-interaction-external-bounce/esm/Bouncer.js","../node_modules/tsparticles-interaction-external-bounce/esm/index.js","../node_modules/tsparticles-interaction-external-bubble/esm/Options/Classes/BubbleBase.js","../node_modules/tsparticles-interaction-external-bubble/esm/Options/Classes/BubbleDiv.js","../node_modules/tsparticles-interaction-external-bubble/esm/Options/Classes/Bubble.js","../node_modules/tsparticles-interaction-external-bubble/esm/Bubbler.js","../node_modules/tsparticles-interaction-external-bubble/esm/index.js","../node_modules/tsparticles-interaction-external-connect/esm/Options/Classes/ConnectLinks.js","../node_modules/tsparticles-interaction-external-connect/esm/Options/Classes/Connect.js","../node_modules/tsparticles-interaction-external-connect/esm/Connector.js","../node_modules/tsparticles-interaction-external-connect/esm/index.js","../node_modules/tsparticles-interaction-external-grab/esm/Options/Classes/GrabLinks.js","../node_modules/tsparticles-interaction-external-grab/esm/Options/Classes/Grab.js","../node_modules/tsparticles-interaction-external-grab/esm/Grabber.js","../node_modules/tsparticles-interaction-external-grab/esm/index.js","../node_modules/tsparticles-interaction-external-pause/esm/Pauser.js","../node_modules/tsparticles-interaction-external-pause/esm/index.js","../node_modules/tsparticles-interaction-external-push/esm/Options/Classes/Push.js","../node_modules/tsparticles-interaction-external-push/esm/Pusher.js","../node_modules/tsparticles-interaction-external-push/esm/index.js","../node_modules/tsparticles-interaction-external-remove/esm/Options/Classes/Remove.js","../node_modules/tsparticles-interaction-external-remove/esm/Remover.js","../node_modules/tsparticles-interaction-external-remove/esm/index.js","../node_modules/tsparticles-interaction-external-repulse/esm/Options/Classes/RepulseBase.js","../node_modules/tsparticles-interaction-external-repulse/esm/Options/Classes/RepulseDiv.js","../node_modules/tsparticles-interaction-external-repulse/esm/Options/Classes/Repulse.js","../node_modules/tsparticles-interaction-external-repulse/esm/Repulser.js","../node_modules/tsparticles-interaction-external-repulse/esm/index.js","../node_modules/tsparticles-interaction-external-slow/esm/Options/Classes/Slow.js","../node_modules/tsparticles-interaction-external-slow/esm/Slower.js","../node_modules/tsparticles-interaction-external-slow/esm/index.js","../node_modules/tsparticles-shape-image/esm/Utils.js","../node_modules/tsparticles-shape-image/esm/ImageDrawer.js","../node_modules/tsparticles-shape-image/esm/index.js","../node_modules/tsparticles-updater-life/esm/Options/Classes/LifeDelay.js","../node_modules/tsparticles-updater-life/esm/Options/Classes/LifeDuration.js","../node_modules/tsparticles-updater-life/esm/Options/Classes/Life.js","../node_modules/tsparticles-updater-life/esm/LifeUpdater.js","../node_modules/tsparticles-updater-life/esm/index.js","../node_modules/tsparticles-shape-line/esm/LineDrawer.js","../node_modules/tsparticles-shape-line/esm/index.js","../node_modules/tsparticles-updater-opacity/esm/OpacityUpdater.js","../node_modules/tsparticles-updater-opacity/esm/index.js","../node_modules/tsparticles-updater-out-modes/esm/BounceOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/Utils.js","../node_modules/tsparticles-updater-out-modes/esm/DestroyOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/NoneOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/OutOutMode.js","../node_modules/tsparticles-updater-out-modes/esm/OutOfCanvasUpdater.js","../node_modules/tsparticles-updater-out-modes/esm/index.js","../node_modules/tsparticles-move-parallax/esm/ParallaxMover.js","../node_modules/tsparticles-move-parallax/esm/index.js","../node_modules/tsparticles-interaction-particles-attract/esm/Attractor.js","../node_modules/tsparticles-interaction-particles-attract/esm/index.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Absorb.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Bounce.js","../node_modules/tsparticles-interaction-particles-collisions/esm/ResolveCollision.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Destroy.js","../node_modules/tsparticles-interaction-particles-collisions/esm/Collider.js","../node_modules/tsparticles-interaction-particles-collisions/esm/index.js","../node_modules/tsparticles-interaction-particles-links/esm/CircleWarp.js","../node_modules/tsparticles-interaction-particles-links/esm/Options/Classes/LinksShadow.js","../node_modules/tsparticles-interaction-particles-links/esm/Options/Classes/LinksTriangle.js","../node_modules/tsparticles-interaction-particles-links/esm/Options/Classes/Links.js","../node_modules/tsparticles-interaction-particles-links/esm/Linker.js","../node_modules/tsparticles-interaction-particles-links/esm/interaction.js","../node_modules/tsparticles-interaction-particles-links/esm/LinkInstance.js","../node_modules/tsparticles-interaction-particles-links/esm/Utils.js","../node_modules/tsparticles-interaction-particles-links/esm/plugin.js","../node_modules/tsparticles-interaction-particles-links/esm/index.js","../node_modules/tsparticles-shape-polygon/esm/PolygonDrawerBase.js","../node_modules/tsparticles-shape-polygon/esm/PolygonDrawer.js","../node_modules/tsparticles-shape-polygon/esm/TriangleDrawer.js","../node_modules/tsparticles-shape-polygon/esm/index.js","../node_modules/tsparticles-updater-size/esm/SizeUpdater.js","../node_modules/tsparticles-updater-size/esm/index.js","../node_modules/tsparticles-shape-square/esm/SquareDrawer.js","../node_modules/tsparticles-shape-square/esm/index.js","../node_modules/tsparticles-shape-star/esm/StarDrawer.js","../node_modules/tsparticles-shape-star/esm/index.js","../node_modules/tsparticles-updater-stroke-color/esm/StrokeColorUpdater.js","../node_modules/tsparticles-updater-stroke-color/esm/index.js","../node_modules/tsparticles-shape-text/esm/TextDrawer.js","../node_modules/tsparticles-shape-text/esm/index.js","../node_modules/tsparticles-slim/esm/index.js","../node_modules/tsparticles-updater-tilt/esm/Options/Classes/TiltAnimation.js","../node_modules/tsparticles-updater-tilt/esm/Options/Classes/Tilt.js","../node_modules/tsparticles-updater-tilt/esm/TiltUpdater.js","../node_modules/tsparticles-updater-tilt/esm/index.js","../node_modules/tsparticles-updater-twinkle/esm/Options/Classes/TwinkleValues.js","../node_modules/tsparticles-updater-twinkle/esm/Options/Classes/Twinkle.js","../node_modules/tsparticles-updater-twinkle/esm/TwinkleUpdater.js","../node_modules/tsparticles-updater-twinkle/esm/index.js","../node_modules/tsparticles-updater-wobble/esm/Options/Classes/WobbleSpeed.js","../node_modules/tsparticles-updater-wobble/esm/Options/Classes/Wobble.js","../node_modules/tsparticles-updater-wobble/esm/WobbleUpdater.js","../node_modules/tsparticles-updater-wobble/esm/index.js","../node_modules/tsparticles/esm/index.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/get.js"],"sourcesContent":["'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import React, { Component } from \"react\";\nimport { tsParticles } from \"tsparticles-engine\";\nimport equal from \"fast-deep-equal/react\";\nconst defaultId = \"tsparticles\";\nexport default class Particles extends Component {\n constructor(props) {\n super(props);\n this.state = {\n init: false,\n library: undefined,\n };\n }\n destroy() {\n if (!this.state.library) {\n return;\n }\n this.state.library.destroy();\n this.setState({\n library: undefined,\n });\n }\n shouldComponentUpdate(nextProps) {\n return !equal(nextProps, this.props);\n }\n componentDidUpdate() {\n this.refresh();\n }\n forceUpdate() {\n this.refresh().then(() => {\n super.forceUpdate();\n });\n }\n componentDidMount() {\n (async () => {\n if (this.props.init) {\n await this.props.init(tsParticles);\n }\n this.setState({\n init: true,\n }, async () => {\n await this.loadParticles();\n });\n })();\n }\n componentWillUnmount() {\n this.destroy();\n }\n render() {\n const { width, height, className, canvasClassName, id } = this.props;\n return (React.createElement(\"div\", { className: className, id: id },\n React.createElement(\"canvas\", { className: canvasClassName, style: Object.assign(Object.assign({}, this.props.style), { width,\n height }) })));\n }\n async refresh() {\n this.destroy();\n await this.loadParticles();\n }\n async loadParticles() {\n var _a, _b, _c;\n if (!this.state.init) {\n return;\n }\n const cb = async (container) => {\n if (this.props.container) {\n this.props.container.current = container;\n }\n this.setState({\n library: container,\n });\n if (this.props.loaded) {\n await this.props.loaded(container);\n }\n };\n const id = (_b = (_a = this.props.id) !== null && _a !== void 0 ? _a : Particles.defaultProps.id) !== null && _b !== void 0 ? _b : defaultId, container = this.props.url\n ? await tsParticles.loadJSON(id, this.props.url)\n : await tsParticles.load(id, (_c = this.props.params) !== null && _c !== void 0 ? _c : this.props.options);\n await cb(container);\n }\n}\nParticles.defaultProps = {\n width: \"100%\",\n height: \"100%\",\n options: {},\n style: {},\n url: undefined,\n id: defaultId,\n};\n","import Particles from \"./Particles\";\nexport default Particles;\nexport { Particles };\n","export class EventDispatcher {\n constructor() {\n this._listeners = new Map();\n }\n addEventListener(type, listener) {\n var _a;\n this.removeEventListener(type, listener);\n if (!this._listeners.get(type)) {\n this._listeners.set(type, []);\n }\n (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.push(listener);\n }\n dispatchEvent(type, args) {\n var _a;\n (_a = this._listeners.get(type)) === null || _a === void 0 ? void 0 : _a.forEach((handler) => handler(args));\n }\n hasEventListener(type) {\n return !!this._listeners.get(type);\n }\n removeAllEventListeners(type) {\n if (!type) {\n this._listeners = new Map();\n }\n else {\n this._listeners.delete(type);\n }\n }\n removeEventListener(type, listener) {\n const arr = this._listeners.get(type);\n if (!arr) {\n return;\n }\n const length = arr.length, idx = arr.indexOf(listener);\n if (idx < 0) {\n return;\n }\n if (length === 1) {\n this._listeners.delete(type);\n }\n else {\n arr.splice(idx, 1);\n }\n }\n}\n","export class Vector3d {\n constructor(xOrCoords, y, z) {\n if (typeof xOrCoords !== \"number\" && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n const coords3d = xOrCoords;\n this.z = coords3d.z ? coords3d.z : 0;\n }\n else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n this.z = z !== null && z !== void 0 ? z : 0;\n }\n else {\n throw new Error(\"tsParticles - Vector3d not initialized correctly\");\n }\n }\n static get origin() {\n return Vector3d.create(0, 0, 0);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this.updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this.updateFromAngle(this.angle, length);\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n }\n copy() {\n return Vector3d.clone(this);\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n this.z /= n;\n }\n getLengthSq() {\n return this.x ** 2 + this.y ** 2;\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n this.z *= n;\n }\n rotate(angle) {\n return Vector3d.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle), 0);\n }\n setTo(c) {\n this.x = c.x;\n this.y = c.y;\n const v3d = c;\n this.z = v3d.z ? v3d.z : 0;\n }\n sub(v) {\n return Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n }\n updateFromAngle(angle, length) {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n }\n}\n","import { Vector3d } from \"./Vector3d\";\nexport class Vector extends Vector3d {\n constructor(xOrCoords, y) {\n super(xOrCoords, y, 0);\n }\n static get origin() {\n return Vector.create(0, 0);\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n}\n","import { Vector } from \"../Core/Utils/Vector\";\nlet _random = Math.random;\nconst easings = new Map();\nexport function addEasing(name, easing) {\n if (!easings.get(name)) {\n easings.set(name, easing);\n }\n}\nexport function getEasing(name) {\n return easings.get(name) || ((value) => value);\n}\nexport function setRandom(rnd = Math.random) {\n _random = rnd;\n}\nexport function getRandom() {\n return clamp(_random(), 0, 1 - 1e-16);\n}\nexport function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexport function randomInRange(r) {\n const max = getRangeMax(r);\n let min = getRangeMin(r);\n if (max === min) {\n min = 0;\n }\n return getRandom() * (max - min) + min;\n}\nexport function getRangeValue(value) {\n return typeof value === \"number\" ? value : randomInRange(value);\n}\nexport function getRangeMin(value) {\n return typeof value === \"number\" ? value : value.min;\n}\nexport function getRangeMax(value) {\n return typeof value === \"number\" ? value : value.max;\n}\nexport function setRangeValue(source, value) {\n if (source === value || (value === undefined && typeof source === \"number\")) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexport function getValue(options) {\n const random = options.random, { enable, minimumValue } = typeof random === \"boolean\"\n ? {\n enable: random,\n minimumValue: 0,\n }\n : random;\n return enable ? getRangeValue(setRangeValue(options.value, minimumValue)) : getRangeValue(options.value);\n}\nexport function getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx ** 2 + dy ** 2) };\n}\nexport function getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexport function getParticleDirectionAngle(direction, position, center) {\n if (typeof direction === \"number\") {\n return (direction * Math.PI) / 180;\n }\n else {\n switch (direction) {\n case \"top\":\n return -Math.PI / 2;\n case \"top-right\":\n return -Math.PI / 4;\n case \"right\":\n return 0;\n case \"bottom-right\":\n return Math.PI / 4;\n case \"bottom\":\n return Math.PI / 2;\n case \"bottom-left\":\n return (3 * Math.PI) / 4;\n case \"left\":\n return Math.PI;\n case \"top-left\":\n return (-3 * Math.PI) / 4;\n case \"inside\":\n return Math.atan2(center.y - position.y, center.x - position.x);\n case \"outside\":\n return Math.atan2(position.y - center.y, position.x - center.x);\n default:\n return getRandom() * Math.PI * 2;\n }\n }\n}\nexport function getParticleBaseVelocity(direction) {\n const baseVelocity = Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexport function collisionVelocity(v1, v2, m1, m2) {\n return Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * 2 * m2) / (m1 + m2), v1.y);\n}\nexport function calcPositionFromSize(data) {\n return data.position && data.position.x !== undefined && data.position.y !== undefined\n ? {\n x: (data.position.x * data.size.width) / 100,\n y: (data.position.y * data.size.height) / 100,\n }\n : undefined;\n}\nexport function calcPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (((_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * 100) * data.size.width) / 100,\n y: (((_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * 100) * data.size.height) / 100,\n };\n}\nexport function calcPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function calcExactPositionOrRandomFromSize(data) {\n var _a, _b, _c, _d;\n return {\n x: (_b = (_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : getRandom() * data.size.width,\n y: (_d = (_c = data.position) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : getRandom() * data.size.height,\n };\n}\nexport function calcExactPositionOrRandomFromSizeRanged(data) {\n var _a, _b;\n const position = {\n x: ((_a = data.position) === null || _a === void 0 ? void 0 : _a.x) !== undefined ? getRangeValue(data.position.x) : undefined,\n y: ((_b = data.position) === null || _b === void 0 ? void 0 : _b.y) !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcExactPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function parseAlpha(input) {\n return input ? (input.endsWith(\"%\") ? parseFloat(input) / 100 : parseFloat(input)) : 1;\n}\n","import { collisionVelocity, getDistances, getRandom, getValue } from \"./NumberUtils\";\nimport { Vector } from \"../Core/Utils/Vector\";\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min < rectOtherSide.min ||\n pOtherSide.min > rectOtherSide.max ||\n pOtherSide.max < rectOtherSide.min ||\n pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, (selector) => {\n return element.matches(selector);\n });\n return res instanceof Array ? res.some((t) => t) : res;\n}\nexport function isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexport function hasMatchMedia() {\n return !isSsr() && typeof matchMedia !== \"undefined\";\n}\nexport function safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nexport function animate() {\n return isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (requestAnimationFrame || setTimeout)(callback);\n}\nexport function cancelAnimation() {\n return isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (cancelAnimationFrame || clearTimeout)(handle);\n}\nexport function isInArray(value, array) {\n return value === array || (array instanceof Array && array.indexOf(value) > -1);\n}\nexport async function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight !== null && weight !== void 0 ? weight : \"400\"} 36px '${font !== null && font !== void 0 ? font : \"Verdana\"}'`);\n }\n catch (_a) {\n }\n}\nexport function arrayRandomIndex(array) {\n return Math.floor(getRandom() * array.length);\n}\nexport function itemFromArray(array, index, useIndex = true) {\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nexport function isPointInside(point, size, offset, radius, direction) {\n return areBoundsInside(calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, offset, direction);\n}\nexport function areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === \"bottom\") {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === \"left\")) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === \"right\")) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === \"top\")) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nexport function calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexport function deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source, value = sourceDict[key], isObject = typeof value === \"object\", destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexport function isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, (t) => t.enable && isInArray(mode, t.mode));\n}\nexport function divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, (div) => {\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nexport function singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, (selector) => {\n callback(selector, div);\n });\n}\nexport function divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, (div) => {\n return checkSelector(element, div.selectors);\n });\n}\nexport function circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector.create(getValue(p.options.bounce.horizontal), getValue(p.options.bounce.vertical)),\n };\n}\nexport function circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1);\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < 0) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nexport function rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right,\n }, {\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, particle.velocity.x, getValue(particle.options.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: bounds.left,\n max: bounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, particle.velocity.y, getValue(particle.options.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nexport function executeOnSingleOrMultiple(obj, callback) {\n return obj instanceof Array ? obj.map((item, index) => callback(item, index)) : callback(obj, 0);\n}\nexport function itemFromSingleOrMultiple(obj, index, useIndex) {\n return obj instanceof Array ? itemFromArray(obj, index, useIndex) : obj;\n}\nexport function findItemFromSingleOrMultiple(obj, callback) {\n return obj instanceof Array ? obj.find((t, index) => callback(t, index)) : callback(obj, 0) ? obj : undefined;\n}\n","import { getRandom, getRangeValue, mix, randomInRange, setRangeValue } from \"./NumberUtils\";\nimport { itemFromArray } from \"./Utils\";\nconst randomColorValue = \"random\", midColorValue = \"mid\", colorManagers = new Map();\nexport function addColorManager(manager) {\n colorManagers.set(manager.key, manager);\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n for (const [, manager] of colorManagers) {\n if (input.startsWith(manager.stringPrefix)) {\n return manager.parseString(input);\n }\n }\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i, hexFixed = input.replace(shorthandRegex, (_, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n }), regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i, result = regex.exec(hexFixed);\n return result\n ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16),\n }\n : undefined;\n}\nexport function rangeColorToRgb(input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n if (typeof color.value === \"string\") {\n return colorToRgb(color.value, index, useIndex);\n }\n if (color.value instanceof Array) {\n return rangeColorToRgb({\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToRgb(input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n if (typeof color.value === \"string\") {\n return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(color.value);\n }\n if (color.value instanceof Array) {\n return colorToRgb({\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n for (const [, manager] of colorManagers) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToHsl(color, index, useIndex = true) {\n const rgb = colorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rangeColorToHsl(color, index, useIndex = true) {\n const rgb = rangeColorToRgb(color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rgbToHsl(color) {\n const r1 = color.r / 255, g1 = color.g / 255, b1 = color.b / 255, max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1), res = {\n h: 0,\n l: (max + min) / 2,\n s: 0,\n };\n if (max !== min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min));\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n if (res.h >= 360) {\n res.h -= 360;\n }\n return res;\n}\nexport function stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n}\nexport function stringToRgb(input) {\n return stringToRgba(input);\n}\nexport function hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 }, hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (!hslPercent.s) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s, p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n}\nexport function hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n g: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n r: Math.floor(randomInRange(setRangeValue(fixedMin, 256))),\n };\n}\nexport function getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n}\nexport function colorMix(color1, color2, size1, size2) {\n let rgb1 = color1, rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: mix(rgb1.b, rgb2.b, size1, size2),\n g: mix(rgb1.g, rgb2.g, size1, size2),\n r: mix(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexport function getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === midColorValue) {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor(), destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexport function getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return rangeColorToRgb({\n value: color,\n });\n }\n if (blink) {\n return randomColorValue;\n }\n return midColorValue;\n }\n else if (color === midColorValue) {\n return midColorValue;\n }\n else {\n return rangeColorToRgb({\n value: color,\n });\n }\n}\nexport function getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexport function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (getRangeValue(colorAnimation.speed) / 100) * reduceFactor;\n colorValue.decay = 1 - getRangeValue(colorAnimation.decay);\n colorValue.status = \"increasing\";\n colorValue.loops = 0;\n colorValue.maxLoops = getRangeValue(colorAnimation.count);\n if (!colorAnimation.sync) {\n colorValue.velocity *= getRandom();\n colorValue.value *= getRandom();\n }\n colorValue.initialValue = colorValue.value;\n }\n else {\n colorValue.velocity = 0;\n }\n}\n","import { getStyleFromRgb } from \"./ColorUtils\";\nexport function drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function paintBase(context, dimension, baseColor) {\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n}\nexport function paintImage(context, dimension, image, opacity) {\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(image, 0, 0, dimension.width, dimension.height);\n context.globalAlpha = 1;\n}\nexport function clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n}\nexport function drawParticle(data) {\n var _a, _b, _c, _d, _e;\n const { container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow, transform, } = data;\n const pos = particle.getPosition(), angle = particle.rotation + (particle.pathRotation ? particle.velocity.angle : 0), rotateData = {\n sin: Math.sin(angle),\n cos: Math.cos(angle),\n }, transformData = {\n a: rotateData.cos * ((_a = transform.a) !== null && _a !== void 0 ? _a : 1),\n b: rotateData.sin * ((_b = transform.b) !== null && _b !== void 0 ? _b : 1),\n c: -rotateData.sin * ((_c = transform.c) !== null && _c !== void 0 ? _c : 1),\n d: rotateData.cos * ((_d = transform.d) !== null && _d !== void 0 ? _d : 1),\n };\n context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);\n context.beginPath();\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const strokeWidth = (_e = particle.strokeWidth) !== null && _e !== void 0 ? _e : 0;\n context.lineWidth = strokeWidth;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n drawShape(container, context, particle, radius, opacity, delta);\n if (strokeWidth > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.globalCompositeOperation = \"source-over\";\n context.setTransform(1, 0, 0, 1, 0, 0);\n}\nexport function drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta, container.retina.pixelRatio);\n}\nexport function drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n plugin.draw(context, delta);\n}\nexport function drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n plugin.drawParticle(context, particle, delta);\n}\nexport function alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === \"darken\" ? -1 : 1) * value,\n };\n}\n","export const generatedAttribute = \"generated\";\nexport const touchEndEvent = \"touchend\";\nexport const mouseDownEvent = \"pointerdown\";\nexport const mouseUpEvent = \"pointerup\";\nexport const mouseMoveEvent = \"pointermove\";\nexport const touchStartEvent = \"touchstart\";\nexport const touchMoveEvent = \"touchmove\";\nexport const mouseLeaveEvent = \"pointerleave\";\nexport const mouseOutEvent = \"pointerout\";\nexport const touchCancelEvent = \"touchcancel\";\nexport const resizeEvent = \"resize\";\nexport const visibilityChangeEvent = \"visibilitychange\";\n","import { clear, drawParticle, drawParticlePlugin, drawPlugin, paintBase, paintImage } from \"../Utils/CanvasUtils\";\nimport { deepExtend, isSsr } from \"../Utils/Utils\";\nimport { getStyleFromHsl, getStyleFromRgb, rangeColorToHsl, rangeColorToRgb } from \"../Utils/ColorUtils\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nfunction setTransformValue(factor, newFactor, key) {\n var _a;\n const newValue = newFactor[key];\n if (newValue !== undefined) {\n factor[key] = ((_a = factor[key]) !== null && _a !== void 0 ? _a : 1) * newValue;\n }\n}\nexport class Canvas {\n constructor(container) {\n this.container = container;\n this.size = {\n height: 0,\n width: 0,\n };\n this._context = null;\n this._generated = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n this._mutationObserver =\n !isSsr() && typeof MutationObserver !== \"undefined\"\n ? new MutationObserver((records) => {\n for (const record of records) {\n if (record.type === \"attributes\" && record.attributeName === \"style\") {\n this._repairStyle();\n }\n }\n })\n : undefined;\n }\n get _fullScreen() {\n return this.container.actualOptions.fullScreen.enable;\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = this._trailFill;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && trailFill) {\n if (trailFill.color) {\n this._paintBase(getStyleFromRgb(trailFill.color, trailFill.opacity));\n }\n else if (trailFill.image) {\n this._paintImage(trailFill.image, trailFill.opacity);\n }\n }\n else {\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n }\n destroy() {\n var _a, _b;\n (_a = this._mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n if (this._generated) {\n (_b = this.element) === null || _b === void 0 ? void 0 : _b.remove();\n }\n else {\n this._resetOriginalStyle();\n }\n this.stop();\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n if (!this._context) {\n return;\n }\n return cb(this._context);\n }\n drawParticle(particle, delta) {\n var _a;\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius();\n if (radius <= 0) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = (_a = particle.getStrokeColor()) !== null && _a !== void 0 ? _a : pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw((ctx) => {\n var _a, _b, _c, _d;\n const options = this.container.actualOptions, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, opacity = (_c = (_a = particle.bubble.opacity) !== null && _a !== void 0 ? _a : (_b = particle.opacity) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 1, strokeOpacity = (_d = particle.strokeOpacity) !== null && _d !== void 0 ? _d : opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor, transform = {}, colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n drawParticle({\n container: this.container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * (1 - particle.zIndexFactor) ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform,\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw((ctx) => {\n drawParticlePlugin(ctx, plugin, particle, delta);\n });\n }\n drawPlugin(plugin, delta) {\n this.draw((ctx) => {\n drawPlugin(ctx, plugin, delta);\n });\n }\n async init() {\n var _a;\n this.resize();\n this._initStyle();\n this._initCover();\n try {\n await this._initTrail();\n }\n catch (e) {\n console.error(e);\n }\n this.initBackground();\n if (this.element) {\n (_a = this._mutationObserver) === null || _a === void 0 ? void 0 : _a.observe(this.element, { attributes: true });\n }\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element, elementStyle = element === null || element === void 0 ? void 0 : element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = rangeColorToRgb(background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const [, plugin] of this.container.plugins) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor || plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles || updater.getTransformValues || updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n var _a, _b;\n if (this._generated) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this._generated =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this._generated;\n this.element = canvas;\n this.element.ariaHidden = \"true\";\n this._originalStyle = deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this._context = this.element.getContext(\"2d\");\n (_b = this._mutationObserver) === null || _b === void 0 ? void 0 : _b.observe(this.element, { attributes: true });\n this.container.retina.init();\n this.initBackground();\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw((ctx) => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n this._paintBase(this._coverColorStyle);\n }\n else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return;\n }\n const container = this.container, pxRatio = container.retina.pixelRatio, size = container.canvas.size, newSize = {\n width: this.element.offsetWidth * pxRatio,\n height: this.element.offsetHeight * pxRatio,\n };\n if (newSize.height === size.height &&\n newSize.width === size.width &&\n newSize.height === this.element.height &&\n newSize.width === this.element.width) {\n return;\n }\n const oldSize = Object.assign({}, size);\n this.element.width = size.width = this.element.offsetWidth * pxRatio;\n this.element.height = size.height = this.element.offsetHeight * pxRatio;\n if (this.container.started) {\n this.resizeFactor = {\n width: size.width / oldSize.width,\n height: size.height / oldSize.height,\n };\n }\n }\n stop() {\n this.draw((ctx) => {\n clear(ctx, this.size);\n });\n }\n async windowResize() {\n if (!this.element) {\n return;\n }\n this.resize();\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n _applyPostDrawUpdaters(particle) {\n var _a;\n for (const updater of this._postDrawUpdaters) {\n (_a = updater.afterDraw) === null || _a === void 0 ? void 0 : _a.call(updater, particle);\n }\n }\n _applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform) {\n var _a;\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n (_a = updater.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(updater, particle);\n }\n }\n _applyResizePlugins() {\n for (const plugin of this._resizePlugins) {\n if (plugin.resize) {\n plugin.resize();\n }\n }\n }\n _getPluginParticleColors(particle) {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = rangeColorToHsl(plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = rangeColorToHsl(plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n }\n _initCover() {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color, coverRgb = rangeColorToRgb(color);\n if (coverRgb) {\n const coverColor = {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity,\n };\n this._coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n _initStyle() {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (this._fullScreen) {\n this._originalStyle = deepExtend({}, element.style);\n this._setFullScreenStyle();\n }\n else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n }\n async _initTrail() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = trail.fill;\n if (!trail.enable) {\n return;\n }\n if (trailFill.color) {\n const fillColor = rangeColorToRgb(trailFill.color);\n if (!fillColor) {\n return;\n }\n const trail = options.particles.move.trail;\n this._trailFill = {\n color: Object.assign({}, fillColor),\n opacity: 1 / trail.length,\n };\n }\n else {\n await new Promise((resolve, reject) => {\n if (!trailFill.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._trailFill = {\n image: img,\n opacity: 1 / trail.length,\n };\n resolve();\n });\n img.addEventListener(\"error\", (evt) => {\n reject(evt.error);\n });\n img.src = trailFill.image;\n });\n }\n }\n _paintBase(baseColor) {\n this.draw((ctx) => {\n paintBase(ctx, this.size, baseColor);\n });\n }\n _paintImage(image, opacity) {\n this.draw((ctx) => {\n paintImage(ctx, this.size, image, opacity);\n });\n }\n _repairStyle() {\n var _a, _b;\n const element = this.element;\n if (!element) {\n return;\n }\n (_a = this._mutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n this._initStyle();\n this.initBackground();\n (_b = this._mutationObserver) === null || _b === void 0 ? void 0 : _b.observe(element, { attributes: true });\n }\n _resetOriginalStyle() {\n const element = this.element, originalStyle = this._originalStyle;\n if (!(element && originalStyle)) {\n return;\n }\n element.style.position = originalStyle.position;\n element.style.zIndex = originalStyle.zIndex;\n element.style.top = originalStyle.top;\n element.style.left = originalStyle.left;\n element.style.width = originalStyle.width;\n element.style.height = originalStyle.height;\n }\n _setFullScreenStyle() {\n const element = this.element;\n if (!element) {\n return;\n }\n const priority = \"important\";\n element.style.setProperty(\"position\", \"fixed\", priority);\n element.style.setProperty(\"z-index\", this.container.actualOptions.fullScreen.zIndex.toString(10), priority);\n element.style.setProperty(\"top\", \"0\", priority);\n element.style.setProperty(\"left\", \"0\", priority);\n element.style.setProperty(\"width\", \"100%\", priority);\n element.style.setProperty(\"height\", \"100%\", priority);\n }\n}\n","import { executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils\";\nimport { mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants\";\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.handlers = {\n mouseMove: (e) => this.mouseTouchMove(e),\n touchStart: (e) => this.mouseTouchMove(e),\n touchMove: (e) => this.mouseTouchMove(e),\n touchEnd: () => this.mouseTouchFinish(),\n mouseLeave: () => this.mouseTouchFinish(),\n touchCancel: () => this.mouseTouchFinish(),\n touchEndClick: (e) => this.mouseTouchClick(e),\n mouseUp: (e) => this.mouseTouchClick(e),\n mouseDown: () => this.mouseDown(),\n visibilityChange: () => this.handleVisibilityChange(),\n themeChange: (e) => this.handleThemeChange(e),\n oldThemeChange: (e) => this.handleThemeChange(e),\n resize: () => this.handleWindowResize(),\n };\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n doMouseTouchClick(e) {\n const container = this.container, options = container.actualOptions;\n if (this.canPush) {\n const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;\n if (!mousePos) {\n return;\n }\n mouseInteractivity.clickPosition = Object.assign({}, mousePos);\n mouseInteractivity.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n executeOnSingleOrMultiple(onClick.mode, (mode) => this.handleClickMode(mode));\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleClickMode(mode) {\n this.container.handleClickMode(mode);\n }\n handleThemeChange(e) {\n const mediaEvent = e, container = this.container, options = container.options, defaultThemes = options.defaultThemes, themeName = mediaEvent.matches ? defaultThemes.dark : defaultThemes.light, theme = options.themes.find((theme) => theme.name === themeName);\n if (theme && theme.default.auto) {\n container.loadTheme(themeName);\n }\n }\n handleVisibilityChange() {\n const container = this.container, options = container.actualOptions;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw(true);\n }\n }\n }\n handleWindowResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n delete this.resizeTimeout;\n }\n this.resizeTimeout = setTimeout(async () => { var _a; return (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize(); }, this.container.actualOptions.interactivity.events.resize.delay * 1000);\n }\n manageListeners(add) {\n var _a;\n const handlers = this.handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === \"window\") {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === \"parent\" && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\");\n if (mediaMatch) {\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", handlers.themeChange, add);\n }\n else if (mediaMatch.addListener !== undefined) {\n if (add) {\n mediaMatch.addListener(handlers.oldThemeChange);\n }\n else {\n mediaMatch.removeListener(handlers.oldThemeChange);\n }\n }\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, mouseMoveEvent, handlers.mouseMove, add);\n manageListener(interactivityEl, touchStartEvent, handlers.touchStart, add);\n manageListener(interactivityEl, touchMoveEvent, handlers.touchMove, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEnd, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEndClick, add);\n manageListener(interactivityEl, mouseUpEvent, handlers.mouseUp, add);\n manageListener(interactivityEl, mouseDownEvent, handlers.mouseDown, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);\n manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n if (typeof ResizeObserver !== \"undefined\") {\n if (this.resizeObserver && !add) {\n if (container.canvas.element) {\n this.resizeObserver.unobserve(container.canvas.element);\n }\n this.resizeObserver.disconnect();\n delete this.resizeObserver;\n }\n else if (!this.resizeObserver && add && container.canvas.element) {\n this.resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find((e) => e.target === container.canvas.element);\n if (!entry) {\n return;\n }\n this.handleWindowResize();\n });\n this.resizeObserver.observe(container.canvas.element);\n }\n }\n else {\n manageListener(window, resizeEvent, handlers.resize, add);\n }\n }\n if (document) {\n manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false);\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchClick(e) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container, options = container.actualOptions;\n if (!((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element)) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"pointer\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === \"parent\") {\n const source = mouseEvent.target, target = mouseEvent.currentTarget, canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY,\n };\n }\n }\n else if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY,\n };\n }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e, lastTouch = touchEvent.touches[touchEvent.touches.length - 1], canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0),\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = mouseMoveEvent;\n }\n}\n","function initDelta(value, fpsLimit = 60, smooth = false) {\n return {\n value,\n factor: smooth ? 60 / fpsLimit : (60 * value) / 1000,\n };\n}\nexport class FrameManager {\n constructor(container) {\n this.container = container;\n }\n async nextFrame(timestamp) {\n var _a;\n try {\n const container = this.container;\n if (!container.smooth &&\n container.lastFrameTime !== undefined &&\n timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw(false);\n return;\n }\n (_a = container.lastFrameTime) !== null && _a !== void 0 ? _a : (container.lastFrameTime = timestamp);\n const delta = initDelta(timestamp - container.lastFrameTime, container.fpsLimit, container.smooth);\n container.lifeTime += delta.value;\n container.lastFrameTime = timestamp;\n if (delta.value > 1000) {\n container.draw(false);\n return;\n }\n await container.particles.draw(delta);\n if (container.duration > 0 && container.lifeTime > container.duration) {\n container.destroy();\n return;\n }\n if (container.getAnimationStatus()) {\n container.draw(false);\n }\n }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\n","export class OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Background {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { BackgroundMaskCover } from \"./BackgroundMaskCover\";\nexport class BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = (typeof data.cover === \"string\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","export class FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\n","export class ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\n","import { executeOnSingleOrMultiple } from \"../../../../Utils/Utils\";\nexport class DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = \"circle\";\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get ids() {\n return executeOnSingleOrMultiple(this.selectors, (t) => t.replace(\"#\", \"\"));\n }\n set ids(value) {\n this.selectors = executeOnSingleOrMultiple(value, (t) => `#${t}`);\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n","export class Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\n","import { Parallax } from \"./Parallax\";\nexport class HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\n","export class ResizeEvent {\n constructor() {\n this.delay = 0.5;\n this.enable = true;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { ClickEvent } from \"./ClickEvent\";\nimport { DivEvent } from \"./DivEvent\";\nimport { HoverEvent } from \"./HoverEvent\";\nimport { ResizeEvent } from \"./ResizeEvent\";\nimport { executeOnSingleOrMultiple } from \"../../../../Utils/Utils\";\nexport class Events {\n constructor() {\n this.onClick = new ClickEvent();\n this.onDiv = new DivEvent();\n this.onHover = new HoverEvent();\n this.resize = new ResizeEvent();\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n this.onDiv = executeOnSingleOrMultiple(onDiv, (t) => {\n const tmp = new DivEvent();\n tmp.load(t);\n return tmp;\n });\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (typeof data.resize === \"boolean\") {\n this.resize.enable = data.resize;\n }\n else {\n this.resize.load(data.resize);\n }\n }\n}\n","export class Modes {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (this._container) {\n const interactors = this._engine.plugins.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadModeOptions) {\n interactor.loadModeOptions(this, data);\n }\n }\n }\n }\n }\n}\n","import { Events } from \"./Events/Events\";\nimport { Modes } from \"./Modes/Modes\";\nexport class Interactivity {\n constructor(engine, container) {\n this.detectsOn = \"window\";\n this.events = new Events();\n this.modes = new Modes(engine, container);\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50,\n };\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","import { deepExtend } from \"../../Utils/Utils\";\nexport class Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = \"canvas\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.maxWidth !== undefined) {\n this.maxWidth = data.maxWidth;\n }\n if (data.mode !== undefined) {\n if (data.mode === \"screen\") {\n this.mode = \"screen\";\n }\n else {\n this.mode = \"canvas\";\n }\n }\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","export class ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = \"any\";\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { ThemeDefault } from \"./ThemeDefault\";\nimport { deepExtend } from \"../../../Utils/Utils\";\nexport class Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ColorAnimation {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.offset = 0;\n this.speed = 1;\n this.decay = 0;\n this.sync = true;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ColorAnimation } from \"./ColorAnimation\";\nexport class HslAnimation {\n constructor() {\n this.h = new ColorAnimation();\n this.s = new ColorAnimation();\n this.l = new ColorAnimation();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\n","import { HslAnimation } from \"./HslAnimation\";\nimport { OptionsColor } from \"./OptionsColor\";\nexport class AnimatableColor extends OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (typeof data === \"string\" || data instanceof Array) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n","export class CollisionsAbsorb {\n constructor() {\n this.speed = 2;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n","export class CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\n","export class Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}\n","import { Random } from \"./Random\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class ValueWithRandom {\n constructor() {\n this.random = new Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value, this.random.enable ? this.random.minimumValue : undefined);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ParticlesBounceFactor extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\n","import { ParticlesBounceFactor } from \"./ParticlesBounceFactor\";\nexport class ParticlesBounce {\n constructor() {\n this.horizontal = new ParticlesBounceFactor();\n this.vertical = new ParticlesBounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\n","import { CollisionsAbsorb } from \"./CollisionsAbsorb\";\nimport { CollisionsOverlap } from \"./CollisionsOverlap\";\nimport { ParticlesBounce } from \"../Bounce/ParticlesBounce\";\nexport class Collisions {\n constructor() {\n this.absorb = new CollisionsAbsorb();\n this.bounce = new ParticlesBounce();\n this.enable = false;\n this.mode = \"bounce\";\n this.overlap = new CollisionsOverlap();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.absorb.load(data.absorb);\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveAttract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}\n","export class MoveCenter {\n constructor() {\n this.x = 50;\n this.y = 50;\n this.mode = \"percent\";\n this.radius = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.x !== undefined) {\n this.x = data.x;\n }\n if (data.y !== undefined) {\n this.y = data.y;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n }\n}\n","import { ValueWithRandom } from \"../../../ValueWithRandom\";\nimport { deepExtend } from \"../../../../../Utils/Utils\";\nexport class MovePath {\n constructor() {\n this.clamp = true;\n this.delay = new ValueWithRandom();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = deepExtend(this.options, data.options);\n }\n }\n}\n","import { OptionsColor } from \"../../OptionsColor\";\nexport class MoveTrailFill {\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n }\n}\n","import { MoveTrailFill } from \"./MoveTrailFill\";\nexport class MoveTrail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fill = new MoveTrailFill();\n }\n get fillColor() {\n return this.fill.color;\n }\n set fillColor(value) {\n this.fill.load({ color: value });\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.fill !== undefined || data.fillColor !== undefined) {\n this.fill.load(data.fill || { color: data.fillColor });\n }\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n","export class OutModes {\n constructor() {\n this.default = \"out\";\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.position = data.position ? deepExtend({}, data.position) : undefined;\n }\n}\n","import { MoveAngle } from \"./MoveAngle\";\nimport { MoveAttract } from \"./MoveAttract\";\nimport { MoveCenter } from \"./MoveCenter\";\nimport { MoveGravity } from \"./MoveGravity\";\nimport { MovePath } from \"./Path/MovePath\";\nimport { MoveTrail } from \"./MoveTrail\";\nimport { OutModes } from \"./OutModes\";\nimport { Spin } from \"./Spin\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Move {\n constructor() {\n this.angle = new MoveAngle();\n this.attract = new MoveAttract();\n this.center = new MoveCenter();\n this.decay = 0;\n this.distance = {};\n this.direction = \"none\";\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity();\n this.path = new MovePath();\n this.outModes = new OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin();\n this.straight = false;\n this.trail = new MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get collisions() {\n return false;\n }\n set collisions(_) {\n }\n get noise() {\n return this.path;\n }\n set noise(value) {\n this.path = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n this.angle.load(typeof data.angle === \"number\" ? { value: data.angle } : data.angle);\n this.attract.load(data.attract);\n this.center.load(data.center);\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance =\n typeof data.distance === \"number\"\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : Object.assign({}, data.distance);\n }\n if (data.drift !== undefined) {\n this.drift = setRangeValue(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outModes = (_b = (_a = data.outModes) !== null && _a !== void 0 ? _a : data.outMode) !== null && _b !== void 0 ? _b : data.out_mode;\n if (outModes !== undefined) {\n if (typeof outModes === \"object\") {\n this.outModes.load(outModes);\n }\n else {\n this.outModes.load({\n default: outModes,\n });\n }\n }\n this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : data.noise);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class OpacityAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 2;\n this.startValue = \"random\";\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { OpacityAnimation } from \"./OpacityAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Opacity extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","export class ParticlesDensity {\n constructor() {\n this.enable = false;\n this.width = 1920;\n this.height = 1080;\n }\n get area() {\n return this.width;\n }\n set area(value) {\n this.width = value;\n }\n get factor() {\n return this.height;\n }\n set factor(value) {\n this.height = value;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const width = (_b = (_a = data.width) !== null && _a !== void 0 ? _a : data.area) !== null && _b !== void 0 ? _b : data.value_area;\n if (width !== undefined) {\n this.width = width;\n }\n const height = (_c = data.height) !== null && _c !== void 0 ? _c : data.factor;\n if (height !== undefined) {\n this.height = height;\n }\n }\n}\n","import { ParticlesDensity } from \"./ParticlesDensity\";\nexport class ParticlesNumber {\n constructor() {\n this.density = new ParticlesDensity();\n this.limit = 0;\n this.value = 0;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n","import { OptionsColor } from \"../OptionsColor\";\nexport class Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\n","import { deepExtend } from \"../../../../Utils/Utils\";\nconst charKey = \"character\", charAltKey = \"char\", imageKey = \"image\", imageAltKey = \"images\", polygonKey = \"polygon\", polygonAltKey = \"star\";\nexport class Shape {\n constructor() {\n this.options = {};\n this.type = \"circle\";\n }\n get character() {\n var _a;\n return ((_a = this.options[charKey]) !== null && _a !== void 0 ? _a : this.options[charAltKey]);\n }\n set character(value) {\n this.options[charAltKey] = this.options[charKey] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get image() {\n var _a;\n return ((_a = this.options[imageKey]) !== null && _a !== void 0 ? _a : this.options[imageAltKey]);\n }\n set image(value) {\n this.options[imageAltKey] = this.options[imageKey] = value;\n }\n get images() {\n return this.image;\n }\n set images(value) {\n this.image = value;\n }\n get polygon() {\n var _a;\n return ((_a = this.options[polygonKey]) !== null && _a !== void 0 ? _a : this.options[polygonAltKey]);\n }\n set polygon(value) {\n this.options[polygonAltKey] = this.options[polygonKey] = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\n }\n load(data) {\n var _a, _b, _c;\n if (!data) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item) {\n this.options[shape] = deepExtend((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, charKey, charAltKey, true);\n this.loadShape(data.polygon, polygonKey, polygonAltKey, false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, imageKey, imageAltKey, true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b;\n if (!item) {\n return;\n }\n const isArray = item instanceof Array;\n const emptyValue = isArray ? [] : {}, mainDifferentValues = isArray !== this.options[mainKey] instanceof Array, altDifferentValues = isArray !== this.options[altKey] instanceof Array;\n if (mainDifferentValues) {\n this.options[mainKey] = emptyValue;\n }\n if (altDifferentValues && altOverride) {\n this.options[altKey] = emptyValue;\n }\n this.options[mainKey] = deepExtend((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : emptyValue, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = deepExtend((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : emptyValue, item);\n }\n }\n}\n","import { AnimationOptions } from \"../../AnimationOptions\";\nexport class SizeAnimation extends AnimationOptions {\n constructor() {\n super();\n this.destroy = \"none\";\n this.enable = false;\n this.speed = 5;\n this.startValue = \"random\";\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { SizeAnimation } from \"./SizeAnimation\";\nimport { ValueWithRandom } from \"../../ValueWithRandom\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils\";\nexport class Size extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n super.load(data);\n if (!data) {\n return;\n }\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n this.value = setRangeValue(this.value, this.animation.enable ? this.animation.minimumValue : undefined);\n }\n }\n}\n","import { AnimatableColor } from \"../AnimatableColor\";\nimport { setRangeValue } from \"../../../Utils/NumberUtils\";\nexport class Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = setRangeValue(data.width);\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}\n","import { ValueWithRandom } from \"../../ValueWithRandom\";\nexport class ZIndex extends ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\n","import { deepExtend, executeOnSingleOrMultiple } from \"../../../Utils/Utils\";\nimport { AnimatableColor } from \"../AnimatableColor\";\nimport { Collisions } from \"./Collisions/Collisions\";\nimport { Move } from \"./Move/Move\";\nimport { Opacity } from \"./Opacity/Opacity\";\nimport { ParticlesBounce } from \"./Bounce/ParticlesBounce\";\nimport { ParticlesNumber } from \"./Number/ParticlesNumber\";\nimport { Shadow } from \"./Shadow\";\nimport { Shape } from \"./Shape/Shape\";\nimport { Size } from \"./Size/Size\";\nimport { Stroke } from \"./Stroke\";\nimport { ZIndex } from \"./ZIndex/ZIndex\";\nexport class ParticlesOptions {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n this.bounce = new ParticlesBounce();\n this.collisions = new Collisions();\n this.color = new AnimatableColor();\n this.color.value = \"#fff\";\n this.groups = {};\n this.move = new Move();\n this.number = new ParticlesNumber();\n this.opacity = new Opacity();\n this.reduceDuplicates = false;\n this.shadow = new Shadow();\n this.shape = new Shape();\n this.size = new Size();\n this.stroke = new Stroke();\n this.zIndex = new ZIndex();\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f;\n if (!data) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor.create(this.color, data.color));\n if (data.groups !== undefined) {\n for (const group in data.groups) {\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = deepExtend((_a = this.groups[group]) !== null && _a !== void 0 ? _a : {}, item);\n }\n }\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.zIndex.load(data.zIndex);\n const collisions = (_c = (_b = data.move) === null || _b === void 0 ? void 0 : _b.collisions) !== null && _c !== void 0 ? _c : (_d = data.move) === null || _d === void 0 ? void 0 : _d.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n if (data.interactivity !== undefined) {\n this.interactivity = deepExtend({}, data.interactivity);\n }\n const strokeToLoad = (_e = data.stroke) !== null && _e !== void 0 ? _e : (_f = data.shape) === null || _f === void 0 ? void 0 : _f.stroke;\n if (strokeToLoad) {\n this.stroke = executeOnSingleOrMultiple(strokeToLoad, (t) => {\n const tmp = new Stroke();\n tmp.load(t);\n return tmp;\n });\n }\n if (this._container) {\n const updaters = this._engine.plugins.updaters.get(this._container);\n if (updaters) {\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(this, data);\n }\n }\n }\n const interactors = this._engine.plugins.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadParticlesOptions) {\n interactor.loadParticlesOptions(this, data);\n }\n }\n }\n }\n }\n}\n","import { ParticlesOptions } from \"../Options/Classes/Particles/ParticlesOptions\";\nexport function loadOptions(options, ...sourceOptionsArr) {\n for (const sourceOptions of sourceOptionsArr) {\n options.load(sourceOptions);\n }\n}\nexport function loadParticlesOptions(engine, container, ...sourceOptionsArr) {\n const options = new ParticlesOptions(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\n","import { deepExtend, executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils\";\nimport { Background } from \"./Background/Background\";\nimport { BackgroundMask } from \"./BackgroundMask/BackgroundMask\";\nimport { FullScreen } from \"./FullScreen/FullScreen\";\nimport { Interactivity } from \"./Interactivity/Interactivity\";\nimport { ManualParticle } from \"./ManualParticle\";\nimport { Responsive } from \"./Responsive\";\nimport { Theme } from \"./Theme/Theme\";\nimport { loadParticlesOptions } from \"../../Utils/OptionsUtils\";\nimport { setRangeValue } from \"../../Utils/NumberUtils\";\nexport class Options {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n this.autoPlay = true;\n this.background = new Background();\n this.backgroundMask = new BackgroundMask();\n this.defaultThemes = {};\n this.delay = 0;\n this.fullScreen = new FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity(engine, container);\n this.manualParticles = [];\n this.particles = loadParticlesOptions(this._engine, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.smooth = false;\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n get backgroundMode() {\n return this.fullScreen;\n }\n set backgroundMode(value) {\n this.fullScreen.load(value);\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e;\n if (!data) {\n return;\n }\n if (data.preset !== undefined) {\n executeOnSingleOrMultiple(data.preset, (preset) => this._importPreset(preset));\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = setRangeValue(data.duration);\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = (_c = data.fullScreen) !== null && _c !== void 0 ? _c : data.backgroundMode;\n if (typeof fullScreen === \"boolean\") {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map((t) => {\n const tmp = new ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.particles.load(data.particles);\n this.style = deepExtend(this.style, data.style);\n this._engine.plugins.loadOptions(this, data);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n const interactors = this._engine.plugins.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadOptions) {\n interactor.loadOptions(this, data);\n }\n }\n }\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const existingTheme = this.themes.find((t) => t.name === theme.name);\n if (!existingTheme) {\n const optTheme = new Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n else {\n existingTheme.load(theme);\n }\n }\n }\n this.defaultThemes.dark = (_d = this._findDefaultTheme(\"dark\")) === null || _d === void 0 ? void 0 : _d.name;\n this.defaultThemes.light = (_e = this._findDefaultTheme(\"light\")) === null || _e === void 0 ? void 0 : _e.name;\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find((t) => t.mode === \"screen\" && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.options);\n return responsiveOptions === null || responsiveOptions === void 0 ? void 0 : responsiveOptions.maxWidth;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find((theme) => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch && mediaMatch.matches, defaultTheme = this._findDefaultTheme(clientDarkMode ? \"dark\" : \"light\");\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n _findDefaultTheme(mode) {\n var _a;\n return ((_a = this.themes.find((theme) => theme.default.value && theme.default.mode === mode)) !== null && _a !== void 0 ? _a : this.themes.find((theme) => theme.default.value && theme.default.mode === \"any\"));\n }\n _importPreset(preset) {\n this.load(this._engine.plugins.getPreset(preset));\n }\n}\n","export class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this._interactors = this._engine.plugins.getInteractors(this.container, true);\n this._externalInteractors = [];\n this._particleInteractors = [];\n }\n async externalInteract(delta) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.interact(delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this._externalInteractors) {\n if (interactor.handleClickMode) {\n interactor.handleClickMode(mode);\n }\n }\n }\n init() {\n this._externalInteractors = [];\n this._particleInteractors = [];\n for (const interactor of this._interactors) {\n switch (interactor.type) {\n case \"external\":\n this._externalInteractors.push(interactor);\n break;\n case \"particles\":\n this._particleInteractors.push(interactor);\n break;\n }\n interactor.init();\n }\n }\n async particlesInteract(particle, delta) {\n for (const interactor of this._externalInteractors) {\n interactor.clear(particle, delta);\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.interact(particle, delta);\n }\n }\n }\n async reset(particle) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n await interactor.reset(particle);\n }\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n await interactor.reset(particle);\n }\n }\n }\n}\n","import { calcExactPositionOrRandomFromSize, clamp, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRandom, getRangeMax, getRangeMin, getRangeValue, getValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils\";\nimport { deepExtend, isInArray, itemFromSingleOrMultiple } from \"../Utils/Utils\";\nimport { getHslFromAnimation, rangeColorToRgb } from \"../Utils/ColorUtils\";\nimport { Interactivity } from \"../Options/Classes/Interactivity/Interactivity\";\nimport { Vector } from \"./Utils/Vector\";\nimport { Vector3d } from \"./Utils/Vector3d\";\nimport { alterHsl } from \"../Utils/CanvasUtils\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils\";\nconst fixOutMode = (data) => {\n if (!isInArray(data.outMode, data.checkModes)) {\n return;\n }\n if (data.coord > data.maxCoord - data.radius * 2) {\n data.setCb(-data.radius);\n }\n else if (data.coord < data.radius * 2) {\n data.setCb(data.radius);\n }\n};\nexport class Particle {\n constructor(engine, id, container, position, overrideOptions, group) {\n this.container = container;\n this._engine = engine;\n this.init(id, position, overrideOptions, group);\n }\n destroy(override) {\n var _a;\n if (this.unbreakable || this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n this.slow.inRange = false;\n for (const [, plugin] of this.container.plugins) {\n if (plugin.particleDestroyed) {\n plugin.particleDestroyed(this, override);\n }\n }\n for (const updater of this.container.particles.updaters) {\n if (updater.particleDestroyed) {\n updater.particleDestroyed(this, override);\n }\n }\n (_a = this.pathGenerator) === null || _a === void 0 ? void 0 : _a.reset(this);\n }\n draw(delta) {\n const container = this.container;\n for (const [, plugin] of container.plugins) {\n container.canvas.drawParticlePlugin(plugin, this, delta);\n }\n container.canvas.drawParticle(this, delta);\n }\n getFillColor() {\n var _a;\n return this._getRollColor((_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.color));\n }\n getMass() {\n return (this.getRadius() ** 2 * Math.PI) / 2;\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n var _a;\n return (_a = this.bubble.radius) !== null && _a !== void 0 ? _a : this.size.value;\n }\n getStrokeColor() {\n var _a;\n return this._getRollColor((_a = this.bubble.color) !== null && _a !== void 0 ? _a : getHslFromAnimation(this.strokeColor));\n }\n init(id, position, overrideOptions, group) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const container = this.container, engine = this._engine;\n this.id = id;\n this.group = group;\n this.fill = true;\n this.pathRotation = false;\n this.close = true;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.rotation = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = \"normal\";\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(this._engine, container, mainOptions.particles), shapeType = particlesOptions.shape.type, { reduceDuplicates } = particlesOptions;\n this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates);\n const shapeOptions = particlesOptions.shape;\n if (overrideOptions && overrideOptions.shape && overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type, shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates);\n if (shape) {\n this.shape = shape;\n shapeOptions.load(overrideOptions.shape);\n }\n }\n this.shapeData = this._loadShapeData(shapeOptions, reduceDuplicates);\n particlesOptions.load(overrideOptions);\n particlesOptions.load((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles);\n this.interactivity = new Interactivity(engine, container);\n this.interactivity.load(container.actualOptions.interactivity);\n this.interactivity.load(particlesOptions.interactivity);\n this.fill = (_c = (_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.fill) !== null && _c !== void 0 ? _c : this.fill;\n this.close = (_e = (_d = this.shapeData) === null || _d === void 0 ? void 0 : _d.close) !== null && _e !== void 0 ? _e : this.close;\n this.options = particlesOptions;\n const pathOptions = this.options.move.path;\n this.pathDelay = getValue(pathOptions.delay) * 1000;\n if (pathOptions.generator) {\n this.pathGenerator = this._engine.plugins.getPathGenerator(pathOptions.generator);\n if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) {\n this.pathGenerator.init(container);\n }\n }\n const zIndexValue = getRangeValue(this.options.zIndex.value);\n container.retina.initParticle(this);\n const sizeOptions = this.options.size, sizeRange = sizeOptions.value, sizeAnimation = sizeOptions.animation;\n this.size = {\n enable: sizeOptions.animation.enable,\n value: getRangeValue(sizeOptions.value) * container.retina.pixelRatio,\n max: getRangeMax(sizeRange) * pxRatio,\n min: getRangeMin(sizeRange) * pxRatio,\n loops: 0,\n maxLoops: getRangeValue(sizeOptions.animation.count),\n };\n if (sizeAnimation.enable) {\n this.size.status = \"increasing\";\n this.size.decay = 1 - getRangeValue(sizeAnimation.decay);\n switch (sizeAnimation.startValue) {\n case \"min\":\n this.size.value = this.size.min;\n this.size.status = \"increasing\";\n break;\n case \"random\":\n this.size.value = randomInRange(this.size);\n this.size.status = getRandom() >= 0.5 ? \"increasing\" : \"decreasing\";\n break;\n case \"max\":\n default:\n this.size.value = this.size.max;\n this.size.status = \"decreasing\";\n break;\n }\n }\n this.size.initialValue = this.size.value;\n this.bubble = {\n inRange: false,\n };\n this.slow = {\n inRange: false,\n factor: 1,\n };\n this.position = this._calcPosition(container, position, clamp(zIndexValue, 0, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size, moveCenter = Object.assign({}, this.options.move.center), isCenterPercent = moveCenter.mode === \"percent\";\n this.moveCenter = {\n x: moveCenter.x * (isCenterPercent ? canvasSize.width / 100 : 1),\n y: moveCenter.y * (isCenterPercent ? canvasSize.height / 100 : 1),\n radius: (_f = this.options.move.center.radius) !== null && _f !== void 0 ? _f : 0,\n mode: (_g = this.options.move.center.mode) !== null && _g !== void 0 ? _g : \"percent\",\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case \"inside\":\n this.outType = \"inside\";\n break;\n case \"outside\":\n this.outType = \"outside\";\n break;\n }\n this.initialVelocity = this._calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = 1 - getRangeValue(this.options.move.decay);\n this.offset = Vector.origin;\n const particles = container.particles;\n particles.needsSort = particles.needsSort || particles.lastZIndex < this.position.z;\n particles.lastZIndex = this.position.z;\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = this._engine.plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.loadShape) {\n drawer === null || drawer === void 0 ? void 0 : drawer.loadShape(this);\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.spawning = false;\n this.shadowColor = rangeColorToRgb(this.options.shadow.color);\n for (const updater of container.particles.updaters) {\n updater.init(this);\n }\n for (const mover of container.particles.movers) {\n (_h = mover.init) === null || _h === void 0 ? void 0 : _h.call(mover, this);\n }\n if (drawer === null || drawer === void 0 ? void 0 : drawer.particleInit) {\n drawer.particleInit(container, this);\n }\n for (const [, plugin] of container.plugins) {\n (_j = plugin.particleCreated) === null || _j === void 0 ? void 0 : _j.call(plugin, this);\n }\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size;\n return (this.position.x >= -radius &&\n this.position.y >= -radius &&\n this.position.y <= canvasSize.height + radius &&\n this.position.x <= canvasSize.width + radius);\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n reset() {\n var _a;\n for (const updater of this.container.particles.updaters) {\n (_a = updater.reset) === null || _a === void 0 ? void 0 : _a.call(updater, this);\n }\n }\n _calcPosition(container, position, zIndex, tryCount = 0) {\n var _a, _b, _c, _d;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-horizontal\"],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [\"bounce\", \"bounce-vertical\"],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal((_a = outModes.left) !== null && _a !== void 0 ? _a : outModes.default);\n fixHorizontal((_b = outModes.right) !== null && _b !== void 0 ? _b : outModes.default);\n fixVertical((_c = outModes.top) !== null && _c !== void 0 ? _c : outModes.default);\n fixVertical((_d = outModes.bottom) !== null && _d !== void 0 ? _d : outModes.default);\n if (this._checkOverlap(pos, tryCount)) {\n return this._calcPosition(container, undefined, zIndex, tryCount + 1);\n }\n return pos;\n }\n _calculateVelocity() {\n const baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move;\n if (moveOptions.direction === \"inside\" || moveOptions.direction === \"outside\") {\n return res;\n }\n const rad = (Math.PI / 180) * getRangeValue(moveOptions.angle.value), radOffset = (Math.PI / 180) * getRangeValue(moveOptions.angle.offset), range = {\n left: radOffset - rad / 2,\n right: radOffset + rad / 2,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= getRandom();\n }\n return res;\n }\n _checkOverlap(pos, tryCount = 0) {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= 0 && tryCount > retries) {\n throw new Error(\"Particle is overlapping and can't be placed\");\n }\n let overlaps = false;\n for (const particle of this.container.particles.array) {\n if (getDistance(pos, particle.position) < radius + particle.getRadius()) {\n overlaps = true;\n break;\n }\n }\n return overlaps;\n }\n _getRollColor(color) {\n var _a;\n if (!color || !this.roll || (!this.backColor && !this.roll.alter)) {\n return color;\n }\n const backFactor = this.roll.horizontal && this.roll.vertical ? 2 : 1, backSum = this.roll.horizontal ? Math.PI / 2 : 0, rolled = Math.floor((((_a = this.roll.angle) !== null && _a !== void 0 ? _a : 0) + backSum) / (Math.PI / backFactor)) % 2;\n if (!rolled) {\n return color;\n }\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n return color;\n }\n _loadShapeData(shapeOptions, reduceDuplicates) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n return deepExtend({}, itemFromSingleOrMultiple(shapeData, this.id, reduceDuplicates));\n }\n }\n}\n","export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n","export class Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\n","import { Range } from \"./Range\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class Circle extends Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n return getDistance(point, this.position) <= this.radius;\n }\n intersects(range) {\n const rect = range, circle = range, pos1 = this.position, pos2 = range.position, distPos = { x: Math.abs(pos2.x - pos1.x), y: Math.abs(pos2.y - pos1.y) }, r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius, dist = Math.sqrt(distPos.x ** 2 + distPos.y ** 2);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width, h = rect.size.height, edges = Math.pow(distPos.x - w, 2) + Math.pow(distPos.y - h, 2);\n return edges <= r ** 2 || (distPos.x <= r + w && distPos.y <= r + h) || distPos.x <= w || distPos.y <= h;\n }\n return false;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { Range } from \"./Range\";\nexport class Rectangle extends Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width, h = this.size.height, pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n if (range instanceof Circle) {\n range.intersects(this);\n }\n const w = this.size.width, h = this.size.height, pos1 = this.position, pos2 = range.position, size2 = range instanceof Rectangle ? range.size : { width: 0, height: 0 }, w2 = size2.width, h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n","import { Circle } from \"./Circle\";\nimport { Rectangle } from \"./Rectangle\";\nimport { getDistance } from \"../../Utils/NumberUtils\";\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this._points = [];\n this._divided = false;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this._points.length < this.capacity) {\n this._points.push(point);\n return true;\n }\n if (!this._divided) {\n this.subdivide();\n }\n return ((_e = (((_a = this._NE) === null || _a === void 0 ? void 0 : _a.insert(point)) ||\n ((_b = this._NW) === null || _b === void 0 ? void 0 : _b.insert(point)) ||\n ((_c = this._SE) === null || _c === void 0 ? void 0 : _c.insert(point)) ||\n ((_d = this._SW) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n query(range, check, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this._points) {\n if (!range.contains(p.position) &&\n getDistance(range.position, p.position) > p.particle.getRadius() &&\n (!check || check(p.particle))) {\n continue;\n }\n res.push(p.particle);\n }\n if (this._divided) {\n (_a = this._NE) === null || _a === void 0 ? void 0 : _a.query(range, check, res);\n (_b = this._NW) === null || _b === void 0 ? void 0 : _b.query(range, check, res);\n (_c = this._SE) === null || _c === void 0 ? void 0 : _c.query(range, check, res);\n (_d = this._SW) === null || _d === void 0 ? void 0 : _d.query(range, check, res);\n }\n return res;\n }\n queryCircle(position, radius, check) {\n return this.query(new Circle(position.x, position.y, radius), check);\n }\n queryRectangle(position, size, check) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height), check);\n }\n subdivide() {\n const x = this.rectangle.position.x, y = this.rectangle.position.y, w = this.rectangle.size.width, h = this.rectangle.size.height, capacity = this.capacity;\n this._NE = new QuadTree(new Rectangle(x, y, w / 2, h / 2), capacity);\n this._NW = new QuadTree(new Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this._SE = new QuadTree(new Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this._SW = new QuadTree(new Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this._divided = true;\n }\n}\n","import { InteractionManager } from \"./Utils/InteractionManager\";\nimport { Particle } from \"./Particle\";\nimport { Point } from \"./Utils/Point\";\nimport { QuadTree } from \"./Utils/QuadTree\";\nimport { Rectangle } from \"./Utils/Rectangle\";\nimport { calcPositionFromSize } from \"../Utils/NumberUtils\";\nexport class Particles {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this.nextId = 0;\n this.array = [];\n this.zArray = [];\n this.pool = [];\n this.limit = 0;\n this.needsSort = false;\n this.lastZIndex = 0;\n this.interactionManager = new InteractionManager(this._engine, container);\n const canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.movers = this._engine.plugins.getMovers(container, true);\n this.updaters = this._engine.plugins.getUpdaters(container, true);\n }\n get count() {\n return this.array.length;\n }\n addManualParticles() {\n const container = this.container, options = container.actualOptions;\n for (const particle of options.manualParticles) {\n this.addParticle(calcPositionFromSize({\n size: container.canvas.size,\n position: particle.position,\n }), particle.options);\n }\n }\n addParticle(position, overrideOptions, group, initializer) {\n const container = this.container, options = container.actualOptions, limit = options.particles.number.limit;\n if (limit > 0) {\n const countToRemove = this.count + 1 - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n return this._pushParticle(position, overrideOptions, group, initializer);\n }\n clear() {\n this.array = [];\n this.zArray = [];\n }\n destroy() {\n this.array = [];\n this.zArray = [];\n this.movers = [];\n this.updaters = [];\n }\n async draw(delta) {\n const container = this.container, canvasSize = this.container.canvas.size;\n this.quadTree = new QuadTree(new Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n container.canvas.clear();\n await this.update(delta);\n if (this.needsSort) {\n this.zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this.lastZIndex = this.zArray[this.zArray.length - 1].position.z;\n this.needsSort = false;\n }\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.zArray) {\n p.draw(delta);\n }\n }\n handleClickMode(mode) {\n this.interactionManager.handleClickMode(mode);\n }\n init() {\n var _a;\n const container = this.container, options = container.actualOptions;\n this.lastZIndex = 0;\n this.needsSort = false;\n let handled = false;\n this.updaters = this._engine.plugins.getUpdaters(container, true);\n this.interactionManager.init();\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n this.interactionManager.init();\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.init(container);\n }\n this.addManualParticles();\n if (!handled) {\n for (const group in options.particles.groups) {\n const groupOptions = options.particles.groups[group];\n for (let i = this.count, j = 0; j < ((_a = groupOptions.number) === null || _a === void 0 ? void 0 : _a.value) && i < options.particles.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n }\n push(nb, mouse, overrideOptions, group) {\n this.pushing = true;\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions, group);\n }\n this.pushing = false;\n }\n async redraw() {\n this.clear();\n this.init();\n await this.draw({ value: 0, factor: 0 });\n }\n remove(particle, group, override) {\n this.removeAt(this.array.indexOf(particle), undefined, group, override);\n }\n removeAt(index, quantity = 1, group, override) {\n if (index < 0 || index > this.count) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n const particle = this.array[i];\n if (!particle || particle.group !== group) {\n continue;\n }\n particle.destroy(override);\n this.array.splice(i--, 1);\n const zIdx = this.zArray.indexOf(particle);\n this.zArray.splice(zIdx, 1);\n this.pool.push(particle);\n deleted++;\n this._engine.dispatchEvent(\"particleRemoved\", {\n container: this.container,\n data: {\n particle,\n },\n });\n }\n }\n removeQuantity(quantity, group) {\n this.removeAt(0, quantity, group);\n }\n setDensity() {\n const options = this.container.actualOptions;\n for (const group in options.particles.groups) {\n this._applyDensity(options.particles.groups[group], 0, group);\n }\n this._applyDensity(options.particles, options.manualParticles.length);\n }\n async update(delta) {\n var _a, _b;\n const container = this.container, particlesToDelete = [];\n for (const [, pathGenerator] of container.pathGenerators) {\n pathGenerator.update();\n }\n for (const [, plugin] of container.plugins) {\n (_a = plugin.update) === null || _a === void 0 ? void 0 : _a.call(plugin, delta);\n }\n for (const particle of this.array) {\n const resizeFactor = container.canvas.resizeFactor;\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n particle.initialPosition.x *= resizeFactor.width;\n particle.initialPosition.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n await this.interactionManager.reset(particle);\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n (_b = plugin.particleUpdate) === null || _b === void 0 ? void 0 : _b.call(plugin, particle, delta);\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n await this.interactionManager.externalInteract(delta);\n for (const particle of this.array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n await this.interactionManager.particlesInteract(particle, delta);\n }\n }\n delete container.canvas.resizeFactor;\n }\n _applyDensity(options, manualCount, group) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number, densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.array.filter((t) => t.group === group).length);\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n }\n _initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.factor * pxRatio ** 2 * densityOptions.area);\n }\n _pushParticle(position, overrideOptions, group, initializer) {\n try {\n let particle = this.pool.pop();\n if (particle) {\n particle.init(this.nextId, position, overrideOptions, group);\n }\n else {\n particle = new Particle(this._engine, this.nextId, this.container, position, overrideOptions, group);\n }\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this.array.push(particle);\n this.zArray.push(particle);\n this.nextId++;\n this._engine.dispatchEvent(\"particleAdded\", {\n container: this.container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n console.warn(`error adding particle: ${e}`);\n return;\n }\n }\n}\n","import { getRangeValue } from \"../Utils/NumberUtils\";\nimport { isSsr } from \"../Utils/Utils\";\nexport class Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? 1 : window.devicePixelRatio;\n this.reduceFactor = 1;\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.attractDistance = getRangeValue(particles.move.attract.distance) * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n this.maxSpeed = getRangeValue(particles.move.gravity.maxSpeed) * ratio;\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveDistance = options.move.distance, props = particle.retina;\n props.attractDistance = getRangeValue(options.move.attract.distance) * ratio;\n props.moveDrift = getRangeValue(options.move.drift) * ratio;\n props.moveSpeed = getRangeValue(options.move.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(options.move.gravity.maxSpeed) * ratio;\n }\n}\n","import { animate, cancelAnimation } from \"../Utils/Utils\";\nimport { Canvas } from \"./Canvas\";\nimport { EventListeners } from \"./Utils/EventListeners\";\nimport { FrameManager } from \"./Utils/FrameManager\";\nimport { Options } from \"../Options/Classes/Options\";\nimport { Particles } from \"./Particles\";\nimport { Retina } from \"./Retina\";\nimport { getRangeValue } from \"../Utils/NumberUtils\";\nimport { loadOptions } from \"../Utils/OptionsUtils\";\nfunction guardCheck(container) {\n return container && !container.destroyed;\n}\nfunction loadContainerOptions(engine, container, ...sourceOptionsArr) {\n const options = new Options(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nconst defaultPathGeneratorKey = \"default\", defaultPathGenerator = {\n generate: (p) => {\n const v = p.velocity.copy();\n v.angle += (v.length * Math.PI) / 180;\n return v;\n },\n init: () => {\n },\n update: () => {\n },\n reset: () => {\n },\n};\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this.id = id;\n this._engine = engine;\n this.fpsLimit = 120;\n this.smooth = false;\n this._delay = 0;\n this.duration = 0;\n this.lifeTime = 0;\n this._firstStart = true;\n this.started = false;\n this.destroyed = false;\n this._paused = true;\n this.lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this);\n this.particles = new Particles(this._engine, this);\n this.frameManager = new FrameManager(this);\n this.pathGenerators = new Map();\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.drawers = new Map();\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this);\n this._eventListeners = new EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this._intersectionObserver = new IntersectionObserver((entries) => this._intersectionManager(entries));\n }\n this._engine.dispatchEvent(\"containerBuilt\", { container: this });\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n addClickHandler(callback) {\n if (!guardCheck(this)) {\n return;\n }\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (!guardCheck(this)) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, 1);\n };\n const touchStartHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - 1];\n if (!lastTouch) {\n return;\n }\n }\n const element = this.canvas.element, canvasRect = element ? element.getBoundingClientRect() : undefined, pos = {\n x: lastTouch.clientX - (canvasRect ? canvasRect.left : 0),\n y: lastTouch.clientY - (canvasRect ? canvasRect.top : 0),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false, touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n addPath(key, generator, override = false) {\n if (!guardCheck(this) || (!override && this.pathGenerators.has(key))) {\n return false;\n }\n this.pathGenerators.set(key, generator !== null && generator !== void 0 ? generator : defaultPathGenerator);\n return true;\n }\n destroy() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n this.particles.destroy();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this._engine.plugins.destroy(this);\n this.destroyed = true;\n const mainArr = this._engine.dom(), idx = mainArr.findIndex((t) => t === this);\n if (idx >= 0) {\n mainArr.splice(idx, 1);\n }\n this._engine.dispatchEvent(\"containerDestroyed\", { container: this });\n }\n draw(force) {\n if (!guardCheck(this)) {\n return;\n }\n let refreshTime = force;\n this._drawAnimationFrame = animate()(async (timestamp) => {\n if (refreshTime) {\n this.lastFrameTime = undefined;\n refreshTime = false;\n }\n await this.frameManager.nextFrame(timestamp);\n });\n }\n exportConfiguration() {\n return JSON.stringify(this.actualOptions, (key, value) => {\n if (key === \"_engine\" || key === \"_container\") {\n return;\n }\n return value;\n }, 2);\n }\n exportImage(callback, type, quality) {\n const element = this.canvas.element;\n if (element) {\n element.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n getAnimationStatus() {\n return !this._paused && !this.pageHidden && guardCheck(this);\n }\n handleClickMode(mode) {\n if (!guardCheck(this)) {\n return;\n }\n this.particles.handleClickMode(mode);\n for (const [, plugin] of this.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n async init() {\n if (!guardCheck(this)) {\n return;\n }\n const shapes = this._engine.plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = this._engine.plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n const availablePlugins = this._engine.plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n this.retina.init();\n await this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n this.zLayers = this.actualOptions.zLayers;\n this.duration = getRangeValue(this.actualOptions.duration) * 1000;\n this._delay = getRangeValue(this.actualOptions.delay) * 1000;\n this.lifeTime = 0;\n this.fpsLimit = this.actualOptions.fpsLimit > 0 ? this.actualOptions.fpsLimit : 120;\n this.smooth = this.actualOptions.smooth;\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n await drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n await plugin.init();\n }\n }\n this._engine.dispatchEvent(\"containerInit\", { container: this });\n this.particles.init();\n this.particles.setDensity();\n for (const [, plugin] of this.plugins) {\n if (plugin.particlesSetup) {\n plugin.particlesSetup();\n }\n }\n this._engine.dispatchEvent(\"particlesSetup\", { container: this });\n }\n async loadTheme(name) {\n if (!guardCheck(this)) {\n return;\n }\n this._currentTheme = name;\n await this.refresh();\n }\n pause() {\n if (!guardCheck(this)) {\n return;\n }\n if (this._drawAnimationFrame !== undefined) {\n cancelAnimation()(this._drawAnimationFrame);\n delete this._drawAnimationFrame;\n }\n if (this._paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this._paused = true;\n }\n this._engine.dispatchEvent(\"containerPaused\", { container: this });\n }\n play(force) {\n if (!guardCheck(this)) {\n return;\n }\n const needsUpdate = this._paused || force;\n if (this._firstStart && !this.actualOptions.autoPlay) {\n this._firstStart = false;\n return;\n }\n if (this._paused) {\n this._paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this._engine.dispatchEvent(\"containerPlay\", { container: this });\n this.draw(needsUpdate || false);\n }\n async refresh() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n return this.start();\n }\n async reset() {\n if (!guardCheck(this)) {\n return;\n }\n this._options = loadContainerOptions(this._engine, this);\n return this.refresh();\n }\n setNoise(noiseOrGenerator, init, update) {\n if (!guardCheck(this)) {\n return;\n }\n this.setPath(noiseOrGenerator, init, update);\n }\n setPath(pathOrGenerator, init, update) {\n if (!pathOrGenerator || !guardCheck(this)) {\n return;\n }\n const pathGenerator = Object.assign({}, defaultPathGenerator);\n if (typeof pathOrGenerator === \"function\") {\n pathGenerator.generate = pathOrGenerator;\n if (init) {\n pathGenerator.init = init;\n }\n if (update) {\n pathGenerator.update = update;\n }\n }\n else {\n const oldGenerator = pathGenerator;\n pathGenerator.generate = pathOrGenerator.generate || oldGenerator.generate;\n pathGenerator.init = pathOrGenerator.init || oldGenerator.init;\n pathGenerator.update = pathOrGenerator.update || oldGenerator.update;\n }\n this.addPath(defaultPathGeneratorKey, pathGenerator, true);\n }\n async start() {\n if (!guardCheck(this) || this.started) {\n return;\n }\n await this.init();\n this.started = true;\n await new Promise((resolve) => {\n this._delayTimeout = setTimeout(async () => {\n this._eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.start) {\n await plugin.start();\n }\n }\n this._engine.dispatchEvent(\"containerStarted\", { container: this });\n this.play();\n resolve();\n }, this._delay);\n });\n }\n stop() {\n if (!guardCheck(this) || !this.started) {\n return;\n }\n if (this._delayTimeout) {\n clearTimeout(this._delayTimeout);\n delete this._delayTimeout;\n }\n this._firstStart = true;\n this.started = false;\n this._eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.stop();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this._sourceOptions = this._options;\n this._engine.dispatchEvent(\"containerStopped\", { container: this });\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this._currentTheme);\n if (this.responsiveMaxWidth === newMaxWidth) {\n return false;\n }\n this.responsiveMaxWidth = newMaxWidth;\n return true;\n }\n _intersectionManager(entries) {\n if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n (entry.isIntersecting ? this.play : this.pause)();\n }\n }\n}\n","import { Container } from \"./Container\";\nimport { generatedAttribute } from \"./Utils/Constants\";\nimport { getRandom } from \"../Utils/NumberUtils\";\nimport { itemFromSingleOrMultiple } from \"../Utils/Utils\";\nasync function getDataFromUrl(jsonUrl, index) {\n const url = itemFromSingleOrMultiple(jsonUrl, index);\n if (!url) {\n return;\n }\n const response = await fetch(url);\n if (response.ok) {\n return response.json();\n }\n console.error(`tsParticles - Error ${response.status} while retrieving config file`);\n}\nexport class Loader {\n constructor(engine) {\n this._engine = engine;\n }\n load(tagId, options, index) {\n const params = { index, remote: false };\n if (typeof tagId === \"string\") {\n params.tagId = tagId;\n }\n else {\n params.options = tagId;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async loadJSON(tagId, jsonUrl, index) {\n let url, id;\n if (typeof jsonUrl === \"number\" || jsonUrl === undefined) {\n url = tagId;\n }\n else {\n id = tagId;\n url = jsonUrl;\n }\n return this.loadRemoteOptions({ tagId: id, url, index, remote: true });\n }\n async loadOptions(params) {\n var _a, _b, _c;\n const tagId = (_a = params.tagId) !== null && _a !== void 0 ? _a : `tsparticles${Math.floor(getRandom() * 10000)}`, { index, url: jsonUrl, remote } = params, options = remote ? await getDataFromUrl(jsonUrl, index) : params.options;\n let domContainer = (_b = params.element) !== null && _b !== void 0 ? _b : document.getElementById(tagId);\n if (!domContainer) {\n domContainer = document.createElement(\"div\");\n domContainer.id = tagId;\n (_c = document.querySelector(\"body\")) === null || _c === void 0 ? void 0 : _c.append(domContainer);\n }\n const currentOptions = itemFromSingleOrMultiple(options, index), dom = this._engine.dom(), oldIndex = dom.findIndex((v) => v.id === tagId);\n if (oldIndex >= 0) {\n const old = this._engine.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n canvasEl.dataset[generatedAttribute] = \"false\";\n }\n else {\n canvasEl = document.createElement(\"canvas\");\n canvasEl.dataset[generatedAttribute] = \"true\";\n domContainer.appendChild(canvasEl);\n }\n }\n if (!canvasEl.style.width) {\n canvasEl.style.width = \"100%\";\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = \"100%\";\n }\n const newItem = new Container(this._engine, tagId, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\n else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n async loadRemoteOptions(params) {\n return this.loadOptions(params);\n }\n async set(id, domContainer, options, index) {\n const params = { index, remote: false };\n if (typeof id === \"string\") {\n params.tagId = id;\n }\n else {\n params.element = id;\n }\n if (domContainer instanceof HTMLElement) {\n params.element = domContainer;\n }\n else {\n params.options = domContainer;\n }\n if (typeof options === \"number\") {\n params.index = options;\n }\n else {\n params.options = options !== null && options !== void 0 ? options : params.options;\n }\n return this.loadOptions(params);\n }\n async setJSON(id, domContainer, jsonUrl, index) {\n let url, newId, newIndex, element;\n if (id instanceof HTMLElement) {\n element = id;\n url = domContainer;\n newIndex = jsonUrl;\n }\n else {\n newId = id;\n element = domContainer;\n url = jsonUrl;\n newIndex = index;\n }\n return this.loadRemoteOptions({ tagId: newId, url, index: newIndex, element, remote: true });\n }\n}\n","import { executeOnSingleOrMultiple } from \"../../Utils/Utils\";\nfunction getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = [...initializers.values()].map((t) => t(container));\n map.set(container, res);\n }\n return res;\n}\nexport class Plugins {\n constructor(engine) {\n this._engine = engine;\n this.plugins = [];\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map(),\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.drawers = new Map();\n this.pathGenerators = new Map();\n }\n addInteractor(name, initInteractor) {\n this._initializers.interactors.set(name, initInteractor);\n }\n addParticleMover(name, initMover) {\n this._initializers.movers.set(name, initMover);\n }\n addParticleUpdater(name, initUpdater) {\n this._initializers.updaters.set(name, initUpdater);\n }\n addPathGenerator(type, pathGenerator) {\n if (!this.getPathGenerator(type)) {\n this.pathGenerators.set(type, pathGenerator);\n }\n }\n addPlugin(plugin) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n }\n addPreset(presetKey, options, override = false) {\n if (override || !this.getPreset(presetKey)) {\n this.presets.set(presetKey, options);\n }\n }\n addShapeDrawer(types, drawer) {\n executeOnSingleOrMultiple(types, (type) => {\n if (!this.getShapeDrawer(type)) {\n this.drawers.set(type, drawer);\n }\n });\n }\n destroy(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (!plugin.needsPlugin(container.actualOptions)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find((t) => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.drawers.get(type);\n }\n getSupportedShapes() {\n return this.drawers.keys();\n }\n getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n loadOptions(options, sourceOptions) {\n for (const plugin of this.plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(options, ...sourceOptions);\n }\n }\n }\n}\n","import { EventDispatcher } from \"./Utils/EventDispatcher\";\nimport { Loader } from \"./Core/Loader\";\nimport { Plugins } from \"./Core/Utils/Plugins\";\nexport class Engine {\n constructor() {\n this._domArray = [];\n this._eventDispatcher = new EventDispatcher();\n this._initialized = false;\n this._loader = new Loader(this);\n this.plugins = new Plugins(this);\n }\n get version() {\n return \"2.9.3\";\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer) {\n this.plugins.addInteractor(name, interactorInitializer);\n await this.refresh();\n }\n async addMover(name, moverInitializer) {\n this.plugins.addParticleMover(name, moverInitializer);\n await this.refresh();\n }\n async addParticleUpdater(name, updaterInitializer) {\n this.plugins.addParticleUpdater(name, updaterInitializer);\n await this.refresh();\n }\n async addPathGenerator(name, generator) {\n this.plugins.addPathGenerator(name, generator);\n await this.refresh();\n }\n async addPlugin(plugin) {\n this.plugins.addPlugin(plugin);\n await this.refresh();\n }\n async addPreset(preset, options, override = false) {\n this.plugins.addPreset(preset, options, override);\n await this.refresh();\n }\n async addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init,\n };\n }\n else {\n customDrawer = drawer;\n }\n this.plugins.addShapeDrawer(shape, customDrawer);\n await this.refresh();\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this._domArray;\n }\n domItem(index) {\n const dom = this.dom(), item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n init() {\n if (!this._initialized) {\n this._initialized = true;\n }\n }\n async load(tagId, options) {\n return this._loader.load(tagId, options);\n }\n async loadFromArray(tagId, options, index) {\n return this._loader.load(tagId, options, index);\n }\n async loadJSON(tagId, pathConfigJson, index) {\n return this._loader.loadJSON(tagId, pathConfigJson, index);\n }\n async refresh() {\n for (const instance of this.dom()) {\n await instance.refresh();\n }\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n async set(id, element, options) {\n return this._loader.set(id, element, options);\n }\n async setJSON(id, element, pathConfigJson, index) {\n return this._loader.setJSON(id, element, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n const dom = this.dom();\n if (!dom.length) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n domItem.addClickHandler(callback);\n }\n }\n}\n","import { getRangeValue, parseAlpha } from \"./NumberUtils\";\nimport { hslToRgb, hslaToRgba } from \"./ColorUtils\";\nexport class HslColorManager {\n constructor() {\n this.key = \"hsl\";\n this.stringPrefix = \"hsl\";\n }\n handleColor(color) {\n var _a;\n const colorValue = color.value, hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;\n if (hslColor.h !== undefined && hslColor.s !== undefined && hslColor.l !== undefined) {\n return hslToRgb(hslColor);\n }\n }\n handleRangeColor(color) {\n var _a;\n const colorValue = color.value, hslColor = (_a = colorValue.hsl) !== null && _a !== void 0 ? _a : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n return hslToRgb({\n h: getRangeValue(hslColor.h),\n l: getRangeValue(hslColor.l),\n s: getRangeValue(hslColor.s),\n });\n }\n }\n parseString(input) {\n if (!input.startsWith(\"hsl\")) {\n return;\n }\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.%]+)\\s*)?\\)/i, result = regex.exec(input);\n return result\n ? hslaToRgba({\n a: result.length > 4 ? parseAlpha(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n}\n","import { getRangeValue, parseAlpha } from \"./NumberUtils\";\nexport class RgbColorManager {\n constructor() {\n this.key = \"rgb\";\n this.stringPrefix = \"rgb\";\n }\n handleColor(color) {\n var _a;\n const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n return rgbColor;\n }\n }\n handleRangeColor(color) {\n var _a;\n const colorValue = color.value, rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n return {\n r: getRangeValue(rgbColor.r),\n g: getRangeValue(rgbColor.g),\n b: getRangeValue(rgbColor.b),\n };\n }\n }\n parseString(input) {\n if (!input.startsWith(this.stringPrefix)) {\n return;\n }\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.%]+)\\s*)?\\)/i, result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseAlpha(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n}\n","export class ExternalInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = \"external\";\n }\n}\n","export class ParticlesInteractorBase {\n constructor(container) {\n this.container = container;\n this.type = \"particles\";\n }\n}\n","import { Engine } from \"./engine\";\nimport { HslColorManager } from \"./Utils/HslColorManager\";\nimport { RgbColorManager } from \"./Utils/RgbColorManager\";\nimport { addColorManager } from \"./Utils/ColorUtils\";\nconst rgbColorManager = new RgbColorManager(), hslColorManager = new HslColorManager();\naddColorManager(rgbColorManager);\naddColorManager(hslColorManager);\nconst tsParticles = new Engine();\ntsParticles.init();\nexport * from \"./Core/Interfaces/Colors\";\nexport * from \"./Core/Interfaces/IBounds\";\nexport * from \"./Core/Interfaces/IBubbleParticleData\";\nexport * from \"./Core/Interfaces/ICircleBouncer\";\nexport * from \"./Core/Interfaces/IColorManager\";\nexport * from \"./Core/Interfaces/IContainerInteractivity\";\nexport * from \"./Core/Interfaces/IContainerPlugin\";\nexport * from \"./Core/Interfaces/ICoordinates\";\nexport * from \"./Core/Interfaces/IDelta\";\nexport * from \"./Core/Interfaces/IDimension\";\nexport * from \"./Core/Interfaces/IDistance\";\nexport * from \"./Core/Interfaces/IExternalInteractor\";\nexport * from \"./Core/Interfaces/IInteractor\";\nexport * from \"./Core/Interfaces/IMouseData\";\nexport * from \"./Core/Interfaces/IMovePathGenerator\";\nexport * from \"./Core/Interfaces/IParticle\";\nexport * from \"./Core/Interfaces/IParticleColorStyle\";\nexport * from \"./Core/Interfaces/IParticleHslAnimation\";\nexport * from \"./Core/Interfaces/IParticlesInteractor\";\nexport * from \"./Core/Interfaces/IParticleLife\";\nexport * from \"./Core/Interfaces/IParticleRetinaProps\";\nexport * from \"./Core/Interfaces/IParticleRoll\";\nexport * from \"./Core/Interfaces/IParticleTransformValues\";\nexport * from \"./Core/Interfaces/IParticleUpdater\";\nexport * from \"./Core/Interfaces/IParticleValueAnimation\";\nexport * from \"./Core/Interfaces/IParticlesMover\";\nexport * from \"./Core/Interfaces/IPlugin\";\nexport * from \"./Core/Interfaces/IRangeValue\";\nexport * from \"./Core/Interfaces/IRectSideResult\";\nexport * from \"./Core/Interfaces/IShapeDrawer\";\nexport * from \"./Core/Interfaces/IShapeValues\";\nexport * from \"./Core/Interfaces/ISlowParticleData\";\nexport * from \"./Core/Utils/Circle\";\nexport * from \"./Core/Utils/Constants\";\nexport * from \"./Core/Utils/ExternalInteractorBase\";\nexport * from \"./Core/Utils/ParticlesInteractorBase\";\nexport * from \"./Core/Utils/Point\";\nexport * from \"./Core/Utils/Range\";\nexport * from \"./Core/Utils/Rectangle\";\nexport * from \"./Core/Utils/Vector\";\nexport * from \"./Core/Utils/Vector3d\";\nexport * from \"./Enums/Directions/MoveDirection\";\nexport * from \"./Enums/Directions/RotateDirection\";\nexport * from \"./Enums/Directions/OutModeDirection\";\nexport * from \"./Enums/Modes/ClickMode\";\nexport * from \"./Enums/Modes/DivMode\";\nexport * from \"./Enums/Modes/HoverMode\";\nexport * from \"./Enums/Modes/CollisionMode\";\nexport * from \"./Enums/Modes/OutMode\";\nexport * from \"./Enums/Modes/SizeMode\";\nexport * from \"./Enums/Modes/ThemeMode\";\nexport * from \"./Enums/Modes/ResponsiveMode\";\nexport * from \"./Enums/Types/AlterType\";\nexport * from \"./Enums/Types/DestroyType\";\nexport * from \"./Enums/Types/GradientType\";\nexport * from \"./Enums/Types/InteractorType\";\nexport * from \"./Enums/Types/ParticleOutType\";\nexport * from \"./Enums/Types/StartValueType\";\nexport * from \"./Enums/Types/DivType\";\nexport * from \"./Enums/Types/EasingType\";\nexport * from \"./Enums/Types/EventType\";\nexport * from \"./Enums/AnimationStatus\";\nexport * from \"./Enums/InteractivityDetect\";\nexport * from \"./Options/Classes/AnimatableColor\";\nexport * from \"./Options/Classes/AnimationOptions\";\nexport * from \"./Options/Classes/Background/Background\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMask\";\nexport * from \"./Options/Classes/BackgroundMask/BackgroundMaskCover\";\nexport * from \"./Options/Classes/ColorAnimation\";\nexport * from \"./Options/Classes/FullScreen/FullScreen\";\nexport * from \"./Options/Classes/HslAnimation\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/ClickEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/DivEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Events\";\nexport * from \"./Options/Classes/Interactivity/Events/HoverEvent\";\nexport * from \"./Options/Classes/Interactivity/Events/Parallax\";\nexport * from \"./Options/Classes/Interactivity/Interactivity\";\nexport * from \"./Options/Classes/Interactivity/Modes/Modes\";\nexport * from \"./Options/Classes/ManualParticle\";\nexport * from \"./Options/Classes/Options\";\nexport * from \"./Options/Classes/OptionsColor\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounce\";\nexport * from \"./Options/Classes/Particles/Bounce/ParticlesBounceFactor\";\nexport * from \"./Options/Classes/Particles/Collisions/Collisions\";\nexport * from \"./Options/Classes/Particles/Collisions/CollisionsOverlap\";\nexport * from \"./Options/Classes/Particles/ParticlesOptions\";\nexport * from \"./Options/Classes/Particles/Shadow\";\nexport * from \"./Options/Classes/Particles/Stroke\";\nexport * from \"./Options/Classes/Particles/Move/MoveAttract\";\nexport * from \"./Options/Classes/Particles/Move/Move\";\nexport * from \"./Options/Classes/Particles/Move/MoveAngle\";\nexport * from \"./Options/Classes/Particles/Move/MoveCenter\";\nexport * from \"./Options/Classes/Particles/Move/MoveGravity\";\nexport * from \"./Options/Classes/Particles/Move/OutModes\";\nexport * from \"./Options/Classes/Particles/Move/Path/MovePath\";\nexport * from \"./Options/Classes/Particles/Move/Spin\";\nexport * from \"./Options/Classes/Particles/Move/MoveTrail\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesNumber\";\nexport * from \"./Options/Classes/Particles/Number/ParticlesDensity\";\nexport * from \"./Options/Classes/Particles/Opacity/Opacity\";\nexport * from \"./Options/Classes/Particles/Opacity/OpacityAnimation\";\nexport * from \"./Options/Classes/Particles/Shape/Shape\";\nexport * from \"./Options/Classes/Particles/Size/Size\";\nexport * from \"./Options/Classes/Particles/Size/SizeAnimation\";\nexport * from \"./Options/Classes/Particles/ZIndex/ZIndex\";\nexport * from \"./Options/Classes/Responsive\";\nexport * from \"./Options/Classes/Theme/Theme\";\nexport * from \"./Options/Classes/Theme/ThemeDefault\";\nexport * from \"./Options/Classes/ValueWithRandom\";\nexport * from \"./Options/Interfaces/Background/IBackground\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMask\";\nexport * from \"./Options/Interfaces/BackgroundMask/IBackgroundMaskCover\";\nexport * from \"./Options/Interfaces/FullScreen/IFullScreen\";\nexport * from \"./Options/Interfaces/IAnimatable\";\nexport * from \"./Options/Interfaces/IAnimatableColor\";\nexport * from \"./Options/Interfaces/IAnimation\";\nexport * from \"./Options/Interfaces/IColorAnimation\";\nexport * from \"./Options/Interfaces/IHslAnimation\";\nexport * from \"./Options/Interfaces/IManualParticle\";\nexport * from \"./Options/Interfaces/IOptionLoader\";\nexport * from \"./Options/Interfaces/IOptions\";\nexport * from \"./Options/Interfaces/IOptionsColor\";\nexport * from \"./Options/Interfaces/IResponsive\";\nexport * from \"./Options/Interfaces/IValueWithRandom\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IClickEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IDivEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IEvents\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IHoverEvent\";\nexport * from \"./Options/Interfaces/Interactivity/Events/IParallax\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModeDiv\";\nexport * from \"./Options/Interfaces/Interactivity/Modes/IModes\";\nexport * from \"./Options/Interfaces/Interactivity/IInteractivity\";\nexport * from \"./Options/Interfaces/Particles/Bounce/IParticlesBounce\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisions\";\nexport * from \"./Options/Interfaces/Particles/Collisions/ICollisionsOverlap\";\nexport * from \"./Options/Interfaces/Particles/IParticlesOptions\";\nexport * from \"./Options/Interfaces/Particles/IShadow\";\nexport * from \"./Options/Interfaces/Particles/IStroke\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAttract\";\nexport * from \"./Options/Interfaces/Particles/Move/IMove\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveAngle\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveCenter\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveGravity\";\nexport * from \"./Options/Interfaces/Particles/Move/Path/IMovePath\";\nexport * from \"./Options/Interfaces/Particles/Move/IOutModes\";\nexport * from \"./Options/Interfaces/Particles/Move/ISpin\";\nexport * from \"./Options/Interfaces/Particles/Move/IMoveTrail\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesDensity\";\nexport * from \"./Options/Interfaces/Particles/Number/IParticlesNumber\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacity\";\nexport * from \"./Options/Interfaces/Particles/Opacity/IOpacityAnimation\";\nexport * from \"./Options/Interfaces/Particles/Shape/ICharacterShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IImageShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IPolygonShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShape\";\nexport * from \"./Options/Interfaces/Particles/Shape/IShapeValues\";\nexport * from \"./Options/Interfaces/Particles/Shape/IStarShape\";\nexport * from \"./Options/Interfaces/Particles/Size/ISize\";\nexport * from \"./Options/Interfaces/Particles/Size/ISizeAnimation\";\nexport * from \"./Options/Interfaces/Particles/ZIndex/IZIndex\";\nexport * from \"./Options/Interfaces/Theme/ITheme\";\nexport * from \"./Options/Interfaces/Theme/IThemeDefault\";\nexport * from \"./Types/CustomEventArgs\";\nexport * from \"./Types/CustomEventListener\";\nexport * from \"./Types/ParticlesGroups\";\nexport * from \"./Types/PathOptions\";\nexport * from \"./Types/RangeValue\";\nexport * from \"./Types/RecursivePartial\";\nexport * from \"./Types/ShapeData\";\nexport * from \"./Types/ShapeDrawerFunctions\";\nexport * from \"./Types/SingleOrMultiple\";\nexport * from \"./Utils/CanvasUtils\";\nexport * from \"./Utils/ColorUtils\";\nexport * from \"./Utils/HslColorManager\";\nexport * from \"./Utils/NumberUtils\";\nexport * from \"./Utils/OptionsUtils\";\nexport * from \"./Utils/RgbColorManager\";\nexport * from \"./Utils/Utils\";\nexport { tsParticles };\nexport { CollisionsAbsorb } from \"./Options/Classes/Particles/Collisions/CollisionsAbsorb\";\nexport { ResizeEvent } from \"./Options/Classes/Interactivity/Events/ResizeEvent\";\n","export class AbsorberSizeLimit {\n constructor() {\n this.radius = 0;\n this.mass = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mass !== undefined) {\n this.mass = data.mass;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { AbsorberSizeLimit } from \"./AbsorberSizeLimit\";\nimport { ValueWithRandom } from \"tsparticles-engine\";\nexport class AbsorberSize extends ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.value = 50;\n this.limit = new AbsorberSizeLimit();\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if (typeof data.limit === \"number\") {\n this.limit.radius = data.limit;\n }\n else {\n this.limit.load(data.limit);\n }\n }\n}\n","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nimport { AbsorberSize } from \"./AbsorberSize\";\nexport class Absorber {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n this.name = data.name;\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = setRangeValue(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = setRangeValue(data.position.y);\n }\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\n","import { Vector, calcPositionOrRandomFromSize, calcPositionOrRandomFromSizeRanged, getDistance, getDistances, getRandom, getRangeValue, getStyleFromRgb, isPointInside, rangeColorToRgb, } from \"tsparticles-engine\";\nimport { Absorber } from \"./Options/Classes/Absorber\";\nexport class AbsorberInstance {\n constructor(absorbers, container, options, position) {\n var _a, _b, _c;\n this.absorbers = absorbers;\n this.container = container;\n this.initialPosition = position ? Vector.create(position.x, position.y) : undefined;\n if (options instanceof Absorber) {\n this.options = options;\n }\n else {\n this.options = new Absorber();\n this.options.load(options);\n }\n this.dragging = false;\n this.name = this.options.name;\n this.opacity = this.options.opacity;\n this.size = getRangeValue(this.options.size.value) * container.retina.pixelRatio;\n this.mass = this.size * this.options.size.density * container.retina.reduceFactor;\n const limit = this.options.size.limit;\n this.limit = {\n radius: limit.radius * container.retina.pixelRatio * container.retina.reduceFactor,\n mass: limit.mass,\n };\n this.color = (_a = rangeColorToRgb(this.options.color)) !== null && _a !== void 0 ? _a : {\n b: 0,\n g: 0,\n r: 0,\n };\n this.position = (_c = (_b = this.initialPosition) === null || _b === void 0 ? void 0 : _b.copy()) !== null && _c !== void 0 ? _c : this.calcPosition();\n }\n attract(particle) {\n const container = this.container, options = this.options;\n if (options.draggable) {\n const mouse = container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = getDistance(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n }\n else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition(), { dx, dy, distance } = getDistances(this.position, pos), v = Vector.create(dx, dy);\n v.length = (this.mass / Math.pow(distance, 2)) * container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * 0.033 * container.retina.pixelRatio;\n if ((this.size > particle.getRadius() && distance < this.size - particle.getRadius()) ||\n (particle.absorberOrbit !== undefined && particle.absorberOrbit.length < 0)) {\n if (options.destroy) {\n particle.destroy();\n }\n else {\n particle.needsNewPosition = true;\n this.updateParticlePosition(particle, v);\n }\n }\n else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this.updateParticlePosition(particle, v);\n }\n if (this.limit.radius <= 0 || this.size < this.limit.radius) {\n this.size += sizeFactor;\n }\n if (this.limit.mass <= 0 || this.mass < this.limit.mass) {\n this.mass += sizeFactor * this.options.size.density * container.retina.reduceFactor;\n }\n }\n else {\n this.updateParticlePosition(particle, v);\n }\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(0, 0, this.size, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStyle = getStyleFromRgb(this.color, this.opacity);\n context.fill();\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin)\n ? initialPosition\n : this.calcPosition();\n }\n calcPosition() {\n const exactPosition = calcPositionOrRandomFromSizeRanged({\n size: this.container.canvas.size,\n position: this.options.position,\n });\n return Vector.create(exactPosition.x, exactPosition.y);\n }\n updateParticlePosition(particle, v) {\n var _a;\n if (particle.destroyed) {\n return;\n }\n const container = this.container, canvasSize = container.canvas.size;\n if (particle.needsNewPosition) {\n const newPosition = calcPositionOrRandomFromSize({ size: canvasSize });\n particle.position.setTo(newPosition);\n particle.velocity.setTo(particle.initialVelocity);\n particle.absorberOrbit = undefined;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.absorberOrbit === undefined) {\n particle.absorberOrbit = Vector.create(0, 0);\n particle.absorberOrbit.length = getDistance(particle.getPosition(), this.position);\n particle.absorberOrbit.angle = getRandom() * Math.PI * 2;\n }\n if (particle.absorberOrbit.length <= this.size && !this.options.destroy) {\n const minSize = Math.min(canvasSize.width, canvasSize.height);\n particle.absorberOrbit.length = minSize * (1 + (getRandom() * 0.2 - 0.1));\n }\n if (particle.absorberOrbitDirection === undefined) {\n particle.absorberOrbitDirection =\n particle.velocity.x >= 0 ? \"clockwise\" : \"counter-clockwise\";\n }\n const orbitRadius = particle.absorberOrbit.length, orbitAngle = particle.absorberOrbit.angle, orbitDirection = particle.absorberOrbitDirection;\n particle.velocity.setTo(Vector.origin);\n const updateFunc = {\n x: orbitDirection === \"clockwise\" ? Math.cos : Math.sin,\n y: orbitDirection === \"clockwise\" ? Math.sin : Math.cos,\n };\n particle.position.x = this.position.x + orbitRadius * updateFunc.x(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * updateFunc.y(orbitAngle);\n particle.absorberOrbit.length -= v.length;\n particle.absorberOrbit.angle +=\n ((((_a = particle.retina.moveSpeed) !== null && _a !== void 0 ? _a : 0) * container.retina.pixelRatio) / 100) *\n container.retina.reduceFactor;\n }\n else {\n const addV = Vector.origin;\n addV.length = v.length;\n addV.angle = v.angle;\n particle.velocity.addTo(addV);\n }\n }\n}\n","import { executeOnSingleOrMultiple, itemFromSingleOrMultiple } from \"tsparticles-engine\";\nimport { AbsorberInstance } from \"./AbsorberInstance\";\nexport class Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n container.getAbsorber = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n container.addAbsorber = (options, position) => this.addAbsorber(options, position);\n }\n addAbsorber(options, position) {\n const absorber = new AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n draw(context) {\n for (const absorber of this.array) {\n absorber.draw(context);\n }\n }\n handleClickMode(mode) {\n const absorberOptions = this.absorbers, modeAbsorbers = this.interactivityAbsorbers;\n if (mode === \"absorber\") {\n const absorbersModeOptions = itemFromSingleOrMultiple(modeAbsorbers), absorbersOptions = absorbersModeOptions !== null && absorbersModeOptions !== void 0 ? absorbersModeOptions : itemFromSingleOrMultiple(absorberOptions), aPosition = this.container.interactivity.mouse.clickPosition;\n this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n async init() {\n this.absorbers = this.container.actualOptions.absorbers;\n this.interactivityAbsorbers = this.container.actualOptions.interactivity.modes.absorbers;\n executeOnSingleOrMultiple(this.absorbers, (absorber) => {\n this.addAbsorber(absorber);\n });\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n stop() {\n this.array = [];\n }\n}\n","import { executeOnSingleOrMultiple, isInArray } from \"tsparticles-engine\";\nimport { Absorber } from \"./Options/Classes/Absorber\";\nimport { Absorbers } from \"./Absorbers\";\nclass AbsorbersPlugin {\n constructor() {\n this.id = \"absorbers\";\n }\n getPlugin(container) {\n return new Absorbers(container);\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n if (source === null || source === void 0 ? void 0 : source.absorbers) {\n options.absorbers = executeOnSingleOrMultiple(source.absorbers, (absorber) => {\n const tmp = new Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n options.interactivity.modes.absorbers = executeOnSingleOrMultiple((_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers, (absorber) => {\n const tmp = new Absorber();\n tmp.load(absorber);\n return tmp;\n });\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (!options) {\n return false;\n }\n const absorbers = options.absorbers;\n if (absorbers instanceof Array) {\n return !!absorbers.length;\n }\n else if (absorbers) {\n return true;\n }\n else if (((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n isInArray(\"absorber\", options.interactivity.events.onClick.mode)) {\n return true;\n }\n return false;\n }\n}\nexport async function loadAbsorbersPlugin(engine) {\n const plugin = new AbsorbersPlugin();\n await engine.addPlugin(plugin);\n}\nexport * from \"./AbsorberContainer\";\nexport * from \"./Enums/AbsorberClickMode\";\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class DestroyBounds {\n load(data) {\n if (!data) {\n return;\n }\n if (data.bottom !== undefined) {\n this.bottom = setRangeValue(data.bottom);\n }\n if (data.left !== undefined) {\n this.left = setRangeValue(data.left);\n }\n if (data.right !== undefined) {\n this.right = setRangeValue(data.right);\n }\n if (data.top !== undefined) {\n this.top = setRangeValue(data.top);\n }\n }\n}\n","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class SplitFactor extends ValueWithRandom {\n constructor() {\n super();\n this.value = 3;\n }\n}\n","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class SplitRate extends ValueWithRandom {\n constructor() {\n super();\n this.value = { min: 4, max: 9 };\n }\n}\n","import { OptionsColor, deepExtend, executeOnSingleOrMultiple } from \"tsparticles-engine\";\nimport { SplitFactor } from \"./SplitFactor\";\nimport { SplitRate } from \"./SplitRate\";\nexport class Split {\n constructor() {\n this.count = 1;\n this.factor = new SplitFactor();\n this.rate = new SplitRate();\n this.sizeOffset = true;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.factor.load(data.factor);\n this.rate.load(data.rate);\n this.particles = executeOnSingleOrMultiple(data.particles, (particles) => {\n return deepExtend({}, particles);\n });\n if (data.sizeOffset !== undefined) {\n this.sizeOffset = data.sizeOffset;\n }\n if (data.colorOffset) {\n this.colorOffset = (_a = this.colorOffset) !== null && _a !== void 0 ? _a : {};\n if (data.colorOffset.h !== undefined) {\n this.colorOffset.h = data.colorOffset.h;\n }\n if (data.colorOffset.s !== undefined) {\n this.colorOffset.s = data.colorOffset.s;\n }\n if (data.colorOffset.l !== undefined) {\n this.colorOffset.l = data.colorOffset.l;\n }\n }\n }\n}\n","import { DestroyBounds } from \"./DestroyBounds\";\nimport { Split } from \"./Split\";\nexport class Destroy {\n constructor() {\n this.bounds = new DestroyBounds();\n this.mode = \"none\";\n this.split = new Split();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.mode) {\n this.mode = data.mode;\n }\n if (data.bounds) {\n this.bounds.load(data.bounds);\n }\n this.split.load(data.split);\n }\n}\n","import { getRangeValue, getValue, itemFromSingleOrMultiple, loadParticlesOptions, randomInRange, setRangeValue, } from \"tsparticles-engine\";\nimport { Destroy } from \"./Options/Classes/Destroy\";\nexport class DestroyUpdater {\n constructor(engine, container) {\n this.engine = engine;\n this.container = container;\n }\n init(particle) {\n const container = this.container, particlesOptions = particle.options, destroyOptions = particlesOptions.destroy;\n if (!destroyOptions) {\n return;\n }\n particle.splitCount = 0;\n const destroyBounds = destroyOptions.bounds;\n if (!particle.destroyBounds) {\n particle.destroyBounds = {};\n }\n if (destroyBounds.bottom) {\n particle.destroyBounds.bottom = (getRangeValue(destroyBounds.bottom) * container.canvas.size.height) / 100;\n }\n if (destroyBounds.left) {\n particle.destroyBounds.left = (getRangeValue(destroyBounds.left) * container.canvas.size.width) / 100;\n }\n if (destroyBounds.right) {\n particle.destroyBounds.right = (getRangeValue(destroyBounds.right) * container.canvas.size.width) / 100;\n }\n if (destroyBounds.top) {\n particle.destroyBounds.top = (getRangeValue(destroyBounds.top) * container.canvas.size.height) / 100;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options, ...sources) {\n if (!options.destroy) {\n options.destroy = new Destroy();\n }\n for (const source of sources) {\n options.destroy.load(source === null || source === void 0 ? void 0 : source.destroy);\n }\n }\n particleDestroyed(particle, override) {\n if (override) {\n return;\n }\n const destroyOptions = particle.options.destroy;\n if (destroyOptions && destroyOptions.mode === \"split\") {\n this.split(particle);\n }\n }\n update(particle) {\n if (!this.isEnabled(particle)) {\n return;\n }\n const position = particle.getPosition(), bounds = particle.destroyBounds;\n if (!bounds) {\n return;\n }\n if ((bounds.bottom !== undefined && position.y >= bounds.bottom) ||\n (bounds.left !== undefined && position.x <= bounds.left) ||\n (bounds.right !== undefined && position.x >= bounds.right) ||\n (bounds.top !== undefined && position.y <= bounds.top)) {\n particle.destroy();\n }\n }\n addSplitParticle(parent, splitParticlesOptions) {\n var _a, _b, _c;\n const destroyOptions = parent.options.destroy;\n if (!destroyOptions) {\n return;\n }\n const splitOptions = destroyOptions.split, options = loadParticlesOptions(this.engine, this.container, parent.options), factor = getValue(splitOptions.factor), parentColor = parent.getFillColor();\n if (splitOptions.color) {\n options.color.load(splitOptions.color);\n }\n else if (splitOptions.colorOffset && parentColor) {\n options.color.load({\n value: {\n hsl: {\n h: parentColor.h + getRangeValue((_a = splitOptions.colorOffset.h) !== null && _a !== void 0 ? _a : 0),\n s: parentColor.s + getRangeValue((_b = splitOptions.colorOffset.s) !== null && _b !== void 0 ? _b : 0),\n l: parentColor.l + getRangeValue((_c = splitOptions.colorOffset.l) !== null && _c !== void 0 ? _c : 0),\n },\n },\n });\n }\n else {\n options.color.load({\n value: {\n hsl: parent.getFillColor(),\n },\n });\n }\n options.move.load({\n center: {\n x: parent.position.x,\n y: parent.position.y,\n mode: \"precise\",\n },\n });\n if (typeof options.size.value === \"number\") {\n options.size.value /= factor;\n }\n else {\n options.size.value.min /= factor;\n options.size.value.max /= factor;\n }\n options.load(splitParticlesOptions);\n const offset = splitOptions.sizeOffset ? setRangeValue(-parent.size.value, parent.size.value) : 0, position = {\n x: parent.position.x + randomInRange(offset),\n y: parent.position.y + randomInRange(offset),\n };\n return this.container.particles.addParticle(position, options, parent.group, (particle) => {\n var _a;\n if (particle.size.value < 0.5) {\n return false;\n }\n particle.velocity.length = randomInRange(setRangeValue(parent.velocity.length, particle.velocity.length));\n particle.splitCount = ((_a = parent.splitCount) !== null && _a !== void 0 ? _a : 0) + 1;\n particle.unbreakable = true;\n setTimeout(() => {\n particle.unbreakable = false;\n }, 500);\n return true;\n });\n }\n split(particle) {\n const destroyOptions = particle.options.destroy;\n if (!destroyOptions) {\n return;\n }\n const splitOptions = destroyOptions.split;\n if (splitOptions.count >= 0 &&\n (particle.splitCount === undefined || particle.splitCount++ > splitOptions.count)) {\n return;\n }\n const rate = getValue(splitOptions.rate), particlesSplitOptions = itemFromSingleOrMultiple(splitOptions.particles);\n for (let i = 0; i < rate; i++) {\n this.addSplitParticle(particle, particlesSplitOptions);\n }\n }\n}\n","import { DestroyUpdater } from \"./DestroyUpdater\";\nexport async function loadDestroyUpdater(engine) {\n await engine.addParticleUpdater(\"destroy\", (container) => new DestroyUpdater(engine, container));\n}\n","import { getRandom } from \"tsparticles-engine\";\nexport class CircleShape {\n randomPosition(position, size, fill) {\n const generateTheta = (x, y) => {\n const u = getRandom() / 4.0, theta = Math.atan((y / x) * Math.tan(2 * Math.PI * u)), v = getRandom();\n if (v < 0.25) {\n return theta;\n }\n else if (v < 0.5) {\n return Math.PI - theta;\n }\n else if (v < 0.75) {\n return Math.PI + theta;\n }\n else {\n return -theta;\n }\n }, radius = (x, y, theta) => (x * y) / Math.sqrt((y * Math.cos(theta)) ** 2 + (x * Math.sin(theta)) ** 2), [a, b] = [size.width / 2, size.height / 2], randomTheta = generateTheta(a, b), maxRadius = radius(a, b, randomTheta), randomRadius = fill ? maxRadius * Math.sqrt(getRandom()) : maxRadius;\n return {\n x: position.x + randomRadius * Math.cos(randomTheta),\n y: position.y + randomRadius * Math.sin(randomTheta),\n };\n }\n}\n","export class EmitterLife {\n constructor() {\n this.wait = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.wait !== undefined) {\n this.wait = data.wait;\n }\n }\n}\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class EmitterRate {\n constructor() {\n this.quantity = 1;\n this.delay = 0.1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.quantity !== undefined) {\n this.quantity = setRangeValue(data.quantity);\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n }\n}\n","export class EmitterSize {\n constructor() {\n this.mode = \"percent\";\n this.height = 0;\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n","import { AnimatableColor, deepExtend, executeOnSingleOrMultiple, setRangeValue } from \"tsparticles-engine\";\nimport { EmitterLife } from \"./EmitterLife\";\nimport { EmitterRate } from \"./EmitterRate\";\nimport { EmitterSize } from \"./EmitterSize\";\nexport class Emitter {\n constructor() {\n this.autoPlay = true;\n this.fill = true;\n this.life = new EmitterLife();\n this.rate = new EmitterRate();\n this.shape = \"square\";\n this.startCount = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.size !== undefined) {\n if (!this.size) {\n this.size = new EmitterSize();\n }\n this.size.load(data.size);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.domId = data.domId;\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n this.life.load(data.life);\n this.name = data.name;\n this.particles = executeOnSingleOrMultiple(data.particles, (particles) => {\n return deepExtend({}, particles);\n });\n this.rate.load(data.rate);\n if (data.shape !== undefined) {\n this.shape = data.shape;\n }\n if (data.position !== undefined) {\n this.position = {};\n if (data.position.x !== undefined) {\n this.position.x = setRangeValue(data.position.x);\n }\n if (data.position.y !== undefined) {\n this.position.y = setRangeValue(data.position.y);\n }\n }\n if (data.spawnColor !== undefined) {\n if (this.spawnColor === undefined) {\n this.spawnColor = new AnimatableColor();\n }\n this.spawnColor.load(data.spawnColor);\n }\n if (data.startCount !== undefined) {\n this.startCount = data.startCount;\n }\n }\n}\n","import { Vector, calcPositionOrRandomFromSizeRanged, deepExtend, getRangeValue, isPointInside, itemFromSingleOrMultiple, randomInRange, rangeColorToHsl, } from \"tsparticles-engine\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { EmitterSize } from \"./Options/Classes/EmitterSize\";\nexport class EmitterInstance {\n constructor(engine, emitters, container, options, position) {\n var _a, _b, _c, _d, _e, _f, _g;\n var _h;\n this.emitters = emitters;\n this.container = container;\n this._engine = engine;\n this._currentDuration = 0;\n this._currentEmitDelay = 0;\n this._currentSpawnDelay = 0;\n this._initialPosition = position;\n if (options instanceof Emitter) {\n this.options = options;\n }\n else {\n this.options = new Emitter();\n this.options.load(options);\n }\n this._spawnDelay = (((_a = this.options.life.delay) !== null && _a !== void 0 ? _a : 0) * 1000) / this.container.retina.reduceFactor;\n this.position = (_b = this._initialPosition) !== null && _b !== void 0 ? _b : this.calcPosition();\n this.name = this.options.name;\n this._shape = (_c = this._engine.emitterShapeManager) === null || _c === void 0 ? void 0 : _c.getShape(this.options.shape);\n this.fill = this.options.fill;\n this._firstSpawn = !this.options.life.wait;\n this._startParticlesAdded = false;\n let particlesOptions = deepExtend({}, this.options.particles);\n particlesOptions !== null && particlesOptions !== void 0 ? particlesOptions : (particlesOptions = {});\n (_d = particlesOptions.move) !== null && _d !== void 0 ? _d : (particlesOptions.move = {});\n (_e = (_h = particlesOptions.move).direction) !== null && _e !== void 0 ? _e : (_h.direction = this.options.direction);\n if (this.options.spawnColor) {\n this.spawnColor = rangeColorToHsl(this.options.spawnColor);\n }\n this._paused = !this.options.autoPlay;\n this._particlesOptions = particlesOptions;\n this.size =\n (_f = this.options.size) !== null && _f !== void 0 ? _f : (() => {\n const size = new EmitterSize();\n size.load({\n height: 0,\n mode: \"percent\",\n width: 0,\n });\n return size;\n })();\n this._lifeCount = (_g = this.options.life.count) !== null && _g !== void 0 ? _g : -1;\n this._immortal = this._lifeCount <= 0;\n this._engine.dispatchEvent(\"emitterCreated\", {\n container,\n data: {\n emitter: this,\n },\n });\n this.play();\n }\n externalPause() {\n this._paused = true;\n this.pause();\n }\n externalPlay() {\n this._paused = false;\n this.play();\n }\n getPosition() {\n if (this.options.domId) {\n const container = this.container, element = document.getElementById(this.options.domId);\n if (element) {\n const elRect = element.getBoundingClientRect();\n return {\n x: (elRect.x + elRect.width / 2) * container.retina.pixelRatio,\n y: (elRect.y + elRect.height / 2) * container.retina.pixelRatio,\n };\n }\n }\n return this.position;\n }\n getSize() {\n const container = this.container;\n if (this.options.domId) {\n const element = document.getElementById(this.options.domId);\n if (element) {\n const elRect = element.getBoundingClientRect();\n return {\n width: elRect.width * container.retina.pixelRatio,\n height: elRect.height * container.retina.pixelRatio,\n };\n }\n }\n return {\n width: this.size.mode === \"percent\"\n ? (container.canvas.size.width * this.size.width) / 100\n : this.size.width,\n height: this.size.mode === \"percent\"\n ? (container.canvas.size.height * this.size.height) / 100\n : this.size.height,\n };\n }\n pause() {\n if (this._paused) {\n return;\n }\n delete this._emitDelay;\n }\n play() {\n var _a;\n if (this._paused) {\n return;\n }\n if (!(this.container.retina.reduceFactor &&\n (this._lifeCount > 0 || this._immortal || !this.options.life.count) &&\n (this._firstSpawn || this._currentSpawnDelay >= ((_a = this._spawnDelay) !== null && _a !== void 0 ? _a : 0)))) {\n return;\n }\n if (this._emitDelay === undefined) {\n const delay = getRangeValue(this.options.rate.delay);\n this._emitDelay = (1000 * delay) / this.container.retina.reduceFactor;\n }\n if (this._lifeCount > 0 || this._immortal) {\n this.prepareToDie();\n }\n }\n resize() {\n const initialPosition = this._initialPosition;\n this.position =\n initialPosition && isPointInside(initialPosition, this.container.canvas.size, Vector.origin)\n ? initialPosition\n : this.calcPosition();\n }\n update(delta) {\n var _a, _b, _c;\n if (this._paused) {\n return;\n }\n if (this._firstSpawn) {\n this._firstSpawn = false;\n this._currentSpawnDelay = (_a = this._spawnDelay) !== null && _a !== void 0 ? _a : 0;\n this._currentEmitDelay = (_b = this._emitDelay) !== null && _b !== void 0 ? _b : 0;\n }\n if (!this._startParticlesAdded) {\n this._startParticlesAdded = true;\n this.emitParticles(this.options.startCount);\n }\n if (this._duration !== undefined) {\n this._currentDuration += delta.value;\n if (this._currentDuration >= this._duration) {\n this.pause();\n if (this._spawnDelay !== undefined) {\n delete this._spawnDelay;\n }\n if (!this._immortal) {\n this._lifeCount--;\n }\n if (this._lifeCount > 0 || this._immortal) {\n this.position = this.calcPosition();\n this._spawnDelay = (((_c = this.options.life.delay) !== null && _c !== void 0 ? _c : 0) * 1000) / this.container.retina.reduceFactor;\n }\n else {\n this.destroy();\n }\n this._currentDuration -= this._duration;\n delete this._duration;\n }\n }\n if (this._spawnDelay !== undefined) {\n this._currentSpawnDelay += delta.value;\n if (this._currentSpawnDelay >= this._spawnDelay) {\n this._engine.dispatchEvent(\"emitterPlay\", {\n container: this.container,\n });\n this.play();\n this._currentSpawnDelay -= this._currentSpawnDelay;\n delete this._spawnDelay;\n }\n }\n if (this._emitDelay !== undefined) {\n this._currentEmitDelay += delta.value;\n if (this._currentEmitDelay >= this._emitDelay) {\n this.emit();\n this._currentEmitDelay -= this._emitDelay;\n }\n }\n }\n calcPosition() {\n return calcPositionOrRandomFromSizeRanged({\n size: this.container.canvas.size,\n position: this.options.position,\n });\n }\n destroy() {\n this.emitters.removeEmitter(this);\n this._engine.dispatchEvent(\"emitterDestroyed\", {\n container: this.container,\n data: {\n emitter: this,\n },\n });\n }\n emit() {\n if (this._paused) {\n return;\n }\n const quantity = getRangeValue(this.options.rate.quantity);\n this.emitParticles(quantity);\n }\n emitParticles(quantity) {\n var _a, _b, _c;\n const position = this.getPosition(), size = this.getSize(), singleParticlesOptions = itemFromSingleOrMultiple(this._particlesOptions);\n for (let i = 0; i < quantity; i++) {\n const particlesOptions = deepExtend({}, singleParticlesOptions);\n if (this.spawnColor) {\n const hslAnimation = (_a = this.options.spawnColor) === null || _a === void 0 ? void 0 : _a.animation;\n if (hslAnimation) {\n this.spawnColor.h = this.setColorAnimation(hslAnimation.h, this.spawnColor.h, 360);\n this.spawnColor.s = this.setColorAnimation(hslAnimation.s, this.spawnColor.s, 100);\n this.spawnColor.l = this.setColorAnimation(hslAnimation.l, this.spawnColor.l, 100);\n }\n if (!particlesOptions.color) {\n particlesOptions.color = {\n value: this.spawnColor,\n };\n }\n else {\n particlesOptions.color.value = this.spawnColor;\n }\n }\n if (!position) {\n return;\n }\n const pPosition = (_c = (_b = this._shape) === null || _b === void 0 ? void 0 : _b.randomPosition(position, size, this.fill)) !== null && _c !== void 0 ? _c : position;\n this.container.particles.addParticle(pPosition, particlesOptions);\n }\n }\n prepareToDie() {\n var _a;\n if (this._paused) {\n return;\n }\n const duration = (_a = this.options.life) === null || _a === void 0 ? void 0 : _a.duration;\n if (this.container.retina.reduceFactor &&\n (this._lifeCount > 0 || this._immortal) &&\n duration !== undefined &&\n duration > 0) {\n this._duration = duration * 1000;\n }\n }\n setColorAnimation(animation, initValue, maxValue) {\n var _a;\n const container = this.container;\n if (!animation.enable) {\n return initValue;\n }\n const colorOffset = randomInRange(animation.offset), delay = getRangeValue(this.options.rate.delay), emitFactor = (1000 * delay) / container.retina.reduceFactor, colorSpeed = getRangeValue((_a = animation.speed) !== null && _a !== void 0 ? _a : 0);\n return (initValue + (colorSpeed * container.fpsLimit) / emitFactor + colorOffset * 3.6) % maxValue;\n }\n}\n","import { arrayRandomIndex, executeOnSingleOrMultiple, itemFromArray } from \"tsparticles-engine\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { EmitterInstance } from \"./EmitterInstance\";\nexport class Emitters {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this.array = [];\n this.emitters = [];\n this.interactivityEmitters = {\n random: {\n count: 1,\n enable: false,\n },\n value: [],\n };\n container.getEmitter = (idxOrName) => idxOrName === undefined || typeof idxOrName === \"number\"\n ? this.array[idxOrName || 0]\n : this.array.find((t) => t.name === idxOrName);\n container.addEmitter = (options, position) => this.addEmitter(options, position);\n container.removeEmitter = (idxOrName) => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n this.removeEmitter(emitter);\n }\n };\n container.playEmitter = (idxOrName) => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPlay();\n }\n };\n container.pauseEmitter = (idxOrName) => {\n const emitter = container.getEmitter(idxOrName);\n if (emitter) {\n emitter.externalPause();\n }\n };\n }\n addEmitter(options, position) {\n const emitterOptions = new Emitter();\n emitterOptions.load(options);\n const emitter = new EmitterInstance(this._engine, this, this.container, emitterOptions, position);\n this.array.push(emitter);\n return emitter;\n }\n handleClickMode(mode) {\n const emitterOptions = this.emitters, modeEmitters = this.interactivityEmitters;\n if (mode !== \"emitter\") {\n return;\n }\n let emittersModeOptions;\n if (modeEmitters && modeEmitters.value instanceof Array) {\n if (modeEmitters.value.length > 0 && modeEmitters.random.enable) {\n emittersModeOptions = [];\n const usedIndexes = [];\n for (let i = 0; i < modeEmitters.random.count; i++) {\n const idx = arrayRandomIndex(modeEmitters.value);\n if (usedIndexes.includes(idx) && usedIndexes.length < modeEmitters.value.length) {\n i--;\n continue;\n }\n usedIndexes.push(idx);\n emittersModeOptions.push(itemFromArray(modeEmitters.value, idx));\n }\n }\n else {\n emittersModeOptions = modeEmitters.value;\n }\n }\n else {\n emittersModeOptions = modeEmitters === null || modeEmitters === void 0 ? void 0 : modeEmitters.value;\n }\n const emittersOptions = emittersModeOptions !== null && emittersModeOptions !== void 0 ? emittersModeOptions : emitterOptions, ePosition = this.container.interactivity.mouse.clickPosition;\n executeOnSingleOrMultiple(emittersOptions, (emitter) => {\n this.addEmitter(emitter, ePosition);\n });\n }\n async init() {\n this.emitters = this.container.actualOptions.emitters;\n this.interactivityEmitters = this.container.actualOptions.interactivity.modes.emitters;\n if (!this.emitters) {\n return;\n }\n if (this.emitters instanceof Array) {\n for (const emitterOptions of this.emitters) {\n this.addEmitter(emitterOptions);\n }\n }\n else {\n this.addEmitter(this.emitters);\n }\n }\n pause() {\n for (const emitter of this.array) {\n emitter.pause();\n }\n }\n play() {\n for (const emitter of this.array) {\n emitter.play();\n }\n }\n removeEmitter(emitter) {\n const index = this.array.indexOf(emitter);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n resize() {\n for (const emitter of this.array) {\n emitter.resize();\n }\n }\n stop() {\n this.array = [];\n }\n update(delta) {\n for (const emitter of this.array) {\n emitter.update(delta);\n }\n }\n}\n","const shapes = new Map();\nexport class ShapeManager {\n constructor(engine) {\n this._engine = engine;\n }\n addShape(name, drawer) {\n if (!this.getShape(name)) {\n shapes.set(name, drawer);\n }\n }\n getShape(name) {\n return shapes.get(name);\n }\n getSupportedShapes() {\n return shapes.keys();\n }\n}\n","import { getRandom } from \"tsparticles-engine\";\nfunction randomSquareCoordinate(position, offset) {\n return position + offset * (getRandom() - 0.5);\n}\nexport class SquareShape {\n randomPosition(position, size, fill) {\n if (fill) {\n return {\n x: randomSquareCoordinate(position.x, size.width),\n y: randomSquareCoordinate(position.y, size.height),\n };\n }\n else {\n const halfW = size.width / 2, halfH = size.height / 2, side = Math.floor(getRandom() * 4), v = (getRandom() - 0.5) * 2;\n switch (side) {\n case 0:\n return {\n x: position.x + v * halfW,\n y: position.y - halfH,\n };\n case 1:\n return {\n x: position.x - halfW,\n y: position.y + v * halfH,\n };\n case 2:\n return {\n x: position.x + v * halfW,\n y: position.y + halfH,\n };\n case 3:\n default:\n return {\n x: position.x + halfW,\n y: position.y + v * halfH,\n };\n }\n }\n }\n}\n","import { executeOnSingleOrMultiple, isInArray } from \"tsparticles-engine\";\nimport { CircleShape } from \"./Shapes/Circle/CircleShape\";\nimport { Emitter } from \"./Options/Classes/Emitter\";\nimport { Emitters } from \"./Emitters\";\nimport { ShapeManager } from \"./ShapeManager\";\nimport { SquareShape } from \"./Shapes/Square/SquareShape\";\nclass EmittersPlugin {\n constructor(engine) {\n this._engine = engine;\n this.id = \"emitters\";\n }\n getPlugin(container) {\n return new Emitters(this._engine, container);\n }\n loadOptions(options, source) {\n var _a, _b, _c, _d, _e, _f;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n if (source === null || source === void 0 ? void 0 : source.emitters) {\n options.emitters = executeOnSingleOrMultiple(source.emitters, (emitter) => {\n const tmp = new Emitter();\n tmp.load(emitter);\n return tmp;\n });\n }\n const interactivityEmitters = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n options.interactivity.modes.emitters = {\n random: {\n count: 1,\n enable: true,\n },\n value: interactivityEmitters.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n }),\n };\n }\n else {\n const emitterMode = interactivityEmitters;\n if (emitterMode.value !== undefined) {\n if (emitterMode.value instanceof Array) {\n options.interactivity.modes.emitters = {\n random: {\n count: (_c = emitterMode.random.count) !== null && _c !== void 0 ? _c : 1,\n enable: (_d = emitterMode.random.enable) !== null && _d !== void 0 ? _d : false,\n },\n value: emitterMode.value.map((s) => {\n const tmp = new Emitter();\n tmp.load(s);\n return tmp;\n }),\n };\n }\n else {\n const tmp = new Emitter();\n tmp.load(emitterMode.value);\n options.interactivity.modes.emitters = {\n random: {\n count: (_e = emitterMode.random.count) !== null && _e !== void 0 ? _e : 1,\n enable: (_f = emitterMode.random.enable) !== null && _f !== void 0 ? _f : false,\n },\n value: tmp,\n };\n }\n }\n else {\n const emitterOptions = (options.interactivity.modes.emitters = {\n random: {\n count: 1,\n enable: false,\n },\n value: new Emitter(),\n });\n emitterOptions.value.load(interactivityEmitters);\n }\n }\n }\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (!options) {\n return false;\n }\n const emitters = options.emitters;\n return ((emitters instanceof Array && !!emitters.length) ||\n emitters !== undefined ||\n (!!((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n isInArray(\"emitter\", options.interactivity.events.onClick.mode)));\n }\n}\nexport async function loadEmittersPlugin(engine) {\n if (!engine.emitterShapeManager) {\n engine.emitterShapeManager = new ShapeManager(engine);\n }\n if (!engine.addEmitterShape) {\n engine.addEmitterShape = (name, shape) => {\n var _a;\n (_a = engine.emitterShapeManager) === null || _a === void 0 ? void 0 : _a.addShape(name, shape);\n };\n }\n const plugin = new EmittersPlugin(engine);\n await engine.addPlugin(plugin);\n engine.addEmitterShape(\"circle\", new CircleShape());\n engine.addEmitterShape(\"square\", new SquareShape());\n}\nexport * from \"./EmitterContainer\";\nexport * from \"./EmittersEngine\";\nexport * from \"./Enums/EmitterClickMode\";\nexport * from \"./Enums/EmitterShapeType\";\n","import { deepExtend } from \"tsparticles-engine\";\nexport class Trail {\n constructor() {\n this.delay = 1;\n this.pauseOnStop = false;\n this.quantity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = deepExtend({}, data.particles);\n }\n if (data.pauseOnStop !== undefined) {\n this.pauseOnStop = data.pauseOnStop;\n }\n }\n}\n","import { ExternalInteractorBase, isInArray } from \"tsparticles-engine\";\nimport { Trail } from \"./Options/Classes/Trail\";\nexport class TrailMaker extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this._delay = 0;\n }\n clear() {\n }\n init() {\n }\n async interact(delta) {\n var _a, _b, _c, _d;\n if (!this.container.retina.reduceFactor) {\n return;\n }\n const container = this.container, options = container.actualOptions, trailOptions = options.interactivity.modes.trail;\n if (!trailOptions) {\n return;\n }\n const optDelay = (trailOptions.delay * 1000) / this.container.retina.reduceFactor;\n if (this._delay < optDelay) {\n this._delay += delta.value;\n }\n if (this._delay < optDelay) {\n return;\n }\n let canEmit = true;\n if (trailOptions.pauseOnStop) {\n if (container.interactivity.mouse.position === this._lastPosition ||\n (((_a = container.interactivity.mouse.position) === null || _a === void 0 ? void 0 : _a.x) === ((_b = this._lastPosition) === null || _b === void 0 ? void 0 : _b.x) &&\n ((_c = container.interactivity.mouse.position) === null || _c === void 0 ? void 0 : _c.y) === ((_d = this._lastPosition) === null || _d === void 0 ? void 0 : _d.y))) {\n canEmit = false;\n }\n }\n if (container.interactivity.mouse.position) {\n this._lastPosition = {\n x: container.interactivity.mouse.position.x,\n y: container.interactivity.mouse.position.y,\n };\n }\n else {\n delete this._lastPosition;\n }\n if (canEmit) {\n container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);\n }\n this._delay -= optDelay;\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events;\n return ((mouse.clicking && mouse.inside && !!mouse.position && isInArray(\"trail\", events.onClick.mode)) ||\n (mouse.inside && !!mouse.position && isInArray(\"trail\", events.onHover.mode)));\n }\n loadModeOptions(options, ...sources) {\n if (!options.trail) {\n options.trail = new Trail();\n }\n for (const source of sources) {\n options.trail.load(source === null || source === void 0 ? void 0 : source.trail);\n }\n }\n reset() {\n }\n}\n","import { TrailMaker } from \"./TrailMaker\";\nexport async function loadExternalTrailInteraction(engine) {\n await engine.addInteractor(\"externalTrail\", (container) => new TrailMaker(container));\n}\nexport * from \"./Options/Classes/Trail\";\nexport * from \"./Options/Interfaces/ITrail\";\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class RollLight {\n constructor() {\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nimport { RollLight } from \"./RollLight\";\nexport class Roll {\n constructor() {\n this.darken = new RollLight();\n this.enable = false;\n this.enlighten = new RollLight();\n this.mode = \"vertical\";\n this.speed = 25;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.backColor !== undefined) {\n this.backColor = OptionsColor.create(this.backColor, data.backColor);\n }\n this.darken.load(data.darken);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.enlighten.load(data.enlighten);\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n }\n}\n","import { getRandom, getRangeValue, rangeColorToHsl } from \"tsparticles-engine\";\nimport { Roll } from \"./Options/Classes/Roll\";\nfunction updateRoll(particle, delta) {\n const roll = particle.options.roll;\n if (!particle.roll || !(roll === null || roll === void 0 ? void 0 : roll.enable)) {\n return;\n }\n const speed = particle.roll.speed * delta.factor, max = 2 * Math.PI;\n particle.roll.angle += speed;\n if (particle.roll.angle > max) {\n particle.roll.angle -= max;\n }\n}\nexport class RollUpdater {\n getTransformValues(particle) {\n var _a;\n const roll = ((_a = particle.roll) === null || _a === void 0 ? void 0 : _a.enable) && particle.roll, rollHorizontal = roll && roll.horizontal, rollVertical = roll && roll.vertical;\n return {\n a: rollHorizontal ? Math.cos(roll.angle) : undefined,\n d: rollVertical ? Math.sin(roll.angle) : undefined,\n };\n }\n init(particle) {\n const rollOpt = particle.options.roll;\n if (rollOpt === null || rollOpt === void 0 ? void 0 : rollOpt.enable) {\n particle.roll = {\n enable: rollOpt.enable,\n horizontal: rollOpt.mode === \"horizontal\" || rollOpt.mode === \"both\",\n vertical: rollOpt.mode === \"vertical\" || rollOpt.mode === \"both\",\n angle: getRandom() * Math.PI * 2,\n speed: getRangeValue(rollOpt.speed) / 360,\n };\n if (rollOpt.backColor) {\n particle.backColor = rangeColorToHsl(rollOpt.backColor);\n }\n else if (rollOpt.darken.enable && rollOpt.enlighten.enable) {\n const alterType = getRandom() >= 0.5 ? \"darken\" : \"enlighten\";\n particle.roll.alter = {\n type: alterType,\n value: getRangeValue(alterType === \"darken\" ? rollOpt.darken.value : rollOpt.enlighten.value),\n };\n }\n else if (rollOpt.darken.enable) {\n particle.roll.alter = {\n type: \"darken\",\n value: getRangeValue(rollOpt.darken.value),\n };\n }\n else if (rollOpt.enlighten.enable) {\n particle.roll.alter = {\n type: \"enlighten\",\n value: getRangeValue(rollOpt.enlighten.value),\n };\n }\n }\n else {\n particle.roll = {\n enable: false,\n horizontal: false,\n vertical: false,\n angle: 0,\n speed: 0,\n };\n }\n }\n isEnabled(particle) {\n const roll = particle.options.roll;\n return !particle.destroyed && !particle.spawning && !!(roll === null || roll === void 0 ? void 0 : roll.enable);\n }\n loadOptions(options, ...sources) {\n if (!options.roll) {\n options.roll = new Roll();\n }\n for (const source of sources) {\n options.roll.load(source === null || source === void 0 ? void 0 : source.roll);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateRoll(particle, delta);\n }\n}\n","import { RollUpdater } from \"./RollUpdater\";\nexport async function loadRollUpdater(engine) {\n await engine.addParticleUpdater(\"roll\", () => new RollUpdater());\n}\n","const initPjs = (engine) => {\n const particlesJS = (tagId, options) => {\n return engine.load(tagId, options);\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n engine\n .loadJSON(tagId, pathConfigJson)\n .then((container) => {\n if (container) {\n callback(container);\n }\n })\n .catch(() => {\n callback(undefined);\n });\n };\n particlesJS.setOnClickHandler = (callback) => {\n engine.setOnClickHandler(callback);\n };\n const pJSDom = engine.dom();\n return { particlesJS, pJSDom };\n};\nexport { initPjs };\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom } from \"tsparticles-engine\";\nimport { RotateAnimation } from \"./RotateAnimation\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = \"clockwise\";\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\n","import { getRandom, getRangeValue } from \"tsparticles-engine\";\nimport { Rotate } from \"./Options/Classes/Rotate\";\nfunction updateAngle(particle, delta) {\n var _a, _b;\n const rotate = particle.rotate, rotateOptions = particle.options.rotate;\n if (!rotate || !rotateOptions) {\n return;\n }\n const rotateAnimation = rotateOptions.animation, speed = ((_a = rotate.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor, max = 2 * Math.PI, decay = (_b = rotate.decay) !== null && _b !== void 0 ? _b : 1;\n if (!rotateAnimation.enable) {\n return;\n }\n switch (rotate.status) {\n case \"increasing\":\n rotate.value += speed;\n if (rotate.value > max) {\n rotate.value -= max;\n }\n break;\n case \"decreasing\":\n default:\n rotate.value -= speed;\n if (rotate.value < 0) {\n rotate.value += max;\n }\n break;\n }\n if (rotate.velocity && decay !== 1) {\n rotate.velocity *= decay;\n }\n}\nexport class RotateUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n if (!rotateOptions) {\n return;\n }\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: (getRangeValue(rotateOptions.value) * Math.PI) / 180,\n };\n particle.pathRotation = rotateOptions.path;\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === \"random\") {\n const index = Math.floor(getRandom() * 2);\n rotateDirection = index > 0 ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (rotateDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.rotate.status = \"decreasing\";\n break;\n case \"clockwise\":\n particle.rotate.status = \"increasing\";\n break;\n }\n const rotateAnimation = rotateOptions.animation;\n if (rotateAnimation.enable) {\n particle.rotate.decay = 1 - getRangeValue(rotateAnimation.decay);\n particle.rotate.velocity =\n (getRangeValue(rotateAnimation.speed) / 360) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= getRandom();\n }\n }\n particle.rotation = particle.rotate.value;\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n if (!rotate) {\n return false;\n }\n return !particle.destroyed && !particle.spawning && rotate.animation.enable && !rotate.path;\n }\n loadOptions(options, ...sources) {\n if (!options.rotate) {\n options.rotate = new Rotate();\n }\n for (const source of sources) {\n options.rotate.load(source === null || source === void 0 ? void 0 : source.rotate);\n }\n }\n update(particle, delta) {\n var _a, _b;\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAngle(particle, delta);\n particle.rotation = (_b = (_a = particle.rotate) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 0;\n }\n}\n","import { RotateUpdater } from \"./RotateUpdater\";\nexport async function loadAngleUpdater(engine) {\n await engine.addParticleUpdater(\"rotate\", (container) => new RotateUpdater(container));\n}\n","import { getDistance, getRangeMax, getRangeValue } from \"tsparticles-engine\";\nimport { applyDistance, applyPath, getProximitySpeedFactor, spin } from \"./Utils\";\nexport class BaseMover {\n init(particle) {\n var _a;\n const container = particle.container, options = particle.options, gravityOptions = options.move.gravity, spinOptions = options.move.spin;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n if (spinOptions.enable) {\n const spinPos = (_a = spinOptions.position) !== null && _a !== void 0 ? _a : { x: 50, y: 50 }, spinCenter = {\n x: (spinPos.x / 100) * container.canvas.size.width,\n y: (spinPos.y / 100) * container.canvas.size.height,\n }, pos = particle.getPosition(), distance = getDistance(pos, spinCenter), spinAcceleration = getRangeValue(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= 0 ? \"clockwise\" : \"counter-clockwise\",\n angle: particle.velocity.angle,\n radius: distance,\n acceleration: particle.retina.spinAcceleration,\n };\n }\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n var _a, _b, _c;\n var _d, _e;\n const particleOptions = particle.options, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, slowFactor = getProximitySpeedFactor(particle), baseSpeed = ((_a = (_d = particle.retina).moveSpeed) !== null && _a !== void 0 ? _a : (_d.moveSpeed = getRangeValue(moveOptions.speed) * container.retina.pixelRatio)) *\n container.retina.reduceFactor, moveDrift = ((_b = (_e = particle.retina).moveDrift) !== null && _b !== void 0 ? _b : (_e.moveDrift = getRangeValue(particle.options.move.drift) * container.retina.pixelRatio)), maxSize = getRangeMax(particleOptions.size.value) * container.retina.pixelRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : 1, speedFactor = sizeFactor * slowFactor * (delta.factor || 1), diffFactor = 2, moveSpeed = (baseSpeed * speedFactor) / diffFactor;\n if (moveOptions.spin.enable) {\n spin(particle, moveSpeed);\n }\n else {\n applyPath(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = (gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) && gravityOptions.inverse ? -1 : 1;\n if ((gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) && moveSpeed) {\n particle.velocity.y +=\n (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (60 * moveSpeed);\n }\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (60 * moveSpeed);\n }\n const decay = particle.moveDecay;\n if (decay != 1) {\n particle.velocity.multTo(decay);\n }\n const velocity = particle.velocity.mult(moveSpeed), maxSpeed = (_c = particle.retina.maxSpeed) !== null && _c !== void 0 ? _c : container.retina.maxSpeed;\n if ((gravityOptions === null || gravityOptions === void 0 ? void 0 : gravityOptions.enable) &&\n maxSpeed > 0 &&\n ((!gravityOptions.inverse && velocity.y >= 0 && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= 0 && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n if (zVelocityFactor != 1) {\n velocity.multTo(zVelocityFactor);\n }\n particle.position.addTo(velocity);\n if (moveOptions.vibrate) {\n particle.position.x += Math.sin(particle.position.x * Math.cos(particle.position.y));\n particle.position.y += Math.cos(particle.position.y * Math.sin(particle.position.x));\n }\n }\n applyDistance(particle);\n }\n}\n","import { clamp, getDistances, getRandom } from \"tsparticles-engine\";\nexport function applyDistance(particle) {\n const initialPosition = particle.initialPosition, { dx, dy } = getDistances(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), hDistance = particle.retina.maxDistance.horizontal, vDistance = particle.retina.maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n if (((hDistance && dxFixed >= hDistance) || (vDistance && dyFixed >= vDistance)) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y / 2 - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x / 2 - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance && ((pos.x < initialPosition.x && vel.x < 0) || (pos.x > initialPosition.x && vel.x > 0))) {\n vel.x *= -getRandom();\n }\n if (vDistance && ((pos.y < initialPosition.y && vel.y < 0) || (pos.y > initialPosition.y && vel.y > 0))) {\n vel.y *= -getRandom();\n }\n }\n}\nexport function spin(particle, moveSpeed) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const updateFunc = {\n x: particle.spin.direction === \"clockwise\" ? Math.cos : Math.sin,\n y: particle.spin.direction === \"clockwise\" ? Math.sin : Math.cos,\n };\n particle.position.x = particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle);\n particle.position.y = particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle);\n particle.spin.radius += particle.spin.acceleration;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height);\n if (particle.spin.radius > maxCanvasSize / 2) {\n particle.spin.radius = maxCanvasSize / 2;\n particle.spin.acceleration *= -1;\n }\n else if (particle.spin.radius < 0) {\n particle.spin.radius = 0;\n particle.spin.acceleration *= -1;\n }\n particle.spin.angle += (moveSpeed / 100) * (1 - particle.spin.radius / maxCanvasSize);\n}\nexport function applyPath(particle, delta) {\n var _a;\n const particlesOptions = particle.options, pathOptions = particlesOptions.move.path, pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = (_a = particle.pathGenerator) === null || _a === void 0 ? void 0 : _a.generate(particle);\n if (path) {\n particle.velocity.addTo(path);\n }\n if (pathOptions.clamp) {\n particle.velocity.x = clamp(particle.velocity.x, -1, 1);\n particle.velocity.y = clamp(particle.velocity.y, -1, 1);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexport function getProximitySpeedFactor(particle) {\n return particle.slow.inRange ? particle.slow.factor : 1;\n}\n","import { BaseMover } from \"./BaseMover\";\nexport async function loadBaseMover(engine) {\n engine.addMover(\"base\", () => new BaseMover());\n}\n","export class CircleDrawer {\n draw(context, particle, radius) {\n if (!particle.circleRange) {\n particle.circleRange = { min: 0, max: Math.PI * 2 };\n }\n const circleRange = particle.circleRange;\n context.arc(0, 0, radius, circleRange.min, circleRange.max, false);\n }\n getSidesCount() {\n return 12;\n }\n particleInit(container, particle) {\n var _a;\n const shapeData = particle.shapeData, angle = (_a = shapeData === null || shapeData === void 0 ? void 0 : shapeData.angle) !== null && _a !== void 0 ? _a : {\n max: 360,\n min: 0,\n };\n particle.circleRange =\n typeof angle !== \"object\"\n ? {\n min: 0,\n max: (angle * Math.PI) / 180,\n }\n : { min: (angle.min * Math.PI) / 180, max: (angle.max * Math.PI) / 180 };\n }\n}\n","import { CircleDrawer } from \"./CircleDrawer\";\nexport async function loadCircleShape(engine) {\n await engine.addShape(\"circle\", new CircleDrawer());\n}\n","import { getHslAnimationFromHsl, randomInRange, rangeColorToHsl } from \"tsparticles-engine\";\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a, _b;\n const colorValue = value;\n if (!colorValue ||\n !valueAnimation.enable ||\n (colorValue.loops !== undefined &&\n colorValue.maxLoops !== undefined &&\n colorValue.maxLoops > 0 &&\n colorValue.loops >= colorValue.maxLoops)) {\n return;\n }\n const offset = randomInRange(valueAnimation.offset), velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6, decay = (_b = value.decay) !== null && _b !== void 0 ? _b : 1;\n if (!decrease || colorValue.status === \"increasing\") {\n colorValue.value += velocity;\n if (colorValue.value > max) {\n if (!colorValue.loops) {\n colorValue.loops = 0;\n }\n colorValue.loops++;\n if (decrease) {\n colorValue.status = \"decreasing\";\n colorValue.value -= colorValue.value % max;\n }\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n if (!colorValue.loops) {\n colorValue.loops = 0;\n }\n colorValue.loops++;\n colorValue.status = \"increasing\";\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.velocity && decay !== 1) {\n colorValue.velocity *= decay;\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateColor(particle, delta) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n const h = (_a = particle.color) === null || _a === void 0 ? void 0 : _a.h, s = (_b = particle.color) === null || _b === void 0 ? void 0 : _b.s, l = (_c = particle.color) === null || _c === void 0 ? void 0 : _c.l;\n if (h) {\n updateColorValue(delta, h, animationOptions.h, 360, false);\n }\n if (s) {\n updateColorValue(delta, s, animationOptions.s, 100, true);\n }\n if (l) {\n updateColorValue(delta, l, animationOptions.l, 100, true);\n }\n}\nexport class ColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const hslColor = rangeColorToHsl(particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this.container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n const animationOptions = particle.options.color.animation;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((((_a = particle.color) === null || _a === void 0 ? void 0 : _a.h.value) !== undefined && animationOptions.h.enable) ||\n (((_b = particle.color) === null || _b === void 0 ? void 0 : _b.s.value) !== undefined && animationOptions.s.enable) ||\n (((_c = particle.color) === null || _c === void 0 ? void 0 : _c.l.value) !== undefined && animationOptions.l.enable)));\n }\n update(particle, delta) {\n updateColor(particle, delta);\n }\n}\n","import { ColorUpdater } from \"./ColorUpdater\";\nexport async function loadColorUpdater(engine) {\n await engine.addParticleUpdater(\"color\", (container) => new ColorUpdater(container));\n}\n","export class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = \"ease-out-quad\";\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n","import { Circle, ExternalInteractorBase, Vector, clamp, getDistances, getEasing, isInArray, mouseMoveEvent, } from \"tsparticles-engine\";\nimport { Attract } from \"./Options/Classes/Attract\";\nexport class Attractor extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._engine = engine;\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, attract = options.interactivity.modes.attract;\n if (!attract || mode !== \"attract\") {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = false;\n }\n }, attract.duration * 1000);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, attract = container.actualOptions.interactivity.modes.attract;\n if (!attract) {\n return;\n }\n container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"attract\", hoverMode)) {\n this.hoverAttract();\n }\n else if (clickEnabled && isInArray(\"attract\", clickMode)) {\n this.clickAttract();\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(\"attract\", hoverMode) || isInArray(\"attract\", clickMode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.attract) {\n options.attract = new Attract();\n }\n for (const source of sources) {\n options.attract.load(source === null || source === void 0 ? void 0 : source.attract);\n }\n }\n reset() {\n }\n clickAttract() {\n const container = this.container;\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n if (!container.attract.finish) {\n if (!container.attract.count) {\n container.attract.count = 0;\n }\n container.attract.count++;\n if (container.attract.count === container.particles.count) {\n container.attract.finish = true;\n }\n }\n if (container.attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < 0 || !mousePos) {\n return;\n }\n this.processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius));\n }\n else if (container.attract.clicking === false) {\n container.attract.particles = [];\n }\n return;\n }\n hoverAttract() {\n const container = this.container, mousePos = container.interactivity.mouse.position, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < 0 || !mousePos) {\n return;\n }\n this.processAttract(mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius));\n }\n processAttract(position, attractRadius, area) {\n const container = this.container, attractOptions = container.actualOptions.interactivity.modes.attract;\n if (!attractOptions) {\n return;\n }\n const query = container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position);\n const velocity = attractOptions.speed * attractOptions.factor;\n const attractFactor = clamp(getEasing(attractOptions.easing)(1 - distance / attractRadius) * velocity, 0, attractOptions.maxSpeed);\n const normVec = Vector.create(distance === 0 ? velocity : (dx / distance) * attractFactor, distance === 0 ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n }\n}\n","import { Attractor } from \"./Attractor\";\nexport async function loadExternalAttractInteraction(engine) {\n await engine.addInteractor(\"externalAttract\", (container) => new Attractor(engine, container));\n}\nexport * from \"./Options/Classes/Attract\";\nexport * from \"./Options/Interfaces/IAttract\";\n","export class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, Vector, calculateBounds, circleBounce, circleBounceDataFromParticle, divModeExecute, isDivModeEnabled, isInArray, mouseMoveEvent, rectBounce, } from \"tsparticles-engine\";\nimport { Bounce } from \"./Options/Classes/Bounce\";\nexport class Bouncer extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, bounce = container.actualOptions.interactivity.modes.bounce;\n if (!bounce) {\n return;\n }\n container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"bounce\", hoverMode)) {\n this.processMouseBounce();\n }\n else {\n divModeExecute(\"bounce\", divs, (selector, div) => this.singleSelectorBounce(selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events, divs = events.onDiv;\n return ((mouse.position && events.onHover.enable && isInArray(\"bounce\", events.onHover.mode)) ||\n isDivModeEnabled(\"bounce\", divs));\n }\n loadModeOptions(options, ...sources) {\n if (!options.bounce) {\n options.bounce = new Bounce();\n }\n for (const source of sources) {\n options.bounce.load(source === null || source === void 0 ? void 0 : source.bounce);\n }\n }\n reset() {\n }\n processBounce(position, radius, area) {\n const query = this.container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (area instanceof Circle) {\n circleBounce(circleBounceDataFromParticle(particle), {\n position,\n radius,\n mass: (radius ** 2 * Math.PI) / 2,\n velocity: Vector.origin,\n factor: Vector.origin,\n });\n }\n else if (area instanceof Rectangle) {\n rectBounce(particle, calculateBounds(position, radius));\n }\n }\n }\n processMouseBounce() {\n const container = this.container, pxRatio = container.retina.pixelRatio, tolerance = 10 * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (!radius || radius < 0 || !mousePos) {\n return;\n }\n this.processBounce(mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance));\n }\n singleSelectorBounce(selector, div) {\n const container = this.container, query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, radius = (elem.offsetWidth / 2) * pxRatio, tolerance = 10 * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, radius + tolerance)\n : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * 2, elem.offsetHeight * pxRatio + tolerance * 2);\n this.processBounce(pos, radius, area);\n });\n }\n}\n","import { Bouncer } from \"./Bouncer\";\nexport async function loadExternalBounceInteraction(engine) {\n await engine.addInteractor(\"externalBounce\", (container) => new Bouncer(container));\n}\nexport * from \"./Options/Classes/Bounce\";\nexport * from \"./Options/Interfaces/IBounce\";\n","import { OptionsColor, executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n const sourceColor = this.color instanceof Array ? undefined : this.color;\n this.color = executeOnSingleOrMultiple(data.color, (color) => {\n return OptionsColor.create(sourceColor, color);\n });\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return executeOnSingleOrMultiple(this.selectors, (t) => t.replace(\"#\", \"\"));\n }\n set ids(value) {\n this.selectors = executeOnSingleOrMultiple(value, (t) => `#${t}`);\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { BubbleBase } from \"./BubbleBase\";\nimport { BubbleDiv } from \"./BubbleDiv\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, (div) => {\n const tmp = new BubbleDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, clamp, colorMix, divMode, divModeExecute, getDistance, getRangeMax, isDivModeEnabled, isInArray, itemFromSingleOrMultiple, mouseLeaveEvent, mouseMoveEvent, rangeColorToHsl, rgbToHsl, } from \"tsparticles-engine\";\nimport { Bubble } from \"./Options/Classes/Bubble\";\nfunction calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return clamp(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return clamp(value, modeValue, particleValue);\n }\n}\nexport class Bubbler extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n if (!container.bubble) {\n container.bubble = {};\n }\n this.handleClickMode = (mode) => {\n if (mode !== \"bubble\") {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n container.bubble.clicking = true;\n };\n }\n clear(particle, delta, force) {\n if (particle.bubble.inRange && !force) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n init() {\n const container = this.container, bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble) {\n return;\n }\n container.retina.bubbleModeDistance = bubble.distance * container.retina.pixelRatio;\n if (bubble.size !== undefined) {\n container.retina.bubbleModeSize = bubble.size * container.retina.pixelRatio;\n }\n }\n async interact(delta) {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && isInArray(\"bubble\", hoverMode)) {\n this.hoverBubble(delta);\n }\n else if (clickEnabled && isInArray(\"bubble\", clickMode)) {\n this.clickBubble(delta);\n }\n else {\n divModeExecute(\"bubble\", divs, (selector, div) => this.singleSelectorHover(delta, selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events, divs = events.onDiv, divBubble = isDivModeEnabled(\"bubble\", divs);\n if (!(divBubble || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return isInArray(\"bubble\", hoverMode) || isInArray(\"bubble\", clickMode) || divBubble;\n }\n loadModeOptions(options, ...sources) {\n if (!options.bubble) {\n options.bubble = new Bubble();\n }\n for (const source of sources) {\n options.bubble.load(source === null || source === void 0 ? void 0 : source.bubble);\n }\n }\n reset(particle) {\n particle.bubble.inRange = false;\n }\n clickBubble(delta) {\n var _a, _b;\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition, bubble = options.interactivity.modes.bubble;\n if (!bubble || !mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance;\n if (!distance || distance < 0) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mouseClickPos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (!container.bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !container.bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = getDistance(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000;\n if (timeSpent > bubble.duration) {\n container.bubble.durationEnd = true;\n }\n if (timeSpent > bubble.duration * 2) {\n container.bubble.clicking = false;\n container.bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: \"size\",\n };\n this.process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: bubble.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.opacity.value),\n value: (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1,\n },\n type: \"opacity\",\n };\n this.process(particle, distMouse, timeSpent, opacityData);\n if (!container.bubble.durationEnd) {\n if (distMouse <= distance) {\n this.hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n else {\n delete particle.bubble.color;\n }\n }\n }\n hoverBubble(delta) {\n const container = this.container, mousePos = container.interactivity.mouse.position, distance = container.retina.bubbleModeDistance;\n if (!distance || distance < 0 || mousePos === undefined) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos), ratio = 1 - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= 0 && container.interactivity.status === mouseMoveEvent) {\n this.hoverBubbleSize(particle, ratio);\n this.hoverBubbleOpacity(particle, ratio);\n this.hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n }\n hoverBubbleColor(particle, ratio, divBubble) {\n const options = this.container.actualOptions;\n const bubbleOptions = divBubble !== null && divBubble !== void 0 ? divBubble : options.interactivity.modes.bubble;\n if (!bubbleOptions) {\n return;\n }\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = itemFromSingleOrMultiple(modeColor);\n particle.bubble.finalColor = rangeColorToHsl(bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, 1 - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n }\n hoverBubbleOpacity(particle, ratio, divBubble) {\n var _a, _b, _c, _d;\n const container = this.container, options = container.actualOptions, modeOpacity = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.opacity) !== null && _a !== void 0 ? _a : (_b = options.interactivity.modes.bubble) === null || _b === void 0 ? void 0 : _b.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value;\n const pOpacity = (_d = (_c = particle.opacity) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : 1;\n const opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n }\n hoverBubbleSize(particle, ratio, divBubble) {\n const container = this.container, modeSize = (divBubble === null || divBubble === void 0 ? void 0 : divBubble.size) ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio;\n const pSize = particle.size.value;\n const size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n }\n process(particle, distMouse, timeSpent, data) {\n const container = this.container, bubbleParam = data.bubbleObj.optValue, options = container.actualOptions, bubble = options.interactivity.modes.bubble;\n if (!bubble || bubbleParam === undefined) {\n return;\n }\n const bubbleDuration = bubble.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value || 0, type = data.type;\n if (!bubbleDistance || bubbleDistance < 0 || bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n if (!container.bubble.durationEnd) {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble !== null && pObjBubble !== void 0 ? pObjBubble : pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === \"size\") {\n particle.bubble.radius = value;\n }\n if (type === \"opacity\") {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n else if (pObjBubble) {\n if (type === \"size\") {\n delete particle.bubble.radius;\n }\n if (type === \"opacity\") {\n delete particle.bubble.opacity;\n }\n }\n }\n singleSelectorHover(delta, selector, div) {\n const container = this.container, selectors = document.querySelectorAll(selector), bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble || !selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area, (p) => this.isEnabled(p));\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = bubble.divs;\n const divBubble = divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.clear(particle, delta, true);\n particle.bubble.div = elem;\n }\n this.hoverBubbleSize(particle, 1, divBubble);\n this.hoverBubbleOpacity(particle, 1, divBubble);\n this.hoverBubbleColor(particle, 1, divBubble);\n }\n });\n }\n}\n","import { Bubbler } from \"./Bubbler\";\nexport async function loadExternalBubbleInteraction(engine) {\n await engine.addInteractor(\"externalBubble\", (container) => new Bubbler(container));\n}\nexport * from \"./Options/Classes/BubbleBase\";\nexport * from \"./Options/Classes/BubbleDiv\";\nexport * from \"./Options/Classes/Bubble\";\nexport * from \"./Options/Interfaces/IBubbleBase\";\nexport * from \"./Options/Interfaces/IBubbleDiv\";\nexport * from \"./Options/Interfaces/IBubble\";\n","export class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { ConnectLinks } from \"./ConnectLinks\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { ExternalInteractorBase, colorMix, drawLine, getStyleFromHsl, getStyleFromRgb, isInArray, } from \"tsparticles-engine\";\nimport { Connect } from \"./Options/Classes/Connect\";\nfunction gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, getStyleFromHsl(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(1, getStyleFromHsl(color2, opacity));\n return grad;\n}\nfunction drawConnectLine(context, width, lineStyle, begin, end) {\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n}\nfunction lineStyle(container, ctx, p1, p2) {\n const options = container.actualOptions, connectOptions = options.interactivity.modes.connect;\n if (!connectOptions) {\n return;\n }\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n}\nfunction drawConnection(container, p1, p2) {\n container.canvas.draw((ctx) => {\n var _a;\n const ls = lineStyle(container, ctx, p1, p2);\n if (!ls) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, (_a = p1.retina.linksWidth) !== null && _a !== void 0 ? _a : 0, ls, pos1, pos2);\n });\n}\nexport class Connector extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, connect = container.actualOptions.interactivity.modes.connect;\n if (!connect) {\n return;\n }\n container.retina.connectModeDistance = connect.distance * container.retina.pixelRatio;\n container.retina.connectModeRadius = connect.radius * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"pointermove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!container.retina.connectModeDistance ||\n container.retina.connectModeDistance < 0 ||\n !container.retina.connectModeRadius ||\n container.retina.connectModeRadius < 0 ||\n !mousePos) {\n return;\n }\n const distance = Math.abs(container.retina.connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n let i = 0;\n for (const p1 of query) {\n const pos1 = p1.getPosition();\n for (const p2 of query.slice(i + 1)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(container.retina.connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n drawConnection(container, p1, p2);\n }\n }\n ++i;\n }\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return isInArray(\"connect\", events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.connect) {\n options.connect = new Connect();\n }\n for (const source of sources) {\n options.connect.load(source === null || source === void 0 ? void 0 : source.connect);\n }\n }\n reset() {\n }\n}\n","import { Connector } from \"./Connector\";\nexport async function loadExternalConnectInteraction(engine) {\n await engine.addInteractor(\"externalConnect\", (container) => new Connector(container));\n}\nexport * from \"./Options/Classes/Connect\";\nexport * from \"./Options/Classes/ConnectLinks\";\nexport * from \"./Options/Interfaces/IConnect\";\nexport * from \"./Options/Interfaces/IConnectLinks\";\n","import { OptionsColor } from \"tsparticles-engine\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { GrabLinks } from \"./GrabLinks\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}\n","import { ExternalInteractorBase, drawLine, getDistance, getLinkColor, getLinkRandomColor, getStyleFromRgb, isInArray, mouseMoveEvent, } from \"tsparticles-engine\";\nimport { Grab } from \"./Options/Classes/Grab\";\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n}\nfunction drawGrab(container, particle, lineColor, opacity, mousePos) {\n container.canvas.draw((ctx) => {\n var _a;\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, (_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : 0, beginPos, mousePos, lineColor, opacity);\n });\n}\nexport class Grabber extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, grab = container.actualOptions.interactivity.modes.grab;\n if (!grab) {\n return;\n }\n container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;\n }\n async interact() {\n var _a, _b;\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (!interactivity.modes.grab ||\n !interactivity.events.onHover.enable ||\n container.interactivity.status !== mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance;\n if (!distance || distance < 0) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, (p) => this.isEnabled(p));\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= 0) {\n continue;\n }\n const optColor = (_a = grabLineOptions.color) !== null && _a !== void 0 ? _a : (_b = particle.options.links) === null || _b === void 0 ? void 0 : _b.color;\n if (!container.particles.grabLineColor && optColor) {\n const linksOptions = interactivity.modes.grab.links;\n container.particles.grabLineColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n return;\n }\n drawGrab(container, particle, colorLine, opacityLine, mousePos);\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(\"grab\", events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.grab) {\n options.grab = new Grab();\n }\n for (const source of sources) {\n options.grab.load(source === null || source === void 0 ? void 0 : source.grab);\n }\n }\n reset() {\n }\n}\n","import { Grabber } from \"./Grabber\";\nexport async function loadExternalGrabInteraction(engine) {\n await engine.addInteractor(\"externalGrab\", (container) => new Grabber(container));\n}\nexport * from \"./Options/Classes/Grab\";\nexport * from \"./Options/Classes/GrabLinks\";\nexport * from \"./Options/Interfaces/IGrab\";\nexport * from \"./Options/Interfaces/IGrabLinks\";\n","import { ExternalInteractorBase } from \"tsparticles-engine\";\nexport class Pauser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== \"pause\") {\n return;\n }\n const container = this.container;\n if (container.getAnimationStatus()) {\n container.pause();\n }\n else {\n container.play();\n }\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n","import { Pauser } from \"./Pauser\";\nexport function loadExternalPauseInteraction(engine) {\n engine.addInteractor(\"externalPause\", (container) => new Pauser(container));\n}\n","export class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map((t) => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","import { ExternalInteractorBase } from \"tsparticles-engine\";\nimport { Push } from \"./Options/Classes/Push\";\nimport { itemFromArray } from \"tsparticles-engine\";\nexport class Pusher extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== \"push\") {\n return;\n }\n const container = this.container, options = container.actualOptions, pushOptions = options.interactivity.modes.push;\n if (!pushOptions) {\n return;\n }\n const pushNb = pushOptions.quantity;\n if (pushNb <= 0) {\n return;\n }\n const group = itemFromArray([undefined, ...pushOptions.groups]), groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined;\n container.particles.push(pushNb, container.interactivity.mouse, groupOptions, group);\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.push) {\n options.push = new Push();\n }\n for (const source of sources) {\n options.push.load(source === null || source === void 0 ? void 0 : source.push);\n }\n }\n reset() {\n }\n}\n","import { Pusher } from \"./Pusher\";\nexport async function loadExternalPushInteraction(engine) {\n await engine.addInteractor(\"externalPush\", (container) => new Pusher(container));\n}\nexport * from \"./Options/Classes/Push\";\nexport * from \"./Options/Interfaces/IPush\";\n","export class Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\n","import { ExternalInteractorBase } from \"tsparticles-engine\";\nimport { Remove } from \"./Options/Classes/Remove\";\nexport class Remover extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n const container = this.container, options = container.actualOptions;\n if (!options.interactivity.modes.remove || mode !== \"remove\") {\n return;\n }\n const removeNb = options.interactivity.modes.remove.quantity;\n container.particles.removeQuantity(removeNb);\n };\n }\n clear() {\n }\n init() {\n }\n async interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.remove) {\n options.remove = new Remove();\n }\n for (const source of sources) {\n options.remove.load(source === null || source === void 0 ? void 0 : source.remove);\n }\n }\n reset() {\n }\n}\n","import { Remover } from \"./Remover\";\nexport function loadExternalRemoveInteraction(engine) {\n engine.addInteractor(\"externalRemove\", (container) => new Remover(container));\n}\nexport * from \"./Options/Classes/Remove\";\nexport * from \"./Options/Interfaces/IRemove\";\n","export class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = \"ease-out-quad\";\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n return executeOnSingleOrMultiple(this.selectors, (t) => t.replace(\"#\", \"\"));\n }\n set ids(value) {\n this.selectors = executeOnSingleOrMultiple(value, (t) => `#${t}`);\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n","import { RepulseBase } from \"./RepulseBase\";\nimport { RepulseDiv } from \"./RepulseDiv\";\nimport { executeOnSingleOrMultiple } from \"tsparticles-engine\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, (div) => {\n const tmp = new RepulseDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n","import { Circle, ExternalInteractorBase, Rectangle, Vector, clamp, divMode, divModeExecute, getDistances, getEasing, isDivModeEnabled, isInArray, mouseMoveEvent, } from \"tsparticles-engine\";\nimport { Repulse } from \"./Options/Classes/Repulse\";\nexport class Repulser extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._engine = engine;\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, repulse = options.interactivity.modes.repulse;\n if (!repulse || mode !== \"repulse\") {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n container.repulse.clicking = true;\n container.repulse.count = 0;\n for (const particle of container.repulse.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n container.repulse.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n container.repulse.clicking = false;\n }\n }, repulse.duration * 1000);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio;\n }\n async interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, clickEnabled = events.onClick.enable, clickMode = events.onClick.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(\"repulse\", hoverMode)) {\n this.hoverRepulse();\n }\n else if (clickEnabled && isInArray(\"repulse\", clickMode)) {\n this.clickRepulse();\n }\n else {\n divModeExecute(\"repulse\", divs, (selector, div) => this.singleSelectorRepulse(selector, div));\n }\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : options.interactivity).events, divs = events.onDiv, divRepulse = isDivModeEnabled(\"repulse\", divs);\n if (!(divRepulse || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(\"repulse\", hoverMode) || isInArray(\"repulse\", clickMode) || divRepulse;\n }\n loadModeOptions(options, ...sources) {\n if (!options.repulse) {\n options.repulse = new Repulse();\n }\n for (const source of sources) {\n options.repulse.load(source === null || source === void 0 ? void 0 : source.repulse);\n }\n }\n reset() {\n }\n clickRepulse() {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n if (!container.repulse.finish) {\n if (!container.repulse.count) {\n container.repulse.count = 0;\n }\n container.repulse.count++;\n if (container.repulse.count === container.particles.count) {\n container.repulse.finish = true;\n }\n }\n if (container.repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance;\n if (!repulseDistance || repulseDistance < 0) {\n return;\n }\n const repulseRadius = Math.pow(repulseDistance / 6, 3), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range, (p) => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(mouseClickPos, particle.position), d = distance ** 2, velocity = repulse.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n container.repulse.particles.push(particle);\n const vect = Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (container.repulse.clicking === false) {\n for (const particle of container.repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.repulse.particles = [];\n }\n }\n hoverRepulse() {\n const container = this.container, mousePos = container.interactivity.mouse.position, repulseRadius = container.retina.repulseModeDistance;\n if (!repulseRadius || repulseRadius < 0 || !mousePos) {\n return;\n }\n this.processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius));\n }\n processRepulse(position, repulseRadius, area, divRepulse) {\n var _a;\n const container = this.container, query = container.particles.quadTree.query(area, (p) => this.isEnabled(p)), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), velocity = ((_a = divRepulse === null || divRepulse === void 0 ? void 0 : divRepulse.speed) !== null && _a !== void 0 ? _a : repulseOptions.speed) * repulseOptions.factor, repulseFactor = clamp(getEasing(repulseOptions.easing)(1 - distance / repulseRadius) * velocity, 0, repulseOptions.maxSpeed), normVec = Vector.create(distance === 0 ? velocity : (dx / distance) * repulseFactor, distance === 0 ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n }\n singleSelectorRepulse(selector, div) {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n }, repulseRadius = (elem.offsetWidth / 2) * pxRatio, area = div.type === \"circle\"\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = repulse.divs, divRepulse = divMode(divs, elem);\n this.processRepulse(pos, repulseRadius, area, divRepulse);\n });\n }\n}\n","import { Repulser } from \"./Repulser\";\nexport async function loadExternalRepulseInteraction(engine) {\n await engine.addInteractor(\"externalRepulse\", (container) => new Repulser(engine, container));\n}\nexport * from \"./Options/Classes/RepulseBase\";\nexport * from \"./Options/Classes/RepulseDiv\";\nexport * from \"./Options/Classes/Repulse\";\nexport * from \"./Options/Interfaces/IRepulseBase\";\nexport * from \"./Options/Interfaces/IRepulseDiv\";\nexport * from \"./Options/Interfaces/IRepulse\";\n","export class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n","import { ExternalInteractorBase, getDistance, isInArray } from \"tsparticles-engine\";\nimport { Slow } from \"./Options/Classes/Slow\";\nexport class Slower extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear(particle, delta, force) {\n if (particle.slow.inRange && !force) {\n return;\n }\n particle.slow.factor = 1;\n }\n init() {\n const container = this.container, slow = container.actualOptions.interactivity.modes.slow;\n if (!slow) {\n return;\n }\n container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio;\n }\n async interact() {\n }\n isEnabled(particle) {\n var _a;\n const container = this.container, mouse = container.interactivity.mouse, events = ((_a = particle === null || particle === void 0 ? void 0 : particle.interactivity) !== null && _a !== void 0 ? _a : container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(\"slow\", events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.slow) {\n options.slow = new Slow();\n }\n for (const source of sources) {\n options.slow.load(source === null || source === void 0 ? void 0 : source.slow);\n }\n }\n reset(particle) {\n particle.slow.inRange = false;\n const container = this.container, options = container.actualOptions, mousePos = container.interactivity.mouse.position, radius = container.retina.slowModeRadius, slow = options.interactivity.modes.slow;\n if (!slow || !radius || radius < 0 || !mousePos) {\n return;\n }\n const particlePos = particle.getPosition(), dist = getDistance(mousePos, particlePos), proximityFactor = dist / radius, slowFactor = slow.factor;\n if (dist <= radius) {\n particle.slow.inRange = true;\n particle.slow.factor = proximityFactor / slowFactor;\n }\n }\n}\n","import { Slower } from \"./Slower\";\nexport async function loadExternalSlowInteraction(engine) {\n await engine.addInteractor(\"externalSlow\", (container) => new Slower(container));\n}\nexport * from \"./Options/Classes/Slow\";\nexport * from \"./Options/Interfaces/ISlow\";\n","import { getStyleFromHsl } from \"tsparticles-engine\";\nconst currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = getStyleFromHsl(color, opacity);\n if (svgData.includes(\"fill\")) {\n return svgData.replace(currentColorRegex, () => colorStyle);\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(0, preFillIndex)} fill=\"${colorStyle}\"${svgData.substring(preFillIndex)}`;\n}\nexport async function loadImage(image) {\n return new Promise((resolve) => {\n image.loading = true;\n const img = new Image();\n image.element = img;\n img.addEventListener(\"load\", () => {\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\n image.element = undefined;\n image.error = true;\n image.loading = false;\n console.error(`Error tsParticles - loading image: ${image.source}`);\n resolve();\n });\n img.src = image.source;\n });\n}\nexport async function downloadSvgImage(image) {\n if (image.type !== \"svg\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n const response = await fetch(image.source);\n if (!response.ok) {\n console.error(\"Error tsParticles - Image not found\");\n image.error = true;\n }\n if (!image.error) {\n image.svgData = await response.text();\n }\n image.loading = false;\n}\nexport function replaceImageColor(image, imageData, color, particle) {\n var _a, _b, _c;\n const svgColoredData = replaceColorSvg(image, color, (_b = (_a = particle.opacity) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : 1), imageRes = {\n color,\n data: Object.assign(Object.assign({}, image), { svgData: svgColoredData }),\n loaded: false,\n ratio: imageData.width / imageData.height,\n replaceColor: (_c = imageData.replaceColor) !== null && _c !== void 0 ? _c : imageData.replace_color,\n source: imageData.src,\n };\n return new Promise((resolve) => {\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" }), domUrl = URL || window.URL || window.webkitURL || window, url = domUrl.createObjectURL(svg), img = new Image();\n img.addEventListener(\"load\", () => {\n imageRes.loaded = true;\n imageRes.element = img;\n resolve(imageRes);\n domUrl.revokeObjectURL(url);\n });\n img.addEventListener(\"error\", async () => {\n domUrl.revokeObjectURL(url);\n const img2 = Object.assign(Object.assign({}, image), { error: false, loading: true });\n await loadImage(img2);\n imageRes.loaded = true;\n imageRes.element = img2.element;\n resolve(imageRes);\n });\n img.src = url;\n });\n}\n","import { downloadSvgImage, loadImage, replaceImageColor } from \"./Utils\";\nexport class ImageDrawer {\n constructor() {\n this._images = [];\n }\n addImage(container, image) {\n const containerImages = this.getImages(container);\n containerImages === null || containerImages === void 0 ? void 0 : containerImages.images.push(image);\n }\n destroy() {\n this._images = [];\n }\n draw(context, particle, radius, opacity) {\n var _a;\n const image = particle.image, element = image === null || image === void 0 ? void 0 : image.element;\n if (!element) {\n return;\n }\n const ratio = (_a = image === null || image === void 0 ? void 0 : image.ratio) !== null && _a !== void 0 ? _a : 1, pos = {\n x: -radius,\n y: -radius,\n };\n context.globalAlpha = opacity;\n context.drawImage(element, pos.x, pos.y, radius * 2, (radius * 2) / ratio);\n context.globalAlpha = 1;\n }\n getImages(container) {\n const containerImages = this._images.find((t) => t.id === container.id);\n if (!containerImages) {\n this._images.push({\n id: container.id,\n images: [],\n });\n return this.getImages(container);\n }\n else {\n return containerImages;\n }\n }\n getSidesCount() {\n return 12;\n }\n loadShape(particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const container = particle.container, images = this.getImages(container).images, imageData = particle.shapeData, image = images.find((t) => t.source === imageData.src);\n if (!image) {\n this.loadImageShape(container, imageData).then(() => {\n this.loadShape(particle);\n });\n }\n }\n particleInit(container, particle) {\n var _a;\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n const images = this.getImages(container).images, imageData = particle.shapeData, color = particle.getFillColor(), replaceColor = (_a = imageData.replaceColor) !== null && _a !== void 0 ? _a : imageData.replace_color, image = images.find((t) => t.source === imageData.src);\n if (!image) {\n return;\n }\n if (image.loading) {\n setTimeout(() => {\n this.particleInit(container, particle);\n });\n return;\n }\n (async () => {\n var _a, _b;\n let imageRes;\n if (image.svgData && color) {\n imageRes = await replaceImageColor(image, imageData, color, particle);\n }\n else {\n imageRes = {\n color,\n data: image,\n element: image.element,\n loaded: true,\n ratio: imageData.width / imageData.height,\n replaceColor: replaceColor,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = (_a = imageData.fill) !== null && _a !== void 0 ? _a : particle.fill, close = (_b = imageData.close) !== null && _b !== void 0 ? _b : particle.close, imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.fill = imageShape.fill;\n particle.close = imageShape.close;\n })();\n }\n async loadImageShape(container, imageShape) {\n var _a;\n const source = imageShape.src;\n if (!source) {\n throw new Error(\"Error tsParticles - No image.src\");\n }\n try {\n const image = {\n source: source,\n type: source.substring(source.length - 3),\n error: false,\n loading: true,\n };\n this.addImage(container, image);\n const imageFunc = ((_a = imageShape.replaceColor) !== null && _a !== void 0 ? _a : imageShape.replace_color) ? downloadSvgImage : loadImage;\n await imageFunc(image);\n }\n catch (_b) {\n throw new Error(`tsParticles error - ${imageShape.src} not found`);\n }\n }\n}\n","import { ImageDrawer } from \"./ImageDrawer\";\nexport async function loadImageShape(engine) {\n await engine.addShape([\"image\", \"images\"], new ImageDrawer());\n}\n","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { ValueWithRandom } from \"tsparticles-engine\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { LifeDelay } from \"./LifeDelay\";\nimport { LifeDuration } from \"./LifeDuration\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n","import { getRandom, getRangeValue, randomInRange, setRangeValue } from \"tsparticles-engine\";\nimport { Life } from \"./Options/Classes/Life\";\nexport class LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, particlesOptions = particle.options, lifeOptions = particlesOptions.life;\n if (!lifeOptions) {\n return;\n }\n particle.life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? 1 : getRandom())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n delayTime: 0,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? 1 : getRandom())) /\n container.retina.reduceFactor) *\n 1000\n : 0,\n time: 0,\n count: lifeOptions.count,\n };\n if (particle.life.duration <= 0) {\n particle.life.duration = -1;\n }\n if (particle.life.count <= 0) {\n particle.life.count = -1;\n }\n if (particle.life) {\n particle.spawning = particle.life.delay > 0;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options, ...sources) {\n if (!options.life) {\n options.life = new Life();\n }\n for (const source of sources) {\n options.life.load(source === null || source === void 0 ? void 0 : source.life);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.life) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = 0;\n life.time = 0;\n }\n else {\n return;\n }\n }\n if (life.duration === -1) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = 0;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = 0;\n if (particle.life.count > 0) {\n particle.life.count--;\n }\n if (particle.life.count === 0) {\n particle.destroy();\n return;\n }\n const canvasSize = this.container.canvas.size, widthRange = setRangeValue(0, canvasSize.width), heightRange = setRangeValue(0, canvasSize.width);\n particle.position.x = randomInRange(widthRange);\n particle.position.y = randomInRange(heightRange);\n particle.spawning = true;\n life.delayTime = 0;\n life.time = 0;\n particle.reset();\n const lifeOptions = particle.options.life;\n if (lifeOptions) {\n life.delay = getRangeValue(lifeOptions.delay.value) * 1000;\n life.duration = getRangeValue(lifeOptions.duration.value) * 1000;\n }\n }\n}\n","import { LifeUpdater } from \"./LifeUpdater\";\nexport async function loadLifeUpdater(engine) {\n await engine.addParticleUpdater(\"life\", (container) => new LifeUpdater(container));\n}\n","export class LineDrawer {\n draw(context, particle, radius) {\n context.moveTo(-radius / 2, 0);\n context.lineTo(radius / 2, 0);\n }\n getSidesCount() {\n return 1;\n }\n}\n","import { LineDrawer } from \"./LineDrawer\";\nexport async function loadLineShape(engine) {\n await engine.addShape(\"line\", new LineDrawer());\n}\n","import { clamp, getRandom, getRangeMax, getRangeMin, getRangeValue, randomInRange, } from \"tsparticles-engine\";\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.opacity.animation.destroy) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateOpacity(particle, delta) {\n var _a, _b, _c, _d, _e, _f;\n if (!particle.opacity) {\n return;\n }\n const minValue = particle.opacity.min, maxValue = particle.opacity.max, decay = (_a = particle.opacity.decay) !== null && _a !== void 0 ? _a : 1;\n if (particle.destroyed ||\n !particle.opacity.enable ||\n (((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.opacity.loops) !== null && _c !== void 0 ? _c : 0) > ((_d = particle.opacity.maxLoops) !== null && _d !== void 0 ? _d : 0))) {\n return;\n }\n switch (particle.opacity.status) {\n case \"increasing\":\n if (particle.opacity.value >= maxValue) {\n particle.opacity.status = \"decreasing\";\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value += ((_e = particle.opacity.velocity) !== null && _e !== void 0 ? _e : 0) * delta.factor;\n }\n break;\n case \"decreasing\":\n if (particle.opacity.value <= minValue) {\n particle.opacity.status = \"increasing\";\n if (!particle.opacity.loops) {\n particle.opacity.loops = 0;\n }\n particle.opacity.loops++;\n }\n else {\n particle.opacity.value -= ((_f = particle.opacity.velocity) !== null && _f !== void 0 ? _f : 0) * delta.factor;\n }\n break;\n }\n if (particle.opacity.velocity && particle.opacity.decay !== 1) {\n particle.opacity.velocity *= decay;\n }\n checkDestroy(particle, particle.opacity.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.opacity.value = clamp(particle.opacity.value, minValue, maxValue);\n }\n}\nexport class OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity;\n particle.opacity = {\n enable: opacityOptions.animation.enable,\n max: getRangeMax(opacityOptions.value),\n min: getRangeMin(opacityOptions.value),\n value: getRangeValue(opacityOptions.value),\n loops: 0,\n maxLoops: getRangeValue(opacityOptions.animation.count),\n };\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.decay = 1 - getRangeValue(opacityAnimation.decay);\n particle.opacity.status = \"increasing\";\n const opacityRange = opacityOptions.value;\n particle.opacity.min = getRangeMin(opacityRange);\n particle.opacity.max = getRangeMax(opacityRange);\n switch (opacityAnimation.startValue) {\n case \"min\":\n particle.opacity.value = particle.opacity.min;\n particle.opacity.status = \"increasing\";\n break;\n case \"random\":\n particle.opacity.value = randomInRange(particle.opacity);\n particle.opacity.status =\n getRandom() >= 0.5 ? \"increasing\" : \"decreasing\";\n break;\n case \"max\":\n default:\n particle.opacity.value = particle.opacity.max;\n particle.opacity.status = \"decreasing\";\n break;\n }\n particle.opacity.velocity =\n (getRangeValue(opacityAnimation.speed) / 100) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= getRandom();\n }\n }\n particle.opacity.initialValue = particle.opacity.value;\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n (((_a = particle.opacity.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 ||\n (((_b = particle.opacity.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 &&\n ((_c = particle.opacity.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.opacity.maxLoops) !== null && _d !== void 0 ? _d : 0))));\n }\n reset(particle) {\n if (particle.opacity) {\n particle.opacity.loops = 0;\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateOpacity(particle, delta);\n }\n}\n","import { OpacityUpdater } from \"./OpacityUpdater\";\nexport async function loadOpacityUpdater(engine) {\n await engine.addParticleUpdater(\"opacity\", (container) => new OpacityUpdater(container));\n}\n","import { calculateBounds } from \"tsparticles-engine\";\nimport { bounceHorizontal, bounceVertical } from \"./Utils\";\nexport class BounceOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\n \"bounce\",\n \"bounce-vertical\",\n \"bounce-horizontal\",\n \"bounceVertical\",\n \"bounceHorizontal\",\n \"split\",\n ];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = calculateBounds(pos, size), canvasSize = container.canvas.size;\n bounceHorizontal({ particle, outMode, direction, bounds, canvasSize, offset, size });\n bounceVertical({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n}\n","import { getValue } from \"tsparticles-engine\";\nexport function bounceHorizontal(data) {\n if (data.outMode !== \"bounce\" &&\n data.outMode !== \"bounce-horizontal\" &&\n data.outMode !== \"bounceHorizontal\" &&\n data.outMode !== \"split\") {\n return;\n }\n if (data.bounds.right < 0) {\n data.particle.position.x = data.size + data.offset.x;\n }\n else if (data.bounds.left > data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - data.size - data.offset.x;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === \"right\" && data.bounds.right >= data.canvasSize.width && velocity > 0) ||\n (data.direction === \"left\" && data.bounds.left <= 0 && velocity < 0)) {\n const newVelocity = getValue(data.particle.options.bounce.horizontal);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= 0) {\n data.particle.position.x = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\nexport function bounceVertical(data) {\n if (data.outMode !== \"bounce\" &&\n data.outMode !== \"bounce-vertical\" &&\n data.outMode !== \"bounceVertical\" &&\n data.outMode !== \"split\") {\n return;\n }\n if (data.bounds.bottom < 0) {\n data.particle.position.y = data.size + data.offset.y;\n }\n else if (data.bounds.top > data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - data.size - data.offset.y;\n }\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === \"bottom\" && data.bounds.bottom >= data.canvasSize.height && velocity > 0) ||\n (data.direction === \"top\" && data.bounds.top <= 0 && velocity < 0)) {\n const newVelocity = getValue(data.particle.options.bounce.vertical);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= 0) {\n data.particle.position.y = minPos;\n }\n if (data.outMode === \"split\") {\n data.particle.destroy();\n }\n}\n","import { Vector, getDistances, isPointInside } from \"tsparticles-engine\";\nexport class DestroyOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"destroy\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"normal\":\n case \"outside\":\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n break;\n case \"inside\": {\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n const { x: vx, y: vy } = particle.velocity;\n if ((vx < 0 && dx > particle.moveCenter.radius) ||\n (vy < 0 && dy > particle.moveCenter.radius) ||\n (vx >= 0 && dx < -particle.moveCenter.radius) ||\n (vy >= 0 && dy < -particle.moveCenter.radius)) {\n return;\n }\n break;\n }\n }\n container.particles.remove(particle, undefined, true);\n }\n}\n","import { Vector, isPointInside } from \"tsparticles-engine\";\nexport class NoneOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"none\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n if ((particle.options.move.distance.horizontal &&\n (direction === \"left\" || direction === \"right\")) ||\n (particle.options.move.distance.vertical &&\n (direction === \"top\" || direction === \"bottom\"))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container;\n const canvasSize = container.canvas.size;\n const pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > 0 && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < 0 && particle.position.y >= -pRadius) ||\n (particle.velocity.x > 0 && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < 0 && particle.position.x >= -pRadius)) {\n return;\n }\n if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === \"bottom\") ||\n (gravityOptions.inverse && position.y < -pRadius && direction === \"top\")) {\n container.particles.remove(particle);\n }\n }\n }\n}\n","import { Vector, calculateBounds, getDistances, getRandom, isPointInside, randomInRange, } from \"tsparticles-engine\";\nexport class OutOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\"out\"];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case \"inside\": {\n const { x: vx, y: vy } = particle.velocity;\n const circVec = Vector.origin;\n circVec.length = particle.moveCenter.radius;\n circVec.angle = particle.velocity.angle + Math.PI;\n circVec.addTo(Vector.create(particle.moveCenter));\n const { dx, dy } = getDistances(particle.position, circVec);\n if ((vx <= 0 && dx >= 0) || (vy <= 0 && dy >= 0) || (vx >= 0 && dx <= 0) || (vy >= 0 && dy <= 0)) {\n return;\n }\n particle.position.x = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.width,\n }));\n particle.position.y = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.height,\n }));\n const { dx: newDx, dy: newDy } = getDistances(particle.position, particle.moveCenter);\n particle.direction = Math.atan2(-newDy, -newDx);\n particle.velocity.angle = particle.direction;\n break;\n }\n default: {\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n switch (particle.outType) {\n case \"outside\": {\n particle.position.x =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.x;\n particle.position.y =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.y;\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n if (particle.moveCenter.radius) {\n particle.direction = Math.atan2(dy, dx);\n particle.velocity.angle = particle.direction;\n }\n break;\n }\n case \"normal\": {\n const wrap = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = calculateBounds(particle.position, sizeValue);\n if (direction === \"right\" &&\n nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === \"left\" && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!wrap) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === \"bottom\" &&\n nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!wrap) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === \"top\" && nextBounds.bottom < -particle.offset.y) {\n if (!wrap) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n break;\n }\n }\n break;\n }\n }\n }\n}\n","import { BounceOutMode } from \"./BounceOutMode\";\nimport { DestroyOutMode } from \"./DestroyOutMode\";\nimport { NoneOutMode } from \"./NoneOutMode\";\nimport { OutOutMode } from \"./OutOutMode\";\nexport class OutOfCanvasUpdater {\n constructor(container) {\n this.container = container;\n this.updaters = [\n new BounceOutMode(container),\n new DestroyOutMode(container),\n new OutOutMode(container),\n new NoneOutMode(container),\n ];\n }\n init() {\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n var _a, _b, _c, _d;\n const outModes = particle.options.move.outModes;\n this.updateOutMode(particle, delta, (_a = outModes.bottom) !== null && _a !== void 0 ? _a : outModes.default, \"bottom\");\n this.updateOutMode(particle, delta, (_b = outModes.left) !== null && _b !== void 0 ? _b : outModes.default, \"left\");\n this.updateOutMode(particle, delta, (_c = outModes.right) !== null && _c !== void 0 ? _c : outModes.default, \"right\");\n this.updateOutMode(particle, delta, (_d = outModes.top) !== null && _d !== void 0 ? _d : outModes.default, \"top\");\n }\n updateOutMode(particle, delta, outMode, direction) {\n for (const updater of this.updaters) {\n updater.update(particle, direction, delta, outMode);\n }\n }\n}\n","import { OutOfCanvasUpdater } from \"./OutOfCanvasUpdater\";\nexport async function loadOutModesUpdater(engine) {\n await engine.addParticleUpdater(\"outModes\", (container) => new OutOfCanvasUpdater(container));\n}\n","import { isSsr } from \"tsparticles-engine\";\nexport class ParallaxMover {\n init() {\n }\n isEnabled(particle) {\n return (!isSsr() &&\n !particle.destroyed &&\n particle.container.actualOptions.interactivity.events.onHover.parallax.enable);\n }\n move(particle) {\n const container = particle.container, options = container.actualOptions;\n if (isSsr() || !options.interactivity.events.onHover.parallax.enable) {\n return;\n }\n const parallaxForce = options.interactivity.events.onHover.parallax.force, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasCenter = {\n x: container.canvas.size.width / 2,\n y: container.canvas.size.height / 2,\n }, parallaxSmooth = options.interactivity.events.onHover.parallax.smooth, factor = particle.getRadius() / parallaxForce, centerDistance = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n };\n particle.offset.x += (centerDistance.x - particle.offset.x) / parallaxSmooth;\n particle.offset.y += (centerDistance.y - particle.offset.y) / parallaxSmooth;\n }\n}\n","import { ParallaxMover } from \"./ParallaxMover\";\nexport async function loadParallaxMover(engine) {\n engine.addMover(\"parallax\", () => new ParallaxMover());\n}\n","import { ParticlesInteractorBase, getDistances } from \"tsparticles-engine\";\nexport class Attractor extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n async interact(p1) {\n var _a;\n const container = this.container, distance = (_a = p1.retina.attractDistance) !== null && _a !== void 0 ? _a : container.retina.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = getDistances(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * 1000), ay = dy / (rotate.y * 1000), p1Factor = p2.size.value / p1.size.value, p2Factor = 1 / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\n","import { Attractor } from \"./Attractor\";\nexport async function loadParticlesAttractInteraction(engine) {\n await engine.addInteractor(\"particlesAttract\", (container) => new Attractor(container));\n}\n","import { clamp } from \"tsparticles-engine\";\nfunction updateAbsorb(p1, r1, p2, r2, delta, pixelRatio) {\n const factor = clamp((p1.options.collisions.absorb.speed * delta.factor) / 10, 0, r2);\n p1.size.value += factor / 2;\n p2.size.value -= factor;\n if (r2 <= pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n}\nexport function absorb(p1, p2, delta, pixelRatio) {\n const r1 = p1.getRadius(), r2 = p2.getRadius();\n if (r1 === undefined && r2 !== undefined) {\n p1.destroy();\n }\n else if (r1 !== undefined && r2 === undefined) {\n p2.destroy();\n }\n else if (r1 !== undefined && r2 !== undefined) {\n if (r1 >= r2) {\n updateAbsorb(p1, r1, p2, r2, delta, pixelRatio);\n }\n else {\n updateAbsorb(p2, r2, p1, r1, delta, pixelRatio);\n }\n }\n}\n","import { circleBounce, circleBounceDataFromParticle } from \"tsparticles-engine\";\nexport function bounce(p1, p2) {\n circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2));\n}\n","import { absorb } from \"./Absorb\";\nimport { bounce } from \"./Bounce\";\nimport { destroy } from \"./Destroy\";\nexport function resolveCollision(p1, p2, delta, pixelRatio) {\n switch (p1.options.collisions.mode) {\n case \"absorb\": {\n absorb(p1, p2, delta, pixelRatio);\n break;\n }\n case \"bounce\": {\n bounce(p1, p2);\n break;\n }\n case \"destroy\": {\n destroy(p1, p2);\n break;\n }\n }\n}\n","import { bounce } from \"./Bounce\";\nexport function destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n const deleteP = p1.getRadius() >= p2.getRadius() ? p1 : p2;\n deleteP.destroy();\n }\n}\n","import { ParticlesInteractorBase, getDistance } from \"tsparticles-engine\";\nimport { resolveCollision } from \"./ResolveCollision\";\nexport class Collider extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n async interact(p1, delta) {\n const container = this.container, pos1 = p1.getPosition(), radius1 = p1.getRadius(), query = container.particles.quadTree.queryCircle(pos1, radius1 * 2);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), radius2 = p2.getRadius();\n if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) {\n continue;\n }\n const dist = getDistance(pos1, pos2), distP = radius1 + radius2;\n if (dist > distP) {\n continue;\n }\n resolveCollision(p1, p2, delta, container.retina.pixelRatio);\n }\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n}\n","import { Collider } from \"./Collider\";\nexport async function loadParticlesCollisionsInteraction(engine) {\n await engine.addInteractor(\"particlesCollisions\", (container) => new Collider(container));\n}\n","import { Circle, Rectangle } from \"tsparticles-engine\";\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = Object.assign({}, canvasSize);\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y,\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height,\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height,\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range, circle = range, newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\n","import { OptionsColor } from \"tsparticles-engine\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { OptionsColor } from \"tsparticles-engine\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n","import { LinksShadow } from \"./LinksShadow\";\nimport { LinksTriangle } from \"./LinksTriangle\";\nimport { OptionsColor } from \"tsparticles-engine\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n","import { Circle, ParticlesInteractorBase, getDistance, getLinkRandomColor } from \"tsparticles-engine\";\nimport { CircleWarp } from \"./CircleWarp\";\nimport { Links } from \"./Options/Classes/Links\";\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n let distance = getDistance(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const pos2NE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y,\n };\n distance = getDistance(pos1, pos2NE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y - canvasSize.height,\n };\n distance = getDistance(pos1, pos2SE);\n if (distance <= optDistance) {\n return distance;\n }\n const pos2SW = {\n x: pos2.x,\n y: pos2.y - canvasSize.height,\n };\n distance = getDistance(pos1, pos2SW);\n return distance;\n}\nexport class Linker extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n this.linkContainer = container;\n }\n clear() {\n }\n init() {\n this.linkContainer.particles.linksColor = undefined;\n this.linkContainer.particles.linksColors = new Map();\n }\n async interact(p1) {\n var _a;\n if (!p1.options.links) {\n return;\n }\n p1.links = [];\n const pos1 = p1.getPosition(), container = this.container, canvasSize = container.canvas.size;\n if (pos1.x < 0 || pos1.y < 0 || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links, optOpacity = linkOpt1.opacity, optDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : 0, warp = linkOpt1.warp, range = warp\n ? new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize)\n : new Circle(pos1.x, pos1.y, optDistance), query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !(linkOpt2 === null || linkOpt2 === void 0 ? void 0 : linkOpt2.enable) ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n !p2.links ||\n p1.links.map((t) => t.destination).indexOf(p2) !== -1 ||\n p2.links.map((t) => t.destination).indexOf(p1) !== -1) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < 0 || pos2.y < 0 || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n return;\n }\n const opacityLine = (1 - distance / optDistance) * optOpacity;\n this.setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n isEnabled(particle) {\n var _a;\n return !!((_a = particle.options.links) === null || _a === void 0 ? void 0 : _a.enable);\n }\n loadParticlesOptions(options, ...sources) {\n var _a, _b;\n if (!options.links) {\n options.links = new Links();\n }\n for (const source of sources) {\n options.links.load((_b = (_a = source === null || source === void 0 ? void 0 : source.links) !== null && _a !== void 0 ? _a : source === null || source === void 0 ? void 0 : source.lineLinked) !== null && _b !== void 0 ? _b : source === null || source === void 0 ? void 0 : source.line_linked);\n }\n }\n reset() {\n }\n setColor(p1) {\n if (!p1.options.links) {\n return;\n }\n const container = this.linkContainer, linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (linkColor) {\n return;\n }\n const optColor = linksOptions.color;\n linkColor = getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n }\n}\n","import { Linker } from \"./Linker\";\nexport async function loadInteraction(engine) {\n await engine.addInteractor(\"particlesLinks\", (container) => new Linker(container));\n}\n","import { drawLinkLine, drawLinkTriangle } from \"./Utils\";\nimport { getDistance, getLinkColor, getRandom, getRangeValue, rangeColorToRgb } from \"tsparticles-engine\";\nfunction getLinkKey(ids) {\n ids.sort((a, b) => a - b);\n return ids.join(\"_\");\n}\nfunction setLinkFrequency(particles, dictionary) {\n const key = getLinkKey(particles.map((t) => t.id));\n let res = dictionary.get(key);\n if (res === undefined) {\n res = getRandom();\n dictionary.set(key, res);\n }\n return res;\n}\nexport class LinkInstance {\n constructor(container) {\n this.container = container;\n this._freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n }\n drawParticle(context, particle) {\n var _a;\n const pOptions = particle.options;\n if (!particle.links || particle.links.length <= 0) {\n return;\n }\n const p1Links = particle.links.filter((l) => pOptions.links && this.getLinkFrequency(particle, l.destination) <= pOptions.links.frequency);\n for (const link of p1Links) {\n this.drawTriangles(pOptions, particle, link, p1Links);\n if (link.opacity > 0 && ((_a = particle.retina.linksWidth) !== null && _a !== void 0 ? _a : 0) > 0) {\n this.drawLinkLine(particle, link);\n }\n }\n }\n async init() {\n this._freqs.links = new Map();\n this._freqs.triangles = new Map();\n }\n particleCreated(particle) {\n particle.links = [];\n if (!particle.options.links) {\n return;\n }\n const ratio = this.container.retina.pixelRatio;\n particle.retina.linksDistance = particle.options.links.distance * ratio;\n particle.retina.linksWidth = particle.options.links.width * ratio;\n }\n particleDestroyed(particle) {\n particle.links = [];\n }\n drawLinkLine(p1, link) {\n const container = this.container, options = container.actualOptions, p2 = link.destination, pos1 = p1.getPosition(), pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw((ctx) => {\n var _a, _b, _c;\n if (!p1.options.links) {\n return;\n }\n let colorLine;\n const twinkle = (_a = p1.options.twinkle) === null || _a === void 0 ? void 0 : _a.lines;\n if (twinkle === null || twinkle === void 0 ? void 0 : twinkle.enable) {\n const twinkleFreq = twinkle.frequency, twinkleRgb = rangeColorToRgb(twinkle.color), twinkling = getRandom() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = getRangeValue(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linksOptions = p1.options.links, linkColor = (linksOptions === null || linksOptions === void 0 ? void 0 : linksOptions.id) !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorLine = getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = (_b = p1.retina.linksWidth) !== null && _b !== void 0 ? _b : 0, maxDistance = (_c = p1.retina.linksDistance) !== null && _c !== void 0 ? _c : 0;\n drawLinkLine(ctx, width, pos1, pos2, maxDistance, container.canvas.size, p1.options.links.warp, options.backgroundMask.enable, options.backgroundMask.composite, colorLine, opacity, p1.options.links.shadow);\n });\n }\n drawLinkTriangle(p1, link1, link2) {\n var _a;\n if (!p1.options.links) {\n return;\n }\n const container = this.container, options = container.actualOptions, p2 = link1.destination, p3 = link2.destination, triangleOptions = p1.options.links.triangles, opacityTriangle = (_a = triangleOptions.opacity) !== null && _a !== void 0 ? _a : (link1.opacity + link2.opacity) / 2;\n if (opacityTriangle <= 0) {\n return;\n }\n container.canvas.draw((ctx) => {\n var _a;\n const pos1 = p1.getPosition(), pos2 = p2.getPosition(), pos3 = p3.getPosition(), linksDistance = (_a = p1.retina.linksDistance) !== null && _a !== void 0 ? _a : 0;\n if (getDistance(pos1, pos2) > linksDistance ||\n getDistance(pos3, pos2) > linksDistance ||\n getDistance(pos3, pos1) > linksDistance) {\n return;\n }\n let colorTriangle = rangeColorToRgb(triangleOptions.color);\n if (!colorTriangle) {\n const linksOptions = p1.options.links, linkColor = (linksOptions === null || linksOptions === void 0 ? void 0 : linksOptions.id) !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n drawLinkTriangle(ctx, pos1, pos2, pos3, options.backgroundMask.enable, options.backgroundMask.composite, colorTriangle, opacityTriangle);\n });\n }\n drawTriangles(options, p1, link, p1Links) {\n var _a, _b, _c;\n const p2 = link.destination;\n if (!(((_a = options.links) === null || _a === void 0 ? void 0 : _a.triangles.enable) && ((_b = p2.options.links) === null || _b === void 0 ? void 0 : _b.triangles.enable))) {\n return;\n }\n const vertices = (_c = p2.links) === null || _c === void 0 ? void 0 : _c.filter((t) => {\n const linkFreq = this.getLinkFrequency(p2, t.destination);\n return (p2.options.links &&\n linkFreq <= p2.options.links.frequency &&\n p1Links.findIndex((l) => l.destination === t.destination) >= 0);\n });\n if (!(vertices === null || vertices === void 0 ? void 0 : vertices.length)) {\n return;\n }\n for (const vertex of vertices) {\n const p3 = vertex.destination, triangleFreq = this.getTriangleFrequency(p1, p2, p3);\n if (triangleFreq > options.links.triangles.frequency) {\n continue;\n }\n this.drawLinkTriangle(p1, link, vertex);\n }\n }\n getLinkFrequency(p1, p2) {\n return setLinkFrequency([p1, p2], this._freqs.links);\n }\n getTriangleFrequency(p1, p2, p3) {\n return setLinkFrequency([p1, p2, p3], this._freqs.triangles);\n }\n}\n","import { drawLine, drawTriangle, getDistance, getDistances, getStyleFromRgb, rangeColorToRgb, } from \"tsparticles-engine\";\nexport function drawLinkLine(context, width, begin, end, maxDistance, canvasSize, warp, backgroundMask, composite, colorLine, opacity, shadow) {\n let drawn = false;\n if (getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n if (shadow.enable) {\n const shadowColor = rangeColorToRgb(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n}\nexport function drawLinkTriangle(context, pos1, pos2, pos3, backgroundMask, composite, colorTriangle, opacityTriangle) {\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n}\n","import { LinkInstance } from \"./LinkInstance\";\nclass LinksPlugin {\n constructor() {\n this.id = \"links\";\n }\n getPlugin(container) {\n return new LinkInstance(container);\n }\n loadOptions() {\n }\n needsPlugin() {\n return true;\n }\n}\nexport async function loadPlugin(engine) {\n const plugin = new LinksPlugin();\n await engine.addPlugin(plugin);\n}\n","import { loadInteraction } from \"./interaction\";\nimport { loadPlugin } from \"./plugin\";\nexport async function loadParticlesLinksInteraction(engine) {\n await loadInteraction(engine);\n await loadPlugin(engine);\n}\nexport * from \"./Options/Classes/Links\";\nexport * from \"./Options/Classes/LinksShadow\";\nexport * from \"./Options/Classes/LinksTriangle\";\nexport * from \"./Options/Interfaces/ILinks\";\nexport * from \"./Options/Interfaces/ILinksShadow\";\nexport * from \"./Options/Interfaces/ILinksTriangle\";\n","import { getRangeValue } from \"tsparticles-engine\";\nexport class PolygonDrawerBase {\n draw(context, particle, radius) {\n const start = this.getCenter(particle, radius), side = this.getSidesData(particle, radius), sideCount = side.count.numerator * side.count.denominator, decimalSides = side.count.numerator / side.count.denominator, interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides, interiorAngle = Math.PI - (Math.PI * interiorAngleDegrees) / 180;\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(0, 0);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, 0);\n context.translate(side.length, 0);\n context.rotate(interiorAngle);\n }\n }\n getSidesCount(particle) {\n var _a, _b;\n const polygon = particle.shapeData, sides = Math.round(getRangeValue((_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5));\n return sides;\n }\n}\n","import { PolygonDrawerBase } from \"./PolygonDrawerBase\";\nexport class PolygonDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n return {\n x: -radius / (particle.sides / 3.5),\n y: -radius / (2.66 / 3.5),\n };\n }\n getSidesData(particle, radius) {\n const sides = particle.sides;\n return {\n count: {\n denominator: 1,\n numerator: sides,\n },\n length: (radius * 2.66) / (sides / 3),\n };\n }\n}\n","import { PolygonDrawerBase } from \"./PolygonDrawerBase\";\nexport class TriangleDrawer extends PolygonDrawerBase {\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / 1.66,\n };\n }\n getSidesCount() {\n return 3;\n }\n getSidesData(particle, radius) {\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: radius * 2,\n };\n }\n}\n","import { PolygonDrawer } from \"./PolygonDrawer\";\nimport { TriangleDrawer } from \"./TriangleDrawer\";\nexport async function loadGenericPolygonShape(engine) {\n await engine.addShape(\"polygon\", new PolygonDrawer());\n}\nexport async function loadTriangleShape(engine) {\n await engine.addShape(\"triangle\", new TriangleDrawer());\n}\nexport async function loadPolygonShape(engine) {\n await loadGenericPolygonShape(engine);\n await loadTriangleShape(engine);\n}\n","import { clamp, getRandom } from \"tsparticles-engine\";\nfunction checkDestroy(particle, value, minValue, maxValue) {\n switch (particle.options.size.animation.destroy) {\n case \"max\":\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case \"min\":\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nfunction updateSize(particle, delta) {\n var _a, _b, _c, _d, _e;\n const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor, minValue = particle.size.min, maxValue = particle.size.max, decay = (_b = particle.size.decay) !== null && _b !== void 0 ? _b : 1;\n if (particle.destroyed ||\n !particle.size.enable ||\n (((_c = particle.size.maxLoops) !== null && _c !== void 0 ? _c : 0) > 0 && ((_d = particle.size.loops) !== null && _d !== void 0 ? _d : 0) > ((_e = particle.size.maxLoops) !== null && _e !== void 0 ? _e : 0))) {\n return;\n }\n switch (particle.size.status) {\n case \"increasing\":\n if (particle.size.value >= maxValue) {\n particle.size.status = \"decreasing\";\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value += sizeVelocity;\n }\n break;\n case \"decreasing\":\n if (particle.size.value <= minValue) {\n particle.size.status = \"increasing\";\n if (!particle.size.loops) {\n particle.size.loops = 0;\n }\n particle.size.loops++;\n }\n else {\n particle.size.value -= sizeVelocity;\n }\n }\n if (particle.size.velocity && decay !== 1) {\n particle.size.velocity *= decay;\n }\n checkDestroy(particle, particle.size.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.size.value = clamp(particle.size.value, minValue, maxValue);\n }\n}\nexport class SizeUpdater {\n init(particle) {\n var _a;\n const container = particle.container, sizeOptions = particle.options.size, sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n particle.size.velocity =\n (((_a = particle.retina.sizeAnimationSpeed) !== null && _a !== void 0 ? _a : container.retina.sizeAnimationSpeed) / 100) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n particle.size.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n var _a, _b, _c, _d;\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n (((_a = particle.size.maxLoops) !== null && _a !== void 0 ? _a : 0) <= 0 ||\n (((_b = particle.size.maxLoops) !== null && _b !== void 0 ? _b : 0) > 0 && ((_c = particle.size.loops) !== null && _c !== void 0 ? _c : 0) < ((_d = particle.size.maxLoops) !== null && _d !== void 0 ? _d : 0))));\n }\n reset(particle) {\n particle.size.loops = 0;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateSize(particle, delta);\n }\n}\n","import { SizeUpdater } from \"./SizeUpdater\";\nexport async function loadSizeUpdater(engine) {\n await engine.addParticleUpdater(\"size\", () => new SizeUpdater());\n}\n","const fixFactor = Math.sqrt(2);\nexport class SquareDrawer {\n draw(context, particle, radius) {\n context.rect(-radius / fixFactor, -radius / fixFactor, (radius * 2) / fixFactor, (radius * 2) / fixFactor);\n }\n getSidesCount() {\n return 4;\n }\n}\n","import { SquareDrawer } from \"./SquareDrawer\";\nexport async function loadSquareShape(engine) {\n const drawer = new SquareDrawer();\n await engine.addShape([\"edge\", \"square\"], drawer);\n}\n","import { getRangeValue } from \"tsparticles-engine\";\nexport class StarDrawer {\n draw(context, particle, radius) {\n var _a;\n const sides = particle.sides, inset = (_a = particle.starInset) !== null && _a !== void 0 ? _a : 2;\n context.moveTo(0, 0 - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius);\n }\n }\n getSidesCount(particle) {\n var _a, _b;\n const star = particle.shapeData;\n return Math.round(getRangeValue((_b = (_a = star === null || star === void 0 ? void 0 : star.sides) !== null && _a !== void 0 ? _a : star === null || star === void 0 ? void 0 : star.nb_sides) !== null && _b !== void 0 ? _b : 5));\n }\n particleInit(container, particle) {\n var _a;\n const star = particle.shapeData, inset = getRangeValue((_a = star === null || star === void 0 ? void 0 : star.inset) !== null && _a !== void 0 ? _a : 2);\n particle.starInset = inset;\n }\n}\n","import { StarDrawer } from \"./StarDrawer\";\nexport async function loadStarShape(engine) {\n await engine.addShape(\"star\", new StarDrawer());\n}\n","import { getHslAnimationFromHsl, getRangeValue, itemFromSingleOrMultiple, randomInRange, rangeColorToHsl, } from \"tsparticles-engine\";\nfunction updateColorValue(delta, value, valueAnimation, max, decrease) {\n var _a, _b;\n const colorValue = value;\n if (!colorValue ||\n !colorValue.enable ||\n (colorValue.loops !== undefined &&\n colorValue.maxLoops !== undefined &&\n colorValue.maxLoops > 0 &&\n colorValue.loops >= colorValue.maxLoops)) {\n return;\n }\n const offset = randomInRange(valueAnimation.offset), velocity = ((_a = value.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor + offset * 3.6, decay = (_b = value.decay) !== null && _b !== void 0 ? _b : 1;\n if (!decrease || colorValue.status === \"increasing\") {\n colorValue.value += velocity;\n if (colorValue.value > max) {\n if (!colorValue.loops) {\n colorValue.loops = 0;\n }\n colorValue.loops++;\n if (decrease) {\n colorValue.status = \"decreasing\";\n colorValue.value -= colorValue.value % max;\n }\n }\n }\n else {\n colorValue.value -= velocity;\n if (colorValue.value < 0) {\n if (!colorValue.loops) {\n colorValue.loops = 0;\n }\n colorValue.loops++;\n colorValue.status = \"increasing\";\n colorValue.value += colorValue.value;\n }\n }\n if (colorValue.velocity && decay !== 1) {\n colorValue.velocity *= decay;\n }\n if (colorValue.value > max) {\n colorValue.value %= max;\n }\n}\nfunction updateStrokeColor(particle, delta) {\n if (!particle.strokeColor || !particle.strokeAnimation) {\n return;\n }\n const h = particle.strokeColor.h;\n if (h) {\n updateColorValue(delta, h, particle.strokeAnimation.h, 360, false);\n }\n const s = particle.strokeColor.s;\n if (s) {\n updateColorValue(delta, s, particle.strokeAnimation.s, 100, true);\n }\n const l = particle.strokeColor.l;\n if (l) {\n updateColorValue(delta, l, particle.strokeAnimation.l, 100, true);\n }\n}\nexport class StrokeColorUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a, _b, _c;\n const container = this.container;\n const stroke = itemFromSingleOrMultiple(particle.options.stroke, particle.id, particle.options.reduceDuplicates);\n particle.strokeWidth = getRangeValue(stroke.width) * container.retina.pixelRatio;\n particle.strokeOpacity = getRangeValue((_a = stroke.opacity) !== null && _a !== void 0 ? _a : 1);\n particle.strokeAnimation = (_b = stroke.color) === null || _b === void 0 ? void 0 : _b.animation;\n const strokeHslColor = (_c = rangeColorToHsl(stroke.color)) !== null && _c !== void 0 ? _c : particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, particle.strokeAnimation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n var _a, _b, _c;\n const color = particle.strokeAnimation;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((((_a = particle.strokeColor) === null || _a === void 0 ? void 0 : _a.h.value) !== undefined && particle.strokeColor.h.enable) ||\n (((_b = particle.strokeColor) === null || _b === void 0 ? void 0 : _b.s.value) !== undefined && particle.strokeColor.s.enable) ||\n (((_c = particle.strokeColor) === null || _c === void 0 ? void 0 : _c.l.value) !== undefined && particle.strokeColor.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateStrokeColor(particle, delta);\n }\n}\n","import { StrokeColorUpdater } from \"./StrokeColorUpdater\";\nexport async function loadStrokeColorUpdater(engine) {\n await engine.addParticleUpdater(\"strokeColor\", (container) => new StrokeColorUpdater(container));\n}\n","import { executeOnSingleOrMultiple, isInArray, itemFromSingleOrMultiple, loadFont } from \"tsparticles-engine\";\nexport const validTypes = [\"text\", \"character\", \"char\"];\nexport class TextDrawer {\n draw(context, particle, radius, opacity) {\n var _a, _b, _c;\n const character = particle.shapeData;\n if (character === undefined) {\n return;\n }\n const textData = character.value;\n if (textData === undefined) {\n return;\n }\n const textParticle = particle;\n if (textParticle.text === undefined) {\n textParticle.text = itemFromSingleOrMultiple(textData, particle.randomIndexData);\n }\n const text = textParticle.text, style = (_a = character.style) !== null && _a !== void 0 ? _a : \"\", weight = (_b = character.weight) !== null && _b !== void 0 ? _b : \"400\", size = Math.round(radius) * 2, font = (_c = character.font) !== null && _c !== void 0 ? _c : \"Verdana\", fill = particle.fill, offsetX = (text.length * radius) / 2;\n context.font = `${style} ${weight} ${size}px \"${font}\"`;\n const pos = {\n x: -offsetX,\n y: radius / 2,\n };\n context.globalAlpha = opacity;\n if (fill) {\n context.fillText(text, pos.x, pos.y);\n }\n else {\n context.strokeText(text, pos.x, pos.y);\n }\n context.globalAlpha = 1;\n }\n getSidesCount() {\n return 12;\n }\n async init(container) {\n const options = container.actualOptions;\n if (validTypes.find((t) => isInArray(t, options.particles.shape.type))) {\n const shapeOptions = validTypes\n .map((t) => options.particles.shape.options[t])\n .find((t) => !!t), promises = [];\n executeOnSingleOrMultiple(shapeOptions, (shape) => {\n promises.push(loadFont(shape.font, shape.weight));\n });\n await Promise.all(promises);\n }\n }\n}\n","import { TextDrawer, validTypes } from \"./TextDrawer\";\nexport async function loadTextShape(engine) {\n await engine.addShape(validTypes, new TextDrawer());\n}\n","import { initPjs } from \"tsparticles-particles.js\";\nimport { loadAngleUpdater } from \"tsparticles-updater-angle\";\nimport { loadBaseMover } from \"tsparticles-move-base\";\nimport { loadCircleShape } from \"tsparticles-shape-circle\";\nimport { loadColorUpdater } from \"tsparticles-updater-color\";\nimport { loadExternalAttractInteraction } from \"tsparticles-interaction-external-attract\";\nimport { loadExternalBounceInteraction } from \"tsparticles-interaction-external-bounce\";\nimport { loadExternalBubbleInteraction } from \"tsparticles-interaction-external-bubble\";\nimport { loadExternalConnectInteraction } from \"tsparticles-interaction-external-connect\";\nimport { loadExternalGrabInteraction } from \"tsparticles-interaction-external-grab\";\nimport { loadExternalPauseInteraction } from \"tsparticles-interaction-external-pause\";\nimport { loadExternalPushInteraction } from \"tsparticles-interaction-external-push\";\nimport { loadExternalRemoveInteraction } from \"tsparticles-interaction-external-remove\";\nimport { loadExternalRepulseInteraction } from \"tsparticles-interaction-external-repulse\";\nimport { loadExternalSlowInteraction } from \"tsparticles-interaction-external-slow\";\nimport { loadImageShape } from \"tsparticles-shape-image\";\nimport { loadLifeUpdater } from \"tsparticles-updater-life\";\nimport { loadLineShape } from \"tsparticles-shape-line\";\nimport { loadOpacityUpdater } from \"tsparticles-updater-opacity\";\nimport { loadOutModesUpdater } from \"tsparticles-updater-out-modes\";\nimport { loadParallaxMover } from \"tsparticles-move-parallax\";\nimport { loadParticlesAttractInteraction } from \"tsparticles-interaction-particles-attract\";\nimport { loadParticlesCollisionsInteraction } from \"tsparticles-interaction-particles-collisions\";\nimport { loadParticlesLinksInteraction } from \"tsparticles-interaction-particles-links\";\nimport { loadPolygonShape } from \"tsparticles-shape-polygon\";\nimport { loadSizeUpdater } from \"tsparticles-updater-size\";\nimport { loadSquareShape } from \"tsparticles-shape-square\";\nimport { loadStarShape } from \"tsparticles-shape-star\";\nimport { loadStrokeColorUpdater } from \"tsparticles-updater-stroke-color\";\nimport { loadTextShape } from \"tsparticles-shape-text\";\nexport async function loadSlim(engine) {\n await loadBaseMover(engine);\n await loadParallaxMover(engine);\n await loadExternalAttractInteraction(engine);\n await loadExternalBounceInteraction(engine);\n await loadExternalBubbleInteraction(engine);\n await loadExternalConnectInteraction(engine);\n await loadExternalGrabInteraction(engine);\n await loadExternalPauseInteraction(engine);\n await loadExternalPushInteraction(engine);\n await loadExternalRemoveInteraction(engine);\n await loadExternalRepulseInteraction(engine);\n await loadExternalSlowInteraction(engine);\n await loadParticlesAttractInteraction(engine);\n await loadParticlesCollisionsInteraction(engine);\n await loadParticlesLinksInteraction(engine);\n await loadCircleShape(engine);\n await loadImageShape(engine);\n await loadLineShape(engine);\n await loadPolygonShape(engine);\n await loadSquareShape(engine);\n await loadStarShape(engine);\n await loadTextShape(engine);\n await loadLifeUpdater(engine);\n await loadOpacityUpdater(engine);\n await loadSizeUpdater(engine);\n await loadAngleUpdater(engine);\n await loadColorUpdater(engine);\n await loadStrokeColorUpdater(engine);\n await loadOutModesUpdater(engine);\n await initPjs(engine);\n}\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class TiltAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n","import { TiltAnimation } from \"./TiltAnimation\";\nimport { ValueWithRandom } from \"tsparticles-engine\";\nexport class Tilt extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new TiltAnimation();\n this.direction = \"clockwise\";\n this.enable = false;\n this.value = 0;\n }\n load(data) {\n super.load(data);\n if (!data) {\n return;\n }\n this.animation.load(data.animation);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n","import { getRandom, getRangeValue } from \"tsparticles-engine\";\nimport { Tilt } from \"./Options/Classes/Tilt\";\nfunction updateTilt(particle, delta) {\n var _a, _b;\n if (!particle.tilt || !particle.options.tilt) {\n return;\n }\n const tilt = particle.options.tilt, tiltAnimation = tilt.animation, speed = ((_a = particle.tilt.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor, max = 2 * Math.PI, decay = (_b = particle.tilt.decay) !== null && _b !== void 0 ? _b : 1;\n if (!tiltAnimation.enable) {\n return;\n }\n switch (particle.tilt.status) {\n case \"increasing\":\n particle.tilt.value += speed;\n if (particle.tilt.value > max) {\n particle.tilt.value -= max;\n }\n break;\n case \"decreasing\":\n default:\n particle.tilt.value -= speed;\n if (particle.tilt.value < 0) {\n particle.tilt.value += max;\n }\n break;\n }\n if (particle.tilt.velocity && decay !== 1) {\n particle.tilt.velocity *= decay;\n }\n}\nexport class TiltUpdater {\n constructor(container) {\n this.container = container;\n }\n getTransformValues(particle) {\n var _a;\n const tilt = ((_a = particle.tilt) === null || _a === void 0 ? void 0 : _a.enable) && particle.tilt;\n return {\n b: tilt ? Math.cos(tilt.value) * tilt.cosDirection : undefined,\n c: tilt ? Math.sin(tilt.value) * tilt.sinDirection : undefined,\n };\n }\n init(particle) {\n var _a;\n const tiltOptions = particle.options.tilt;\n if (!tiltOptions) {\n return;\n }\n particle.tilt = {\n enable: tiltOptions.enable,\n value: (getRangeValue(tiltOptions.value) * Math.PI) / 180,\n sinDirection: getRandom() >= 0.5 ? 1 : -1,\n cosDirection: getRandom() >= 0.5 ? 1 : -1,\n };\n let tiltDirection = tiltOptions.direction;\n if (tiltDirection === \"random\") {\n const index = Math.floor(getRandom() * 2);\n tiltDirection = index > 0 ? \"counter-clockwise\" : \"clockwise\";\n }\n switch (tiltDirection) {\n case \"counter-clockwise\":\n case \"counterClockwise\":\n particle.tilt.status = \"decreasing\";\n break;\n case \"clockwise\":\n particle.tilt.status = \"increasing\";\n break;\n }\n const tiltAnimation = (_a = particle.options.tilt) === null || _a === void 0 ? void 0 : _a.animation;\n if (tiltAnimation === null || tiltAnimation === void 0 ? void 0 : tiltAnimation.enable) {\n particle.tilt.decay = 1 - getRangeValue(tiltAnimation.decay);\n particle.tilt.velocity = (getRangeValue(tiltAnimation.speed) / 360) * this.container.retina.reduceFactor;\n if (!tiltAnimation.sync) {\n particle.tilt.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n var _a;\n const tiltAnimation = (_a = particle.options.tilt) === null || _a === void 0 ? void 0 : _a.animation;\n return !particle.destroyed && !particle.spawning && !!(tiltAnimation === null || tiltAnimation === void 0 ? void 0 : tiltAnimation.enable);\n }\n loadOptions(options, ...sources) {\n if (!options.tilt) {\n options.tilt = new Tilt();\n }\n for (const source of sources) {\n options.tilt.load(source === null || source === void 0 ? void 0 : source.tilt);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateTilt(particle, delta);\n }\n}\n","import { TiltUpdater } from \"./TiltUpdater\";\nexport async function loadTiltUpdater(engine) {\n await engine.addParticleUpdater(\"tilt\", (container) => new TiltUpdater(container));\n}\n","import { OptionsColor, setRangeValue } from \"tsparticles-engine\";\nexport class TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}\n","import { TwinkleValues } from \"./TwinkleValues\";\nexport class Twinkle {\n constructor() {\n this.lines = new TwinkleValues();\n this.particles = new TwinkleValues();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\n","import { getRandom, getRangeValue, getStyleFromHsl, rangeColorToHsl } from \"tsparticles-engine\";\nimport { Twinkle } from \"./Options/Classes/Twinkle\";\nexport class TwinkleUpdater {\n getColorStyles(particle, context, radius, opacity) {\n const pOptions = particle.options, twinkleOptions = pOptions.twinkle;\n if (!twinkleOptions) {\n return {};\n }\n const twinkle = twinkleOptions.particles, twinkling = twinkle.enable && getRandom() < twinkle.frequency, zIndexOptions = particle.options.zIndex, zOpacityFactor = (1 - particle.zIndexFactor) ** zIndexOptions.opacityRate, twinklingOpacity = twinkling ? getRangeValue(twinkle.opacity) * zOpacityFactor : opacity, twinkleRgb = rangeColorToHsl(twinkle.color), twinkleStyle = twinkleRgb ? getStyleFromHsl(twinkleRgb, twinklingOpacity) : undefined, res = {}, needsTwinkle = twinkling && twinkleStyle;\n res.fill = needsTwinkle ? twinkleStyle : undefined;\n res.stroke = needsTwinkle ? twinkleStyle : undefined;\n return res;\n }\n init() {\n }\n isEnabled(particle) {\n const pOptions = particle.options, twinkleOptions = pOptions.twinkle;\n if (!twinkleOptions) {\n return false;\n }\n return twinkleOptions.particles.enable;\n }\n loadOptions(options, ...sources) {\n if (!options.twinkle) {\n options.twinkle = new Twinkle();\n }\n for (const source of sources) {\n options.twinkle.load(source === null || source === void 0 ? void 0 : source.twinkle);\n }\n }\n update() {\n }\n}\n","import { TwinkleUpdater } from \"./TwinkleUpdater\";\nexport async function loadTwinkleUpdater(engine) {\n await engine.addParticleUpdater(\"twinkle\", () => new TwinkleUpdater());\n}\n","import { setRangeValue } from \"tsparticles-engine\";\nexport class WobbleSpeed {\n constructor() {\n this.angle = 50;\n this.move = 10;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.angle !== undefined) {\n this.angle = setRangeValue(data.angle);\n }\n if (data.move !== undefined) {\n this.move = setRangeValue(data.move);\n }\n }\n}\n","import { WobbleSpeed } from \"./WobbleSpeed\";\nimport { setRangeValue } from \"tsparticles-engine\";\nexport class Wobble {\n constructor() {\n this.distance = 5;\n this.enable = false;\n this.speed = new WobbleSpeed();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n if (typeof data.speed === \"number\") {\n this.speed.load({ angle: data.speed });\n }\n else {\n const rangeSpeed = data.speed;\n if (rangeSpeed.min !== undefined) {\n this.speed.load({ angle: rangeSpeed });\n }\n else {\n this.speed.load(data.speed);\n }\n }\n }\n }\n}\n","import { getRandom, getRangeValue } from \"tsparticles-engine\";\nimport { Wobble } from \"./Options/Classes/Wobble\";\nfunction updateWobble(particle, delta) {\n var _a;\n const wobble = particle.options.wobble;\n if (!(wobble === null || wobble === void 0 ? void 0 : wobble.enable) || !particle.wobble) {\n return;\n }\n const angleSpeed = particle.wobble.angleSpeed * delta.factor, moveSpeed = particle.wobble.moveSpeed * delta.factor, distance = (moveSpeed * (((_a = particle.retina.wobbleDistance) !== null && _a !== void 0 ? _a : 0) * delta.factor)) / (1000 / 60), max = 2 * Math.PI;\n particle.wobble.angle += angleSpeed;\n if (particle.wobble.angle > max) {\n particle.wobble.angle -= max;\n }\n particle.position.x += distance * Math.cos(particle.wobble.angle);\n particle.position.y += distance * Math.abs(Math.sin(particle.wobble.angle));\n}\nexport class WobbleUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n var _a;\n const wobbleOpt = particle.options.wobble;\n if (wobbleOpt === null || wobbleOpt === void 0 ? void 0 : wobbleOpt.enable) {\n particle.wobble = {\n angle: getRandom() * Math.PI * 2,\n angleSpeed: getRangeValue(wobbleOpt.speed.angle) / 360,\n moveSpeed: getRangeValue(wobbleOpt.speed.move) / 10,\n };\n }\n else {\n particle.wobble = {\n angle: 0,\n angleSpeed: 0,\n moveSpeed: 0,\n };\n }\n particle.retina.wobbleDistance = getRangeValue((_a = wobbleOpt === null || wobbleOpt === void 0 ? void 0 : wobbleOpt.distance) !== null && _a !== void 0 ? _a : 0) * this.container.retina.pixelRatio;\n }\n isEnabled(particle) {\n var _a;\n return !particle.destroyed && !particle.spawning && !!((_a = particle.options.wobble) === null || _a === void 0 ? void 0 : _a.enable);\n }\n loadOptions(options, ...sources) {\n if (!options.wobble) {\n options.wobble = new Wobble();\n }\n for (const source of sources) {\n options.wobble.load(source === null || source === void 0 ? void 0 : source.wobble);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateWobble(particle, delta);\n }\n}\n","import { WobbleUpdater } from \"./WobbleUpdater\";\nexport async function loadWobbleUpdater(engine) {\n await engine.addParticleUpdater(\"wobble\", (container) => new WobbleUpdater(container));\n}\n","import { loadAbsorbersPlugin } from \"tsparticles-plugin-absorbers\";\nimport { loadDestroyUpdater } from \"tsparticles-updater-destroy\";\nimport { loadEmittersPlugin } from \"tsparticles-plugin-emitters\";\nimport { loadExternalTrailInteraction } from \"tsparticles-interaction-external-trail\";\nimport { loadRollUpdater } from \"tsparticles-updater-roll\";\nimport { loadSlim } from \"tsparticles-slim\";\nimport { loadTiltUpdater } from \"tsparticles-updater-tilt\";\nimport { loadTwinkleUpdater } from \"tsparticles-updater-twinkle\";\nimport { loadWobbleUpdater } from \"tsparticles-updater-wobble\";\nexport async function loadFull(engine) {\n await loadSlim(engine);\n await loadDestroyUpdater(engine);\n await loadRollUpdater(engine);\n await loadTiltUpdater(engine);\n await loadTwinkleUpdater(engine);\n await loadWobbleUpdater(engine);\n await loadExternalTrailInteraction(engine);\n await loadAbsorbersPlugin(engine);\n await loadEmittersPlugin(engine);\n}\n","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}"],"names":["module","exports","equal","a","b","constructor","length","i","keys","Array","isArray","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","key","$$typeof","defaultId","Particles","props","state","init","library","undefined","this","destroy","setState","nextProps","refresh","then","tsParticles","loadParticles","width","height","className","canvasClassName","id","React","style","assign","cb","container","current","loaded","_b","_a","defaultProps","url","_c","params","options","Component","EventDispatcher","_listeners","Map","type","listener","removeEventListener","get","set","push","args","forEach","handler","delete","arr","idx","indexOf","splice","Vector3d","xOrCoords","y","z","x","coords3d","Error","Math","atan2","angle","updateFromAngle","sqrt","getLengthSq","v","create","clone","sub","n","cos","sin","c","v3d","Vector","_random","random","easings","getEasing","name","value","getRandom","clamp","num","min","max","mix","comp1","comp2","weight1","weight2","floor","randomInRange","r","getRangeMax","getRangeMin","getRangeValue","setRangeValue","getValue","enable","minimumValue","getDistances","pointA","pointB","dx","dy","distance","getDistance","collisionVelocity","v1","v2","m1","m2","calcPositionOrRandomFromSize","data","_d","position","size","calcPositionOrRandomFromSizeRanged","calcExactPositionOrRandomFromSize","parseAlpha","input","endsWith","parseFloat","rectSideBounce","pSide","pOtherSide","rectSide","rectOtherSide","velocity","factor","res","bounced","isSsr","window","document","safeMatchMedia","query","matchMedia","isInArray","array","loadFont","font","weight","fonts","load","arrayRandomIndex","itemFromArray","index","useIndex","isPointInside","point","offset","radius","direction","bounds","inside","top","right","left","bottom","areBoundsInside","calculateBounds","deepExtend","destination","sources","sourceIsArray","isObject","destDict","map","isDivModeEnabled","mode","divs","findItemFromSingleOrMultiple","t","divModeExecute","callback","executeOnSingleOrMultiple","div","divMode","selectors","selector","singleDivModeExecute","element","matches","some","checkSelector","circleBounceDataFromParticle","p","getPosition","getRadius","mass","getMass","bounce","horizontal","vertical","circleBounce","p1","p2","xVelocityDiff","yVelocityDiff","xDist","yDist","u1","rotate","u2","vFinal1","vFinal2","rectBounce","particle","divBounds","resH","resV","obj","item","itemFromSingleOrMultiple","find","randomColorValue","midColorValue","colorManagers","addColorManager","manager","hue2rgb","q","stringToRgba","startsWith","stringPrefix","parseString","hexFixed","replace","_","g","result","exec","parseInt","rangeColorToRgb","color","colorToRgb","handleRangeColor","getRandomRgbColor","stringToRgb","handleColor","rangeColorToHsl","rgb","rgbToHsl","r1","g1","b1","h","l","s","hslToRgb","hsl","hslPercent","fixedMin","getStyleFromRgb","opacity","getStyleFromHsl","colorMix","color1","color2","size1","size2","rgb1","rgb2","getLinkColor","linkColor","sourceColor","getFillColor","getStrokeColor","destColor","hslColor","getLinkRandomColor","optColor","blink","consent","getHslFromAnimation","animation","getHslAnimationFromHsl","animationOptions","reduceFactor","resColor","setColorAnimation","colorValue","colorAnimation","speed","decay","status","loops","maxLoops","count","sync","initialValue","drawLine","context","begin","end","beginPath","moveTo","lineTo","closePath","drawTriangle","p3","clear","dimension","clearRect","generatedAttribute","touchEndEvent","mouseMoveEvent","mouseLeaveEvent","setTransformValue","newFactor","newValue","Canvas","_context","_generated","_preDrawUpdaters","_postDrawUpdaters","_resizePlugins","_colorPlugins","_mutationObserver","MutationObserver","records","record","attributeName","_repairStyle","actualOptions","fullScreen","trail","particles","move","trailFill","_trailFill","backgroundMask","paint","_paintBase","image","_paintImage","draw","ctx","disconnect","remove","_resetOriginalStyle","stop","delta","spawning","destroyed","pfColor","psColor","_getPluginParticleColors","fColor","sColor","zIndexOptions","zIndex","zOpacityFactor","zIndexFactor","opacityRate","bubble","zOpacity","zStrokeOpacity","strokeOpacity","transform","colorStyles","fill","stroke","_applyPreDrawUpdaters","_e","composite","shadow","pos","rotation","pathRotation","rotateData","transformData","d","setTransform","globalCompositeOperation","shadowColor","shadowBlur","blur","shadowOffsetX","shadowOffsetY","fillStyle","strokeWidth","lineWidth","strokeStyle","shape","drawer","drawers","retina","pixelRatio","drawShape","close","afterEffect","drawShapeAfterEffect","drawParticle","sizeRate","_applyPostDrawUpdaters","plugin","drawParticlePlugin","drawPlugin","resize","_initStyle","_initCover","_initTrail","console","error","initBackground","observe","attributes","initUpdaters","initPlugins","background","elementStyle","backgroundColor","backgroundImage","backgroundPosition","backgroundRepeat","repeat","backgroundSize","plugins","particleFillColor","particleStrokeColor","updaters","updater","afterDraw","getColorStyles","getTransformValues","beforeDraw","canvas","dataset","ariaHidden","_originalStyle","offsetHeight","offsetWidth","getContext","cover","_coverColorStyle","pxRatio","newSize","oldSize","started","resizeFactor","needsRefresh","updateActualOptions","setDensity","_applyResizePlugins","updaterTransform","coverRgb","coverColor","_fullScreen","_setFullScreenStyle","setProperty","fillColor","Promise","resolve","reject","img","createElement","addEventListener","evt","src","baseColor","fillRect","paintBase","globalAlpha","drawImage","paintImage","originalStyle","priority","manageListener","event","add","addOptions","passive","capture","removeOptions","EventListeners","canPush","handlers","mouseMove","e","mouseTouchMove","touchStart","touchMove","touchEnd","mouseTouchFinish","mouseLeave","touchCancel","touchEndClick","mouseTouchClick","mouseUp","mouseDown","visibilityChange","handleVisibilityChange","themeChange","handleThemeChange","oldThemeChange","handleWindowResize","manageListeners","mouseInteractivity","interactivity","mouse","mousePos","clickPosition","clickTime","Date","getTime","events","onClick","handleClickMode","setTimeout","mediaEvent","defaultThemes","themeName","dark","light","theme","themes","default","auto","loadTheme","pauseOnBlur","hidden","pageHidden","pause","getAnimationStatus","play","resizeTimeout","clearTimeout","windowResize","delay","detectType","detectsOn","mouseLeaveTmpEvent","canvasEl","parentElement","parentNode","mediaMatch","addListener","removeListener","interactivityEl","html","onHover","pointerEvents","ResizeObserver","resizeObserver","unobserve","entries","target","clicking","downPosition","handled","mousePosition","clickPositionValid","doMouseTouchClick","_f","_g","mouseEvent","clientRect","getBoundingClientRect","clientX","clientY","currentTarget","sourceRect","targetRect","canvasRect","offsetX","offsetY","touchEvent","lastTouch","touches","initDelta","fpsLimit","smooth","FrameManager","timestamp","lastFrameTime","lifeTime","duration","OptionsColor","Background","BackgroundMaskCover","BackgroundMask","FullScreen","ClickEvent","DivEvent","elementId","ids","el","Parallax","force","HoverEvent","parallax","ResizeEvent","Events","onDiv","onclick","ondiv","tmp","onhover","Modes","engine","_engine","_container","interactors","interactor","loadModeOptions","Interactivity","modes","detect_on","ManualParticle","Responsive","maxWidth","Infinity","ThemeDefault","Theme","ColorAnimation","HslAnimation","AnimatableColor","CollisionsAbsorb","CollisionsOverlap","retries","Random","ValueWithRandom","ParticlesBounceFactor","ParticlesBounce","Collisions","absorb","overlap","MoveAngle","MoveAttract","rotateX","rotateY","MoveCenter","MoveGravity","acceleration","inverse","maxSpeed","MovePath","generator","MoveTrailFill","MoveTrail","OutModes","Spin","Move","attract","center","drift","gravity","path","outModes","spin","straight","vibrate","warp","collisions","outMode","out_mode","noise","AnimationOptions","OpacityAnimation","startValue","opacity_min","Opacity","anim","ParticlesDensity","area","value_area","ParticlesNumber","density","limit","Shadow","charKey","charAltKey","imageKey","imageAltKey","polygonKey","polygonAltKey","Shape","_value","custom","loadShape","character","polygon","images","mainKey","altKey","altOverride","emptyValue","mainDifferentValues","altDifferentValues","SizeAnimation","size_min","Size","Stroke","ZIndex","velocityRate","ParticlesOptions","groups","number","reduceDuplicates","group","strokeToLoad","loadOptions","loadParticlesOptions","sourceOptionsArr","sourceOptions","Options","autoPlay","detectRetina","manualParticles","pauseOnOutsideViewport","responsive","zLayers","preset","_importPreset","retina_detect","fps_limit","backgroundMode","optResponsive","sort","existingTheme","optTheme","_findDefaultTheme","defaultOptions","responsiveOptions","screen","availWidth","chosenTheme","clientDarkMode","defaultTheme","getPreset","InteractionManager","_interactors","getInteractors","_externalInteractors","_particleInteractors","isEnabled","interact","reset","fixOutMode","checkModes","coord","maxCoord","setCb","Particle","overrideOptions","override","unbreakable","inRange","slow","particleDestroyed","pathGenerator","_getRollColor","PI","strokeColor","_h","_j","lastPathTime","misplaced","maxDistance","outType","ignoresResizeRatio","mainOptions","particlesOptions","shapeType","shapeOptions","shapeData","_loadShapeData","pathOptions","pathDelay","getPathGenerator","addPath","zIndexValue","initParticle","sizeOptions","sizeRange","sizeAnimation","_calcPosition","initialPosition","copy","canvasSize","moveCenter","isCenterPercent","getParticleDirectionAngle","initialVelocity","_calculateVelocity","moveDecay","origin","needsSort","lastZIndex","sides","getShapeDrawer","sideCountFunc","getSidesCount","movers","mover","particleInit","particleCreated","isInsideCanvas","tryCount","pluginPos","particlePosition","exactPosition","fixHorizontal","fixVertical","_checkOverlap","baseVelocity","getParticleBaseVelocity","moveOptions","rad","radOffset","range","collisionsOptions","overlapOptions","overlaps","roll","backColor","alter","backFactor","backSum","alterHsl","Point","Range","Circle","rect","circle","pos1","pos2","distPos","abs","w","pow","Rectangle","intersects","w2","h2","QuadTree","rectangle","capacity","_points","_divided","contains","subdivide","_NE","insert","_NW","_SE","_SW","check","found","nextId","zArray","pool","interactionManager","quadTree","getMovers","getUpdaters","addParticle","initializer","countToRemove","removeQuantity","_pushParticle","update","particlesInitialization","pathGenerators","addManualParticles","groupOptions","j","nb","pushing","removeAt","quantity","deleted","zIdx","dispatchEvent","_applyDensity","particlesToDelete","particleUpdate","externalInteract","particlesInteract","manualCount","numberOptions","densityFactor","_initDensityFactor","optParticlesNumber","optParticlesLimit","particlesNumber","particlesCount","filter","densityOptions","pop","canAdd","warn","Retina","devicePixelRatio","ratio","attractDistance","sizeAnimationSpeed","moveDistance","moveDrift","moveSpeed","guardCheck","loadContainerOptions","defaultPathGenerator","generate","Container","_delay","_firstStart","_paused","_sourceOptions","_initialSourceOptions","frameManager","_options","_eventListeners","IntersectionObserver","_intersectionObserver","_intersectionManager","clickOrTouchHandler","posRetina","queryCircle","touched","touchMoved","changedTouches","radiusX","radiusY","has","mainArr","dom","findIndex","refreshTime","_drawAnimationFrame","requestAnimationFrame","nextFrame","JSON","stringify","quality","toBlob","exportImage","shapes","getSupportedShapes","availablePlugins","getAvailablePlugins","particlesSetup","_currentTheme","handle","cancelAnimationFrame","needsUpdate","start","noiseOrGenerator","setPath","pathOrGenerator","oldGenerator","_delayTimeout","addListeners","HTMLElement","removeListeners","newMaxWidth","setResponsive","setTheme","responsiveMaxWidth","entry","isIntersecting","getDataFromUrl","jsonUrl","fetch","response","ok","json","Loader","tagId","remote","loadRemoteOptions","domContainer","getElementById","querySelector","append","currentOptions","oldIndex","old","domItem","tagName","toLowerCase","existingCanvases","getElementsByTagName","appendChild","newItem","loadCanvas","newIndex","newId","getItemsFromInitializer","initializers","values","Plugins","_initializers","presets","initInteractor","initMover","initUpdater","getPlugin","presetKey","types","needsPlugin","Engine","_domArray","_eventDispatcher","_initialized","_loader","interactorInitializer","addInteractor","moverInitializer","addParticleMover","updaterInitializer","addParticleUpdater","addPathGenerator","addPlugin","addPreset","customDrawer","addShapeDrawer","pathConfigJson","loadJSON","instance","setJSON","addClickHandler","HslColorManager","hsla","rgbResult","hslaToRgba","RgbColorManager","rgbColor","ExternalInteractorBase","ParticlesInteractorBase","rgbColorManager","hslColorManager","AbsorberSizeLimit","AbsorberSize","Absorber","draggable","orbits","AbsorberInstance","absorbers","dragging","calcPosition","sizeFactor","absorberOrbit","needsNewPosition","updateParticlePosition","translate","arc","newPosition","setTo","minSize","absorberOrbitDirection","orbitRadius","orbitAngle","orbitDirection","updateFunc","addV","addTo","Absorbers","interactivityAbsorbers","getAbsorber","idxOrName","addAbsorber","absorber","absorberOptions","modeAbsorbers","absorbersModeOptions","absorbersOptions","aPosition","AbsorbersPlugin","loadAbsorbersPlugin","DestroyBounds","SplitFactor","SplitRate","Split","rate","sizeOffset","colorOffset","Destroy","split","DestroyUpdater","destroyOptions","splitCount","destroyBounds","parent","splitParticlesOptions","splitOptions","parentColor","particlesSplitOptions","addSplitParticle","loadDestroyUpdater","CircleShape","theta","randomTheta","u","atan","tan","generateTheta","maxRadius","randomRadius","EmitterLife","wait","EmitterRate","EmitterSize","Emitter","life","startCount","domId","spawnColor","EmitterInstance","emitters","_currentDuration","_currentEmitDelay","_currentSpawnDelay","_initialPosition","_spawnDelay","_shape","emitterShapeManager","getShape","_firstSpawn","_startParticlesAdded","_particlesOptions","_lifeCount","_immortal","emitter","elRect","_emitDelay","prepareToDie","emitParticles","_duration","emit","removeEmitter","getSize","singleParticlesOptions","hslAnimation","pPosition","randomPosition","initValue","maxValue","emitFactor","Emitters","interactivityEmitters","getEmitter","addEmitter","playEmitter","externalPlay","pauseEmitter","externalPause","emitterOptions","modeEmitters","emittersModeOptions","usedIndexes","includes","emittersOptions","ePosition","ShapeManager","randomSquareCoordinate","SquareShape","halfW","halfH","side","EmittersPlugin","emitterMode","loadEmittersPlugin","addEmitterShape","addShape","Trail","pauseOnStop","TrailMaker","trailOptions","optDelay","canEmit","_lastPosition","loadExternalTrailInteraction","RollLight","Roll","darken","enlighten","RollUpdater","rollHorizontal","rollVertical","rollOpt","alterType","updateRoll","loadRollUpdater","initPjs","particlesJS","catch","setOnClickHandler","pJSDom","RotateAnimation","Rotate","RotateUpdater","rotateOptions","rotateDirection","rotateAnimation","updateAngle","loadAngleUpdater","BaseMover","gravityOptions","spinOptions","spinPos","spinCenter","spinAcceleration","particleOptions","slowFactor","getProximitySpeedFactor","baseSpeed","maxSize","maxCanvasSize","applyPath","gravityFactor","multTo","mult","zVelocityFactor","dxFixed","dyFixed","hDistance","vDistance","vel","applyDistance","loadBaseMover","addMover","CircleDrawer","circleRange","loadCircleShape","updateColorValue","valueAnimation","decrease","ColorUpdater","updateColor","loadColorUpdater","Attract","easing","Attractor","finish","attractModeDistance","mouseMoveStatus","hoverEnabled","hoverMode","clickEnabled","clickMode","hoverAttract","clickAttract","attractRadius","processAttract","attractOptions","attractFactor","normVec","subFrom","loadExternalAttractInteraction","Bounce","Bouncer","bounceModeDistance","processMouseBounce","singleSelectorBounce","tolerance","processBounce","querySelectorAll","elem","offsetLeft","offsetTop","loadExternalBounceInteraction","BubbleBase","BubbleDiv","Bubble","calculateBubbleValue","particleValue","modeValue","optionsValue","Bubbler","bubbleModeDistance","bubbleModeSize","hoverBubble","clickBubble","singleSelectorHover","divBubble","mouseClickPos","durationEnd","distMouse","timeSpent","sizeData","bubbleObj","optValue","particlesObj","process","opacityData","hoverBubbleColor","pointDistance","hoverBubbleSize","hoverBubbleOpacity","bubbleOptions","finalColor","modeColor","bubbleColor","pColor","modeOpacity","optOpacity","modeSize","optSize","bubbleParam","bubbleDuration","bubbleDistance","particlesParam","pObjBubble","pObj","repulseRadius","loadExternalBubbleInteraction","ConnectLinks","Connect","links","lineLinked","line_linked","lineStyle","connectOptions","connect","gradStop","sourcePos","destPos","midRgb","grad","createLinearGradient","addColorStop","gradient","drawConnection","ls","drawConnectLine","linksWidth","Connector","connectModeDistance","connectModeRadius","slice","distMax","xDiff","yDiff","loadExternalConnectInteraction","GrabLinks","Grab","drawGrab","lineColor","beginPos","colorLine","drawGrabLine","Grabber","grab","grabModeDistance","grabLineOptions","lineOpacity","opacityLine","grabLineColor","linksOptions","loadExternalGrabInteraction","Pauser","loadExternalPauseInteraction","Push","particles_nb","Pusher","pushOptions","pushNb","loadExternalPushInteraction","Remove","Remover","removeNb","loadExternalRemoveInteraction","RepulseBase","RepulseDiv","Repulse","Repulser","repulse","repulseModeDistance","hoverRepulse","clickRepulse","singleSelectorRepulse","divRepulse","repulseDistance","vect","processRepulse","repulseOptions","repulseFactor","loadExternalRepulseInteraction","Slow","Slower","slowModeRadius","particlePos","dist","proximityFactor","loadExternalSlowInteraction","currentColorRegex","loadImage","loading","Image","downloadSvgImage","text","svgData","replaceImageColor","imageData","svgColoredData","imageShape","colorStyle","preFillIndex","substring","replaceColorSvg","imageRes","replaceColor","replace_color","svg","Blob","domUrl","URL","webkitURL","createObjectURL","revokeObjectURL","img2","ImageDrawer","_images","containerImages","getImages","loadImageShape","addImage","imageFunc","LifeDelay","LifeDuration","Life","LifeUpdater","lifeOptions","delayTime","time","justSpawned","widthRange","heightRange","loadLifeUpdater","LineDrawer","loadLineShape","OpacityUpdater","opacityOptions","opacityAnimation","opacityRange","minValue","checkDestroy","updateOpacity","loadOpacityUpdater","BounceOutMode","particleBounce","newVelocity","minPos","bounceHorizontal","bounceVertical","DestroyOutMode","vx","vy","NoneOutMode","pRadius","OutOutMode","circVec","newDx","newDy","wrap","newPos","sizeValue","nextBounds","OutOfCanvasUpdater","updateOutMode","loadOutModesUpdater","ParallaxMover","parallaxForce","canvasCenter","parallaxSmooth","centerDistance","loadParallaxMover","ax","ay","p1Factor","p2Factor","loadParticlesAttractInteraction","updateAbsorb","r2","resolveCollision","Collider","radius1","radius2","round","loadParticlesCollisionsInteraction","CircleWarp","posNE","posSE","posSW","biggerCircle","rectSW","LinksShadow","LinksTriangle","frequency","Links","triangles","getLinkDistance","optDistance","pos2NE","pos2SE","pos2SW","Linker","linkContainer","linksColor","linksColors","linkOpt1","linksDistance","linkOpt2","setColor","loadInteraction","setLinkFrequency","dictionary","join","LinkInstance","_freqs","pOptions","p1Links","getLinkFrequency","link","drawTriangles","drawLinkLine","twinkle","lines","twinkleFreq","twinkleRgb","drawn","pi1","pi2","endNE","d1","yi","endSW","d2","xi","endSE","d3","link1","link2","triangleOptions","opacityTriangle","pos3","colorTriangle","drawLinkTriangle","vertices","linkFreq","vertex","getTriangleFrequency","LinksPlugin","loadPlugin","loadParticlesLinksInteraction","PolygonDrawerBase","getCenter","getSidesData","sideCount","numerator","denominator","decimalSides","interiorAngleDegrees","interiorAngle","nb_sides","PolygonDrawer","TriangleDrawer","loadGenericPolygonShape","loadTriangleShape","loadPolygonShape","SizeUpdater","sizeVelocity","updateSize","loadSizeUpdater","fixFactor","SquareDrawer","loadSquareShape","StarDrawer","inset","starInset","star","loadStarShape","StrokeColorUpdater","strokeAnimation","strokeHslColor","updateStrokeColor","loadStrokeColorUpdater","validTypes","TextDrawer","textData","textParticle","randomIndexData","fillText","strokeText","promises","all","loadTextShape","loadSlim","TiltAnimation","Tilt","TiltUpdater","tilt","cosDirection","sinDirection","tiltOptions","tiltDirection","tiltAnimation","updateTilt","loadTiltUpdater","TwinkleValues","Twinkle","TwinkleUpdater","twinkleOptions","twinkling","twinklingOpacity","twinkleStyle","needsTwinkle","loadTwinkleUpdater","WobbleSpeed","Wobble","rangeSpeed","WobbleUpdater","wobbleOpt","wobble","angleSpeed","wobbleDistance","updateWobble","loadWobbleUpdater","loadFull","_superPropBase","object","property","getPrototypeOf","_get","Reflect","bind","receiver","base","desc","getOwnPropertyDescriptor","arguments","apply"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/728.624f15cc.chunk.js b/static/js/728.624f15cc.chunk.js new file mode 100644 index 0000000..5bff2e3 --- /dev/null +++ b/static/js/728.624f15cc.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkreact_homework_template=self.webpackChunkreact_homework_template||[]).push([[728],{3728:function(e,a,t){t.r(a),t.d(a,{default:function(){return w}});var n,r,i=t(9434),l=t(9273),s=t(1643),o=t(4217),d=t(168),m=t(7691),u=m.ZP.form(n||(n=(0,d.Z)(["\n width: 320px;\n"]))),c=(m.ZP.label(r||(r=(0,d.Z)(["\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n"]))),t(1614)),p=t(6747),x=t(7338),h=t(3736),f=t(184),v=function(e){var a=e.onData,t=(0,i.I0)(),n=(0,i.v9)(o.Li);return(0,f.jsx)(c.Z,{component:"div",maxWidth:"xs",style:{maxWidth:440},children:(0,f.jsxs)(p.Z,{sx:{marginTop:8,display:"flex",flexDirection:"column",alignItems:"center",backgroundColor:"white",padding:"20px",boxShadow:"0px 2px 10px 1px rgb(33 33 33) "},children:[(0,f.jsx)("h1",{style:{textAlign:"center",fontFamily:"monospace"},children:"Sign Up"}),(0,f.jsxs)(u,{onSubmit:function(e){e.preventDefault();var n=e.currentTarget;a(t((0,l.z2)({name:n.elements.name.value,email:n.elements.email.value,password:n.elements.password.value}))),n.reset()},autoComplete:"off",style:{width:"100%"},children:[(0,f.jsx)(x.Z,{margin:"normal",required:!0,fullWidth:!0,autoFocus:!0,label:"Name",name:"name",autoComplete:"name",type:"text",variant:"standard"}),(0,f.jsx)(x.Z,{margin:"normal",required:!0,fullWidth:!0,label:"Email",name:"email",autoComplete:"email",type:"email",variant:"standard"}),(0,f.jsx)(x.Z,{margin:"normal",required:!0,fullWidth:!0,name:"password",label:"Password",type:"password",autoComplete:"current-password",variant:"standard"}),n?(0,f.jsx)(h.Z,{variant:"contained",fullWidth:!0,style:{marginTop:30},children:(0,f.jsx)(s.BR,{height:22,stroke:"#fff"})}):(0,f.jsx)(h.Z,{type:"submit",fullWidth:!0,variant:"contained",style:{marginTop:30},children:"Register"})]})]})})},g=t(5218);function w(){var e=(0,i.v9)(o.Li),a=(0,i.v9)(o.Hn);return(0,f.jsxs)("div",{children:[(0,f.jsx)("title",{children:"Registration"}),(0,f.jsx)(v,{onData:function(){"Request failed with status code 400"===a&&!1===e&&g.ZP.success("You are already authorized!")}})]})}}}]); +//# sourceMappingURL=728.624f15cc.chunk.js.map \ No newline at end of file diff --git a/static/js/728.624f15cc.chunk.js.map b/static/js/728.624f15cc.chunk.js.map new file mode 100644 index 0000000..472fb44 --- /dev/null +++ b/static/js/728.624f15cc.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/728.624f15cc.chunk.js","mappings":"uPAEaA,EAAOC,EAAAA,GAAAA,KAAH,yC,GAIIA,EAAAA,GAAAA,MAAH,6F,gDCGLC,EAAe,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OACvBC,GAAWC,EAAAA,EAAAA,MACXC,GAAYC,EAAAA,EAAAA,IAAYC,EAAAA,IAkB9B,OACE,SAACC,EAAA,EAAD,CAAWC,UAAU,MAAMC,SAAS,KAAKC,MAAO,CAAED,SAAU,KAA5D,UACE,UAACE,EAAA,EAAD,CACEC,GAAI,CACFC,UAAW,EACXC,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,gBAAiB,QACjBC,QAAS,OACTC,UAAW,mCARf,WAWE,eAAIT,MAAO,CAAEU,UAAW,SAAUC,WAAY,aAA9C,sBAGA,UAACvB,EAAD,CACEwB,SAjCa,SAAAC,GACnBA,EAAEC,iBACF,IAAMC,EAAOF,EAAEG,cACfzB,EACEC,GACEyB,EAAAA,EAAAA,IAAS,CACPC,KAAMH,EAAKI,SAASD,KAAKE,MACzBC,MAAON,EAAKI,SAASE,MAAMD,MAC3BE,SAAUP,EAAKI,SAASG,SAASF,UAKvCL,EAAKQ,OACN,EAoBOC,aAAa,MACbxB,MAAO,CAAEyB,MAAO,QAHlB,WAKE,SAACC,EAAA,EAAD,CACEC,OAAO,SACPC,UAAQ,EACRC,WAAS,EACTC,WAAS,EACTC,MAAM,OACNb,KAAK,OACLM,aAAa,OACbQ,KAAK,OACLC,QAAQ,cAEV,SAACP,EAAA,EAAD,CACEC,OAAO,SACPC,UAAQ,EACRC,WAAS,EACTE,MAAM,QACNb,KAAK,QACLM,aAAa,QACbQ,KAAK,QACLC,QAAQ,cAEV,SAACP,EAAA,EAAD,CACEC,OAAO,SACPC,UAAQ,EACRC,WAAS,EACTX,KAAK,WACLa,MAAM,WACNC,KAAK,WACLR,aAAa,mBACbS,QAAQ,aAETvC,GACC,SAACwC,EAAA,EAAD,CAAQD,QAAQ,YAAYJ,WAAS,EAAC7B,MAAO,CAAEG,UAAW,IAA1D,UACE,SAAC,KAAD,CAAMgC,OAAQ,GAAIC,OAAO,YAG3B,SAACF,EAAA,EAAD,CACEF,KAAK,SACLH,WAAS,EACTI,QAAQ,YACRjC,MAAO,CAAEG,UAAW,IAJtB,6BAaX,E,UC9Fc,SAASkC,IACtB,IAAM3C,GAAYC,EAAAA,EAAAA,IAAYC,EAAAA,IACxB0C,GAAS3C,EAAAA,EAAAA,IAAY4C,EAAAA,IAU3B,OACE,4BACE,6CAEA,SAACjD,EAAD,CAAcC,OAbC,WAEJ,wCAAX+C,IACc,IAAd5C,GAEA8C,EAAAA,GAAAA,QAAc,8BAEjB,MASF,C","sources":["components/RegisterForm/RegisterForm.styled.js","components/RegisterForm/RegisterForm.jsx","pages/Register.js"],"sourcesContent":["import styled from 'styled-components';\n\nexport const Form = styled.form`\n width: 320px;\n`;\n\nexport const Label = styled.label`\n display: flex;\n flex-direction: column;\n margin-bottom: 16px;\n`;\n","import { useDispatch } from 'react-redux';\nimport { register } from 'redux/auth/operations';\nimport { Puff } from 'react-loading-icons';\nimport { useSelector } from 'react-redux';\nimport { selectAuthIsLoading } from 'redux/auth/selectors';\n\nimport { Form } from './RegisterForm.styled';\nimport { Button, TextField, Box, Container } from '@mui/material';\n\nexport const RegisterForm = ({ onData }) => {\n const dispatch = useDispatch();\n const isLoading = useSelector(selectAuthIsLoading);\n\n const handleSubmit = e => {\n e.preventDefault();\n const form = e.currentTarget;\n onData(\n dispatch(\n register({\n name: form.elements.name.value,\n email: form.elements.email.value,\n password: form.elements.password.value,\n })\n )\n );\n\n form.reset();\n };\n\n return (\n \n \n

\n Sign Up\n

\n \n \n \n \n {isLoading ? (\n \n ) : (\n \n Register\n \n )}\n \n \n
\n );\n};\n","import { RegisterForm } from 'components/RegisterForm/RegisterForm';\nimport toast from 'react-hot-toast';\nimport { useSelector } from 'react-redux';\nimport { selectAuthIsLoading, selectAuthError } from 'redux/auth/selectors';\n\nexport default function Register() {\n const isLoading = useSelector(selectAuthIsLoading);\n const status = useSelector(selectAuthError);\n const onRegister = () => {\n if (\n status === 'Request failed with status code 400' &&\n isLoading === false\n ) {\n toast.success('You are already authorized!');\n }\n };\n\n return (\n
\n Registration\n\n \n
\n );\n}\n"],"names":["Form","styled","RegisterForm","onData","dispatch","useDispatch","isLoading","useSelector","selectAuthIsLoading","Container","component","maxWidth","style","Box","sx","marginTop","display","flexDirection","alignItems","backgroundColor","padding","boxShadow","textAlign","fontFamily","onSubmit","e","preventDefault","form","currentTarget","register","name","elements","value","email","password","reset","autoComplete","width","TextField","margin","required","fullWidth","autoFocus","label","type","variant","Button","height","stroke","Register","status","selectAuthError","toast"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/754.ba64efbe.chunk.js b/static/js/754.ba64efbe.chunk.js new file mode 100644 index 0000000..b61ef5b --- /dev/null +++ b/static/js/754.ba64efbe.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkreact_homework_template=self.webpackChunkreact_homework_template||[]).push([[754],{627:function(e,n,t){function o(e){return"string"===typeof e}t.d(n,{Z:function(){return o}})},3840:function(e,n,t){var o=t(2791).createContext(void 0);n.Z=o},6147:function(e,n,t){function o(e){var n=e.props,t=e.states,o=e.muiFormControl;return t.reduce((function(e,t){return e[t]=n[t],o&&"undefined"===typeof n[t]&&(e[t]=o[t]),e}),{})}t.d(n,{Z:function(){return o}})},2930:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(2791),r=t(3840);function i(){return o.useContext(r.Z)}},292:function(e,n,t){t.d(n,{Z:function(){return x}});var o=t(4942),r=t(3433),i=t(3366),a=t(7462),l=t(2791),u=t(4419),c=t(2466),d=t(6098),s=t(6934),f=t(1402),p=t(5878),m=t(1217),v=t(5891);function h(e){return(0,m.Z)("MuiInput",e)}var b=(0,a.Z)({},v.Z,(0,p.Z)("MuiInput",["root","underline","input"])),Z=t(184),y=["disableUnderline","components","componentsProps","fullWidth","inputComponent","multiline","slotProps","slots","type"],g=(0,s.ZP)(d.Ej,{shouldForwardProp:function(e){return(0,s.FO)(e)||"classes"===e},name:"MuiInput",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[].concat((0,r.Z)((0,d.Gx)(e,n)),[!t.disableUnderline&&n.underline])}})((function(e){var n,t=e.theme,r=e.ownerState,i="light"===t.palette.mode?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return t.vars&&(i="rgba(".concat(t.vars.palette.common.onBackgroundChannel," / ").concat(t.vars.opacity.inputUnderline,")")),(0,a.Z)({position:"relative"},r.formControl&&{"label + &":{marginTop:16}},!r.disableUnderline&&(n={"&:after":{borderBottom:"2px solid ".concat((t.vars||t).palette[r.color].main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:t.transitions.create("transform",{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut}),pointerEvents:"none"}},(0,o.Z)(n,"&.".concat(b.focused,":after"),{transform:"scaleX(1) translateX(0)"}),(0,o.Z)(n,"&.".concat(b.error),{"&:before, &:after":{borderBottomColor:(t.vars||t).palette.error.main}}),(0,o.Z)(n,"&:before",{borderBottom:"1px solid ".concat(i),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:t.transitions.create("border-bottom-color",{duration:t.transitions.duration.shorter}),pointerEvents:"none"}),(0,o.Z)(n,"&:hover:not(.".concat(b.disabled,", .").concat(b.error,"):before"),{borderBottom:"2px solid ".concat((t.vars||t).palette.text.primary),"@media (hover: none)":{borderBottom:"1px solid ".concat(i)}}),(0,o.Z)(n,"&.".concat(b.disabled,":before"),{borderBottomStyle:"dotted"}),n))})),S=(0,s.ZP)(d.rA,{name:"MuiInput",slot:"Input",overridesResolver:d._o})({}),w=l.forwardRef((function(e,n){var t,o,r,l,s=(0,f.Z)({props:e,name:"MuiInput"}),p=s.disableUnderline,m=s.components,v=void 0===m?{}:m,b=s.componentsProps,w=s.fullWidth,x=void 0!==w&&w,C=s.inputComponent,z=void 0===C?"input":C,R=s.multiline,A=void 0!==R&&R,k=s.slotProps,B=s.slots,I=void 0===B?{}:B,M=s.type,P=void 0===M?"text":M,E=(0,i.Z)(s,y),j=function(e){var n=e.classes,t={root:["root",!e.disableUnderline&&"underline"],input:["input"]},o=(0,u.Z)(t,h,n);return(0,a.Z)({},n,o)}(s),N={root:{ownerState:{disableUnderline:p}}},T=(null!=k?k:b)?(0,c.Z)(null!=k?k:b,N):N,F=null!=(t=null!=(o=I.root)?o:v.Root)?t:g,W=null!=(r=null!=(l=I.input)?l:v.Input)?r:S;return(0,Z.jsx)(d.ZP,(0,a.Z)({slots:{root:F,input:W},slotProps:T,fullWidth:x,inputComponent:z,multiline:A,ref:n,type:P},E,{classes:j}))}));w.muiName="Input";var x=w},6098:function(e,n,t){t.d(n,{rA:function(){return D},Ej:function(){return V},ZP:function(){return G},_o:function(){return U},Gx:function(){return L}});var o=t(9439),r=t(4942),i=t(3366),a=t(7462),l=t(6189),u=t(2791),c=t(8182),d=t(4419),s=t(4164),f=t(7563),p=t(7979),m=t(3981),v=t(5721),h=t(184),b=["onChange","maxRows","minRows","style","value"];function Z(e){return parseInt(e,10)||0}var y={visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"};function g(e){return void 0===e||null===e||0===Object.keys(e).length||0===e.outerHeightStyle&&!e.overflow}var S=u.forwardRef((function(e,n){var t=e.onChange,r=e.maxRows,l=e.minRows,c=void 0===l?1:l,d=e.style,S=e.value,w=(0,i.Z)(e,b),x=u.useRef(null!=S).current,C=u.useRef(null),z=(0,f.Z)(n,C),R=u.useRef(null),A=u.useRef(0),k=u.useState({outerHeightStyle:0}),B=(0,o.Z)(k,2),I=B[0],M=B[1],P=u.useCallback((function(){var n=C.current,t=(0,p.Z)(n).getComputedStyle(n);if("0px"===t.width)return{outerHeightStyle:0};var o=R.current;o.style.width=t.width,o.value=n.value||e.placeholder||"x","\n"===o.value.slice(-1)&&(o.value+=" ");var i=t.boxSizing,a=Z(t.paddingBottom)+Z(t.paddingTop),l=Z(t.borderBottomWidth)+Z(t.borderTopWidth),u=o.scrollHeight;o.value="x";var d=o.scrollHeight,s=u;return c&&(s=Math.max(Number(c)*d,s)),r&&(s=Math.min(Number(r)*d,s)),{outerHeightStyle:(s=Math.max(s,d))+("border-box"===i?a+l:0),overflow:Math.abs(s-u)<=1}}),[r,c,e.placeholder]),E=function(e,n){var t=n.outerHeightStyle,o=n.overflow;return A.current<20&&(t>0&&Math.abs((e.outerHeightStyle||0)-t)>1||e.overflow!==o)?(A.current+=1,{overflow:o,outerHeightStyle:t}):e},j=u.useCallback((function(){var e=P();g(e)||M((function(n){return E(n,e)}))}),[P]);u.useEffect((function(){var e,n=(0,m.Z)((function(){A.current=0,C.current&&function(){var e=P();g(e)||s.flushSync((function(){M((function(n){return E(n,e)}))}))}()})),t=C.current,o=(0,p.Z)(t);return o.addEventListener("resize",n),"undefined"!==typeof ResizeObserver&&(e=new ResizeObserver(n)).observe(t),function(){n.clear(),o.removeEventListener("resize",n),e&&e.disconnect()}})),(0,v.Z)((function(){j()})),u.useEffect((function(){A.current=0}),[S]);return(0,h.jsxs)(u.Fragment,{children:[(0,h.jsx)("textarea",(0,a.Z)({value:S,onChange:function(e){A.current=0,x||j(),t&&t(e)},ref:z,rows:c,style:(0,a.Z)({height:I.outerHeightStyle,overflow:I.overflow?"hidden":void 0},d)},w)),(0,h.jsx)("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:R,tabIndex:-1,style:(0,a.Z)({},y,d,{padding:0})})]})})),w=t(627),x=t(6147),C=t(3840),z=t(2930),R=t(6934),A=t(1402),k=t(4036),B=t(2071),I=t(162),M=t(2554);function P(e){var n=e.styles,t=e.defaultTheme,o=void 0===t?{}:t,r="function"===typeof n?function(e){return n(void 0===(t=e)||null===t||0===Object.keys(t).length?o:e);var t}:n;return(0,h.jsx)(M.xB,{styles:r})}var E=t(418);var j=function(e){var n=e.styles,t=e.themeId,o=e.defaultTheme,r=void 0===o?{}:o,i=(0,E.Z)(r),a="function"===typeof n?n(t&&i[t]||i):n;return(0,h.jsx)(P,{styles:a})},N=t(6482),T=t(988);var F=function(e){return(0,h.jsx)(j,(0,a.Z)({},e,{defaultTheme:N.Z,themeId:T.Z}))},W=t(5470),O=t(5891),H=["aria-describedby","autoComplete","autoFocus","className","color","components","componentsProps","defaultValue","disabled","disableInjectingGlobalStyles","endAdornment","error","fullWidth","id","inputComponent","inputProps","inputRef","margin","maxRows","minRows","multiline","name","onBlur","onChange","onClick","onFocus","onKeyDown","onKeyUp","placeholder","readOnly","renderSuffix","rows","size","slotProps","slots","startAdornment","type","value"],L=function(e,n){var t=e.ownerState;return[n.root,t.formControl&&n.formControl,t.startAdornment&&n.adornedStart,t.endAdornment&&n.adornedEnd,t.error&&n.error,"small"===t.size&&n.sizeSmall,t.multiline&&n.multiline,t.color&&n["color".concat((0,k.Z)(t.color))],t.fullWidth&&n.fullWidth,t.hiddenLabel&&n.hiddenLabel]},U=function(e,n){var t=e.ownerState;return[n.input,"small"===t.size&&n.inputSizeSmall,t.multiline&&n.inputMultiline,"search"===t.type&&n.inputTypeSearch,t.startAdornment&&n.inputAdornedStart,t.endAdornment&&n.inputAdornedEnd,t.hiddenLabel&&n.inputHiddenLabel]},V=(0,R.ZP)("div",{name:"MuiInputBase",slot:"Root",overridesResolver:L})((function(e){var n=e.theme,t=e.ownerState;return(0,a.Z)({},n.typography.body1,(0,r.Z)({color:(n.vars||n).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center"},"&.".concat(O.Z.disabled),{color:(n.vars||n).palette.text.disabled,cursor:"default"}),t.multiline&&(0,a.Z)({padding:"4px 0 5px"},"small"===t.size&&{paddingTop:1}),t.fullWidth&&{width:"100%"})})),D=(0,R.ZP)("input",{name:"MuiInputBase",slot:"Input",overridesResolver:U})((function(e){var n,t=e.theme,o=e.ownerState,i="light"===t.palette.mode,l=(0,a.Z)({color:"currentColor"},t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:i?.42:.5},{transition:t.transitions.create("opacity",{duration:t.transitions.duration.shorter})}),u={opacity:"0 !important"},c=t.vars?{opacity:t.vars.opacity.inputPlaceholder}:{opacity:i?.42:.5};return(0,a.Z)((n={font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%",animationName:"mui-auto-fill-cancel",animationDuration:"10ms","&::-webkit-input-placeholder":l,"&::-moz-placeholder":l,"&:-ms-input-placeholder":l,"&::-ms-input-placeholder":l,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"}},(0,r.Z)(n,"label[data-shrink=false] + .".concat(O.Z.formControl," &"),{"&::-webkit-input-placeholder":u,"&::-moz-placeholder":u,"&:-ms-input-placeholder":u,"&::-ms-input-placeholder":u,"&:focus::-webkit-input-placeholder":c,"&:focus::-moz-placeholder":c,"&:focus:-ms-input-placeholder":c,"&:focus::-ms-input-placeholder":c}),(0,r.Z)(n,"&.".concat(O.Z.disabled),{opacity:1,WebkitTextFillColor:(t.vars||t).palette.text.disabled}),(0,r.Z)(n,"&:-webkit-autofill",{animationDuration:"5000s",animationName:"mui-auto-fill"}),n),"small"===o.size&&{paddingTop:1},o.multiline&&{height:"auto",resize:"none",padding:0,paddingTop:0},"search"===o.type&&{MozAppearance:"textfield"})})),K=(0,h.jsx)(F,{styles:{"@keyframes mui-auto-fill":{from:{display:"block"}},"@keyframes mui-auto-fill-cancel":{from:{display:"block"}}}}),_=u.forwardRef((function(e,n){var t,r=(0,A.Z)({props:e,name:"MuiInputBase"}),s=r["aria-describedby"],f=r.autoComplete,p=r.autoFocus,m=r.className,v=r.components,b=void 0===v?{}:v,Z=r.componentsProps,y=void 0===Z?{}:Z,g=r.defaultValue,R=r.disabled,M=r.disableInjectingGlobalStyles,P=r.endAdornment,E=r.fullWidth,j=void 0!==E&&E,N=r.id,T=r.inputComponent,F=void 0===T?"input":T,L=r.inputProps,U=void 0===L?{}:L,_=r.inputRef,G=r.maxRows,q=r.minRows,X=r.multiline,J=void 0!==X&&X,Q=r.name,Y=r.onBlur,$=r.onChange,ee=r.onClick,ne=r.onFocus,te=r.onKeyDown,oe=r.onKeyUp,re=r.placeholder,ie=r.readOnly,ae=r.renderSuffix,le=r.rows,ue=r.slotProps,ce=void 0===ue?{}:ue,de=r.slots,se=void 0===de?{}:de,fe=r.startAdornment,pe=r.type,me=void 0===pe?"text":pe,ve=r.value,he=(0,i.Z)(r,H),be=null!=U.value?U.value:ve,Ze=u.useRef(null!=be).current,ye=u.useRef(),ge=u.useCallback((function(e){0}),[]),Se=(0,B.Z)(ye,_,U.ref,ge),we=u.useState(!1),xe=(0,o.Z)(we,2),Ce=xe[0],ze=xe[1],Re=(0,z.Z)();var Ae=(0,x.Z)({props:r,muiFormControl:Re,states:["color","disabled","error","hiddenLabel","size","required","filled"]});Ae.focused=Re?Re.focused:Ce,u.useEffect((function(){!Re&&R&&Ce&&(ze(!1),Y&&Y())}),[Re,R,Ce,Y]);var ke=Re&&Re.onFilled,Be=Re&&Re.onEmpty,Ie=u.useCallback((function(e){(0,W.vd)(e)?ke&&ke():Be&&Be()}),[ke,Be]);(0,I.Z)((function(){Ze&&Ie({value:be})}),[be,Ie,Ze]);u.useEffect((function(){Ie(ye.current)}),[]);var Me=F,Pe=U;J&&"input"===Me&&(Pe=le?(0,a.Z)({type:void 0,minRows:le,maxRows:le},Pe):(0,a.Z)({type:void 0,maxRows:G,minRows:q},Pe),Me=S);u.useEffect((function(){Re&&Re.setAdornedStart(Boolean(fe))}),[Re,fe]);var Ee=(0,a.Z)({},r,{color:Ae.color||"primary",disabled:Ae.disabled,endAdornment:P,error:Ae.error,focused:Ae.focused,formControl:Re,fullWidth:j,hiddenLabel:Ae.hiddenLabel,multiline:J,size:Ae.size,startAdornment:fe,type:me}),je=function(e){var n=e.classes,t=e.color,o=e.disabled,r=e.error,i=e.endAdornment,a=e.focused,l=e.formControl,u=e.fullWidth,c=e.hiddenLabel,s=e.multiline,f=e.readOnly,p=e.size,m=e.startAdornment,v=e.type,h={root:["root","color".concat((0,k.Z)(t)),o&&"disabled",r&&"error",u&&"fullWidth",a&&"focused",l&&"formControl","small"===p&&"sizeSmall",s&&"multiline",m&&"adornedStart",i&&"adornedEnd",c&&"hiddenLabel",f&&"readOnly"],input:["input",o&&"disabled","search"===v&&"inputTypeSearch",s&&"inputMultiline","small"===p&&"inputSizeSmall",c&&"inputHiddenLabel",m&&"inputAdornedStart",i&&"inputAdornedEnd",f&&"readOnly"]};return(0,d.Z)(h,O.u,n)}(Ee),Ne=se.root||b.Root||V,Te=ce.root||y.root||{},Fe=se.input||b.Input||D;return Pe=(0,a.Z)({},Pe,null!=(t=ce.input)?t:y.input),(0,h.jsxs)(u.Fragment,{children:[!M&&K,(0,h.jsxs)(Ne,(0,a.Z)({},Te,!(0,w.Z)(Ne)&&{ownerState:(0,a.Z)({},Ee,Te.ownerState)},{ref:n,onClick:function(e){ye.current&&e.currentTarget===e.target&&ye.current.focus(),ee&&!Ae.disabled&&ee(e)}},he,{className:(0,c.Z)(je.root,Te.className,m,ie&&"MuiInputBase-readOnly"),children:[fe,(0,h.jsx)(C.Z.Provider,{value:null,children:(0,h.jsx)(Fe,(0,a.Z)({ownerState:Ee,"aria-invalid":Ae.error,"aria-describedby":s,autoComplete:f,autoFocus:p,defaultValue:g,disabled:Ae.disabled,id:N,onAnimationStart:function(e){Ie("mui-auto-fill-cancel"===e.animationName?ye.current:{value:"x"})},name:Q,placeholder:re,readOnly:ie,required:Ae.required,rows:le,value:be,onKeyDown:te,onKeyUp:oe,type:me},Pe,!(0,w.Z)(Fe)&&{as:Me,ownerState:(0,a.Z)({},Ee,Pe.ownerState)},{ref:Se,className:(0,c.Z)(je.input,Pe.className,ie&&"MuiInputBase-readOnly"),onBlur:function(e){Y&&Y(e),U.onBlur&&U.onBlur(e),Re&&Re.onBlur?Re.onBlur(e):ze(!1)},onChange:function(e){if(!Ze){var n=e.target||ye.current;if(null==n)throw new Error((0,l.Z)(1));Ie({value:n.value})}for(var t=arguments.length,o=new Array(t>1?t-1:0),r=1;r1&&void 0!==arguments[1]&&arguments[1];return e&&(o(e.value)&&""!==e.value||n&&o(e.defaultValue)&&""!==e.defaultValue)}function i(e){return e.startAdornment}t.d(n,{B7:function(){return i},vd:function(){return r}})},9201:function(e,n,t){t.d(n,{Z:function(){return y}});var o=t(7462),r=t(2791),i=t(3366),a=t(8182),l=t(4419),u=t(4036),c=t(1402),d=t(6934),s=t(5878),f=t(1217);function p(e){return(0,f.Z)("MuiSvgIcon",e)}(0,s.Z)("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);var m=t(184),v=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],h=(0,d.ZP)("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,"inherit"!==t.color&&n["color".concat((0,u.Z)(t.color))],n["fontSize".concat((0,u.Z)(t.fontSize))]]}})((function(e){var n,t,o,r,i,a,l,u,c,d,s,f,p,m,v,h,b,Z=e.theme,y=e.ownerState;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:"currentColor",flexShrink:0,transition:null==(n=Z.transitions)||null==(t=n.create)?void 0:t.call(n,"fill",{duration:null==(o=Z.transitions)||null==(r=o.duration)?void 0:r.shorter}),fontSize:{inherit:"inherit",small:(null==(i=Z.typography)||null==(a=i.pxToRem)?void 0:a.call(i,20))||"1.25rem",medium:(null==(l=Z.typography)||null==(u=l.pxToRem)?void 0:u.call(l,24))||"1.5rem",large:(null==(c=Z.typography)||null==(d=c.pxToRem)?void 0:d.call(c,35))||"2.1875rem"}[y.fontSize],color:null!=(s=null==(f=(Z.vars||Z).palette)||null==(p=f[y.color])?void 0:p.main)?s:{action:null==(m=(Z.vars||Z).palette)||null==(v=m.action)?void 0:v.active,disabled:null==(h=(Z.vars||Z).palette)||null==(b=h.action)?void 0:b.disabled,inherit:void 0}[y.color]}})),b=r.forwardRef((function(e,n){var t=(0,c.Z)({props:e,name:"MuiSvgIcon"}),r=t.children,d=t.className,s=t.color,f=void 0===s?"inherit":s,b=t.component,Z=void 0===b?"svg":b,y=t.fontSize,g=void 0===y?"medium":y,S=t.htmlColor,w=t.inheritViewBox,x=void 0!==w&&w,C=t.titleAccess,z=t.viewBox,R=void 0===z?"0 0 24 24":z,A=(0,i.Z)(t,v),k=(0,o.Z)({},t,{color:f,component:Z,fontSize:g,instanceFontSize:e.fontSize,inheritViewBox:x,viewBox:R}),B={};x||(B.viewBox=R);var I=function(e){var n=e.color,t=e.fontSize,o=e.classes,r={root:["root","inherit"!==n&&"color".concat((0,u.Z)(n)),"fontSize".concat((0,u.Z)(t))]};return(0,l.Z)(r,p,o)}(k);return(0,m.jsxs)(h,(0,o.Z)({as:Z,className:(0,a.Z)(I.root,d),focusable:"false",color:S,"aria-hidden":!C||void 0,role:C?"img":void 0,ref:n},B,A,{ownerState:k,children:[r,C?(0,m.jsx)("title",{children:C}):null]}))}));b.muiName="SvgIcon";var Z=b;function y(e,n){function t(t,r){return(0,m.jsx)(Z,(0,o.Z)({"data-testid":"".concat(n,"Icon"),ref:r},t,{children:e}))}return t.muiName=Z.muiName,r.memo(r.forwardRef(t))}},3199:function(e,n,t){var o=t(3981);n.Z=o.Z},9103:function(e,n,t){t.d(n,{Z:function(){return r}});var o=t(2791);var r=function(e,n){return o.isValidElement(e)&&-1!==n.indexOf(e.type.muiName)}},8301:function(e,n,t){var o=t(9723);n.Z=o.Z},7602:function(e,n,t){var o=t(7979);n.Z=o.Z},8744:function(e,n,t){t.d(n,{Z:function(){return i}});var o=t(9439),r=t(2791);var i=function(e){var n=e.controlled,t=e.default,i=(e.name,e.state,r.useRef(void 0!==n).current),a=r.useState(t),l=(0,o.Z)(a,2),u=l[0],c=l[1];return[i?n:u,r.useCallback((function(e){i||c(e)}),[])]}},162:function(e,n,t){var o=t(5721);n.Z=o.Z},8949:function(e,n,t){function o(){for(var e=arguments.length,n=new Array(e),t=0;t1&&void 0!==arguments[1]?arguments[1]:166;function o(){for(var o=this,r=arguments.length,i=new Array(r),a=0;a {\n acc[state] = props[state];\n if (muiFormControl) {\n if (typeof props[state] === 'undefined') {\n acc[state] = muiFormControl[state];\n }\n }\n return acc;\n }, {});\n}","import * as React from 'react';\nimport FormControlContext from './FormControlContext';\nexport default function useFormControl() {\n return React.useContext(FormControlContext);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nimport { inputBaseClasses } from '../InputBase';\nexport function getInputUtilityClass(slot) {\n return generateUtilityClass('MuiInput', slot);\n}\nconst inputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiInput', ['root', 'underline', 'input']));\nexport default inputClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableUnderline\", \"components\", \"componentsProps\", \"fullWidth\", \"inputComponent\", \"multiline\", \"slotProps\", \"slots\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { refType, deepmerge } from '@mui/utils';\nimport InputBase from '../InputBase';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport inputClasses, { getInputUtilityClass } from './inputClasses';\nimport { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseComponent as InputBaseInput } from '../InputBase/InputBase';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableUnderline\n } = ownerState;\n const slots = {\n root: ['root', !disableUnderline && 'underline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getInputUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst InputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInput',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [...inputBaseRootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];\n }\n})(({\n theme,\n ownerState\n}) => {\n const light = theme.palette.mode === 'light';\n let bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n if (theme.vars) {\n bottomLineColor = `rgba(${theme.vars.palette.common.onBackgroundChannel} / ${theme.vars.opacity.inputUnderline})`;\n }\n return _extends({\n position: 'relative'\n }, ownerState.formControl && {\n 'label + &': {\n marginTop: 16\n }\n }, !ownerState.disableUnderline && {\n '&:after': {\n borderBottom: `2px solid ${(theme.vars || theme).palette[ownerState.color].main}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n\n [`&.${inputClasses.focused}:after`]: {\n // translateX(0) is a workaround for Safari transform scale bug\n // See https://github.com/mui/material-ui/issues/31766\n transform: 'scaleX(1) translateX(0)'\n },\n [`&.${inputClasses.error}`]: {\n '&:before, &:after': {\n borderBottomColor: (theme.vars || theme).palette.error.main\n }\n },\n '&:before': {\n borderBottom: `1px solid ${bottomLineColor}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n\n [`&:hover:not(.${inputClasses.disabled}, .${inputClasses.error}):before`]: {\n borderBottom: `2px solid ${(theme.vars || theme).palette.text.primary}`,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n borderBottom: `1px solid ${bottomLineColor}`\n }\n },\n [`&.${inputClasses.disabled}:before`]: {\n borderBottomStyle: 'dotted'\n }\n });\n});\nconst InputInput = styled(InputBaseInput, {\n name: 'MuiInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})({});\nconst Input = /*#__PURE__*/React.forwardRef(function Input(inProps, ref) {\n var _ref, _slots$root, _ref2, _slots$input;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInput'\n });\n const {\n disableUnderline,\n components = {},\n componentsProps: componentsPropsProp,\n fullWidth = false,\n inputComponent = 'input',\n multiline = false,\n slotProps,\n slots = {},\n type = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n const ownerState = {\n disableUnderline\n };\n const inputComponentsProps = {\n root: {\n ownerState\n }\n };\n const componentsProps = (slotProps != null ? slotProps : componentsPropsProp) ? deepmerge(slotProps != null ? slotProps : componentsPropsProp, inputComponentsProps) : inputComponentsProps;\n const RootSlot = (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : InputRoot;\n const InputSlot = (_ref2 = (_slots$input = slots.input) != null ? _slots$input : components.Input) != null ? _ref2 : InputInput;\n return /*#__PURE__*/_jsx(InputBase, _extends({\n slots: {\n root: RootSlot,\n input: InputSlot\n },\n slotProps: componentsProps,\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Input.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the `input` will not have an underline.\n */\n disableUnderline: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nInput.muiName = 'Input';\nexport default Input;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"maxRows\", \"minRows\", \"style\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport { unstable_debounce as debounce, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_ownerWindow as ownerWindow } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction getStyleValue(value) {\n return parseInt(value, 10) || 0;\n}\nconst styles = {\n shadow: {\n // Visibility needed to hide the extra text area on iPads\n visibility: 'hidden',\n // Remove from the content flow\n position: 'absolute',\n // Ignore the scrollbar width\n overflow: 'hidden',\n height: 0,\n top: 0,\n left: 0,\n // Create a new layer, increase the isolation of the computed values\n transform: 'translateZ(0)'\n }\n};\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflow;\n}\n\n/**\n *\n * Demos:\n *\n * - [Textarea Autosize](https://mui.com/base/react-textarea-autosize/)\n * - [Textarea Autosize](https://mui.com/material-ui/react-textarea-autosize/)\n *\n * API:\n *\n * - [TextareaAutosize API](https://mui.com/base/react-textarea-autosize/components-api/#textarea-autosize)\n */\nconst TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize(props, forwardedRef) {\n const {\n onChange,\n maxRows,\n minRows = 1,\n style,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef(null);\n const handleRef = useForkRef(forwardedRef, inputRef);\n const shadowRef = React.useRef(null);\n const renders = React.useRef(0);\n const [state, setState] = React.useState({\n outerHeightStyle: 0\n });\n const getUpdatedState = React.useCallback(() => {\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n const computedStyle = containerWindow.getComputedStyle(input);\n\n // If input's width is shrunk and it's not visible, don't sync height.\n if (computedStyle.width === '0px') {\n return {\n outerHeightStyle: 0\n };\n }\n const inputShallow = shadowRef.current;\n inputShallow.style.width = computedStyle.width;\n inputShallow.value = input.value || props.placeholder || 'x';\n if (inputShallow.value.slice(-1) === '\\n') {\n // Certain fonts which overflow the line height will cause the textarea\n // to report a different scrollHeight depending on whether the last line\n // is empty. Make it non-empty to avoid this issue.\n inputShallow.value += ' ';\n }\n const boxSizing = computedStyle.boxSizing;\n const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);\n const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);\n\n // The height of the inner content\n const innerHeight = inputShallow.scrollHeight;\n\n // Measure height of a textarea with a single row\n inputShallow.value = 'x';\n const singleRowHeight = inputShallow.scrollHeight;\n\n // The height of the outer content\n let outerHeight = innerHeight;\n if (minRows) {\n outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);\n }\n if (maxRows) {\n outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);\n }\n outerHeight = Math.max(outerHeight, singleRowHeight);\n\n // Take the box sizing into account for applying this value as a style.\n const outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);\n const overflow = Math.abs(outerHeight - innerHeight) <= 1;\n return {\n outerHeightStyle,\n overflow\n };\n }, [maxRows, minRows, props.placeholder]);\n const updateState = (prevState, newState) => {\n const {\n outerHeightStyle,\n overflow\n } = newState;\n // Need a large enough difference to update the height.\n // This prevents infinite rendering loop.\n if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {\n renders.current += 1;\n return {\n overflow,\n outerHeightStyle\n };\n }\n if (process.env.NODE_ENV !== 'production') {\n if (renders.current === 20) {\n console.error(['MUI: Too many re-renders. The layout is unstable.', 'TextareaAutosize limits the number of renders to prevent an infinite loop.'].join('\\n'));\n }\n }\n return prevState;\n };\n const syncHeight = React.useCallback(() => {\n const newState = getUpdatedState();\n if (isEmpty(newState)) {\n return;\n }\n setState(prevState => {\n return updateState(prevState, newState);\n });\n }, [getUpdatedState]);\n const syncHeightWithFlushSync = () => {\n const newState = getUpdatedState();\n if (isEmpty(newState)) {\n return;\n }\n\n // In React 18, state updates in a ResizeObserver's callback are happening after the paint which causes flickering\n // when doing some visual updates in it. Using flushSync ensures that the dom will be painted after the states updates happen\n // Related issue - https://github.com/facebook/react/issues/24331\n ReactDOM.flushSync(() => {\n setState(prevState => {\n return updateState(prevState, newState);\n });\n });\n };\n React.useEffect(() => {\n const handleResize = debounce(() => {\n renders.current = 0;\n\n // If the TextareaAutosize component is replaced by Suspense with a fallback, the last\n // ResizeObserver's handler that runs because of the change in the layout is trying to\n // access a dom node that is no longer there (as the fallback component is being shown instead).\n // See https://github.com/mui/material-ui/issues/32640\n if (inputRef.current) {\n syncHeightWithFlushSync();\n }\n });\n let resizeObserver;\n const input = inputRef.current;\n const containerWindow = ownerWindow(input);\n containerWindow.addEventListener('resize', handleResize);\n if (typeof ResizeObserver !== 'undefined') {\n resizeObserver = new ResizeObserver(handleResize);\n resizeObserver.observe(input);\n }\n return () => {\n handleResize.clear();\n containerWindow.removeEventListener('resize', handleResize);\n if (resizeObserver) {\n resizeObserver.disconnect();\n }\n };\n });\n useEnhancedEffect(() => {\n syncHeight();\n });\n React.useEffect(() => {\n renders.current = 0;\n }, [value]);\n const handleChange = event => {\n renders.current = 0;\n if (!isControlled) {\n syncHeight();\n }\n if (onChange) {\n onChange(event);\n }\n };\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"textarea\", _extends({\n value: value,\n onChange: handleChange,\n ref: handleRef\n // Apply the rows prop to get a \"correct\" first SSR paint\n ,\n rows: minRows,\n style: _extends({\n height: state.outerHeightStyle,\n // Need a large enough difference to allow scrolling.\n // This prevents infinite rendering loop.\n overflow: state.overflow ? 'hidden' : undefined\n }, style)\n }, other)), /*#__PURE__*/_jsx(\"textarea\", {\n \"aria-hidden\": true,\n className: props.className,\n readOnly: true,\n ref: shadowRef,\n tabIndex: -1,\n style: _extends({}, styles.shadow, style, {\n padding: 0\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TextareaAutosize.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * Maximum number of rows to display.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display.\n * @default 1\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n placeholder: PropTypes.string,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * @ignore\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.number, PropTypes.string])\n} : void 0;\nexport default TextareaAutosize;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as MuiGlobalStyles } from '@mui/styled-engine';\nimport useTheme from '../useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles({\n styles,\n themeId,\n defaultTheme = {}\n}) {\n const upperTheme = useTheme(defaultTheme);\n const globalStyles = typeof styles === 'function' ? styles(themeId ? upperTheme[themeId] || upperTheme : upperTheme) : styles;\n return /*#__PURE__*/_jsx(MuiGlobalStyles, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n defaultTheme: PropTypes.object,\n /**\n * @ignore\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool]),\n /**\n * @ignore\n */\n themeId: PropTypes.string\n} : void 0;\nexport default GlobalStyles;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GlobalStyles as SystemGlobalStyles } from '@mui/system';\nimport defaultTheme from '../styles/defaultTheme';\nimport THEME_ID from '../styles/identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction GlobalStyles(props) {\n return /*#__PURE__*/_jsx(SystemGlobalStyles, _extends({}, props, {\n defaultTheme: defaultTheme,\n themeId: THEME_ID\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The styles you want to apply globally.\n */\n styles: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.array, PropTypes.func, PropTypes.number, PropTypes.object, PropTypes.string, PropTypes.bool])\n} : void 0;\nexport default GlobalStyles;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"aria-describedby\", \"autoComplete\", \"autoFocus\", \"className\", \"color\", \"components\", \"componentsProps\", \"defaultValue\", \"disabled\", \"disableInjectingGlobalStyles\", \"endAdornment\", \"error\", \"fullWidth\", \"id\", \"inputComponent\", \"inputProps\", \"inputRef\", \"margin\", \"maxRows\", \"minRows\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"placeholder\", \"readOnly\", \"renderSuffix\", \"rows\", \"size\", \"slotProps\", \"slots\", \"startAdornment\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType, elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, isHostComponent, TextareaAutosize } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport GlobalStyles from '../GlobalStyles';\nimport { isFilled } from './utils';\nimport inputBaseClasses, { getInputBaseUtilityClass } from './inputBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const rootOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.formControl && styles.formControl, ownerState.startAdornment && styles.adornedStart, ownerState.endAdornment && styles.adornedEnd, ownerState.error && styles.error, ownerState.size === 'small' && styles.sizeSmall, ownerState.multiline && styles.multiline, ownerState.color && styles[`color${capitalize(ownerState.color)}`], ownerState.fullWidth && styles.fullWidth, ownerState.hiddenLabel && styles.hiddenLabel];\n};\nexport const inputOverridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.input, ownerState.size === 'small' && styles.inputSizeSmall, ownerState.multiline && styles.inputMultiline, ownerState.type === 'search' && styles.inputTypeSearch, ownerState.startAdornment && styles.inputAdornedStart, ownerState.endAdornment && styles.inputAdornedEnd, ownerState.hiddenLabel && styles.inputHiddenLabel];\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disabled,\n error,\n endAdornment,\n focused,\n formControl,\n fullWidth,\n hiddenLabel,\n multiline,\n readOnly,\n size,\n startAdornment,\n type\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size === 'small' && 'sizeSmall', multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel', readOnly && 'readOnly'],\n input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd', readOnly && 'readOnly']\n };\n return composeClasses(slots, getInputBaseUtilityClass, classes);\n};\nexport const InputBaseRoot = styled('div', {\n name: 'MuiInputBase',\n slot: 'Root',\n overridesResolver: rootOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, theme.typography.body1, {\n color: (theme.vars || theme).palette.text.primary,\n lineHeight: '1.4375em',\n // 23px\n boxSizing: 'border-box',\n // Prevent padding issue with fullWidth.\n position: 'relative',\n cursor: 'text',\n display: 'inline-flex',\n alignItems: 'center',\n [`&.${inputBaseClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled,\n cursor: 'default'\n }\n}, ownerState.multiline && _extends({\n padding: '4px 0 5px'\n}, ownerState.size === 'small' && {\n paddingTop: 1\n}), ownerState.fullWidth && {\n width: '100%'\n}));\nexport const InputBaseComponent = styled('input', {\n name: 'MuiInputBase',\n slot: 'Input',\n overridesResolver: inputOverridesResolver\n})(({\n theme,\n ownerState\n}) => {\n const light = theme.palette.mode === 'light';\n const placeholder = _extends({\n color: 'currentColor'\n }, theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n }, {\n transition: theme.transitions.create('opacity', {\n duration: theme.transitions.duration.shorter\n })\n });\n const placeholderHidden = {\n opacity: '0 !important'\n };\n const placeholderVisible = theme.vars ? {\n opacity: theme.vars.opacity.inputPlaceholder\n } : {\n opacity: light ? 0.42 : 0.5\n };\n return _extends({\n font: 'inherit',\n letterSpacing: 'inherit',\n color: 'currentColor',\n padding: '4px 0 5px',\n border: 0,\n boxSizing: 'content-box',\n background: 'none',\n height: '1.4375em',\n // Reset 23pxthe native input line-height\n margin: 0,\n // Reset for Safari\n WebkitTapHighlightColor: 'transparent',\n display: 'block',\n // Make the flex item shrink with Firefox\n minWidth: 0,\n width: '100%',\n // Fix IE11 width issue\n animationName: 'mui-auto-fill-cancel',\n animationDuration: '10ms',\n '&::-webkit-input-placeholder': placeholder,\n '&::-moz-placeholder': placeholder,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholder,\n // IE11\n '&::-ms-input-placeholder': placeholder,\n // Edge\n '&:focus': {\n outline: 0\n },\n // Reset Firefox invalid required input style\n '&:invalid': {\n boxShadow: 'none'\n },\n '&::-webkit-search-decoration': {\n // Remove the padding when type=search.\n WebkitAppearance: 'none'\n },\n // Show and hide the placeholder logic\n [`label[data-shrink=false] + .${inputBaseClasses.formControl} &`]: {\n '&::-webkit-input-placeholder': placeholderHidden,\n '&::-moz-placeholder': placeholderHidden,\n // Firefox 19+\n '&:-ms-input-placeholder': placeholderHidden,\n // IE11\n '&::-ms-input-placeholder': placeholderHidden,\n // Edge\n '&:focus::-webkit-input-placeholder': placeholderVisible,\n '&:focus::-moz-placeholder': placeholderVisible,\n // Firefox 19+\n '&:focus:-ms-input-placeholder': placeholderVisible,\n // IE11\n '&:focus::-ms-input-placeholder': placeholderVisible // Edge\n },\n\n [`&.${inputBaseClasses.disabled}`]: {\n opacity: 1,\n // Reset iOS opacity\n WebkitTextFillColor: (theme.vars || theme).palette.text.disabled // Fix opacity Safari bug\n },\n\n '&:-webkit-autofill': {\n animationDuration: '5000s',\n animationName: 'mui-auto-fill'\n }\n }, ownerState.size === 'small' && {\n paddingTop: 1\n }, ownerState.multiline && {\n height: 'auto',\n resize: 'none',\n padding: 0,\n paddingTop: 0\n }, ownerState.type === 'search' && {\n // Improve type search style.\n MozAppearance: 'textfield'\n });\n});\nconst inputGlobalStyles = /*#__PURE__*/_jsx(GlobalStyles, {\n styles: {\n '@keyframes mui-auto-fill': {\n from: {\n display: 'block'\n }\n },\n '@keyframes mui-auto-fill-cancel': {\n from: {\n display: 'block'\n }\n }\n }\n});\n\n/**\n * `InputBase` contains as few styles as possible.\n * It aims to be a simple building block for creating an input.\n * It contains a load of style reset and some state logic.\n */\nconst InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref) {\n var _slotProps$input;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputBase'\n });\n const {\n 'aria-describedby': ariaDescribedby,\n autoComplete,\n autoFocus,\n className,\n components = {},\n componentsProps = {},\n defaultValue,\n disabled,\n disableInjectingGlobalStyles,\n endAdornment,\n fullWidth = false,\n id,\n inputComponent = 'input',\n inputProps: inputPropsProp = {},\n inputRef: inputRefProp,\n maxRows,\n minRows,\n multiline = false,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyUp,\n placeholder,\n readOnly,\n renderSuffix,\n rows,\n slotProps = {},\n slots = {},\n startAdornment,\n type = 'text',\n value: valueProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;\n const {\n current: isControlled\n } = React.useRef(value != null);\n const inputRef = React.useRef();\n const handleInputRefWarning = React.useCallback(instance => {\n if (process.env.NODE_ENV !== 'production') {\n if (instance && instance.nodeName !== 'INPUT' && !instance.focus) {\n console.error(['MUI: You have provided a `inputComponent` to the input component', 'that does not correctly handle the `ref` prop.', 'Make sure the `ref` prop is called with a HTMLInputElement.'].join('\\n'));\n }\n }\n }, []);\n const handleInputRef = useForkRef(inputRef, inputRefProp, inputPropsProp.ref, handleInputRefWarning);\n const [focused, setFocused] = React.useState(false);\n const muiFormControl = useFormControl();\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (muiFormControl) {\n return muiFormControl.registerEffect();\n }\n return undefined;\n }, [muiFormControl]);\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'disabled', 'error', 'hiddenLabel', 'size', 'required', 'filled']\n });\n fcs.focused = muiFormControl ? muiFormControl.focused : focused;\n\n // The blur won't fire when the disabled state is set on a focused input.\n // We need to book keep the focused state manually.\n React.useEffect(() => {\n if (!muiFormControl && disabled && focused) {\n setFocused(false);\n if (onBlur) {\n onBlur();\n }\n }\n }, [muiFormControl, disabled, focused, onBlur]);\n const onFilled = muiFormControl && muiFormControl.onFilled;\n const onEmpty = muiFormControl && muiFormControl.onEmpty;\n const checkDirty = React.useCallback(obj => {\n if (isFilled(obj)) {\n if (onFilled) {\n onFilled();\n }\n } else if (onEmpty) {\n onEmpty();\n }\n }, [onFilled, onEmpty]);\n useEnhancedEffect(() => {\n if (isControlled) {\n checkDirty({\n value\n });\n }\n }, [value, checkDirty, isControlled]);\n const handleFocus = event => {\n // Fix a bug with IE11 where the focus/blur events are triggered\n // while the component is disabled.\n if (fcs.disabled) {\n event.stopPropagation();\n return;\n }\n if (onFocus) {\n onFocus(event);\n }\n if (inputPropsProp.onFocus) {\n inputPropsProp.onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n } else {\n setFocused(true);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (inputPropsProp.onBlur) {\n inputPropsProp.onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n } else {\n setFocused(false);\n }\n };\n const handleChange = (event, ...args) => {\n if (!isControlled) {\n const element = event.target || inputRef.current;\n if (element == null) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Expected valid input target. Did you use a custom \\`inputComponent\\` and forget to forward refs? See https://mui.com/r/input-component-ref-interface for more info.` : _formatMuiErrorMessage(1));\n }\n checkDirty({\n value: element.value\n });\n }\n if (inputPropsProp.onChange) {\n inputPropsProp.onChange(event, ...args);\n }\n\n // Perform in the willUpdate\n if (onChange) {\n onChange(event, ...args);\n }\n };\n\n // Check the input state on mount, in case it was filled by the user\n // or auto filled by the browser before the hydration (for SSR).\n React.useEffect(() => {\n checkDirty(inputRef.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const handleClick = event => {\n if (inputRef.current && event.currentTarget === event.target) {\n inputRef.current.focus();\n }\n if (onClick && !fcs.disabled) {\n onClick(event);\n }\n };\n let InputComponent = inputComponent;\n let inputProps = inputPropsProp;\n if (multiline && InputComponent === 'input') {\n if (rows) {\n if (process.env.NODE_ENV !== 'production') {\n if (minRows || maxRows) {\n console.warn('MUI: You can not use the `minRows` or `maxRows` props when the input `rows` prop is set.');\n }\n }\n inputProps = _extends({\n type: undefined,\n minRows: rows,\n maxRows: rows\n }, inputProps);\n } else {\n inputProps = _extends({\n type: undefined,\n maxRows,\n minRows\n }, inputProps);\n }\n InputComponent = TextareaAutosize;\n }\n const handleAutoFill = event => {\n // Provide a fake value as Chrome might not let you access it for security reasons.\n checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {\n value: 'x'\n });\n };\n React.useEffect(() => {\n if (muiFormControl) {\n muiFormControl.setAdornedStart(Boolean(startAdornment));\n }\n }, [muiFormControl, startAdornment]);\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n disabled: fcs.disabled,\n endAdornment,\n error: fcs.error,\n focused: fcs.focused,\n formControl: muiFormControl,\n fullWidth,\n hiddenLabel: fcs.hiddenLabel,\n multiline,\n size: fcs.size,\n startAdornment,\n type\n });\n const classes = useUtilityClasses(ownerState);\n const Root = slots.root || components.Root || InputBaseRoot;\n const rootProps = slotProps.root || componentsProps.root || {};\n const Input = slots.input || components.Input || InputBaseComponent;\n inputProps = _extends({}, inputProps, (_slotProps$input = slotProps.input) != null ? _slotProps$input : componentsProps.input);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [!disableInjectingGlobalStyles && inputGlobalStyles, /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, !isHostComponent(Root) && {\n ownerState: _extends({}, ownerState, rootProps.ownerState)\n }, {\n ref: ref,\n onClick: handleClick\n }, other, {\n className: clsx(classes.root, rootProps.className, className, readOnly && 'MuiInputBase-readOnly'),\n children: [startAdornment, /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(Input, _extends({\n ownerState: ownerState,\n \"aria-invalid\": fcs.error,\n \"aria-describedby\": ariaDescribedby,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n disabled: fcs.disabled,\n id: id,\n onAnimationStart: handleAutoFill,\n name: name,\n placeholder: placeholder,\n readOnly: readOnly,\n required: fcs.required,\n rows: rows,\n value: value,\n onKeyDown: onKeyDown,\n onKeyUp: onKeyUp,\n type: type\n }, inputProps, !isHostComponent(Input) && {\n as: InputComponent,\n ownerState: _extends({}, ownerState, inputProps.ownerState)\n }, {\n ref: handleInputRef,\n className: clsx(classes.input, inputProps.className, readOnly && 'MuiInputBase-readOnly'),\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus\n }))\n }), endAdornment, renderSuffix ? renderSuffix(_extends({}, fcs, {\n startAdornment\n })) : null]\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputBase.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n 'aria-describedby': PropTypes.string,\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, GlobalStyles for the auto-fill keyframes will not be injected/removed on mount/unmount. Make sure to inject them at the top of your application.\n * This option is intended to help with boosting the initial rendering performance if you are loading a big amount of Input components at once.\n * @default false\n */\n disableInjectingGlobalStyles: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: elementTypeAcceptingRef,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the `input` is blurred.\n *\n * Notice that the first argument (event) might be undefined.\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * Callback fired when the `input` doesn't satisfy its constraints.\n */\n onInvalid: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * @ignore\n */\n onKeyUp: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * @ignore\n */\n renderSuffix: PropTypes.func,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The size of the component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nexport default InputBase;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getInputBaseUtilityClass(slot) {\n return generateUtilityClass('MuiInputBase', slot);\n}\nconst inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'readOnly', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);\nexport default inputBaseClasses;","// Supports determination of isControlled().\n// Controlled input accepts its current value as a prop.\n//\n// @see https://facebook.github.io/react/docs/forms.html#controlled-components\n// @param value\n// @returns {boolean} true if string (including '') or number (including zero)\nexport function hasValue(value) {\n return value != null && !(Array.isArray(value) && value.length === 0);\n}\n\n// Determine if field is empty or filled.\n// Response determines if label is presented above field or as placeholder.\n//\n// @param obj\n// @param SSR\n// @returns {boolean} False when not present or empty string.\n// True when any number or string with length.\nexport function isFilled(obj, SSR = false) {\n return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');\n}\n\n// Determine if an Input is adorned on start.\n// It's corresponding to the left with LTR.\n//\n// @param obj\n// @returns {boolean} False when no adornments.\n// True when adorned at the start.\nexport function isAdornedStart(obj) {\n return obj.startAdornment;\n}","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSvgIconUtilityClass(slot) {\n return generateUtilityClass('MuiSvgIcon', slot);\n}\nconst svgIconClasses = generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);\nexport default svgIconClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"fontSize\", \"htmlColor\", \"inheritViewBox\", \"titleAccess\", \"viewBox\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getSvgIconUtilityClass } from './svgIconClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n color,\n fontSize,\n classes\n } = ownerState;\n const slots = {\n root: ['root', color !== 'inherit' && `color${capitalize(color)}`, `fontSize${capitalize(fontSize)}`]\n };\n return composeClasses(slots, getSvgIconUtilityClass, classes);\n};\nconst SvgIconRoot = styled('svg', {\n name: 'MuiSvgIcon',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'inherit' && styles[`color${capitalize(ownerState.color)}`], styles[`fontSize${capitalize(ownerState.fontSize)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$transitions, _theme$transitions$cr, _theme$transitions2, _theme$transitions2$d, _theme$typography, _theme$typography$pxT, _theme$typography2, _theme$typography2$px, _theme$typography3, _theme$typography3$px, _palette$ownerState$c, _palette, _palette$ownerState$c2, _palette2, _palette2$action, _palette3, _palette3$action;\n return {\n userSelect: 'none',\n width: '1em',\n height: '1em',\n display: 'inline-block',\n fill: 'currentColor',\n flexShrink: 0,\n transition: (_theme$transitions = theme.transitions) == null ? void 0 : (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {\n duration: (_theme$transitions2 = theme.transitions) == null ? void 0 : (_theme$transitions2$d = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2$d.shorter\n }),\n fontSize: {\n inherit: 'inherit',\n small: ((_theme$typography = theme.typography) == null ? void 0 : (_theme$typography$pxT = _theme$typography.pxToRem) == null ? void 0 : _theme$typography$pxT.call(_theme$typography, 20)) || '1.25rem',\n medium: ((_theme$typography2 = theme.typography) == null ? void 0 : (_theme$typography2$px = _theme$typography2.pxToRem) == null ? void 0 : _theme$typography2$px.call(_theme$typography2, 24)) || '1.5rem',\n large: ((_theme$typography3 = theme.typography) == null ? void 0 : (_theme$typography3$px = _theme$typography3.pxToRem) == null ? void 0 : _theme$typography3$px.call(_theme$typography3, 35)) || '2.1875rem'\n }[ownerState.fontSize],\n // TODO v5 deprecate, v6 remove for sx\n color: (_palette$ownerState$c = (_palette = (theme.vars || theme).palette) == null ? void 0 : (_palette$ownerState$c2 = _palette[ownerState.color]) == null ? void 0 : _palette$ownerState$c2.main) != null ? _palette$ownerState$c : {\n action: (_palette2 = (theme.vars || theme).palette) == null ? void 0 : (_palette2$action = _palette2.action) == null ? void 0 : _palette2$action.active,\n disabled: (_palette3 = (theme.vars || theme).palette) == null ? void 0 : (_palette3$action = _palette3.action) == null ? void 0 : _palette3$action.disabled,\n inherit: undefined\n }[ownerState.color]\n };\n});\nconst SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiSvgIcon'\n });\n const {\n children,\n className,\n color = 'inherit',\n component = 'svg',\n fontSize = 'medium',\n htmlColor,\n inheritViewBox = false,\n titleAccess,\n viewBox = '0 0 24 24'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n fontSize,\n instanceFontSize: inProps.fontSize,\n inheritViewBox,\n viewBox\n });\n const more = {};\n if (!inheritViewBox) {\n more.viewBox = viewBox;\n }\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SvgIconRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n focusable: \"false\",\n color: htmlColor,\n \"aria-hidden\": titleAccess ? undefined : true,\n role: titleAccess ? 'img' : undefined,\n ref: ref\n }, more, other, {\n ownerState: ownerState,\n children: [children, titleAccess ? /*#__PURE__*/_jsx(\"title\", {\n children: titleAccess\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SvgIcon.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Node passed into the SVG element.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * You can use the `htmlColor` prop to apply a color attribute to the SVG element.\n * @default 'inherit'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'action', 'disabled', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The fontSize applied to the icon. Defaults to 24px, but can be configure to inherit font size.\n * @default 'medium'\n */\n fontSize: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['inherit', 'large', 'medium', 'small']), PropTypes.string]),\n /**\n * Applies a color attribute to the SVG element.\n */\n htmlColor: PropTypes.string,\n /**\n * If `true`, the root node will inherit the custom `component`'s viewBox and the `viewBox`\n * prop will be ignored.\n * Useful when you want to reference a custom `component` and have `SvgIcon` pass that\n * `component`'s viewBox to the root node.\n * @default false\n */\n inheritViewBox: PropTypes.bool,\n /**\n * The shape-rendering attribute. The behavior of the different options is described on the\n * [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering).\n * If you are having issues with blurry icons you should investigate this prop.\n */\n shapeRendering: PropTypes.string,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Provides a human-readable title for the element that contains it.\n * https://www.w3.org/TR/SVG-access/#Equivalent\n */\n titleAccess: PropTypes.string,\n /**\n * Allows you to redefine what the coordinates without units mean inside an SVG element.\n * For example, if the SVG element is 500 (width) by 200 (height),\n * and you pass viewBox=\"0 0 50 20\",\n * this means that the coordinates inside the SVG will go from the top left corner (0,0)\n * to bottom right (50,20) and each unit will be worth 10px.\n * @default '0 0 24 24'\n */\n viewBox: PropTypes.string\n} : void 0;\nSvgIcon.muiName = 'SvgIcon';\nexport default SvgIcon;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import { unstable_debounce as debounce } from '@mui/utils';\nexport default debounce;","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","import { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from './ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId' + ''];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}"],"names":["isHostComponent","element","FormControlContext","React","undefined","formControlState","props","states","muiFormControl","reduce","acc","state","useFormControl","getInputUtilityClass","slot","generateUtilityClass","_extends","inputBaseClasses","generateUtilityClasses","_excluded","InputRoot","styled","InputBaseRoot","shouldForwardProp","prop","rootShouldForwardProp","name","overridesResolver","styles","ownerState","inputBaseRootOverridesResolver","disableUnderline","underline","theme","bottomLineColor","palette","mode","vars","common","onBackgroundChannel","opacity","inputUnderline","position","formControl","marginTop","borderBottom","color","main","left","bottom","content","right","transform","transition","transitions","create","duration","shorter","easing","easeOut","pointerEvents","inputClasses","borderBottomColor","error","text","primary","borderBottomStyle","InputInput","InputBaseInput","inputBaseInputOverridesResolver","Input","inProps","ref","_ref","_slots$root","_ref2","_slots$input","useThemeProps","components","componentsPropsProp","componentsProps","fullWidth","inputComponent","multiline","slotProps","slots","type","other","_objectWithoutPropertiesLoose","classes","root","input","composedClasses","composeClasses","useUtilityClasses","inputComponentsProps","deepmerge","RootSlot","Root","InputSlot","_jsx","InputBase","muiName","getStyleValue","value","parseInt","visibility","overflow","height","top","isEmpty","obj","Object","keys","length","outerHeightStyle","forwardedRef","onChange","maxRows","minRows","style","isControlled","current","inputRef","handleRef","useForkRef","shadowRef","renders","setState","getUpdatedState","computedStyle","ownerWindow","getComputedStyle","width","inputShallow","placeholder","slice","boxSizing","padding","paddingBottom","paddingTop","border","borderBottomWidth","borderTopWidth","innerHeight","scrollHeight","singleRowHeight","outerHeight","Math","max","Number","min","abs","updateState","prevState","newState","syncHeight","resizeObserver","handleResize","debounce","ReactDOM","syncHeightWithFlushSync","containerWindow","addEventListener","ResizeObserver","observe","clear","removeEventListener","disconnect","useEnhancedEffect","_jsxs","children","event","rows","className","readOnly","tabIndex","GlobalStyles","defaultTheme","globalStyles","themeInput","Global","themeId","upperTheme","useTheme","MuiGlobalStyles","SystemGlobalStyles","THEME_ID","rootOverridesResolver","startAdornment","adornedStart","endAdornment","adornedEnd","size","sizeSmall","capitalize","hiddenLabel","inputOverridesResolver","inputSizeSmall","inputMultiline","inputTypeSearch","inputAdornedStart","inputAdornedEnd","inputHiddenLabel","typography","body1","lineHeight","cursor","display","alignItems","disabled","InputBaseComponent","light","inputPlaceholder","placeholderHidden","placeholderVisible","font","letterSpacing","background","margin","WebkitTapHighlightColor","minWidth","animationName","animationDuration","outline","boxShadow","WebkitAppearance","WebkitTextFillColor","resize","MozAppearance","inputGlobalStyles","from","_slotProps$input","ariaDescribedby","autoComplete","autoFocus","defaultValue","disableInjectingGlobalStyles","id","inputProps","inputPropsProp","inputRefProp","onBlur","onClick","onFocus","onKeyDown","onKeyUp","renderSuffix","valueProp","handleInputRefWarning","instance","process","handleInputRef","focused","setFocused","fcs","onFilled","onEmpty","checkDirty","isFilled","InputComponent","TextareaAutosize","setAdornedStart","Boolean","getInputBaseUtilityClass","rootProps","currentTarget","target","focus","clsx","onAnimationStart","required","as","Error","_formatMuiErrorMessage","args","stopPropagation","hasValue","Array","isArray","SSR","isAdornedStart","getSvgIconUtilityClass","SvgIconRoot","fontSize","_theme$transitions","_theme$transitions$cr","_theme$transitions2","_theme$transitions2$d","_theme$typography","_theme$typography$pxT","_theme$typography2","_theme$typography2$px","_theme$typography3","_theme$typography3$px","_palette$ownerState$c","_palette","_palette$ownerState$c2","_palette2","_palette2$action","_palette3","_palette3$action","userSelect","fill","flexShrink","call","inherit","small","pxToRem","medium","large","action","active","SvgIcon","component","htmlColor","inheritViewBox","titleAccess","viewBox","instanceFontSize","more","focusable","role","createSvgIcon","path","displayName","Component","muiNames","indexOf","ownerDocument","controlled","defaultProp","default","valueState","setValue","newValue","createChainedFunction","funcs","func","apply","this","timeout","wait","debounced","later","clearTimeout","setTimeout","node","document","defaultView","window","globalId","maybeReactUseId","useId","idOverride","reactId","defaultId","setDefaultId","useGlobalId"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/908.32590a6e.chunk.js b/static/js/908.32590a6e.chunk.js new file mode 100644 index 0000000..79bbe79 --- /dev/null +++ b/static/js/908.32590a6e.chunk.js @@ -0,0 +1,3 @@ +/*! For license information please see 908.32590a6e.chunk.js.LICENSE.txt */ +"use strict";(self.webpackChunkreact_homework_template=self.webpackChunkreact_homework_template||[]).push([[908],{6747:function(e,t,n){n.d(t,{Z:function(){return E}});var r=n(7462),o=n(3366),i=n(2791),a=n(8182),l=n(3842),s=n(104),u=n(3433),d=n(2466),c=n(7416),p=["sx"];function f(e){var t,n=e.sx,i=function(e){var t,n,r={systemProps:{},otherProps:{}},o=null!=(t=null==e||null==(n=e.theme)?void 0:n.unstable_sxConfig)?t:c.Z;return Object.keys(e).forEach((function(t){o[t]?r.systemProps[t]=e[t]:r.otherProps[t]=e[t]})),r}((0,o.Z)(e,p)),a=i.systemProps,l=i.otherProps;return t=Array.isArray(n)?[a].concat((0,u.Z)(n)):"function"===typeof n?function(){var e=n.apply(void 0,arguments);return(0,d.P)(e)?(0,r.Z)({},a,e):a}:(0,r.Z)({},a,n),(0,r.Z)({},l,{sx:t})}var v=n(418),m=n(184),h=["className","component"];var b=n(5902),g=n(7107),Z=n(988),x=(0,g.Z)(),y=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.themeId,n=e.defaultTheme,u=e.defaultClassName,d=void 0===u?"MuiBox-root":u,c=e.generateClassName,p=(0,l.ZP)("div",{shouldForwardProp:function(e){return"theme"!==e&&"sx"!==e&&"as"!==e}})(s.Z),b=i.forwardRef((function(e,i){var l=(0,v.Z)(n),s=f(e),u=s.className,b=s.component,g=void 0===b?"div":b,Z=(0,o.Z)(s,h);return(0,m.jsx)(p,(0,r.Z)({as:g,ref:i,className:(0,a.Z)(u,c?c(d):d),theme:t&&l[t]||l},Z))}));return b}({themeId:Z.Z,defaultTheme:x,defaultClassName:"MuiBox-root",generateClassName:b.Z.generate}),E=y},1614:function(e,t,n){n.d(t,{Z:function(){return w}});var r=n(4942),o=n(3366),i=n(7462),a=n(2791),l=n(8182),s=n(7312),u=n(1217),d=n(4419),c=n(7078),p=(0,n(4046).ZP)(),f=n(5080),v=n(184),m=["className","component","disableGutters","fixed","maxWidth","classes"],h=(0,f.Z)(),b=p("div",{name:"MuiContainer",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["maxWidth".concat((0,s.Z)(String(n.maxWidth)))],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),g=function(e){return(0,c.Z)({props:e,name:"MuiContainer",defaultTheme:h})},Z=function(e,t){var n=e.classes,r=e.fixed,o=e.disableGutters,i=e.maxWidth,a={root:["root",i&&"maxWidth".concat((0,s.Z)(String(i))),r&&"fixed",o&&"disableGutters"]};return(0,d.Z)(a,(function(e){return(0,u.Z)(t,e)}),n)};var x=n(4036),y=n(6934),E=n(1402),S=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.createStyledComponent,n=void 0===t?b:t,s=e.useThemeProps,u=void 0===s?g:s,d=e.componentName,c=void 0===d?"MuiContainer":d,p=n((function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!n.disableGutters&&(0,r.Z)({paddingLeft:t.spacing(2),paddingRight:t.spacing(2)},t.breakpoints.up("sm"),{paddingLeft:t.spacing(3),paddingRight:t.spacing(3)}))}),(function(e){var t=e.theme;return e.ownerState.fixed&&Object.keys(t.breakpoints.values).reduce((function(e,n){var r=n,o=t.breakpoints.values[r];return 0!==o&&(e[t.breakpoints.up(r)]={maxWidth:"".concat(o).concat(t.breakpoints.unit)}),e}),{})}),(function(e){var t=e.theme,n=e.ownerState;return(0,i.Z)({},"xs"===n.maxWidth&&(0,r.Z)({},t.breakpoints.up("xs"),{maxWidth:Math.max(t.breakpoints.values.xs,444)}),n.maxWidth&&"xs"!==n.maxWidth&&(0,r.Z)({},t.breakpoints.up(n.maxWidth),{maxWidth:"".concat(t.breakpoints.values[n.maxWidth]).concat(t.breakpoints.unit)}))})),f=a.forwardRef((function(e,t){var n=u(e),r=n.className,a=n.component,s=void 0===a?"div":a,d=n.disableGutters,f=void 0!==d&&d,h=n.fixed,b=void 0!==h&&h,g=n.maxWidth,x=void 0===g?"lg":g,y=(0,o.Z)(n,m),E=(0,i.Z)({},n,{component:s,disableGutters:f,fixed:b,maxWidth:x}),S=Z(E,c);return(0,v.jsx)(p,(0,i.Z)({as:s,ownerState:E,className:(0,l.Z)(S.root,r),ref:t},y))}));return f}({createStyledComponent:(0,y.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["maxWidth".concat((0,x.Z)(String(n.maxWidth)))],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:function(e){return(0,E.Z)({props:e,name:"MuiContainer"})}}),w=S},7338:function(e,t,n){n.d(t,{Z:function(){return _n}});var r=n(7462),o=n(3366),i=n(2791),a=n(8182),l=n(4419),s=n(6248),u=n(6934),d=n(1402),c=n(292),p=n(4942),f=n(3433),v=n(2466),m=n(6098),h=n(5878),b=n(1217),g=n(5891);function Z(e){return(0,b.Z)("MuiFilledInput",e)}var x=(0,r.Z)({},g.Z,(0,h.Z)("MuiFilledInput",["root","underline","input"])),y=n(184),E=["disableUnderline","components","componentsProps","fullWidth","hiddenLabel","inputComponent","multiline","slotProps","slots","type"],S=(0,u.ZP)(m.Ej,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiFilledInput",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[].concat((0,f.Z)((0,m.Gx)(e,t)),[!n.disableUnderline&&t.underline])}})((function(e){var t,n,o,i=e.theme,a=e.ownerState,l="light"===i.palette.mode,s=l?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",u=l?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",d=l?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",c=l?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return(0,r.Z)((t={position:"relative",backgroundColor:i.vars?i.vars.palette.FilledInput.bg:u,borderTopLeftRadius:(i.vars||i).shape.borderRadius,borderTopRightRadius:(i.vars||i).shape.borderRadius,transition:i.transitions.create("background-color",{duration:i.transitions.duration.shorter,easing:i.transitions.easing.easeOut}),"&:hover":{backgroundColor:i.vars?i.vars.palette.FilledInput.hoverBg:d,"@media (hover: none)":{backgroundColor:i.vars?i.vars.palette.FilledInput.bg:u}}},(0,p.Z)(t,"&.".concat(x.focused),{backgroundColor:i.vars?i.vars.palette.FilledInput.bg:u}),(0,p.Z)(t,"&.".concat(x.disabled),{backgroundColor:i.vars?i.vars.palette.FilledInput.disabledBg:c}),t),!a.disableUnderline&&(n={"&:after":{borderBottom:"2px solid ".concat(null==(o=(i.vars||i).palette[a.color||"primary"])?void 0:o.main),left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:i.transitions.create("transform",{duration:i.transitions.duration.shorter,easing:i.transitions.easing.easeOut}),pointerEvents:"none"}},(0,p.Z)(n,"&.".concat(x.focused,":after"),{transform:"scaleX(1) translateX(0)"}),(0,p.Z)(n,"&.".concat(x.error),{"&:before, &:after":{borderBottomColor:(i.vars||i).palette.error.main}}),(0,p.Z)(n,"&:before",{borderBottom:"1px solid ".concat(i.vars?"rgba(".concat(i.vars.palette.common.onBackgroundChannel," / ").concat(i.vars.opacity.inputUnderline,")"):s),left:0,bottom:0,content:'"\\00a0"',position:"absolute",right:0,transition:i.transitions.create("border-bottom-color",{duration:i.transitions.duration.shorter}),pointerEvents:"none"}),(0,p.Z)(n,"&:hover:not(.".concat(x.disabled,", .").concat(x.error,"):before"),{borderBottom:"1px solid ".concat((i.vars||i).palette.text.primary)}),(0,p.Z)(n,"&.".concat(x.disabled,":before"),{borderBottomStyle:"dotted"}),n),a.startAdornment&&{paddingLeft:12},a.endAdornment&&{paddingRight:12},a.multiline&&(0,r.Z)({padding:"25px 12px 8px"},"small"===a.size&&{paddingTop:21,paddingBottom:4},a.hiddenLabel&&{paddingTop:16,paddingBottom:17}))})),w=(0,u.ZP)(m.rA,{name:"MuiFilledInput",slot:"Input",overridesResolver:m._o})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12},!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:"light"===t.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===t.palette.mode?null:"#fff",caretColor:"light"===t.palette.mode?null:"#fff",borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},t.vars&&(0,p.Z)({"&:-webkit-autofill":{borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit"}},t.getColorSchemeSelector("dark"),{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}),"small"===n.size&&{paddingTop:21,paddingBottom:4},n.hiddenLabel&&{paddingTop:16,paddingBottom:17},n.multiline&&{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0},n.startAdornment&&{paddingLeft:0},n.endAdornment&&{paddingRight:0},n.hiddenLabel&&"small"===n.size&&{paddingTop:8,paddingBottom:9})})),k=i.forwardRef((function(e,t){var n,i,a,s,u=(0,d.Z)({props:e,name:"MuiFilledInput"}),c=u.components,p=void 0===c?{}:c,f=u.componentsProps,h=u.fullWidth,b=void 0!==h&&h,g=u.inputComponent,x=void 0===g?"input":g,k=u.multiline,P=void 0!==k&&k,R=u.slotProps,C=u.slots,M=void 0===C?{}:C,N=u.type,F=void 0===N?"text":N,T=(0,o.Z)(u,E),O=(0,r.Z)({},u,{fullWidth:b,inputComponent:x,multiline:P,type:F}),I=function(e){var t=e.classes,n={root:["root",!e.disableUnderline&&"underline"],input:["input"]},o=(0,l.Z)(n,Z,t);return(0,r.Z)({},t,o)}(u),L={root:{ownerState:O},input:{ownerState:O}},A=(null!=R?R:f)?(0,v.Z)(null!=R?R:f,L):L,W=null!=(n=null!=(i=M.root)?i:p.Root)?n:S,j=null!=(a=null!=(s=M.input)?s:p.Input)?a:w;return(0,y.jsx)(m.ZP,(0,r.Z)({slots:{root:W,input:j},componentsProps:A,fullWidth:b,inputComponent:x,multiline:P,ref:t,type:F},T,{classes:I}))}));k.muiName="Input";var P,R=k,C=["children","classes","className","label","notched"],M=(0,u.ZP)("fieldset")({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),N=(0,u.ZP)("legend")((function(e){var t=e.ownerState,n=e.theme;return(0,r.Z)({float:"unset",width:"auto",overflow:"hidden"},!t.withLabel&&{padding:0,lineHeight:"11px",transition:n.transitions.create("width",{duration:150,easing:n.transitions.easing.easeOut})},t.withLabel&&(0,r.Z)({display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:n.transitions.create("max-width",{duration:50,easing:n.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}},t.notched&&{maxWidth:"100%",transition:n.transitions.create("max-width",{duration:100,easing:n.transitions.easing.easeOut,delay:50})}))}));var F=n(2930),T=n(6147);function O(e){return(0,b.Z)("MuiOutlinedInput",e)}var I=(0,r.Z)({},g.Z,(0,h.Z)("MuiOutlinedInput",["root","notchedOutline","input"])),L=["components","fullWidth","inputComponent","label","multiline","notched","slots","type"],A=(0,u.ZP)(m.Ej,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiOutlinedInput",slot:"Root",overridesResolver:m.Gx})((function(e){var t,n=e.theme,o=e.ownerState,i="light"===n.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return(0,r.Z)((t={position:"relative",borderRadius:(n.vars||n).shape.borderRadius},(0,p.Z)(t,"&:hover .".concat(I.notchedOutline),{borderColor:(n.vars||n).palette.text.primary}),(0,p.Z)(t,"@media (hover: none)",(0,p.Z)({},"&:hover .".concat(I.notchedOutline),{borderColor:n.vars?"rgba(".concat(n.vars.palette.common.onBackgroundChannel," / 0.23)"):i})),(0,p.Z)(t,"&.".concat(I.focused," .").concat(I.notchedOutline),{borderColor:(n.vars||n).palette[o.color].main,borderWidth:2}),(0,p.Z)(t,"&.".concat(I.error," .").concat(I.notchedOutline),{borderColor:(n.vars||n).palette.error.main}),(0,p.Z)(t,"&.".concat(I.disabled," .").concat(I.notchedOutline),{borderColor:(n.vars||n).palette.action.disabled}),t),o.startAdornment&&{paddingLeft:14},o.endAdornment&&{paddingRight:14},o.multiline&&(0,r.Z)({padding:"16.5px 14px"},"small"===o.size&&{padding:"8.5px 14px"}))})),W=(0,u.ZP)((function(e){var t=e.className,n=e.label,i=e.notched,a=(0,o.Z)(e,C),l=null!=n&&""!==n,s=(0,r.Z)({},e,{notched:i,withLabel:l});return(0,y.jsx)(M,(0,r.Z)({"aria-hidden":!0,className:t,ownerState:s},a,{children:(0,y.jsx)(N,{ownerState:s,children:l?(0,y.jsx)("span",{children:n}):P||(P=(0,y.jsx)("span",{className:"notranslate",children:"\u200b"}))})}))}),{name:"MuiOutlinedInput",slot:"NotchedOutline",overridesResolver:function(e,t){return t.notchedOutline}})((function(e){var t=e.theme,n="light"===t.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:t.vars?"rgba(".concat(t.vars.palette.common.onBackgroundChannel," / 0.23)"):n}})),j=(0,u.ZP)(m.rA,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:m._o})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({padding:"16.5px 14px"},!t.vars&&{"&:-webkit-autofill":{WebkitBoxShadow:"light"===t.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===t.palette.mode?null:"#fff",caretColor:"light"===t.palette.mode?null:"#fff",borderRadius:"inherit"}},t.vars&&(0,p.Z)({"&:-webkit-autofill":{borderRadius:"inherit"}},t.getColorSchemeSelector("dark"),{"&:-webkit-autofill":{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"}}),"small"===n.size&&{padding:"8.5px 14px"},n.multiline&&{padding:0},n.startAdornment&&{paddingLeft:0},n.endAdornment&&{paddingRight:0})})),D=i.forwardRef((function(e,t){var n,a,s,u,c,p=(0,d.Z)({props:e,name:"MuiOutlinedInput"}),f=p.components,v=void 0===f?{}:f,h=p.fullWidth,b=void 0!==h&&h,g=p.inputComponent,Z=void 0===g?"input":g,x=p.label,E=p.multiline,S=void 0!==E&&E,w=p.notched,k=p.slots,P=void 0===k?{}:k,R=p.type,C=void 0===R?"text":R,M=(0,o.Z)(p,L),N=function(e){var t=e.classes,n=(0,l.Z)({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},O,t);return(0,r.Z)({},t,n)}(p),I=(0,F.Z)(),D=(0,T.Z)({props:p,muiFormControl:I,states:["required"]}),z=(0,r.Z)({},p,{color:D.color||"primary",disabled:D.disabled,error:D.error,focused:D.focused,formControl:I,fullWidth:b,hiddenLabel:D.hiddenLabel,multiline:S,size:D.size,type:C}),B=null!=(n=null!=(a=P.root)?a:v.Root)?n:A,q=null!=(s=null!=(u=P.input)?u:v.Input)?s:j;return(0,y.jsx)(m.ZP,(0,r.Z)({slots:{root:B,input:q},renderSuffix:function(e){return(0,y.jsx)(W,{ownerState:z,className:N.notchedOutline,label:null!=x&&""!==x&&D.required?c||(c=(0,y.jsxs)(i.Fragment,{children:[x,"\u2009","*"]})):x,notched:"undefined"!==typeof w?w:Boolean(e.startAdornment||e.filled||e.focused)})},fullWidth:b,inputComponent:Z,multiline:S,ref:t,type:C},M,{classes:(0,r.Z)({},N,{notchedOutline:null})}))}));D.muiName="Input";var z=D,B=n(4036);function q(e){return(0,b.Z)("MuiFormLabel",e)}var H=(0,h.Z)("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),K=["children","className","color","component","disabled","error","filled","focused","required"],U=(0,u.ZP)("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return(0,r.Z)({},t.root,"secondary"===n.color&&t.colorSecondary,n.filled&&t.filled)}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)({color:(n.vars||n).palette.text.secondary},n.typography.body1,(t={lineHeight:"1.4375em",padding:0,position:"relative"},(0,p.Z)(t,"&.".concat(H.focused),{color:(n.vars||n).palette[o.color].main}),(0,p.Z)(t,"&.".concat(H.disabled),{color:(n.vars||n).palette.text.disabled}),(0,p.Z)(t,"&.".concat(H.error),{color:(n.vars||n).palette.error.main}),t))})),V=(0,u.ZP)("span",{name:"MuiFormLabel",slot:"Asterisk",overridesResolver:function(e,t){return t.asterisk}})((function(e){var t=e.theme;return(0,p.Z)({},"&.".concat(H.error),{color:(t.vars||t).palette.error.main})})),G=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiFormLabel"}),i=n.children,s=n.className,u=n.component,c=void 0===u?"label":u,p=(0,o.Z)(n,K),f=(0,F.Z)(),v=(0,T.Z)({props:n,muiFormControl:f,states:["color","required","focused","disabled","error","filled"]}),m=(0,r.Z)({},n,{color:v.color||"primary",component:c,disabled:v.disabled,error:v.error,filled:v.filled,focused:v.focused,required:v.required}),h=function(e){var t=e.classes,n=e.color,r=e.focused,o=e.disabled,i=e.error,a=e.filled,s=e.required,u={root:["root","color".concat((0,B.Z)(n)),o&&"disabled",i&&"error",a&&"filled",r&&"focused",s&&"required"],asterisk:["asterisk",i&&"error"]};return(0,l.Z)(u,q,t)}(m);return(0,y.jsxs)(U,(0,r.Z)({as:c,ownerState:m,className:(0,a.Z)(h.root,s),ref:t},p,{children:[i,v.required&&(0,y.jsxs)(V,{ownerState:m,"aria-hidden":!0,className:h.asterisk,children:["\u2009","*"]})]}))}));function _(e){return(0,b.Z)("MuiInputLabel",e)}(0,h.Z)("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]);var X=["disableAnimation","margin","shrink","variant","className"],Y=(0,u.ZP)(G,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiInputLabel",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[(0,p.Z)({},"& .".concat(H.asterisk),t.asterisk),t.root,n.formControl&&t.formControl,"small"===n.size&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%"},n.formControl&&{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"},"small"===n.size&&{transform:"translate(0, 17px) scale(1)"},n.shrink&&{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"},!n.disableAnimation&&{transition:t.transitions.create(["color","transform","max-width"],{duration:t.transitions.duration.shorter,easing:t.transitions.easing.easeOut})},"filled"===n.variant&&(0,r.Z)({zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(12px, 13px) scale(1)"},n.shrink&&(0,r.Z)({userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"},"small"===n.size&&{transform:"translate(12px, 4px) scale(0.75)"})),"outlined"===n.variant&&(0,r.Z)({zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"},"small"===n.size&&{transform:"translate(14px, 9px) scale(1)"},n.shrink&&{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}))})),$=i.forwardRef((function(e,t){var n=(0,d.Z)({name:"MuiInputLabel",props:e}),i=n.disableAnimation,s=void 0!==i&&i,u=n.shrink,c=n.className,p=(0,o.Z)(n,X),f=(0,F.Z)(),v=u;"undefined"===typeof v&&f&&(v=f.filled||f.focused||f.adornedStart);var m=(0,T.Z)({props:n,muiFormControl:f,states:["size","variant","required"]}),h=(0,r.Z)({},n,{disableAnimation:s,formControl:f,shrink:v,size:m.size,variant:m.variant,required:m.required}),b=function(e){var t=e.classes,n=e.formControl,o=e.size,i=e.shrink,a={root:["root",n&&"formControl",!e.disableAnimation&&"animated",i&&"shrink","small"===o&&"sizeSmall",e.variant],asterisk:[e.required&&"asterisk"]},s=(0,l.Z)(a,_,t);return(0,r.Z)({},t,s)}(h);return(0,y.jsx)(Y,(0,r.Z)({"data-shrink":v,ownerState:h,ref:t,className:(0,a.Z)(b.root,c)},p,{classes:b}))})),J=n(9439),Q=n(5470),ee=n(9103),te=n(3840);function ne(e){return(0,b.Z)("MuiFormControl",e)}(0,h.Z)("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);var re=["children","className","color","component","disabled","error","focused","fullWidth","hiddenLabel","margin","required","size","variant"],oe=(0,u.ZP)("div",{name:"MuiFormControl",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return(0,r.Z)({},t.root,t["margin".concat((0,B.Z)(n.margin))],n.fullWidth&&t.fullWidth)}})((function(e){var t=e.ownerState;return(0,r.Z)({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top"},"normal"===t.margin&&{marginTop:16,marginBottom:8},"dense"===t.margin&&{marginTop:8,marginBottom:4},t.fullWidth&&{width:"100%"})})),ie=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiFormControl"}),s=n.children,u=n.className,c=n.color,p=void 0===c?"primary":c,f=n.component,v=void 0===f?"div":f,m=n.disabled,h=void 0!==m&&m,b=n.error,g=void 0!==b&&b,Z=n.focused,x=n.fullWidth,E=void 0!==x&&x,S=n.hiddenLabel,w=void 0!==S&&S,k=n.margin,P=void 0===k?"none":k,R=n.required,C=void 0!==R&&R,M=n.size,N=void 0===M?"medium":M,F=n.variant,T=void 0===F?"outlined":F,O=(0,o.Z)(n,re),I=(0,r.Z)({},n,{color:p,component:v,disabled:h,error:g,fullWidth:E,hiddenLabel:w,margin:P,required:C,size:N,variant:T}),L=function(e){var t=e.classes,n=e.margin,r=e.fullWidth,o={root:["root","none"!==n&&"margin".concat((0,B.Z)(n)),r&&"fullWidth"]};return(0,l.Z)(o,ne,t)}(I),A=i.useState((function(){var e=!1;return s&&i.Children.forEach(s,(function(t){if((0,ee.Z)(t,["Input","Select"])){var n=(0,ee.Z)(t,["Select"])?t.props.input:t;n&&(0,Q.B7)(n.props)&&(e=!0)}})),e})),W=(0,J.Z)(A,2),j=W[0],D=W[1],z=i.useState((function(){var e=!1;return s&&i.Children.forEach(s,(function(t){(0,ee.Z)(t,["Input","Select"])&&((0,Q.vd)(t.props,!0)||(0,Q.vd)(t.props.inputProps,!0))&&(e=!0)})),e})),q=(0,J.Z)(z,2),H=q[0],K=q[1],U=i.useState(!1),V=(0,J.Z)(U,2),G=V[0],_=V[1];h&&G&&_(!1);var X,Y=void 0===Z||h?G:Z,$=i.useMemo((function(){return{adornedStart:j,setAdornedStart:D,color:p,disabled:h,error:g,filled:H,focused:Y,fullWidth:E,hiddenLabel:w,size:N,onBlur:function(){_(!1)},onEmpty:function(){K(!1)},onFilled:function(){K(!0)},onFocus:function(){_(!0)},registerEffect:X,required:C,variant:T}}),[j,p,h,g,H,Y,E,w,X,C,N,T]);return(0,y.jsx)(te.Z.Provider,{value:$,children:(0,y.jsx)(oe,(0,r.Z)({as:v,ownerState:I,className:(0,a.Z)(L.root,u),ref:t},O,{children:s}))})}));function ae(e){return(0,b.Z)("MuiFormHelperText",e)}var le,se=(0,h.Z)("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),ue=["children","className","component","disabled","error","filled","focused","margin","required","variant"],de=(0,u.ZP)("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.size&&t["size".concat((0,B.Z)(n.size))],n.contained&&t.contained,n.filled&&t.filled]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)({color:(n.vars||n).palette.text.secondary},n.typography.caption,(t={textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0},(0,p.Z)(t,"&.".concat(se.disabled),{color:(n.vars||n).palette.text.disabled}),(0,p.Z)(t,"&.".concat(se.error),{color:(n.vars||n).palette.error.main}),t),"small"===o.size&&{marginTop:4},o.contained&&{marginLeft:14,marginRight:14})})),ce=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiFormHelperText"}),i=n.children,s=n.className,u=n.component,c=void 0===u?"p":u,p=(0,o.Z)(n,ue),f=(0,F.Z)(),v=(0,T.Z)({props:n,muiFormControl:f,states:["variant","size","disabled","error","filled","focused","required"]}),m=(0,r.Z)({},n,{component:c,contained:"filled"===v.variant||"outlined"===v.variant,variant:v.variant,size:v.size,disabled:v.disabled,error:v.error,filled:v.filled,focused:v.focused,required:v.required}),h=function(e){var t=e.classes,n=e.contained,r=e.size,o=e.disabled,i=e.error,a=e.filled,s=e.focused,u=e.required,d={root:["root",o&&"disabled",i&&"error",r&&"size".concat((0,B.Z)(r)),n&&"contained",s&&"focused",a&&"filled",u&&"required"]};return(0,l.Z)(d,ae,t)}(m);return(0,y.jsx)(de,(0,r.Z)({as:c,ownerState:m,className:(0,a.Z)(h.root,s),ref:t},p,{children:" "===i?le||(le=(0,y.jsx)("span",{className:"notranslate",children:"\u200b"})):i}))})),pe=n(6189),fe=(n(8457),n(8301));var ve=i.createContext({});function me(e){return(0,b.Z)("MuiList",e)}(0,h.Z)("MuiList",["root","padding","dense","subheader"]);var he=["children","className","component","dense","disablePadding","subheader"],be=(0,u.ZP)("ul",{name:"MuiList",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})((function(e){var t=e.ownerState;return(0,r.Z)({listStyle:"none",margin:0,padding:0,position:"relative"},!t.disablePadding&&{paddingTop:8,paddingBottom:8},t.subheader&&{paddingTop:0})})),ge=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiList"}),s=n.children,u=n.className,c=n.component,p=void 0===c?"ul":c,f=n.dense,v=void 0!==f&&f,m=n.disablePadding,h=void 0!==m&&m,b=n.subheader,g=(0,o.Z)(n,he),Z=i.useMemo((function(){return{dense:v}}),[v]),x=(0,r.Z)({},n,{component:p,dense:v,disablePadding:h}),E=function(e){var t=e.classes,n={root:["root",!e.disablePadding&&"padding",e.dense&&"dense",e.subheader&&"subheader"]};return(0,l.Z)(n,me,t)}(x);return(0,y.jsx)(ve.Provider,{value:Z,children:(0,y.jsxs)(be,(0,r.Z)({as:p,className:(0,a.Z)(E.root,u),ref:t,ownerState:x},g,{children:[b,s]}))})}));function Ze(e){var t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}var xe=Ze,ye=n(2071),Ee=n(162),Se=["actions","autoFocus","autoFocusItem","children","className","disabledItemsFocusable","disableListWrap","onKeyDown","variant"];function we(e,t,n){return e===t?e.firstChild:t&&t.nextElementSibling?t.nextElementSibling:n?null:e.firstChild}function ke(e,t,n){return e===t?n?e.firstChild:e.lastChild:t&&t.previousElementSibling?t.previousElementSibling:n?null:e.lastChild}function Pe(e,t){if(void 0===t)return!0;var n=e.innerText;return void 0===n&&(n=e.textContent),0!==(n=n.trim().toLowerCase()).length&&(t.repeating?n[0]===t.keys[0]:0===n.indexOf(t.keys.join("")))}function Re(e,t,n,r,o,i){for(var a=!1,l=o(e,t,!!t&&n);l;){if(l===e.firstChild){if(a)return!1;a=!0}var s=!r&&(l.disabled||"true"===l.getAttribute("aria-disabled"));if(l.hasAttribute("tabindex")&&Pe(l,i)&&!s)return l.focus(),!0;l=o(e,l,n)}return!1}var Ce=i.forwardRef((function(e,t){var n=e.actions,a=e.autoFocus,l=void 0!==a&&a,s=e.autoFocusItem,u=void 0!==s&&s,d=e.children,c=e.className,p=e.disabledItemsFocusable,f=void 0!==p&&p,v=e.disableListWrap,m=void 0!==v&&v,h=e.onKeyDown,b=e.variant,g=void 0===b?"selectedMenu":b,Z=(0,o.Z)(e,Se),x=i.useRef(null),E=i.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null});(0,Ee.Z)((function(){l&&x.current.focus()}),[l]),i.useImperativeHandle(n,(function(){return{adjustStyleForScrollbar:function(e,t){var n=!x.current.style.width;if(e.clientHeight=d.length&&(w=-1))}));var k=i.Children.map(d,(function(e,t){if(t===w){var n={};return u&&(n.autoFocus=!0),void 0===e.props.tabIndex&&"selectedMenu"===g&&(n.tabIndex=0),i.cloneElement(e,n)}return e}));return(0,y.jsx)(ge,(0,r.Z)({role:"menu",ref:S,className:c,onKeyDown:function(e){var t=x.current,n=e.key,r=(0,fe.Z)(t).activeElement;if("ArrowDown"===n)e.preventDefault(),Re(t,r,m,f,we);else if("ArrowUp"===n)e.preventDefault(),Re(t,r,m,f,ke);else if("Home"===n)e.preventDefault(),Re(t,null,m,f,we);else if("End"===n)e.preventDefault(),Re(t,null,m,f,ke);else if(1===n.length){var o=E.current,i=n.toLowerCase(),a=performance.now();o.keys.length>0&&(a-o.lastTime>500?(o.keys=[],o.repeating=!0,o.previousKeyMatched=!0):o.repeating&&i!==o.keys[0]&&(o.repeating=!1)),o.lastTime=a,o.keys.push(i);var l=r&&!o.repeating&&Pe(r,o);o.previousKeyMatched&&(l||Re(t,r,!1,f,we,o))?e.preventDefault():o.previousKeyMatched=!1}h&&h(e)},tabIndex:l?0:-1},Z,{children:k}))})),Me=n(2065),Ne=function(e){return((e<1?5.11916*Math.pow(e,2):4.5*Math.log(e+1)+2)/100).toFixed(2)};function Fe(e){return(0,b.Z)("MuiPaper",e)}(0,h.Z)("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);var Te=["className","component","elevation","square","variant"],Oe=(0,u.ZP)("div",{name:"MuiPaper",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],!n.square&&t.rounded,"elevation"===n.variant&&t["elevation".concat(n.elevation)]]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)({backgroundColor:(n.vars||n).palette.background.paper,color:(n.vars||n).palette.text.primary,transition:n.transitions.create("box-shadow")},!o.square&&{borderRadius:n.shape.borderRadius},"outlined"===o.variant&&{border:"1px solid ".concat((n.vars||n).palette.divider)},"elevation"===o.variant&&(0,r.Z)({boxShadow:(n.vars||n).shadows[o.elevation]},!n.vars&&"dark"===n.palette.mode&&{backgroundImage:"linear-gradient(".concat((0,Me.Fq)("#fff",Ne(o.elevation)),", ").concat((0,Me.Fq)("#fff",Ne(o.elevation)),")")},n.vars&&{backgroundImage:null==(t=n.vars.overlays)?void 0:t[o.elevation]}))})),Ie=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiPaper"}),i=n.className,s=n.component,u=void 0===s?"div":s,c=n.elevation,p=void 0===c?1:c,f=n.square,v=void 0!==f&&f,m=n.variant,h=void 0===m?"elevation":m,b=(0,o.Z)(n,Te),g=(0,r.Z)({},n,{component:u,elevation:p,square:v,variant:h}),Z=function(e){var t=e.square,n=e.elevation,r=e.variant,o=e.classes,i={root:["root",r,!t&&"rounded","elevation"===r&&"elevation".concat(n)]};return(0,l.Z)(i,Fe,o)}(g);return(0,y.jsx)(Oe,(0,r.Z)({as:u,ownerState:g,className:(0,a.Z)(Z.root,i),ref:t},b))})),Le=n(3199),Ae=n(7602),We=n(4578),je=n(4164),De=!1,ze=n(5545),Be="unmounted",qe="exited",He="entering",Ke="entered",Ue="exiting",Ve=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,i=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?i?(o=qe,r.appearStatus=He):o=Ke:o=t.unmountOnExit||t.mountOnEnter?Be:qe,r.state={status:o},r.nextCallback=null,r}(0,We.Z)(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===Be?{status:qe}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==He&&n!==Ke&&(t=He):n!==He&&n!==Ke||(t=Ue)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!==typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===He){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:je.findDOMNode(this);n&&function(e){e.scrollTop}(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===qe&&this.setState({status:Be})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[je.findDOMNode(this),r],i=o[0],a=o[1],l=this.getTimeouts(),s=r?l.appear:l.enter;!e&&!n||De?this.safeSetState({status:Ke},(function(){t.props.onEntered(i)})):(this.props.onEnter(i,a),this.safeSetState({status:He},(function(){t.props.onEntering(i,a),t.onTransitionEnd(s,(function(){t.safeSetState({status:Ke},(function(){t.props.onEntered(i,a)}))}))})))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:je.findDOMNode(this);t&&!De?(this.props.onExit(r),this.safeSetState({status:Ue},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:qe},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:qe},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:je.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],i=o[0],a=o[1];this.props.addEndListener(i,a)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===Be)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,(0,o.Z)(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return i.createElement(ze.Z.Provider,{value:null},"function"===typeof n?n(e,r):i.cloneElement(i.Children.only(n),r))},t}(i.Component);function Ge(){}Ve.contextType=ze.Z,Ve.propTypes={},Ve.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Ge,onEntering:Ge,onEntered:Ge,onExit:Ge,onExiting:Ge,onExited:Ge},Ve.UNMOUNTED=Be,Ve.EXITED=qe,Ve.ENTERING=He,Ve.ENTERED=Ke,Ve.EXITING=Ue;var _e=Ve,Xe=n(418),Ye=n(6482),$e=n(988);function Je(){var e=(0,Xe.Z)(Ye.Z);return e[$e.Z]||e}var Qe=function(e){return e.scrollTop};function et(e,t){var n,r,o=e.timeout,i=e.easing,a=e.style,l=void 0===a?{}:a;return{duration:null!=(n=l.transitionDuration)?n:"number"===typeof o?o:o[t.mode]||0,easing:null!=(r=l.transitionTimingFunction)?r:"object"===typeof i?i[t.mode]:i,delay:l.transitionDelay}}var tt=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"];function nt(e){return"scale(".concat(e,", ").concat(Math.pow(e,2),")")}var rt={entering:{opacity:1,transform:nt(1)},entered:{opacity:1,transform:"none"}},ot="undefined"!==typeof navigator&&/^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent)&&/(os |version\/)15(.|_)4/i.test(navigator.userAgent),it=i.forwardRef((function(e,t){var n=e.addEndListener,a=e.appear,l=void 0===a||a,s=e.children,u=e.easing,d=e.in,c=e.onEnter,p=e.onEntered,f=e.onEntering,v=e.onExit,m=e.onExited,h=e.onExiting,b=e.style,g=e.timeout,Z=void 0===g?"auto":g,x=e.TransitionComponent,E=void 0===x?_e:x,S=(0,o.Z)(e,tt),w=i.useRef(),k=i.useRef(),P=Je(),R=i.useRef(null),C=(0,ye.Z)(R,s.ref,t),M=function(e){return function(t){if(e){var n=R.current;void 0===t?e(n):e(n,t)}}},N=M(f),F=M((function(e,t){Qe(e);var n,r=et({style:b,timeout:Z,easing:u},{mode:"enter"}),o=r.duration,i=r.delay,a=r.easing;"auto"===Z?(n=P.transitions.getAutoHeightDuration(e.clientHeight),k.current=n):n=o,e.style.transition=[P.transitions.create("opacity",{duration:n,delay:i}),P.transitions.create("transform",{duration:ot?n:.666*n,delay:i,easing:a})].join(","),c&&c(e,t)})),T=M(p),O=M(h),I=M((function(e){var t,n=et({style:b,timeout:Z,easing:u},{mode:"exit"}),r=n.duration,o=n.delay,i=n.easing;"auto"===Z?(t=P.transitions.getAutoHeightDuration(e.clientHeight),k.current=t):t=r,e.style.transition=[P.transitions.create("opacity",{duration:t,delay:o}),P.transitions.create("transform",{duration:ot?t:.666*t,delay:ot?o:o||.333*t,easing:i})].join(","),e.style.opacity=0,e.style.transform=nt(.75),v&&v(e)})),L=M(m);return i.useEffect((function(){return function(){clearTimeout(w.current)}}),[]),(0,y.jsx)(E,(0,r.Z)({appear:l,in:d,nodeRef:R,onEnter:F,onEntered:T,onEntering:N,onExit:I,onExited:L,onExiting:O,addEndListener:function(e){"auto"===Z&&(w.current=setTimeout(e,k.current||0)),n&&n(R.current,e)},timeout:"auto"===Z?null:Z},S,{children:function(e,t){return i.cloneElement(s,(0,r.Z)({style:(0,r.Z)({opacity:0,transform:nt(.75),visibility:"exited"!==e||d?void 0:"hidden"},rt[e],b,s.props.style),ref:C},t))}}))}));it.muiSupportAuto=!0;var at=it,lt=n(7563),st=n(9723),ut=n(8956),dt=n(8949),ct=n(5721),pt=n(2971);var ft=i.forwardRef((function(e,t){var n=e.children,r=e.container,o=e.disablePortal,a=void 0!==o&&o,l=i.useState(null),s=(0,J.Z)(l,2),u=s[0],d=s[1],c=(0,lt.Z)(i.isValidElement(n)?n.ref:null,t);if((0,ct.Z)((function(){a||d(function(e){return"function"===typeof e?e():e}(r)||document.body)}),[r,a]),(0,ct.Z)((function(){if(u&&!a)return(0,pt.Z)(t,u),function(){(0,pt.Z)(t,null)}}),[t,u,a]),a){if(i.isValidElement(n)){var p={ref:c};return i.cloneElement(n,p)}return(0,y.jsx)(i.Fragment,{children:n})}return(0,y.jsx)(i.Fragment,{children:u?je.createPortal(n,u):u})})),vt=n(5671),mt=n(3144),ht=n(7979);function bt(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function gt(e){return parseInt((0,ht.Z)(e).getComputedStyle(e).paddingRight,10)||0}function Zt(e,t,n,r,o){var i=[t,n].concat((0,f.Z)(r));[].forEach.call(e.children,(function(e){var t=-1===i.indexOf(e),n=!function(e){var t=-1!==["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].indexOf(e.tagName),n="INPUT"===e.tagName&&"hidden"===e.getAttribute("type");return t||n}(e);t&&n&&bt(e,o)}))}function xt(e,t){var n=-1;return e.some((function(e,r){return!!t(e)&&(n=r,!0)})),n}function yt(e,t){var n=[],r=e.container;if(!t.disableScrollLock){if(function(e){var t=(0,st.Z)(e);return t.body===e?(0,ht.Z)(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}(r)){var o=Ze((0,st.Z)(r));n.push({value:r.style.paddingRight,property:"padding-right",el:r}),r.style.paddingRight="".concat(gt(r)+o,"px");var i=(0,st.Z)(r).querySelectorAll(".mui-fixed");[].forEach.call(i,(function(e){n.push({value:e.style.paddingRight,property:"padding-right",el:e}),e.style.paddingRight="".concat(gt(e)+o,"px")}))}var a;if(r.parentNode instanceof DocumentFragment)a=(0,st.Z)(r).body;else{var l=r.parentElement,s=(0,ht.Z)(r);a="HTML"===(null==l?void 0:l.nodeName)&&"scroll"===s.getComputedStyle(l).overflowY?l:r}n.push({value:a.style.overflow,property:"overflow",el:a},{value:a.style.overflowX,property:"overflow-x",el:a},{value:a.style.overflowY,property:"overflow-y",el:a}),a.style.overflow="hidden"}return function(){n.forEach((function(e){var t=e.value,n=e.el,r=e.property;t?n.style.setProperty(r,t):n.style.removeProperty(r)}))}}var Et=function(){function e(){(0,vt.Z)(this,e),this.containers=void 0,this.modals=void 0,this.modals=[],this.containers=[]}return(0,mt.Z)(e,[{key:"add",value:function(e,t){var n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&bt(e.modalRef,!1);var r=function(e){var t=[];return[].forEach.call(e.children,(function(e){"true"===e.getAttribute("aria-hidden")&&t.push(e)})),t}(t);Zt(t,e.mount,e.modalRef,r,!0);var o=xt(this.containers,(function(e){return e.container===t}));return-1!==o?(this.containers[o].modals.push(e),n):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:r}),n)}},{key:"mount",value:function(e,t){var n=xt(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),r=this.containers[n];r.restore||(r.restore=yt(r,t))}},{key:"remove",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.modals.indexOf(e);if(-1===n)return n;var r=xt(this.containers,(function(t){return-1!==t.modals.indexOf(e)})),o=this.containers[r];if(o.modals.splice(o.modals.indexOf(e),1),this.modals.splice(n,1),0===o.modals.length)o.restore&&o.restore(),e.modalRef&&bt(e.modalRef,t),Zt(o.container,e.mount,e.modalRef,o.hiddenSiblings,!1),this.containers.splice(r,1);else{var i=o.modals[o.modals.length-1];i.modalRef&&bt(i.modalRef,!1)}return n}},{key:"isTopModal",value:function(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}}]),e}(),St=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function wt(e){var t=[],n=[];return Array.from(e.querySelectorAll(St)).forEach((function(e,r){var o=function(e){var t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?"true"===e.contentEditable||("AUDIO"===e.nodeName||"VIDEO"===e.nodeName||"DETAILS"===e.nodeName)&&null===e.getAttribute("tabindex")?0:e.tabIndex:t}(e);-1!==o&&function(e){return!(e.disabled||"INPUT"===e.tagName&&"hidden"===e.type||function(e){if("INPUT"!==e.tagName||"radio"!==e.type)return!1;if(!e.name)return!1;var t=function(t){return e.ownerDocument.querySelector('input[type="radio"]'.concat(t))},n=t('[name="'.concat(e.name,'"]:checked'));return n||(n=t('[name="'.concat(e.name,'"]'))),n!==e}(e))}(e)&&(0===o?t.push(e):n.push({documentOrder:r,tabIndex:o,node:e}))})),n.sort((function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex})).map((function(e){return e.node})).concat(t)}function kt(){return!0}var Pt=function(e){var t=e.children,n=e.disableAutoFocus,r=void 0!==n&&n,o=e.disableEnforceFocus,a=void 0!==o&&o,l=e.disableRestoreFocus,s=void 0!==l&&l,u=e.getTabbable,d=void 0===u?wt:u,c=e.isEnabled,p=void 0===c?kt:c,f=e.open,v=i.useRef(!1),m=i.useRef(null),h=i.useRef(null),b=i.useRef(null),g=i.useRef(null),Z=i.useRef(!1),x=i.useRef(null),E=(0,lt.Z)(t.ref,x),S=i.useRef(null);i.useEffect((function(){f&&x.current&&(Z.current=!r)}),[r,f]),i.useEffect((function(){if(f&&x.current){var e=(0,st.Z)(x.current);return x.current.contains(e.activeElement)||(x.current.hasAttribute("tabIndex")||x.current.setAttribute("tabIndex","-1"),Z.current&&x.current.focus()),function(){s||(b.current&&b.current.focus&&(v.current=!0,b.current.focus()),b.current=null)}}}),[f]),i.useEffect((function(){if(f&&x.current){var e=(0,st.Z)(x.current),t=function(t){var n=x.current;if(null!==n)if(e.hasFocus()&&!a&&p()&&!v.current){if(!n.contains(e.activeElement)){if(t&&g.current!==t.target||e.activeElement!==g.current)g.current=null;else if(null!==g.current)return;if(!Z.current)return;var r=[];if(e.activeElement!==m.current&&e.activeElement!==h.current||(r=d(x.current)),r.length>0){var o,i,l=Boolean((null==(o=S.current)?void 0:o.shiftKey)&&"Tab"===(null==(i=S.current)?void 0:i.key)),s=r[0],u=r[r.length-1];"string"!==typeof s&&"string"!==typeof u&&(l?u.focus():s.focus())}else n.focus()}}else v.current=!1},n=function(t){S.current=t,!a&&p()&&"Tab"===t.key&&e.activeElement===x.current&&t.shiftKey&&(v.current=!0,h.current&&h.current.focus())};e.addEventListener("focusin",t),e.addEventListener("keydown",n,!0);var r=setInterval((function(){e.activeElement&&"BODY"===e.activeElement.tagName&&t(null)}),50);return function(){clearInterval(r),e.removeEventListener("focusin",t),e.removeEventListener("keydown",n,!0)}}}),[r,a,s,p,f,d]);var w=function(e){null===b.current&&(b.current=e.relatedTarget),Z.current=!0};return(0,y.jsxs)(i.Fragment,{children:[(0,y.jsx)("div",{tabIndex:f?0:-1,onFocus:w,ref:m,"data-testid":"sentinelStart"}),i.cloneElement(t,{ref:E,onFocus:function(e){null===b.current&&(b.current=e.relatedTarget),Z.current=!0,g.current=e.target;var n=t.props.onFocus;n&&n(e)}}),(0,y.jsx)("div",{tabIndex:f?0:-1,onFocus:w,ref:h,"data-testid":"sentinelEnd"})]})};function Rt(e){return(0,b.Z)("MuiModal",e)}(0,h.Z)("MuiModal",["root","hidden","backdrop"]);var Ct=n(627);function Mt(e){if(void 0===e)return{};var t={};return Object.keys(e).filter((function(t){return!(t.match(/^on[A-Z]/)&&"function"===typeof e[t])})).forEach((function(n){t[n]=e[n]})),t}function Nt(e){var t=e.getSlotProps,n=e.additionalProps,o=e.externalSlotProps,i=e.externalForwardedProps,l=e.className;if(!t){var s=(0,a.Z)(null==i?void 0:i.className,null==o?void 0:o.className,l,null==n?void 0:n.className),u=(0,r.Z)({},null==n?void 0:n.style,null==i?void 0:i.style,null==o?void 0:o.style),d=(0,r.Z)({},n,i,o);return s.length>0&&(d.className=s),Object.keys(u).length>0&&(d.style=u),{props:d,internalRef:void 0}}var c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(void 0===e)return{};var n={};return Object.keys(e).filter((function(n){return n.match(/^on[A-Z]/)&&"function"===typeof e[n]&&!t.includes(n)})).forEach((function(t){n[t]=e[t]})),n}((0,r.Z)({},i,o)),p=Mt(o),f=Mt(i),v=t(c),m=(0,a.Z)(null==v?void 0:v.className,null==n?void 0:n.className,l,null==i?void 0:i.className,null==o?void 0:o.className),h=(0,r.Z)({},null==v?void 0:v.style,null==n?void 0:n.style,null==i?void 0:i.style,null==o?void 0:o.style),b=(0,r.Z)({},v,n,f,p);return m.length>0&&(b.className=m),Object.keys(h).length>0&&(b.style=h),{props:b,internalRef:v.ref}}function Ft(e,t){return"function"===typeof e?e(t):e}var Tt=["elementType","externalSlotProps","ownerState"];function Ot(e){var t,n=e.elementType,i=e.externalSlotProps,a=e.ownerState,l=(0,o.Z)(e,Tt),s=Ft(i,a),u=Nt((0,r.Z)({},l,{externalSlotProps:s})),d=u.props,c=u.internalRef,p=(0,lt.Z)(c,null==s?void 0:s.ref,null==(t=e.additionalProps)?void 0:t.ref),f=function(e,t,n){return void 0===e||(0,Ct.Z)(e)?t:(0,r.Z)({},t,{ownerState:(0,r.Z)({},t.ownerState,n)})}(n,(0,r.Z)({},d,{ref:p}),a);return f}var It={disableDefaultClasses:!1},Lt=i.createContext(It);var At=["children","closeAfterTransition","container","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","manager","onBackdropClick","onClose","onKeyDown","open","onTransitionEnter","onTransitionExited","slotProps","slots"],Wt=function(e){var t=e.open,n=e.exited,r={root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]};return(0,l.Z)(r,function(e){var t=i.useContext(Lt).disableDefaultClasses;return function(n){return t?"":e(n)}}(Rt))};var jt=new Et,Dt=i.forwardRef((function(e,t){var n,a,l=e.children,s=e.closeAfterTransition,u=void 0!==s&&s,d=e.container,c=e.disableAutoFocus,p=void 0!==c&&c,f=e.disableEnforceFocus,v=void 0!==f&&f,m=e.disableEscapeKeyDown,h=void 0!==m&&m,b=e.disablePortal,g=void 0!==b&&b,Z=e.disableRestoreFocus,x=void 0!==Z&&Z,E=e.disableScrollLock,S=void 0!==E&&E,w=e.hideBackdrop,k=void 0!==w&&w,P=e.keepMounted,R=void 0!==P&&P,C=e.manager,M=void 0===C?jt:C,N=e.onBackdropClick,F=e.onClose,T=e.onKeyDown,O=e.open,I=e.onTransitionEnter,L=e.onTransitionExited,A=e.slotProps,W=void 0===A?{}:A,j=e.slots,D=void 0===j?{}:j,z=(0,o.Z)(e,At),B=M,q=i.useState(!O),H=(0,J.Z)(q,2),K=H[0],U=H[1],V=i.useRef({}),G=i.useRef(null),_=i.useRef(null),X=(0,lt.Z)(_,t),Y=function(e){return!!e&&e.props.hasOwnProperty("in")}(l),$=null==(n=e["aria-hidden"])||n,Q=function(){return V.current.modalRef=_.current,V.current.mountNode=G.current,V.current},ee=function(){B.mount(Q(),{disableScrollLock:S}),_.current&&(_.current.scrollTop=0)},te=(0,ut.Z)((function(){var e=function(e){return"function"===typeof e?e():e}(d)||(0,st.Z)(G.current).body;B.add(Q(),e),_.current&&ee()})),ne=i.useCallback((function(){return B.isTopModal(Q())}),[B]),re=(0,ut.Z)((function(e){G.current=e,e&&_.current&&(O&&ne()?ee():bt(_.current,$))})),oe=i.useCallback((function(){B.remove(Q(),$)}),[B,$]);i.useEffect((function(){return function(){oe()}}),[oe]),i.useEffect((function(){O?te():Y&&u||oe()}),[O,oe,Y,u,te]);var ie=(0,r.Z)({},e,{closeAfterTransition:u,disableAutoFocus:p,disableEnforceFocus:v,disableEscapeKeyDown:h,disablePortal:g,disableRestoreFocus:x,disableScrollLock:S,exited:K,hideBackdrop:k,keepMounted:R}),ae=Wt(ie),le={};void 0===l.props.tabIndex&&(le.tabIndex="-1"),Y&&(le.onEnter=(0,dt.Z)((function(){U(!1),I&&I()}),l.props.onEnter),le.onExited=(0,dt.Z)((function(){U(!0),L&&L(),u&&oe()}),l.props.onExited));var se=null!=(a=D.root)?a:"div",ue=Ot({elementType:se,externalSlotProps:W.root,externalForwardedProps:z,additionalProps:{ref:X,role:"presentation",onKeyDown:function(e){T&&T(e),"Escape"===e.key&&ne()&&(h||(e.stopPropagation(),F&&F(e,"escapeKeyDown")))}},className:ae.root,ownerState:ie}),de=D.backdrop,ce=Ot({elementType:de,externalSlotProps:W.backdrop,additionalProps:{"aria-hidden":!0,onClick:function(e){e.target===e.currentTarget&&(N&&N(e),F&&F(e,"backdropClick"))},open:O},className:ae.backdrop,ownerState:ie});return R||O||Y&&!K?(0,y.jsx)(ft,{ref:re,container:d,disablePortal:g,children:(0,y.jsxs)(se,(0,r.Z)({},ue,{children:[!k&&de?(0,y.jsx)(de,(0,r.Z)({},ce)):null,(0,y.jsx)(Pt,{disableEnforceFocus:v,disableAutoFocus:p,disableRestoreFocus:x,isEnabled:ne,open:O,children:i.cloneElement(l,le)})]}))}):null})),zt=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],Bt={entering:{opacity:1},entered:{opacity:1}},qt=i.forwardRef((function(e,t){var n=Je(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},l=e.addEndListener,s=e.appear,u=void 0===s||s,d=e.children,c=e.easing,p=e.in,f=e.onEnter,v=e.onEntered,m=e.onEntering,h=e.onExit,b=e.onExited,g=e.onExiting,Z=e.style,x=e.timeout,E=void 0===x?a:x,S=e.TransitionComponent,w=void 0===S?_e:S,k=(0,o.Z)(e,zt),P=i.useRef(null),R=(0,ye.Z)(P,d.ref,t),C=function(e){return function(t){if(e){var n=P.current;void 0===t?e(n):e(n,t)}}},M=C(m),N=C((function(e,t){Qe(e);var r=et({style:Z,timeout:E,easing:c},{mode:"enter"});e.style.webkitTransition=n.transitions.create("opacity",r),e.style.transition=n.transitions.create("opacity",r),f&&f(e,t)})),F=C(v),T=C(g),O=C((function(e){var t=et({style:Z,timeout:E,easing:c},{mode:"exit"});e.style.webkitTransition=n.transitions.create("opacity",t),e.style.transition=n.transitions.create("opacity",t),h&&h(e)})),I=C(b);return(0,y.jsx)(w,(0,r.Z)({appear:u,in:p,nodeRef:P,onEnter:N,onEntered:F,onEntering:M,onExit:O,onExited:I,onExiting:T,addEndListener:function(e){l&&l(P.current,e)},timeout:E},k,{children:function(e,t){return i.cloneElement(d,(0,r.Z)({style:(0,r.Z)({opacity:0,visibility:"exited"!==e||p?void 0:"hidden"},Bt[e],Z,d.props.style),ref:R},t))}}))}));function Ht(e){return(0,b.Z)("MuiBackdrop",e)}(0,h.Z)("MuiBackdrop",["root","invisible"]);var Kt=["children","className","component","components","componentsProps","invisible","open","slotProps","slots","TransitionComponent","transitionDuration"],Ut=(0,u.ZP)("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.invisible&&t.invisible]}})((function(e){var t=e.ownerState;return(0,r.Z)({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent"},t.invisible&&{backgroundColor:"transparent"})})),Vt=i.forwardRef((function(e,t){var n,i,s,u=(0,d.Z)({props:e,name:"MuiBackdrop"}),c=u.children,p=u.className,f=u.component,v=void 0===f?"div":f,m=u.components,h=void 0===m?{}:m,b=u.componentsProps,g=void 0===b?{}:b,Z=u.invisible,x=void 0!==Z&&Z,E=u.open,S=u.slotProps,w=void 0===S?{}:S,k=u.slots,P=void 0===k?{}:k,R=u.TransitionComponent,C=void 0===R?qt:R,M=u.transitionDuration,N=(0,o.Z)(u,Kt),F=(0,r.Z)({},u,{component:v,invisible:x}),T=function(e){var t=e.classes,n={root:["root",e.invisible&&"invisible"]};return(0,l.Z)(n,Ht,t)}(F),O=null!=(n=w.root)?n:g.root;return(0,y.jsx)(C,(0,r.Z)({in:E,timeout:M},N,{children:(0,y.jsx)(Ut,(0,r.Z)({"aria-hidden":!0},O,{as:null!=(i=null!=(s=P.root)?s:h.Root)?i:v,className:(0,a.Z)(T.root,p,null==O?void 0:O.className),ownerState:(0,r.Z)({},F,null==O?void 0:O.ownerState),classes:T,ref:t,children:c}))}))})),Gt=["BackdropComponent","BackdropProps","classes","className","closeAfterTransition","children","container","component","components","componentsProps","disableAutoFocus","disableEnforceFocus","disableEscapeKeyDown","disablePortal","disableRestoreFocus","disableScrollLock","hideBackdrop","keepMounted","onBackdropClick","onClose","open","slotProps","slots","theme"],_t=(0,u.ZP)("div",{name:"MuiModal",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,!n.open&&n.exited&&t.hidden]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({position:"fixed",zIndex:(t.vars||t).zIndex.modal,right:0,bottom:0,top:0,left:0},!n.open&&n.exited&&{visibility:"hidden"})})),Xt=(0,u.ZP)(Vt,{name:"MuiModal",slot:"Backdrop",overridesResolver:function(e,t){return t.backdrop}})({zIndex:-1}),Yt=i.forwardRef((function(e,t){var n,l,s,u,c,p,f=(0,d.Z)({name:"MuiModal",props:e}),v=f.BackdropComponent,m=void 0===v?Xt:v,h=f.BackdropProps,b=f.classes,g=f.className,Z=f.closeAfterTransition,x=void 0!==Z&&Z,E=f.children,S=f.container,w=f.component,k=f.components,P=void 0===k?{}:k,R=f.componentsProps,C=void 0===R?{}:R,M=f.disableAutoFocus,N=void 0!==M&&M,F=f.disableEnforceFocus,T=void 0!==F&&F,O=f.disableEscapeKeyDown,I=void 0!==O&&O,L=f.disablePortal,A=void 0!==L&&L,W=f.disableRestoreFocus,j=void 0!==W&&W,D=f.disableScrollLock,z=void 0!==D&&D,B=f.hideBackdrop,q=void 0!==B&&B,H=f.keepMounted,K=void 0!==H&&H,U=f.onBackdropClick,V=f.onClose,G=f.open,_=f.slotProps,X=f.slots,Y=f.theme,$=(0,o.Z)(f,Gt),Q=i.useState(!0),ee=(0,J.Z)(Q,2),te=ee[0],ne=ee[1],re={container:S,closeAfterTransition:x,disableAutoFocus:N,disableEnforceFocus:T,disableEscapeKeyDown:I,disablePortal:A,disableRestoreFocus:j,disableScrollLock:z,hideBackdrop:q,keepMounted:K,onBackdropClick:U,onClose:V,open:G},oe=(0,r.Z)({},f,re,{exited:te}),ie=null!=(n=null!=(l=null==X?void 0:X.root)?l:P.Root)?n:_t,ae=null!=(s=null!=(u=null==X?void 0:X.backdrop)?u:P.Backdrop)?s:m,le=null!=(c=null==_?void 0:_.root)?c:C.root,se=null!=(p=null==_?void 0:_.backdrop)?p:C.backdrop;return(0,y.jsx)(Dt,(0,r.Z)({slots:{root:ie,backdrop:ae},slotProps:{root:function(){return(0,r.Z)({},Ft(le,oe),!(0,Ct.Z)(ie)&&{as:w,theme:Y},{className:(0,a.Z)(g,null==le?void 0:le.className,null==b?void 0:b.root,!oe.open&&oe.exited&&(null==b?void 0:b.hidden))})},backdrop:function(){return(0,r.Z)({},h,Ft(se,oe),{className:(0,a.Z)(null==se?void 0:se.className,null==b?void 0:b.backdrop)})}},onTransitionEnter:function(){return ne(!1)},onTransitionExited:function(){return ne(!0)},ref:t},$,re,{children:E}))}));function $t(e){return(0,b.Z)("MuiPopover",e)}(0,h.Z)("MuiPopover",["root","paper"]);var Jt=["onEntering"],Qt=["action","anchorEl","anchorOrigin","anchorPosition","anchorReference","children","className","container","elevation","marginThreshold","open","PaperProps","transformOrigin","TransitionComponent","transitionDuration","TransitionProps"];function en(e,t){var n=0;return"number"===typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function tn(e,t){var n=0;return"number"===typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function nn(e){return[e.horizontal,e.vertical].map((function(e){return"number"===typeof e?"".concat(e,"px"):e})).join(" ")}function rn(e){return"function"===typeof e?e():e}var on=(0,u.ZP)(Yt,{name:"MuiPopover",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),an=(0,u.ZP)(Ie,{name:"MuiPopover",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),ln=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiPopover"}),s=n.action,u=n.anchorEl,c=n.anchorOrigin,p=void 0===c?{vertical:"top",horizontal:"left"}:c,f=n.anchorPosition,v=n.anchorReference,m=void 0===v?"anchorEl":v,h=n.children,b=n.className,g=n.container,Z=n.elevation,x=void 0===Z?8:Z,E=n.marginThreshold,S=void 0===E?16:E,w=n.open,k=n.PaperProps,P=void 0===k?{}:k,R=n.transformOrigin,C=void 0===R?{vertical:"top",horizontal:"left"}:R,M=n.TransitionComponent,N=void 0===M?at:M,F=n.transitionDuration,T=void 0===F?"auto":F,O=n.TransitionProps,I=(O=void 0===O?{}:O).onEntering,L=(0,o.Z)(n.TransitionProps,Jt),A=(0,o.Z)(n,Qt),W=i.useRef(),j=(0,ye.Z)(W,P.ref),D=(0,r.Z)({},n,{anchorOrigin:p,anchorReference:m,elevation:x,marginThreshold:S,PaperProps:P,transformOrigin:C,TransitionComponent:N,transitionDuration:T,TransitionProps:L}),z=function(e){var t=e.classes;return(0,l.Z)({root:["root"],paper:["paper"]},$t,t)}(D),B=i.useCallback((function(){if("anchorPosition"===m)return f;var e=rn(u),t=(e&&1===e.nodeType?e:(0,fe.Z)(W.current).body).getBoundingClientRect();return{top:t.top+en(t,p.vertical),left:t.left+tn(t,p.horizontal)}}),[u,p.horizontal,p.vertical,f,m]),q=i.useCallback((function(e){return{vertical:en(e,C.vertical),horizontal:tn(e,C.horizontal)}}),[C.horizontal,C.vertical]),H=i.useCallback((function(e){var t={width:e.offsetWidth,height:e.offsetHeight},n=q(t);if("none"===m)return{top:null,left:null,transformOrigin:nn(n)};var r=B(),o=r.top-n.vertical,i=r.left-n.horizontal,a=o+t.height,l=i+t.width,s=(0,Ae.Z)(rn(u)),d=s.innerHeight-S,c=s.innerWidth-S;if(od){var f=a-d;o-=f,n.vertical+=f}if(ic){var h=l-c;i-=h,n.horizontal+=h}return{top:"".concat(Math.round(o),"px"),left:"".concat(Math.round(i),"px"),transformOrigin:nn(n)}}),[u,m,B,q,S]),K=i.useState(w),U=(0,J.Z)(K,2),V=U[0],G=U[1],_=i.useCallback((function(){var e=W.current;if(e){var t=H(e);null!==t.top&&(e.style.top=t.top),null!==t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,G(!0)}}),[H]);i.useEffect((function(){w&&_()})),i.useImperativeHandle(s,(function(){return w?{updatePosition:function(){_()}}:null}),[w,_]),i.useEffect((function(){if(w){var e=(0,Le.Z)((function(){_()})),t=(0,Ae.Z)(u);return t.addEventListener("resize",e),function(){e.clear(),t.removeEventListener("resize",e)}}}),[u,w,_]);var X=T;"auto"!==T||N.muiSupportAuto||(X=void 0);var Y=g||(u?(0,fe.Z)(rn(u)).body:void 0);return(0,y.jsx)(on,(0,r.Z)({BackdropProps:{invisible:!0},className:(0,a.Z)(z.root,b),container:Y,open:w,ref:t,ownerState:D},A,{children:(0,y.jsx)(N,(0,r.Z)({appear:!0,in:w,onEntering:function(e,t){I&&I(e,t),_()},onExited:function(){G(!1)},timeout:X},L,{children:(0,y.jsx)(an,(0,r.Z)({elevation:x},P,{ref:j,className:(0,a.Z)(z.paper,P.className)},V?void 0:{style:(0,r.Z)({},P.style,{opacity:0})},{ownerState:D,children:h}))}))}))}));function sn(e){return(0,b.Z)("MuiMenu",e)}(0,h.Z)("MuiMenu",["root","paper","list"]);var un=["onEntering"],dn=["autoFocus","children","disableAutoFocusItem","MenuListProps","onClose","open","PaperProps","PopoverClasses","transitionDuration","TransitionProps","variant"],cn={vertical:"top",horizontal:"right"},pn={vertical:"top",horizontal:"left"},fn=(0,u.ZP)(ln,{shouldForwardProp:function(e){return(0,u.FO)(e)||"classes"===e},name:"MuiMenu",slot:"Root",overridesResolver:function(e,t){return t.root}})({}),vn=(0,u.ZP)(Ie,{name:"MuiMenu",slot:"Paper",overridesResolver:function(e,t){return t.paper}})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),mn=(0,u.ZP)(Ce,{name:"MuiMenu",slot:"List",overridesResolver:function(e,t){return t.list}})({outline:0}),hn=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiMenu"}),s=n.autoFocus,u=void 0===s||s,c=n.children,p=n.disableAutoFocusItem,f=void 0!==p&&p,v=n.MenuListProps,m=void 0===v?{}:v,h=n.onClose,b=n.open,g=n.PaperProps,Z=void 0===g?{}:g,x=n.PopoverClasses,E=n.transitionDuration,S=void 0===E?"auto":E,w=n.TransitionProps,k=(w=void 0===w?{}:w).onEntering,P=n.variant,R=void 0===P?"selectedMenu":P,C=(0,o.Z)(n.TransitionProps,un),M=(0,o.Z)(n,dn),N=Je(),F="rtl"===N.direction,T=(0,r.Z)({},n,{autoFocus:u,disableAutoFocusItem:f,MenuListProps:m,onEntering:k,PaperProps:Z,transitionDuration:S,TransitionProps:C,variant:R}),O=function(e){var t=e.classes;return(0,l.Z)({root:["root"],paper:["paper"],list:["list"]},sn,t)}(T),I=u&&!f&&b,L=i.useRef(null),A=-1;return i.Children.map(c,(function(e,t){i.isValidElement(e)&&(e.props.disabled||("selectedMenu"===R&&e.props.selected||-1===A)&&(A=t))})),(0,y.jsx)(fn,(0,r.Z)({onClose:h,anchorOrigin:{vertical:"bottom",horizontal:F?"right":"left"},transformOrigin:F?cn:pn,PaperProps:(0,r.Z)({as:vn},Z,{classes:(0,r.Z)({},Z.classes,{root:O.paper})}),className:O.root,open:b,ref:t,transitionDuration:S,TransitionProps:(0,r.Z)({onEntering:function(e,t){L.current&&L.current.adjustStyleForScrollbar(e,N),k&&k(e,t)}},C),ownerState:T},M,{classes:x,children:(0,y.jsx)(mn,(0,r.Z)({onKeyDown:function(e){"Tab"===e.key&&(e.preventDefault(),h&&h(e,"tabKeyDown"))},actions:L,autoFocus:u&&(-1===A||f),autoFocusItem:I,variant:R},m,{className:(0,a.Z)(O.list,m.className),children:c}))}))}));function bn(e){return(0,b.Z)("MuiNativeSelect",e)}var gn=(0,h.Z)("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),Zn=["className","disabled","error","IconComponent","inputRef","variant"],xn=function(e){var t,n=e.ownerState,o=e.theme;return(0,r.Z)((t={MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":(0,r.Z)({},o.vars?{backgroundColor:"rgba(".concat(o.vars.palette.common.onBackgroundChannel," / 0.05)")}:{backgroundColor:"light"===o.palette.mode?"rgba(0, 0, 0, 0.05)":"rgba(255, 255, 255, 0.05)"},{borderRadius:0}),"&::-ms-expand":{display:"none"}},(0,p.Z)(t,"&.".concat(gn.disabled),{cursor:"default"}),(0,p.Z)(t,"&[multiple]",{height:"auto"}),(0,p.Z)(t,"&:not([multiple]) option, &:not([multiple]) optgroup",{backgroundColor:(o.vars||o).palette.background.paper}),(0,p.Z)(t,"&&&",{paddingRight:24,minWidth:16}),t),"filled"===n.variant&&{"&&&":{paddingRight:32}},"outlined"===n.variant&&{borderRadius:(o.vars||o).shape.borderRadius,"&:focus":{borderRadius:(o.vars||o).shape.borderRadius},"&&&":{paddingRight:32}})},yn=(0,u.ZP)("select",{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:u.FO,overridesResolver:function(e,t){var n=e.ownerState;return[t.select,t[n.variant],n.error&&t.error,(0,p.Z)({},"&.".concat(gn.multiple),t.multiple)]}})(xn),En=function(e){var t=e.ownerState,n=e.theme;return(0,r.Z)((0,p.Z)({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(n.vars||n).palette.action.active},"&.".concat(gn.disabled),{color:(n.vars||n).palette.action.disabled}),t.open&&{transform:"rotate(180deg)"},"filled"===t.variant&&{right:7},"outlined"===t.variant&&{right:7})},Sn=(0,u.ZP)("svg",{name:"MuiNativeSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat((0,B.Z)(n.variant))],n.open&&t.iconOpen]}})(En),wn=i.forwardRef((function(e,t){var n=e.className,s=e.disabled,u=e.error,d=e.IconComponent,c=e.inputRef,p=e.variant,f=void 0===p?"standard":p,v=(0,o.Z)(e,Zn),m=(0,r.Z)({},e,{disabled:s,variant:f,error:u}),h=function(e){var t=e.classes,n=e.variant,r=e.disabled,o=e.multiple,i=e.open,a={select:["select",n,r&&"disabled",o&&"multiple",e.error&&"error"],icon:["icon","icon".concat((0,B.Z)(n)),i&&"iconOpen",r&&"disabled"]};return(0,l.Z)(a,bn,t)}(m);return(0,y.jsxs)(i.Fragment,{children:[(0,y.jsx)(yn,(0,r.Z)({ownerState:m,className:(0,a.Z)(h.select,n),disabled:s,ref:c||t},v)),e.multiple?null:(0,y.jsx)(Sn,{as:d,ownerState:m,className:h.icon})]})})),kn=n(8744);function Pn(e){return(0,b.Z)("MuiSelect",e)}var Rn,Cn=(0,h.Z)("MuiSelect",["select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),Mn=["aria-describedby","aria-label","autoFocus","autoWidth","children","className","defaultOpen","defaultValue","disabled","displayEmpty","error","IconComponent","inputRef","labelId","MenuProps","multiple","name","onBlur","onChange","onClose","onFocus","onOpen","open","readOnly","renderValue","SelectDisplayProps","tabIndex","type","value","variant"],Nn=(0,u.ZP)("div",{name:"MuiSelect",slot:"Select",overridesResolver:function(e,t){var n=e.ownerState;return[(0,p.Z)({},"&.".concat(Cn.select),t.select),(0,p.Z)({},"&.".concat(Cn.select),t[n.variant]),(0,p.Z)({},"&.".concat(Cn.error),t.error),(0,p.Z)({},"&.".concat(Cn.multiple),t.multiple)]}})(xn,(0,p.Z)({},"&.".concat(Cn.select),{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"})),Fn=(0,u.ZP)("svg",{name:"MuiSelect",slot:"Icon",overridesResolver:function(e,t){var n=e.ownerState;return[t.icon,n.variant&&t["icon".concat((0,B.Z)(n.variant))],n.open&&t.iconOpen]}})(En),Tn=(0,u.ZP)("input",{shouldForwardProp:function(e){return(0,u.Dz)(e)&&"classes"!==e},name:"MuiSelect",slot:"NativeInput",overridesResolver:function(e,t){return t.nativeInput}})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"});function On(e,t){return"object"===typeof t&&null!==t?e===t:String(e)===String(t)}function In(e){return null==e||"string"===typeof e&&!e.trim()}var Ln=i.forwardRef((function(e,t){var n=e["aria-describedby"],s=e["aria-label"],u=e.autoFocus,d=e.autoWidth,c=e.children,p=e.className,f=e.defaultOpen,v=e.defaultValue,m=e.disabled,h=e.displayEmpty,b=e.error,g=void 0!==b&&b,Z=e.IconComponent,x=e.inputRef,E=e.labelId,S=e.MenuProps,w=void 0===S?{}:S,k=e.multiple,P=e.name,R=e.onBlur,C=e.onChange,M=e.onClose,N=e.onFocus,F=e.onOpen,T=e.open,O=e.readOnly,I=e.renderValue,L=e.SelectDisplayProps,A=void 0===L?{}:L,W=e.tabIndex,j=e.value,D=e.variant,z=void 0===D?"standard":D,q=(0,o.Z)(e,Mn),H=(0,kn.Z)({controlled:j,default:v,name:"Select"}),K=(0,J.Z)(H,2),U=K[0],V=K[1],G=(0,kn.Z)({controlled:T,default:f,name:"Select"}),_=(0,J.Z)(G,2),X=_[0],Y=_[1],$=i.useRef(null),ee=i.useRef(null),te=i.useState(null),ne=(0,J.Z)(te,2),re=ne[0],oe=ne[1],ie=i.useRef(null!=T).current,ae=i.useState(),le=(0,J.Z)(ae,2),se=le[0],ue=le[1],de=(0,ye.Z)(t,x),ce=i.useCallback((function(e){ee.current=e,e&&oe(e)}),[]),ve=null==re?void 0:re.parentNode;i.useImperativeHandle(de,(function(){return{focus:function(){ee.current.focus()},node:$.current,value:U}}),[U]),i.useEffect((function(){f&&X&&re&&!ie&&(ue(d?null:ve.clientWidth),ee.current.focus())}),[re,d]),i.useEffect((function(){u&&ee.current.focus()}),[u]),i.useEffect((function(){if(E){var e=(0,fe.Z)(ee.current).getElementById(E);if(e){var t=function(){getSelection().isCollapsed&&ee.current.focus()};return e.addEventListener("click",t),function(){e.removeEventListener("click",t)}}}}),[E]);var me,he,be=function(e,t){e?F&&F(t):M&&M(t),ie||(ue(d?null:ve.clientWidth),Y(e))},ge=i.Children.toArray(c),Ze=function(e){return function(t){var n;if(t.currentTarget.hasAttribute("tabindex")){if(k){n=Array.isArray(U)?U.slice():[];var r=U.indexOf(e.props.value);-1===r?n.push(e.props.value):n.splice(r,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),U!==n&&(V(n),C)){var o=t.nativeEvent||t,i=new o.constructor(o.type,o);Object.defineProperty(i,"target",{writable:!0,value:{value:n,name:P}}),C(i,e)}k||be(!1,t)}}},xe=null!==re&&X;delete q["aria-invalid"];var Ee=[],Se=!1;((0,Q.vd)({value:U})||h)&&(I?me=I(U):Se=!0);var we=ge.map((function(e){if(!i.isValidElement(e))return null;var t;if(k){if(!Array.isArray(U))throw new Error((0,pe.Z)(2));(t=U.some((function(t){return On(t,e.props.value)})))&&Se&&Ee.push(e.props.children)}else(t=On(U,e.props.value))&&Se&&(he=e.props.children);return t&&!0,i.cloneElement(e,{"aria-selected":t?"true":"false",onClick:Ze(e),onKeyUp:function(t){" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})}));Se&&(me=k?0===Ee.length?null:Ee.reduce((function(e,t,n){return e.push(t),n {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null ? void 0 : (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}","import { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nimport THEME_ID from '../styles/identifier';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: 'MuiBox-root',\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"disableGutters\", \"fixed\", \"maxWidth\", \"classes\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_capitalize as capitalize, unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';\nimport useThemePropsSystem from '../useThemeProps';\nimport systemStyled from '../styled';\nimport createTheme from '../createTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n});\nconst useThemePropsDefault = inProps => useThemePropsSystem({\n props: inProps,\n name: 'MuiContainer',\n defaultTheme\n});\nconst useUtilityClasses = (ownerState, componentName) => {\n const getContainerUtilityClass = slot => {\n return generateUtilityClass(componentName, slot);\n };\n const {\n classes,\n fixed,\n disableGutters,\n maxWidth\n } = ownerState;\n const slots = {\n root: ['root', maxWidth && `maxWidth${capitalize(String(maxWidth))}`, fixed && 'fixed', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getContainerUtilityClass, classes);\n};\nexport default function createContainer(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiContainer'\n } = options;\n const ContainerRoot = createStyledComponent(({\n theme,\n ownerState\n }) => _extends({\n width: '100%',\n marginLeft: 'auto',\n boxSizing: 'border-box',\n marginRight: 'auto',\n display: 'block'\n }, !ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n }), ({\n theme,\n ownerState\n }) => ownerState.fixed && Object.keys(theme.breakpoints.values).reduce((acc, breakpointValueKey) => {\n const breakpoint = breakpointValueKey;\n const value = theme.breakpoints.values[breakpoint];\n if (value !== 0) {\n // @ts-ignore\n acc[theme.breakpoints.up(breakpoint)] = {\n maxWidth: `${value}${theme.breakpoints.unit}`\n };\n }\n return acc;\n }, {}), ({\n theme,\n ownerState\n }) => _extends({}, ownerState.maxWidth === 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up('xs')]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: Math.max(theme.breakpoints.values.xs, 444)\n }\n }, ownerState.maxWidth &&\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ownerState.maxWidth !== 'xs' && {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n [theme.breakpoints.up(ownerState.maxWidth)]: {\n // @ts-ignore module augmentation fails if custom breakpoints are used\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`\n }\n }));\n const Container = /*#__PURE__*/React.forwardRef(function Container(inProps, ref) {\n const props = useThemeProps(inProps);\n const {\n className,\n component = 'div',\n disableGutters = false,\n fixed = false,\n maxWidth = 'lg'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n disableGutters,\n fixed,\n maxWidth\n });\n\n // @ts-ignore module augmentation fails if custom breakpoints are used\n const classes = useUtilityClasses(ownerState, componentName);\n return (\n /*#__PURE__*/\n // @ts-ignore theme is injected by the styled util\n _jsx(ContainerRoot, _extends({\n as: component\n // @ts-ignore module augmentation fails if custom breakpoints are used\n ,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other))\n );\n });\n process.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n classes: PropTypes.object,\n className: PropTypes.string,\n component: PropTypes.elementType,\n disableGutters: PropTypes.bool,\n fixed: PropTypes.bool,\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Container;\n}","import PropTypes from 'prop-types';\nimport { createContainer } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nconst Container = createContainer({\n createStyledComponent: styled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n }),\n useThemeProps: inProps => useThemeProps({\n props: inProps,\n name: 'MuiContainer'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nimport { inputBaseClasses } from '../InputBase';\nexport function getFilledInputUtilityClass(slot) {\n return generateUtilityClass('MuiFilledInput', slot);\n}\nconst filledInputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiFilledInput', ['root', 'underline', 'input']));\nexport default filledInputClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableUnderline\", \"components\", \"componentsProps\", \"fullWidth\", \"hiddenLabel\", \"inputComponent\", \"multiline\", \"slotProps\", \"slots\", \"type\"];\nimport * as React from 'react';\nimport { refType, deepmerge } from '@mui/utils';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport InputBase from '../InputBase';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport filledInputClasses, { getFilledInputUtilityClass } from './filledInputClasses';\nimport { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseComponent as InputBaseInput } from '../InputBase/InputBase';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableUnderline\n } = ownerState;\n const slots = {\n root: ['root', !disableUnderline && 'underline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getFilledInputUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst FilledInputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiFilledInput',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [...inputBaseRootOverridesResolver(props, styles), !ownerState.disableUnderline && styles.underline];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _palette;\n const light = theme.palette.mode === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n const backgroundColor = light ? 'rgba(0, 0, 0, 0.06)' : 'rgba(255, 255, 255, 0.09)';\n const hoverBackground = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.13)';\n const disabledBackground = light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)';\n return _extends({\n position: 'relative',\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor,\n borderTopLeftRadius: (theme.vars || theme).shape.borderRadius,\n borderTopRightRadius: (theme.vars || theme).shape.borderRadius,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n '&:hover': {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.hoverBg : hoverBackground,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor\n }\n },\n [`&.${filledInputClasses.focused}`]: {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.bg : backgroundColor\n },\n [`&.${filledInputClasses.disabled}`]: {\n backgroundColor: theme.vars ? theme.vars.palette.FilledInput.disabledBg : disabledBackground\n }\n }, !ownerState.disableUnderline && {\n '&:after': {\n borderBottom: `2px solid ${(_palette = (theme.vars || theme).palette[ownerState.color || 'primary']) == null ? void 0 : _palette.main}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n\n [`&.${filledInputClasses.focused}:after`]: {\n // translateX(0) is a workaround for Safari transform scale bug\n // See https://github.com/mui/material-ui/issues/31766\n transform: 'scaleX(1) translateX(0)'\n },\n [`&.${filledInputClasses.error}`]: {\n '&:before, &:after': {\n borderBottomColor: (theme.vars || theme).palette.error.main\n }\n },\n '&:before': {\n borderBottom: `1px solid ${theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / ${theme.vars.opacity.inputUnderline})` : bottomLineColor}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter\n }),\n pointerEvents: 'none' // Transparent to the hover style.\n },\n\n [`&:hover:not(.${filledInputClasses.disabled}, .${filledInputClasses.error}):before`]: {\n borderBottom: `1px solid ${(theme.vars || theme).palette.text.primary}`\n },\n [`&.${filledInputClasses.disabled}:before`]: {\n borderBottomStyle: 'dotted'\n }\n }, ownerState.startAdornment && {\n paddingLeft: 12\n }, ownerState.endAdornment && {\n paddingRight: 12\n }, ownerState.multiline && _extends({\n padding: '25px 12px 8px'\n }, ownerState.size === 'small' && {\n paddingTop: 21,\n paddingBottom: 4\n }, ownerState.hiddenLabel && {\n paddingTop: 16,\n paddingBottom: 17\n }));\n});\nconst FilledInputInput = styled(InputBaseInput, {\n name: 'MuiFilledInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n paddingTop: 25,\n paddingRight: 12,\n paddingBottom: 8,\n paddingLeft: 12\n}, !theme.vars && {\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',\n caretColor: theme.palette.mode === 'light' ? null : '#fff',\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit'\n }\n}, theme.vars && {\n '&:-webkit-autofill': {\n borderTopLeftRadius: 'inherit',\n borderTopRightRadius: 'inherit'\n },\n [theme.getColorSchemeSelector('dark')]: {\n '&:-webkit-autofill': {\n WebkitBoxShadow: '0 0 0 100px #266798 inset',\n WebkitTextFillColor: '#fff',\n caretColor: '#fff'\n }\n }\n}, ownerState.size === 'small' && {\n paddingTop: 21,\n paddingBottom: 4\n}, ownerState.hiddenLabel && {\n paddingTop: 16,\n paddingBottom: 17\n}, ownerState.multiline && {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0\n}, ownerState.startAdornment && {\n paddingLeft: 0\n}, ownerState.endAdornment && {\n paddingRight: 0\n}, ownerState.hiddenLabel && ownerState.size === 'small' && {\n paddingTop: 8,\n paddingBottom: 9\n}));\nconst FilledInput = /*#__PURE__*/React.forwardRef(function FilledInput(inProps, ref) {\n var _ref, _slots$root, _ref2, _slots$input;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFilledInput'\n });\n const {\n components = {},\n componentsProps: componentsPropsProp,\n fullWidth = false,\n // declare here to prevent spreading to DOM\n inputComponent = 'input',\n multiline = false,\n slotProps,\n slots = {},\n type = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n fullWidth,\n inputComponent,\n multiline,\n type\n });\n const classes = useUtilityClasses(props);\n const filledInputComponentsProps = {\n root: {\n ownerState\n },\n input: {\n ownerState\n }\n };\n const componentsProps = (slotProps != null ? slotProps : componentsPropsProp) ? deepmerge(slotProps != null ? slotProps : componentsPropsProp, filledInputComponentsProps) : filledInputComponentsProps;\n const RootSlot = (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : FilledInputRoot;\n const InputSlot = (_ref2 = (_slots$input = slots.input) != null ? _slots$input : components.Input) != null ? _ref2 : FilledInputInput;\n return /*#__PURE__*/_jsx(InputBase, _extends({\n slots: {\n root: RootSlot,\n input: InputSlot\n },\n componentsProps: componentsProps,\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FilledInput.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the input will not have an underline.\n */\n disableUnderline: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.object,\n root: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nFilledInput.muiName = 'Input';\nexport default FilledInput;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _span;\nconst _excluded = [\"children\", \"classes\", \"className\", \"label\", \"notched\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '../styles/styled';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst NotchedOutlineRoot = styled('fieldset')({\n textAlign: 'left',\n position: 'absolute',\n bottom: 0,\n right: 0,\n top: -5,\n left: 0,\n margin: 0,\n padding: '0 8px',\n pointerEvents: 'none',\n borderRadius: 'inherit',\n borderStyle: 'solid',\n borderWidth: 1,\n overflow: 'hidden',\n minWidth: '0%'\n});\nconst NotchedOutlineLegend = styled('legend')(({\n ownerState,\n theme\n}) => _extends({\n float: 'unset',\n // Fix conflict with bootstrap\n width: 'auto',\n // Fix conflict with bootstrap\n overflow: 'hidden'\n}, !ownerState.withLabel && {\n padding: 0,\n lineHeight: '11px',\n // sync with `height` in `legend` styles\n transition: theme.transitions.create('width', {\n duration: 150,\n easing: theme.transitions.easing.easeOut\n })\n}, ownerState.withLabel && _extends({\n display: 'block',\n // Fix conflict with normalize.css and sanitize.css\n padding: 0,\n height: 11,\n // sync with `lineHeight` in `legend` styles\n fontSize: '0.75em',\n visibility: 'hidden',\n maxWidth: 0.01,\n transition: theme.transitions.create('max-width', {\n duration: 50,\n easing: theme.transitions.easing.easeOut\n }),\n whiteSpace: 'nowrap',\n '& > span': {\n paddingLeft: 5,\n paddingRight: 5,\n display: 'inline-block',\n opacity: 0,\n visibility: 'visible'\n }\n}, ownerState.notched && {\n maxWidth: '100%',\n transition: theme.transitions.create('max-width', {\n duration: 100,\n easing: theme.transitions.easing.easeOut,\n delay: 50\n })\n})));\n\n/**\n * @ignore - internal component.\n */\nexport default function NotchedOutline(props) {\n const {\n className,\n label,\n notched\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const withLabel = label != null && label !== '';\n const ownerState = _extends({}, props, {\n notched,\n withLabel\n });\n return /*#__PURE__*/_jsx(NotchedOutlineRoot, _extends({\n \"aria-hidden\": true,\n className: className,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(NotchedOutlineLegend, {\n ownerState: ownerState,\n children: withLabel ? /*#__PURE__*/_jsx(\"span\", {\n children: label\n }) : // notranslate needed while Google Translate will not fix zero-width space issue\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n }))\n })\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? NotchedOutline.propTypes = {\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The label.\n */\n label: PropTypes.node,\n /**\n * If `true`, the outline is notched to accommodate the label.\n */\n notched: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n style: PropTypes.object\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nimport { inputBaseClasses } from '../InputBase';\nexport function getOutlinedInputUtilityClass(slot) {\n return generateUtilityClass('MuiOutlinedInput', slot);\n}\nconst outlinedInputClasses = _extends({}, inputBaseClasses, generateUtilityClasses('MuiOutlinedInput', ['root', 'notchedOutline', 'input']));\nexport default outlinedInputClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"components\", \"fullWidth\", \"inputComponent\", \"label\", \"multiline\", \"notched\", \"slots\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport NotchedOutline from './NotchedOutline';\nimport useFormControl from '../FormControl/useFormControl';\nimport formControlState from '../FormControl/formControlState';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport outlinedInputClasses, { getOutlinedInputUtilityClass } from './outlinedInputClasses';\nimport InputBase, { rootOverridesResolver as inputBaseRootOverridesResolver, inputOverridesResolver as inputBaseInputOverridesResolver, InputBaseRoot, InputBaseComponent as InputBaseInput } from '../InputBase/InputBase';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n notchedOutline: ['notchedOutline'],\n input: ['input']\n };\n const composedClasses = composeClasses(slots, getOutlinedInputUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\nconst OutlinedInputRoot = styled(InputBaseRoot, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiOutlinedInput',\n slot: 'Root',\n overridesResolver: inputBaseRootOverridesResolver\n})(({\n theme,\n ownerState\n}) => {\n const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';\n return _extends({\n position: 'relative',\n borderRadius: (theme.vars || theme).shape.borderRadius,\n [`&:hover .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette.text.primary\n },\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n [`&:hover .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor\n }\n },\n [`&.${outlinedInputClasses.focused} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette[ownerState.color].main,\n borderWidth: 2\n },\n [`&.${outlinedInputClasses.error} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette.error.main\n },\n [`&.${outlinedInputClasses.disabled} .${outlinedInputClasses.notchedOutline}`]: {\n borderColor: (theme.vars || theme).palette.action.disabled\n }\n }, ownerState.startAdornment && {\n paddingLeft: 14\n }, ownerState.endAdornment && {\n paddingRight: 14\n }, ownerState.multiline && _extends({\n padding: '16.5px 14px'\n }, ownerState.size === 'small' && {\n padding: '8.5px 14px'\n }));\n});\nconst NotchedOutlineRoot = styled(NotchedOutline, {\n name: 'MuiOutlinedInput',\n slot: 'NotchedOutline',\n overridesResolver: (props, styles) => styles.notchedOutline\n})(({\n theme\n}) => {\n const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';\n return {\n borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor\n };\n});\nconst OutlinedInputInput = styled(InputBaseInput, {\n name: 'MuiOutlinedInput',\n slot: 'Input',\n overridesResolver: inputBaseInputOverridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n padding: '16.5px 14px'\n}, !theme.vars && {\n '&:-webkit-autofill': {\n WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',\n WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',\n caretColor: theme.palette.mode === 'light' ? null : '#fff',\n borderRadius: 'inherit'\n }\n}, theme.vars && {\n '&:-webkit-autofill': {\n borderRadius: 'inherit'\n },\n [theme.getColorSchemeSelector('dark')]: {\n '&:-webkit-autofill': {\n WebkitBoxShadow: '0 0 0 100px #266798 inset',\n WebkitTextFillColor: '#fff',\n caretColor: '#fff'\n }\n }\n}, ownerState.size === 'small' && {\n padding: '8.5px 14px'\n}, ownerState.multiline && {\n padding: 0\n}, ownerState.startAdornment && {\n paddingLeft: 0\n}, ownerState.endAdornment && {\n paddingRight: 0\n}));\nconst OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inProps, ref) {\n var _ref, _slots$root, _ref2, _slots$input, _React$Fragment;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiOutlinedInput'\n });\n const {\n components = {},\n fullWidth = false,\n inputComponent = 'input',\n label,\n multiline = false,\n notched,\n slots = {},\n type = 'text'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const classes = useUtilityClasses(props);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['required']\n });\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n disabled: fcs.disabled,\n error: fcs.error,\n focused: fcs.focused,\n formControl: muiFormControl,\n fullWidth,\n hiddenLabel: fcs.hiddenLabel,\n multiline,\n size: fcs.size,\n type\n });\n const RootSlot = (_ref = (_slots$root = slots.root) != null ? _slots$root : components.Root) != null ? _ref : OutlinedInputRoot;\n const InputSlot = (_ref2 = (_slots$input = slots.input) != null ? _slots$input : components.Input) != null ? _ref2 : OutlinedInputInput;\n return /*#__PURE__*/_jsx(InputBase, _extends({\n slots: {\n root: RootSlot,\n input: InputSlot\n },\n renderSuffix: state => /*#__PURE__*/_jsx(NotchedOutlineRoot, {\n ownerState: ownerState,\n className: classes.notchedOutline,\n label: label != null && label !== '' && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [label, \"\\u2009\", '*']\n })) : label,\n notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)\n }),\n fullWidth: fullWidth,\n inputComponent: inputComponent,\n multiline: multiline,\n ref: ref,\n type: type\n }, other, {\n classes: _extends({}, classes, {\n notchedOutline: null\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? OutlinedInput.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * The prop defaults to the value (`'primary'`) inherited from the parent FormControl component.\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Root: PropTypes.elementType\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n disabled: PropTypes.bool,\n /**\n * End `InputAdornment` for this component.\n */\n endAdornment: PropTypes.node,\n /**\n * If `true`, the `input` will indicate an error.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * The component used for the `input` element.\n * Either a string to use a HTML element or a component.\n * @default 'input'\n */\n inputComponent: PropTypes.elementType,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n * @default {}\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label of the `input`. It is only used for layout. The actual labelling\n * is handled by `InputLabel`.\n */\n label: PropTypes.node,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n * The prop defaults to the value (`'none'`) inherited from the parent FormControl component.\n */\n margin: PropTypes.oneOf(['dense', 'none']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a [TextareaAutosize](/material-ui/react-textarea-autosize/) element is rendered.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * If `true`, the outline is notched to accommodate the label.\n */\n notched: PropTypes.bool,\n /**\n * Callback fired when the value is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n * The prop defaults to the value (`false`) inherited from the parent FormControl component.\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n root: PropTypes.elementType\n }),\n /**\n * Start `InputAdornment` for this component.\n */\n startAdornment: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n * @default 'text'\n */\n type: PropTypes.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any\n} : void 0;\nOutlinedInput.muiName = 'Input';\nexport default OutlinedInput;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormLabel', slot);\n}\nconst formLabelClasses = generateUtilityClasses('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);\nexport default formLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport formLabelClasses, { getFormLabelUtilityClasses } from './formLabelClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n focused,\n disabled,\n error,\n filled,\n required\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormLabelUtilityClasses, classes);\n};\nexport const FormLabelRoot = styled('label', {\n name: 'MuiFormLabel',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, ownerState.color === 'secondary' && styles.colorSecondary, ownerState.filled && styles.filled);\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, theme.typography.body1, {\n lineHeight: '1.4375em',\n padding: 0,\n position: 'relative',\n [`&.${formLabelClasses.focused}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n },\n [`&.${formLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(({\n theme\n}) => ({\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormLabel'\n });\n const {\n children,\n className,\n component = 'label'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n });\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n component,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormLabelRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [children, fcs.required && /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormLabel.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the label should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the label should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the input of this label is focused (used by `FormGroup` components).\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default FormLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getInputLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiInputLabel', slot);\n}\nconst inputLabelClasses = generateUtilityClasses('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);\nexport default inputLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableAnimation\", \"margin\", \"shrink\", \"variant\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport clsx from 'clsx';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport FormLabel, { formLabelClasses } from '../FormLabel';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getInputLabelUtilityClasses } from './inputLabelClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n formControl,\n size,\n shrink,\n disableAnimation,\n variant,\n required\n } = ownerState;\n const slots = {\n root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size === 'small' && 'sizeSmall', variant],\n asterisk: [required && 'asterisk']\n };\n const composedClasses = composeClasses(slots, getInputLabelUtilityClasses, classes);\n return _extends({}, classes, composedClasses);\n};\nconst InputLabelRoot = styled(FormLabel, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInputLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formLabelClasses.asterisk}`]: styles.asterisk\n }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'block',\n transformOrigin: 'top left',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%'\n}, ownerState.formControl && {\n position: 'absolute',\n left: 0,\n top: 0,\n // slight alteration to spec spacing to match visual spec result\n transform: 'translate(0, 20px) scale(1)'\n}, ownerState.size === 'small' && {\n // Compensation for the `Input.inputSizeSmall` style.\n transform: 'translate(0, 17px) scale(1)'\n}, ownerState.shrink && {\n transform: 'translate(0, -1.5px) scale(0.75)',\n transformOrigin: 'top left',\n maxWidth: '133%'\n}, !ownerState.disableAnimation && {\n transition: theme.transitions.create(['color', 'transform', 'max-width'], {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n })\n}, ownerState.variant === 'filled' && _extends({\n // Chrome's autofill feature gives the input field a yellow background.\n // Since the input field is behind the label in the HTML tree,\n // the input field is drawn last and hides the label with an opaque background color.\n // zIndex: 1 will raise the label above opaque background-colors of input.\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(12px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 13px) scale(1)'\n}, ownerState.shrink && _extends({\n userSelect: 'none',\n pointerEvents: 'auto',\n transform: 'translate(12px, 7px) scale(0.75)',\n maxWidth: 'calc(133% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 4px) scale(0.75)'\n})), ownerState.variant === 'outlined' && _extends({\n // see comment above on filled.zIndex\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(14px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(14px, 9px) scale(1)'\n}, ownerState.shrink && {\n userSelect: 'none',\n pointerEvents: 'auto',\n // Theoretically, we should have (8+5)*2/0.75 = 34px\n // but it feels a better when it bleeds a bit on the left, so 32px.\n maxWidth: 'calc(133% - 32px)',\n transform: 'translate(14px, -9px) scale(0.75)'\n})));\nconst InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, ref) {\n const props = useThemeProps({\n name: 'MuiInputLabel',\n props: inProps\n });\n const {\n disableAnimation = false,\n shrink: shrinkProp,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n let shrink = shrinkProp;\n if (typeof shrink === 'undefined' && muiFormControl) {\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['size', 'variant', 'required']\n });\n const ownerState = _extends({}, props, {\n disableAnimation,\n formControl: muiFormControl,\n shrink,\n size: fcs.size,\n variant: fcs.variant,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(InputLabelRoot, _extends({\n \"data-shrink\": shrink,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputLabel.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the transition animation is disabled.\n * @default false\n */\n disableAnimation: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` of this label is focused.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * if `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * If `true`, the label is shrunk.\n */\n shrink: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'normal'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['normal', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormControlUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControl', slot);\n}\nconst formControlClasses = generateUtilityClasses('MuiFormControl', ['root', 'marginNone', 'marginNormal', 'marginDense', 'fullWidth', 'disabled']);\nexport default formControlClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"focused\", \"fullWidth\", \"hiddenLabel\", \"margin\", \"required\", \"size\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { isFilled, isAdornedStart } from '../InputBase/utils';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport FormControlContext from './FormControlContext';\nimport { getFormControlUtilityClasses } from './formControlClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n margin,\n fullWidth\n } = ownerState;\n const slots = {\n root: ['root', margin !== 'none' && `margin${capitalize(margin)}`, fullWidth && 'fullWidth']\n };\n return composeClasses(slots, getFormControlUtilityClasses, classes);\n};\nconst FormControlRoot = styled('div', {\n name: 'MuiFormControl',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, styles[`margin${capitalize(ownerState.margin)}`], ownerState.fullWidth && styles.fullWidth);\n }\n})(({\n ownerState\n}) => _extends({\n display: 'inline-flex',\n flexDirection: 'column',\n position: 'relative',\n // Reset fieldset default style.\n minWidth: 0,\n padding: 0,\n margin: 0,\n border: 0,\n verticalAlign: 'top'\n}, ownerState.margin === 'normal' && {\n marginTop: 16,\n marginBottom: 8\n}, ownerState.margin === 'dense' && {\n marginTop: 8,\n marginBottom: 4\n}, ownerState.fullWidth && {\n width: '100%'\n}));\n\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * - FormLabel\n * - FormHelperText\n * - Input\n * - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/material-ui/react-text-field/#components).\n *\n * ```jsx\n * \n * Email address\n * \n * We'll never share your email.\n * \n * ```\n *\n * ⚠️ Only one `InputBase` can be used within a FormControl because it creates visual inconsistencies.\n * For instance, only one input can be focused at the same time, the state shouldn't be shared.\n */\nconst FormControl = /*#__PURE__*/React.forwardRef(function FormControl(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormControl'\n });\n const {\n children,\n className,\n color = 'primary',\n component = 'div',\n disabled = false,\n error = false,\n focused: visuallyFocused,\n fullWidth = false,\n hiddenLabel = false,\n margin = 'none',\n required = false,\n size = 'medium',\n variant = 'outlined'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n disabled,\n error,\n fullWidth,\n hiddenLabel,\n margin,\n required,\n size,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const [adornedStart, setAdornedStart] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialAdornedStart = false;\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n const input = isMuiElement(child, ['Select']) ? child.props.input : child;\n if (input && isAdornedStart(input.props)) {\n initialAdornedStart = true;\n }\n });\n }\n return initialAdornedStart;\n });\n const [filled, setFilled] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialFilled = false;\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n if (isFilled(child.props, true) || isFilled(child.props.inputProps, true)) {\n initialFilled = true;\n }\n });\n }\n return initialFilled;\n });\n const [focusedState, setFocused] = React.useState(false);\n if (disabled && focusedState) {\n setFocused(false);\n }\n const focused = visuallyFocused !== undefined && !disabled ? visuallyFocused : focusedState;\n let registerEffect;\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const registeredInput = React.useRef(false);\n registerEffect = () => {\n if (registeredInput.current) {\n console.error(['MUI: There are multiple `InputBase` components inside a FormControl.', 'This creates visual inconsistencies, only use one `InputBase`.'].join('\\n'));\n }\n registeredInput.current = true;\n return () => {\n registeredInput.current = false;\n };\n };\n }\n const childContext = React.useMemo(() => {\n return {\n adornedStart,\n setAdornedStart,\n color,\n disabled,\n error,\n filled,\n focused,\n fullWidth,\n hiddenLabel,\n size,\n onBlur: () => {\n setFocused(false);\n },\n onEmpty: () => {\n setFilled(false);\n },\n onFilled: () => {\n setFilled(true);\n },\n onFocus: () => {\n setFocused(true);\n },\n registerEffect,\n required,\n variant\n };\n }, [adornedStart, color, disabled, error, filled, focused, fullWidth, hiddenLabel, registerEffect, required, size, variant]);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(FormControlRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the label, input and helper text should be displayed in a disabled state.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the component will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * If `true`, the label will indicate that the `input` is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default FormControl;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormHelperTextUtilityClasses(slot) {\n return generateUtilityClass('MuiFormHelperText', slot);\n}\nconst formHelperTextClasses = generateUtilityClasses('MuiFormHelperText', ['root', 'error', 'disabled', 'sizeSmall', 'sizeMedium', 'contained', 'focused', 'filled', 'required']);\nexport default formHelperTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _span;\nconst _excluded = [\"children\", \"className\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"margin\", \"required\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport capitalize from '../utils/capitalize';\nimport formHelperTextClasses, { getFormHelperTextUtilityClasses } from './formHelperTextClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n contained,\n size,\n disabled,\n error,\n filled,\n focused,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', size && `size${capitalize(size)}`, contained && 'contained', focused && 'focused', filled && 'filled', required && 'required']\n };\n return composeClasses(slots, getFormHelperTextUtilityClasses, classes);\n};\nconst FormHelperTextRoot = styled('p', {\n name: 'MuiFormHelperText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.size && styles[`size${capitalize(ownerState.size)}`], ownerState.contained && styles.contained, ownerState.filled && styles.filled];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, theme.typography.caption, {\n textAlign: 'left',\n marginTop: 3,\n marginRight: 0,\n marginBottom: 0,\n marginLeft: 0,\n [`&.${formHelperTextClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formHelperTextClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}, ownerState.size === 'small' && {\n marginTop: 4\n}, ownerState.contained && {\n marginLeft: 14,\n marginRight: 14\n}));\nconst FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormHelperText'\n });\n const {\n children,\n className,\n component = 'p'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['variant', 'size', 'disabled', 'error', 'filled', 'focused', 'required']\n });\n const ownerState = _extends({}, props, {\n component,\n contained: fcs.variant === 'filled' || fcs.variant === 'outlined',\n variant: fcs.variant,\n size: fcs.size,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormHelperTextRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children === ' ' ? // notranslate needed while Google Translate will not fix zero-width space issue\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormHelperText.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n *\n * If `' '` is provided, the component reserves one line height for displaying a future message.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the helper text should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, helper text should be displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the helper text should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the helper text should use focused classes key.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * If `true`, the helper text should use required classes key.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])\n} : void 0;\nexport default FormHelperText;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst ListContext = /*#__PURE__*/React.createContext({});\nif (process.env.NODE_ENV !== 'production') {\n ListContext.displayName = 'ListContext';\n}\nexport default ListContext;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getListUtilityClass(slot) {\n return generateUtilityClass('MuiList', slot);\n}\nconst listClasses = generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);\nexport default listClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"component\", \"dense\", \"disablePadding\", \"subheader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ListContext from './ListContext';\nimport { getListUtilityClass } from './listClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePadding,\n dense,\n subheader\n } = ownerState;\n const slots = {\n root: ['root', !disablePadding && 'padding', dense && 'dense', subheader && 'subheader']\n };\n return composeClasses(slots, getListUtilityClass, classes);\n};\nconst ListRoot = styled('ul', {\n name: 'MuiList',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disablePadding && styles.padding, ownerState.dense && styles.dense, ownerState.subheader && styles.subheader];\n }\n})(({\n ownerState\n}) => _extends({\n listStyle: 'none',\n margin: 0,\n padding: 0,\n position: 'relative'\n}, !ownerState.disablePadding && {\n paddingTop: 8,\n paddingBottom: 8\n}, ownerState.subheader && {\n paddingTop: 0\n}));\nconst List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiList'\n });\n const {\n children,\n className,\n component = 'ul',\n dense = false,\n disablePadding = false,\n subheader\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const context = React.useMemo(() => ({\n dense\n }), [dense]);\n const ownerState = _extends({}, props, {\n component,\n dense,\n disablePadding\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListContext.Provider, {\n value: context,\n children: /*#__PURE__*/_jsxs(ListRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: [subheader, children]\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? List.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, compact vertical padding designed for keyboard and mouse input is used for\n * the list and list items.\n * The prop is available to descendant components as the `dense` context.\n * @default false\n */\n dense: PropTypes.bool,\n /**\n * If `true`, vertical padding is removed from the list.\n * @default false\n */\n disablePadding: PropTypes.bool,\n /**\n * The content of the subheader, normally `ListSubheader`.\n */\n subheader: PropTypes.node,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default List;","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18\nexport default function getScrollbarSize(doc) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = doc.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}","import { unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\nexport default getScrollbarSize;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"actions\", \"autoFocus\", \"autoFocusItem\", \"children\", \"className\", \"disabledItemsFocusable\", \"disableListWrap\", \"onKeyDown\", \"variant\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport ownerDocument from '../utils/ownerDocument';\nimport List from '../List';\nimport getScrollbarSize from '../utils/getScrollbarSize';\nimport useForkRef from '../utils/useForkRef';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction nextItem(list, item, disableListWrap) {\n if (list === item) {\n return list.firstChild;\n }\n if (item && item.nextElementSibling) {\n return item.nextElementSibling;\n }\n return disableListWrap ? null : list.firstChild;\n}\nfunction previousItem(list, item, disableListWrap) {\n if (list === item) {\n return disableListWrap ? list.firstChild : list.lastChild;\n }\n if (item && item.previousElementSibling) {\n return item.previousElementSibling;\n }\n return disableListWrap ? null : list.lastChild;\n}\nfunction textCriteriaMatches(nextFocus, textCriteria) {\n if (textCriteria === undefined) {\n return true;\n }\n let text = nextFocus.innerText;\n if (text === undefined) {\n // jsdom doesn't support innerText\n text = nextFocus.textContent;\n }\n text = text.trim().toLowerCase();\n if (text.length === 0) {\n return false;\n }\n if (textCriteria.repeating) {\n return text[0] === textCriteria.keys[0];\n }\n return text.indexOf(textCriteria.keys.join('')) === 0;\n}\nfunction moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {\n let wrappedOnce = false;\n let nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);\n while (nextFocus) {\n // Prevent infinite loop.\n if (nextFocus === list.firstChild) {\n if (wrappedOnce) {\n return false;\n }\n wrappedOnce = true;\n }\n\n // Same logic as useAutocomplete.js\n const nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';\n if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {\n // Move to the next element.\n nextFocus = traversalFunction(list, nextFocus, disableListWrap);\n } else {\n nextFocus.focus();\n return true;\n }\n }\n return false;\n}\n\n/**\n * A permanently displayed menu following https://www.w3.org/WAI/ARIA/apg/patterns/menu-button/.\n * It's exposed to help customization of the [`Menu`](/material-ui/api/menu/) component if you\n * use it separately you need to move focus into the component manually. Once\n * the focus is placed inside the component it is fully keyboard accessible.\n */\nconst MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {\n const {\n // private\n // eslint-disable-next-line react/prop-types\n actions,\n autoFocus = false,\n autoFocusItem = false,\n children,\n className,\n disabledItemsFocusable = false,\n disableListWrap = false,\n onKeyDown,\n variant = 'selectedMenu'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const listRef = React.useRef(null);\n const textCriteriaRef = React.useRef({\n keys: [],\n repeating: true,\n previousKeyMatched: true,\n lastTime: null\n });\n useEnhancedEffect(() => {\n if (autoFocus) {\n listRef.current.focus();\n }\n }, [autoFocus]);\n React.useImperativeHandle(actions, () => ({\n adjustStyleForScrollbar: (containerElement, theme) => {\n // Let's ignore that piece of logic if users are already overriding the width\n // of the menu.\n const noExplicitWidth = !listRef.current.style.width;\n if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {\n const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;\n listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;\n listRef.current.style.width = `calc(100% + ${scrollbarSize})`;\n }\n return listRef.current;\n }\n }), []);\n const handleKeyDown = event => {\n const list = listRef.current;\n const key = event.key;\n /**\n * @type {Element} - will always be defined since we are in a keydown handler\n * attached to an element. A keydown event is either dispatched to the activeElement\n * or document.body or document.documentElement. Only the first case will\n * trigger this specific handler.\n */\n const currentFocus = ownerDocument(list).activeElement;\n if (key === 'ArrowDown') {\n // Prevent scroll of the page\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'ArrowUp') {\n event.preventDefault();\n moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key === 'Home') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);\n } else if (key === 'End') {\n event.preventDefault();\n moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);\n } else if (key.length === 1) {\n const criteria = textCriteriaRef.current;\n const lowerKey = key.toLowerCase();\n const currTime = performance.now();\n if (criteria.keys.length > 0) {\n // Reset\n if (currTime - criteria.lastTime > 500) {\n criteria.keys = [];\n criteria.repeating = true;\n criteria.previousKeyMatched = true;\n } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {\n criteria.repeating = false;\n }\n }\n criteria.lastTime = currTime;\n criteria.keys.push(lowerKey);\n const keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);\n if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {\n event.preventDefault();\n } else {\n criteria.previousKeyMatched = false;\n }\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n const handleRef = useForkRef(listRef, ref);\n\n /**\n * the index of the item should receive focus\n * in a `variant=\"selectedMenu\"` it's the first `selected` item\n * otherwise it's the very first item.\n */\n let activeItemIndex = -1;\n // since we inject focus related props into children we have to do a lookahead\n // to check if there is a `selected` item. We're looking for the last `selected`\n // item and use the first valid item as a fallback\n React.Children.forEach(children, (child, index) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The Menu component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n if (!child.props.disabled) {\n if (variant === 'selectedMenu' && child.props.selected) {\n activeItemIndex = index;\n } else if (activeItemIndex === -1) {\n activeItemIndex = index;\n }\n }\n if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {\n activeItemIndex += 1;\n if (activeItemIndex >= children.length) {\n // there are no focusable items within the list.\n activeItemIndex = -1;\n }\n }\n });\n const items = React.Children.map(children, (child, index) => {\n if (index === activeItemIndex) {\n const newChildProps = {};\n if (autoFocusItem) {\n newChildProps.autoFocus = true;\n }\n if (child.props.tabIndex === undefined && variant === 'selectedMenu') {\n newChildProps.tabIndex = 0;\n }\n return /*#__PURE__*/React.cloneElement(child, newChildProps);\n }\n return child;\n });\n return /*#__PURE__*/_jsx(List, _extends({\n role: \"menu\",\n ref: handleRef,\n className: className,\n onKeyDown: handleKeyDown,\n tabIndex: autoFocus ? 0 : -1\n }, other, {\n children: items\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MenuList.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, will focus the `[role=\"menu\"]` container and move into tab order.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, will focus the first menuitem if `variant=\"menu\"` or selected item\n * if `variant=\"selectedMenu\"`.\n * @default false\n */\n autoFocusItem: PropTypes.bool,\n /**\n * MenuList contents, normally `MenuItem`s.\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * If `true`, the menu items will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The variant to use. Use `menu` to prevent selected items from impacting the initial focus\n * and the vertical alignment relative to the anchor element.\n * @default 'selectedMenu'\n */\n variant: PropTypes.oneOf(['menu', 'selectedMenu'])\n} : void 0;\nexport default MenuList;","// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\nconst getOverlayAlpha = elevation => {\n let alphaValue;\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n return (alphaValue / 100).toFixed(2);\n};\nexport default getOverlayAlpha;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getPaperUtilityClass(slot) {\n return generateUtilityClass('MuiPaper', slot);\n}\nconst paperClasses = generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);\nexport default paperClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"elevation\", \"square\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport getOverlayAlpha from '../styles/getOverlayAlpha';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport { getPaperUtilityClass } from './paperClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n square,\n elevation,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, !square && 'rounded', variant === 'elevation' && `elevation${elevation}`]\n };\n return composeClasses(slots, getPaperUtilityClass, classes);\n};\nconst PaperRoot = styled('div', {\n name: 'MuiPaper',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], !ownerState.square && styles.rounded, ownerState.variant === 'elevation' && styles[`elevation${ownerState.elevation}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n var _theme$vars$overlays;\n return _extends({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n color: (theme.vars || theme).palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n }, !ownerState.square && {\n borderRadius: theme.shape.borderRadius\n }, ownerState.variant === 'outlined' && {\n border: `1px solid ${(theme.vars || theme).palette.divider}`\n }, ownerState.variant === 'elevation' && _extends({\n boxShadow: (theme.vars || theme).shadows[ownerState.elevation]\n }, !theme.vars && theme.palette.mode === 'dark' && {\n backgroundImage: `linear-gradient(${alpha('#fff', getOverlayAlpha(ownerState.elevation))}, ${alpha('#fff', getOverlayAlpha(ownerState.elevation))})`\n }, theme.vars && {\n backgroundImage: (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[ownerState.elevation]\n }));\n});\nconst Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPaper'\n });\n const {\n className,\n component = 'div',\n elevation = 1,\n square = false,\n variant = 'elevation'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n elevation,\n square,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const theme = useTheme();\n if (theme.shadows[elevation] === undefined) {\n console.error([`MUI: The elevation provided is not available in the theme.`, `Please make sure that \\`theme.shadows[${elevation}]\\` is defined.`].join('\\n'));\n }\n }\n return /*#__PURE__*/_jsx(PaperRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n * @default 1\n */\n elevation: chainPropTypes(integerPropType, props => {\n const {\n elevation,\n variant\n } = props;\n if (elevation > 0 && variant === 'outlined') {\n return new Error(`MUI: Combining \\`elevation={${elevation}}\\` with \\`variant=\"${variant}\"\\` has no effect. Either use \\`elevation={0}\\` or use a different \\`variant\\`.`);\n }\n return null;\n }),\n /**\n * If `true`, rounded corners are disabled.\n * @default false\n */\n square: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'elevation'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['elevation', 'outlined']), PropTypes.string])\n} : void 0;\nexport default Paper;","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme[THEME_ID] || theme;\n}","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"addEndListener\", \"appear\", \"children\", \"easing\", \"in\", \"onEnter\", \"onEntered\", \"onEntering\", \"onExit\", \"onExited\", \"onExiting\", \"style\", \"timeout\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { Transition } from 'react-transition-group';\nimport useTheme from '../styles/useTheme';\nimport { getTransitionProps, reflow } from '../transitions/utils';\nimport useForkRef from '../utils/useForkRef';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getScale(value) {\n return `scale(${value}, ${value ** 2})`;\n}\nconst styles = {\n entering: {\n opacity: 1,\n transform: getScale(1)\n },\n entered: {\n opacity: 1,\n transform: 'none'\n }\n};\n\n/*\n TODO v6: remove\n Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.\n */\nconst isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\\/)15(.|_)4/i.test(navigator.userAgent);\n\n/**\n * The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and\n * [Popover](/material-ui/react-popover/) components.\n * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.\n */\nconst Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {\n const {\n addEndListener,\n appear = true,\n children,\n easing,\n in: inProp,\n onEnter,\n onEntered,\n onEntering,\n onExit,\n onExited,\n onExiting,\n style,\n timeout = 'auto',\n // eslint-disable-next-line react/prop-types\n TransitionComponent = Transition\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const timer = React.useRef();\n const autoTimeout = React.useRef();\n const theme = useTheme();\n const nodeRef = React.useRef(null);\n const handleRef = useForkRef(nodeRef, children.ref, ref);\n const normalizedTransitionCallback = callback => maybeIsAppearing => {\n if (callback) {\n const node = nodeRef.current;\n\n // onEnterXxx and onExitXxx callbacks have a different arguments.length value.\n if (maybeIsAppearing === undefined) {\n callback(node);\n } else {\n callback(node, maybeIsAppearing);\n }\n }\n };\n const handleEntering = normalizedTransitionCallback(onEntering);\n const handleEnter = normalizedTransitionCallback((node, isAppearing) => {\n reflow(node); // So the animation always start from the start.\n\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'enter'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay,\n easing: transitionTimingFunction\n })].join(',');\n if (onEnter) {\n onEnter(node, isAppearing);\n }\n });\n const handleEntered = normalizedTransitionCallback(onEntered);\n const handleExiting = normalizedTransitionCallback(onExiting);\n const handleExit = normalizedTransitionCallback(node => {\n const {\n duration: transitionDuration,\n delay,\n easing: transitionTimingFunction\n } = getTransitionProps({\n style,\n timeout,\n easing\n }, {\n mode: 'exit'\n });\n let duration;\n if (timeout === 'auto') {\n duration = theme.transitions.getAutoHeightDuration(node.clientHeight);\n autoTimeout.current = duration;\n } else {\n duration = transitionDuration;\n }\n node.style.transition = [theme.transitions.create('opacity', {\n duration,\n delay\n }), theme.transitions.create('transform', {\n duration: isWebKit154 ? duration : duration * 0.666,\n delay: isWebKit154 ? delay : delay || duration * 0.333,\n easing: transitionTimingFunction\n })].join(',');\n node.style.opacity = 0;\n node.style.transform = getScale(0.75);\n if (onExit) {\n onExit(node);\n }\n });\n const handleExited = normalizedTransitionCallback(onExited);\n const handleAddEndListener = next => {\n if (timeout === 'auto') {\n timer.current = setTimeout(next, autoTimeout.current || 0);\n }\n if (addEndListener) {\n // Old call signature before `react-transition-group` implemented `nodeRef`\n addEndListener(nodeRef.current, next);\n }\n };\n React.useEffect(() => {\n return () => {\n clearTimeout(timer.current);\n };\n }, []);\n return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n appear: appear,\n in: inProp,\n nodeRef: nodeRef,\n onEnter: handleEnter,\n onEntered: handleEntered,\n onEntering: handleEntering,\n onExit: handleExit,\n onExited: handleExited,\n onExiting: handleExiting,\n addEndListener: handleAddEndListener,\n timeout: timeout === 'auto' ? null : timeout\n }, other, {\n children: (state, childProps) => {\n return /*#__PURE__*/React.cloneElement(children, _extends({\n style: _extends({\n opacity: 0,\n transform: getScale(0.75),\n visibility: state === 'exited' && !inProp ? 'hidden' : undefined\n }, styles[state], style, children.props.style),\n ref: handleRef\n }, childProps));\n }\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Grow.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Add a custom transition end trigger. Called with the transitioning DOM\n * node and a done callback. Allows for more fine grained transition end\n * logic. Note: Timeouts are still used as a fallback if provided.\n */\n addEndListener: PropTypes.func,\n /**\n * Perform the enter transition when it first mounts if `in` is also `true`.\n * Set this to `false` to disable this behavior.\n * @default true\n */\n appear: PropTypes.bool,\n /**\n * A single child content element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * The transition timing function.\n * You may specify a single easing or a object containing enter and exit values.\n */\n easing: PropTypes.oneOfType([PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string\n }), PropTypes.string]),\n /**\n * If `true`, the component will transition in.\n */\n in: PropTypes.bool,\n /**\n * @ignore\n */\n onEnter: PropTypes.func,\n /**\n * @ignore\n */\n onEntered: PropTypes.func,\n /**\n * @ignore\n */\n onEntering: PropTypes.func,\n /**\n * @ignore\n */\n onExit: PropTypes.func,\n /**\n * @ignore\n */\n onExited: PropTypes.func,\n /**\n * @ignore\n */\n onExiting: PropTypes.func,\n /**\n * @ignore\n */\n style: PropTypes.object,\n /**\n * The duration for the transition, in milliseconds.\n * You may specify a single timeout for all transitions, or individually with an object.\n *\n * Set to 'auto' to automatically calculate transition time based on height.\n * @default 'auto'\n */\n timeout: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number, PropTypes.shape({\n appear: PropTypes.number,\n enter: PropTypes.number,\n exit: PropTypes.number\n })])\n} : void 0;\nGrow.muiSupportAuto = true;\nexport default Grow;","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getContainer(container) {\n return typeof container === 'function' ? container() : container;\n}\n\n/**\n * Portals provide a first-class way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n *\n * Demos:\n *\n * - [Portal](https://mui.com/base/react-portal/)\n *\n * API:\n *\n * - [Portal API](https://mui.com/base/react-portal/components-api/#portal)\n */\nconst Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef) {\n const {\n children,\n container,\n disablePortal = false\n } = props;\n const [mountNode, setMountNode] = React.useState(null);\n // @ts-expect-error TODO upstream fix\n const handleRef = useForkRef( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, forwardedRef);\n useEnhancedEffect(() => {\n if (!disablePortal) {\n setMountNode(getContainer(container) || document.body);\n }\n }, [container, disablePortal]);\n useEnhancedEffect(() => {\n if (mountNode && !disablePortal) {\n setRef(forwardedRef, mountNode);\n return () => {\n setRef(forwardedRef, null);\n };\n }\n return undefined;\n }, [forwardedRef, mountNode, disablePortal]);\n if (disablePortal) {\n if ( /*#__PURE__*/React.isValidElement(children)) {\n const newProps = {\n ref: handleRef\n };\n return /*#__PURE__*/React.cloneElement(children, newProps);\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: children\n });\n }\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: mountNode ? /*#__PURE__*/ReactDOM.createPortal(children, mountNode) : mountNode\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Portal.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The children to render into the `container`.\n */\n children: PropTypes.node,\n /**\n * An HTML element or function that returns one.\n * The `container` will have the portal children appended to it.\n *\n * By default, it uses the body of the top-level document object,\n * so it's simply `document.body` most of the time.\n */\n container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),\n /**\n * The `children` will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Portal['propTypes' + ''] = exactProp(Portal.propTypes);\n}\nexport default Portal;","import { unstable_ownerWindow as ownerWindow, unstable_ownerDocument as ownerDocument, unstable_getScrollbarSize as getScrollbarSize } from '@mui/utils';\n// Is a vertical scrollbar displayed?\nfunction isOverflowing(container) {\n const doc = ownerDocument(container);\n if (doc.body === container) {\n return ownerWindow(container).innerWidth > doc.documentElement.clientWidth;\n }\n return container.scrollHeight > container.clientHeight;\n}\nexport function ariaHidden(element, show) {\n if (show) {\n element.setAttribute('aria-hidden', 'true');\n } else {\n element.removeAttribute('aria-hidden');\n }\n}\nfunction getPaddingRight(element) {\n return parseInt(ownerWindow(element).getComputedStyle(element).paddingRight, 10) || 0;\n}\nfunction isAriaHiddenForbiddenOnElement(element) {\n // The forbidden HTML tags are the ones from ARIA specification that\n // can be children of body and can't have aria-hidden attribute.\n // cf. https://www.w3.org/TR/html-aria/#docconformance\n const forbiddenTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE', 'LINK', 'MAP', 'META', 'NOSCRIPT', 'PICTURE', 'COL', 'COLGROUP', 'PARAM', 'SLOT', 'SOURCE', 'TRACK'];\n const isForbiddenTagName = forbiddenTagNames.indexOf(element.tagName) !== -1;\n const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';\n return isForbiddenTagName || isInputHidden;\n}\nfunction ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {\n const blacklist = [mountElement, currentElement, ...elementsToExclude];\n [].forEach.call(container.children, element => {\n const isNotExcludedElement = blacklist.indexOf(element) === -1;\n const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);\n if (isNotExcludedElement && isNotForbiddenElement) {\n ariaHidden(element, show);\n }\n });\n}\nfunction findIndexOf(items, callback) {\n let idx = -1;\n items.some((item, index) => {\n if (callback(item)) {\n idx = index;\n return true;\n }\n return false;\n });\n return idx;\n}\nfunction handleContainer(containerInfo, props) {\n const restoreStyle = [];\n const container = containerInfo.container;\n if (!props.disableScrollLock) {\n if (isOverflowing(container)) {\n // Compute the size before applying overflow hidden to avoid any scroll jumps.\n const scrollbarSize = getScrollbarSize(ownerDocument(container));\n restoreStyle.push({\n value: container.style.paddingRight,\n property: 'padding-right',\n el: container\n });\n // Use computed style, here to get the real padding to add our scrollbar width.\n container.style.paddingRight = `${getPaddingRight(container) + scrollbarSize}px`;\n\n // .mui-fixed is a global helper.\n const fixedElements = ownerDocument(container).querySelectorAll('.mui-fixed');\n [].forEach.call(fixedElements, element => {\n restoreStyle.push({\n value: element.style.paddingRight,\n property: 'padding-right',\n el: element\n });\n element.style.paddingRight = `${getPaddingRight(element) + scrollbarSize}px`;\n });\n }\n let scrollContainer;\n if (container.parentNode instanceof DocumentFragment) {\n scrollContainer = ownerDocument(container).body;\n } else {\n // Improve Gatsby support\n // https://css-tricks.com/snippets/css/force-vertical-scrollbar/\n const parent = container.parentElement;\n const containerWindow = ownerWindow(container);\n scrollContainer = (parent == null ? void 0 : parent.nodeName) === 'HTML' && containerWindow.getComputedStyle(parent).overflowY === 'scroll' ? parent : container;\n }\n\n // Block the scroll even if no scrollbar is visible to account for mobile keyboard\n // screensize shrink.\n restoreStyle.push({\n value: scrollContainer.style.overflow,\n property: 'overflow',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowX,\n property: 'overflow-x',\n el: scrollContainer\n }, {\n value: scrollContainer.style.overflowY,\n property: 'overflow-y',\n el: scrollContainer\n });\n scrollContainer.style.overflow = 'hidden';\n }\n const restore = () => {\n restoreStyle.forEach(({\n value,\n el,\n property\n }) => {\n if (value) {\n el.style.setProperty(property, value);\n } else {\n el.style.removeProperty(property);\n }\n });\n };\n return restore;\n}\nfunction getHiddenSiblings(container) {\n const hiddenSiblings = [];\n [].forEach.call(container.children, element => {\n if (element.getAttribute('aria-hidden') === 'true') {\n hiddenSiblings.push(element);\n }\n });\n return hiddenSiblings;\n}\n/**\n * @ignore - do not document.\n *\n * Proper state management for containers and the modals in those containers.\n * Simplified, but inspired by react-overlay's ModalManager class.\n * Used by the Modal to ensure proper styling of containers.\n */\nexport default class ModalManager {\n constructor() {\n this.containers = void 0;\n this.modals = void 0;\n this.modals = [];\n this.containers = [];\n }\n add(modal, container) {\n let modalIndex = this.modals.indexOf(modal);\n if (modalIndex !== -1) {\n return modalIndex;\n }\n modalIndex = this.modals.length;\n this.modals.push(modal);\n\n // If the modal we are adding is already in the DOM.\n if (modal.modalRef) {\n ariaHidden(modal.modalRef, false);\n }\n const hiddenSiblings = getHiddenSiblings(container);\n ariaHiddenSiblings(container, modal.mount, modal.modalRef, hiddenSiblings, true);\n const containerIndex = findIndexOf(this.containers, item => item.container === container);\n if (containerIndex !== -1) {\n this.containers[containerIndex].modals.push(modal);\n return modalIndex;\n }\n this.containers.push({\n modals: [modal],\n container,\n restore: null,\n hiddenSiblings\n });\n return modalIndex;\n }\n mount(modal, props) {\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n if (!containerInfo.restore) {\n containerInfo.restore = handleContainer(containerInfo, props);\n }\n }\n remove(modal, ariaHiddenState = true) {\n const modalIndex = this.modals.indexOf(modal);\n if (modalIndex === -1) {\n return modalIndex;\n }\n const containerIndex = findIndexOf(this.containers, item => item.modals.indexOf(modal) !== -1);\n const containerInfo = this.containers[containerIndex];\n containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);\n this.modals.splice(modalIndex, 1);\n\n // If that was the last modal in a container, clean up the container.\n if (containerInfo.modals.length === 0) {\n // The modal might be closed before it had the chance to be mounted in the DOM.\n if (containerInfo.restore) {\n containerInfo.restore();\n }\n if (modal.modalRef) {\n // In case the modal wasn't in the DOM yet.\n ariaHidden(modal.modalRef, ariaHiddenState);\n }\n ariaHiddenSiblings(containerInfo.container, modal.mount, modal.modalRef, containerInfo.hiddenSiblings, false);\n this.containers.splice(containerIndex, 1);\n } else {\n // Otherwise make sure the next top modal is visible to a screen reader.\n const nextTop = containerInfo.modals[containerInfo.modals.length - 1];\n // as soon as a modal is adding its modalRef is undefined. it can't set\n // aria-hidden because the dom element doesn't exist either\n // when modal was unmounted before modalRef gets null\n if (nextTop.modalRef) {\n ariaHidden(nextTop.modalRef, false);\n }\n }\n return modalIndex;\n }\n isTopModal(modal) {\n return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;\n }\n}","/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n// Inspired by https://github.com/focus-trap/tabbable\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n }\n\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome,
,
\n );\n};\n\nexport default Contacts;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function () {\n return _utils.createSvgIcon;\n }\n});\nvar _utils = require(\"@mui/material/utils\");","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_useId as useId } from '@mui/utils';\nexport default useId;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["StyleSection","styled","Title","title","children","Form","Label","BoxSection","TwoSections","nanoid","size","crypto","getRandomValues","Uint8Array","reduce","id","byte","toString","toUpperCase","selectContacts","state","contacts","items","selectFilter","filter","value","selectIsLoading","isLoading","selectError","error","ContactForm","dispatch","useDispatch","useSelector","isGeneralLoading","useState","setIsLoading","nameInputId","numberInputId","onSubmit","event","preventDefault","form","target","name","elements","number","some","contact","toLowerCase","alert","addContact","reset","setTimeout","htmlFor","style","fontFamily","fontWeight","Input","color","type","pattern","required","Button","variant","margin","height","stroke","padding","List","Li","ContactLi","Contact","fontSize","marginLeft","endIcon","onClick","deleteContact","visibleTasks","normilizedFilter","includes","getVisibleTasks","length","map","textAlign","FilterDiv","FilterTitle","FilterInput","onChange","e","currentTarget","setFilter","useEffect","fetchContacts","display","flexDirection","alignItems","maxWidth","ContactList","width","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","Object","defineProperty","enumerable","get","_utils","createSvgIcon","validator","reason","componentNameInError","Component","props","propName","componentName","location","propFullName","unstable_ClassNameGenerator","configure","generator","ClassNameGenerator","module","obj","__esModule"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/main.720916f3.js b/static/js/main.720916f3.js new file mode 100644 index 0000000..59d600c --- /dev/null +++ b/static/js/main.720916f3.js @@ -0,0 +1,3 @@ +/*! For license information please see main.720916f3.js.LICENSE.txt */ +!function(){var e={9273:function(e,t,n){"use strict";n.d(t,{Ec:function(){return d},Ib:function(){return s},ni:function(){return f},z2:function(){return c}});var r=n(5861),o=n(4687),a=n.n(o),i=n(1243),u=n(6382);i.Z.defaults.baseURL="https://connections-api.herokuapp.com/";var l=function(e){i.Z.defaults.headers.common.Authorization="Bearer ".concat(e)},c=(0,u.hg)("auth/register",function(){var e=(0,r.Z)(a().mark((function e(t,n){var r;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.Z.post("/users/signup",t);case 3:return r=e.sent,l(r.data.token),e.abrupt("return",r.data);case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",n.rejectWithValue(e.t0.message));case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(t,n){return e.apply(this,arguments)}}()),s=(0,u.hg)("auth/login",function(){var e=(0,r.Z)(a().mark((function e(t,n){var r;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.Z.post("/users/login",t);case 3:return r=e.sent,l(r.data.token),e.abrupt("return",r.data);case 8:return e.prev=8,e.t0=e.catch(0),e.abrupt("return",n.rejectWithValue(e.t0.message));case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(t,n){return e.apply(this,arguments)}}()),f=(0,u.hg)("auth/logout",function(){var e=(0,r.Z)(a().mark((function e(t,n){return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,i.Z.post("/users/logout");case 3:i.Z.defaults.headers.common.Authorization="",e.next=9;break;case 6:return e.prev=6,e.t0=e.catch(0),e.abrupt("return",n.rejectWithValue(e.t0.message));case 9:case"end":return e.stop()}}),e,null,[[0,6]])})));return function(t,n){return e.apply(this,arguments)}}()),d=(0,u.hg)("auth/refresh",function(){var e=(0,r.Z)(a().mark((function e(t,n){var r,o,u;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.getState(),null!==(o=r.auth.token)){e.next=4;break}return e.abrupt("return",n.rejectWithValue("Unable to fetch user"));case 4:return e.prev=4,l(o),e.next=8,i.Z.get("/users/current");case 8:return u=e.sent,e.abrupt("return",u.data);case 12:return e.prev=12,e.t0=e.catch(4),e.abrupt("return",n.rejectWithValue(e.t0.message));case 15:case"end":return e.stop()}}),e,null,[[4,12]])})));return function(t,n){return e.apply(this,arguments)}}())},4217:function(e,t,n){"use strict";n.d(t,{Hn:function(){return i},Li:function(){return u},Qb:function(){return r},dy:function(){return o},wU:function(){return a}});var r=function(e){return e.auth.isLoggedIn},o=function(e){return e.auth.user},a=function(e){return e.auth.isRefreshing},i=function(e){return e.auth.error},u=function(e){return e.auth.isLoading}},6052:function(e,t,n){"use strict";n.d(t,{GK:function(){return s},uK:function(){return c},yF:function(){return l}});var r=n(5861),o=n(4687),a=n.n(o),i=n(6382),u=n(1243);u.Z.defaults.baseURL="https://connections-api.herokuapp.com";var l=(0,i.hg)("contacts/fetchAll",function(){var e=(0,r.Z)(a().mark((function e(t,n){var r;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,u.Z.get("/contacts");case 3:return r=e.sent,e.abrupt("return",r.data);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",n.rejectWithValue(e.t0.message));case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(t,n){return e.apply(this,arguments)}}()),c=(0,i.hg)("contacts/addContact",function(){var e=(0,r.Z)(a().mark((function e(t,n){var r,o,i;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.name,o=t.number,e.prev=1,e.next=4,u.Z.post("/contacts",{name:r,number:o});case 4:return i=e.sent,e.abrupt("return",i.data);case 8:return e.prev=8,e.t0=e.catch(1),e.abrupt("return",n.rejectWithValue(e.t0.message));case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t,n){return e.apply(this,arguments)}}()),s=(0,i.hg)("contacts/deleteContact",function(){var e=(0,r.Z)(a().mark((function e(t,n){var r;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,u.Z.delete("/contacts/".concat(t));case 3:return r=e.sent,e.abrupt("return",r.data);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",n.rejectWithValue(e.t0.message));case 10:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(t,n){return e.apply(this,arguments)}}())},4808:function(e,t,n){"use strict";n.d(t,{T:function(){return o},h:function(){return a}});var r=(0,n(6382).oM)({name:"filter",initialState:{value:""},reducers:{setFilter:function(e,t){e.value=t.payload}}}),o=r.actions.setFilter,a=r.reducer},3361:function(e,t,n){"use strict";n.d(t,{Z:function(){return oe}});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?s(w,--g):0,m--,10===b&&(m=1,v--),b}function E(){return b=g2||_(b)>3?"":" "}function N(e,t){for(;--t&&E()&&!(b<48||b>102||b>57&&b<65||b>70&&b<97););return P(e,C()+(t<6&&32==O()&&32==E()))}function Z(e){for(;E();)switch(b){case e:return g;case 34:case 39:34!==e&&39!==e&&Z(b);break;case 40:41===e&&Z(e);break;case 92:E()}return g}function L(e,t){for(;E()&&e+b!==57&&(e+b!==84||47!==O()););return"/*"+P(t,g-1)+"*"+a(47===e?e:E())}function I(e){for(;!_(O());)E();return P(e,g)}var z="-ms-",M="-moz-",D="-webkit-",F="comm",U="rule",B="decl",W="@keyframes";function $(e,t){for(var n="",r=p(e),o=0;o0&&d(M)-y&&h(b>32?Q(M+";",r,n,y-1):Q(l(M," ","")+";",r,n,y-2),p);break;case 59:M+=";";default:if(h(z=q(M,t,n,v,m,o,f,R,T=[],Z=[],y),i),123===_)if(0===m)K(M,t,z,z,T,i,y,f,Z);else switch(99===g&&110===s(M,3)?100:g){case 100:case 108:case 109:case 115:K(e,z,z,r&&h(q(e,z,z,0,0,o,f,R,o,T=[],y),Z),o,Z,y,f,r?T:Z);break;default:K(M,z,z,z,[""],Z,0,f,Z)}}v=m=b=0,S=P=1,R=M="",y=u;break;case 58:y=1+d(M),b=w;default:if(S<1)if(123==_)--S;else if(125==_&&0==S++&&125==x())continue;switch(M+=a(_),_*S){case 38:P=m>0?1:(M+="\f",-1);break;case 44:f[v++]=(d(M)-1)*P,P=1;break;case 64:45===O()&&(M+=j(E())),g=O(),m=y=d(R=M+=I(C())),_++;break;case 45:45===w&&2==d(M)&&(S=0)}}return i}function q(e,t,n,r,a,i,c,s,d,h,v){for(var m=a-1,y=0===a?i:[""],g=p(y),b=0,w=0,k=0;b0?y[x]+" "+E:l(E,/&\f/g,y[x])))&&(d[k++]=O);return S(e,t,n,0===a?U:s,d,h,v)}function G(e,t,n){return S(e,t,n,F,a(b),f(e,2,-2),0)}function Q(e,t,n,r){return S(e,t,n,B,f(e,0,r),f(e,r+1,-1),r)}var Y=function(e,t,n){for(var r=0,o=0;r=o,o=O(),38===r&&12===o&&(t[n]=1),!_(o);)E();return P(e,g)},X=function(e,t){return T(function(e,t){var n=-1,r=44;do{switch(_(r)){case 0:38===r&&12===O()&&(t[n]=1),e[n]+=Y(g-1,t,n);break;case 2:e[n]+=j(r);break;case 4:if(44===r){e[++n]=58===O()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=a(r)}}while(r=E());return e}(R(e),t))},J=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var o=[],a=X(t,o),i=n.props,u=0,l=0;u6)switch(s(e,t+1)){case 109:if(45!==s(e,t+4))break;case 102:return l(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1-moz-"+(108==s(e,t+3)?"$3":"$2-$3"))+e;case 115:return~c(e,"stretch")?ne(l(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==s(e,t+1))break;case 6444:switch(s(e,d(e)-3-(~c(e,"!important")&&10))){case 107:return l(e,":",":-webkit-")+e;case 101:return l(e,/(.+:)([^;!]+)(;|!.+)?/,"$1-webkit-"+(45===s(e,14)?"inline-":"")+"box$3$1"+"-webkit-$2$3$1"+"-ms-$2box$3")+e}break;case 5936:switch(s(e,t+11)){case 114:return D+e+z+l(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return D+e+z+l(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return D+e+z+l(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return D+e+z+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case B:e.return=ne(e.value,e.length);break;case W:return $([k(e,{value:l(e.value,"@","@-webkit-")})],r);case U:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return $([k(e,{props:[l(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return $([k(e,{props:[l(t,/:(plac\w+)/,":-webkit-input-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,":-moz-$1")]}),k(e,{props:[l(t,/:(plac\w+)/,"-ms-input-$1")]})],r)}return""}))}}],oe=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o=e.stylisPlugins||re;var a,i,u={},l=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+l;return{name:c,styles:o,next:d}}},2561:function(e,t,n){"use strict";var r;n.d(t,{L:function(){return i},j:function(){return u}});var o=n(2791),a=!!(r||(r=n.t(o,2))).useInsertionEffect&&(r||(r=n.t(o,2))).useInsertionEffect,i=a||function(e){return e()},u=a||o.useLayoutEffect},5438:function(e,t,n){"use strict";n.d(t,{My:function(){return a},fp:function(){return r},hC:function(){return o}});function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var o=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},a=function(e,t,n){o(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}},3736:function(e,t,n){"use strict";n.d(t,{Z:function(){return de}});var r=n(4942),o=n(3366),a=n(7462),i=n(2791),u=n(8182),l=n(5735),c=n(4419),s=n(2065),f=n(6934),d=n(1402),p=n(9439),h=n(2071),v=n(9683),m=n(3031),y=n(3433),g=n(168),b=n(7326),w=n(4578),S=n(5545);function k(e,t){var n=Object.create(null);return e&&i.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,i.isValidElement)(e)?t(e):e}(e)})),n}function x(e,t,n){return null!=n[t]?n[t]:e.props[t]}function E(e,t,n){var r=k(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,o=Object.create(null),a=[];for(var i in e)i in t?a.length&&(o[i]=a,a=[]):a.push(i);var u={};for(var l in t){if(o[l])for(r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=t.pulsate,o=void 0!==r&&r,a=t.center,i=void 0===a?l||t.pulsate:a,u=t.fakeElement,c=void 0!==u&&u;if("mousedown"===(null==e?void 0:e.type)&&k.current)k.current=!1;else{"touchstart"===(null==e?void 0:e.type)&&(k.current=!0);var s,f,d,p=c?null:O.current,h=p?p.getBoundingClientRect():{width:0,height:0,left:0,top:0};if(i||void 0===e||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)s=Math.round(h.width/2),f=Math.round(h.height/2);else{var v=e.touches&&e.touches.length>0?e.touches[0]:e,m=v.clientX,y=v.clientY;s=Math.round(m-h.left),f=Math.round(y-h.top)}if(i)(d=Math.sqrt((2*Math.pow(h.width,2)+Math.pow(h.height,2))/3))%2===0&&(d+=1);else{var g=2*Math.max(Math.abs((p?p.clientWidth:0)-s),s)+2,b=2*Math.max(Math.abs((p?p.clientHeight:0)-f),f)+2;d=Math.sqrt(Math.pow(g,2)+Math.pow(b,2))}null!=e&&e.touches?null===E.current&&(E.current=function(){C({pulsate:o,rippleX:s,rippleY:f,rippleSize:d,cb:n})},x.current=setTimeout((function(){E.current&&(E.current(),E.current=null)}),80)):C({pulsate:o,rippleX:s,rippleY:f,rippleSize:d,cb:n})}}),[l,C]),T=i.useCallback((function(){_({},{pulsate:!0})}),[_]),j=i.useCallback((function(e,t){if(clearTimeout(x.current),"touchend"===(null==e?void 0:e.type)&&E.current)return E.current(),E.current=null,void(x.current=setTimeout((function(){j(e,t)})));E.current=null,b((function(e){return e.length>0?e.slice(1):e})),S.current=t}),[]);return i.useImperativeHandle(t,(function(){return{pulsate:T,start:_,stop:j}}),[T,_,j]),(0,R.jsx)(V,(0,a.Z)({className:(0,u.Z)(F.root,s.root,f),ref:O},h,{children:(0,R.jsx)(P,{component:null,exit:!0,children:g})}))})),q=K,G=n(1217);function Q(e){return(0,G.Z)("MuiButtonBase",e)}var Y,X=(0,j.Z)("MuiButtonBase",["root","disabled","focusVisible"]),J=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],ee=(0,f.ZP)("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:function(e,t){return t.root}})((Y={display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"}},(0,r.Z)(Y,"&.".concat(X.disabled),{pointerEvents:"none",cursor:"default"}),(0,r.Z)(Y,"@media print",{colorAdjust:"exact"}),Y)),te=i.forwardRef((function(e,t){var n=(0,d.Z)({props:e,name:"MuiButtonBase"}),r=n.action,l=n.centerRipple,s=void 0!==l&&l,f=n.children,y=n.className,g=n.component,b=void 0===g?"button":g,w=n.disabled,S=void 0!==w&&w,k=n.disableRipple,x=void 0!==k&&k,E=n.disableTouchRipple,O=void 0!==E&&E,C=n.focusRipple,P=void 0!==C&&C,_=n.LinkComponent,T=void 0===_?"a":_,j=n.onBlur,A=n.onClick,N=n.onContextMenu,Z=n.onDragLeave,L=n.onFocus,I=n.onFocusVisible,z=n.onKeyDown,M=n.onKeyUp,D=n.onMouseDown,F=n.onMouseLeave,U=n.onMouseUp,B=n.onTouchEnd,W=n.onTouchMove,$=n.onTouchStart,V=n.tabIndex,H=void 0===V?0:V,K=n.TouchRippleProps,G=n.touchRippleRef,Y=n.type,X=(0,o.Z)(n,J),te=i.useRef(null),ne=i.useRef(null),re=(0,h.Z)(ne,G),oe=(0,m.Z)(),ae=oe.isFocusVisibleRef,ie=oe.onFocus,ue=oe.onBlur,le=oe.ref,ce=i.useState(!1),se=(0,p.Z)(ce,2),fe=se[0],de=se[1];S&&fe&&de(!1),i.useImperativeHandle(r,(function(){return{focusVisible:function(){de(!0),te.current.focus()}}}),[]);var pe=i.useState(!1),he=(0,p.Z)(pe,2),ve=he[0],me=he[1];i.useEffect((function(){me(!0)}),[]);var ye=ve&&!x&&!S;function ge(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O;return(0,v.Z)((function(r){return t&&t(r),!n&&ne.current&&ne.current[e](r),!0}))}i.useEffect((function(){fe&&P&&!x&&ve&&ne.current.pulsate()}),[x,P,fe,ve]);var be=ge("start",D),we=ge("stop",N),Se=ge("stop",Z),ke=ge("stop",U),xe=ge("stop",(function(e){fe&&e.preventDefault(),F&&F(e)})),Ee=ge("start",$),Oe=ge("stop",B),Ce=ge("stop",W),Pe=ge("stop",(function(e){ue(e),!1===ae.current&&de(!1),j&&j(e)}),!1),_e=(0,v.Z)((function(e){te.current||(te.current=e.currentTarget),ie(e),!0===ae.current&&(de(!0),I&&I(e)),L&&L(e)})),Re=function(){var e=te.current;return b&&"button"!==b&&!("A"===e.tagName&&e.href)},Te=i.useRef(!1),je=(0,v.Z)((function(e){P&&!Te.current&&fe&&ne.current&&" "===e.key&&(Te.current=!0,ne.current.stop(e,(function(){ne.current.start(e)}))),e.target===e.currentTarget&&Re()&&" "===e.key&&e.preventDefault(),z&&z(e),e.target===e.currentTarget&&Re()&&"Enter"===e.key&&!S&&(e.preventDefault(),A&&A(e))})),Ae=(0,v.Z)((function(e){P&&" "===e.key&&ne.current&&fe&&!e.defaultPrevented&&(Te.current=!1,ne.current.stop(e,(function(){ne.current.pulsate(e)}))),M&&M(e),A&&e.target===e.currentTarget&&Re()&&" "===e.key&&!e.defaultPrevented&&A(e)})),Ne=b;"button"===Ne&&(X.href||X.to)&&(Ne=T);var Ze={};"button"===Ne?(Ze.type=void 0===Y?"button":Y,Ze.disabled=S):(X.href||X.to||(Ze.role="button"),S&&(Ze["aria-disabled"]=S));var Le=(0,h.Z)(t,le,te);var Ie=(0,a.Z)({},n,{centerRipple:s,component:b,disabled:S,disableRipple:x,disableTouchRipple:O,focusRipple:P,tabIndex:H,focusVisible:fe}),ze=function(e){var t=e.disabled,n=e.focusVisible,r=e.focusVisibleClassName,o=e.classes,a={root:["root",t&&"disabled",n&&"focusVisible"]},i=(0,c.Z)(a,Q,o);return n&&r&&(i.root+=" ".concat(r)),i}(Ie);return(0,R.jsxs)(ee,(0,a.Z)({as:Ne,className:(0,u.Z)(ze.root,y),ownerState:Ie,onBlur:Pe,onClick:A,onContextMenu:we,onFocus:_e,onKeyDown:je,onKeyUp:Ae,onMouseDown:be,onMouseLeave:xe,onMouseUp:ke,onDragLeave:Se,onTouchEnd:Oe,onTouchMove:Ce,onTouchStart:Ee,ref:Le,tabIndex:S?-1:H,type:Y},Ze,X,{children:[f,ye?(0,R.jsx)(q,(0,a.Z)({ref:re,center:s},K)):null]}))})),ne=te,re=n(4036);function oe(e){return(0,G.Z)("MuiButton",e)}var ae=(0,j.Z)("MuiButton",["root","text","textInherit","textPrimary","textSecondary","textSuccess","textError","textInfo","textWarning","outlined","outlinedInherit","outlinedPrimary","outlinedSecondary","outlinedSuccess","outlinedError","outlinedInfo","outlinedWarning","contained","containedInherit","containedPrimary","containedSecondary","containedSuccess","containedError","containedInfo","containedWarning","disableElevation","focusVisible","disabled","colorInherit","textSizeSmall","textSizeMedium","textSizeLarge","outlinedSizeSmall","outlinedSizeMedium","outlinedSizeLarge","containedSizeSmall","containedSizeMedium","containedSizeLarge","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","iconSizeSmall","iconSizeMedium","iconSizeLarge"]);var ie=i.createContext({}),ue=["children","color","component","className","disabled","disableElevation","disableFocusRipple","endIcon","focusVisibleClassName","fullWidth","size","startIcon","type","variant"],le=function(e){return(0,a.Z)({},"small"===e.size&&{"& > *:nth-of-type(1)":{fontSize:18}},"medium"===e.size&&{"& > *:nth-of-type(1)":{fontSize:20}},"large"===e.size&&{"& > *:nth-of-type(1)":{fontSize:22}})},ce=(0,f.ZP)(ne,{shouldForwardProp:function(e){return(0,f.FO)(e)||"classes"===e},name:"MuiButton",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t[n.variant],t["".concat(n.variant).concat((0,re.Z)(n.color))],t["size".concat((0,re.Z)(n.size))],t["".concat(n.variant,"Size").concat((0,re.Z)(n.size))],"inherit"===n.color&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth]}})((function(e){var t,n,o,i=e.theme,u=e.ownerState,l="light"===i.palette.mode?i.palette.grey[300]:i.palette.grey[800],c="light"===i.palette.mode?i.palette.grey.A100:i.palette.grey[700];return(0,a.Z)({},i.typography.button,(t={minWidth:64,padding:"6px 16px",borderRadius:(i.vars||i).shape.borderRadius,transition:i.transitions.create(["background-color","box-shadow","border-color","color"],{duration:i.transitions.duration.short}),"&:hover":(0,a.Z)({textDecoration:"none",backgroundColor:i.vars?"rgba(".concat(i.vars.palette.text.primaryChannel," / ").concat(i.vars.palette.action.hoverOpacity,")"):(0,s.Fq)(i.palette.text.primary,i.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"text"===u.variant&&"inherit"!==u.color&&{backgroundColor:i.vars?"rgba(".concat(i.vars.palette[u.color].mainChannel," / ").concat(i.vars.palette.action.hoverOpacity,")"):(0,s.Fq)(i.palette[u.color].main,i.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"outlined"===u.variant&&"inherit"!==u.color&&{border:"1px solid ".concat((i.vars||i).palette[u.color].main),backgroundColor:i.vars?"rgba(".concat(i.vars.palette[u.color].mainChannel," / ").concat(i.vars.palette.action.hoverOpacity,")"):(0,s.Fq)(i.palette[u.color].main,i.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},"contained"===u.variant&&{backgroundColor:i.vars?i.vars.palette.Button.inheritContainedHoverBg:c,boxShadow:(i.vars||i).shadows[4],"@media (hover: none)":{boxShadow:(i.vars||i).shadows[2],backgroundColor:(i.vars||i).palette.grey[300]}},"contained"===u.variant&&"inherit"!==u.color&&{backgroundColor:(i.vars||i).palette[u.color].dark,"@media (hover: none)":{backgroundColor:(i.vars||i).palette[u.color].main}}),"&:active":(0,a.Z)({},"contained"===u.variant&&{boxShadow:(i.vars||i).shadows[8]})},(0,r.Z)(t,"&.".concat(ae.focusVisible),(0,a.Z)({},"contained"===u.variant&&{boxShadow:(i.vars||i).shadows[6]})),(0,r.Z)(t,"&.".concat(ae.disabled),(0,a.Z)({color:(i.vars||i).palette.action.disabled},"outlined"===u.variant&&{border:"1px solid ".concat((i.vars||i).palette.action.disabledBackground)},"contained"===u.variant&&{color:(i.vars||i).palette.action.disabled,boxShadow:(i.vars||i).shadows[0],backgroundColor:(i.vars||i).palette.action.disabledBackground})),t),"text"===u.variant&&{padding:"6px 8px"},"text"===u.variant&&"inherit"!==u.color&&{color:(i.vars||i).palette[u.color].main},"outlined"===u.variant&&{padding:"5px 15px",border:"1px solid currentColor"},"outlined"===u.variant&&"inherit"!==u.color&&{color:(i.vars||i).palette[u.color].main,border:i.vars?"1px solid rgba(".concat(i.vars.palette[u.color].mainChannel," / 0.5)"):"1px solid ".concat((0,s.Fq)(i.palette[u.color].main,.5))},"contained"===u.variant&&{color:i.vars?i.vars.palette.text.primary:null==(n=(o=i.palette).getContrastText)?void 0:n.call(o,i.palette.grey[300]),backgroundColor:i.vars?i.vars.palette.Button.inheritContainedBg:l,boxShadow:(i.vars||i).shadows[2]},"contained"===u.variant&&"inherit"!==u.color&&{color:(i.vars||i).palette[u.color].contrastText,backgroundColor:(i.vars||i).palette[u.color].main},"inherit"===u.color&&{color:"inherit",borderColor:"currentColor"},"small"===u.size&&"text"===u.variant&&{padding:"4px 5px",fontSize:i.typography.pxToRem(13)},"large"===u.size&&"text"===u.variant&&{padding:"8px 11px",fontSize:i.typography.pxToRem(15)},"small"===u.size&&"outlined"===u.variant&&{padding:"3px 9px",fontSize:i.typography.pxToRem(13)},"large"===u.size&&"outlined"===u.variant&&{padding:"7px 21px",fontSize:i.typography.pxToRem(15)},"small"===u.size&&"contained"===u.variant&&{padding:"4px 10px",fontSize:i.typography.pxToRem(13)},"large"===u.size&&"contained"===u.variant&&{padding:"8px 22px",fontSize:i.typography.pxToRem(15)},u.fullWidth&&{width:"100%"})}),(function(e){var t;return e.ownerState.disableElevation&&(t={boxShadow:"none","&:hover":{boxShadow:"none"}},(0,r.Z)(t,"&.".concat(ae.focusVisible),{boxShadow:"none"}),(0,r.Z)(t,"&:active",{boxShadow:"none"}),(0,r.Z)(t,"&.".concat(ae.disabled),{boxShadow:"none"}),t)})),se=(0,f.ZP)("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.startIcon,t["iconSize".concat((0,re.Z)(n.size))]]}})((function(e){var t=e.ownerState;return(0,a.Z)({display:"inherit",marginRight:8,marginLeft:-4},"small"===t.size&&{marginLeft:-2},le(t))})),fe=(0,f.ZP)("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:function(e,t){var n=e.ownerState;return[t.endIcon,t["iconSize".concat((0,re.Z)(n.size))]]}})((function(e){var t=e.ownerState;return(0,a.Z)({display:"inherit",marginRight:-4,marginLeft:8},"small"===t.size&&{marginRight:-2},le(t))})),de=i.forwardRef((function(e,t){var n=i.useContext(ie),r=(0,l.Z)(n,e),s=(0,d.Z)({props:r,name:"MuiButton"}),f=s.children,p=s.color,h=void 0===p?"primary":p,v=s.component,m=void 0===v?"button":v,y=s.className,g=s.disabled,b=void 0!==g&&g,w=s.disableElevation,S=void 0!==w&&w,k=s.disableFocusRipple,x=void 0!==k&&k,E=s.endIcon,O=s.focusVisibleClassName,C=s.fullWidth,P=void 0!==C&&C,_=s.size,T=void 0===_?"medium":_,j=s.startIcon,A=s.type,N=s.variant,Z=void 0===N?"text":N,L=(0,o.Z)(s,ue),I=(0,a.Z)({},s,{color:h,component:m,disabled:b,disableElevation:S,disableFocusRipple:x,fullWidth:P,size:T,type:A,variant:Z}),z=function(e){var t=e.color,n=e.disableElevation,r=e.fullWidth,o=e.size,i=e.variant,u=e.classes,l={root:["root",i,"".concat(i).concat((0,re.Z)(t)),"size".concat((0,re.Z)(o)),"".concat(i,"Size").concat((0,re.Z)(o)),"inherit"===t&&"colorInherit",n&&"disableElevation",r&&"fullWidth"],label:["label"],startIcon:["startIcon","iconSize".concat((0,re.Z)(o))],endIcon:["endIcon","iconSize".concat((0,re.Z)(o))]},s=(0,c.Z)(l,oe,u);return(0,a.Z)({},u,s)}(I),M=j&&(0,R.jsx)(se,{className:z.startIcon,ownerState:I,children:j}),D=E&&(0,R.jsx)(fe,{className:z.endIcon,ownerState:I,children:E});return(0,R.jsxs)(ce,(0,a.Z)({ownerState:I,className:(0,u.Z)(n.className,z.root,y),component:m,disabled:b,focusRipple:!x,focusVisibleClassName:(0,u.Z)(z.focusVisible,O),ref:t,type:A},L,{classes:z,children:[M,f,D]}))}))},7107:function(e,t,n){"use strict";n.d(t,{Z:function(){return U}});var r=n(7462),o=n(3366),a=n(6189),i=n(2466),u=n(5080),l=n(7416),c=n(104),s=n(4942);function f(e,t){var n;return(0,r.Z)({toolbar:(n={minHeight:56},(0,s.Z)(n,e.up("xs"),{"@media (orientation: landscape)":{minHeight:48}}),(0,s.Z)(n,e.up("sm"),{minHeight:64}),n)},t)}var d=n(2065),p={black:"#000",white:"#fff"},h={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},v={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},m={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},y={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},g={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},b={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},w={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},S=["mode","contrastThreshold","tonalOffset"],k={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:p.white,default:p.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},x={text:{primary:p.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:p.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function E(e,t,n,r){var o=r.light||r,a=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,d.$n)(e.main,o):"dark"===t&&(e.dark=(0,d._j)(e.main,a)))}function O(e){var t=e.mode,n=void 0===t?"light":t,u=e.contrastThreshold,l=void 0===u?3:u,c=e.tonalOffset,s=void 0===c?.2:c,f=(0,o.Z)(e,S),O=e.primary||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:g[200],light:g[50],dark:g[400]}:{main:g[700],light:g[400],dark:g[800]}}(n),C=e.secondary||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:v[200],light:v[50],dark:v[400]}:{main:v[500],light:v[300],dark:v[700]}}(n),P=e.error||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:m[500],light:m[300],dark:m[700]}:{main:m[700],light:m[400],dark:m[800]}}(n),_=e.info||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:b[400],light:b[300],dark:b[700]}:{main:b[700],light:b[500],dark:b[900]}}(n),R=e.success||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:w[400],light:w[300],dark:w[700]}:{main:w[800],light:w[500],dark:w[900]}}(n),T=e.warning||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:y[400],light:y[300],dark:y[700]}:{main:"#ed6c02",light:y[500],dark:y[900]}}(n);function j(e){return(0,d.mi)(e,x.text.primary)>=l?x.text.primary:k.text.primary}var A=function(e){var t=e.color,n=e.name,o=e.mainShade,i=void 0===o?500:o,u=e.lightShade,l=void 0===u?300:u,c=e.darkShade,f=void 0===c?700:c;if(!(t=(0,r.Z)({},t)).main&&t[i]&&(t.main=t[i]),!t.hasOwnProperty("main"))throw new Error((0,a.Z)(11,n?" (".concat(n,")"):"",i));if("string"!==typeof t.main)throw new Error((0,a.Z)(12,n?" (".concat(n,")"):"",JSON.stringify(t.main)));return E(t,"light",l,s),E(t,"dark",f,s),t.contrastText||(t.contrastText=j(t.main)),t},N={dark:x,light:k};return(0,i.Z)((0,r.Z)({common:(0,r.Z)({},p),mode:n,primary:A({color:O,name:"primary"}),secondary:A({color:C,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:A({color:P,name:"error"}),warning:A({color:T,name:"warning"}),info:A({color:_,name:"info"}),success:A({color:R,name:"success"}),grey:h,contrastThreshold:l,getContrastText:j,augmentColor:A,tonalOffset:s},N[n]),f)}var C=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];var P={textTransform:"uppercase"},_='"Roboto", "Helvetica", "Arial", sans-serif';function R(e,t){var n="function"===typeof t?t(e):t,a=n.fontFamily,u=void 0===a?_:a,l=n.fontSize,c=void 0===l?14:l,s=n.fontWeightLight,f=void 0===s?300:s,d=n.fontWeightRegular,p=void 0===d?400:d,h=n.fontWeightMedium,v=void 0===h?500:h,m=n.fontWeightBold,y=void 0===m?700:m,g=n.htmlFontSize,b=void 0===g?16:g,w=n.allVariants,S=n.pxToRem,k=(0,o.Z)(n,C);var x=c/14,E=S||function(e){return"".concat(e/b*x,"rem")},O=function(e,t,n,o,a){return(0,r.Z)({fontFamily:u,fontWeight:e,fontSize:E(t),lineHeight:n},u===_?{letterSpacing:"".concat((i=o/t,Math.round(1e5*i)/1e5),"em")}:{},a,w);var i},R={h1:O(f,96,1.167,-1.5),h2:O(f,60,1.2,-.5),h3:O(p,48,1.167,0),h4:O(p,34,1.235,.25),h5:O(p,24,1.334,0),h6:O(v,20,1.6,.15),subtitle1:O(p,16,1.75,.15),subtitle2:O(v,14,1.57,.1),body1:O(p,16,1.5,.15),body2:O(p,14,1.43,.15),button:O(v,14,1.75,.4,P),caption:O(p,12,1.66,.4),overline:O(p,12,2.66,1,P),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return(0,i.Z)((0,r.Z)({htmlFontSize:b,pxToRem:E,fontFamily:u,fontSize:c,fontWeightLight:f,fontWeightRegular:p,fontWeightMedium:v,fontWeightBold:y},R),k,{clone:!1})}function T(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var j=["none",T(0,2,1,-1,0,1,1,0,0,1,3,0),T(0,3,1,-2,0,2,2,0,0,1,5,0),T(0,3,3,-2,0,3,4,0,0,1,8,0),T(0,2,4,-1,0,4,5,0,0,1,10,0),T(0,3,5,-1,0,5,8,0,0,1,14,0),T(0,3,5,-1,0,6,10,0,0,1,18,0),T(0,4,5,-2,0,7,10,1,0,2,16,1),T(0,5,5,-3,0,8,10,1,0,3,14,2),T(0,5,6,-3,0,9,12,1,0,3,16,2),T(0,6,6,-3,0,10,14,1,0,4,18,3),T(0,6,7,-4,0,11,15,1,0,4,20,3),T(0,7,8,-4,0,12,17,2,0,5,22,4),T(0,7,8,-4,0,13,19,2,0,5,24,4),T(0,7,9,-4,0,14,21,2,0,5,26,4),T(0,8,9,-5,0,15,22,2,0,6,28,5),T(0,8,10,-5,0,16,24,2,0,6,30,5),T(0,8,11,-5,0,17,26,2,0,6,32,5),T(0,9,11,-5,0,18,28,2,0,7,34,6),T(0,9,12,-6,0,19,29,2,0,7,36,6),T(0,10,13,-6,0,20,31,3,0,8,38,7),T(0,10,13,-6,0,21,33,3,0,8,40,7),T(0,10,14,-6,0,22,35,3,0,8,42,7),T(0,11,14,-7,0,23,36,3,0,9,44,8),T(0,11,15,-7,0,24,38,3,0,9,46,8)],A=["duration","easing","delay"],N={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},Z={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function L(e){return"".concat(Math.round(e),"ms")}function I(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}function z(e){var t=(0,r.Z)({},N,e.easing),n=(0,r.Z)({},Z,e.duration);return(0,r.Z)({getAutoHeightDuration:I,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.duration,i=void 0===a?n.standard:a,u=r.easing,l=void 0===u?t.easeInOut:u,c=r.delay,s=void 0===c?0:c;(0,o.Z)(r,A);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"===typeof i?i:L(i)," ").concat(l," ").concat("string"===typeof s?s:L(s))})).join(",")}},e,{easing:t,duration:n})}var M={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},D=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function F(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.mixins,n=void 0===t?{}:t,s=e.palette,d=void 0===s?{}:s,p=e.transitions,h=void 0===p?{}:p,v=e.typography,m=void 0===v?{}:v,y=(0,o.Z)(e,D);if(e.vars)throw new Error((0,a.Z)(18));var g=O(d),b=(0,u.Z)(e),w=(0,i.Z)(b,{mixins:f(b.breakpoints,n),palette:g,shadows:j.slice(),typography:R(g,m),transitions:z(h),zIndex:(0,r.Z)({},M)});w=(0,i.Z)(w,y);for(var S=arguments.length,k=new Array(S>1?S-1:0),x=1;x96?s:f},p=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!==typeof r&&n&&(r=e.__emotion_forwardProp),r},h=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,u.hC)(t,n,r),(0,c.L)((function(){return(0,u.My)(t,n,r)})),null},v=function e(t,n){var a,c,s=t.__emotion_real===t,f=s&&t.__emotion_base||t;void 0!==n&&(a=n.label,c=n.target);var v=p(t,n,s),m=v||d(f),y=!m("as");return function(){var g=arguments,b=s&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==a&&b.push("label:"+a+";"),null==g[0]||void 0===g[0].raw)b.push.apply(b,g);else{0,b.push(g[0][0]);for(var w=g.length,S=1;S0&&void 0!==arguments[0]?arguments[0]:{},n=null==(e=t.keys)?void 0:e.reduce((function(e,n){return e[t.up(n)]={},e}),{});return n||{}}function u(e,t){return e.reduce((function(e,t){var n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}},2065:function(e,t,n){"use strict";n.d(t,{$n:function(){return f},Fq:function(){return c},_j:function(){return s},mi:function(){return l}});var r=n(6189);function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),n)}function a(e){if(e.type)return e;if("#"===e.charAt(0))return a(function(e){e=e.slice(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error((0,r.Z)(9,e));var o,i=e.substring(t+1,e.length-1);if("color"===n){if(o=(i=i.split(" ")).shift(),4===i.length&&"/"===i[3].charAt(0)&&(i[3]=i[3].slice(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(o))throw new Error((0,r.Z)(10,o))}else i=i.split(",");return{type:n,values:i=i.map((function(e){return parseFloat(e)})),colorSpace:o}}function i(e){var t=e.type,n=e.colorSpace,r=e.values;return-1!==t.indexOf("rgb")?r=r.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(r[1]="".concat(r[1],"%"),r[2]="".concat(r[2],"%")),r=-1!==t.indexOf("color")?"".concat(n," ").concat(r.join(" ")):"".concat(r.join(", ")),"".concat(t,"(").concat(r,")")}function u(e){var t="hsl"===(e=a(e)).type||"hsla"===e.type?a(function(e){var t=(e=a(e)).values,n=t[0],r=t[1]/100,o=t[2]/100,u=r*Math.min(o,1-o),l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return o-u*Math.max(Math.min(t-3,9-t,1),-1)},c="rgb",s=[Math.round(255*l(0)),Math.round(255*l(8)),Math.round(255*l(4))];return"hsla"===e.type&&(c+="a",s.push(t[3])),i({type:c,values:s})}(e)).values:e.values;return t=t.map((function(t){return"color"!==e.type&&(t/=255),t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function l(e,t){var n=u(e),r=u(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function c(e,t){return e=a(e),t=o(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]="/".concat(t):e.values[3]=t,i(e)}function s(e,t){if(e=a(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return i(e)}function f(e,t){if(e=a(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(-1!==e.type.indexOf("color"))for(var r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return i(e)}},4046:function(e,t,n){"use strict";n.d(t,{ZP:function(){return k},x9:function(){return b}});var r=n(3433),o=n(9439),a=n(3366),i=n(7462),u=n(3842),l=n(5080),c=n(7312),s=["variant"];function f(e){return 0===e.length}function d(e){var t=e.variant,n=(0,a.Z)(e,s),r=t||"";return Object.keys(n).sort().forEach((function(t){r+="color"===t?f(r)?e[t]:(0,c.Z)(e[t]):"".concat(f(r)?t:(0,c.Z)(t)).concat((0,c.Z)(e[t].toString()))})),r}var p=n(104),h=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function v(e){return"string"===typeof e&&e.charCodeAt(0)>96}var m=function(e,t){return t.components&&t.components[e]&&t.components[e].styleOverrides?t.components[e].styleOverrides:null},y=function(e,t){var n=[];t&&t.components&&t.components[e]&&t.components[e].variants&&(n=t.components[e].variants);var r={};return n.forEach((function(e){var t=d(e.props);r[t]=e.style})),r},g=function(e,t,n,r){var o,a,i=e.ownerState,u=void 0===i?{}:i,l=[],c=null==n||null==(o=n.components)||null==(a=o[r])?void 0:a.variants;return c&&c.forEach((function(n){var r=!0;Object.keys(n.props).forEach((function(t){u[t]!==n.props[t]&&e[t]!==n.props[t]&&(r=!1)})),r&&l.push(t[d(n.props)])})),l};function b(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}var w=(0,l.Z)();function S(e){var t,n=e.defaultTheme,r=e.theme,o=e.themeId;return t=r,0===Object.keys(t).length?n:r[o]||r}function k(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.themeId,n=e.defaultTheme,l=void 0===n?w:n,c=e.rootShouldForwardProp,s=void 0===c?b:c,f=e.slotShouldForwardProp,d=void 0===f?b:f,k=function(e){return(0,p.Z)((0,i.Z)({},e,{theme:S((0,i.Z)({},e,{defaultTheme:l,themeId:t}))}))};return k.__mui_systemSx=!0,function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,u.Co)(e,(function(e){return e.filter((function(e){return!(null!=e&&e.__mui_systemSx)}))}));var c,f=n.name,p=n.slot,w=n.skipVariantsResolver,x=n.skipSx,E=n.overridesResolver,O=(0,a.Z)(n,h),C=void 0!==w?w:p&&"Root"!==p||!1,P=x||!1;var _=b;"Root"===p?_=s:p?_=d:v(e)&&(_=void 0);var R=(0,u.ZP)(e,(0,i.Z)({shouldForwardProp:_,label:c},O)),T=function(n){for(var a=arguments.length,u=new Array(a>1?a-1:0),c=1;c0){var h=new Array(p).fill("");(d=[].concat((0,r.Z)(n),(0,r.Z)(h))).raw=[].concat((0,r.Z)(n.raw),(0,r.Z)(h))}else"function"===typeof n&&n.__emotion_real!==n&&(d=function(e){return n((0,i.Z)({},e,{theme:S((0,i.Z)({},e,{defaultTheme:l,themeId:t}))}))});var v=R.apply(void 0,[d].concat((0,r.Z)(s)));return e.muiName&&(v.muiName=e.muiName),v};return R.withConfig&&(T.withConfig=R.withConfig),T}}},5080:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(7462),o=n(3366),a=n(2466),i=n(4942),u=["values","unit","step"];function l(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:900,lg:1200,xl:1536}:t,a=e.unit,l=void 0===a?"px":a,c=e.step,s=void 0===c?5:c,f=(0,o.Z)(e,u),d=function(e){var t=Object.keys(e).map((function(t){return{key:t,val:e[t]}}))||[];return t.sort((function(e,t){return e.val-t.val})),t.reduce((function(e,t){return(0,r.Z)({},e,(0,i.Z)({},t.key,t.val))}),{})}(n),p=Object.keys(d);function h(e){var t="number"===typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(l,")")}function v(e){var t="number"===typeof n[e]?n[e]:e;return"@media (max-width:".concat(t-s/100).concat(l,")")}function m(e,t){var r=p.indexOf(t);return"@media (min-width:".concat("number"===typeof n[e]?n[e]:e).concat(l,") and ")+"(max-width:".concat((-1!==r&&"number"===typeof n[p[r]]?n[p[r]]:t)-s/100).concat(l,")")}return(0,r.Z)({keys:p,values:d,up:h,down:v,between:m,only:function(e){return p.indexOf(e)+10&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=(0,s.hB)({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,i=e.palette,u=void 0===i?{}:i,s=e.spacing,v=e.shape,m=void 0===v?{}:v,y=(0,o.Z)(e,h),g=l(n),b=f(s),w=(0,a.Z)({breakpoints:g,direction:"ltr",components:{},palette:(0,r.Z)({mode:"light"},u),spacing:b,shape:(0,r.Z)({},c,m)},y),S=arguments.length,k=new Array(S>1?S-1:0),x=1;x2){if(!c[e])return[e];e=c[e]}var t=e.split(""),n=(0,r.Z)(t,2),o=n[0],a=n[1],i=u[o],s=l[a]||"";return Array.isArray(s)?s.map((function(e){return i+e})):[i+s]})),f=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],d=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],p=[].concat(f,d);function h(e,t,n,r){var o,i=null!=(o=(0,a.DW)(e,t,!1))?o:n;return"number"===typeof i?function(e){return"string"===typeof e?e:i*e}:Array.isArray(i)?function(e){return"string"===typeof e?e:i[e]}:"function"===typeof i?i:function(){}}function v(e){return h(e,"spacing",8)}function m(e,t){if("string"===typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"===typeof n?-n:"-".concat(n)}function y(e,t,n,r){if(-1===t.indexOf(n))return null;var a=function(e,t){return function(n){return e.reduce((function(e,r){return e[r]=m(t,n),e}),{})}}(s(n),r),i=e[n];return(0,o.k9)(e,i,a)}function g(e,t){var n=v(e.theme);return Object.keys(e).map((function(r){return y(e,t,r,n)})).reduce(i.Z,{})}function b(e){return g(e,f)}function w(e){return g(e,d)}function S(e){return g(e,p)}b.propTypes={},b.filterProps=f,w.propTypes={},w.filterProps=d,S.propTypes={},S.filterProps=p},8529:function(e,t,n){"use strict";n.d(t,{DW:function(){return i},Jq:function(){return u}});var r=n(4942),o=n(7312),a=n(1184);function i(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t||"string"!==typeof t)return null;if(e&&e.vars&&n){var r="vars.".concat(t).split(".").reduce((function(e,t){return e&&e[t]?e[t]:null}),e);if(null!=r)return r}return t.split(".").reduce((function(e,t){return e&&null!=e[t]?e[t]:null}),e)}function u(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;return r="function"===typeof e?e(n):Array.isArray(e)?e[n]||o:i(e,n)||o,t&&(r=t(r,o,e)),r}t.ZP=function(e){var t=e.prop,n=e.cssProperty,l=void 0===n?e.prop:n,c=e.themeKey,s=e.transform,f=function(e){if(null==e[t])return null;var n=e[t],f=i(e.theme,c)||{};return(0,a.k9)(e,n,(function(e){var n=u(f,s,e);return e===n&&"string"===typeof e&&(n=u(f,s,"".concat(t).concat("default"===e?"":(0,o.Z)(e)),e)),!1===l?n:(0,r.Z)({},l,n)}))};return f.propTypes={},f.filterProps=[t],f}},7416:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var r=n(5682),o=n(8529),a=n(8247);var i=function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:a;return(0,o.Z)(e)}},7078:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(5735);var o=n(418);function a(e){var t=e.props,n=e.name,a=e.defaultTheme,i=e.themeId,u=(0,o.Z)(a);i&&(u=u[i]||u);var l=function(e){var t=e.theme,n=e.name,o=e.props;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?(0,r.Z)(t.components[n].defaultProps,o):o}({theme:u,name:n,props:t});return l}},9120:function(e,t,n){"use strict";var r=n(2791),o=n(2564);function a(e){return 0===Object.keys(e).length}t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=r.useContext(o.T);return!t||a(t)?e:t}},5902:function(e,t){"use strict";var n=function(e){return e},r=function(){var e=n;return{configure:function(t){e=t},generate:function(t){return e(t)},reset:function(){e=n}}}();t.Z=r},7312:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(6189);function o(e){if("string"!==typeof e)throw new Error((0,r.Z)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},4419:function(e,t,n){"use strict";function r(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r={};return Object.keys(e).forEach((function(o){r[o]=e[o].reduce((function(e,r){if(r){var o=t(r);""!==o&&e.push(o),n&&n[r]&&e.push(n[r])}return e}),[]).join(" ")})),r}n.d(t,{Z:function(){return r}})},2466:function(e,t,n){"use strict";n.d(t,{P:function(){return o},Z:function(){return i}});var r=n(7462);function o(e){return null!==e&&"object"===typeof e&&e.constructor===Object}function a(e){if(!o(e))return e;var t={};return Object.keys(e).forEach((function(n){t[n]=a(e[n])})),t}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{clone:!0},u=n.clone?(0,r.Z)({},e):e;return o(e)&&o(t)&&Object.keys(t).forEach((function(r){"__proto__"!==r&&(o(t[r])&&r in e&&o(e[r])?u[r]=i(e[r],t[r],n):n.clone?u[r]=o(t[r])?a(t[r]):t[r]:u[r]=t[r])})),u}},6189:function(e,t,n){"use strict";function r(e){for(var t="https://mui.com/production-error/?code="+e,n=1;n2&&void 0!==arguments[2]?arguments[2]:"Mui",a=o[t];return a?"".concat(n,"-").concat(a):"".concat(r.Z.generate(e),"-").concat(t)}},5878:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(1217);function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Mui",o={};return t.forEach((function(t){o[t]=(0,r.Z)(e,t,n)})),o}},5735:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7462);function o(e,t){var n=(0,r.Z)({},t);return Object.keys(e).forEach((function(a){if(a.toString().match(/^(components|slots)$/))n[a]=(0,r.Z)({},e[a],n[a]);else if(a.toString().match(/^(componentsProps|slotProps)$/)){var i=e[a]||{},u=t[a];n[a]={},u&&Object.keys(u)?i&&Object.keys(i)?(n[a]=(0,r.Z)({},u),Object.keys(i).forEach((function(e){n[a][e]=o(i[e],u[e])}))):n[a]=u:n[a]=i}else void 0===n[a]&&(n[a]=e[a])})),n}},2971:function(e,t,n){"use strict";function r(e,t){"function"===typeof e?e(t):e&&(e.current=t)}n.d(t,{Z:function(){return r}})},5721:function(e,t,n){"use strict";var r=n(2791),o="undefined"!==typeof window?r.useLayoutEffect:r.useEffect;t.Z=o},8956:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(2791),o=n(5721);function a(e){var t=r.useRef(e);return(0,o.Z)((function(){t.current=e})),r.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}},7563:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(2791),o=n(2971);function a(){for(var e=arguments.length,t=new Array(e),n=0;n1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:d(e)?2:p(e)?3:0}function l(e,t){return 2===u(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){return 2===u(e)?e.get(t):e[t]}function s(e,t,n){var r=u(e);2===r?e.set(t,n):3===r?e.add(n):e[t]=n}function f(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function d(e){return B&&e instanceof Map}function p(e){return W&&e instanceof Set}function h(e){return e.o||e.t}function v(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Q(e);delete t[K];for(var n=G(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=y),Object.freeze(e),t&&i(e,(function(e,t){return m(t,!0)}),!0)),e}function y(){r(2)}function g(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function b(e){var t=Y[e];return t||r(18,e),t}function w(e,t){Y[e]||(Y[e]=t)}function S(){return F}function k(e,t){t&&(b("Patches"),e.u=[],e.s=[],e.v=t)}function x(e){E(e),e.p.forEach(C),e.p=null}function E(e){e===F&&(F=e.l)}function O(e){return F={p:[],l:F,h:e,m:!0,_:0}}function C(e){var t=e[K];0===t.i||1===t.i?t.j():t.g=!0}function P(e,t){t._=t.p.length;var n=t.p[0],o=void 0!==e&&e!==n;return t.h.O||b("ES5").S(t,e,o),o?(n[K].P&&(x(t),r(4)),a(e)&&(e=_(t,e),t.l||T(t,e)),t.u&&b("Patches").M(n[K].t,e,t.u,t.s)):e=_(t,n,[]),x(t),t.u&&t.v(t.u,t.s),e!==V?e:void 0}function _(e,t,n){if(g(t))return t;var r=t[K];if(!r)return i(t,(function(o,a){return R(e,r,t,o,a,n)}),!0),t;if(r.A!==e)return t;if(!r.P)return T(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var o=4===r.i||5===r.i?r.o=v(r.k):r.o,a=o,u=!1;3===r.i&&(a=new Set(o),o.clear(),u=!0),i(a,(function(t,a){return R(e,r,o,t,a,n,u)})),T(e,o,!1),n&&e.u&&b("Patches").N(r,n,e.u,e.s)}return r.o}function R(e,t,n,r,i,u,c){if(o(i)){var f=_(e,i,u&&t&&3!==t.i&&!l(t.R,r)?u.concat(r):void 0);if(s(n,r,f),!o(f))return;e.m=!1}else c&&n.add(i);if(a(i)&&!g(i)){if(!e.h.D&&e._<1)return;_(e,i),t&&t.A.l||T(e,i)}}function T(e,t,n){void 0===n&&(n=!1),!e.l&&e.h.D&&e.m&&m(t,n)}function j(e,t){var n=e[K];return(n?h(n):e)[t]}function A(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function N(e){e.P||(e.P=!0,e.l&&N(e.l))}function Z(e){e.o||(e.o=v(e.t))}function L(e,t,n){var r=d(t)?b("MapSet").F(t,n):p(t)?b("MapSet").T(t,n):e.O?function(e,t){var n=Array.isArray(e),r={i:n?1:0,A:t?t.A:S(),P:!1,I:!1,R:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=r,a=X;n&&(o=[r],a=J);var i=Proxy.revocable(o,a),u=i.revoke,l=i.proxy;return r.k=l,r.j=u,l}(t,n):b("ES5").J(t,n);return(n?n.A:S()).p.push(r),r}function I(e){return o(e)||r(22,e),function e(t){if(!a(t))return t;var n,r=t[K],o=u(t);if(r){if(!r.P&&(r.i<4||!b("ES5").K(r)))return r.t;r.I=!0,n=z(t,o),r.I=!1}else n=z(t,o);return i(n,(function(t,o){r&&c(r.t,t)===o||s(n,t,e(o))})),3===o?new Set(n):n}(e)}function z(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return v(e)}function M(){function e(e,t){var n=a[e];return n?n.enumerable=t:a[e]=n={configurable:!0,enumerable:t,get:function(){var t=this[K];return X.get(t,e)},set:function(t){var n=this[K];X.set(n,e,t)}},n}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][K];if(!o.P)switch(o.i){case 5:r(o)&&N(o);break;case 4:n(o)&&N(o)}}}function n(e){for(var t=e.t,n=e.k,r=G(n),o=r.length-1;o>=0;o--){var a=r[o];if(a!==K){var i=t[a];if(void 0===i&&!l(t,a))return!0;var u=n[a],c=u&&u[K];if(c?c.t!==i:!f(u,i))return!0}}var s=!!t[K];return r.length!==G(t).length+(s?0:1)}function r(e){var t=e.k;if(t.length!==e.t.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);if(n&&!n.get)return!0;for(var r=0;r1?r-1:0),a=1;a1?r-1:0),a=1;a=0;n--){var r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}n>-1&&(t=t.slice(n+1));var a=b("Patches").$;return o(e)?a(e,t):this.produce(e,(function(e){return a(e,t)}))},e}(),te=new ee,ne=te.produce,re=(te.produceWithPatches.bind(te),te.setAutoFreeze.bind(te),te.setUseProxies.bind(te),te.applyPatches.bind(te),te.createDraft.bind(te),te.finishDraft.bind(te),ne),oe=n(7781);function ae(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(o){return"function"===typeof o?o(n,r,e):t(o)}}}}var ie=ae();ie.withExtraArgument=ae;var ue=ie,le=function(){var e=function(t,n){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},e(t,n)};return function(t,n){if("function"!==typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),ce=function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},"function"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=(o=i.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]