| @@ -32,6 +32,7 @@ | |||
| "owasp-password-strength-test": "^1.3.0", | |||
| "react": "^17.0.2", | |||
| "react-dom": "^17.0.2", | |||
| "react-dropzone": "^14.2.3", | |||
| "react-helmet-async": "^1.0.9", | |||
| "react-i18next": "^11.10.0", | |||
| "react-mentions": "^4.4.7", | |||
| @@ -3629,6 +3630,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", | |||
| @@ -3647,6 +3649,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" | |||
| } | |||
| @@ -3655,6 +3658,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" | |||
| }, | |||
| @@ -3669,6 +3673,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" | |||
| } | |||
| @@ -3677,6 +3682,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" | |||
| @@ -3692,6 +3698,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" | |||
| }, | |||
| @@ -3702,12 +3709,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", | |||
| @@ -3733,6 +3742,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" | |||
| } | |||
| @@ -3740,12 +3750,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", | |||
| @@ -3759,6 +3771,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" | |||
| }, | |||
| @@ -3770,6 +3783,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" | |||
| }, | |||
| @@ -3947,7 +3961,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", | |||
| @@ -5080,6 +5095,14 @@ | |||
| "node": ">= 4.5.0" | |||
| } | |||
| }, | |||
| "node_modules/attr-accept": { | |||
| "version": "2.2.2", | |||
| "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", | |||
| "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", | |||
| "engines": { | |||
| "node": ">=4" | |||
| } | |||
| }, | |||
| "node_modules/autoprefixer": { | |||
| "version": "9.8.6", | |||
| "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", | |||
| @@ -5105,6 +5128,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" | |||
| }, | |||
| @@ -8058,7 +8082,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", | |||
| @@ -8468,6 +8493,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", | |||
| @@ -8485,7 +8511,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", | |||
| @@ -10031,6 +10058,17 @@ | |||
| "url": "https://opencollective.com/webpack" | |||
| } | |||
| }, | |||
| "node_modules/file-selector": { | |||
| "version": "0.6.0", | |||
| "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", | |||
| "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", | |||
| "dependencies": { | |||
| "tslib": "^2.4.0" | |||
| }, | |||
| "engines": { | |||
| "node": ">= 12" | |||
| } | |||
| }, | |||
| "node_modules/file-uri-to-path": { | |||
| "version": "1.0.0", | |||
| "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", | |||
| @@ -10246,6 +10284,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" | |||
| } | |||
| @@ -12026,6 +12065,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" | |||
| } | |||
| @@ -12183,6 +12223,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" | |||
| } | |||
| @@ -12241,6 +12282,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", | |||
| @@ -12264,6 +12306,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" | |||
| } | |||
| @@ -12283,6 +12326,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" | |||
| @@ -14366,12 +14410,6 @@ | |||
| "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", | |||
| "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" | |||
| }, | |||
| "node_modules/jquery": { | |||
| "version": "3.6.1", | |||
| "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz", | |||
| "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==", | |||
| "peer": true | |||
| }, | |||
| "node_modules/js-tokens": { | |||
| "version": "4.0.0", | |||
| "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | |||
| @@ -15118,6 +15156,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" | |||
| } | |||
| @@ -18019,6 +18058,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" | |||
| }, | |||
| @@ -18593,6 +18633,22 @@ | |||
| "react": "17.0.2" | |||
| } | |||
| }, | |||
| "node_modules/react-dropzone": { | |||
| "version": "14.2.3", | |||
| "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", | |||
| "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", | |||
| "dependencies": { | |||
| "attr-accept": "^2.2.2", | |||
| "file-selector": "^0.6.0", | |||
| "prop-types": "^15.8.1" | |||
| }, | |||
| "engines": { | |||
| "node": ">= 10.13" | |||
| }, | |||
| "peerDependencies": { | |||
| "react": ">= 16.8 || 18.0.0" | |||
| } | |||
| }, | |||
| "node_modules/react-error-overlay": { | |||
| "version": "6.0.9", | |||
| "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", | |||
| @@ -22061,9 +22117,9 @@ | |||
| } | |||
| }, | |||
| "node_modules/tslib": { | |||
| "version": "2.2.0", | |||
| "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", | |||
| "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" | |||
| "version": "2.4.1", | |||
| "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", | |||
| "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" | |||
| }, | |||
| "node_modules/tsutils": { | |||
| "version": "3.21.0", | |||
| @@ -22138,19 +22194,6 @@ | |||
| "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", | |||
| @@ -24194,6 +24237,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", | |||
| @@ -24213,6 +24257,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", | |||
| @@ -26079,8 +26124,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", | |||
| @@ -26871,8 +26915,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", | |||
| @@ -27270,6 +27313,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", | |||
| @@ -27285,6 +27329,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" | |||
| } | |||
| @@ -27293,6 +27338,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" | |||
| } | |||
| @@ -27301,6 +27347,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" | |||
| } | |||
| @@ -27309,6 +27356,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" | |||
| @@ -27318,6 +27366,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" | |||
| } | |||
| @@ -27325,12 +27374,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", | |||
| @@ -27352,17 +27403,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", | |||
| @@ -27372,7 +27426,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 | |||
| } | |||
| } | |||
| }, | |||
| @@ -27380,6 +27435,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" | |||
| } | |||
| @@ -27518,7 +27574,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", | |||
| @@ -28136,8 +28193,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", | |||
| @@ -28189,14 +28245,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", | |||
| @@ -28453,6 +28507,11 @@ | |||
| "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", | |||
| "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" | |||
| }, | |||
| "attr-accept": { | |||
| "version": "2.2.2", | |||
| "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", | |||
| "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==" | |||
| }, | |||
| "autoprefixer": { | |||
| "version": "9.8.6", | |||
| "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", | |||
| @@ -28470,7 +28529,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", | |||
| @@ -28668,8 +28728,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", | |||
| @@ -30809,7 +30868,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", | |||
| @@ -31166,6 +31226,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", | |||
| @@ -31180,7 +31241,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 | |||
| } | |||
| } | |||
| }, | |||
| @@ -31462,8 +31524,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", | |||
| @@ -31697,8 +31758,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", | |||
| @@ -32319,6 +32379,14 @@ | |||
| } | |||
| } | |||
| }, | |||
| "file-selector": { | |||
| "version": "0.6.0", | |||
| "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", | |||
| "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", | |||
| "requires": { | |||
| "tslib": "^2.4.0" | |||
| } | |||
| }, | |||
| "file-uri-to-path": { | |||
| "version": "1.0.0", | |||
| "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", | |||
| @@ -32492,6 +32560,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" | |||
| } | |||
| @@ -33871,7 +33940,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", | |||
| @@ -33974,7 +34044,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", | |||
| @@ -34009,6 +34080,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", | |||
| @@ -34025,7 +34097,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", | |||
| @@ -34039,6 +34112,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" | |||
| @@ -34828,8 +34902,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", | |||
| @@ -35575,12 +35648,6 @@ | |||
| "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", | |||
| "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" | |||
| }, | |||
| "jquery": { | |||
| "version": "3.6.1", | |||
| "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz", | |||
| "integrity": "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==", | |||
| "peer": true | |||
| }, | |||
| "js-tokens": { | |||
| "version": "4.0.0", | |||
| "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", | |||
| @@ -36180,7 +36247,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", | |||
| @@ -38511,7 +38579,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", | |||
| @@ -38962,6 +39031,16 @@ | |||
| "scheduler": "^0.20.2" | |||
| } | |||
| }, | |||
| "react-dropzone": { | |||
| "version": "14.2.3", | |||
| "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz", | |||
| "integrity": "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==", | |||
| "requires": { | |||
| "attr-accept": "^2.2.2", | |||
| "file-selector": "^0.6.0", | |||
| "prop-types": "^15.8.1" | |||
| } | |||
| }, | |||
| "react-error-overlay": { | |||
| "version": "6.0.9", | |||
| "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", | |||
| @@ -39454,8 +39533,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", | |||
| @@ -39797,8 +39875,7 @@ | |||
| "rifm": { | |||
| "version": "0.12.1", | |||
| "resolved": "https://registry.npmjs.org/rifm/-/rifm-0.12.1.tgz", | |||
| "integrity": "sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==", | |||
| "requires": {} | |||
| "integrity": "sha512-OGA1Bitg/dSJtI/c4dh90svzaUPt228kzFsUkJbtA2c964IqEAwWXeL9ZJi86xWv3j5SMqRvGULl7bA6cK0Bvg==" | |||
| }, | |||
| "rimraf": { | |||
| "version": "3.0.2", | |||
| @@ -40532,8 +40609,7 @@ | |||
| "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==", | |||
| "requires": {} | |||
| "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==" | |||
| }, | |||
| "snapdragon": { | |||
| "version": "0.8.2", | |||
| @@ -41720,9 +41796,9 @@ | |||
| } | |||
| }, | |||
| "tslib": { | |||
| "version": "2.2.0", | |||
| "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", | |||
| "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" | |||
| "version": "2.4.1", | |||
| "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", | |||
| "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" | |||
| }, | |||
| "tsutils": { | |||
| "version": "3.21.0", | |||
| @@ -41784,12 +41860,6 @@ | |||
| "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", | |||
| @@ -42116,8 +42186,7 @@ | |||
| "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==", | |||
| "requires": {} | |||
| "integrity": "sha512-1Ky+Jaj6MIpTRz6NTaCLVm/iDXfRNwUMH9X7BkLtgSL2RCXHQhK2p9SVhut8jZPDfxLDtOIYNM3txsiLXd4yVQ==" | |||
| }, | |||
| "util": { | |||
| "version": "0.11.1", | |||
| @@ -43417,6 +43486,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", | |||
| @@ -43433,6 +43503,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", | |||
| @@ -43720,8 +43791,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", | |||
| @@ -27,6 +27,7 @@ | |||
| "owasp-password-strength-test": "^1.3.0", | |||
| "react": "^17.0.2", | |||
| "react-dom": "^17.0.2", | |||
| "react-dropzone": "^14.2.3", | |||
| "react-helmet-async": "^1.0.9", | |||
| "react-i18next": "^11.10.0", | |||
| "react-mentions": "^4.4.7", | |||
| @@ -846,3 +846,187 @@ h3 { | |||
| left: -7.5px; | |||
| } | |||
| } | |||
| .apply-for-ad { | |||
| min-width: 512px !important; | |||
| } | |||
| .apply-for-ad-header { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| align-items: center; | |||
| margin-bottom: 18px; | |||
| } | |||
| .apply-for-ad-header-left { | |||
| display: flex; | |||
| align-items: center; | |||
| } | |||
| .apply-for-ad-header-left > * { | |||
| margin-right: 6px !important; | |||
| } | |||
| .apply-for-ad-header-left-image img { | |||
| width: 18px; | |||
| height: 18px; | |||
| } | |||
| .apply-for-ad-header-left-image-title p { | |||
| font-family: "Source Sans Pro"; | |||
| font-style: normal; | |||
| font-weight: 600; | |||
| font-size: 24px; | |||
| line-height: 32px; | |||
| letter-spacing: 0.02em; | |||
| color: #272727; | |||
| } | |||
| .apply-for-ad-header-left-image-title-sub sub { | |||
| font-family: "Source Sans Pro"; | |||
| font-style: normal; | |||
| font-weight: 600; | |||
| line-height: 32px; | |||
| font-size: 18px; | |||
| letter-spacing: 0.02em; | |||
| color: $mainBlue; | |||
| } | |||
| .apply-for-ad-header-right button { | |||
| border: none; | |||
| outline: none; | |||
| padding: 0 !important; | |||
| margin: 0 !important; | |||
| background-color: transparent; | |||
| cursor: pointer; | |||
| } | |||
| .apply-for-ad-header-right button img { | |||
| width: 9px !important; | |||
| height: 10.5px !important; | |||
| } | |||
| .apply-for-ad-modal-form-control { | |||
| display: flex; | |||
| flex-direction: column; | |||
| margin-bottom: 9px; | |||
| } | |||
| .apply-for-ad-modal-form-control label { | |||
| font-family: "Source Sans Pro"; | |||
| font-style: normal; | |||
| font-weight: 400; | |||
| font-size: 16px; | |||
| line-height: 20px; | |||
| color: #272727; | |||
| margin-bottom: 4.5px; | |||
| } | |||
| .apply-for-ad-modal-form-control input, | |||
| .apply-for-ad-modal-form-control select, | |||
| .apply-for-ad-modal-form-control textarea { | |||
| box-sizing: border-box; | |||
| display: flex; | |||
| flex-direction: row; | |||
| align-items: center; | |||
| padding: 18px; | |||
| gap: 10px; | |||
| border: 1px solid #e4e4e4; | |||
| border-radius: 7px; | |||
| outline: none; | |||
| font-size: 16px; | |||
| } | |||
| .apply-for-ad-modal-form-control textarea { | |||
| resize: none; | |||
| font-size: 16px; | |||
| } | |||
| .apply-for-ad-modal-form-control input[type="submit"] { | |||
| box-sizing: border-box; | |||
| display: flex; | |||
| flex-direction: row; | |||
| justify-content: center; | |||
| align-items: center; | |||
| padding: 18px 72px; | |||
| gap: 10px; | |||
| background: #226cb0; | |||
| color: white; | |||
| border-radius: 9px; | |||
| cursor: pointer; | |||
| font-size: 16px; | |||
| } | |||
| .apply-for-ad-buttons { | |||
| display: flex; | |||
| justify-content: space-between; | |||
| margin-top: 27px !important; | |||
| } | |||
| .apply-for-ad-buttons > button { | |||
| padding: 18px 72px !important; | |||
| border-radius: 9px; | |||
| cursor: pointer; | |||
| } | |||
| .apply-for-ad-buttons > button:first-child { | |||
| background-color: white; | |||
| border: 1px solid $mainBlue; | |||
| color: $mainBlue; | |||
| } | |||
| .apply-for-ad-buttons > button:last-child { | |||
| background-color: $mainBlue; | |||
| border: 1px solid $mainBlue; | |||
| color: white; | |||
| } | |||
| .apply-for-ad-header-title p { | |||
| font-family: "Source Sans Pro"; | |||
| font-style: normal; | |||
| font-weight: 600; | |||
| font-size: 16px; | |||
| line-height: 20px; | |||
| color: #272727; | |||
| margin-bottom: 9px !important; | |||
| } | |||
| .apply-for-ad-header-sub-group-checkboxes { | |||
| padding: 0 9px !important; | |||
| } | |||
| .apply-for-ad-header-sub-group-checkboxes { | |||
| display: flex; | |||
| flex-wrap: wrap; | |||
| justify-content: flex-start; | |||
| } | |||
| .apply-for-ad-header-sub-group-checkboxes .MuiFormControlLabel-root { | |||
| width: calc(100% / 3) !important; | |||
| margin: 0 !important; | |||
| } | |||
| .apply-for-ad-modal-form-control-drag-and-drop { | |||
| border: 1px solid #e4e4e4; | |||
| padding: 36px; | |||
| border-radius: 6px; | |||
| display: flex; | |||
| justify-content: center; | |||
| align-items: center; | |||
| flex-direction: column; | |||
| } | |||
| .apply-for-ad-modal-form-control-drag-and-drop p { | |||
| text-align: center; | |||
| font-size: 16px; | |||
| } | |||
| .apply-for-ad-modal-form-control-drag-and-drop p button { | |||
| background-color: white; | |||
| border: none; | |||
| padding: 0 !important; | |||
| margin: 0 !important; | |||
| color: $mainBlue; | |||
| text-decoration: underline; | |||
| font-size: 16px; | |||
| } | |||
| @@ -0,0 +1,165 @@ | |||
| import React, { useState } from "react"; | |||
| import ApplyForAdFirstStage from "./ApplyForAdFirstStage"; | |||
| import PropTypes from "prop-types"; | |||
| import briefcaseIcon from "../../assets/images/briefcase1.png"; | |||
| import xIcon from "../../assets/images/x.png"; | |||
| import CustomModal from "../UI/CustomModal"; | |||
| import ApplyForAdSecondStage from "./ApplyForAdSecondStage"; | |||
| import { setTechnologiesReq } from "../../store/actions/technologies/technologiesActions"; | |||
| import { selectTechnologies } from "../../store/selectors/technologiesSelectors"; | |||
| import { useDispatch, useSelector } from "react-redux"; | |||
| import { useEffect } from "react"; | |||
| import ApplyForAdThirdStage from "./ApplyForAdThirdStage"; | |||
| import ApplyForAdFourthStage from "./ApplyForAdFourthStage"; | |||
| import { applyForAdReq } from "../../store/actions/applyForAd/applyForAdActions"; | |||
| import { useHistory } from "react-router-dom"; | |||
| import { ADS_PAGE } from "../../constants/pages"; | |||
| const ApplyForAd = ({ open, title, adId, onCloseModal }) => { | |||
| const [stage, setStage] = useState(1); | |||
| const [firstName, setFirstName] = useState(""); | |||
| const [lastName, setLastName] = useState(""); | |||
| const [dateOfBirth, setDateOfBirth] = useState(""); | |||
| const [phoneNumber, setPhoneNumber] = useState(""); | |||
| const [mappedTechnologies, setMappedTechnologies] = useState([]); | |||
| const [experience, setExperience] = useState(0); | |||
| const [linkedinLink, setLinkedinLink] = useState(""); | |||
| const [githubLink, setGithubLink] = useState(""); | |||
| const [email, setEmail] = useState(""); | |||
| const [bitBucketLink, setBitBucketLink] = useState(""); | |||
| const [coverLetter, setCoverLetter] = useState(""); | |||
| const [pdfFile, setPdfFile] = useState(""); | |||
| const technologies = useSelector(selectTechnologies); | |||
| const dispatch = useDispatch(); | |||
| const history = useHistory(); | |||
| useEffect(() => { | |||
| dispatch(setTechnologiesReq()); | |||
| }, []); | |||
| useEffect(() => { | |||
| if (technologies.length > 0) { | |||
| const tech = technologies.map((t) => ({ ...t, isChecked: false })); | |||
| setMappedTechnologies(tech); | |||
| } | |||
| }, [technologies]); | |||
| const increaseStageHandler = () => { | |||
| setStage((oldValue) => oldValue + 1); | |||
| }; | |||
| const decreaseStageHandler = () => { | |||
| setStage((oldValue) => oldValue - 1); | |||
| }; | |||
| const handleApiResponseSuccess = () => { | |||
| onCloseModal(); | |||
| history.push(ADS_PAGE); | |||
| }; | |||
| const finishedFourStagesHandler = () => { | |||
| const technologiesIds = mappedTechnologies | |||
| .filter((tech) => tech.isChecked === true) | |||
| .map((x) => x.technologyId); | |||
| dispatch( | |||
| applyForAdReq({ | |||
| adId, | |||
| firstName, | |||
| lastName, | |||
| dateOfBirth, | |||
| phoneNumber, | |||
| technologiesIds, | |||
| experience, | |||
| linkedinLink, | |||
| githubLink, | |||
| bitBucketLink, | |||
| email, | |||
| coverLetter, | |||
| pdfFile: "PDF", | |||
| handleApiResponseSuccess, | |||
| }) | |||
| ); | |||
| }; | |||
| return ( | |||
| <CustomModal open={open} onCloseModal={onCloseModal} classes="apply-for-ad"> | |||
| <div className="apply-for-ad-header"> | |||
| <div className="apply-for-ad-header-left"> | |||
| <div className="apply-for-ad-header-left-image"> | |||
| <img src={briefcaseIcon} alt="plus" /> | |||
| </div> | |||
| <div className="apply-for-ad-header-left-image-title"> | |||
| <p>Prijavi se</p> | |||
| </div> | |||
| <div className="apply-for-ad-header-left-image-title-sub"> | |||
| <sub> | {title}</sub> | |||
| </div> | |||
| </div> | |||
| <div className="apply-for-ad-header-right"> | |||
| <button onClick={onCloseModal}> | |||
| <img src={xIcon} alt="x" /> | |||
| </button> | |||
| </div> | |||
| </div> | |||
| {stage === 1 && ( | |||
| <ApplyForAdFirstStage | |||
| onCloseModal={onCloseModal} | |||
| firstName={firstName} | |||
| setFirstName={setFirstName} | |||
| lastName={lastName} | |||
| setLastName={setLastName} | |||
| dateOfBirth={dateOfBirth} | |||
| setDateOfBirth={setDateOfBirth} | |||
| phoneNumber={phoneNumber} | |||
| setPhoneNumber={setPhoneNumber} | |||
| onIncreaseStage={increaseStageHandler} | |||
| /> | |||
| )} | |||
| {stage === 2 && ( | |||
| <ApplyForAdSecondStage | |||
| technologies={mappedTechnologies} | |||
| setTechnologies={setMappedTechnologies} | |||
| experience={experience} | |||
| setExperience={setExperience} | |||
| onIncreaseStage={increaseStageHandler} | |||
| onDecreaseStage={decreaseStageHandler} | |||
| /> | |||
| )} | |||
| {stage === 3 && ( | |||
| <ApplyForAdThirdStage | |||
| linkedinLink={linkedinLink} | |||
| setLinkedinLink={setLinkedinLink} | |||
| githubLink={githubLink} | |||
| setGithubLink={setGithubLink} | |||
| bitBucketLink={bitBucketLink} | |||
| setBitBucketLink={setBitBucketLink} | |||
| email={email} | |||
| setEmail={setEmail} | |||
| onIncreaseStage={increaseStageHandler} | |||
| onDecreaseStage={decreaseStageHandler} | |||
| /> | |||
| )} | |||
| {stage === 4 && ( | |||
| <ApplyForAdFourthStage | |||
| pdfFile={pdfFile} | |||
| coverLetter={coverLetter} | |||
| setCoverLetter={setCoverLetter} | |||
| setPdfFile={setPdfFile} | |||
| onDecreaseStage={decreaseStageHandler} | |||
| onFinishedFourStages={finishedFourStagesHandler} | |||
| /> | |||
| )} | |||
| </CustomModal> | |||
| ); | |||
| }; | |||
| ApplyForAd.propTypes = { | |||
| open: PropTypes.bool, | |||
| title: PropTypes.string, | |||
| adId: PropTypes.number, | |||
| onCloseModal: PropTypes.func, | |||
| }; | |||
| export default ApplyForAd; | |||
| @@ -0,0 +1,81 @@ | |||
| import React from "react"; | |||
| import PropTypes from "prop-types"; | |||
| const ApplyForAdFirstStage = ({ | |||
| firstName, | |||
| setFirstName, | |||
| lastName, | |||
| setLastName, | |||
| dateOfBirth, | |||
| setDateOfBirth, | |||
| phoneNumber, | |||
| setPhoneNumber, | |||
| onIncreaseStage, | |||
| }) => { | |||
| const disabled = | |||
| firstName.length === 0 || | |||
| lastName.length === 0 || | |||
| dateOfBirth === "" || | |||
| phoneNumber.length === 0; | |||
| return ( | |||
| <div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>Ime</label> | |||
| <input | |||
| type="text" | |||
| placeholder="ex. Petar" | |||
| value={firstName} | |||
| onChange={(e) => setFirstName(e.target.value)} | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>Prezime</label> | |||
| <input | |||
| type="text" | |||
| placeholder="ex. Petrovic" | |||
| value={lastName} | |||
| onChange={(e) => setLastName(e.target.value)} | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>Datum Rodjenja</label> | |||
| <input | |||
| type="date" | |||
| placeholder="ex. Datum rodjenja" | |||
| value={dateOfBirth} | |||
| onChange={(e) => setDateOfBirth(e.target.value)} | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>Broj telefona</label> | |||
| <input | |||
| type="text" | |||
| placeholder="ex. +381/60/000/0000" | |||
| value={phoneNumber} | |||
| onChange={(e) => setPhoneNumber(e.target.value)} | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-buttons"> | |||
| <button disabled>NAZAD</button> | |||
| <button disabled={disabled} onClick={() => onIncreaseStage()}> | |||
| NASTAVI | |||
| </button> | |||
| </div> | |||
| </div> | |||
| ); | |||
| }; | |||
| ApplyForAdFirstStage.propTypes = { | |||
| firstName: PropTypes.string, | |||
| setFirstName: PropTypes.any, | |||
| lastName: PropTypes.string, | |||
| setLastName: PropTypes.any, | |||
| dateOfBirth: PropTypes.any, | |||
| setDateOfBirth: PropTypes.any, | |||
| phoneNumber: PropTypes.string, | |||
| setPhoneNumber: PropTypes.any, | |||
| onIncreaseStage: PropTypes.func, | |||
| }; | |||
| export default ApplyForAdFirstStage; | |||
| @@ -0,0 +1,93 @@ | |||
| import React, { useRef } from "react"; | |||
| import PropTypes from "prop-types"; | |||
| import uploadIcon from "../../assets/images/upload.png"; | |||
| import { useDropzone } from "react-dropzone"; | |||
| const ApplyForAdFourthStage = ({ | |||
| coverLetter, | |||
| setCoverLetter, | |||
| pdfFile, | |||
| setPdfFile, | |||
| onDecreaseStage, | |||
| onFinishedFourStages, | |||
| }) => { | |||
| const inputFile = useRef(); | |||
| const { getRootProps, getInputProps } = useDropzone({ | |||
| onDrop: (acceptedFiles) => setPdfFile(acceptedFiles), | |||
| }); | |||
| const disabled = pdfFile === "" || coverLetter === ""; | |||
| const handleFileUpload = (e) => { | |||
| const { files } = e.target; | |||
| if (files && files.length) { | |||
| // const filename = files[0].name; | |||
| // var parts = filename.split("."); | |||
| // const fileType = parts[parts.length - 1]; | |||
| setPdfFile(files[0]); | |||
| } | |||
| }; | |||
| const onButtonClick = () => { | |||
| inputFile.current.click(); | |||
| }; | |||
| return ( | |||
| <div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>CV</label> | |||
| <div | |||
| className="apply-for-ad-modal-form-control-drag-and-drop" | |||
| {...getRootProps({ | |||
| className: "apply-for-ad-modal-form-control-drag-and-drop", | |||
| })} | |||
| > | |||
| <img src={uploadIcon} alt="upload" /> | |||
| <input | |||
| {...getInputProps()} | |||
| style={{ display: "none" }} | |||
| accept=".pdf" | |||
| ref={inputFile} | |||
| onChange={handleFileUpload} | |||
| type="file" | |||
| /> | |||
| <p> | |||
| Prevuci .pdf dokument u ovom delu ekrana ili{" "} | |||
| <button style={{ cursor: "pointer" }} onClick={onButtonClick}> | |||
| Pretraži | |||
| </button>{" "} | |||
| na računaru | |||
| </p> | |||
| </div> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>Propratno pismo (Opciono)</label> | |||
| <textarea | |||
| value={coverLetter} | |||
| onChange={(e) => setCoverLetter(e.target.value)} | |||
| placeholder="ex. Kao student Elektronskog fakulteta u Nišu..." | |||
| rows={5} | |||
| ></textarea> | |||
| </div> | |||
| <div className="apply-for-ad-buttons"> | |||
| <button onClick={onDecreaseStage}>NAZAD</button> | |||
| <button disabled={disabled} onClick={onFinishedFourStages}> | |||
| PRIJAVI SE | |||
| </button> | |||
| </div> | |||
| </div> | |||
| ); | |||
| }; | |||
| ApplyForAdFourthStage.propTypes = { | |||
| coverLetter: PropTypes.string, | |||
| setCoverLetter: PropTypes.any, | |||
| pdfFile: PropTypes.any, | |||
| setPdfFile: PropTypes.any, | |||
| onDecreaseStage: PropTypes.func, | |||
| onFinishedFourStages: PropTypes.func, | |||
| }; | |||
| export default ApplyForAdFourthStage; | |||
| @@ -0,0 +1,123 @@ | |||
| import React from "react"; | |||
| import PropTypes from "prop-types"; | |||
| import { Checkbox, FormControlLabel } from "@mui/material"; | |||
| const ApplyForAdSecondStage = ({ | |||
| technologies, | |||
| setTechnologies, | |||
| experience, | |||
| setExperience, | |||
| onIncreaseStage, | |||
| onDecreaseStage, | |||
| }) => { | |||
| let disabled = true; | |||
| if (technologies.length > 0) { | |||
| disabled = technologies.some((x) => x.isChecked === true); | |||
| } | |||
| const handleCheckboxes = (technologyId) => { | |||
| const tmpTechnologies = technologies.map((tech) => | |||
| tech.technologyId === technologyId | |||
| ? { ...tech, isChecked: !tech.isChecked } | |||
| : tech | |||
| ); | |||
| setTechnologies(tmpTechnologies); | |||
| }; | |||
| return ( | |||
| <div> | |||
| <div className="apply-for-ad-header-title"> | |||
| <p>Tehnologije koje znaš</p> | |||
| </div> | |||
| <div className="apply-for-ad-header-sub"> | |||
| <div className="apply-for-ad-header-sub-group"> | |||
| <label>Back-End</label> | |||
| <div className="apply-for-ad-header-sub-group-checkboxes"> | |||
| {technologies | |||
| .filter((x) => x.technologyType === "Backend") | |||
| .map((x) => ( | |||
| <FormControlLabel | |||
| key={x.technologyId} | |||
| control={ | |||
| <Checkbox | |||
| value={x.name} | |||
| checked={x.isChecked} | |||
| onChange={handleCheckboxes.bind(this, x.technologyId)} | |||
| /> | |||
| } | |||
| label={x.name} | |||
| /> | |||
| ))} | |||
| </div> | |||
| </div> | |||
| <div className="apply-for-ad-header-sub-group"> | |||
| <label>Front-End</label> | |||
| <div className="apply-for-ad-header-sub-group-checkboxes"> | |||
| {technologies | |||
| .filter((x) => x.technologyType === "Frontend") | |||
| .map((x) => ( | |||
| <FormControlLabel | |||
| key={x.technologyId} | |||
| control={ | |||
| <Checkbox | |||
| value={x.name} | |||
| checked={x.isChecked} | |||
| onChange={handleCheckboxes.bind(this, x.technologyId)} | |||
| /> | |||
| } | |||
| label={x.name} | |||
| /> | |||
| ))} | |||
| </div> | |||
| </div> | |||
| <div className="apply-for-ad-header-sub-group"> | |||
| <label>Others</label> | |||
| <div className="apply-for-ad-header-sub-group-checkboxes"> | |||
| {technologies | |||
| .filter((x) => x.technologyType === "Other") | |||
| .map((x) => ( | |||
| <FormControlLabel | |||
| key={x.technologyId} | |||
| control={ | |||
| <Checkbox | |||
| value={x.name} | |||
| checked={x.isChecked} | |||
| onChange={handleCheckboxes.bind(this, x.technologyId)} | |||
| /> | |||
| } | |||
| label={x.name} | |||
| /> | |||
| ))} | |||
| </div> | |||
| </div> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>Godine iskustva</label> | |||
| <input | |||
| type="number" | |||
| placeholder="ex. 3 godine iskustva" | |||
| value={experience} | |||
| onChange={(e) => setExperience(e.target.value)} | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-buttons"> | |||
| <button onClick={onDecreaseStage}>NAZAD</button> | |||
| <button onClick={onIncreaseStage} disabled={!disabled}> | |||
| NASTAVI | |||
| </button> | |||
| </div> | |||
| </div> | |||
| ); | |||
| }; | |||
| ApplyForAdSecondStage.propTypes = { | |||
| technologies: PropTypes.any, | |||
| setTechnologies: PropTypes.any, | |||
| experience: PropTypes.number, | |||
| setExperience: PropTypes.any, | |||
| onIncreaseStage: PropTypes.func, | |||
| onDecreaseStage: PropTypes.func, | |||
| }; | |||
| export default ApplyForAdSecondStage; | |||
| @@ -0,0 +1,85 @@ | |||
| import React from "react"; | |||
| import PropTypes from "prop-types"; | |||
| const ApplyForAdThirdStage = ({ | |||
| onIncreaseStage, | |||
| onDecreaseStage, | |||
| linkedinLink, | |||
| setLinkedinLink, | |||
| githubLink, | |||
| setGithubLink, | |||
| bitBucketLink, | |||
| setBitBucketLink, | |||
| email, | |||
| setEmail, | |||
| }) => { | |||
| const disabled = | |||
| linkedinLink.length === 0 || | |||
| githubLink.length === 0 || | |||
| bitBucketLink.length === 0; | |||
| return ( | |||
| <div> | |||
| <div className="apply-for-ad-header-title"> | |||
| <p>Društvene mreže</p> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>LinkedIn</label> | |||
| <input | |||
| type="text" | |||
| value={linkedinLink} | |||
| onChange={(e) => setLinkedinLink(e.target.value)} | |||
| placeholder="ex. https://www.linkedin.com/in/petar-petrovic" | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>GitHub</label> | |||
| <input | |||
| type="text" | |||
| value={githubLink} | |||
| onChange={(e) => setGithubLink(e.target.value)} | |||
| placeholder="ex. https://www.github.com/petarpetrovic" | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>BitBucket</label> | |||
| <input | |||
| type="text" | |||
| value={bitBucketLink} | |||
| onChange={(e) => setBitBucketLink(e.target.value)} | |||
| placeholder="ex. https://developer.atlassian.com/user/petarapetrovic" | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-modal-form-control"> | |||
| <label>Email</label> | |||
| <input | |||
| type="email" | |||
| value={email} | |||
| onChange={(e) => setEmail(e.target.value)} | |||
| placeholder="ex. petar.petrovic@dilig.net" | |||
| /> | |||
| </div> | |||
| <div className="apply-for-ad-buttons"> | |||
| <button onClick={onDecreaseStage}>NAZAD</button> | |||
| <button onClick={onIncreaseStage} disabled={disabled}> | |||
| NASTAVI | |||
| </button> | |||
| </div> | |||
| </div> | |||
| ); | |||
| }; | |||
| ApplyForAdThirdStage.propTypes = { | |||
| linkedinLink: PropTypes.string, | |||
| setLinkedinLink: PropTypes.any, | |||
| githubLink: PropTypes.string, | |||
| setGithubLink: PropTypes.any, | |||
| bitBucketLink: PropTypes.string, | |||
| setBitBucketLink: PropTypes.any, | |||
| email: PropTypes.string, | |||
| setEmail: PropTypes.any, | |||
| onIncreaseStage: PropTypes.any, | |||
| onDecreaseStage: PropTypes.any, | |||
| }; | |||
| export default ApplyForAdThirdStage; | |||
| @@ -19,11 +19,14 @@ import { archiveActiveAdReq } from "../../store/actions/archiveActiveAd/archiveA | |||
| import { ADS_PAGE } from "../../constants/pages"; | |||
| import { useHistory } from "react-router-dom"; | |||
| import archiveIcon from "../../assets/images/archive.png"; | |||
| import ApplyForAd from "../../components/Ads/ApplyForAd"; | |||
| import { useState } from "react"; | |||
| const AdDetailsPage = () => { | |||
| const theme = useTheme(); | |||
| const matches = useMediaQuery(theme.breakpoints.down("sm")); | |||
| const { id } = useParams(); | |||
| const [applyForAdOpenModal, setApplyForAdOpenModal] = useState(false); | |||
| const ad = useSelector(selectAd); | |||
| const dispatch = useDispatch(); | |||
| const { t } = useTranslation(); | |||
| @@ -67,6 +70,10 @@ const AdDetailsPage = () => { | |||
| ], | |||
| }; | |||
| const handleCloseApplyForAdModal = () => { | |||
| setApplyForAdOpenModal(false); | |||
| }; | |||
| const navigateToAds = () => { | |||
| history.push(ADS_PAGE); | |||
| }; | |||
| @@ -97,166 +104,177 @@ const AdDetailsPage = () => { | |||
| <> | |||
| {!ad && <p>Radi</p>} | |||
| {ad && ( | |||
| <div className="ad-details"> | |||
| {matches && ( | |||
| <div className="ad-details-tech-logo-date"> | |||
| <p> | |||
| <span>{t("ads.adDetailsExpiredAt")}: </span> | |||
| {new Date(ad.expiredAt).toLocaleDateString()} | |||
| </p> | |||
| </div> | |||
| )} | |||
| <div className="ad-details-tech-logo"> | |||
| <div className="ad-details-tech-logo-title"> | |||
| <div className="ad-details-tech-logo-title-img"> | |||
| <img src={selectLogo(ad.title)} alt="asp-net-icon" /> | |||
| </div> | |||
| <div className="ad-details-tech-logo-title-title"> | |||
| <h1>{ad.title}</h1> | |||
| <> | |||
| <ApplyForAd | |||
| open={applyForAdOpenModal} | |||
| title={ad.title} | |||
| adId={id} | |||
| onCloseModal={handleCloseApplyForAdModal} | |||
| /> | |||
| <div className="ad-details"> | |||
| {matches && ( | |||
| <div className="ad-details-tech-logo-date"> | |||
| <p> | |||
| <span>{t("ads.adDetailsExpiredAt")}: </span> | |||
| {new Date(ad.expiredAt).toLocaleDateString()} | |||
| </p> | |||
| </div> | |||
| <div className="ad-details-tech-logo-title-sub"> | |||
| <sub>| {ad.totalApplicants} prijavljenih</sub> | |||
| )} | |||
| <div className="ad-details-tech-logo"> | |||
| <div className="ad-details-tech-logo-title"> | |||
| <div className="ad-details-tech-logo-title-img"> | |||
| <img src={selectLogo(ad.title)} alt="asp-net-icon" /> | |||
| </div> | |||
| <div className="ad-details-tech-logo-title-title"> | |||
| <h1>{ad.title}</h1> | |||
| </div> | |||
| <div className="ad-details-tech-logo-title-sub"> | |||
| <sub>| {ad.totalApplicants} prijavljenih</sub> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| {!(new Date(ad.expiredAt) < new Date()) && ( | |||
| <IconButton | |||
| onClick={archiveAdHandler} | |||
| className={`c-btn--primary-outlined editEnableBtn c-btn userPageBtn | |||
| {!(new Date(ad.expiredAt) < new Date()) && ( | |||
| <IconButton | |||
| onClick={archiveAdHandler} | |||
| className={`c-btn--primary-outlined editEnableBtn c-btn userPageBtn | |||
| }`} | |||
| > | |||
| {!matches && "Arhiviraj"} | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| paddingLeft: matches ? "0px" : "10px", | |||
| }} | |||
| src={archiveIcon} | |||
| /> | |||
| </IconButton> | |||
| )} | |||
| </div> | |||
| <div className="ad-details-content"> | |||
| <div className="ad-details-content-experience"> | |||
| <p> | |||
| {ad.minimumExperience}+ {t("ads.adDetailsExperience")} | |||
| </p> | |||
| </div> | |||
| <div className="ad-details-content-work-time"> | |||
| <button>Posao</button> | |||
| <button>Full-time</button> | |||
| > | |||
| {!matches && "Arhiviraj"} | |||
| <img | |||
| style={{ | |||
| position: "relative", | |||
| top: -0.25, | |||
| paddingLeft: matches ? "0px" : "10px", | |||
| }} | |||
| src={archiveIcon} | |||
| /> | |||
| </IconButton> | |||
| )} | |||
| </div> | |||
| <div className="ad-details-content-content"> | |||
| <div className="ad-details-content-conten-description"> | |||
| <p>{t("ads.adDetailsDescription")}</p> | |||
| </div> | |||
| <div className="ad-details-content-conten-description"> | |||
| <h3>{t("ads.adDetailsKeyResponsibilities")}</h3> | |||
| <ul> | |||
| {ad.keyResponsibilities.split("|").map((r, index) => ( | |||
| <li key={index}>{r}</li> | |||
| ))} | |||
| </ul> | |||
| <div className="ad-details-content"> | |||
| <div className="ad-details-content-experience"> | |||
| <p> | |||
| {ad.minimumExperience}+ {t("ads.adDetailsExperience")} | |||
| </p> | |||
| </div> | |||
| <div className="ad-details-content-conten-description"> | |||
| <h3>{t("ads.adDetailsRequirements")}</h3> | |||
| <ul> | |||
| {ad.requirements.split("|").map((r, index) => ( | |||
| <li key={index}>{r}</li> | |||
| ))} | |||
| </ul> | |||
| <div className="ad-details-content-work-time"> | |||
| <button>Posao</button> | |||
| <button>Full-time</button> | |||
| </div> | |||
| <div className="ad-details-content-conten-description"> | |||
| <h3>{t("ads.adDetailsOffer")}</h3> | |||
| <ul> | |||
| {ad.offer.split("|").map((o, index) => ( | |||
| <li key={index}>{o}</li> | |||
| ))} | |||
| </ul> | |||
| <div className="ad-details-content-content"> | |||
| <div className="ad-details-content-conten-description"> | |||
| <p>{t("ads.adDetailsDescription")}</p> | |||
| </div> | |||
| <div className="ad-details-content-conten-description"> | |||
| <h3>{t("ads.adDetailsKeyResponsibilities")}</h3> | |||
| <ul> | |||
| {ad.keyResponsibilities.split("|").map((r, index) => ( | |||
| <li key={index}>{r}</li> | |||
| ))} | |||
| </ul> | |||
| </div> | |||
| <div className="ad-details-content-conten-description"> | |||
| <h3>{t("ads.adDetailsRequirements")}</h3> | |||
| <ul> | |||
| {ad.requirements.split("|").map((r, index) => ( | |||
| <li key={index}>{r}</li> | |||
| ))} | |||
| </ul> | |||
| </div> | |||
| <div className="ad-details-content-conten-description"> | |||
| <h3>{t("ads.adDetailsOffer")}</h3> | |||
| <ul> | |||
| {ad.offer.split("|").map((o, index) => ( | |||
| <li key={index}>{o}</li> | |||
| ))} | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| {ad.applicants && ad.applicants.length > 0 && ( | |||
| <div className="ad-details-applicants"> | |||
| <div className="ad-details-applicants-header"> | |||
| <h2>{t("ads.archiveAdsCandidates")}</h2> | |||
| </div> | |||
| <div className="ad-details-applicants-applicants"> | |||
| {!matches && ( | |||
| <div className="ad-details-applicants-applicants-a"> | |||
| <div className="ad-details-applicants-applicants-arrows"> | |||
| <button onClick={archiveAdsArrowLeftHandler}> | |||
| <img src={arrow_left} alt="arrow-left" /> | |||
| </button> | |||
| {ad.applicants.length > 3 && ( | |||
| <button onClick={archiveAdsArrowRightHandler}> | |||
| <img src={arrow_right} alt="arrow-right" /> | |||
| {ad.applicants && ad.applicants.length > 0 && ( | |||
| <div className="ad-details-applicants"> | |||
| <div className="ad-details-applicants-header"> | |||
| <h2>{t("ads.archiveAdsCandidates")}</h2> | |||
| </div> | |||
| <div className="ad-details-applicants-applicants"> | |||
| {!matches && ( | |||
| <div className="ad-details-applicants-applicants-a"> | |||
| <div className="ad-details-applicants-applicants-arrows"> | |||
| <button onClick={archiveAdsArrowLeftHandler}> | |||
| <img src={arrow_left} alt="arrow-left" /> | |||
| </button> | |||
| )} | |||
| {ad.applicants.length > 3 && ( | |||
| <button onClick={archiveAdsArrowRightHandler}> | |||
| <img src={arrow_right} alt="arrow-right" /> | |||
| </button> | |||
| )} | |||
| </div> | |||
| </div> | |||
| )} | |||
| <div className="ad-details-applicants-applicants-applicant"> | |||
| <Slider | |||
| ref={archiveAdsSliderRef} | |||
| {...settings} | |||
| slidesToShow={3} | |||
| slidesToScroll={3} | |||
| style={{ width: "100%" }} | |||
| > | |||
| {ad.applicants.map((applicant, index) => ( | |||
| <AdDetailsCandidateCard | |||
| key={index} | |||
| id={applicant.applicantId} | |||
| firstName={applicant.firstName} | |||
| lastName={applicant.lastName} | |||
| experience={applicant.experience} | |||
| cv={applicant.cv} | |||
| /> | |||
| ))} | |||
| {ad.applicants.length <= 3 && | |||
| getDummyArchiveAds(ad.applicants.length)} | |||
| </Slider> | |||
| </div> | |||
| )} | |||
| <div className="ad-details-applicants-applicants-applicant"> | |||
| <Slider | |||
| ref={archiveAdsSliderRef} | |||
| {...settings} | |||
| slidesToShow={3} | |||
| slidesToScroll={3} | |||
| style={{ width: "100%" }} | |||
| > | |||
| {ad.applicants.map((applicant, index) => ( | |||
| <AdDetailsCandidateCard | |||
| key={index} | |||
| id={applicant.applicantId} | |||
| firstName={applicant.firstName} | |||
| lastName={applicant.lastName} | |||
| experience={applicant.experience} | |||
| cv={applicant.cv} | |||
| /> | |||
| ))} | |||
| {ad.applicants.length <= 3 && | |||
| getDummyArchiveAds(ad.applicants.length)} | |||
| </Slider> | |||
| </div> | |||
| </div> | |||
| {matches && ( | |||
| <div className="active-ads-ads-arrows"> | |||
| <button onClick={archiveAdsArrowLeftHandler}> | |||
| <img src={arrow_left} alt="arrow-left" /> | |||
| </button> | |||
| {ad.applicants.length > 3 && ( | |||
| <button onClick={archiveAdsArrowRightHandler}> | |||
| <img src={arrow_right} alt="arrow-right" /> | |||
| {matches && ( | |||
| <div className="active-ads-ads-arrows"> | |||
| <button onClick={archiveAdsArrowLeftHandler}> | |||
| <img src={arrow_left} alt="arrow-left" /> | |||
| </button> | |||
| )} | |||
| </div> | |||
| )} | |||
| </div> | |||
| )} | |||
| <div className="ad-details-actions"> | |||
| {!matches && ( | |||
| <div className="ad-details-expired-at"> | |||
| <div className="ad-details-tech-logo-date"> | |||
| <p> | |||
| <span>{t("ads.adDetailsExpiredAt")}: </span> | |||
| {new Date(ad.expiredAt).toLocaleDateString()} | |||
| </p> | |||
| </div> | |||
| {ad.applicants.length > 3 && ( | |||
| <button onClick={archiveAdsArrowRightHandler}> | |||
| <img src={arrow_right} alt="arrow-right" /> | |||
| </button> | |||
| )} | |||
| </div> | |||
| )} | |||
| </div> | |||
| )} | |||
| <div className="ad-details-buttons"> | |||
| <Link className="ad-details-buttons-link" to="/ads"> | |||
| Nazad na sve oglase | |||
| </Link> | |||
| {!(new Date(ad.expiredAt) < new Date()) && ( | |||
| <IconButton className="c-btn c-btn--primary add-ad-btn"> | |||
| PRIJAVI SE | |||
| </IconButton> | |||
| <div className="ad-details-actions"> | |||
| {!matches && ( | |||
| <div className="ad-details-expired-at"> | |||
| <div className="ad-details-tech-logo-date"> | |||
| <p> | |||
| <span>{t("ads.adDetailsExpiredAt")}: </span> | |||
| {new Date(ad.expiredAt).toLocaleDateString()} | |||
| </p> | |||
| </div> | |||
| </div> | |||
| )} | |||
| <div className="ad-details-buttons"> | |||
| <Link className="ad-details-buttons-link" to="/ads"> | |||
| Nazad na sve oglase | |||
| </Link> | |||
| {!(new Date(ad.expiredAt) < new Date()) && ( | |||
| <IconButton | |||
| className="c-btn c-btn--primary add-ad-btn" | |||
| onClick={() => setApplyForAdOpenModal(true)} | |||
| > | |||
| PRIJAVI SE | |||
| </IconButton> | |||
| )} | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </div> | |||
| </> | |||
| )} | |||
| </> | |||
| ); | |||
| @@ -242,7 +242,13 @@ const PatternsPage = ({ history }) => { | |||
| <textarea | |||
| rows="11" | |||
| value={addPatternMessage} | |||
| onChange={(e) => setAddPatternMessage(e.target.value)} | |||
| onChange={(e) => { | |||
| if (e.target.value === "\n") { | |||
| setAddPatternMessage("<br>"); | |||
| } else { | |||
| setAddPatternMessage(e.target.value); | |||
| } | |||
| }} | |||
| ></textarea> | |||
| </div> | |||
| <div className="add-pattern-modal-form-control"> | |||
| @@ -19,8 +19,8 @@ export default { | |||
| candidates: { | |||
| filteredCandidates: base + "/applicants", | |||
| allFilteredAdsCandidates: base + "/applicants/adsApplicants", | |||
| options: base + '/applicants/options', | |||
| initProcess: base + '/applicants/selection-init', | |||
| options: base + "/applicants/options", | |||
| initProcess: base + "/applicants/selection-init", | |||
| }, | |||
| ads: { | |||
| allAds: base + "/ads", | |||
| @@ -46,11 +46,12 @@ export default { | |||
| patterns: { | |||
| allPatterns: base + "/patterns", | |||
| patternById: base + "/patterns/:id", | |||
| patternApplicantsById: base + "/patterns/corresponding-pattern-applicants/:id", | |||
| patternApplicantsById: | |||
| base + "/patterns/corresponding-pattern-applicants/:id", | |||
| filteredPatterns: base + "/patterns/filter", | |||
| createPattern: base + "/patterns", | |||
| updatePattern: base + "/patterns/:id", | |||
| scheduleAppointment: base + "/patterns/schedule-interview" | |||
| scheduleAppointment: base + "/patterns/schedule-interview", | |||
| }, | |||
| stats: { | |||
| stats: base + "/stats", | |||
| @@ -58,4 +59,7 @@ export default { | |||
| schedule: { | |||
| specificSchedule: base + "/schedule", | |||
| }, | |||
| applicant: { | |||
| applyForAd: base + "/applicants/apply-for-ad", | |||
| }, | |||
| }; | |||
| @@ -0,0 +1,5 @@ | |||
| import { postRequest } from "."; | |||
| import apiEndpoints from "./apiEndpoints"; | |||
| export const applyForAdRequest = (data) => | |||
| postRequest(apiEndpoints.applicant.applyForAd, data); | |||
| @@ -0,0 +1,11 @@ | |||
| import { | |||
| createFetchType, | |||
| createSuccessType, | |||
| createErrorType, | |||
| } from "../actionHelpers"; | |||
| const APPLY_FOR_AD_SCOPE = "APPLY_FOR_AD"; | |||
| export const APPLY_FOR_AD_REQ = createFetchType(APPLY_FOR_AD_SCOPE); | |||
| export const APPLY_FOR_AD_ERR = createErrorType(APPLY_FOR_AD_SCOPE); | |||
| export const APPLY_FOR_AD_SUCCESS = createSuccessType(APPLY_FOR_AD_SCOPE); | |||
| @@ -0,0 +1,20 @@ | |||
| import { | |||
| APPLY_FOR_AD_ERR, | |||
| APPLY_FOR_AD_REQ, | |||
| APPLY_FOR_AD_SUCCESS, | |||
| } from "./applyForAdActionConstants"; | |||
| export const applyForAdReq = (payload) => ({ | |||
| type: APPLY_FOR_AD_REQ, | |||
| payload, | |||
| }); | |||
| export const applyForAdError = (payload) => ({ | |||
| type: APPLY_FOR_AD_ERR, | |||
| payload, | |||
| }); | |||
| export const applyForAd = (payload) => ({ | |||
| type: APPLY_FOR_AD_SUCCESS, | |||
| payload, | |||
| }); | |||
| @@ -0,0 +1,30 @@ | |||
| import createReducer from "../../utils/createReducer"; | |||
| import { | |||
| APPLY_FOR_AD_SUCCESS, | |||
| APPLY_FOR_AD_ERR, | |||
| } from "../../actions/applyForAd/applyForAdActionConstants"; | |||
| const initialState = { | |||
| errorMessage: "", | |||
| }; | |||
| export default createReducer( | |||
| { | |||
| [APPLY_FOR_AD_SUCCESS]: setApplyForAdState, | |||
| [APPLY_FOR_AD_ERR]: setApplyForAdError, | |||
| }, | |||
| initialState | |||
| ); | |||
| function setApplyForAdState(state) { | |||
| return { | |||
| ...state, | |||
| }; | |||
| } | |||
| function setApplyForAdError(state, action) { | |||
| return { | |||
| ...state, | |||
| errorMessage: action.payload, | |||
| }; | |||
| } | |||
| @@ -30,6 +30,7 @@ import archiveActiveAdReducer from "./ad/archiveActiveAdReducer"; | |||
| import registerReducer from "./register/registerReducer"; | |||
| import candidateOptionsReducer from "./candidates/candidateOptionsReducer"; | |||
| import initProcessReducer from "./candidates/initProcessReducer"; | |||
| import applyForAdReducer from "./applicants/applyForAdReducer"; | |||
| export default combineReducers({ | |||
| login: loginReducer, | |||
| @@ -63,4 +64,5 @@ export default combineReducers({ | |||
| initProcess: initProcessReducer, | |||
| scheduleAppointment: scheduleAppointmentReducer, | |||
| patternApplicants: patternApplicantsReducer, | |||
| applyForAd: applyForAdReducer, | |||
| }); | |||
| @@ -28,9 +28,9 @@ import { | |||
| setCreateAd, | |||
| setCreateAdError, | |||
| } from "../actions/createAd/createAdActions"; | |||
| import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers"; | |||
| import { JWT_TOKEN } from "../../constants/localStorage"; | |||
| import { addHeaderToken } from "../../request"; | |||
| // import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers"; | |||
| // import { JWT_TOKEN } from "../../constants/localStorage"; | |||
| // import { addHeaderToken } from "../../request"; | |||
| import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; | |||
| import { archiveActiveAd, archiveActiveAdError } from "../actions/archiveActiveAd/archiveActiveAdActions"; | |||
| @@ -86,8 +86,8 @@ export function* createAd({ payload }) { | |||
| export function* archiveActiveAdSaga({ payload }) { | |||
| try { | |||
| const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| yield call(addHeaderToken, JwtToken); | |||
| // const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| // yield call(addHeaderToken, JwtToken); | |||
| const { data } = yield call(archiveActiveAdRequest, payload); | |||
| yield put(archiveActiveAd(data)); | |||
| const resultAds = yield call(getAllAds); | |||
| @@ -0,0 +1,30 @@ | |||
| import { all, call, put, takeEvery } from "redux-saga/effects"; | |||
| // import { JWT_TOKEN } from "../../constants/localStorage"; | |||
| // import { addHeaderToken } from "../../request"; | |||
| import { applyForAdRequest } from "../../request/applicantRequest"; | |||
| // import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers"; | |||
| import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; | |||
| import { APPLY_FOR_AD_REQ } from "../actions/applyForAd/applyForAdActionConstants"; | |||
| import { | |||
| applyForAd, | |||
| applyForAdError, | |||
| } from "../actions/applyForAd/applyForAdActions"; | |||
| export function* applyForAdSaga({ payload }) { | |||
| try { | |||
| // const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| // yield call(addHeaderToken, JwtToken); | |||
| const { data } = yield call(applyForAdRequest, payload); | |||
| yield put(applyForAd(data)); | |||
| if (payload.handleApiResponseSuccess) { | |||
| yield call(payload.handleApiResponseSuccess); | |||
| } | |||
| } catch (error) { | |||
| const errorMessage = yield call(rejectErrorCodeHelper, error); | |||
| yield put(applyForAdError(errorMessage)); | |||
| } | |||
| } | |||
| export default function* applicantsSaga() { | |||
| yield all([takeEvery(APPLY_FOR_AD_REQ, applyForAdSaga)]); | |||
| } | |||
| @@ -9,6 +9,7 @@ import patternsSage from "./patternsSaga"; | |||
| import statsSaga from "./statsSaga"; | |||
| import scheduleSaga from "./scheduleSaga"; | |||
| import registerSaga from "./registerSaga"; | |||
| import applicantsSaga from "./applicantsSaga"; | |||
| export default function* rootSaga() { | |||
| yield all([ | |||
| @@ -22,5 +23,6 @@ export default function* rootSaga() { | |||
| statsSaga(), | |||
| scheduleSaga(), | |||
| registerSaga(), | |||
| applicantsSaga(), | |||
| ]); | |||
| } | |||
| @@ -30,9 +30,9 @@ import { | |||
| updatePattern, | |||
| updatePatternError, | |||
| } from "../actions/updatePattern/updatePatternActions"; | |||
| import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers"; | |||
| import { JWT_TOKEN } from "../../constants/localStorage"; | |||
| import { addHeaderToken } from "../../request"; | |||
| // import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers"; | |||
| // import { JWT_TOKEN } from "../../constants/localStorage"; | |||
| // import { addHeaderToken } from "../../request"; | |||
| import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; | |||
| import { SCHEDULE_APPOINTMENT_REQ } from "../actions/scheduleAppointment/scheduleAppointmentActionConstants"; | |||
| import { scheduleAppointment } from "../actions/scheduleAppointment/scheduleAppointmentActions"; | |||
| @@ -59,8 +59,8 @@ export function* getPattern({ payload }) { | |||
| export function* getPatternApplicants({ payload }) { | |||
| try { | |||
| const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| yield call(addHeaderToken, JwtToken); | |||
| // const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| // yield call(addHeaderToken, JwtToken); | |||
| const result = yield call(getPatternApplicantsById, payload.id); | |||
| yield put(setPatternApplicants(result.data)); | |||
| } catch (error) { | |||
| @@ -71,8 +71,8 @@ export function* getPatternApplicants({ payload }) { | |||
| export function* filterPatterns({ payload }) { | |||
| try { | |||
| const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| yield call(addHeaderToken, JwtToken); | |||
| // const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| // yield call(addHeaderToken, JwtToken); | |||
| const { data } = yield call(getFilteredPatterns, payload); | |||
| yield put(setFilteredPatterns(data)); | |||
| if (payload.handleApiResponseSuccess) { | |||
| @@ -108,8 +108,8 @@ export function* updatePatternSaga({ payload }) { | |||
| export function* scheduleAppointmentSaga({ payload }) { | |||
| try { | |||
| const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| yield call(addHeaderToken, JwtToken); | |||
| // const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN); | |||
| // yield call(addHeaderToken, JwtToken); | |||
| const { data } = yield call(scheduleAppointmentRequest, payload); | |||
| yield put(scheduleAppointment(data)); | |||
| if (payload.handleApiResponseSuccess) { | |||
| @@ -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" | |||
| @@ -1346,7 +1346,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.9.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" | |||
| @@ -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.8.1": | |||
| "@emotion/styled@^11.3.0": | |||
| "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.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" | |||
| @@ -1719,7 +1719,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" | |||
| @@ -2043,7 +2043,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" | |||
| @@ -2284,7 +2284,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" | |||
| @@ -2352,7 +2352,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" | |||
| @@ -2376,7 +2376,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" | |||
| @@ -2413,7 +2413,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" | |||
| @@ -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.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" | |||
| @@ -3010,6 +3010,11 @@ | |||
| "resolved" "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" | |||
| "version" "2.1.2" | |||
| "attr-accept@^2.2.2": | |||
| "integrity" "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==" | |||
| "resolved" "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz" | |||
| "version" "2.2.2" | |||
| "autoprefixer@^9.6.1": | |||
| "integrity" "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==" | |||
| "resolved" "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz" | |||
| @@ -3045,7 +3050,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" | |||
| @@ -3476,7 +3481,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" | |||
| @@ -4533,7 +4538,7 @@ | |||
| "whatwg-mimetype" "^2.3.0" | |||
| "whatwg-url" "^8.0.0" | |||
| "date-fns@^2.0.0", "date-fns@^2.25.0", "date-fns@^2.29.3": | |||
| "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" | |||
| @@ -5272,7 +5277,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" | |||
| @@ -5293,7 +5298,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" | |||
| @@ -5324,12 +5329,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" | |||
| @@ -5354,7 +5359,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" | |||
| @@ -5430,7 +5435,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" | |||
| @@ -5777,7 +5782,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" | |||
| @@ -5785,6 +5790,13 @@ | |||
| "loader-utils" "^2.0.0" | |||
| "schema-utils" "^3.0.0" | |||
| "file-selector@^0.6.0": | |||
| "integrity" "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==" | |||
| "resolved" "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz" | |||
| "version" "0.6.0" | |||
| dependencies: | |||
| "tslib" "^2.4.0" | |||
| "file-uri-to-path@1.0.0": | |||
| "integrity" "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" | |||
| "resolved" "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" | |||
| @@ -6575,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@>= 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" | |||
| @@ -7520,20 +7532,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" | |||
| @@ -7548,6 +7546,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" | |||
| @@ -7704,7 +7716,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" | |||
| @@ -7718,11 +7730,6 @@ | |||
| "resolved" "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz" | |||
| "version" "1.4.0" | |||
| "jquery@>=1.8.0": | |||
| "integrity" "sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==" | |||
| "resolved" "https://registry.npmjs.org/jquery/-/jquery-3.6.1.tgz" | |||
| "version" "3.6.1" | |||
| "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" | |||
| @@ -10123,7 +10130,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" | |||
| @@ -10418,7 +10425,7 @@ | |||
| "strip-ansi" "6.0.0" | |||
| "text-table" "0.2.0" | |||
| "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": | |||
| "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" | |||
| @@ -10427,6 +10434,15 @@ | |||
| "object-assign" "^4.1.1" | |||
| "scheduler" "^0.20.2" | |||
| "react-dropzone@^14.2.3": | |||
| "integrity" "sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==" | |||
| "resolved" "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.3.tgz" | |||
| "version" "14.2.3" | |||
| dependencies: | |||
| "attr-accept" "^2.2.2" | |||
| "file-selector" "^0.6.0" | |||
| "prop-types" "^15.8.1" | |||
| "react-error-overlay@^6.0.9": | |||
| "integrity" "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==" | |||
| "resolved" "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz" | |||
| @@ -10503,7 +10519,7 @@ | |||
| "prop-types" "^15.5.8" | |||
| "substyle" "^9.1.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" | |||
| @@ -10515,7 +10531,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" | |||
| @@ -10665,7 +10681,7 @@ | |||
| "loose-envify" "^1.4.0" | |||
| "prop-types" "^15.6.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.0", "react@>=15", "react@>=16.6.0", "react@>=16.8", "react@>=16.8.0", "react@>=16.8.3", "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" | |||
| @@ -10878,7 +10894,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" | |||
| @@ -11233,7 +11249,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" | |||
| @@ -11328,7 +11344,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" | |||
| @@ -11697,7 +11713,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" | |||
| @@ -12502,10 +12518,10 @@ | |||
| "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" | |||
| "version" "1.14.1" | |||
| "tslib@^2.0.3": | |||
| "integrity" "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==" | |||
| "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz" | |||
| "version" "2.2.0" | |||
| "tslib@^2.0.3", "tslib@^2.4.0": | |||
| "integrity" "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" | |||
| "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz" | |||
| "version" "2.4.1" | |||
| "tsutils@^3.17.1", "tsutils@^3.21.0": | |||
| "integrity" "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==" | |||
| @@ -12612,11 +12628,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-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" | |||
| @@ -12981,7 +12992,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" | |||
| @@ -13046,7 +13057,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" | |||