Переглянути джерело

Merge branch 'feature/1520_apply_for_an_ad' of Neca/HRCenter into FE_dev

pull/108/head
safet.purkovic.new 3 роки тому
джерело
коміт
55c4f4c8cf

+ 153
- 83
package-lock.json Переглянути файл

@@ -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",

+ 1
- 0
package.json Переглянути файл

@@ -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",

BIN
src/assets/images/briefcase1.png Переглянути файл


BIN
src/assets/images/upload.png Переглянути файл


+ 184
- 0
src/assets/styles/components/_ads.scss Переглянути файл

@@ -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;
}

+ 165
- 0
src/components/Ads/ApplyForAd.js Переглянути файл

@@ -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;

+ 81
- 0
src/components/Ads/ApplyForAdFirstStage.js Переглянути файл

@@ -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;

+ 93
- 0
src/components/Ads/ApplyForAdFourthStage.js Переглянути файл

@@ -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;

+ 123
- 0
src/components/Ads/ApplyForAdSecondStage.js Переглянути файл

@@ -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;

+ 85
- 0
src/components/Ads/ApplyForAdThirdStage.js Переглянути файл

@@ -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;

+ 160
- 142
src/pages/AdsPage/AdDetailsPage.js Переглянути файл

@@ -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>
</>
)}
</>
);

+ 7
- 1
src/pages/PatternsPage/PatternsPage.js Переглянути файл

@@ -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">

+ 8
- 4
src/request/apiEndpoints.js Переглянути файл

@@ -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",
},
};

+ 5
- 0
src/request/applicantRequest.js Переглянути файл

@@ -0,0 +1,5 @@
import { postRequest } from ".";
import apiEndpoints from "./apiEndpoints";

export const applyForAdRequest = (data) =>
postRequest(apiEndpoints.applicant.applyForAd, data);

+ 11
- 0
src/store/actions/applyForAd/applyForAdActionConstants.js Переглянути файл

@@ -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);

+ 20
- 0
src/store/actions/applyForAd/applyForAdActions.js Переглянути файл

@@ -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,
});

+ 30
- 0
src/store/reducers/applicants/applyForAdReducer.js Переглянути файл

@@ -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,
};
}

+ 2
- 0
src/store/reducers/index.js Переглянути файл

@@ -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,
});

+ 5
- 5
src/store/saga/adsSaga.js Переглянути файл

@@ -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);

+ 30
- 0
src/store/saga/applicantsSaga.js Переглянути файл

@@ -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)]);
}

+ 2
- 0
src/store/saga/index.js Переглянути файл

@@ -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(),
]);
}

+ 9
- 9
src/store/saga/patternsSaga.js Переглянути файл

@@ -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) {

+ 78
- 67
yarn.lock Переглянути файл

@@ -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"

Завантаження…
Відмінити
Зберегти