| @@ -3630,7 +3630,6 @@ | |||
| "version": "8.19.0", | |||
| "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", | |||
| "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "@babel/code-frame": "^7.10.4", | |||
| "@babel/runtime": "^7.12.5", | |||
| @@ -3649,7 +3648,6 @@ | |||
| "version": "7.14.0", | |||
| "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", | |||
| "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "regenerator-runtime": "^0.13.4" | |||
| } | |||
| @@ -3658,7 +3656,6 @@ | |||
| "version": "4.3.0", | |||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", | |||
| "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "color-convert": "^2.0.1" | |||
| }, | |||
| @@ -3673,7 +3670,6 @@ | |||
| "version": "5.1.1", | |||
| "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz", | |||
| "integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "deep-equal": "^2.0.5" | |||
| } | |||
| @@ -3682,7 +3678,6 @@ | |||
| "version": "4.1.1", | |||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", | |||
| "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "ansi-styles": "^4.1.0", | |||
| "supports-color": "^7.1.0" | |||
| @@ -3698,7 +3693,6 @@ | |||
| "version": "2.0.1", | |||
| "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | |||
| "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "color-name": "~1.1.4" | |||
| }, | |||
| @@ -3709,14 +3703,12 @@ | |||
| "node_modules/@testing-library/dom/node_modules/color-name": { | |||
| "version": "1.1.4", | |||
| "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | |||
| "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | |||
| "dev": true | |||
| "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" | |||
| }, | |||
| "node_modules/@testing-library/dom/node_modules/deep-equal": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", | |||
| "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "call-bind": "^1.0.0", | |||
| "es-get-iterator": "^1.1.1", | |||
| @@ -3742,7 +3734,6 @@ | |||
| "version": "4.0.0", | |||
| "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | |||
| "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | |||
| "dev": true, | |||
| "engines": { | |||
| "node": ">=8" | |||
| } | |||
| @@ -3750,14 +3741,12 @@ | |||
| "node_modules/@testing-library/dom/node_modules/isarray": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" | |||
| }, | |||
| "node_modules/@testing-library/dom/node_modules/pretty-format": { | |||
| "version": "27.5.1", | |||
| "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", | |||
| "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "ansi-regex": "^5.0.1", | |||
| "ansi-styles": "^5.0.0", | |||
| @@ -3771,7 +3760,6 @@ | |||
| "version": "5.2.0", | |||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", | |||
| "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", | |||
| "dev": true, | |||
| "engines": { | |||
| "node": ">=10" | |||
| }, | |||
| @@ -3783,7 +3771,6 @@ | |||
| "version": "7.2.0", | |||
| "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", | |||
| "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "has-flag": "^4.0.0" | |||
| }, | |||
| @@ -3961,8 +3948,7 @@ | |||
| "node_modules/@types/aria-query": { | |||
| "version": "4.2.1", | |||
| "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", | |||
| "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==", | |||
| "dev": true | |||
| "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==" | |||
| }, | |||
| "node_modules/@types/babel__core": { | |||
| "version": "7.1.14", | |||
| @@ -5128,7 +5114,6 @@ | |||
| "version": "1.0.5", | |||
| "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", | |||
| "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", | |||
| "dev": true, | |||
| "engines": { | |||
| "node": ">= 0.4" | |||
| }, | |||
| @@ -8082,8 +8067,7 @@ | |||
| "node_modules/dom-accessibility-api": { | |||
| "version": "0.5.14", | |||
| "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", | |||
| "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", | |||
| "dev": true | |||
| "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" | |||
| }, | |||
| "node_modules/dom-converter": { | |||
| "version": "0.2.0", | |||
| @@ -8493,7 +8477,6 @@ | |||
| "version": "1.1.2", | |||
| "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", | |||
| "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "call-bind": "^1.0.2", | |||
| "get-intrinsic": "^1.1.0", | |||
| @@ -8511,8 +8494,7 @@ | |||
| "node_modules/es-get-iterator/node_modules/isarray": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" | |||
| }, | |||
| "node_modules/es-to-primitive": { | |||
| "version": "1.2.1", | |||
| @@ -10284,7 +10266,6 @@ | |||
| "version": "0.3.3", | |||
| "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", | |||
| "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "is-callable": "^1.1.3" | |||
| } | |||
| @@ -12065,7 +12046,6 @@ | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", | |||
| "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", | |||
| "dev": true, | |||
| "funding": { | |||
| "url": "https://github.com/sponsors/ljharb" | |||
| } | |||
| @@ -12223,7 +12203,6 @@ | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", | |||
| "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", | |||
| "dev": true, | |||
| "funding": { | |||
| "url": "https://github.com/sponsors/ljharb" | |||
| } | |||
| @@ -12282,7 +12261,6 @@ | |||
| "version": "1.1.9", | |||
| "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", | |||
| "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "available-typed-arrays": "^1.0.5", | |||
| "call-bind": "^1.0.2", | |||
| @@ -12306,7 +12284,6 @@ | |||
| "version": "2.0.1", | |||
| "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", | |||
| "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", | |||
| "dev": true, | |||
| "funding": { | |||
| "url": "https://github.com/sponsors/ljharb" | |||
| } | |||
| @@ -12326,7 +12303,6 @@ | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", | |||
| "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "call-bind": "^1.0.2", | |||
| "get-intrinsic": "^1.1.1" | |||
| @@ -14410,6 +14386,12 @@ | |||
| "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", | |||
| "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" | |||
| }, | |||
| "node_modules/jquery": { | |||
| "version": "3.6.2", | |||
| "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.2.tgz", | |||
| "integrity": "sha512-/e7ulNIEEYk1Z/l4X0vpxGt+B/dNsV8ghOPAWZaJs8pkGvsSC0tm33aMGylXcj/U7y4IcvwtMXPMyBFZn/gK9A==", | |||
| "peer": true | |||
| }, | |||
| "node_modules/js-tokens": { | |||
| "version": "4.0.0", | |||
| "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | |||
| @@ -15156,7 +15138,6 @@ | |||
| "version": "1.4.4", | |||
| "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", | |||
| "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", | |||
| "dev": true, | |||
| "bin": { | |||
| "lz-string": "bin/bin.js" | |||
| } | |||
| @@ -18058,7 +18039,6 @@ | |||
| "version": "2.3.1", | |||
| "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", | |||
| "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", | |||
| "dev": true, | |||
| "bin": { | |||
| "prettier": "bin-prettier.js" | |||
| }, | |||
| @@ -22194,6 +22174,19 @@ | |||
| "is-typedarray": "^1.0.0" | |||
| } | |||
| }, | |||
| "node_modules/typescript": { | |||
| "version": "4.9.4", | |||
| "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", | |||
| "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", | |||
| "peer": true, | |||
| "bin": { | |||
| "tsc": "bin/tsc", | |||
| "tsserver": "bin/tsserver" | |||
| }, | |||
| "engines": { | |||
| "node": ">=4.2.0" | |||
| } | |||
| }, | |||
| "node_modules/typescript-compare": { | |||
| "version": "0.0.2", | |||
| "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", | |||
| @@ -24237,7 +24230,6 @@ | |||
| "version": "1.0.1", | |||
| "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", | |||
| "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "is-map": "^2.0.1", | |||
| "is-set": "^2.0.1", | |||
| @@ -24257,7 +24249,6 @@ | |||
| "version": "1.1.8", | |||
| "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", | |||
| "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", | |||
| "dev": true, | |||
| "dependencies": { | |||
| "available-typed-arrays": "^1.0.5", | |||
| "call-bind": "^1.0.2", | |||
| @@ -26124,7 +26115,8 @@ | |||
| "@emotion/use-insertion-effect-with-fallbacks": { | |||
| "version": "1.0.0", | |||
| "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", | |||
| "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==" | |||
| "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", | |||
| "requires": {} | |||
| }, | |||
| "@emotion/utils": { | |||
| "version": "1.2.0", | |||
| @@ -26915,7 +26907,8 @@ | |||
| "@mui/types": { | |||
| "version": "7.2.0", | |||
| "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", | |||
| "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==" | |||
| "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==", | |||
| "requires": {} | |||
| }, | |||
| "@mui/utils": { | |||
| "version": "5.10.9", | |||
| @@ -27313,7 +27306,6 @@ | |||
| "version": "8.19.0", | |||
| "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", | |||
| "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", | |||
| "dev": true, | |||
| "requires": { | |||
| "@babel/code-frame": "^7.10.4", | |||
| "@babel/runtime": "^7.12.5", | |||
| @@ -27329,7 +27321,6 @@ | |||
| "version": "7.14.0", | |||
| "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", | |||
| "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", | |||
| "dev": true, | |||
| "requires": { | |||
| "regenerator-runtime": "^0.13.4" | |||
| } | |||
| @@ -27338,7 +27329,6 @@ | |||
| "version": "4.3.0", | |||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", | |||
| "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", | |||
| "dev": true, | |||
| "requires": { | |||
| "color-convert": "^2.0.1" | |||
| } | |||
| @@ -27347,7 +27337,6 @@ | |||
| "version": "5.1.1", | |||
| "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz", | |||
| "integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==", | |||
| "dev": true, | |||
| "requires": { | |||
| "deep-equal": "^2.0.5" | |||
| } | |||
| @@ -27356,7 +27345,6 @@ | |||
| "version": "4.1.1", | |||
| "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", | |||
| "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", | |||
| "dev": true, | |||
| "requires": { | |||
| "ansi-styles": "^4.1.0", | |||
| "supports-color": "^7.1.0" | |||
| @@ -27366,7 +27354,6 @@ | |||
| "version": "2.0.1", | |||
| "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | |||
| "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | |||
| "dev": true, | |||
| "requires": { | |||
| "color-name": "~1.1.4" | |||
| } | |||
| @@ -27374,14 +27361,12 @@ | |||
| "color-name": { | |||
| "version": "1.1.4", | |||
| "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | |||
| "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | |||
| "dev": true | |||
| "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" | |||
| }, | |||
| "deep-equal": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", | |||
| "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", | |||
| "dev": true, | |||
| "requires": { | |||
| "call-bind": "^1.0.0", | |||
| "es-get-iterator": "^1.1.1", | |||
| @@ -27403,20 +27388,17 @@ | |||
| "has-flag": { | |||
| "version": "4.0.0", | |||
| "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | |||
| "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | |||
| "dev": true | |||
| "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" | |||
| }, | |||
| "isarray": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" | |||
| }, | |||
| "pretty-format": { | |||
| "version": "27.5.1", | |||
| "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", | |||
| "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", | |||
| "dev": true, | |||
| "requires": { | |||
| "ansi-regex": "^5.0.1", | |||
| "ansi-styles": "^5.0.0", | |||
| @@ -27426,8 +27408,7 @@ | |||
| "ansi-styles": { | |||
| "version": "5.2.0", | |||
| "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", | |||
| "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", | |||
| "dev": true | |||
| "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" | |||
| } | |||
| } | |||
| }, | |||
| @@ -27435,7 +27416,6 @@ | |||
| "version": "7.2.0", | |||
| "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", | |||
| "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", | |||
| "dev": true, | |||
| "requires": { | |||
| "has-flag": "^4.0.0" | |||
| } | |||
| @@ -27574,8 +27554,7 @@ | |||
| "@types/aria-query": { | |||
| "version": "4.2.1", | |||
| "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", | |||
| "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==", | |||
| "dev": true | |||
| "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==" | |||
| }, | |||
| "@types/babel__core": { | |||
| "version": "7.1.14", | |||
| @@ -28193,7 +28172,8 @@ | |||
| "acorn-jsx": { | |||
| "version": "5.3.2", | |||
| "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", | |||
| "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" | |||
| "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", | |||
| "requires": {} | |||
| }, | |||
| "acorn-walk": { | |||
| "version": "7.2.0", | |||
| @@ -28245,12 +28225,14 @@ | |||
| "ajv-errors": { | |||
| "version": "1.0.1", | |||
| "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", | |||
| "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" | |||
| "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", | |||
| "requires": {} | |||
| }, | |||
| "ajv-keywords": { | |||
| "version": "3.5.2", | |||
| "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", | |||
| "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" | |||
| "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", | |||
| "requires": {} | |||
| }, | |||
| "alphanum-sort": { | |||
| "version": "1.0.2", | |||
| @@ -28529,8 +28511,7 @@ | |||
| "available-typed-arrays": { | |||
| "version": "1.0.5", | |||
| "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", | |||
| "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", | |||
| "dev": true | |||
| "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" | |||
| }, | |||
| "axe-core": { | |||
| "version": "4.2.2", | |||
| @@ -28728,7 +28709,8 @@ | |||
| "babel-plugin-named-asset-import": { | |||
| "version": "0.3.7", | |||
| "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz", | |||
| "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==" | |||
| "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==", | |||
| "requires": {} | |||
| }, | |||
| "babel-plugin-polyfill-corejs2": { | |||
| "version": "0.2.2", | |||
| @@ -30868,8 +30850,7 @@ | |||
| "dom-accessibility-api": { | |||
| "version": "0.5.14", | |||
| "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", | |||
| "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", | |||
| "dev": true | |||
| "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" | |||
| }, | |||
| "dom-converter": { | |||
| "version": "0.2.0", | |||
| @@ -31226,7 +31207,6 @@ | |||
| "version": "1.1.2", | |||
| "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", | |||
| "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", | |||
| "dev": true, | |||
| "requires": { | |||
| "call-bind": "^1.0.2", | |||
| "get-intrinsic": "^1.1.0", | |||
| @@ -31241,8 +31221,7 @@ | |||
| "isarray": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" | |||
| } | |||
| } | |||
| }, | |||
| @@ -31524,7 +31503,8 @@ | |||
| "version": "8.3.0", | |||
| "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", | |||
| "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", | |||
| "dev": true | |||
| "dev": true, | |||
| "requires": {} | |||
| }, | |||
| "eslint-config-react-app": { | |||
| "version": "6.0.0", | |||
| @@ -31758,7 +31738,8 @@ | |||
| "eslint-plugin-react-hooks": { | |||
| "version": "4.2.0", | |||
| "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", | |||
| "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==" | |||
| "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==", | |||
| "requires": {} | |||
| }, | |||
| "eslint-plugin-security": { | |||
| "version": "1.4.0", | |||
| @@ -32560,7 +32541,6 @@ | |||
| "version": "0.3.3", | |||
| "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", | |||
| "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", | |||
| "dev": true, | |||
| "requires": { | |||
| "is-callable": "^1.1.3" | |||
| } | |||
| @@ -33940,8 +33920,7 @@ | |||
| "is-map": { | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", | |||
| "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", | |||
| "dev": true | |||
| "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" | |||
| }, | |||
| "is-module": { | |||
| "version": "1.0.0", | |||
| @@ -34044,8 +34023,7 @@ | |||
| "is-set": { | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", | |||
| "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", | |||
| "dev": true | |||
| "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" | |||
| }, | |||
| "is-shared-array-buffer": { | |||
| "version": "1.0.2", | |||
| @@ -34080,7 +34058,6 @@ | |||
| "version": "1.1.9", | |||
| "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", | |||
| "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", | |||
| "dev": true, | |||
| "requires": { | |||
| "available-typed-arrays": "^1.0.5", | |||
| "call-bind": "^1.0.2", | |||
| @@ -34097,8 +34074,7 @@ | |||
| "is-weakmap": { | |||
| "version": "2.0.1", | |||
| "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", | |||
| "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", | |||
| "dev": true | |||
| "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" | |||
| }, | |||
| "is-weakref": { | |||
| "version": "1.0.2", | |||
| @@ -34112,7 +34088,6 @@ | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", | |||
| "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", | |||
| "dev": true, | |||
| "requires": { | |||
| "call-bind": "^1.0.2", | |||
| "get-intrinsic": "^1.1.1" | |||
| @@ -34902,7 +34877,8 @@ | |||
| "jest-pnp-resolver": { | |||
| "version": "1.2.2", | |||
| "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", | |||
| "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" | |||
| "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", | |||
| "requires": {} | |||
| }, | |||
| "jest-regex-util": { | |||
| "version": "26.0.0", | |||
| @@ -35648,6 +35624,12 @@ | |||
| "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", | |||
| "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" | |||
| }, | |||
| "jquery": { | |||
| "version": "3.6.2", | |||
| "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.2.tgz", | |||
| "integrity": "sha512-/e7ulNIEEYk1Z/l4X0vpxGt+B/dNsV8ghOPAWZaJs8pkGvsSC0tm33aMGylXcj/U7y4IcvwtMXPMyBFZn/gK9A==", | |||
| "peer": true | |||
| }, | |||
| "js-tokens": { | |||
| "version": "4.0.0", | |||
| "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | |||
| @@ -36247,8 +36229,7 @@ | |||
| "lz-string": { | |||
| "version": "1.4.4", | |||
| "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", | |||
| "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", | |||
| "dev": true | |||
| "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" | |||
| }, | |||
| "magic-string": { | |||
| "version": "0.25.7", | |||
| @@ -38579,8 +38560,7 @@ | |||
| "prettier": { | |||
| "version": "2.3.1", | |||
| "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", | |||
| "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", | |||
| "dev": true | |||
| "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==" | |||
| }, | |||
| "prettier-linter-helpers": { | |||
| "version": "1.0.0", | |||
| @@ -39533,7 +39513,8 @@ | |||
| "redux-thunk": { | |||
| "version": "2.4.1", | |||
| "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", | |||
| "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==" | |||
| "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", | |||
| "requires": {} | |||
| }, | |||
| "regenerate": { | |||
| "version": "1.4.2", | |||
| @@ -39875,7 +39856,8 @@ | |||
| "rifm": { | |||
| "version": "0.12.1", | |||
| "resolved": "https://registry.npmjs.org/rifm/-/rifm-0.12.1.tgz", | |||
| "integrity": "sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==" | |||
| "integrity": "sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==", | |||
| "requires": {} | |||
| }, | |||
| "rimraf": { | |||
| "version": "3.0.2", | |||
| @@ -40609,7 +40591,8 @@ | |||
| "slick-carousel": { | |||
| "version": "1.8.1", | |||
| "resolved": "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz", | |||
| "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==" | |||
| "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==", | |||
| "requires": {} | |||
| }, | |||
| "snapdragon": { | |||
| "version": "0.8.2", | |||
| @@ -41860,6 +41843,12 @@ | |||
| "is-typedarray": "^1.0.0" | |||
| } | |||
| }, | |||
| "typescript": { | |||
| "version": "4.9.4", | |||
| "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", | |||
| "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", | |||
| "peer": true | |||
| }, | |||
| "typescript-compare": { | |||
| "version": "0.0.2", | |||
| "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", | |||
| @@ -42186,7 +42175,8 @@ | |||
| "use-dynamic-refs": { | |||
| "version": "1.0.0", | |||
| "resolved": "https://registry.npmjs.org/use-dynamic-refs/-/use-dynamic-refs-1.0.0.tgz", | |||
| "integrity": "sha512-1Ky+Jaj6MIpTRz6NTaCLVm/iDXfRNwUMH9X7BkLtgSL2RCXHQhK2p9SVhut8jZPDfxLDtOIYNM3txsiLXd4yVQ==" | |||
| "integrity": "sha512-1Ky+Jaj6MIpTRz6NTaCLVm/iDXfRNwUMH9X7BkLtgSL2RCXHQhK2p9SVhut8jZPDfxLDtOIYNM3txsiLXd4yVQ==", | |||
| "requires": {} | |||
| }, | |||
| "util": { | |||
| "version": "0.11.1", | |||
| @@ -43486,7 +43476,6 @@ | |||
| "version": "1.0.1", | |||
| "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", | |||
| "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", | |||
| "dev": true, | |||
| "requires": { | |||
| "is-map": "^2.0.1", | |||
| "is-set": "^2.0.1", | |||
| @@ -43503,7 +43492,6 @@ | |||
| "version": "1.1.8", | |||
| "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", | |||
| "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", | |||
| "dev": true, | |||
| "requires": { | |||
| "available-typed-arrays": "^1.0.5", | |||
| "call-bind": "^1.0.2", | |||
| @@ -43791,7 +43779,8 @@ | |||
| "ws": { | |||
| "version": "7.4.6", | |||
| "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", | |||
| "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" | |||
| "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", | |||
| "requires": {} | |||
| }, | |||
| "xdg-basedir": { | |||
| "version": "4.0.0", | |||
| @@ -0,0 +1,105 @@ | |||
| import * as redux from "react-redux"; | |||
| import store from "../../store"; | |||
| import { Router } from "react-router-dom"; | |||
| import history from "../../store/utils/history"; | |||
| import { mockState } from "../../mockState"; | |||
| import { render } from "@testing-library/react"; | |||
| import * as api from "../../request/candidatesRequest"; | |||
| import { runSaga } from "redux-saga"; | |||
| import { ADS_CANDIDATES_FETCH } from "../../store/actions/candidates/candidatesActionConstants"; | |||
| import { getAdsCandidates } from "../../store/saga/candidatesSaga"; | |||
| import { | |||
| fetchAdsCandidates, | |||
| fetchAdsCandidatesError, | |||
| } from "../../store/actions/candidates/candidatesActions"; | |||
| import AdsCandidatesPage from "../../pages/CandidatesPage/AdsCandidatesPage"; | |||
| describe("AdsCandidatesPage render tests", () => { | |||
| const cont = ( | |||
| <redux.Provider store={store}> | |||
| <Router history={history}> | |||
| <AdsCandidatesPage search="" /> | |||
| </Router> | |||
| </redux.Provider> | |||
| ); | |||
| let spyOnUseSelector; | |||
| let spyOnUseDispatch; | |||
| let mockDispatch; | |||
| beforeEach(() => { | |||
| // Mock useSelector hook | |||
| spyOnUseSelector = jest.spyOn(redux, "useSelector"); | |||
| spyOnUseSelector | |||
| .mockReturnValueOnce(mockState.candidates.adsCandidates) | |||
| .mockReturnValueOnce(mockState.candidates.adsCandidates); | |||
| // Mock useDispatch hook | |||
| spyOnUseDispatch = jest.spyOn(redux, "useDispatch"); | |||
| // Mock dispatch function returned from useDispatch | |||
| mockDispatch = jest.fn(); | |||
| spyOnUseDispatch.mockReturnValue(mockDispatch); | |||
| }); | |||
| afterEach(() => { | |||
| jest.restoreAllMocks(); | |||
| }); | |||
| it("Should dispatch get adsCandidates request when rendered", () => { | |||
| render(cont); | |||
| expect(mockDispatch).toHaveBeenCalledWith({ | |||
| type: ADS_CANDIDATES_FETCH, | |||
| payload: { | |||
| currentPage: 0, | |||
| employmentType: "", | |||
| maxDateOfApplication: "", | |||
| maxExperience: 0, | |||
| minDateOfApplication: "", | |||
| minExperience: 0, | |||
| pageSize: 0, | |||
| technologies: [], | |||
| }, | |||
| }); | |||
| }); | |||
| it("should load and handle adsCandidates in case of success", async () => { | |||
| const dispatchedActions = []; | |||
| const mockedCall = { data: mockState.technologies.technologies }; | |||
| api.getFilteredAdsCandidates = jest.fn(() => Promise.resolve(mockedCall)); | |||
| const fakeStore = { | |||
| getState: () => mockState.candidates.adsCandidates, | |||
| dispatch: (action) => dispatchedActions.push(action), | |||
| }; | |||
| await runSaga(fakeStore, getAdsCandidates, {}).done; | |||
| expect(api.getFilteredAdsCandidates.mock.calls.length).toBe(1); | |||
| expect(dispatchedActions[0].payload).toBe( | |||
| fetchAdsCandidates(mockedCall.data).payload | |||
| ); | |||
| }); | |||
| // it("should handle adsCandidates load errors in case of failure", async () => { | |||
| // const dispatchedActions = []; | |||
| // const error = { | |||
| // response: { | |||
| // data: { message: mockState.candidates.fetchCandidatesErrorMessage }, | |||
| // }, | |||
| // }; | |||
| // api.getFilteredAdsCandidates = jest.fn(() => Promise.reject(error)); | |||
| // const fakeStore = { | |||
| // getState: () => mockState.candidates.adsCandidates, | |||
| // dispatch: (action) => dispatchedActions.push(action), | |||
| // }; | |||
| // await runSaga(fakeStore, getAdsCandidates,{}).done; | |||
| // expect(api.getFilteredAdsCandidates.mock.calls.length).toBe(1); | |||
| // expect(dispatchedActions).toContainEqual( | |||
| // fetchAdsCandidates(error.response.data.message) | |||
| // ); | |||
| // }); | |||
| }); | |||
| @@ -66,26 +66,26 @@ describe("CandidatesPage render tests", () => { | |||
| expect(dispatchedActions).toContainEqual(setTechnologies(mockedCall.data)); | |||
| }); | |||
| // it("should handle technologies load errors in case of failure", async () => { | |||
| // const dispatchedActions = []; | |||
| // it("should handle technologies load errors in case of failure", async () => { | |||
| // const dispatchedActions = []; | |||
| // const error = { | |||
| // response: { | |||
| // data: { message: mockState.technologies.fetchTecnologiesErrorMessage }, | |||
| // }, | |||
| // }; | |||
| // api.getAllTechnologies = jest.fn(() => Promise.reject(error)); | |||
| // const error = { | |||
| // response: { | |||
| // data: { message: mockState.technologies.fetchTecnologiesErrorMessage }, | |||
| // }, | |||
| // }; | |||
| // api.getAllTechnologies = jest.fn(() => Promise.reject(error)); | |||
| // const fakeStore = { | |||
| // getState: () => mockState.technologies.technologies, | |||
| // dispatch: (action) => dispatchedActions.push(action), | |||
| // }; | |||
| // const fakeStore = { | |||
| // getState: () => mockState.technologies.technologies, | |||
| // dispatch: (action) => dispatchedActions.push(action), | |||
| // }; | |||
| // await runSaga(fakeStore, getTechnologies).done; | |||
| // await runSaga(fakeStore, getTechnologies).done; | |||
| // expect(api.getAllTechnologies.mock.calls.length).toBe(1); | |||
| // expect(dispatchedActions).toContainEqual( | |||
| // setTechnologiesError(error.response.data.message) | |||
| // ); | |||
| // }); | |||
| // expect(api.getAllTechnologies.mock.calls.length).toBe(1); | |||
| // expect(dispatchedActions).toContainEqual( | |||
| // setTechnologiesError(error.response.data.message) | |||
| // ); | |||
| // }); | |||
| }); | |||
| @@ -1,18 +1,23 @@ | |||
| import { runSaga } from 'redux-saga'; | |||
| import * as api from '../../request/processesReguest'; | |||
| import { runSaga } from "redux-saga"; | |||
| import * as api from "../../request/processesReguest"; | |||
| import { render } from "@testing-library/react"; | |||
| import * as redux from "react-redux"; | |||
| import SelectionProcessPage from '../../pages/selectionProcessPage/selectionProcessPage'; "../../pages/SelectionProcessPage/SelectionProcessPage"; | |||
| import SelectionProcessPage from "../../pages/selectionProcessPage/selectionProcessPage"; | |||
| ("../../pages/SelectionProcessPage/SelectionProcessPage"); | |||
| import store from "../../store"; | |||
| import "../../i18n"; | |||
| import { mockState } from "../../mockState"; | |||
| import { | |||
| FETCH_PROCESSES_REQ | |||
| } from "../../store/actions/processes/processesActionConstants"; | |||
| import { FETCH_PROCESSES_REQ } from "../../store/actions/processes/processesActionConstants"; | |||
| import { Router } from "react-router-dom"; | |||
| import history from "../../store/utils/history"; | |||
| import { getProcesses, getFilteredProcesses } from '../../store/saga/processSaga'; | |||
| import { setProcesses, setProcessesError } from '../../store/actions/processes/processesAction'; | |||
| import { | |||
| getProcesses, | |||
| getFilteredProcesses, | |||
| } from "../../store/saga/processSaga"; | |||
| import { | |||
| setProcesses, | |||
| setProcessesError, | |||
| } from "../../store/actions/processes/processesAction"; | |||
| describe("SelectionProcessPage render tests", () => { | |||
| const cont = ( | |||
| @@ -30,7 +35,10 @@ describe("SelectionProcessPage render tests", () => { | |||
| beforeEach(() => { | |||
| // Mock useSelector hook | |||
| spyOnUseSelector = jest.spyOn(redux, "useSelector"); | |||
| spyOnUseSelector.mockReturnValueOnce(mockState.selections).mockReturnValueOnce(mockState.selections.processes).mockReturnValueOnce(mockState.selections.statuses); | |||
| spyOnUseSelector | |||
| .mockReturnValueOnce(mockState.selections) | |||
| .mockReturnValueOnce(mockState.selections.processes) | |||
| .mockReturnValueOnce(mockState.selections.statuses); | |||
| // Mock useDispatch hook | |||
| spyOnUseDispatch = jest.spyOn(redux, "useDispatch"); | |||
| @@ -50,7 +58,7 @@ describe("SelectionProcessPage render tests", () => { | |||
| }); | |||
| }); | |||
| it('should load and handle levels with processes in case of success', async () => { | |||
| it("should load and handle levels with processes in case of success", async () => { | |||
| // we push all dispatched actions to make assertions easier | |||
| // and our tests less brittle | |||
| const dispatchedActions = []; | |||
| @@ -63,8 +71,8 @@ describe("SelectionProcessPage render tests", () => { | |||
| api.getAllLevels = jest.fn(() => Promise.resolve(mockedCall)); | |||
| const fakeStore = { | |||
| getState: () => (mockState.selections.processes), | |||
| dispatch: action => dispatchedActions.push(action), | |||
| getState: () => mockState.selections.processes, | |||
| dispatch: (action) => dispatchedActions.push(action), | |||
| }; | |||
| // wait for saga to complete | |||
| @@ -73,39 +81,49 @@ describe("SelectionProcessPage render tests", () => { | |||
| expect(dispatchedActions).toContainEqual(setProcesses(mockedCall.data)); | |||
| }); | |||
| it('should handle processes load errors in case of failure', async () => { | |||
| it("should handle processes load errors in case of failure", async () => { | |||
| const dispatchedActions = []; | |||
| // we simulate an error by rejecting the promise | |||
| // then we assert if our saga dispatched the action(s) correctly | |||
| const error = { response: { data: { message: mockState.selections.fetchSelectionsErrorMessage } } }; | |||
| const error = { | |||
| response: { | |||
| data: { message: mockState.selections.fetchSelectionsErrorMessage }, | |||
| }, | |||
| }; | |||
| api.getAllLevels = jest.fn(() => Promise.reject(error)); | |||
| const fakeStore = { | |||
| getState: () => (mockState.users.users), | |||
| dispatch: action => dispatchedActions.push(action), | |||
| getState: () => mockState.users.users, | |||
| dispatch: (action) => dispatchedActions.push(action), | |||
| }; | |||
| await runSaga(fakeStore, getProcesses).done; | |||
| expect(api.getAllLevels.mock.calls.length).toBe(1); | |||
| expect(dispatchedActions).toContainEqual(setProcessesError(error.response.data.message)); | |||
| expect(dispatchedActions).toContainEqual( | |||
| setProcessesError(error.response.data.message) | |||
| ); | |||
| }); | |||
| it('should load and handle levels with filtered processes in case of success', async () => { | |||
| it("should load and handle levels with filtered processes in case of success", async () => { | |||
| // we push all dispatched actions to make assertions easier | |||
| // and our tests less brittle | |||
| const dispatchedActions = []; | |||
| const filter = { | |||
| statuses: ["Zakazan","Odrađen"], | |||
| dateStart: new Date(2023,0,5), | |||
| dateEnd: new Date(2024,1,1) | |||
| statuses: ["Zakazan", "Odrađen"], | |||
| dateStart: new Date(2023, 0, 5), | |||
| dateEnd: new Date(2024, 1, 1), | |||
| }; | |||
| const filteredData = []; | |||
| mockState.selections.processes.forEach(level => { | |||
| mockState.selections.processes.forEach((level) => { | |||
| const filteredLevel = level; | |||
| filteredLevel.selectionProcesses = level.selectionProcesses.filter(v => v.date >= filter.dateStart && v.date <= filter.dateEnd && filter.statuses.includes(v.status)); | |||
| filteredLevel.selectionProcesses = level.selectionProcesses.filter( | |||
| (v) => | |||
| v.date >= filter.dateStart && | |||
| v.date <= filter.dateEnd && | |||
| filter.statuses.includes(v.status) | |||
| ); | |||
| filteredData.push(filteredLevel); | |||
| }); | |||
| // we don't want to perform an actual api call in our tests | |||
| @@ -116,29 +134,34 @@ describe("SelectionProcessPage render tests", () => { | |||
| api.getAllFilteredProcessesReq = jest.fn(() => Promise.resolve(mockedCall)); | |||
| const fakeStore = { | |||
| getState: () => (mockState.selections.processes), | |||
| dispatch: action => dispatchedActions.push(action), | |||
| getState: () => mockState.selections.processes, | |||
| dispatch: (action) => dispatchedActions.push(action), | |||
| }; | |||
| // wait for saga to complete | |||
| await runSaga(fakeStore, getFilteredProcesses,filter).done; | |||
| await runSaga(fakeStore, getFilteredProcesses, filter).done; | |||
| expect(api.getAllFilteredProcessesReq.mock.calls.length).toBe(1); | |||
| expect(dispatchedActions).toContainEqual(setProcesses(filteredData)); | |||
| }); | |||
| it('should handle process to set it done in case of success', async () => { | |||
| it("should handle process to set it done in case of success", async () => { | |||
| // we push all dispatched actions to make assertions easier | |||
| // and our tests less brittle | |||
| const dispatchedActions = []; | |||
| const filter = { | |||
| statuses: ["Zakazan","Odrađen"], | |||
| dateStart: new Date(2023,0,5), | |||
| dateEnd: new Date(2024,1,1) | |||
| statuses: ["Zakazan", "Odrađen"], | |||
| dateStart: new Date(2023, 0, 5), | |||
| dateEnd: new Date(2024, 1, 1), | |||
| }; | |||
| const filteredData = []; | |||
| mockState.selections.processes.forEach(level => { | |||
| mockState.selections.processes.forEach((level) => { | |||
| const filteredLevel = level; | |||
| filteredLevel.selectionProcesses = level.selectionProcesses.filter(v => v.date >= filter.dateStart && v.date <= filter.dateEnd && filter.statuses.includes(v.status)); | |||
| filteredLevel.selectionProcesses = level.selectionProcesses.filter( | |||
| (v) => | |||
| v.date >= filter.dateStart && | |||
| v.date <= filter.dateEnd && | |||
| filter.statuses.includes(v.status) | |||
| ); | |||
| filteredData.push(filteredLevel); | |||
| }); | |||
| // we don't want to perform an actual api call in our tests | |||
| @@ -149,20 +172,13 @@ describe("SelectionProcessPage render tests", () => { | |||
| api.getAllFilteredProcessesReq = jest.fn(() => Promise.resolve(mockedCall)); | |||
| const fakeStore = { | |||
| getState: () => (mockState.selections.processes), | |||
| dispatch: action => dispatchedActions.push(action), | |||
| getState: () => mockState.selections.processes, | |||
| dispatch: (action) => dispatchedActions.push(action), | |||
| }; | |||
| // wait for saga to complete | |||
| await runSaga(fakeStore, getFilteredProcesses,filter).done; | |||
| await runSaga(fakeStore, getFilteredProcesses, filter).done; | |||
| expect(api.getAllFilteredProcessesReq.mock.calls.length).toBe(1); | |||
| expect(dispatchedActions).toContainEqual(setProcesses(filteredData)); | |||
| }); | |||
| }); | |||
| @@ -0,0 +1,105 @@ | |||
| import * as redux from "react-redux"; | |||
| import store from "../../store"; | |||
| import { Router } from "react-router-dom"; | |||
| import history from "../../store/utils/history"; | |||
| import { mockState } from "../../mockState"; | |||
| import { render } from "@testing-library/react"; | |||
| import { FILTER_CANDIDATES } from "../../store/actions/candidates/candidatesActionConstants"; | |||
| import TableViewPage from "../../pages/CandidatesPage/TableViewPage"; | |||
| import * as api from "../../request/candidatesRequest"; | |||
| import { runSaga } from "redux-saga"; | |||
| import * as fc from "../../store/saga/candidatesSaga"; | |||
| import { | |||
| filterCandidates, | |||
| filterCandidatesError, | |||
| } from "../../store/actions/candidates/candidatesActions"; | |||
| import { PAGE_SIZE_CANDIDATES } from "../../constants/keyCodeConstants"; | |||
| describe("TableViewPage render tests", () => { | |||
| const cont = ( | |||
| <redux.Provider store={store}> | |||
| <Router history={history}> | |||
| <TableViewPage page={1} search="" /> | |||
| </Router> | |||
| </redux.Provider> | |||
| ); | |||
| let spyOnUseSelector; | |||
| let spyOnUseDispatch; | |||
| let mockDispatch; | |||
| beforeEach(() => { | |||
| // Mock useSelector hook | |||
| spyOnUseSelector = jest.spyOn(redux, "useSelector"); | |||
| spyOnUseSelector | |||
| .mockReturnValueOnce(mockState.candidates.candidates) | |||
| .mockReturnValueOnce(mockState.candidates.pagination); | |||
| spyOnUseDispatch = jest.spyOn(redux, "useDispatch"); | |||
| mockDispatch = jest.fn(); | |||
| spyOnUseDispatch.mockReturnValue(mockDispatch); | |||
| }); | |||
| afterEach(() => { | |||
| jest.restoreAllMocks(); | |||
| }); | |||
| it("Should dispatch filter candidates request when rendered", () => { | |||
| render(cont); | |||
| expect(mockDispatch).toHaveBeenCalledWith({ | |||
| type: FILTER_CANDIDATES, | |||
| payload: { | |||
| currentPage: 1, | |||
| employmentType: "", | |||
| maxDateOfApplication: "", | |||
| maxExperience: 0, | |||
| minDateOfApplication: "", | |||
| minExperience: 0, | |||
| pageSize: PAGE_SIZE_CANDIDATES, | |||
| technologies: [], | |||
| }, | |||
| }); | |||
| }); | |||
| it("should load and handle candidates in case of success", async () => { | |||
| const dispatchedActions = []; | |||
| const mockedCall = { data: mockState.candidates.items }; | |||
| api.getFilteredCandidates = jest.fn(() => Promise.resolve(mockedCall)); | |||
| const fakeStore = { | |||
| getState: () => mockState.candidates.items, | |||
| dispatch: (action) => dispatchedActions.push(action), | |||
| }; | |||
| await runSaga(fakeStore, fc.filterCandidates, {}).done; | |||
| expect(api.getFilteredCandidates.mock.calls.length).toBe(1); | |||
| expect(dispatchedActions[0].payload).toEqual( | |||
| filterCandidates(mockedCall.data).payload | |||
| ); | |||
| }); | |||
| // it("should handle candidates load errors in case of failure", async () => { | |||
| // const dispatchedActions = []; | |||
| // const error = { | |||
| // response: { | |||
| // data: { message: mockState.candidates.fetchCandidatesErrorMessage }, | |||
| // }, | |||
| // }; | |||
| // api.getFilteredCandidates = jest.fn(() => Promise.reject(error)); | |||
| // const fakeStore = { | |||
| // getState: () => mockState.candidates.items, | |||
| // dispatch: (action) => dispatchedActions.push(action), | |||
| // }; | |||
| // await runSaga(fakeStore, fc.filterCandidates, {}).done; | |||
| // expect(api.getFilteredCandidates.mock.calls.length).toBe(1); | |||
| // expect(dispatchedActions).toContainEqual( | |||
| // filterCandidatesError(error.response.data.message) | |||
| // ); | |||
| // }); | |||
| }); | |||
| @@ -0,0 +1,49 @@ | |||
| import { render } from "@testing-library/react"; | |||
| import * as redux from "react-redux"; | |||
| import store from "../../store"; | |||
| import { mockState } from "../../mockState"; | |||
| import { Router } from "react-router-dom"; | |||
| import history from "../../store/utils/history"; | |||
| import AdsCandidatesPage from "../../pages/CandidatesPage/AdsCandidatesPage"; | |||
| describe("TableViewPage render tests", () => { | |||
| const cont = ( | |||
| <redux.Provider store={store}> | |||
| <Router history={history}> | |||
| <AdsCandidatesPage search="" /> | |||
| </Router> | |||
| </redux.Provider> | |||
| ); | |||
| let spyOnUseSelector; | |||
| beforeEach(() => { | |||
| spyOnUseSelector = jest.spyOn(redux, "useSelector"); | |||
| spyOnUseSelector.mockReturnValueOnce(mockState.candidates.adsCandidates); | |||
| }); | |||
| afterEach(() => { | |||
| jest.restoreAllMocks(); | |||
| }); | |||
| it("Should render", () => { | |||
| const { container } = render(cont); | |||
| expect( | |||
| container.getElementsByClassName("ads-candidates-container")[0] | |||
| ).toBeDefined(); | |||
| }); | |||
| it("Number of sliders should be equal to length of our array adsCandidates", () => { | |||
| const { container } = render(cont); | |||
| expect(container.getElementsByClassName("ads-candidates").length).toBe( | |||
| mockState.candidates.adsCandidates.length | |||
| ); | |||
| }); | |||
| it("Number of arrows (left and right) should be 0 because there is no more than 4 candidates in any of ads", () => { | |||
| const { container } = render(cont); | |||
| expect( | |||
| container.getElementsByClassName("active-ads-ads-arrows").length | |||
| ).toBe(0); | |||
| }); | |||
| }); | |||
| @@ -38,9 +38,7 @@ describe("CandidatesPage render tests", () => { | |||
| it("should be rendered button which is used for showing input responsible for searching by name", () => { | |||
| const { container } = render(cont); | |||
| expect( | |||
| container.getElementsByClassName("candidate-btn")[1] | |||
| ).toBeDefined(); | |||
| expect(container.getElementsByClassName("candidate-btn")[1]).toBeDefined(); | |||
| }); | |||
| it("Should render filter button", () => { | |||
| @@ -55,13 +53,20 @@ describe("CandidatesPage render tests", () => { | |||
| ); | |||
| }); | |||
| // it("input for searching by name should be shown after clicking button for first time",() => { | |||
| // const { container } = render(cont); | |||
| // fireEvent.click(container.getElementsByClassName("candidate-btn")[1]) | |||
| // expect(container.getElementsByClassName("proba")[0].style.visibility).toBe('vissible'); | |||
| // }) | |||
| // it("input for searching by name should be shown after clicking button for first time",() => { | |||
| // const { container } = render(cont); | |||
| // fireEvent.click(container.getElementsByClassName("candidate-btn")[1]) | |||
| // expect(container.getElementsByClassName("proba")[0].style.visibility).toBe('vissible'); | |||
| // }) | |||
| it("Should render TableViewPage component when page is initialy rendered", () => { | |||
| const { container } = render(cont); | |||
| expect( | |||
| container.getElementsByClassName("candidates-table")[0] | |||
| ).toBeDefined(); | |||
| }); | |||
| // it("should be rendered AdsCandidatesPage component when button for switching to another view is clicked for the first time",() => { | |||
| // it("should render AdsCandidatesPage component when button for switching to another view is clicked for the first time",() => { | |||
| // const { container } = render(cont); | |||
| // fireEvent.click(container.getElementsByClassName("candidate-btn")[0]) | |||
| // expect(container.getElementsByClassName("ads-candidates-container")[0]).toBeDefined(); | |||
| @@ -0,0 +1,68 @@ | |||
| import { render, screen, fireEvent } from "@testing-library/react"; | |||
| import * as redux from "react-redux"; | |||
| import store from "../../store"; | |||
| import { mockState } from "../../mockState"; | |||
| import { Router } from "react-router-dom"; | |||
| import history from "../../store/utils/history"; | |||
| import TableViewPage from "../../pages/CandidatesPage/TableViewPage"; | |||
| import { PAGE_SIZE_CANDIDATES } from "../../constants/keyCodeConstants"; | |||
| describe("TableViewPage render tests", () => { | |||
| const cont = ( | |||
| <redux.Provider store={store}> | |||
| <Router history={history}> | |||
| <TableViewPage search="" /> | |||
| </Router> | |||
| </redux.Provider> | |||
| ); | |||
| let spyOnUseSelector; | |||
| beforeEach(() => { | |||
| spyOnUseSelector = jest.spyOn(redux, "useSelector"); | |||
| spyOnUseSelector | |||
| .mockReturnValueOnce(mockState.candidates.candidates) | |||
| .mockReturnValueOnce(mockState.candidates.pagination); | |||
| }); | |||
| afterEach(() => { | |||
| jest.restoreAllMocks(); | |||
| }); | |||
| it("Should render", () => { | |||
| const { container } = render(cont); | |||
| expect( | |||
| container.getElementsByClassName("candidates-table")[0] | |||
| ).toBeDefined(); | |||
| }); | |||
| it("Should render pagination component", () => { | |||
| const { container } = render(cont); | |||
| expect( | |||
| container.getElementsByClassName("candidates-pagination")[0] | |||
| ).toBeDefined(); | |||
| }); | |||
| it("Pagination component should show 1 page because number of elements of our candidates arrat is 2 and the size of page is 2)", () => { | |||
| const { container } = render(cont); | |||
| expect( | |||
| container | |||
| .getElementsByClassName("css-wjh20t-MuiPagination-ul")[0] | |||
| .getElementsByTagName("li").length - 2 // we substract because list will contain left and right arrow | |||
| ).toBe( | |||
| parseInt(mockState.candidates.candidates.length) <= PAGE_SIZE_CANDIDATES | |||
| ? 1 | |||
| : Math.ceil( | |||
| parseInt(mockState.candidates.candidates.length) / | |||
| PAGE_SIZE_CANDIDATES | |||
| ) | |||
| ); | |||
| }); | |||
| it("Table should initialy contain 2 rows", () => { | |||
| const { container } = render(cont); | |||
| expect(container.getElementsByClassName("cadidate-row").length).toBe( | |||
| mockState.candidates.candidates.length | |||
| ); | |||
| }); | |||
| }); | |||
| @@ -245,6 +245,11 @@ | |||
| margin-left: 45px !important; | |||
| } | |||
| .candidates-pagination{ | |||
| align-self: center; | |||
| margin-top: 20px; | |||
| } | |||
| @media only screen and (max-width: 600px) { | |||
| .ads-candidates-title { | |||
| font-size: 18px; | |||
| @@ -1,4 +1,150 @@ | |||
| export const mockState = { | |||
| candidate: { | |||
| candidate: { | |||
| applicantId: 1, | |||
| firstName: "Dzenis", | |||
| lastName: "Hadzifejzovic", | |||
| position: ".NET Developer", | |||
| dateOfApplication: "2022-02-11T00:00:00", | |||
| cv: "link", | |||
| email: "dzenis@gmail.com", | |||
| phoneNumber: "774567", | |||
| linkedlnLink: "link1", | |||
| githubLink: "link2", | |||
| bitBucketLink: null, | |||
| experience: 1, | |||
| applicationChannel: null, | |||
| typeOfEmployment: "Posao", | |||
| technologyApplicants: [ | |||
| { | |||
| technology: { | |||
| technologyId: 1, | |||
| technologyType: "Backend", | |||
| name: ".NET", | |||
| }, | |||
| }, | |||
| { | |||
| technology: { | |||
| technologyId: 3, | |||
| technologyType: "Frontend", | |||
| name: "HTML/CSS", | |||
| }, | |||
| }, | |||
| ], | |||
| comments: [ | |||
| { | |||
| content: "[Safet Purkovic]proba", | |||
| dateOfSending: "2022-01-01T11:43:21.6545266", | |||
| user: { | |||
| id: 17, | |||
| firstName: "Dzenis", | |||
| lastName: "Hadzifejzovic", | |||
| email: "dzenis.hadzifejzovic@dilig.net", | |||
| isEnabled: true, | |||
| }, | |||
| }, | |||
| { | |||
| content: "[Ermin Bronja]", | |||
| dateOfSending: "2022-12-05T12:49:14.9767749", | |||
| user: { | |||
| id: 17, | |||
| firstName: "Dzenis", | |||
| lastName: "Hadzifejzovic", | |||
| email: "dzenis.hadzifejzovic@dilig.net", | |||
| isEnabled: true, | |||
| }, | |||
| }, | |||
| { | |||
| content: "[Safet Purkovic]dsadad [Ermin Bronja]", | |||
| dateOfSending: "2022-12-06T15:49:36.0651505", | |||
| user: { | |||
| id: 17, | |||
| firstName: "Dzenis", | |||
| lastName: "Hadzifejzovic", | |||
| email: "dzenis.hadzifejzovic@dilig.net", | |||
| isEnabled: true, | |||
| }, | |||
| }, | |||
| ], | |||
| ads: [ | |||
| { | |||
| id: 10, | |||
| title: ".NET Intern", | |||
| minimumExperience: 2, | |||
| createdAt: "2022-11-14T08:23:00.772", | |||
| expiredAt: "2024-12-06T09:53:42.439572", | |||
| keyResponsibilities: "KR|KR|KR|KR", | |||
| requirements: "RQ|RQ|RQ|RQ", | |||
| offer: "OF|OF|OF|OF", | |||
| technologies: [ | |||
| { | |||
| technologyId: 1, | |||
| technologyType: "Backend", | |||
| name: ".NET", | |||
| }, | |||
| { | |||
| technologyId: 2, | |||
| technologyType: "Other", | |||
| name: "Git", | |||
| }, | |||
| ], | |||
| workHour: "FullTime", | |||
| employmentType: "Intership", | |||
| }, | |||
| { | |||
| id: 12, | |||
| title: ".NET Developer", | |||
| minimumExperience: 4, | |||
| createdAt: "2021-11-12T00:00:00", | |||
| expiredAt: "2022-12-08T12:08:51.1360986", | |||
| keyResponsibilities: "FS|SD|SD", | |||
| requirements: "RE|RQ|RS", | |||
| offer: "F|S|D", | |||
| technologies: [ | |||
| { | |||
| technologyId: 3, | |||
| technologyType: "Frontend", | |||
| name: "HTML/CSS", | |||
| }, | |||
| ], | |||
| workHour: "FullTime", | |||
| employmentType: "Intership", | |||
| }, | |||
| ], | |||
| selectionProcesses: [], | |||
| }, | |||
| users: [ | |||
| { | |||
| id: 1, | |||
| firstName: "First", | |||
| lastName: "User", | |||
| email: "first@gmail.com", | |||
| isEnabled: false, | |||
| }, | |||
| { | |||
| id: 2, | |||
| firstName: "Second", | |||
| lastName: "User", | |||
| email: "second@gmail.com", | |||
| isEnabled: true, | |||
| }, | |||
| { | |||
| id: 3, | |||
| firstName: "Third", | |||
| lastName: "User", | |||
| email: "third@gmail.com", | |||
| isEnabled: false, | |||
| }, | |||
| ], | |||
| user: { | |||
| id: 2, | |||
| firstName: "Second", | |||
| lastName: "User", | |||
| email: "second@gmail.com", | |||
| isEnabled: true, | |||
| }, | |||
| fetchCandidateErrorMessage: "Server error", | |||
| }, | |||
| users: { | |||
| users: [ | |||
| { | |||
| @@ -165,25 +311,28 @@ export const mockState = { | |||
| technologyType: "Backend", | |||
| name: ".NET", | |||
| isChecked: false, | |||
| isChecked: false, | |||
| }, | |||
| { | |||
| technologyId: 2, | |||
| technologyType: "Other", | |||
| name: "Git", | |||
| isChecked: false, | |||
| isChecked: false, | |||
| }, | |||
| { | |||
| technologyId: 3, | |||
| technologyType: "Frontend", | |||
| name: "HTML/CSS", | |||
| isChecked: false, | |||
| isChecked: false, | |||
| }, | |||
| ], | |||
| fetchTecnologiesErrorMessage: "Server error", | |||
| }, | |||
| candidates: { | |||
| total: 2, | |||
| items: [ | |||
| pagination: 2, | |||
| candidates: [ | |||
| { | |||
| applicantId: 1, | |||
| firstName: "Dzenis", | |||
| @@ -255,6 +404,150 @@ export const mockState = { | |||
| selectionProcesses: [], | |||
| }, | |||
| ], | |||
| fetchCandidatesErrorMessage: "Server error", | |||
| adsCandidates: [ | |||
| { | |||
| id: 1, | |||
| title: ".NET Intern", | |||
| applicants: [ | |||
| { | |||
| applicantId: 1, | |||
| firstName: "Dzenis", | |||
| lastName: "Hadzifejzovic", | |||
| dateOfApplication: "2022-02-11T00:00:00", | |||
| cv: "link", | |||
| experience: 1, | |||
| technologyApplicants: [ | |||
| { | |||
| technology: { | |||
| technologyId: 1, | |||
| technologyType: "Backend", | |||
| name: ".NET", | |||
| }, | |||
| }, | |||
| ], | |||
| }, | |||
| { | |||
| applicantId: 24, | |||
| firstName: "Proba", | |||
| lastName: "Proba", | |||
| dateOfApplication: "2022-02-11T00:00:00", | |||
| cv: "link", | |||
| experience: 2, | |||
| technologyApplicants: [ | |||
| { | |||
| technology: { | |||
| technologyId: 2, | |||
| technologyType: "Other", | |||
| name: "Git", | |||
| }, | |||
| }, | |||
| ], | |||
| }, | |||
| { | |||
| applicantId: 29, | |||
| firstName: "Ermin", | |||
| lastName: "Bronja", | |||
| dateOfApplication: "2022-12-14T09:03:29.5150747", | |||
| cv: "PDF", | |||
| experience: 1, | |||
| technologyApplicants: [ | |||
| { | |||
| technology: { | |||
| technologyId: 3, | |||
| technologyType: "Frontend", | |||
| name: "HTML/CSS", | |||
| }, | |||
| }, | |||
| ], | |||
| }, | |||
| { | |||
| applicantId: 32, | |||
| firstName: "AHS", | |||
| lastName: "Jasj", | |||
| dateOfApplication: "2022-12-14T11:30:36.3658961", | |||
| cv: "PDF", | |||
| experience: 1, | |||
| technologyApplicants: [ | |||
| { | |||
| technology: { | |||
| technologyId: 1, | |||
| technologyType: "Backend", | |||
| name: ".NET", | |||
| }, | |||
| }, | |||
| ], | |||
| }, | |||
| ], | |||
| nubmerOfApplicants: 4, | |||
| }, | |||
| { | |||
| id: 2, | |||
| title: "GO developer", | |||
| applicants: [ | |||
| { | |||
| applicantId: 1, | |||
| firstName: "Dzenis", | |||
| lastName: "Hadzifejzovic", | |||
| dateOfApplication: "2022-02-11T00:00:00", | |||
| cv: "link", | |||
| experience: 1, | |||
| technologyApplicants: [ | |||
| { | |||
| technology: { | |||
| technologyId: 1, | |||
| technologyType: "Backend", | |||
| name: ".NET", | |||
| }, | |||
| }, | |||
| { | |||
| technology: { | |||
| technologyId: 3, | |||
| technologyType: "Frontend", | |||
| name: "HTML/CSS", | |||
| }, | |||
| }, | |||
| ], | |||
| }, | |||
| ], | |||
| nubmerOfApplicants: 1, | |||
| }, | |||
| ], | |||
| }, | |||
| users: { | |||
| users: [ | |||
| { | |||
| id: 1, | |||
| firstName: "First", | |||
| lastName: "User", | |||
| email: "first@gmail.com", | |||
| isEnabled: false, | |||
| }, | |||
| { | |||
| id: 2, | |||
| firstName: "Second", | |||
| lastName: "User", | |||
| email: "second@gmail.com", | |||
| isEnabled: true, | |||
| }, | |||
| { | |||
| id: 3, | |||
| firstName: "Third", | |||
| lastName: "User", | |||
| email: "third@gmail.com", | |||
| isEnabled: false, | |||
| }, | |||
| ], | |||
| user: { | |||
| id: 2, | |||
| firstName: "Second", | |||
| lastName: "User", | |||
| email: "second@gmail.com", | |||
| isEnabled: true, | |||
| }, | |||
| selected: {}, | |||
| fetchUsersErrorMessage: "Server error", | |||
| toggleEnableErrorMessage: "", | |||
| }, | |||
| selections: { | |||
| process: { doneProcess: false }, | |||
| @@ -10,10 +10,11 @@ import CandidateCard from "../../components/Candidates/CandidateCard"; | |||
| import PropTypes from "prop-types"; | |||
| import { useTheme } from "@mui/system"; | |||
| import { useMediaQuery } from "@mui/material"; | |||
| import { selectAdsCandidates } from "../../store/selectors/candidatesSelectors"; | |||
| const AdsCandidatesPage = ({ history, search }) => { | |||
| const dispatch = useDispatch(); | |||
| const { adsCandidates } = useSelector((s) => s.candidates); | |||
| const adsCandidates = useSelector(selectAdsCandidates); | |||
| const [getRef, setRef] = useDynamicRefs(); | |||
| const theme = useTheme(); | |||
| const matches = useMediaQuery(theme.breakpoints.down("361")); | |||
| @@ -111,7 +112,7 @@ const AdsCandidatesPage = ({ history, search }) => { | |||
| </p> | |||
| </div> | |||
| <div className="ads-candidates-slider"> | |||
| {filterByName(adCandidates).length > 3 && ( | |||
| {filterByName(adCandidates).length > 4 && ( | |||
| <div | |||
| className="active-ads-ads-arrows" | |||
| style={matches ? { marginLeft: 36 } : { marginLeft: 0 }} | |||
| @@ -129,10 +130,10 @@ const AdsCandidatesPage = ({ history, search }) => { | |||
| ref={setRef(index.toString())} | |||
| className={`left-move-candidateAd-page ${ | |||
| matches | |||
| ? filterByName(adCandidates).length > 3 | |||
| ? filterByName(adCandidates).length > 4 | |||
| ? "cls1" | |||
| : "cls2" | |||
| : filterByName(adCandidates).length > 3 | |||
| : filterByName(adCandidates).length > 4 | |||
| ? "cls3" | |||
| : "cls4" | |||
| }`} | |||
| @@ -21,12 +21,15 @@ import PropTypes from "prop-types"; | |||
| import { deleteCandidate } from "../../store/actions/candidate/candidateActions"; | |||
| import ConfirmDialog from "../../components/MUI/ConfirmDialog"; | |||
| import deleteIcon from "../../assets/images/delete.png"; | |||
| import { selectCandidate } from "../../store/selectors/candidateSelectors"; | |||
| import { selectAuthUser } from "../../store/selectors/userSelectors"; | |||
| import { selectUsers } from "../../store/selectors/usersSelector"; | |||
| const CandidateDetailsPage = ({ history }) => { | |||
| const dispatch = useDispatch(); | |||
| const { users } = useSelector((s) => s.users); | |||
| const { user } = useSelector((s) => s.user); | |||
| const { candidate } = useSelector((s) => s.candidate); | |||
| const users = useSelector(selectUsers); | |||
| const user = useSelector(selectAuthUser); | |||
| const candidate = useSelector(selectCandidate); | |||
| const [inputValue, setInputValue] = useState(""); | |||
| let { id } = useParams(); | |||
| const messageContainer = useRef(); | |||
| @@ -341,6 +344,8 @@ const CandidateDetailsPage = ({ history }) => { | |||
| flexDirection: "column", | |||
| gap: 5, | |||
| marginLeft: 3, | |||
| maxHeight: 95, | |||
| overflowY: "auto", | |||
| }} | |||
| > | |||
| {children} | |||
| @@ -397,10 +402,16 @@ const CandidateDetailsPage = ({ history }) => { | |||
| </div> | |||
| </div> | |||
| <div className="applicant-ads-container"> | |||
| <p style={{marginLeft:matches ? 36 : 144}}>Sve prijave</p> | |||
| <p style={{ marginLeft: matches ? 36 : 144 }}>Sve prijave</p> | |||
| <div className="applicant-ads-container-2"> | |||
| <div style={{marginLeft:matches ? 36 : (candidate.ads.length < 5 ? 108 : 72)}}> | |||
| {(matches ? candidate.ads.length > 1 : candidate.ads.length > 5) && ( | |||
| <div | |||
| style={{ | |||
| marginLeft: matches ? 36 : candidate.ads.length < 5 ? 108 : 72, | |||
| }} | |||
| > | |||
| {(matches | |||
| ? candidate.ads.length > 1 | |||
| : candidate.ads.length > 5) && ( | |||
| <div className="active-ads-ads-arrows"> | |||
| <button onClick={activeAdsArrowLeftHandler}> | |||
| <img src={arrow_left} alt="arrow-left" /> | |||
| @@ -411,7 +422,7 @@ const CandidateDetailsPage = ({ history }) => { | |||
| </div> | |||
| )} | |||
| </div> | |||
| <Slider {...settings} style={{ width: "100%"}} ref={adsSliderRef}> | |||
| <Slider {...settings} style={{ width: "100%" }} ref={adsSliderRef}> | |||
| {candidate.ads.map((add, index) => ( | |||
| <CandidateAd | |||
| add={add} | |||
| @@ -8,11 +8,12 @@ import { filterCandidates } from "../../store/actions/candidates/candidatesActio | |||
| import { PAGE_SIZE_CANDIDATES } from "../../constants/keyCodeConstants"; | |||
| import { useTheme } from "@mui/system"; | |||
| import { useMediaQuery } from "@mui/material"; | |||
| import { selectCandidates,selectPagination } from "../../store/selectors/candidatesSelectors"; | |||
| const TableViewPage = ({ history, setPage, page, search }) => { | |||
| const dispatch = useDispatch(); | |||
| const { candidates } = useSelector((s) => s.candidates); | |||
| const { pagination } = useSelector((s) => s.candidates); // pagination is total number of candidates on backend | |||
| const candidates = useSelector(selectCandidates); | |||
| const pagination = useSelector(selectPagination); // pagination is total number of candidates on backend | |||
| const theme = useTheme(); | |||
| const matches = useMediaQuery(theme.breakpoints.down("361")); | |||
| @@ -79,7 +80,7 @@ const TableViewPage = ({ history, setPage, page, search }) => { | |||
| return ( | |||
| <div className="candidates-table"> | |||
| <div style={{ overflowX: "auto",marginLeft:matches ? 36 : 72 }}> | |||
| <div style={{ overflowX: "auto", marginLeft: matches ? 36 : 72 }}> | |||
| <table className="usersTable" style={{ width: "1017px" }}> | |||
| <thead> | |||
| <tr className="headingRow"> | |||
| @@ -110,10 +111,17 @@ const TableViewPage = ({ history, setPage, page, search }) => { | |||
| onClick={() => navigate(candidate.applicantId)} | |||
| > | |||
| <td> | |||
| {(candidate.firstName + " " + candidate.lastName).includes(search) ? ( | |||
| formatLabel(candidate.firstName + " " + candidate.lastName, search) | |||
| {(candidate.firstName + " " + candidate.lastName).includes( | |||
| search | |||
| ) ? ( | |||
| formatLabel( | |||
| candidate.firstName + " " + candidate.lastName, | |||
| search | |||
| ) | |||
| ) : ( | |||
| <span>{candidate.firstName + " " + candidate.lastName}</span> | |||
| <span> | |||
| {candidate.firstName + " " + candidate.lastName} | |||
| </span> | |||
| )} | |||
| </td> | |||
| <td>{candidate.experience}</td> | |||
| @@ -137,7 +145,7 @@ const TableViewPage = ({ history, setPage, page, search }) => { | |||
| : Math.ceil(parseInt(pagination) / PAGE_SIZE_CANDIDATES) | |||
| } | |||
| color="primary" | |||
| style={{ alignSelf: "center", marginTop: "20px" }} | |||
| className="candidates-pagination" | |||
| onChange={handleChange} | |||
| shape="rounded" | |||
| /> | |||
| @@ -7,6 +7,7 @@ import { | |||
| setTechnologies, | |||
| setTechnologiesError, | |||
| } from "../actions/technologies/technologiesActions"; | |||
| import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; | |||
| export function* getTechnologies() { | |||
| try { | |||
| @@ -14,7 +15,10 @@ export function* getTechnologies() { | |||
| const resultData = result.data.map((res) => ({ ...res, isChecked: false })); | |||
| yield put(setTechnologies(resultData)); | |||
| } catch (error) { | |||
| yield put(setTechnologiesError(error)); | |||
| if (error.response && error.response.data) { | |||
| const errorMessage = yield call(rejectErrorCodeHelper, error); | |||
| yield put(setTechnologiesError(errorMessage)); | |||
| } | |||
| } | |||
| } | |||
| @@ -5,4 +5,9 @@ export const candidateSelector = (state) => state.candidate; | |||
| export const selectCandidate = createSelector( | |||
| candidateSelector, | |||
| (state) => state.candidate, | |||
| ); | |||
| export const selectCandidateError = createSelector( | |||
| candidateSelector, | |||
| (state) => state.errorMessage | |||
| ); | |||
| @@ -1,4 +1,28 @@ | |||
| // export const selectAdsCandidates = createSelector( | |||
| // adsCandidatesSelector, | |||
| // (state) => state.adsCandidates, | |||
| // ); | |||
| import { createSelector } from "@reduxjs/toolkit"; | |||
| export const candidatesSelector = (state) => state.candidates; | |||
| export const selectCandidates = createSelector( | |||
| candidatesSelector, | |||
| (state) => state.candidates | |||
| ); | |||
| export const selectPagination = createSelector( | |||
| candidatesSelector, | |||
| (state) => state.pagination | |||
| ); | |||
| export const selectAdsCandidates = createSelector( | |||
| adsCandidatesSelector, | |||
| (state) => state.adsCandidates, | |||
| ); | |||
| candidatesSelector, | |||
| (state) => state.adsCandidates | |||
| ); | |||
| export const selectCandidatesError = createSelector( | |||
| candidatesSelector, | |||
| (state) => state.errorMessage | |||
| ); | |||
| @@ -1,8 +1,13 @@ | |||
| import { createSelector } from "@reduxjs/toolkit"; | |||
| export const usersSelector = (state) => state.user; | |||
| export const usersSelector = (state) => state.users; | |||
| export const selectAuthUser = createSelector( | |||
| userSelector, | |||
| (state) => state.user, | |||
| ); | |||
| // export const selectAuthUser = createSelector( | |||
| // usersSelector, | |||
| // (state) => state.user, | |||
| // ); | |||
| export const selectUsers = createSelector( | |||
| usersSelector, | |||
| (state) => state.users | |||
| ) | |||
| @@ -28,7 +28,7 @@ | |||
| "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz" | |||
| "version" "7.14.4" | |||
| "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5", "@babel/core@^7.8.4": | |||
| "@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.1.0", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.4.0-0", "@babel/core@^7.7.5", "@babel/core@^7.8.4", "@babel/core@7 || ^7.0.0-rc.2": | |||
| "integrity" "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==" | |||
| "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz" | |||
| "version" "7.14.3" | |||
| @@ -1346,7 +1346,7 @@ | |||
| "resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz" | |||
| "version" "0.8.0" | |||
| "@emotion/react@^11.1.1", "@emotion/react@^11.5.0": | |||
| "@emotion/react@^11.0.0-rc.0", "@emotion/react@^11.1.1", "@emotion/react@^11.4.1", "@emotion/react@^11.5.0", "@emotion/react@^11.9.0": | |||
| "integrity" "sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==" | |||
| "resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.10.4.tgz" | |||
| "version" "11.10.4" | |||
| @@ -1376,7 +1376,7 @@ | |||
| "resolved" "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.0.tgz" | |||
| "version" "1.2.0" | |||
| "@emotion/styled@^11.3.0": | |||
| "@emotion/styled@^11.3.0", "@emotion/styled@^11.8.1": | |||
| "integrity" "sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ==" | |||
| "resolved" "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.4.tgz" | |||
| "version" "11.10.4" | |||
| @@ -1682,7 +1682,7 @@ | |||
| dependencies: | |||
| "@babel/runtime" "^7.19.0" | |||
| "@mui/material@^5.0.6": | |||
| "@mui/material@^5.0.0", "@mui/material@^5.0.6", "@mui/material@^5.4.1": | |||
| "integrity" "sha512-ioLvqY7VvcePz9dnEIRhpiVvtJmAFmvG6rtLXXzVdMmAVbSaelr5Io07mPz/mCyqE+Uv8/4EuJV276DWO7etzA==" | |||
| "resolved" "https://registry.npmjs.org/@mui/material/-/material-5.10.10.tgz" | |||
| "version" "5.10.10" | |||
| @@ -1719,7 +1719,7 @@ | |||
| "csstype" "^3.1.1" | |||
| "prop-types" "^15.8.1" | |||
| "@mui/system@^5.10.10": | |||
| "@mui/system@^5.10.10", "@mui/system@^5.4.1": | |||
| "integrity" "sha512-TXwtKN0adKpBrZmO+eilQWoPf2veh050HLYrN78Kps9OhlvO70v/2Kya0+mORFhu9yhpAwjHXO8JII/R4a5ZLA==" | |||
| "resolved" "https://registry.npmjs.org/@mui/system/-/system-5.10.10.tgz" | |||
| "version" "5.10.10" | |||
| @@ -2043,7 +2043,7 @@ | |||
| dependencies: | |||
| "defer-to-connect" "^1.0.1" | |||
| "@testing-library/dom@^8.0.0": | |||
| "@testing-library/dom@^8.0.0", "@testing-library/dom@>=7.21.4": | |||
| "integrity" "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==" | |||
| "resolved" "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz" | |||
| "version" "8.19.0" | |||
| @@ -2284,7 +2284,7 @@ | |||
| dependencies: | |||
| "@types/react" "*" | |||
| "@types/react@*": | |||
| "@types/react@*", "@types/react@^17.0.0 || ^18.0.0": | |||
| "integrity" "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==" | |||
| "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz" | |||
| "version" "18.0.21" | |||
| @@ -2352,7 +2352,7 @@ | |||
| "@types/source-list-map" "*" | |||
| "source-map" "^0.7.3" | |||
| "@types/webpack@^4.41.8": | |||
| "@types/webpack@^4.41.8", "@types/webpack@4.x": | |||
| "integrity" "sha512-6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q==" | |||
| "resolved" "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.29.tgz" | |||
| "version" "4.41.29" | |||
| @@ -2376,7 +2376,7 @@ | |||
| dependencies: | |||
| "@types/yargs-parser" "*" | |||
| "@typescript-eslint/eslint-plugin@^4.5.0": | |||
| "@typescript-eslint/eslint-plugin@^4.0.0", "@typescript-eslint/eslint-plugin@^4.5.0", "@typescript-eslint/eslint-plugin@>= 4": | |||
| "integrity" "sha512-yA7IWp+5Qqf+TLbd8b35ySFOFzUfL7i+4If50EqvjT6w35X8Lv0eBHb6rATeWmucks37w+zV+tWnOXI9JlG6Eg==" | |||
| "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.0.tgz" | |||
| "version" "4.26.0" | |||
| @@ -2413,7 +2413,7 @@ | |||
| "eslint-scope" "^5.1.1" | |||
| "eslint-utils" "^3.0.0" | |||
| "@typescript-eslint/parser@^4.5.0": | |||
| "@typescript-eslint/parser@^4.0.0", "@typescript-eslint/parser@^4.5.0": | |||
| "integrity" "sha512-b4jekVJG9FfmjUfmM4VoOItQhPlnt6MPOBUL0AQbiTmm+SSpSdhHYlwayOm4IW9KLI/4/cRKtQCmDl1oE2OlPg==" | |||
| "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.0.tgz" | |||
| "version" "4.26.0" | |||
| @@ -2669,16 +2669,16 @@ | |||
| "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" | |||
| "version" "7.2.0" | |||
| "acorn@^6.0.0 || ^7.0.0 || ^8.0.0", "acorn@^7.1.0", "acorn@^7.1.1", "acorn@^7.4.0": | |||
| "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" | |||
| "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" | |||
| "version" "7.4.1" | |||
| "acorn@^6.4.1": | |||
| "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" | |||
| "resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" | |||
| "version" "6.4.2" | |||
| "acorn@^7.1.0", "acorn@^7.1.1", "acorn@^7.4.0": | |||
| "integrity" "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" | |||
| "resolved" "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" | |||
| "version" "7.4.1" | |||
| "acorn@^8.2.4": | |||
| "integrity" "sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==" | |||
| "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz" | |||
| @@ -2722,7 +2722,7 @@ | |||
| "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" | |||
| "version" "3.5.2" | |||
| "ajv@^6.1.0", "ajv@^6.10.0", "ajv@^6.10.2", "ajv@^6.12.4", "ajv@^6.12.5": | |||
| "ajv@^6.1.0", "ajv@^6.10.0", "ajv@^6.10.2", "ajv@^6.12.4", "ajv@^6.12.5", "ajv@^6.9.1", "ajv@>=5.0.0": | |||
| "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" | |||
| "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" | |||
| "version" "6.12.6" | |||
| @@ -3050,7 +3050,7 @@ | |||
| "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" | |||
| "version" "2.2.0" | |||
| "babel-eslint@^10.1.0": | |||
| "babel-eslint@^10.0.0", "babel-eslint@^10.1.0": | |||
| "integrity" "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==" | |||
| "resolved" "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz" | |||
| "version" "10.1.0" | |||
| @@ -3481,7 +3481,7 @@ | |||
| dependencies: | |||
| "pako" "~1.0.5" | |||
| "browserslist@^4.0.0", "browserslist@^4.12.0", "browserslist@^4.16.6", "browserslist@^4.6.2", "browserslist@^4.6.4": | |||
| "browserslist@^4", "browserslist@^4.0.0", "browserslist@^4.12.0", "browserslist@^4.16.6", "browserslist@^4.6.2", "browserslist@^4.6.4": | |||
| "integrity" "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==" | |||
| "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz" | |||
| "version" "4.16.6" | |||
| @@ -4538,7 +4538,7 @@ | |||
| "whatwg-mimetype" "^2.3.0" | |||
| "whatwg-url" "^8.0.0" | |||
| "date-fns@^2.29.3": | |||
| "date-fns@^2.0.0", "date-fns@^2.25.0", "date-fns@^2.29.3": | |||
| "integrity" "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==" | |||
| "resolved" "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz" | |||
| "version" "2.29.3" | |||
| @@ -5277,7 +5277,7 @@ | |||
| "lodash" "^4.17.15" | |||
| "string-natural-compare" "^3.0.1" | |||
| "eslint-plugin-import@^2.22.1", "eslint-plugin-import@^2.23.4": | |||
| "eslint-plugin-import@^2.22.0", "eslint-plugin-import@^2.22.1", "eslint-plugin-import@^2.23.4": | |||
| "integrity" "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==" | |||
| "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz" | |||
| "version" "2.23.4" | |||
| @@ -5298,7 +5298,7 @@ | |||
| "resolve" "^1.20.0" | |||
| "tsconfig-paths" "^3.9.0" | |||
| "eslint-plugin-jest@^24.1.0": | |||
| "eslint-plugin-jest@^24.0.0", "eslint-plugin-jest@^24.1.0": | |||
| "integrity" "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg==" | |||
| "resolved" "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz" | |||
| "version" "24.3.6" | |||
| @@ -5329,12 +5329,12 @@ | |||
| dependencies: | |||
| "prettier-linter-helpers" "^1.0.0" | |||
| "eslint-plugin-react-hooks@^4.2.0": | |||
| "eslint-plugin-react-hooks@^4 || ^3 || ^2.3.0 || ^1.7.0", "eslint-plugin-react-hooks@^4.0.8", "eslint-plugin-react-hooks@^4.2.0": | |||
| "integrity" "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==" | |||
| "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz" | |||
| "version" "4.2.0" | |||
| "eslint-plugin-react@^7.21.5", "eslint-plugin-react@^7.24.0": | |||
| "eslint-plugin-react@^7.20.3", "eslint-plugin-react@^7.21.5", "eslint-plugin-react@^7.24.0": | |||
| "integrity" "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==" | |||
| "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz" | |||
| "version" "7.24.0" | |||
| @@ -5359,7 +5359,7 @@ | |||
| dependencies: | |||
| "safe-regex" "^1.1.0" | |||
| "eslint-plugin-testing-library@^3.9.2": | |||
| "eslint-plugin-testing-library@^3.9.0", "eslint-plugin-testing-library@^3.9.2": | |||
| "integrity" "sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA==" | |||
| "resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz" | |||
| "version" "3.10.2" | |||
| @@ -5435,7 +5435,7 @@ | |||
| "normalize-path" "^3.0.0" | |||
| "schema-utils" "^3.0.0" | |||
| "eslint@^7.11.0", "eslint@^7.28.0": | |||
| "eslint@*", "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0", "eslint@^3 || ^4 || ^5 || ^6 || ^7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "eslint@^5 || ^6 || ^7", "eslint@^5.0.0 || ^6.0.0 || ^7.0.0", "eslint@^5.16.0 || ^6.8.0 || ^7.2.0", "eslint@^7.0.0", "eslint@^7.1.0", "eslint@^7.11.0", "eslint@^7.28.0", "eslint@^7.5.0", "eslint@>= 4.12.1", "eslint@>=5", "eslint@>=5.0.0", "eslint@>=7.0.0": | |||
| "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==" | |||
| "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" | |||
| "version" "7.32.0" | |||
| @@ -5782,7 +5782,7 @@ | |||
| dependencies: | |||
| "flat-cache" "^3.0.4" | |||
| "file-loader@6.1.1": | |||
| "file-loader@*", "file-loader@6.1.1": | |||
| "integrity" "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==" | |||
| "resolved" "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz" | |||
| "version" "6.1.1" | |||
| @@ -6587,7 +6587,7 @@ | |||
| "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" | |||
| "version" "1.1.1" | |||
| "i18next@^20.3.1": | |||
| "i18next@^20.3.1", "i18next@>= 19.0.0": | |||
| "integrity" "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==" | |||
| "resolved" "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz" | |||
| "version" "20.6.1" | |||
| @@ -7532,32 +7532,32 @@ | |||
| "jest-regex-util" "^26.0.0" | |||
| "jest-snapshot" "^26.6.2" | |||
| "jest-resolve@^26.6.2": | |||
| "integrity" "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==" | |||
| "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz" | |||
| "version" "26.6.2" | |||
| "jest-resolve@*", "jest-resolve@26.6.0": | |||
| "integrity" "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==" | |||
| "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz" | |||
| "version" "26.6.0" | |||
| dependencies: | |||
| "@jest/types" "^26.6.2" | |||
| "@jest/types" "^26.6.0" | |||
| "chalk" "^4.0.0" | |||
| "graceful-fs" "^4.2.4" | |||
| "jest-pnp-resolver" "^1.2.2" | |||
| "jest-util" "^26.6.2" | |||
| "jest-util" "^26.6.0" | |||
| "read-pkg-up" "^7.0.1" | |||
| "resolve" "^1.18.1" | |||
| "resolve" "^1.17.0" | |||
| "slash" "^3.0.0" | |||
| "jest-resolve@26.6.0": | |||
| "integrity" "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==" | |||
| "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz" | |||
| "version" "26.6.0" | |||
| "jest-resolve@^26.6.2": | |||
| "integrity" "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==" | |||
| "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz" | |||
| "version" "26.6.2" | |||
| dependencies: | |||
| "@jest/types" "^26.6.0" | |||
| "@jest/types" "^26.6.2" | |||
| "chalk" "^4.0.0" | |||
| "graceful-fs" "^4.2.4" | |||
| "jest-pnp-resolver" "^1.2.2" | |||
| "jest-util" "^26.6.0" | |||
| "jest-util" "^26.6.2" | |||
| "read-pkg-up" "^7.0.1" | |||
| "resolve" "^1.17.0" | |||
| "resolve" "^1.18.1" | |||
| "slash" "^3.0.0" | |||
| "jest-runner@^26.6.0", "jest-runner@^26.6.3": | |||
| @@ -7716,7 +7716,7 @@ | |||
| "merge-stream" "^2.0.0" | |||
| "supports-color" "^7.0.0" | |||
| "jest@^26.6.0", "jest@26.6.0": | |||
| "jest@^26.0.0", "jest@^26.6.0", "jest@26.6.0": | |||
| "integrity" "sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA==" | |||
| "resolved" "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz" | |||
| "version" "26.6.0" | |||
| @@ -7730,6 +7730,11 @@ | |||
| "resolved" "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz" | |||
| "version" "1.4.0" | |||
| "jquery@>=1.8.0": | |||
| "integrity" "sha512-/e7ulNIEEYk1Z/l4X0vpxGt+B/dNsV8ghOPAWZaJs8pkGvsSC0tm33aMGylXcj/U7y4IcvwtMXPMyBFZn/gK9A==" | |||
| "resolved" "https://registry.npmjs.org/jquery/-/jquery-3.6.2.tgz" | |||
| "version" "3.6.2" | |||
| "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": | |||
| "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" | |||
| "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" | |||
| @@ -10130,7 +10135,7 @@ | |||
| dependencies: | |||
| "fast-diff" "^1.1.2" | |||
| "prettier@2.3.1": | |||
| "prettier@>=1.13.0", "prettier@2.3.1": | |||
| "integrity" "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==" | |||
| "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz" | |||
| "version" "2.3.1" | |||
| @@ -10425,7 +10430,7 @@ | |||
| "strip-ansi" "6.0.0" | |||
| "text-table" "0.2.0" | |||
| "react-dom@^17.0.2": | |||
| "react-dom@^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8.0 || ^17.0.0", "react-dom@^17.0.0 || ^18.0.0", "react-dom@^17.0.2", "react-dom@^17.0.2 || ^18.0.0", "react-dom@<18.0.0", "react-dom@>=16.6.0", "react-dom@>=16.8.3": | |||
| "integrity" "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==" | |||
| "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" | |||
| "version" "17.0.2" | |||
| @@ -10519,7 +10524,7 @@ | |||
| "prop-types" "^15.5.8" | |||
| "substyle" "^9.1.0" | |||
| "react-redux@^7.2.4": | |||
| "react-redux@^7.2.1 || ^8.0.2", "react-redux@^7.2.4": | |||
| "integrity" "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==" | |||
| "resolved" "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz" | |||
| "version" "7.2.9" | |||
| @@ -10531,7 +10536,7 @@ | |||
| "prop-types" "^15.7.2" | |||
| "react-is" "^17.0.2" | |||
| "react-refresh@^0.8.3": | |||
| "react-refresh@^0.8.3", "react-refresh@>=0.8.3 <0.10.0": | |||
| "integrity" "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" | |||
| "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz" | |||
| "version" "0.8.3" | |||
| @@ -10681,7 +10686,7 @@ | |||
| "loose-envify" "^1.4.0" | |||
| "prop-types" "^15.6.2" | |||
| "react@^17.0.2": | |||
| "react@^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.0.0", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.3.0 || ^17.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0", "react@^16.8.3 || ^17 || ^18", "react@^16.9.0 || ^17.0.0 || ^18", "react@^17.0.0 || ^18.0.0", "react@^17.0.2", "react@^17.0.2 || ^18.0.0", "react@^18.2.0", "react@<18.0.0", "react@>= 16", "react@>= 16.8 || 18.0.0", "react@>= 16.8.0", "react@>=15", "react@>=16.6.0", "react@>=16.8", "react@>=16.8.0", "react@>=16.8.3", "react@17.0.2": | |||
| "integrity" "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==" | |||
| "resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz" | |||
| "version" "17.0.2" | |||
| @@ -10894,7 +10899,7 @@ | |||
| "resolved" "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz" | |||
| "version" "2.4.1" | |||
| "redux@^4.0.0", "redux@^4.0.4", "redux@^4.1.0", "redux@^4.1.2": | |||
| "redux@^4", "redux@^4.0.0", "redux@^4.0.4", "redux@^4.1.0", "redux@^4.1.2": | |||
| "integrity" "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==" | |||
| "resolved" "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz" | |||
| "version" "4.2.0" | |||
| @@ -11249,7 +11254,7 @@ | |||
| dependencies: | |||
| "estree-walker" "^0.6.1" | |||
| "rollup@^1.31.1": | |||
| "rollup@^1.20.0 || ^2.0.0", "rollup@^1.20.0||^2.0.0", "rollup@^1.31.1", "rollup@>=0.60.0 <3", "rollup@>=0.66.0 <3": | |||
| "integrity" "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==" | |||
| "resolved" "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz" | |||
| "version" "1.32.1" | |||
| @@ -11344,7 +11349,7 @@ | |||
| "schema-utils" "^3.0.0" | |||
| "semver" "^7.3.2" | |||
| "sass@^1.34.1": | |||
| "sass@^1.3.0", "sass@^1.34.1": | |||
| "integrity" "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==" | |||
| "resolved" "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz" | |||
| "version" "1.55.0" | |||
| @@ -11713,7 +11718,7 @@ | |||
| "source-map-resolve" "^0.5.0" | |||
| "use" "^3.1.0" | |||
| "sockjs-client@^1.5.0": | |||
| "sockjs-client@^1.4.0", "sockjs-client@^1.5.0": | |||
| "integrity" "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==" | |||
| "resolved" "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz" | |||
| "version" "1.5.1" | |||
| @@ -12628,6 +12633,11 @@ | |||
| dependencies: | |||
| "typescript-compare" "^0.0.2" | |||
| "typescript@^3.2.1 || ^4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": | |||
| "integrity" "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==" | |||
| "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz" | |||
| "version" "4.9.4" | |||
| "unbox-primitive@^1.0.2": | |||
| "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" | |||
| "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" | |||
| @@ -12992,7 +13002,7 @@ | |||
| "range-parser" "^1.2.1" | |||
| "webpack-log" "^2.0.0" | |||
| "webpack-dev-server@3.11.1": | |||
| "webpack-dev-server@3.11.1", "webpack-dev-server@3.x": | |||
| "integrity" "sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ==" | |||
| "resolved" "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz" | |||
| "version" "3.11.1" | |||
| @@ -13057,7 +13067,7 @@ | |||
| "source-list-map" "^2.0.0" | |||
| "source-map" "~0.6.1" | |||
| "webpack@4.44.2": | |||
| "webpack@^4.0.0", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.27.0 || ^5.0.0", "webpack@^4.36.0 || ^5.0.0", "webpack@^4.4.0 || ^5.0.0", "webpack@>=2", "webpack@>=4.43.0 <6.0.0", "webpack@2 || 3 || 4", "webpack@4.44.2": | |||
| "integrity" "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==" | |||
| "resolved" "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz" | |||
| "version" "4.44.2" | |||