| @@ -3486,6 +3486,7 @@ | |||
| "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", | |||
| @@ -3504,6 +3505,7 @@ | |||
| "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" | |||
| } | |||
| @@ -3512,6 +3514,7 @@ | |||
| "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" | |||
| }, | |||
| @@ -3526,6 +3529,7 @@ | |||
| "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" | |||
| } | |||
| @@ -3534,6 +3538,7 @@ | |||
| "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" | |||
| @@ -3549,6 +3554,7 @@ | |||
| "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" | |||
| }, | |||
| @@ -3559,12 +3565,14 @@ | |||
| "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==" | |||
| "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | |||
| "dev": true | |||
| }, | |||
| "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", | |||
| @@ -3590,6 +3598,7 @@ | |||
| "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" | |||
| } | |||
| @@ -3597,12 +3606,14 @@ | |||
| "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==" | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| }, | |||
| "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", | |||
| @@ -3616,6 +3627,7 @@ | |||
| "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" | |||
| }, | |||
| @@ -3627,6 +3639,7 @@ | |||
| "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" | |||
| }, | |||
| @@ -3804,7 +3817,8 @@ | |||
| "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==" | |||
| "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==", | |||
| "dev": true | |||
| }, | |||
| "node_modules/@types/babel__core": { | |||
| "version": "7.1.14", | |||
| @@ -4962,6 +4976,7 @@ | |||
| "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" | |||
| }, | |||
| @@ -7910,7 +7925,8 @@ | |||
| "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==" | |||
| "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", | |||
| "dev": true | |||
| }, | |||
| "node_modules/dom-converter": { | |||
| "version": "0.2.0", | |||
| @@ -8315,6 +8331,7 @@ | |||
| "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", | |||
| @@ -8332,7 +8349,8 @@ | |||
| "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==" | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| }, | |||
| "node_modules/es-to-primitive": { | |||
| "version": "1.2.1", | |||
| @@ -10093,6 +10111,7 @@ | |||
| "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" | |||
| } | |||
| @@ -11873,6 +11892,7 @@ | |||
| "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" | |||
| } | |||
| @@ -12030,6 +12050,7 @@ | |||
| "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" | |||
| } | |||
| @@ -12088,6 +12109,7 @@ | |||
| "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", | |||
| @@ -12111,6 +12133,7 @@ | |||
| "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" | |||
| } | |||
| @@ -12130,6 +12153,7 @@ | |||
| "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" | |||
| @@ -14951,6 +14975,7 @@ | |||
| "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" | |||
| } | |||
| @@ -17852,6 +17877,7 @@ | |||
| "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" | |||
| }, | |||
| @@ -21894,19 +21920,6 @@ | |||
| "is-typedarray": "^1.0.0" | |||
| } | |||
| }, | |||
| "node_modules/typescript": { | |||
| "version": "4.8.4", | |||
| "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", | |||
| "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", | |||
| "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", | |||
| @@ -23939,6 +23952,7 @@ | |||
| "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", | |||
| @@ -23958,6 +23972,7 @@ | |||
| "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", | |||
| @@ -25787,8 +25802,7 @@ | |||
| "@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==", | |||
| "requires": {} | |||
| "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==" | |||
| }, | |||
| "@emotion/utils": { | |||
| "version": "1.2.0", | |||
| @@ -26579,8 +26593,7 @@ | |||
| "@mui/types": { | |||
| "version": "7.2.0", | |||
| "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", | |||
| "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==", | |||
| "requires": {} | |||
| "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==" | |||
| }, | |||
| "@mui/utils": { | |||
| "version": "5.10.9", | |||
| @@ -26949,6 +26962,7 @@ | |||
| "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", | |||
| @@ -26964,6 +26978,7 @@ | |||
| "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" | |||
| } | |||
| @@ -26972,6 +26987,7 @@ | |||
| "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" | |||
| } | |||
| @@ -26980,6 +26996,7 @@ | |||
| "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" | |||
| } | |||
| @@ -26988,6 +27005,7 @@ | |||
| "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" | |||
| @@ -26997,6 +27015,7 @@ | |||
| "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" | |||
| } | |||
| @@ -27004,12 +27023,14 @@ | |||
| "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==" | |||
| "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | |||
| "dev": true | |||
| }, | |||
| "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", | |||
| @@ -27031,17 +27052,20 @@ | |||
| "has-flag": { | |||
| "version": "4.0.0", | |||
| "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | |||
| "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" | |||
| "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | |||
| "dev": true | |||
| }, | |||
| "isarray": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| }, | |||
| "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", | |||
| @@ -27051,7 +27075,8 @@ | |||
| "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==" | |||
| "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", | |||
| "dev": true | |||
| } | |||
| } | |||
| }, | |||
| @@ -27059,6 +27084,7 @@ | |||
| "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" | |||
| } | |||
| @@ -27197,7 +27223,8 @@ | |||
| "@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==" | |||
| "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==", | |||
| "dev": true | |||
| }, | |||
| "@types/babel__core": { | |||
| "version": "7.1.14", | |||
| @@ -27815,8 +27842,7 @@ | |||
| "acorn-jsx": { | |||
| "version": "5.3.2", | |||
| "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", | |||
| "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", | |||
| "requires": {} | |||
| "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" | |||
| }, | |||
| "acorn-walk": { | |||
| "version": "7.2.0", | |||
| @@ -27868,14 +27894,12 @@ | |||
| "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==", | |||
| "requires": {} | |||
| "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" | |||
| }, | |||
| "ajv-keywords": { | |||
| "version": "3.5.2", | |||
| "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", | |||
| "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", | |||
| "requires": {} | |||
| "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" | |||
| }, | |||
| "alphanum-sort": { | |||
| "version": "1.0.2", | |||
| @@ -28149,7 +28173,8 @@ | |||
| "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==" | |||
| "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", | |||
| "dev": true | |||
| }, | |||
| "axe-core": { | |||
| "version": "4.2.2", | |||
| @@ -28347,8 +28372,7 @@ | |||
| "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==", | |||
| "requires": {} | |||
| "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==" | |||
| }, | |||
| "babel-plugin-polyfill-corejs2": { | |||
| "version": "0.2.2", | |||
| @@ -30483,7 +30507,8 @@ | |||
| "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==" | |||
| "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", | |||
| "dev": true | |||
| }, | |||
| "dom-converter": { | |||
| "version": "0.2.0", | |||
| @@ -30835,6 +30860,7 @@ | |||
| "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", | |||
| @@ -30849,7 +30875,8 @@ | |||
| "isarray": { | |||
| "version": "2.0.5", | |||
| "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" | |||
| "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", | |||
| "dev": true | |||
| } | |||
| } | |||
| }, | |||
| @@ -31131,8 +31158,7 @@ | |||
| "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, | |||
| "requires": {} | |||
| "dev": true | |||
| }, | |||
| "eslint-config-react-app": { | |||
| "version": "6.0.0", | |||
| @@ -31366,8 +31392,7 @@ | |||
| "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==", | |||
| "requires": {} | |||
| "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==" | |||
| }, | |||
| "eslint-plugin-security": { | |||
| "version": "1.4.0", | |||
| @@ -32161,6 +32186,7 @@ | |||
| "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" | |||
| } | |||
| @@ -33540,7 +33566,8 @@ | |||
| "is-map": { | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", | |||
| "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" | |||
| "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", | |||
| "dev": true | |||
| }, | |||
| "is-module": { | |||
| "version": "1.0.0", | |||
| @@ -33643,7 +33670,8 @@ | |||
| "is-set": { | |||
| "version": "2.0.2", | |||
| "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", | |||
| "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" | |||
| "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", | |||
| "dev": true | |||
| }, | |||
| "is-shared-array-buffer": { | |||
| "version": "1.0.2", | |||
| @@ -33678,6 +33706,7 @@ | |||
| "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", | |||
| @@ -33694,7 +33723,8 @@ | |||
| "is-weakmap": { | |||
| "version": "2.0.1", | |||
| "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", | |||
| "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" | |||
| "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", | |||
| "dev": true | |||
| }, | |||
| "is-weakref": { | |||
| "version": "1.0.2", | |||
| @@ -33708,6 +33738,7 @@ | |||
| "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" | |||
| @@ -34497,8 +34528,7 @@ | |||
| "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==", | |||
| "requires": {} | |||
| "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" | |||
| }, | |||
| "jest-regex-util": { | |||
| "version": "26.0.0", | |||
| @@ -35835,7 +35865,8 @@ | |||
| "lz-string": { | |||
| "version": "1.4.4", | |||
| "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", | |||
| "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" | |||
| "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", | |||
| "dev": true | |||
| }, | |||
| "magic-string": { | |||
| "version": "0.25.7", | |||
| @@ -38166,7 +38197,8 @@ | |||
| "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==" | |||
| "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", | |||
| "dev": true | |||
| }, | |||
| "prettier-linter-helpers": { | |||
| "version": "1.0.0", | |||
| @@ -39076,8 +39108,7 @@ | |||
| "redux-thunk": { | |||
| "version": "2.4.1", | |||
| "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", | |||
| "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==", | |||
| "requires": {} | |||
| "integrity": "sha512-OOYGNY5Jy2TWvTL1KgAlVy6dcx3siPJ1wTq741EPyUKfn6W6nChdICjZwCd0p8AZBs5kWpZlbkXW2nE/zjUa+Q==" | |||
| }, | |||
| "regenerate": { | |||
| "version": "1.4.2", | |||
| @@ -41375,12 +41406,6 @@ | |||
| "is-typedarray": "^1.0.0" | |||
| } | |||
| }, | |||
| "typescript": { | |||
| "version": "4.8.4", | |||
| "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", | |||
| "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", | |||
| "peer": true | |||
| }, | |||
| "typescript-compare": { | |||
| "version": "0.0.2", | |||
| "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", | |||
| @@ -43002,6 +43027,7 @@ | |||
| "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", | |||
| @@ -43018,6 +43044,7 @@ | |||
| "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", | |||
| @@ -43305,8 +43332,7 @@ | |||
| "ws": { | |||
| "version": "7.4.6", | |||
| "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", | |||
| "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", | |||
| "requires": {} | |||
| "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" | |||
| }, | |||
| "xdg-basedir": { | |||
| "version": "4.0.0", | |||
| @@ -12,7 +12,8 @@ import { | |||
| BASE_PAGE, | |||
| RESET_PASSWORD_PAGE, | |||
| USERS_PAGE, | |||
| CANDIDATES_PAGE | |||
| CANDIDATES_PAGE, | |||
| USER_DETAILS_PAGE | |||
| } from "./constants/pages"; | |||
| // import LoginPage from './pages/LoginPage/LoginPage'; | |||
| @@ -30,6 +31,7 @@ import ResetPasswordPage from "./pages/ForgotPasswordPage/ResetPasswordPageMUI"; | |||
| import UsersPage from "./pages/UsersPage/UsersPage"; | |||
| import CandidatesPage from './pages/CandidatesPage/CandidatesPage' | |||
| import AdDetailsPage from "./pages/AdsPage/AdDetailsPage"; | |||
| import UserDetails from "./pages/UsersPage/UserDetails"; | |||
| const AppRoutes = () => ( | |||
| <Switch> | |||
| @@ -46,6 +48,7 @@ const AppRoutes = () => ( | |||
| <PrivateRoute exact path={HOME_PAGE} component={HomePage} /> | |||
| <PrivateRoute exact path={ADS_PAGE} component={AdsPage} /> | |||
| <PrivateRoute exact path={AD_DETAILS_PAGE} component={AdDetailsPage} /> | |||
| <PrivateRoute exact path={USER_DETAILS_PAGE} component={UserDetails} /> | |||
| <PrivateRoute exact path={USERS_PAGE} component={UsersPage} /> | |||
| <PrivateRoute exact path={CANDIDATES_PAGE} component={CandidatesPage} /> | |||
| <Redirect from="*" to={NOT_FOUND_PAGE} /> | |||
| @@ -29,3 +29,7 @@ | |||
| .ml-20px { | |||
| margin-left: 30px; | |||
| } | |||
| .divider{ | |||
| display: flex; | |||
| justify-content: space-between; | |||
| } | |||
| @@ -11,8 +11,8 @@ | |||
| min-width: none !important; | |||
| } | |||
| .td-btn.active{ | |||
| background-color: red !important; | |||
| background-color: rgba(100,255,100,0.75) !important; | |||
| } | |||
| .td-btn:hover{ | |||
| background-color: white !important; | |||
| .td-btn.inactive{ | |||
| background-color: rgba(255,100,100,0.75) !important; | |||
| } | |||
| @@ -6,4 +6,13 @@ | |||
| } | |||
| .hr-mid{ | |||
| padding: 2.5px 7.5px; | |||
| } | |||
| .vr{ | |||
| height: 20px; | |||
| position: relative; | |||
| top: 2.5px; | |||
| margin-left: 5px; | |||
| margin-right: 5px; | |||
| width: 2px; | |||
| background: $mainBlue; | |||
| } | |||
| @@ -1,66 +1,72 @@ | |||
| .f-1{ | |||
| flex: 1; | |||
| flex: 1; | |||
| } | |||
| .usersTable { | |||
| border-radius: 12px; | |||
| overflow: hidden; | |||
| background-color: white; | |||
| @include media-below($bp-xl) { | |||
| overflow-x: auto !important; | |||
| } | |||
| border-radius: 12px; | |||
| overflow: hidden; | |||
| background-color: white; | |||
| @include media-below($bp-xl) { | |||
| overflow-x: auto !important; | |||
| } | |||
| } | |||
| .table-cont{ | |||
| @include media-below($bp-xl) { | |||
| overflow-x: auto !important; | |||
| } | |||
| @include media-below($bp-xl) { | |||
| overflow-x: auto !important; | |||
| } | |||
| } | |||
| .usersTable .headingRow { | |||
| background-color: $mainBlueLight; | |||
| background-color: $mainBlueLight; | |||
| } | |||
| .usersTable .headingRow th { | |||
| font-weight: 600 !important; | |||
| font-weight: 600 !important; | |||
| } | |||
| .usersTable tr { | |||
| border: 1px solid #f4f4f4; | |||
| border: 1px solid #f4f4f4; | |||
| } | |||
| .usersTable td, | |||
| .usersTable th { | |||
| width: 20% !important; | |||
| height: 60px; | |||
| padding-left: 35px; | |||
| width: 20% !important; | |||
| height: 60px; | |||
| padding-left: 35px; | |||
| } | |||
| .usersTable > tbody > tr > td:last-of-type{ | |||
| display: flex !important; | |||
| flex-direction: row !important; | |||
| // justify-content: space-between; | |||
| align-items: center; | |||
| gap: 9px; | |||
| display: flex !important; | |||
| flex-direction: row !important; | |||
| // justify-content: space-between; | |||
| align-items: center; | |||
| gap: 9px; | |||
| } | |||
| .inviteBtn { | |||
| font-size: 12px; | |||
| letter-spacing: 1px; | |||
| text-transform: uppercase; | |||
| padding: 18px 70px !important; | |||
| margin-top: 60px; | |||
| font-size: 12px; | |||
| letter-spacing: 1px; | |||
| text-transform: uppercase; | |||
| padding: 18px 70px !important; | |||
| margin-top: 60px; | |||
| } | |||
| .secondaryRow:hover { | |||
| background-color: $mainBlueLight; | |||
| background-color: $mainBlueLight; | |||
| } | |||
| .cvLink { | |||
| text-decoration: underline; | |||
| font-family: "Source Sans Pro"; | |||
| font-style: normal; | |||
| font-weight: 400; | |||
| font-size: 14px; | |||
| text-decoration: underline; | |||
| font-family: "Source Sans Pro"; | |||
| font-style: normal; | |||
| font-weight: 400; | |||
| font-size: 14px; | |||
| // line-height: 15px; | |||
| /* identical to box height */ | |||
| text-decoration-line: underline; | |||
| /* Main Blue */ | |||
| color: #226cb0; | |||
| /* identical to box height */ | |||
| text-decoration-line: underline; | |||
| /* Main Blue */ | |||
| color: #226cb0; | |||
| // display: flex; | |||
| // justify-content: center; | |||
| // align-items: center; | |||
| // text-align: center; | |||
| // padding-left: 35px; | |||
| } | |||
| .dialog-subtitle{ | |||
| position: relative; | |||
| top: 2.5px; | |||
| color: $mainBlue; | |||
| margin-right: 100px; | |||
| } | |||
| @@ -45,7 +45,7 @@ const DialogComponent = ({ | |||
| }; | |||
| DialogComponent.propTypes = { | |||
| title: PropTypes.string, | |||
| title: PropTypes.any, | |||
| open: PropTypes.bool.isRequired, | |||
| content: PropTypes.any, | |||
| onClose: PropTypes.func.isRequired, | |||
| @@ -0,0 +1,79 @@ | |||
| import React from "react"; | |||
| import planeVector from "../../assets/images/planeVector.png"; | |||
| import PropTypes from "prop-types"; | |||
| import { | |||
| Dialog, | |||
| DialogContent, | |||
| DialogTitle, | |||
| DialogActions, | |||
| // Button, | |||
| useMediaQuery, | |||
| useTheme, | |||
| IconButton, | |||
| } from "@mui/material"; | |||
| const InviteDialog = ({ | |||
| title, | |||
| content, | |||
| onClose, | |||
| open, | |||
| maxWidth, | |||
| fullWidth, | |||
| responsive, | |||
| }) => { | |||
| const theme = useTheme(); | |||
| const fullScreen = useMediaQuery(theme.breakpoints.down("md")); | |||
| const handleClose = () => { | |||
| onClose(); | |||
| }; | |||
| return ( | |||
| <Dialog | |||
| maxWidth={maxWidth} | |||
| fullWidth={fullWidth} | |||
| fullScreen={responsive && fullScreen} | |||
| onClose={handleClose} | |||
| open={open} | |||
| style={{ | |||
| padding: "36px", | |||
| }} | |||
| > | |||
| <div style={{ padding: "36px" }}> | |||
| <DialogTitle style={{padding: 0}}>{title}</DialogTitle> | |||
| {content && <DialogContent style={{padding: '50px 0px'}}>{content}</DialogContent>} | |||
| <DialogActions style={{padding: 0}}> | |||
| {<IconButton | |||
| className={"c-btn--primary c-btn inviteBtn"} | |||
| sx={{ | |||
| width:'100%' | |||
| }} | |||
| onClick={handleClose} | |||
| > | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: 1.25, | |||
| paddingRight: "15px", | |||
| }} | |||
| src={planeVector} | |||
| />{" "} | |||
| Registracioni link | |||
| </IconButton>} | |||
| </DialogActions> | |||
| </div> | |||
| </Dialog> | |||
| ); | |||
| }; | |||
| InviteDialog.propTypes = { | |||
| title: PropTypes.any, | |||
| open: PropTypes.bool.isRequired, | |||
| content: PropTypes.any, | |||
| onClose: PropTypes.func.isRequired, | |||
| maxWidth: PropTypes.oneOf(["xs", "sm", "md", "lg", "xl"]), | |||
| fullWidth: PropTypes.bool, | |||
| responsive: PropTypes.bool, | |||
| }; | |||
| export default InviteDialog; | |||
| @@ -140,7 +140,7 @@ const NavbarComponent = () => { | |||
| }} | |||
| className="text-black" | |||
| as={Link} | |||
| to={n} | |||
| to={`/${n}`} | |||
| > | |||
| {t("nav." + n)} | |||
| </ListItemText> | |||
| @@ -215,11 +215,11 @@ const NavbarComponent = () => { | |||
| display: "flex", | |||
| justifyContent: "center", | |||
| alignItems: "center", | |||
| width: matches ? "100%" : "auto", | |||
| width: matches ? '100%' : 'auto' | |||
| }} | |||
| > | |||
| {matches ? ( | |||
| <Box | |||
| <Box | |||
| className="responsive-nav-cont" | |||
| style={{ | |||
| display: "flex", | |||
| @@ -230,14 +230,14 @@ const NavbarComponent = () => { | |||
| <img | |||
| style={{ height: "37px", width: "37px", marginLeft: "0px" }} | |||
| src={HrLogo} | |||
| className="responsive-logo" | |||
| className='responsive-logo' | |||
| /> | |||
| <div | |||
| style={{ | |||
| display: "flex", | |||
| alignItems: "center", | |||
| }} | |||
| className="icons-cont" | |||
| className='icons-cont' | |||
| > | |||
| <img src={searchIcon} /> | |||
| <IconButton | |||
| @@ -4,7 +4,14 @@ import { useLocation } from "react-router-dom"; | |||
| import Navbar from "../../components/MUI/NavbarComponent"; | |||
| // import AppRoutes from "../../AppRoutes"; | |||
| const urls = ["/", "/login", "/forgot-password", "/reset-password",'/forgot-password-confirmation','/error-page']; | |||
| const urls = [ | |||
| "/", | |||
| "/login", | |||
| "/forgot-password", | |||
| "/reset-password", | |||
| "/forgot-password-confirmation", | |||
| "/error-page", | |||
| ]; | |||
| const MainContainer = ({ children }) => { | |||
| const { pathname } = useLocation(); | |||
| @@ -6,6 +6,7 @@ export const AD_DETAILS_PAGE = '/ads/:id'; | |||
| export const ERROR_PAGE = '/error-page'; | |||
| export const NOT_FOUND_PAGE = '/not-found'; | |||
| export const USERS_PAGE = '/users'; | |||
| export const USER_DETAILS_PAGE = '/users/:id'; | |||
| export const CANDIDATES_PAGE = '/candidates'; | |||
| export const FORGOT_PASSWORD_CONFIRMATION_PAGE = '/forgot-password-confirmation'; | |||
| export const RESET_PASSWORD_PAGE = '/reset-password'; | |||
| @@ -0,0 +1,196 @@ | |||
| import React from "react"; | |||
| import PropTypes from "prop-types"; | |||
| import avatar from "../../assets/images/Avatar.png"; | |||
| import filters from "../../assets/images/filters.png"; | |||
| import lock from "../../assets/images/lock.png"; | |||
| import forbiden from "../../assets/images/forbiden.png"; | |||
| import IconButton from "../../components/IconButton/IconButton"; | |||
| import { Link, useParams } from "react-router-dom"; | |||
| import { deleteUserReq } from "../../store/actions/users/usersActions"; | |||
| import { useDispatch } from "react-redux"; | |||
| import { USERS_PAGE } from "../../constants/pages"; | |||
| import { forgetPassword } from "../../store/actions/login/loginActions"; | |||
| const UserDetails = ({ history }) => { | |||
| const { id } = useParams(); | |||
| const dispatch = useDispatch(); | |||
| const handleReset = (email) => { | |||
| dispatch( | |||
| forgetPassword({ | |||
| email, | |||
| handleApiResponseSuccessReset, | |||
| }) | |||
| ); | |||
| }; | |||
| const handleApiResponseSuccessReset = () => { | |||
| alert("Ok"); | |||
| }; | |||
| const handleApiResponseSuccess = () => { | |||
| history.push({ | |||
| pathname: USERS_PAGE, | |||
| state: { | |||
| from: history.location.pathname, | |||
| }, | |||
| }); | |||
| }; | |||
| const deleteHandler = () => { | |||
| dispatch(deleteUserReq({ id, handleApiResponseSuccess })); | |||
| }; | |||
| return ( | |||
| <div> | |||
| <div className="l-t-rectangle"></div> | |||
| <div className="r-b-rectangle"></div> | |||
| <div className="pl-144 pt-36px"> | |||
| <div className="divider"> | |||
| <div className="flex-center"> | |||
| <h1 style={{ letterSpacing: "1px" }}>Korisnik</h1> | |||
| <div | |||
| className="vr" | |||
| style={{ | |||
| margin: "0px 10px 0px 15px", | |||
| top: "6px", | |||
| backgroundColor: "#252525", | |||
| }} | |||
| ></div> | |||
| <h3 | |||
| style={{ | |||
| letterSpacing: "0.75px", | |||
| position: "relative", | |||
| top: "4px", | |||
| }} | |||
| className="text-blue" | |||
| > | |||
| Stefan Stamenkovic | |||
| </h3> | |||
| </div> | |||
| <div className="flex-center"> | |||
| <IconButton | |||
| className={ | |||
| "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" | |||
| } | |||
| onClick={() => handleReset("meris.ahmatovic@dilig.net")} | |||
| > | |||
| Resetuj password | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| paddingLeft: "10px", | |||
| }} | |||
| src={lock} | |||
| /> | |||
| </IconButton> | |||
| <IconButton | |||
| className={ | |||
| "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" | |||
| } | |||
| > | |||
| Blokiraj | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| paddingLeft: "10px", | |||
| }} | |||
| src={forbiden} | |||
| /> | |||
| </IconButton> | |||
| <IconButton | |||
| className={ | |||
| "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" | |||
| } | |||
| onClick={deleteHandler} | |||
| > | |||
| Obrisi | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| paddingLeft: "10px", | |||
| }} | |||
| src={filters} | |||
| /> | |||
| </IconButton> | |||
| <IconButton | |||
| className={ | |||
| "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" | |||
| } | |||
| > | |||
| Uredi profil | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| paddingLeft: "10px", | |||
| }} | |||
| src={filters} | |||
| /> | |||
| </IconButton> | |||
| </div> | |||
| </div> | |||
| <div className="flex-center" style={{ justifyContent: "flex-start" }}> | |||
| <img | |||
| src={avatar} | |||
| height="108px" | |||
| width="108px" | |||
| style={{ margin: "18px 15px 36px 0px" }} | |||
| /> | |||
| <p>HR Specialist</p> | |||
| </div> | |||
| <div style={{ display: "flex", flexDirection: "column", gap: "18px" }}> | |||
| <p style={{ fontWeight: "600" }}>Kontakt</p> | |||
| <div className="flex-center" style={{ justifyContent: "flex-start" }}> | |||
| <p style={{ width: "85px" }}>Email:</p> | |||
| <p className="text-blue">stameni@dilig.net</p> | |||
| </div> | |||
| <div className="flex-center" style={{ justifyContent: "flex-start" }}> | |||
| <p style={{ width: "85px" }}>Telefon:</p> | |||
| <p className="text-blue">0628264606</p> | |||
| </div> | |||
| </div> | |||
| <div | |||
| style={{ | |||
| display: "flex", | |||
| flexDirection: "column", | |||
| gap: "18px", | |||
| paddingTop: "36px", | |||
| }} | |||
| > | |||
| <p style={{ fontWeight: "600" }}>Drustvene mreze</p> | |||
| <div className="flex-center" style={{ justifyContent: "flex-start" }}> | |||
| <p style={{ width: "85px" }}>LinkedIn:</p> | |||
| <p className="text-blue">https://www.linkedin.com/in/stamenis/</p> | |||
| </div> | |||
| </div> | |||
| <div | |||
| style={{ | |||
| display: "flex", | |||
| justifyContent: "flex-end", | |||
| marginTop: "150px", | |||
| }} | |||
| > | |||
| <Link to={"/users"} className="text-blue"> | |||
| Nazad na listu korisnika | |||
| </Link> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| ); | |||
| }; | |||
| export default UserDetails; | |||
| UserDetails.propTypes = { | |||
| history: PropTypes.shape({ | |||
| replace: PropTypes.func, | |||
| push: PropTypes.func, | |||
| location: PropTypes.shape({ | |||
| pathname: PropTypes.string, | |||
| }), | |||
| }), | |||
| }; | |||
| @@ -1,32 +1,114 @@ | |||
| import React from "react"; | |||
| import React, { useState } from "react"; | |||
| import IconButton from "../../components/IconButton/IconButton"; | |||
| import userPageBtnIcon from "../../assets/images/userPageBtnIcon.png"; | |||
| import planeVector from "../../assets/images/planeVector.png"; | |||
| import lock from "../../assets/images/lock.png"; | |||
| import filters from "../../assets/images/filters.png"; | |||
| import forbiden from "../../assets/images/forbiden.png"; | |||
| import x from "../../assets/images/x.png"; | |||
| import edit from "../../assets/images/edit.png"; | |||
| import { useEffect } from "react"; | |||
| import addUser from "../../assets/images/addUser.png"; | |||
| // import { getAllUsers } from "../../request/usersRequest"; | |||
| // import { getUsers } from "../../store/saga/usersSaga"; | |||
| import { useDispatch, useSelector } from "react-redux"; | |||
| import { setUsersReq } from "../../store/actions/users/usersActions"; | |||
| import { | |||
| // deleteUserReq, | |||
| setEnableUsersReq, | |||
| setUsersReq, | |||
| } from "../../store/actions/users/usersActions"; | |||
| import { useTheme } from "@mui/system"; | |||
| import { useMediaQuery } from "@mui/material"; | |||
| import { TextField, useMediaQuery } from "@mui/material"; | |||
| // import DialogComponent from "../../components/MUI/DialogComponent"; | |||
| import InviteDialog from "../../components/MUI/InviteDialog"; | |||
| import { Link } from "react-router-dom"; | |||
| import { forgetPassword } from "../../store/actions/login/loginActions"; | |||
| const UsersPage = () => { | |||
| const theme = useTheme(); | |||
| const matches = useMediaQuery(theme.breakpoints.down("sm")); | |||
| const dispatch = useDispatch(); | |||
| const { users } = useSelector((s) => s.users); | |||
| const [showInvite, setShowInvite] = useState(false); | |||
| useEffect(() => { | |||
| dispatch(setUsersReq()); | |||
| }, [dispatch]); | |||
| const disableHandler = (id) => { | |||
| dispatch(setEnableUsersReq({ id })); | |||
| }; | |||
| const handleReset = (email) => { | |||
| dispatch( | |||
| forgetPassword({ | |||
| email, | |||
| handleApiResponseSuccessReset, | |||
| }) | |||
| ); | |||
| }; | |||
| const handleApiResponseSuccessReset = () => { | |||
| alert("Ok"); | |||
| }; | |||
| return ( | |||
| <div> | |||
| <div className="l-t-rectangle"></div> | |||
| <div className="r-b-rectangle"></div> | |||
| {/* {showInvite && <DialogComponent/>} */} | |||
| <InviteDialog | |||
| open={showInvite} | |||
| onClose={() => { | |||
| setShowInvite(false); | |||
| }} | |||
| title={ | |||
| <div | |||
| className="flex-center" | |||
| style={{ justifyContent: "space-between" }} | |||
| > | |||
| <div className="flex-center" style={{ justifyContent: "start" }}> | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| paddingRight: "10px", | |||
| }} | |||
| src={addUser} | |||
| /> | |||
| <h5>Invite korisnika</h5> | |||
| <div className="vr"></div> | |||
| <p className="dialog-subtitle">Registracioni link</p> | |||
| </div> | |||
| <IconButton onClick={() => setShowInvite(false)}> | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| }} | |||
| src={x} | |||
| /> | |||
| </IconButton> | |||
| </div> | |||
| } | |||
| content={ | |||
| <form> | |||
| {/* <label>Primaoc</label> */} | |||
| <TextField | |||
| name="username" | |||
| label={"Primaoc"} | |||
| margin="normal" | |||
| // value={formik.values.username} | |||
| // onChange={formik.handleChange} | |||
| // error={formik.touched.username && Boolean(formik.errors.username)} | |||
| // helperText={formik.touched.username && formik.errors.username} | |||
| // autoFocus | |||
| fullWidth | |||
| /> | |||
| </form> | |||
| } | |||
| /> | |||
| <div> | |||
| <div | |||
| className="pl-144 flex-center" | |||
| @@ -78,13 +160,12 @@ const UsersPage = () => { | |||
| }} | |||
| > | |||
| <div className=" table-cont"> | |||
| <table className="usersTable" style={{ width: "1117px" }}> | |||
| <table className="usersTable" style={{ width: "893.56px" }}> | |||
| <thead> | |||
| <tr className="headingRow"> | |||
| <th>Ime i prezime</th> | |||
| <th>E-mail</th> | |||
| <th>Pozicija</th> | |||
| <th>CV Link</th> | |||
| <th></th> | |||
| </tr> | |||
| </thead> | |||
| @@ -96,10 +177,11 @@ const UsersPage = () => { | |||
| </td> | |||
| <td>{n.email}</td> | |||
| <td>HR Specialist</td> | |||
| <td className="cvLink">CV_Ermin.pdf</td> | |||
| {/* <td className="cvLink">CV_Ermin.pdf</td> */} | |||
| <td> | |||
| <IconButton | |||
| className={"c-btn--primary-outlined c-btn td-btn"} | |||
| className={`c-btn--primary-outlined c-btn td-btn`} | |||
| onClick={() => handleReset(n.email)} | |||
| > | |||
| <img | |||
| style={{ | |||
| @@ -109,7 +191,11 @@ const UsersPage = () => { | |||
| /> | |||
| </IconButton> | |||
| <IconButton | |||
| className={`c-btn--primary-outlined c-btn td-btn ${n.isEnabled && 'active'}`} | |||
| className={`c-btn--primary-outlined c-btn td-btn ${ | |||
| n.isEnabled ? "active" : "inactive" | |||
| }`} | |||
| onClick={() => disableHandler(n.id)} | |||
| > | |||
| <img | |||
| style={{ | |||
| @@ -118,16 +204,18 @@ const UsersPage = () => { | |||
| src={forbiden} | |||
| /> | |||
| </IconButton> | |||
| <IconButton | |||
| className={"c-btn--primary-outlined c-btn td-btn"} | |||
| > | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| }} | |||
| src={edit} | |||
| /> | |||
| </IconButton> | |||
| <Link to={`/users/${n.id}`}> | |||
| <IconButton | |||
| className={"c-btn--primary-outlined c-btn td-btn"} | |||
| > | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| }} | |||
| src={edit} | |||
| /> | |||
| </IconButton> | |||
| </Link> | |||
| </td> | |||
| </tr> | |||
| ))} | |||
| @@ -135,7 +223,12 @@ const UsersPage = () => { | |||
| </table> | |||
| </div> | |||
| <div style={{ display: "flex", justifyContent: "flex-end" }}> | |||
| <IconButton className={"c-btn--primary c-btn inviteBtn"}> | |||
| <IconButton | |||
| className={"c-btn--primary c-btn inviteBtn"} | |||
| onClick={() => { | |||
| setShowInvite(true); | |||
| }} | |||
| > | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| @@ -10,7 +10,9 @@ export default { | |||
| resetPassword: base + "/authentications/RessetPassword", | |||
| }, | |||
| users:{ | |||
| allUsers: base + '/users', | |||
| allUsers:'http://localhost:26081/v1/users', | |||
| user:'http://localhost:26081/v1/users/{id}', | |||
| toggleEnabled:'http://localhost:26081/v1/users/toggleEnable/{id}', | |||
| }, | |||
| candidates:{ | |||
| allCandidates:base + "/applicants" | |||
| @@ -1,4 +1,18 @@ | |||
| import { getRequest } from "."; | |||
| import { deleteRequest, getRequest, postRequest, replaceInUrl } from "."; | |||
| import apiEndpoints from "./apiEndpoints"; | |||
| export const getAllUsers = () => getRequest(apiEndpoints.users.allUsers); | |||
| export const enableUserRequest = (id) => | |||
| postRequest( | |||
| replaceInUrl(apiEndpoints.users.toggleEnabled, { | |||
| id, | |||
| }) | |||
| ); | |||
| export const deleteUserRequest = (id) => | |||
| deleteRequest( | |||
| replaceInUrl(apiEndpoints.users.user, { | |||
| id, | |||
| }) | |||
| ); | |||
| @@ -1,3 +1,11 @@ | |||
| export const FETCH_USERS_REQ = 'FETCH_USERS_REQ'; | |||
| export const FETCH_USERS_ERR = 'FETCH_USERS_ERR'; | |||
| export const FETCH_USERS_SUCCESS = 'FETCH_USERS_SUCCESS'; | |||
| export const FETCH_USERS_SUCCESS = 'FETCH_USERS_SUCCESS'; | |||
| export const TOGGLE_USER_ENABLE_REQ = 'TOGGLE_USER_ENABLE_REQ'; | |||
| export const TOGGLE_USER_ENABLE_ERR = 'TOGGLE_USER_ENABLE_ERR'; | |||
| export const TOGGLE_USER_ENABLE_SUCCESS = 'TOGGLE_USER_ENABLE_SUCCESS'; | |||
| export const DELETE_USER_REQ = 'DELETE_USER_REQ'; | |||
| export const DELETE_USER_ERR = 'DELETE_USER_ERR'; | |||
| export const DELETE_USER_SUCCESS = 'DELETE_USER_SUCCESS'; | |||
| @@ -1,20 +1,55 @@ | |||
| import { | |||
| FETCH_USERS_ERR, | |||
| FETCH_USERS_REQ, | |||
| FETCH_USERS_SUCCESS, | |||
| } from './usersActionConstants'; | |||
| export const setUsersReq = () => ({ | |||
| type: FETCH_USERS_REQ, | |||
| }); | |||
| export const setUsersError = (payload) => ({ | |||
| type: FETCH_USERS_ERR, | |||
| payload, | |||
| }); | |||
| export const setUsers = (payload) => ({ | |||
| type: FETCH_USERS_SUCCESS, | |||
| payload, | |||
| }); | |||
| DELETE_USER_ERR, | |||
| DELETE_USER_REQ, | |||
| DELETE_USER_SUCCESS, | |||
| FETCH_USERS_ERR, | |||
| FETCH_USERS_REQ, | |||
| FETCH_USERS_SUCCESS, | |||
| TOGGLE_USER_ENABLE_ERR, | |||
| TOGGLE_USER_ENABLE_REQ, | |||
| TOGGLE_USER_ENABLE_SUCCESS, | |||
| } from "./usersActionConstants"; | |||
| export const setUsersReq = () => ({ | |||
| type: FETCH_USERS_REQ, | |||
| }); | |||
| export const setUsersError = (payload) => ({ | |||
| type: FETCH_USERS_ERR, | |||
| payload, | |||
| }); | |||
| export const setUsers = (payload) => ({ | |||
| type: FETCH_USERS_SUCCESS, | |||
| payload, | |||
| }); | |||
| export const setEnableUsersReq = (payload) => ({ | |||
| type: TOGGLE_USER_ENABLE_REQ, | |||
| payload, | |||
| }); | |||
| export const setEnableUsersError = (payload) => ({ | |||
| type: TOGGLE_USER_ENABLE_ERR, | |||
| payload, | |||
| }); | |||
| export const setEnableUsers = (payload) => ({ | |||
| type: TOGGLE_USER_ENABLE_SUCCESS, | |||
| payload, | |||
| }); | |||
| export const deleteUserReq = (payload) => ({ | |||
| type: DELETE_USER_REQ, | |||
| payload, | |||
| }); | |||
| export const deleteUserError = (payload) => ({ | |||
| type: DELETE_USER_ERR, | |||
| payload, | |||
| }); | |||
| export const deleteStateUser = (payload) => ({ | |||
| type: DELETE_USER_SUCCESS, | |||
| payload, | |||
| }); | |||
| @@ -1,19 +1,28 @@ | |||
| import createReducer from "../../utils/createReducer"; | |||
| import { | |||
| DELETE_USER_ERR, | |||
| DELETE_USER_SUCCESS, | |||
| FETCH_USERS_ERR, | |||
| FETCH_USERS_SUCCESS, | |||
| TOGGLE_USER_ENABLE_ERR, | |||
| TOGGLE_USER_ENABLE_SUCCESS, | |||
| } from "../../actions/users/usersActionConstants"; | |||
| // import { setUsersError } from "../../actions/users/usersActions"; | |||
| const initialState = { | |||
| users: [], | |||
| errorMessage: "", | |||
| fetchUsersErrorMessage: "", | |||
| toggleEnableErrorMessage: "" | |||
| }; | |||
| export default createReducer( | |||
| { | |||
| [FETCH_USERS_SUCCESS]: setStateUsers, | |||
| [FETCH_USERS_ERR]: setUsersErrorMessage, | |||
| [TOGGLE_USER_ENABLE_SUCCESS]: toggleEnableStateUsers, | |||
| [TOGGLE_USER_ENABLE_ERR]: setToggleEnableErrorMessage, | |||
| [DELETE_USER_SUCCESS]: deleteStateUser, | |||
| [DELETE_USER_ERR]: setDeleteUserErrorMessage, | |||
| }, | |||
| initialState | |||
| ); | |||
| @@ -28,6 +37,36 @@ function setStateUsers(state, action) { | |||
| function setUsersErrorMessage(state, action) { | |||
| return { | |||
| ...state, | |||
| errorMessage: action.payload, | |||
| fetchUsersErrorMessage: action.payload, | |||
| }; | |||
| } | |||
| function toggleEnableStateUsers(state, action) { | |||
| let newUsers = state.users.map(n => n.id === action.payload ? {...n, isEnabled: !n.isEnabled} : n) | |||
| return { | |||
| ...state, | |||
| users: newUsers, | |||
| }; | |||
| } | |||
| function setToggleEnableErrorMessage(state, action) { | |||
| return { | |||
| ...state, | |||
| toggleEnableErrorMessage: action.payload, | |||
| }; | |||
| } | |||
| function deleteStateUser(state, action) { | |||
| let newUsers = state.users.filter(n => n.id !== action.payload) | |||
| return { | |||
| ...state, | |||
| users: newUsers, | |||
| }; | |||
| } | |||
| function setDeleteUserErrorMessage(state, action) { | |||
| return { | |||
| ...state, | |||
| toggleEnableErrorMessage: action.payload, | |||
| }; | |||
| } | |||
| @@ -76,6 +76,7 @@ function* fetchUser({ payload }) { | |||
| function* forgetPassword({ payload }) { | |||
| try { | |||
| // console.log(payload) | |||
| const { data } = yield call(forgetPasswordEmailSend, payload); | |||
| yield put(forgetPasswordSuccess(data)); | |||
| if (payload.handleApiResponseSuccess) { | |||
| @@ -90,6 +91,9 @@ function* forgetPassword({ payload }) { | |||
| yield put(fetchUserError(errorMessage)); | |||
| } | |||
| } | |||
| finally{ | |||
| console.log('Done') | |||
| } | |||
| } | |||
| function* resetPassword({ payload }) { | |||
| @@ -1,23 +1,76 @@ | |||
| import { all, call, put, takeEvery } from "redux-saga/effects"; | |||
| import { JWT_TOKEN } from "../../constants/localStorage"; | |||
| import { addHeaderToken } from "../../request"; | |||
| import { getAllUsers } from "../../request/usersRequest"; | |||
| import { | |||
| deleteUserRequest, | |||
| enableUserRequest, | |||
| getAllUsers, | |||
| } from "../../request/usersRequest"; | |||
| import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers"; | |||
| import { FETCH_USERS_REQ } from "../actions/users/usersActionConstants"; | |||
| import { setUsers, setUsersError } from "../actions/users/usersActions"; | |||
| import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; | |||
| import { | |||
| DELETE_USER_REQ, | |||
| FETCH_USERS_REQ, | |||
| TOGGLE_USER_ENABLE_REQ, | |||
| } from "../actions/users/usersActionConstants"; | |||
| import { | |||
| deleteStateUser, | |||
| deleteUserError, | |||
| setEnableUsers, | |||
| setEnableUsersError, | |||
| setUsers, | |||
| setUsersError, | |||
| } from "../actions/users/usersActions"; | |||
| export function* getUsers() { | |||
| try { | |||
| const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| yield call(addHeaderToken, JwtToken); | |||
| const result = yield call(getAllUsers); | |||
| // console.log(result.data) | |||
| yield put(setUsers(result.data)); | |||
| } catch (error) { | |||
| yield put(setUsersError(error)) | |||
| if (error.response && error.response.data) { | |||
| const errorMessage = yield call(rejectErrorCodeHelper, error); | |||
| yield put(setUsersError(errorMessage)); | |||
| } | |||
| } | |||
| } | |||
| export function* enableUser({ payload }) { | |||
| try { | |||
| const result = yield call(enableUserRequest, payload.id); | |||
| yield put(setEnableUsers(result.data)); | |||
| } catch (error) { | |||
| if (error.response && error.response.data) { | |||
| const errorMessage = yield call(rejectErrorCodeHelper, error); | |||
| yield put(setEnableUsersError(errorMessage)); | |||
| } | |||
| } | |||
| } | |||
| export function* deleteUser({ payload }) { | |||
| try { | |||
| const result = yield call(deleteUserRequest, payload.id); | |||
| // linija koda ispod nece biti potrebna | |||
| // jer nakon brisanja svakako idemo na | |||
| // users page gde se setuje state ponovo sa novim vrednostima | |||
| yield put(deleteStateUser(result.data)); | |||
| if(payload.handleApiResponseSuccess){ | |||
| yield call(payload.handleApiResponseSuccess) | |||
| } | |||
| } catch (error) { | |||
| if (error.response && error.response.data) { | |||
| const errorMessage = yield call(rejectErrorCodeHelper, error); | |||
| yield put(deleteUserError(errorMessage)); | |||
| } | |||
| } | |||
| } | |||
| export default function* usersSaga() { | |||
| yield all([takeEvery(FETCH_USERS_REQ, getUsers)]); | |||
| yield all([ | |||
| takeEvery(FETCH_USERS_REQ, getUsers), | |||
| takeEvery(TOGGLE_USER_ENABLE_REQ, enableUser), | |||
| takeEvery(DELETE_USER_REQ, deleteUser), | |||
| ]); | |||
| } | |||
| @@ -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.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": | |||
| "@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5", "@babel/core@^7.8.4": | |||
| "integrity" "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==" | |||
| "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz" | |||
| "version" "7.14.3" | |||
| @@ -1306,7 +1306,7 @@ | |||
| "resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz" | |||
| "version" "0.8.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.1.1", "@emotion/react@^11.5.0": | |||
| "integrity" "sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==" | |||
| "resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.10.4.tgz" | |||
| "version" "11.10.4" | |||
| @@ -1642,7 +1642,7 @@ | |||
| dependencies: | |||
| "@babel/runtime" "^7.19.0" | |||
| "@mui/material@^5.0.0", "@mui/material@^5.0.6", "@mui/material@^5.4.1": | |||
| "@mui/material@^5.0.6": | |||
| "integrity" "sha512-ioLvqY7VvcePz9dnEIRhpiVvtJmAFmvG6rtLXXzVdMmAVbSaelr5Io07mPz/mCyqE+Uv8/4EuJV276DWO7etzA==" | |||
| "resolved" "https://registry.npmjs.org/@mui/material/-/material-5.10.10.tgz" | |||
| "version" "5.10.10" | |||
| @@ -1679,7 +1679,7 @@ | |||
| "csstype" "^3.1.1" | |||
| "prop-types" "^15.8.1" | |||
| "@mui/system@^5.10.10", "@mui/system@^5.4.1": | |||
| "@mui/system@^5.10.10": | |||
| "integrity" "sha512-TXwtKN0adKpBrZmO+eilQWoPf2veh050HLYrN78Kps9OhlvO70v/2Kya0+mORFhu9yhpAwjHXO8JII/R4a5ZLA==" | |||
| "resolved" "https://registry.npmjs.org/@mui/system/-/system-5.10.10.tgz" | |||
| "version" "5.10.10" | |||
| @@ -1985,7 +1985,7 @@ | |||
| dependencies: | |||
| "defer-to-connect" "^1.0.1" | |||
| "@testing-library/dom@^8.0.0", "@testing-library/dom@>=7.21.4": | |||
| "@testing-library/dom@^8.0.0": | |||
| "integrity" "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==" | |||
| "resolved" "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz" | |||
| "version" "8.19.0" | |||
| @@ -2226,7 +2226,7 @@ | |||
| dependencies: | |||
| "@types/react" "*" | |||
| "@types/react@*", "@types/react@^17.0.0 || ^18.0.0": | |||
| "@types/react@*": | |||
| "integrity" "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==" | |||
| "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz" | |||
| "version" "18.0.21" | |||
| @@ -2294,7 +2294,7 @@ | |||
| "@types/source-list-map" "*" | |||
| "source-map" "^0.7.3" | |||
| "@types/webpack@^4.41.8", "@types/webpack@4.x": | |||
| "@types/webpack@^4.41.8": | |||
| "integrity" "sha512-6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q==" | |||
| "resolved" "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.29.tgz" | |||
| "version" "4.41.29" | |||
| @@ -2318,7 +2318,7 @@ | |||
| dependencies: | |||
| "@types/yargs-parser" "*" | |||
| "@typescript-eslint/eslint-plugin@^4.0.0", "@typescript-eslint/eslint-plugin@^4.5.0", "@typescript-eslint/eslint-plugin@>= 4": | |||
| "@typescript-eslint/eslint-plugin@^4.5.0": | |||
| "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" | |||
| @@ -2355,7 +2355,7 @@ | |||
| "eslint-scope" "^5.1.1" | |||
| "eslint-utils" "^3.0.0" | |||
| "@typescript-eslint/parser@^4.0.0", "@typescript-eslint/parser@^4.5.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" | |||
| @@ -2611,16 +2611,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" | |||
| @@ -2664,7 +2664,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.9.1", "ajv@>=5.0.0": | |||
| "ajv@^6.1.0", "ajv@^6.10.0", "ajv@^6.10.2", "ajv@^6.12.4", "ajv@^6.12.5": | |||
| "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" | |||
| "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" | |||
| "version" "6.12.6" | |||
| @@ -2987,7 +2987,7 @@ | |||
| "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" | |||
| "version" "2.2.0" | |||
| "babel-eslint@^10.0.0", "babel-eslint@^10.1.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" | |||
| @@ -3418,7 +3418,7 @@ | |||
| dependencies: | |||
| "pako" "~1.0.5" | |||
| "browserslist@^4", "browserslist@^4.0.0", "browserslist@^4.12.0", "browserslist@^4.16.6", "browserslist@^4.6.2", "browserslist@^4.6.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" | |||
| @@ -5204,7 +5204,7 @@ | |||
| "lodash" "^4.17.15" | |||
| "string-natural-compare" "^3.0.1" | |||
| "eslint-plugin-import@^2.22.0", "eslint-plugin-import@^2.22.1", "eslint-plugin-import@^2.23.4": | |||
| "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" | |||
| @@ -5225,7 +5225,7 @@ | |||
| "resolve" "^1.20.0" | |||
| "tsconfig-paths" "^3.9.0" | |||
| "eslint-plugin-jest@^24.0.0", "eslint-plugin-jest@^24.1.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" | |||
| @@ -5256,12 +5256,12 @@ | |||
| dependencies: | |||
| "prettier-linter-helpers" "^1.0.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": | |||
| "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.20.3", "eslint-plugin-react@^7.21.5", "eslint-plugin-react@^7.24.0": | |||
| "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" | |||
| @@ -5286,7 +5286,7 @@ | |||
| dependencies: | |||
| "safe-regex" "^1.1.0" | |||
| "eslint-plugin-testing-library@^3.9.0", "eslint-plugin-testing-library@^3.9.2": | |||
| "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" | |||
| @@ -5362,7 +5362,7 @@ | |||
| "normalize-path" "^3.0.0" | |||
| "schema-utils" "^3.0.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": | |||
| "eslint@^7.11.0", "eslint@^7.28.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" | |||
| @@ -5709,7 +5709,7 @@ | |||
| dependencies: | |||
| "flat-cache" "^3.0.4" | |||
| "file-loader@*", "file-loader@6.1.1": | |||
| "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" | |||
| @@ -6507,7 +6507,7 @@ | |||
| "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" | |||
| "version" "1.1.1" | |||
| "i18next@^20.3.1", "i18next@>= 19.0.0": | |||
| "i18next@^20.3.1": | |||
| "integrity" "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==" | |||
| "resolved" "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz" | |||
| "version" "20.6.1" | |||
| @@ -7452,20 +7452,6 @@ | |||
| "jest-regex-util" "^26.0.0" | |||
| "jest-snapshot" "^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.0" | |||
| "chalk" "^4.0.0" | |||
| "graceful-fs" "^4.2.4" | |||
| "jest-pnp-resolver" "^1.2.2" | |||
| "jest-util" "^26.6.0" | |||
| "read-pkg-up" "^7.0.1" | |||
| "resolve" "^1.17.0" | |||
| "slash" "^3.0.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" | |||
| @@ -7480,6 +7466,20 @@ | |||
| "resolve" "^1.18.1" | |||
| "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" | |||
| dependencies: | |||
| "@jest/types" "^26.6.0" | |||
| "chalk" "^4.0.0" | |||
| "graceful-fs" "^4.2.4" | |||
| "jest-pnp-resolver" "^1.2.2" | |||
| "jest-util" "^26.6.0" | |||
| "read-pkg-up" "^7.0.1" | |||
| "resolve" "^1.17.0" | |||
| "slash" "^3.0.0" | |||
| "jest-runner@^26.6.0", "jest-runner@^26.6.3": | |||
| "integrity" "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==" | |||
| "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz" | |||
| @@ -7636,7 +7636,7 @@ | |||
| "merge-stream" "^2.0.0" | |||
| "supports-color" "^7.0.0" | |||
| "jest@^26.0.0", "jest@^26.6.0", "jest@26.6.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" | |||
| @@ -10043,7 +10043,7 @@ | |||
| dependencies: | |||
| "fast-diff" "^1.1.2" | |||
| "prettier@>=1.13.0", "prettier@2.3.1": | |||
| "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" | |||
| @@ -10338,7 +10338,7 @@ | |||
| "strip-ansi" "6.0.0" | |||
| "text-table" "0.2.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@^17.0.2": | |||
| "integrity" "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==" | |||
| "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" | |||
| "version" "17.0.2" | |||
| @@ -10413,7 +10413,7 @@ | |||
| "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" | |||
| "version" "18.2.0" | |||
| "react-redux@^7.2.1 || ^8.0.2", "react-redux@^7.2.4": | |||
| "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" | |||
| @@ -10425,7 +10425,7 @@ | |||
| "prop-types" "^15.7.2" | |||
| "react-is" "^17.0.2" | |||
| "react-refresh@^0.8.3", "react-refresh@>=0.8.3 <0.10.0": | |||
| "react-refresh@^0.8.3": | |||
| "integrity" "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" | |||
| "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz" | |||
| "version" "0.8.3" | |||
| @@ -10564,7 +10564,7 @@ | |||
| "loose-envify" "^1.4.0" | |||
| "prop-types" "^15.6.2" | |||
| "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.0", "react@>=15", "react@>=16.6.0", "react@>=16.8.0", "react@17.0.2": | |||
| "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" | |||
| @@ -10777,7 +10777,7 @@ | |||
| "resolved" "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz" | |||
| "version" "2.4.1" | |||
| "redux@^4", "redux@^4.0.0", "redux@^4.0.4", "redux@^4.1.0", "redux@^4.1.2": | |||
| "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" | |||
| @@ -11122,7 +11122,7 @@ | |||
| dependencies: | |||
| "estree-walker" "^0.6.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": | |||
| "rollup@^1.31.1": | |||
| "integrity" "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==" | |||
| "resolved" "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz" | |||
| "version" "1.32.1" | |||
| @@ -11217,7 +11217,7 @@ | |||
| "schema-utils" "^3.0.0" | |||
| "semver" "^7.3.2" | |||
| "sass@^1.3.0", "sass@^1.34.1": | |||
| "sass@^1.34.1": | |||
| "integrity" "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==" | |||
| "resolved" "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz" | |||
| "version" "1.55.0" | |||
| @@ -11581,7 +11581,7 @@ | |||
| "source-map-resolve" "^0.5.0" | |||
| "use" "^3.1.0" | |||
| "sockjs-client@^1.4.0", "sockjs-client@^1.5.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" | |||
| @@ -12483,11 +12483,6 @@ | |||
| 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-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==" | |||
| "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz" | |||
| "version" "4.8.4" | |||
| "unbox-primitive@^1.0.2": | |||
| "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" | |||
| "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" | |||
| @@ -12847,7 +12842,7 @@ | |||
| "range-parser" "^1.2.1" | |||
| "webpack-log" "^2.0.0" | |||
| "webpack-dev-server@3.11.1", "webpack-dev-server@3.x": | |||
| "webpack-dev-server@3.11.1": | |||
| "integrity" "sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ==" | |||
| "resolved" "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz" | |||
| "version" "3.11.1" | |||
| @@ -12912,7 +12907,7 @@ | |||
| "source-list-map" "^2.0.0" | |||
| "source-map" "~0.6.1" | |||
| "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": | |||
| "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" | |||