소스 검색

implemented statistics fe

pull/76/head
meris.ahmatovic 3 년 전
부모
커밋
6f40efe06a

+ 87
- 75
package-lock.json 파일 보기

@@ -3490,6 +3490,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",
@@ -3508,6 +3509,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"
}
@@ -3516,6 +3518,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"
},
@@ -3530,6 +3533,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"
}
@@ -3538,6 +3542,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"
@@ -3553,6 +3558,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"
},
@@ -3563,12 +3569,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",
@@ -3594,6 +3602,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"
}
@@ -3601,12 +3610,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",
@@ -3620,6 +3631,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"
},
@@ -3631,6 +3643,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"
},
@@ -3808,7 +3821,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",
@@ -4966,6 +4980,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"
},
@@ -7919,7 +7934,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",
@@ -8329,6 +8345,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",
@@ -8346,7 +8363,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",
@@ -10107,6 +10125,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"
}
@@ -11887,6 +11906,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"
}
@@ -12044,6 +12064,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"
}
@@ -12102,6 +12123,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",
@@ -12125,6 +12147,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"
}
@@ -12144,6 +12167,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"
@@ -14227,12 +14251,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",
@@ -14979,6 +14997,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"
}
@@ -17880,6 +17899,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"
},
@@ -21991,19 +22011,6 @@
"is-typedarray": "^1.0.0"
}
},
"node_modules/typescript": {
"version": "4.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
"integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"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",
@@ -24047,6 +24054,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",
@@ -24066,6 +24074,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",
@@ -25895,8 +25904,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",
@@ -26687,8 +26695,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",
@@ -27057,6 +27064,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",
@@ -27072,6 +27080,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"
}
@@ -27080,6 +27089,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"
}
@@ -27088,6 +27098,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"
}
@@ -27096,6 +27107,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"
@@ -27105,6 +27117,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"
}
@@ -27112,12 +27125,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",
@@ -27139,17 +27154,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",
@@ -27159,7 +27177,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
}
}
},
@@ -27167,6 +27186,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"
}
@@ -27305,7 +27325,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",
@@ -27923,8 +27944,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",
@@ -27976,14 +27996,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",
@@ -28257,7 +28275,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",
@@ -28455,8 +28474,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",
@@ -30596,7 +30614,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",
@@ -30953,6 +30972,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",
@@ -30967,7 +30987,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
}
}
},
@@ -31249,8 +31270,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",
@@ -31484,8 +31504,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",
@@ -32279,6 +32298,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"
}
@@ -33658,7 +33678,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",
@@ -33761,7 +33782,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",
@@ -33796,6 +33818,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",
@@ -33812,7 +33835,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",
@@ -33826,6 +33850,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"
@@ -34615,8 +34640,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",
@@ -35362,12 +35386,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",
@@ -35967,7 +35985,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",
@@ -38298,7 +38317,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",
@@ -39241,8 +39261,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",
@@ -40313,8 +40332,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",
@@ -41565,12 +41583,6 @@
"is-typedarray": "^1.0.0"
}
},
"typescript": {
"version": "4.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
"integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
"peer": true
},
"typescript-compare": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz",
@@ -41897,8 +41909,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",
@@ -43198,6 +43209,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",
@@ -43214,6 +43226,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",
@@ -43501,8 +43514,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",

+ 4
- 1
src/AppRoutes.js 파일 보기

@@ -17,7 +17,8 @@ import {
CANDIDATES_DETAILS_PAGE,
SELECTION_PROCESS_PAGE,
SELECTION_PROCESS_OF_APPLICANT_PAGE,
SCHEDULE_PAGE
SCHEDULE_PAGE,
STATS_PAGE
} from "./constants/pages";

// import LoginPage from './pages/LoginPage/LoginPage';
@@ -40,6 +41,7 @@ import CandidateDetailsPage from "./pages/CandidatesPage/CandidateDetailsPage";
import SelectionProcessPage from "./pages/SelectionProcessPage/SelectionProcessPage";
import SelectionProcessOfApplicantPage from "./pages/SelectionProcessPage/SelectionProcessOfApplicantPage";
import SchedulePage from "./pages/SchedulePage/SchedulePage";
import StatsPage from "./pages/StatsPage/StatsPage";

const AppRoutes = () => (
<Switch>
@@ -63,6 +65,7 @@ const AppRoutes = () => (
<PrivateRoute exact path={SELECTION_PROCESS_PAGE} component={SelectionProcessPage} />
<PrivateRoute exact path={SELECTION_PROCESS_OF_APPLICANT_PAGE} component={SelectionProcessOfApplicantPage} />
<PrivateRoute exact path={SCHEDULE_PAGE} component={SchedulePage} />
<PrivateRoute exact path={STATS_PAGE} component={StatsPage} />
<Redirect from="*" to={NOT_FOUND_PAGE} />
</Switch>
);

+ 18
- 2
src/assets/styles/components/_ads.scss 파일 보기

@@ -145,7 +145,8 @@ h3 {
.archived-ads-ads-ad,
.ad-details-applicants-applicants-applicant {
padding-left: 81px;
display: flex;
// ovde je greska
// display: flex;
flex-direction: row;
width: 100%;
@include media-below($bp-xl) {
@@ -787,4 +788,19 @@ h3 {

.add-ad-modal-actions button {
padding: 18px 72px !important;
}
}

.stats-ad {
width: 247px !important;
}
.stat-ads {
display: block !important;
margin-top: -60px;
padding-top: 0px;
width: 100%;
position: relative;
left: -20px;
@include media-below($bp-xl) {
left: -7.5px;
}
}

+ 238
- 0
src/assets/styles/components/_statistics.scss 파일 보기

@@ -0,0 +1,238 @@
.px36-heading {
padding-top: 36px !important;
padding-left: 144px;
line-height: 32px;

@include media-below($bp-xl) {
padding-left: 36px !important;
}
}
.section-header {
padding-bottom: 27px !important;
}
.stats-section:not(:last-of-type) {
padding-left: 144px;
padding-right: 72px;
margin-top: 83px;

@include media-below($bp-xl) {
padding: 20px 36px !important;
}

h3 {
font-size: 24px;
}

.stats-items {
display: flex;
justify-content: flex-start;
border: 1px solid #e4e4e4;
border-radius: 18px;
width: 920px;
overflow: hidden;

.stats-item {
width: 230px;
position: relative;

&:not(:last-of-type):after {
content: "";
position: absolute;
right: 0;
bottom: 0;
height: 60%;
width: 1.75px;
}

&:first-of-type:after {
background-color: #bfdbf5;
}
&:nth-of-type(2):after {
background-color: #1e92d0;
}
&:nth-of-type(3):after {
background-color: $mainBlue;
}

.stats-item-content {
padding: 36px;
background-color: white;

p {
margin-top: 9px;
font-size: 16px;
color: $mainBlue;
font-weight: 600;
}
}

.bottom-static {
height: 35px;
width: 100%;
}

&:first-of-type {
.bottom-static {
background-color: $mainBlueLight !important;
}
}
&:nth-of-type(2) {
.bottom-static {
background-color: #bfdbf5 !important;
}
}
&:nth-of-type(3) {
.bottom-static {
background-color: #1e92d0 !important;
}
}
&:last-of-type {
.bottom-static {
background-color: $mainBlue !important;
}
}
}
}

.stats-items-dynamic {
display: flex;
justify-content: flex-start;
// margin-top: 27px;
border: 1px solid #e4e4e4;
border-radius: 18px;
width: 1160px;
overflow: hidden;

.stats-item {
width: 290px;
position: relative;

&:not(:last-of-type):after {
content: "";
position: absolute;
right: 0;
bottom: 0;
height: 60%;
width: 1.75px;
}

&:first-of-type:after {
background-color: #bfdbf5;
}
&:nth-of-type(2):after {
background-color: #1e92d0;
}
&:nth-of-type(3):after {
background-color: $mainBlue;
}

.stats-item-content {
padding: 36px;
background-color: white;

p {
margin-top: 9px;
font-size: 16px;
color: $mainBlue;
font-weight: 600;
}
}

.bottom-dynamic {
height: 35px;
width: 100%;
}

.bottom-dynamic {
display: flex;
background-color: $white;
border-top: 1px solid #e4e4e4;
.bottom-loader-indicator {
// width: 85%;
border-bottom-right-radius: 18px;
}
}

&:first-of-type {
.bottom-dynamic {
.bottom-loader-indicator {
background-color: $mainBlueLight !important;
}
}
}
&:nth-of-type(2) {
.bottom-dynamic {
.bottom-loader-indicator {
background-color: #bfdbf5 !important;
}
}
}
&:nth-of-type(3) {
.bottom-dynamic {
.bottom-loader-indicator {
background-color: #1e92d0 !important;
}
}
}
&:last-of-type {
.bottom-dynamic {
.bottom-loader-indicator {
background-color: $mainBlue !important;
}
}
}
}
}
}

.stats-section:first-of-type {
margin-top: 35px !important;
}
.stats-section {
@include media-below($bp-xl) {
margin-top: 20px !important;
}
}
.stats-section:not(:last-of-type) {
@include media-below($bp-xl) {
overflow-x: auto;
}
}
.stats-section:last-of-type {
padding-bottom: 0px !important;
margin-top: 83px;
}
.stats-section:last-of-type .section-header {
padding: 0px !important;
margin-bottom: 0px;
padding-left: 144px;
@include media-below($bp-xl) {
padding: 20px 36px !important;
}
}
.ad-count {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
padding: 9px;
gap: 10px;

width: 113px;
height: 38px;

/* Gray E4 */

border: 1px solid #e4e4e4;
border-radius: 9px;

/* Inside auto layout */

flex: none;
order: 0;
flex-grow: 0;
}
.stat-ads {
margin-bottom: 0 !important;
padding-bottom: 0 !important;
}

+ 67
- 1
src/assets/styles/components/_usersPage.scss 파일 보기

@@ -68,4 +68,70 @@ color: #226cb0;
top: 2.5px;
color: $mainBlue;
margin-right: 100px;
}
}

// users sccs

.f-1 {
flex: 1;
}
.usersTable-users {
border-radius: 12px;
overflow: hidden;
background-color: white;
@include media-below($bp-xl) {
overflow-x: auto !important;
}
}
.table-cont {
@include media-below($bp-xl) {
overflow-x: auto !important;
}
}
.usersTable-users {
&.normal {
min-width: 960px;

td,
th {
width: calc(100% / 4) !important;
height: 60px;
padding-left: 35px;
}
}
&.mini {
min-width: 720px;
td,
th {
width: calc(100% / 3) !important;
height: 60px;
padding-left: 35px;
}
}
}
.profession {
width: 100%;
margin: 0 !important;
}
.usersTable-users .headingRow {
background-color: $mainBlueLight;
}
.usersTable-users .headingRow th {
font-weight: 600 !important;
}
.usersTable-users tr {
border: 1px solid #f4f4f4;
}
// .usersTable td,
// .usersTable th {
// width: 20% !important;
// height: 60px;
// padding-left: 35px;
// }
.usersTable-users.normal > tbody > tr > td:last-of-type {
display: flex !important;
flex-direction: row !important;
// justify-content: space-between;
align-items: center;
gap: 9px;
}

+ 53
- 0
src/components/Ads/StatsAd.js 파일 보기

@@ -0,0 +1,53 @@
import React from "react";
import PropTypes from "prop-types";
import { selectLogo } from "../../util/helpers/technologiesLogos";

const StatsAd = ({
className,
count,
title,
minimumExperience,
createdAt,
expiredAt,
onShowAdDetails,
}) => {
return (
<div className={`archive-ad stats-ad ${className}`} onClick={onShowAdDetails}>
<div className="ad-count">
{count} prijavljenih
</div>
<div className="archive-ad-date">
<p>
{new Date(createdAt).toLocaleDateString()} -{" "}
{new Date(expiredAt).toLocaleDateString()}
</p>
</div>
<div className="archive-ad-title">
<h3>{title}</h3>
</div>
<div className="archive-ad-image">
<img src={selectLogo(title)} alt=".net icon" />
</div>
<div className="archive-ad-experience">
{minimumExperience > 0 ? (
<p>{minimumExperience}+ years of experience</p>
) : (
<p>No experience needed</p>
)}
</div>
</div>
);
};

StatsAd.propTypes = {
id: PropTypes.number,
count: PropTypes.number,
title: PropTypes.string,
minimumExperience: PropTypes.number,
createdAt: PropTypes.any,
expiredAt: PropTypes.any,
onShowAdDetails: PropTypes.func,
className: PropTypes.any,
};

export default StatsAd;

+ 1
- 1
src/components/MUI/NavbarComponent.js 파일 보기

@@ -41,7 +41,7 @@ const NavbarComponent = () => {
"candidates",
"schedule",
"patterns",
"stats",
"statistics",
"users",
// "signOut"
];

+ 1
- 0
src/constants/pages.js 파일 보기

@@ -14,3 +14,4 @@ export const RESET_PASSWORD_PAGE = '/reset-password';
export const SELECTION_PROCESS_PAGE = '/selectionFlow';
export const SELECTION_PROCESS_OF_APPLICANT_PAGE = '/selectionflow/:id';
export const SCHEDULE_PAGE = '/schedule'
export const STATS_PAGE = '/statistics';

+ 9
- 1
src/i18n/resources/en.js 파일 보기

@@ -98,7 +98,7 @@ export default {
candidates: "Candidates",
planer: "Planer",
patterns: "Patterns",
stats: "Stats",
statistics: "Statistics",
users: "Users",
signOut: "Sign Out",
},
@@ -127,4 +127,12 @@ export default {
phone: 'Phone',
socials: 'Social Media',
},
selectionLevels: {
done: {
HR: "HR interview",
ST: "Screening test",
TI: "Technical interview",
FD: "Candidates accepted",
},
},
};

+ 9
- 1
src/i18n/resources/rs.js 파일 보기

@@ -117,7 +117,7 @@ export default {
candidates: 'Kandidati',
schedule: 'Planer',
patterns: 'Šabloni',
stats: 'Statistika',
statistics: "Statistika",
users: 'Korisnici',
signOut: 'Izloguj se'
},
@@ -159,5 +159,13 @@ export default {
},
filter: {
title: "Filteri"
},
selectionLevels: {
done: {
HR: "HR intervjua",
ST: "Screening testova",
TI: "Tehnickih intervjua",
FD: "Primljenih kandidata",
},
}
};

+ 1
- 0
src/main.scss 파일 보기

@@ -13,6 +13,7 @@
@import './assets/styles/components/candidate-card';
@import './assets/styles/components/loader';
@import './assets/styles/components/radio';
@import './assets/styles/components/statistics';
@import './assets/styles/components/modal';
@import './assets/styles/components/auth-card';
@import './assets/styles/components/user-profile';

+ 1
- 1
src/pages/CandidatesPage/TableViewPage.js 파일 보기

@@ -59,7 +59,7 @@ const TableViewPage = ({ history, setPage, page }) => {
<div style={{overflowX:'auto'}}>
<table
className="usersTable"
style={{}}
style={{ width: "1017px" }}
>
<thead>
<tr className="headingRow">

+ 198
- 0
src/pages/StatsPage/StatsPage.js 파일 보기

@@ -0,0 +1,198 @@
import { useMediaQuery, useTheme } from "@mui/material";
import React from "react";
import { useRef } from "react";
import arrow_left from "../../assets/images/arrow_left.png";
import arrow_right from "../../assets/images/arrow_right.png";
import Slider from "react-slick";
// import Ad from "../../components/Ads/Ad";
import { AD_DETAILS_PAGE } from "../../constants/pages";
import StatsAd from "../../components/Ads/StatsAd";
import { useDispatch } from "react-redux";
import { useSelector } from "react-redux";
import { useEffect } from "react";
import { getStatsReq } from "../../store/actions/stats/statsActions";
import { useTranslation } from "react-i18next";
import { returni18nLevel } from "../../util/helpers/stringHelpers";
// import ArchiveAd from "../../components/Ads/ArchiveAd";
// import { AD_DETAILS_PAGE } from "../../constants/pages";

const StatsPage = () => {
const dispatch = useDispatch();
const { stats } = useSelector((s) => s.stats);

const { t } = useTranslation();

useEffect(() => {
dispatch(getStatsReq());
}, [dispatch]);

const theme = useTheme();
const matches = useMediaQuery(theme.breakpoints.down("sm"));
const sliderRef = useRef();

var settings = {
dots: false,
infinite: false,
speed: 500,
initialSlide: 0,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 3,
infinite: false,
dots: false,
},
},
{
breakpoint: 900,
settings: {
slidesToShow: 2,
slidesToScroll: 2,
initialSlide: 0,
},
},
{
breakpoint: 480,
settings: {
slidesToShow: 1,
slidesToScroll: 1,
},
},
],
};

const arrowLeftHandler = () => {
sliderRef.current.slickPrev();
};

const arrowRightHandler = () => {
sliderRef.current.slickNext();
};

return (
<div>
<div className="l-t-rectangle"></div>
<div className="r-b-rectangle"></div>
<h1
style={{ letterSpacing: "1px" }}
className="page-heading px36-heading"
>
Statistika
</h1>
<div className="stats-section">
<h2 className="section-header">Tok Selekcije</h2>
<div className="stats-items">
{stats.levels &&
stats.levels.map((n) => (
<div key={n.level} className="stats-item">
<div className="stats-item-content">
<h3>{n.countDone}</h3>
<p>
{returni18nLevel(n.level) != 'FD' && 'Obavljenih'}<br></br>{t('selectionLevels.done.'+returni18nLevel(n.level))}
</p>
</div>
<div className="bottom-static"></div>
</div>
))}
</div>
</div>
<div className="stats-section">
<h2 className="section-header">Odnosi</h2>
<div className="stats-items-dynamic">
{stats.levels &&
stats.levels.map((n) => (
<div key={n.level} className="stats-item">
<div className="stats-item-content">
<h3>
{n.countDone}
<span style={{ padding: "0px 3px" }}>:</span>
{n.countAll}
</h3>
<p>
Broj {t('selectionLevels.done.'+returni18nLevel(n.level))}:<br></br>
Broj kontaktiranih:
</p>
</div>
<div className="bottom-dynamic">
<div
style={{ width: `${(n.countDone * 1.0 / n.countAll) * 100}%` }}
className="bottom-loader-indicator"
></div>
</div>
</div>
))}
</div>
</div>
<div className="stats-section">
<h2 className="section-header">Prijavljeni po pozicijama</h2>
</div>
<div className="ads stat-ads">
{stats.ads && stats.ads.length > 0 && (
<div className="archived-ads">
{/* <div className="archived-ads-header">
<h2>{t("ads.archiveAds")}</h2>
</div> */}
<div className="archived-ads-ads">
{!matches && (
<div className="archived-ads-ads-a">
<div className="archived-ads-ads-arrows">
<button onClick={arrowLeftHandler}>
<img src={arrow_left} alt="arrow-left" />
</button>
{stats.ads.length > 3 && (
<button onClick={arrowRightHandler}>
<img src={arrow_right} alt="arrow-right" />
</button>
)}
</div>
</div>
)}
<div className="archived-ads-ads-ad">
<Slider
ref={sliderRef}
{...settings}
slidesToShow={5}
slidesToScroll={5}
style={{ width: "100%" }}
>
{stats.ads.map((ad, index) => (
<StatsAd
count={ad.count}
key={index}
title={ad.title}
minimumExperience={ad.minimumExperience}
createdAt={ad.createdAt}
expiredAt={ad.expiredAt}
onShowAdDetails={() =>
history.push(AD_DETAILS_PAGE.replace(":id", ad.id))
}
/>
))}
{/* {stats.ads.length <= 5 &&
getDummyArchiveAds(archiveAds.length)} */}
</Slider>
</div>
</div>
{matches && (
<div className="active-ads-ads-arrows">
<button onClick={arrowLeftHandler}>
<img src={arrow_left} alt="arrow-left" />
</button>
{stats.ads.length > 2 && (
<button onClick={arrowRightHandler}>
<img src={arrow_right} alt="arrow-right" />
</button>
)}
</div>
)}
</div>
)}
</div>
<div style={{ padding: "30px" }}></div>
</div>
);
};

export default StatsPage;

+ 19
- 78
src/pages/UsersPage/UsersPage.js 파일 보기

@@ -64,7 +64,7 @@ const UsersPage = () => {
};

const handleApiResponseSuccessReset = () => {
setReset(false)
setReset(false);
};

const handleApiResponseSuccessEnable = () => {
@@ -98,9 +98,9 @@ const UsersPage = () => {
<ConfirmDialog
open={showConfirm}
title={"Disable user"}
subtitle={chosen?.firstName + ' ' + chosen?.lastName}
subtitle={chosen?.firstName + " " + chosen?.lastName}
imgSrc={forbiden}
content='Are you sure you want to disable user?'
content="Are you sure you want to disable user?"
onClose={() => {
setConfirm(false);
}}
@@ -112,14 +112,14 @@ const UsersPage = () => {
<ConfirmDialog
open={showReset}
title={"Reset password"}
subtitle={chosen?.firstName + ' ' + chosen?.lastName}
subtitle={chosen?.firstName + " " + chosen?.lastName}
imgSrc={lock}
content='Are you sure you want to send password reset link?'
content="Are you sure you want to send password reset link?"
onClose={() => {
setReset(false);
}}
onConfirm={() => {
handleReset(chosen.email)
handleReset(chosen.email);
// setConfirm(false)
}}
/>
@@ -212,86 +212,30 @@ const UsersPage = () => {
minHeight: "500px",
}}
>
<div className=" table-cont">
<div className="table-cont">
<TextField
name="username"
label={t("common.labelUsername")}
margin="normal"
value={search}
// value={formik.values.username}
// onChange={formik.handleChange}
// error={formik.touched.username && Boolean(formik.errors.username)}
// helperText={formik.touched.username && formik.errors.username}
// autoFocus
// fullWidth
onChange={(e) => setSearch(e.target.value)}
style={{
width: "893.56px",
width: editEnable ? "960px" : '720px',
}}
/>
<table className="usersTable" style={{ width: "893.56px" }}>
<table className={editEnable ? 'usersTable-users normal' : 'usersTable-users mini'}
// style={{ width: "893.56px" }}
>
<thead>
<tr className="headingRow">
<th>{t("users.fullName")}</th>
<th>E-mail</th>
<th>{t("users.position")}</th>
<th></th>
{editEnable && <th></th>}
</tr>
</thead>
<tbody>
{
// search !== '' ? users.map((n) => (
// <tr "user-row" key={n.id} className="secondaryRow">
// <td>
// {n.firstName} {n.lastName}
// </td>
// <td>{n.email}</td>
// <td>HR Specialist</td>
// <td>
// {editEnable && (
// <>
// <IconButton
// className={`c-btn--primary-outlined c-btn td-btn`}
// onClick={() => handleReset(n.email)}
// >
// <img
// style={{
// position: "relative",
// }}
// src={lock}
// />
// </IconButton>
// <IconButton
// className={`c-btn--primary-outlined c-btn td-btn ${
// n.isEnabled ? "active" : "inactive"
// }`}
// onClick={() => disableHandler(n.id)}
// >
// <img
// style={{
// position: "relative",
// }}
// src={forbiden}
// />
// </IconButton>
// <Link to={`/users/${n.id}`}>
// <IconButton
// className={"c-btn--primary-outlined c-btn td-btn"}
// >
// <img
// style={{
// position: "relative",
// }}
// src={edit}
// />
// </IconButton>
// </Link>
// </>
// )}
// </td>
// </tr>
// ))
// :
{
users
.filter((n) =>
(n.firstName + " " + n.lastName)
@@ -299,10 +243,7 @@ const UsersPage = () => {
.includes(search.toLowerCase())
)
.map((n) => (
<tr
key={n.id}
className="secondaryRow"
>
<tr key={n.id} className="secondaryRow">
<td>
{(n.firstName + " " + n.lastName).includes(search) ? (
formatLabel(n.firstName + " " + n.lastName, search)
@@ -311,9 +252,9 @@ const UsersPage = () => {
)}
</td>
<td>{n.email}</td>
<td>HR Specialist</td>
<td>
{editEnable && (
<td className='profession'>HR Specialist</td>
{editEnable && (
<td>
<>
<IconButton
className={`c-btn--primary-outlined c-btn td-btn`}
@@ -360,8 +301,8 @@ const UsersPage = () => {
</IconButton>
</Link>
</>
)}
</td>
</td>
)}
</tr>
))
}

+ 3
- 0
src/request/apiEndpoints.js 파일 보기

@@ -39,4 +39,7 @@ export default {
getApplicantProcesses: base + "/applicants/processes",
// allProcesses: base + "/selectionprocesses",
},
stats:{
stats: base + "/stats"
}
};

+ 4
- 0
src/request/statsRequests.js 파일 보기

@@ -0,0 +1,4 @@
import { getRequest } from ".";
import apiEndpoints from "./apiEndpoints";

export const getStats = () => getRequest(apiEndpoints.stats.stats);

+ 3
- 0
src/store/actions/stats/statsActionConstants.js 파일 보기

@@ -0,0 +1,3 @@
export const FETCH_STATS_REQ = 'FETCH_STATS_REQ';
export const FETCH_STATS_ERR = 'FETCH_STATS_ERR';
export const FETCH_STATS_SUCCESS = 'FETCH_STATS_SUCCESS';

+ 16
- 0
src/store/actions/stats/statsActions.js 파일 보기

@@ -0,0 +1,16 @@
import { FETCH_STATS_ERR, FETCH_STATS_REQ, FETCH_STATS_SUCCESS } from "./statsActionConstants";

// STATS
export const getStatsReq = () => ({
type: FETCH_STATS_REQ,
});
export const getStatsError = (payload) => ({
type: FETCH_STATS_ERR,
payload,
});
export const getStatsSuccess = (payload) => ({
type: FETCH_STATS_SUCCESS,
payload,
});

+ 2
- 0
src/store/reducers/index.js 파일 보기

@@ -18,6 +18,7 @@ import applicantWithProcessesReducer from "./processes/applicantWithProcessesRed
import userDetailsReducer from "./user/userDetailsReducer";
import inviteUserReducer from "./user/inviteUserReducer";
import statusReducer from "./processes/statusReducer";
import statsReducer from "./stats/statsReducer";

export default combineReducers({
login: loginReducer,
@@ -39,4 +40,5 @@ export default combineReducers({
userDetails: userDetailsReducer,
invite: inviteUserReducer,
statuses: statusReducer,
stats: statsReducer,
});

+ 30
- 0
src/store/reducers/stats/statsReducer.js 파일 보기

@@ -0,0 +1,30 @@
import createReducer from "../../utils/createReducer";
import { FETCH_STATS_ERR, FETCH_STATS_SUCCESS } from "../../actions/stats/statsActionConstants";

const initialState = {
stats: {},
fetchStatsErrorMessage: "",
};

export default createReducer(
{
[FETCH_STATS_SUCCESS]: setStateStats,
[FETCH_STATS_ERR]: setStatsErrorMessage,
},
initialState
);

function setStateStats(state, action) {
console.log('called setState')
return {
...state,
stats: action.payload,
};
}

function setStatsErrorMessage(state, action) {
return {
...state,
fetchStatsErrorMessage: action.payload,
};
}

+ 2
- 0
src/store/saga/index.js 파일 보기

@@ -5,6 +5,7 @@ import loginSaga from "./loginSaga";
import technologiesSaga from "./technologiesSaga";
import usersSaga from "./usersSaga";
import processesSaga from "./processSaga";
import statsSaga from "./statsSaga";

export default function* rootSaga() {
yield all([
@@ -14,5 +15,6 @@ export default function* rootSaga() {
technologiesSaga(),
candidatesSaga(),
processesSaga(),
statsSaga()
]);
}

+ 28
- 0
src/store/saga/statsSaga.js 파일 보기

@@ -0,0 +1,28 @@
import { all, call, put, takeEvery } from "redux-saga/effects";
import { JWT_TOKEN } from "../../constants/localStorage";
import { addHeaderToken } from "../../request";
import { getStats } from "../../request/statsRequests";
import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers";
import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper";
import { FETCH_STATS_REQ } from "../actions/stats/statsActionConstants";
import { getStatsError, getStatsSuccess } from "../actions/stats/statsActions";

export function* getAppStats() {
try {
const JwtToken = yield call(authScopeStringGetHelper, JWT_TOKEN);
yield call(addHeaderToken, JwtToken);
const result = yield call(getStats);
console.log(result)
yield put(getStatsSuccess(result.data));
} catch (error) {
if (error.response && error.response.data) {
const errorMessage = yield call(rejectErrorCodeHelper, error);
yield put(getStatsError(errorMessage));
}
}
}
export default function* statsSaga() {
yield all([
takeEvery(FETCH_STATS_REQ, getAppStats),
]);
}

+ 13
- 0
src/util/helpers/stringHelpers.js 파일 보기

@@ -9,3 +9,16 @@ export function separateByUnderscore(string) {
export function joinArrayWithComma(arr) {
return arr.join(', ');
}

export function returni18nLevel(lvl) {
switch (lvl) {
case "HR intervju":
return "HR";
case "Screening test":
return "ST";
case "Tehnicki intervju":
return "TI";
case "Konacna odluka":
return "FD";
}
}

+ 51
- 61
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"
@@ -1313,7 +1313,7 @@
"resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz"
"version" "0.8.0"

"@emotion/react@^11.0.0-rc.0", "@emotion/react@^11.1.1", "@emotion/react@^11.4.1", "@emotion/react@^11.5.0":
"@emotion/react@^11.1.1", "@emotion/react@^11.5.0":
"integrity" "sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA=="
"resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.10.4.tgz"
"version" "11.10.4"
@@ -1649,7 +1649,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"
@@ -1686,7 +1686,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"
@@ -1992,7 +1992,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"
@@ -2233,7 +2233,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"
@@ -2301,7 +2301,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"
@@ -2325,7 +2325,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"
@@ -2362,7 +2362,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"
@@ -2618,16 +2618,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"
@@ -2671,7 +2671,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"
@@ -2994,7 +2994,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"
@@ -3425,7 +3425,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"
@@ -5221,7 +5221,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"
@@ -5242,7 +5242,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"
@@ -5273,12 +5273,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"
@@ -5303,7 +5303,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"
@@ -5379,7 +5379,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"
@@ -5726,7 +5726,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"
@@ -6524,7 +6524,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"
@@ -7469,20 +7469,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"
@@ -7497,6 +7483,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"
@@ -7653,7 +7653,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"
@@ -7667,11 +7667,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"
@@ -10072,7 +10067,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"
@@ -10367,7 +10362,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"
@@ -10452,7 +10447,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"
@@ -10464,7 +10459,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"
@@ -10614,7 +10609,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.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"
@@ -10827,7 +10822,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"
@@ -11177,7 +11172,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"
@@ -11272,7 +11267,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"
@@ -11641,7 +11636,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"
@@ -12556,11 +12551,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-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA=="
"resolved" "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz"
"version" "4.9.3"

"unbox-primitive@^1.0.2":
"integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
"resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
@@ -12925,7 +12915,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"
@@ -12990,7 +12980,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"

Loading…
취소
저장