Просмотр исходного кода

implemented invitation sending

pull/46/head
meris.ahmatovic 3 лет назад
Родитель
Сommit
7a7c83b2eb

+ 86
- 73
package-lock.json Просмотреть файл

"version": "8.19.0", "version": "8.19.0",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz",
"integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==",
"dev": true,
"dependencies": { "dependencies": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/runtime": "^7.12.5", "@babel/runtime": "^7.12.5",
"version": "7.14.0", "version": "7.14.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz",
"integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==",
"dev": true,
"dependencies": { "dependencies": {
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
} }
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": { "dependencies": {
"color-convert": "^2.0.1" "color-convert": "^2.0.1"
}, },
"version": "5.1.1", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz",
"integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==", "integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==",
"dev": true,
"dependencies": { "dependencies": {
"deep-equal": "^2.0.5" "deep-equal": "^2.0.5"
} }
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"dev": true,
"dependencies": { "dependencies": {
"ansi-styles": "^4.1.0", "ansi-styles": "^4.1.0",
"supports-color": "^7.1.0" "supports-color": "^7.1.0"
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": { "dependencies": {
"color-name": "~1.1.4" "color-name": "~1.1.4"
}, },
"node_modules/@testing-library/dom/node_modules/color-name": { "node_modules/@testing-library/dom/node_modules/color-name": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "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": { "node_modules/@testing-library/dom/node_modules/deep-equal": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz",
"integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==",
"dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.0", "call-bind": "^1.0.0",
"es-get-iterator": "^1.1.1", "es-get-iterator": "^1.1.1",
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "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,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
"node_modules/@testing-library/dom/node_modules/isarray": { "node_modules/@testing-library/dom/node_modules/isarray": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "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": { "node_modules/@testing-library/dom/node_modules/pretty-format": {
"version": "27.5.1", "version": "27.5.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
"integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"dev": true,
"dependencies": { "dependencies": {
"ansi-regex": "^5.0.1", "ansi-regex": "^5.0.1",
"ansi-styles": "^5.0.0", "ansi-styles": "^5.0.0",
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "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,
"engines": { "engines": {
"node": ">=10" "node": ">=10"
}, },
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": { "dependencies": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
}, },
"node_modules/@types/aria-query": { "node_modules/@types/aria-query": {
"version": "4.2.1", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", "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": { "node_modules/@types/babel__core": {
"version": "7.1.14", "version": "7.1.14",
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "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,
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
}, },
"node_modules/dom-accessibility-api": { "node_modules/dom-accessibility-api": {
"version": "0.5.14", "version": "0.5.14",
"resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", "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": { "node_modules/dom-converter": {
"version": "0.2.0", "version": "0.2.0",
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
"integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
"dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"get-intrinsic": "^1.1.0", "get-intrinsic": "^1.1.0",
"node_modules/es-get-iterator/node_modules/isarray": { "node_modules/es-get-iterator/node_modules/isarray": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "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": { "node_modules/es-to-primitive": {
"version": "1.2.1", "version": "1.2.1",
"version": "0.3.3", "version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dev": true,
"dependencies": { "dependencies": {
"is-callable": "^1.1.3" "is-callable": "^1.1.3"
} }
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", "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,
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", "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,
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
"version": "1.1.9", "version": "1.1.9",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
"integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
"dev": true,
"dependencies": { "dependencies": {
"available-typed-arrays": "^1.0.5", "available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", "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,
"funding": { "funding": {
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
"integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
"dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1" "get-intrinsic": "^1.1.1"
"resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
"integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" "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": { "node_modules/js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"version": "1.4.4", "version": "1.4.4",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
"integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=",
"dev": true,
"bin": { "bin": {
"lz-string": "bin/bin.js" "lz-string": "bin/bin.js"
} }
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", "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,
"bin": { "bin": {
"prettier": "bin-prettier.js" "prettier": "bin-prettier.js"
}, },
"is-typedarray": "^1.0.0" "is-typedarray": "^1.0.0"
} }
}, },
"node_modules/typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
},
"node_modules/typescript-compare": { "node_modules/typescript-compare": {
"version": "0.0.2", "version": "0.0.2",
"resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz",
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
"integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
"dev": true,
"dependencies": { "dependencies": {
"is-map": "^2.0.1", "is-map": "^2.0.1",
"is-set": "^2.0.1", "is-set": "^2.0.1",
"version": "1.1.8", "version": "1.1.8",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
"integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
"dev": true,
"dependencies": { "dependencies": {
"available-typed-arrays": "^1.0.5", "available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"@emotion/use-insertion-effect-with-fallbacks": { "@emotion/use-insertion-effect-with-fallbacks": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", "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": { "@emotion/utils": {
"version": "1.2.0", "version": "1.2.0",
"@mui/types": { "@mui/types": {
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", "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": { "@mui/utils": {
"version": "5.10.9", "version": "5.10.9",
"version": "8.19.0", "version": "8.19.0",
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz",
"integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==",
"dev": true,
"requires": { "requires": {
"@babel/code-frame": "^7.10.4", "@babel/code-frame": "^7.10.4",
"@babel/runtime": "^7.12.5", "@babel/runtime": "^7.12.5",
"version": "7.14.0", "version": "7.14.0",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz",
"integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==",
"dev": true,
"requires": { "requires": {
"regenerator-runtime": "^0.13.4" "regenerator-runtime": "^0.13.4"
} }
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": { "requires": {
"color-convert": "^2.0.1" "color-convert": "^2.0.1"
} }
"version": "5.1.1", "version": "5.1.1",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz",
"integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==", "integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==",
"dev": true,
"requires": { "requires": {
"deep-equal": "^2.0.5" "deep-equal": "^2.0.5"
} }
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
"integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
"dev": true,
"requires": { "requires": {
"ansi-styles": "^4.1.0", "ansi-styles": "^4.1.0",
"supports-color": "^7.1.0" "supports-color": "^7.1.0"
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": { "requires": {
"color-name": "~1.1.4" "color-name": "~1.1.4"
} }
"color-name": { "color-name": {
"version": "1.1.4", "version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "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": { "deep-equal": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz",
"integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==",
"dev": true,
"requires": { "requires": {
"call-bind": "^1.0.0", "call-bind": "^1.0.0",
"es-get-iterator": "^1.1.1", "es-get-iterator": "^1.1.1",
"has-flag": { "has-flag": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "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": { "isarray": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "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": { "pretty-format": {
"version": "27.5.1", "version": "27.5.1",
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
"integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"dev": true,
"requires": { "requires": {
"ansi-regex": "^5.0.1", "ansi-regex": "^5.0.1",
"ansi-styles": "^5.0.0", "ansi-styles": "^5.0.0",
"ansi-styles": { "ansi-styles": {
"version": "5.2.0", "version": "5.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "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
} }
} }
}, },
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": { "requires": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
} }
"@types/aria-query": { "@types/aria-query": {
"version": "4.2.1", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", "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": { "@types/babel__core": {
"version": "7.1.14", "version": "7.1.14",
"acorn-jsx": { "acorn-jsx": {
"version": "5.3.2", "version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"requires": {}
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="
}, },
"acorn-walk": { "acorn-walk": {
"version": "7.2.0", "version": "7.2.0",
"ajv-errors": { "ajv-errors": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "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": { "ajv-keywords": {
"version": "3.5.2", "version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "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": { "alphanum-sort": {
"version": "1.0.2", "version": "1.0.2",
"available-typed-arrays": { "available-typed-arrays": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "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": { "axe-core": {
"version": "4.2.2", "version": "4.2.2",
"babel-plugin-named-asset-import": { "babel-plugin-named-asset-import": {
"version": "0.3.7", "version": "0.3.7",
"resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz", "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": { "babel-plugin-polyfill-corejs2": {
"version": "0.2.2", "version": "0.2.2",
"dom-accessibility-api": { "dom-accessibility-api": {
"version": "0.5.14", "version": "0.5.14",
"resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", "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": { "dom-converter": {
"version": "0.2.0", "version": "0.2.0",
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
"integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
"dev": true,
"requires": { "requires": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"get-intrinsic": "^1.1.0", "get-intrinsic": "^1.1.0",
"isarray": { "isarray": {
"version": "2.0.5", "version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "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
} }
} }
}, },
"version": "8.3.0", "version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
"integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
"dev": true,
"requires": {}
"dev": true
}, },
"eslint-config-react-app": { "eslint-config-react-app": {
"version": "6.0.0", "version": "6.0.0",
"eslint-plugin-react-hooks": { "eslint-plugin-react-hooks": {
"version": "4.2.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", "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": { "eslint-plugin-security": {
"version": "1.4.0", "version": "1.4.0",
"version": "0.3.3", "version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
"integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
"dev": true,
"requires": { "requires": {
"is-callable": "^1.1.3" "is-callable": "^1.1.3"
} }
"is-map": { "is-map": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", "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": { "is-module": {
"version": "1.0.0", "version": "1.0.0",
"is-set": { "is-set": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", "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": { "is-shared-array-buffer": {
"version": "1.0.2", "version": "1.0.2",
"version": "1.1.9", "version": "1.1.9",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
"integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
"dev": true,
"requires": { "requires": {
"available-typed-arrays": "^1.0.5", "available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"is-weakmap": { "is-weakmap": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", "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": { "is-weakref": {
"version": "1.0.2", "version": "1.0.2",
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
"integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
"dev": true,
"requires": { "requires": {
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1" "get-intrinsic": "^1.1.1"
"jest-pnp-resolver": { "jest-pnp-resolver": {
"version": "1.2.2", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "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": { "jest-regex-util": {
"version": "26.0.0", "version": "26.0.0",
"resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
"integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==" "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": { "js-tokens": {
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"lz-string": { "lz-string": {
"version": "1.4.4", "version": "1.4.4",
"resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz",
"integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY="
"integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=",
"dev": true
}, },
"magic-string": { "magic-string": {
"version": "0.25.7", "version": "0.25.7",
"prettier": { "prettier": {
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", "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": { "prettier-linter-helpers": {
"version": "1.0.0", "version": "1.0.0",
"redux-thunk": { "redux-thunk": {
"version": "2.4.1", "version": "2.4.1",
"resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz", "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": { "regenerate": {
"version": "1.4.2", "version": "1.4.2",
"slick-carousel": { "slick-carousel": {
"version": "1.8.1", "version": "1.8.1",
"resolved": "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz", "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": { "snapdragon": {
"version": "0.8.2", "version": "0.8.2",
"is-typedarray": "^1.0.0" "is-typedarray": "^1.0.0"
} }
}, },
"typescript": {
"version": "4.8.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz",
"integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==",
"peer": true
},
"typescript-compare": { "typescript-compare": {
"version": "0.0.2", "version": "0.0.2",
"resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz", "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz",
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
"integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
"dev": true,
"requires": { "requires": {
"is-map": "^2.0.1", "is-map": "^2.0.1",
"is-set": "^2.0.1", "is-set": "^2.0.1",
"version": "1.1.8", "version": "1.1.8",
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
"integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
"dev": true,
"requires": { "requires": {
"available-typed-arrays": "^1.0.5", "available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2", "call-bind": "^1.0.2",
"ws": { "ws": {
"version": "7.4.6", "version": "7.4.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "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": { "xdg-basedir": {
"version": "4.0.0", "version": "4.0.0",

+ 3
- 0
src/assets/styles/_layout.scss Просмотреть файл

} }
.ml-20px { .ml-20px {
margin-left: 30px; margin-left: 30px;
@include media-below($bp-xl) {
margin-left: 15px;
}
} }
.divider{ .divider{
display: flex; display: flex;

+ 4
- 0
src/assets/styles/components/_button.scss Просмотреть файл

cursor: auto; cursor: auto;
} }


&.enabledEdit {
background-color: $mainBlueLight !important;
}

&.c-btn--primary { &.c-btn--primary {
background-color: $mainBlue; background-color: $mainBlue;
color: $white; color: $white;

+ 8
- 0
src/assets/styles/components/_icon-button.scss Просмотреть файл

} }
.td-btn.inactive{ .td-btn.inactive{
background-color: rgba(255,100,100,0.75) !important; background-color: rgba(255,100,100,0.75) !important;
}

.userPageBtn.activeEnable{
background-color: rgba(100,255,100,0.75) !important;
}

.userPageBtn.deactiveEnable{
background-color: rgba(255,100,100,0.75) !important;;
} }

+ 1
- 1
src/assets/styles/components/_usersPage.scss Просмотреть файл

top: 2.5px; top: 2.5px;
color: $mainBlue; color: $mainBlue;
margin-right: 100px; margin-right: 100px;
}
}

+ 123
- 21
src/components/MUI/InviteDialog.js Просмотреть файл

import React from "react"; import React from "react";
import planeVector from "../../assets/images/planeVector.png"; import planeVector from "../../assets/images/planeVector.png";
import * as Yup from "yup";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import { import {
Dialog, Dialog,
useMediaQuery, useMediaQuery,
useTheme, useTheme,
IconButton, IconButton,
TextField,
} from "@mui/material"; } from "@mui/material";
import { useDispatch, useSelector } from "react-redux";
import { useEffect } from "react";
import { inviteUserReq } from "../../store/actions/users/usersActions";
// import { useState } from "react";
import { useTranslation } from "react-i18next";
import { useFormik } from "formik";
// import { set } from "lodash";


const InviteDialog = ({ const InviteDialog = ({
title, title,
content,
// content,
onClose, onClose,
open, open,
maxWidth, maxWidth,
fullWidth, fullWidth,
responsive, responsive,
}) => { }) => {
// const [invite, setInvite] = useState({
// email: "",
// firstName: "",
// lastName: "",
// });

const dispatch = useDispatch();
const { isSuccess } = useSelector((s) => s.invite);
const theme = useTheme(); const theme = useTheme();
const fullScreen = useMediaQuery(theme.breakpoints.down("md")); const fullScreen = useMediaQuery(theme.breakpoints.down("md"));


const { t } = useTranslation();

const handleClose = () => { const handleClose = () => {
onClose(); onClose();
formik.resetForm();
};

const handleSubmit = (values, { resetForm }) => {
const { lastName, firstName, email } = values;
dispatch(
inviteUserReq({
invite: {
lastName,
firstName,
email,
},
handleApiResponseSuccess: resetForm
})
);
}; };


const formik = useFormik({
initialValues: {
firstName: "",
lastName: "",
email: "",
},
validationSchema: Yup.object().shape({
firstName: Yup.string().required(t("login.firstnameRequired")),
lastName: Yup.string().required(t("login.lastnameRequired")),
email: Yup.string().required(t("login.emailRequired")),
}),
onSubmit: handleSubmit,
validateOnBlur: true,
enableReinitialize: true,
});

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

return ( return (
<Dialog <Dialog
maxWidth={maxWidth} maxWidth={maxWidth}
}} }}
> >
<div style={{ padding: "36px" }}> <div style={{ padding: "36px" }}>
<DialogTitle style={{padding: 0}}>{title}</DialogTitle>
{content && <DialogContent style={{padding: '50px 0px'}}>{content}</DialogContent>}
<DialogActions style={{padding: 0}}>
{<IconButton
className={"c-btn--primary c-btn inviteBtn"}
sx={{
width:'100%'
}}
onClick={handleClose}
>
<img
<DialogTitle style={{ padding: 0 }}>{title}</DialogTitle>
<DialogContent style={{ padding: "50px 0px 10px 0px" }}>
<form onSubmit={formik.handleSubmit}>
{/* <label>Primaoc</label> */}
<div
className=""
style={{ style={{
position: "relative",
top: 1.25,
paddingRight: "15px",
display: "flex",
justifyContent: "center",
alignItems: "start",
gap: "15px",
}}
>
<TextField
name="firstName"
label={t("users.receiver")}
margin="normal"
value={formik.values.firstName}
onChange={formik.handleChange}
error={
formik.touched.firstName && Boolean(formik.errors.firstName)
}
helperText={formik.touched.firstName && formik.errors.firstName}
fullWidth
/>
<TextField
name="lastName"
label={t("users.receiver")}
margin="normal"
value={formik.values.lastName}
onChange={formik.handleChange}
error={
formik.touched.lastName && Boolean(formik.errors.lastName)
}
helperText={formik.touched.lastName && formik.errors.lastName}
fullWidth
/>
</div>
<TextField
name="email"
label={t("users.receiver")}
margin="normal"
value={formik.values.email}
onChange={formik.handleChange}
error={formik.touched.email && Boolean(formik.errors.email)}
helperText={formik.touched.email && formik.errors.email}
fullWidth
/>
<IconButton
className={"c-btn--primary c-btn inviteBtn"}
sx={{
width: "100%",
marginTop: "15px",
}} }}
src={planeVector}
/>{" "}
Registracioni link
</IconButton>}
</DialogActions>
type="submit"
>
<img
style={{
position: "relative",
top: 1.25,
paddingRight: "15px",
}}
src={planeVector}
/>{" "}
Registracioni link
</IconButton>
</form>
</DialogContent>
<DialogActions style={{ padding: 0 }}></DialogActions>
</div> </div>
</Dialog> </Dialog>
); );
InviteDialog.propTypes = { InviteDialog.propTypes = {
title: PropTypes.any, title: PropTypes.any,
open: PropTypes.bool.isRequired, open: PropTypes.bool.isRequired,
content: PropTypes.any,
// content: PropTypes.any,
onClose: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired,
maxWidth: PropTypes.oneOf(["xs", "sm", "md", "lg", "xl"]), maxWidth: PropTypes.oneOf(["xs", "sm", "md", "lg", "xl"]),
fullWidth: PropTypes.bool, fullWidth: PropTypes.bool,

+ 4
- 3
src/components/MUI/NavbarComponent.js Просмотреть файл

import UserProfile from "../Profile/UserProfile"; import UserProfile from "../Profile/UserProfile";
import { useSelector } from "react-redux"; import { useSelector } from "react-redux";
//import { userSelector } from "../../store/selectors/userSelectors"; //import { userSelector } from "../../store/selectors/userSelectors";
import { Link } from "react-router-dom";
import { Link, useLocation } from "react-router-dom";


const NavbarComponent = () => { const NavbarComponent = () => {
const navItems = [ const navItems = [
"users", "users",
// "signOut" // "signOut"
]; ];
const { pathname } = useLocation();
const [openDrawer, setOpenDrawer] = useState(false); const [openDrawer, setOpenDrawer] = useState(false);
const [preview, setPreview] = useState(false); const [preview, setPreview] = useState(false);
const theme = useTheme(); const theme = useTheme();
padding: "0", padding: "0",
textDecoration: "none", textDecoration: "none",
}} }}
className="text-black"
className={pathname === `/${n}` ? 'text-blue' : 'text-black'}
as={Link} as={Link}
to={`/${n}`} to={`/${n}`}
> >
); );
}; };


export default NavbarComponent;
export default NavbarComponent;

+ 16
- 1
src/i18n/resources/en.js Просмотреть файл

}, },
login: { login: {
welcome: "Welcome!", welcome: "Welcome!",
firstnameRequired: "An first name is required.",
lastnameRequired: "A last name is required.",
emailRequired: "An Email is required.",
dontHaveAccount: "Don't have an account? ", dontHaveAccount: "Don't have an account? ",
emailFormat: "Invalid email address format.", emailFormat: "Invalid email address format.",
emailRequired: "An email or username is required.",
noUsers: "There are no users with that email.", noUsers: "There are no users with that email.",
passwordStrength: "Your password is {{strength}}.", passwordStrength: "Your password is {{strength}}.",
passwordLength: "Your password contain between 8 and 50 characters.", passwordLength: "Your password contain between 8 and 50 characters.",
adDetailsOffer: "What We Offer", adDetailsOffer: "What We Offer",
archiveAdsCandidates: "Registered candidates", archiveAdsCandidates: "Registered candidates",
}, },
users: {
management: "User management",
fullName: "Name and surname",
position: 'Position',
invite: 'Invite',
inviteUser: 'Invite user',
regLink: 'Registration link',
receiver: 'Receiver',
user: 'User',
contact: 'Contact',
phone: 'Phone',
socials: 'Social Media',
},
}; };

+ 17
- 1
src/i18n/resources/rs.js Просмотреть файл

// email: 'Please enter your email address or username to log in:', // email: 'Please enter your email address or username to log in:',
logInTitle: "Prijavi se", logInTitle: "Prijavi se",
logIn: "Prijavi se", logIn: "Prijavi se",
firstnameRequired: "Potrebno je uneti ime.",
lastnameRequired: "Potrebno je uneti prezime.",
emailRequired: "Potrebno je uneti email adresu.",
// signUp: 'Sign Up', // signUp: 'Sign Up',
usernameRequired: "Potrebno je uneti korisničko ime.", usernameRequired: "Potrebno je uneti korisničko ime.",
passwordRequired: "Potrebno je uneti šifru.", passwordRequired: "Potrebno je uneti šifru.",
}, },
selection: { selection: {
title: "Tok Selekcije" title: "Tok Selekcije"
}
},
users:{
management: "Upravljanje korisnicima",
fullName: 'Ime i prezime',
position: 'Pozicija',
invite: 'Pozovi',
inviteUser: 'Pozovi korisnika',
regLink: 'Registracioni link',
receiver: 'Primalac',
user: 'Korisnik',
contact: 'Kontakt',
phone: 'Telefon',
socials: 'Društvene mreže',
}
}; };

+ 35
- 19
src/pages/UsersPage/UserDetails.js Просмотреть файл

import forbiden from "../../assets/images/forbiden.png"; import forbiden from "../../assets/images/forbiden.png";
import IconButton from "../../components/IconButton/IconButton"; import IconButton from "../../components/IconButton/IconButton";
import { Link, useParams } from "react-router-dom"; import { Link, useParams } from "react-router-dom";
import { deleteUserReq } from "../../store/actions/users/usersActions";
import { useDispatch } from "react-redux";
import { deleteUserReq, setEnableUsersReq, userDetailsReq } from "../../store/actions/users/usersActions";
import { useDispatch, useSelector } from "react-redux";
import { USERS_PAGE } from "../../constants/pages"; import { USERS_PAGE } from "../../constants/pages";
import { forgetPassword } from "../../store/actions/login/loginActions"; import { forgetPassword } from "../../store/actions/login/loginActions";
import { useEffect } from "react";
import { useTheme } from "@emotion/react";
import { useMediaQuery } from "@mui/material";


const UserDetails = ({ history }) => { const UserDetails = ({ history }) => {
const theme = useTheme();
const matches = useMediaQuery(theme.breakpoints.down("sm"));
const { id } = useParams(); const { id } = useParams();
const dispatch = useDispatch(); const dispatch = useDispatch();


const { user } = useSelector((s) => s.userDetails);

const handleReset = (email) => { const handleReset = (email) => {
dispatch( dispatch(
forgetPassword({ forgetPassword({
); );
}; };


const enableHandler = () =>{
dispatch(setEnableUsersReq({ id: user.id }));
}

const handleApiResponseSuccessReset = () => { const handleApiResponseSuccessReset = () => {
alert("Ok");
console.log('DONE!')
}; };


const handleApiResponseSuccess = () => { const handleApiResponseSuccess = () => {
dispatch(deleteUserReq({ id, handleApiResponseSuccess })); dispatch(deleteUserReq({ id, handleApiResponseSuccess }));
}; };


useEffect(()=>{
dispatch(userDetailsReq({id}))
},[dispatch])

return ( return (
<div> <div>
<div className="l-t-rectangle"></div> <div className="l-t-rectangle"></div>
}} }}
className="text-blue" className="text-blue"
> >
Stefan Stamenkovic
{user && user.firstName} {user && user.lastName}
</h3> </h3>
</div> </div>
<div className="flex-center"> <div className="flex-center">
className={ className={
"c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding"
} }
onClick={() => handleReset("meris.ahmatovic@dilig.net")}
onClick={() => handleReset(user.email)}
> >
Resetuj password
{!matches && 'Resetuj password'}
<img <img
style={{ style={{
position: "relative", position: "relative",
top: -0.25, top: -0.25,
paddingLeft: "10px",
paddingLeft: !matches && "10px",
}} }}
src={lock} src={lock}
/> />
</IconButton> </IconButton>
<IconButton
{!matches && <IconButton
className={ className={
"c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding"
`c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding ${user?.isEnabled ? 'activeEnable' : 'deactiveEnable'}`
} }
onClick={enableHandler}
> >
Blokiraj
{user?.isEnabled ? 'Blokiraj' : 'Odblokiraj'}
<img <img
style={{ style={{
position: "relative", position: "relative",
}} }}
src={forbiden} src={forbiden}
/> />
</IconButton>
<IconButton
</IconButton>}
{!matches && <IconButton
className={ className={
"c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding"
} }
}} }}
src={filters} src={filters}
/> />
</IconButton>
</IconButton>}
<IconButton <IconButton
className={ className={
"c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding"
} }
> >
Uredi profil
{!matches && "Uredi profil"}
<img <img
style={{ style={{
position: "relative", position: "relative",
top: -0.25, top: -0.25,
paddingLeft: "10px",
paddingLeft: !matches && "10px",
}} }}
src={filters} src={filters}
/> />
width="108px" width="108px"
style={{ margin: "18px 15px 36px 0px" }} style={{ margin: "18px 15px 36px 0px" }}
/> />
<p>HR Specialist</p>
<p>{user?.position ? user.position : "Position has not been declared yet."}</p>
</div> </div>
<div style={{ display: "flex", flexDirection: "column", gap: "18px" }}> <div style={{ display: "flex", flexDirection: "column", gap: "18px" }}>
<p style={{ fontWeight: "600" }}>Kontakt</p> <p style={{ fontWeight: "600" }}>Kontakt</p>
<div className="flex-center" style={{ justifyContent: "flex-start" }}> <div className="flex-center" style={{ justifyContent: "flex-start" }}>
<p style={{ width: "85px" }}>Email:</p> <p style={{ width: "85px" }}>Email:</p>
<p className="text-blue">stameni@dilig.net</p>
<p className="text-blue">{user && user.email}</p>
</div> </div>
<div className="flex-center" style={{ justifyContent: "flex-start" }}> <div className="flex-center" style={{ justifyContent: "flex-start" }}>
<p style={{ width: "85px" }}>Telefon:</p> <p style={{ width: "85px" }}>Telefon:</p>
<p className="text-blue">0628264606</p>
<p className="text-blue">{user?.phoneNumber ? user.phoneNumber : "User has no phone number saved."}</p>
</div> </div>
</div> </div>
<div <div
<p style={{ fontWeight: "600" }}>Drustvene mreze</p> <p style={{ fontWeight: "600" }}>Drustvene mreze</p>
<div className="flex-center" style={{ justifyContent: "flex-start" }}> <div className="flex-center" style={{ justifyContent: "flex-start" }}>
<p style={{ width: "85px" }}>LinkedIn:</p> <p style={{ width: "85px" }}>LinkedIn:</p>
<p className="text-blue">https://www.linkedin.com/in/stamenis/</p>
<p className="text-blue">{user?.socialMedias ? user.socialMedias : "User takes not part in any social media."}</p>
</div> </div>
</div> </div>
<div <div

+ 82
- 85
src/pages/UsersPage/UsersPage.js Просмотреть файл

setUsersReq, setUsersReq,
} from "../../store/actions/users/usersActions"; } from "../../store/actions/users/usersActions";
import { useTheme } from "@mui/system"; import { useTheme } from "@mui/system";
import { TextField, useMediaQuery } from "@mui/material";
import { useMediaQuery } from "@mui/material";
// import DialogComponent from "../../components/MUI/DialogComponent"; // import DialogComponent from "../../components/MUI/DialogComponent";
import InviteDialog from "../../components/MUI/InviteDialog"; import InviteDialog from "../../components/MUI/InviteDialog";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import { forgetPassword } from "../../store/actions/login/loginActions"; import { forgetPassword } from "../../store/actions/login/loginActions";
import { useTranslation } from "react-i18next";


const UsersPage = () => { const UsersPage = () => {
const theme = useTheme(); const theme = useTheme();
const { users } = useSelector((s) => s.users); const { users } = useSelector((s) => s.users);


const [showInvite, setShowInvite] = useState(false); const [showInvite, setShowInvite] = useState(false);
const [editEnable, setEdit] = useState(false);

const { t } = useTranslation();


useEffect(() => { useEffect(() => {
dispatch(setUsersReq()); dispatch(setUsersReq());
dispatch(setEnableUsersReq({ id })); dispatch(setEnableUsersReq({ id }));
}; };


const handleReset = (email) => {
dispatch(
forgetPassword({
email,
handleApiResponseSuccessReset,
})
);
};
const handleReset = (email) => {
dispatch(
forgetPassword({
email,
handleApiResponseSuccessReset,
})
);
};


const handleApiResponseSuccessReset = () => { const handleApiResponseSuccessReset = () => {
alert("Ok");
console.log("DONE!");
}; };


return ( return (
}} }}
src={addUser} src={addUser}
/> />
<h5>Invite korisnika</h5>
<h5>{t("users.inviteUser")}</h5>
<div className="vr"></div> <div className="vr"></div>
<p className="dialog-subtitle">Registracioni link</p>
<p className="dialog-subtitle">{t("users.regLink")}</p>
</div> </div>
<IconButton onClick={() => setShowInvite(false)}> <IconButton onClick={() => setShowInvite(false)}>
<img <img
</IconButton> </IconButton>
</div> </div>
} }
content={
<form>
{/* <label>Primaoc</label> */}
<TextField
name="username"
label={"Primaoc"}
margin="normal"
// value={formik.values.username}
// onChange={formik.handleChange}
// error={formik.touched.username && Boolean(formik.errors.username)}
// helperText={formik.touched.username && formik.errors.username}
// autoFocus
fullWidth
/>
</form>
}
/> />
<div> <div>
<div <div
className="pl-144 flex-center" className="pl-144 flex-center"
style={{ paddingTop: "36px", justifyContent: "space-between" }} style={{ paddingTop: "36px", justifyContent: "space-between" }}
> >
<h1 className="page-heading">Upravljanje korisnicima</h1>
<h1 className="page-heading">{t("users.management")}</h1>
<div className="flex-center"> <div className="flex-center">
{/* <button></button> */} {/* <button></button> */}
{!matches && (
<IconButton
className={"c-btn--primary-outlined c-btn userPageBtn"}
>
Režim uređivanja
<img
style={{
position: "relative",
top: -0.25,
paddingLeft: "10px",
}}
src={userPageBtnIcon}
/>
</IconButton>
)}
<IconButton
className={`${
editEnable && "enabledEdit"
} c-btn--primary-outlined c-btn userPageBtn`}
onClick={() => {
setEdit((s) => !s);
}}
>
{!matches && "Režim uređivanja"}
<img
style={{
position: "relative",
top: -0.25,
paddingLeft: matches ? "0px" : "10px",
}}
src={userPageBtnIcon}
/>
</IconButton>
<IconButton <IconButton
className={ className={
"c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding" "c-btn--primary-outlined c-btn userPageBtn ml-20px no-padding"
<table className="usersTable" style={{ width: "893.56px" }}> <table className="usersTable" style={{ width: "893.56px" }}>
<thead> <thead>
<tr className="headingRow"> <tr className="headingRow">
<th>Ime i prezime</th>
<th>{t("users.fullName")}</th>
<th>E-mail</th> <th>E-mail</th>
<th>Pozicija</th>
<th>{t("users.position")}</th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
<td>HR Specialist</td> <td>HR Specialist</td>
{/* <td className="cvLink">CV_Ermin.pdf</td> */} {/* <td className="cvLink">CV_Ermin.pdf</td> */}
<td> <td>
<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>
{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> </td>
</tr> </tr>
))} ))}
</tbody> </tbody>
</table> </table>
</div> </div>
<div style={{ display: "flex", justifyContent: "flex-end" }}>
<div style={{ display: "flex", justifyContent: "flex-end", marginBottom:'35px' }}>
<IconButton <IconButton
className={"c-btn--primary c-btn inviteBtn"} className={"c-btn--primary c-btn inviteBtn"}
onClick={() => { onClick={() => {
setShowInvite(true); setShowInvite(true);
}} }}
// style={{
// // marginBottom:'20px !important'
// }}
> >
<img <img
style={{ style={{
}} }}
src={planeVector} src={planeVector}
/>{" "} />{" "}
INVITE
{t("users.invite")}
</IconButton> </IconButton>
</div> </div>
</div> </div>

+ 1
- 0
src/request/apiEndpoints.js Просмотреть файл

allUsers:'http://localhost:26081/v1/users', allUsers:'http://localhost:26081/v1/users',
user:'http://localhost:26081/v1/users/{id}', user:'http://localhost:26081/v1/users/{id}',
toggleEnabled:'http://localhost:26081/v1/users/toggleEnable/{id}', toggleEnabled:'http://localhost:26081/v1/users/toggleEnable/{id}',
invite:'http://localhost:26081/v1/users/invite',
}, },
candidates: { candidates: {
allCandidates: base + "/applicants", allCandidates: base + "/applicants",

+ 8
- 0
src/request/usersRequest.js Просмотреть файл

import apiEndpoints from "./apiEndpoints"; import apiEndpoints from "./apiEndpoints";


export const getAllUsers = () => getRequest(apiEndpoints.users.allUsers); export const getAllUsers = () => getRequest(apiEndpoints.users.allUsers);
export const inviteUserRequest = (payload) => postRequest(apiEndpoints.users.invite, payload)


export const enableUserRequest = (id) => export const enableUserRequest = (id) =>
postRequest( postRequest(
id, id,
}) })
); );

export const userDetailsRequest = (id) =>
getRequest(
replaceInUrl(apiEndpoints.users.user, {
id,
})
);

+ 10
- 1
src/store/actions/users/usersActionConstants.js Просмотреть файл



export const DELETE_USER_REQ = 'DELETE_USER_REQ'; export const DELETE_USER_REQ = 'DELETE_USER_REQ';
export const DELETE_USER_ERR = 'DELETE_USER_ERR'; export const DELETE_USER_ERR = 'DELETE_USER_ERR';
export const DELETE_USER_SUCCESS = 'DELETE_USER_SUCCESS';
export const DELETE_USER_SUCCESS = 'DELETE_USER_SUCCESS';

export const USER_DETAILS_REQ = 'USER_DETAILS_REQ';
export const USER_DETAILS_ERR = 'USER_DETAILS_ERR';
export const USER_DETAILS_SUCCESS = 'USER_DETAILS_SUCCESS';
export const USER_DETAILS_TOGGLE = 'USER_DETAILS_TOGGLE';

export const USER_INVITE_REQ = 'USER_INVITE_REQ';
export const USER_INVITE_ERR = 'USER_INVITE_ERR';
export const USER_INVITE_SUCCESS = 'USER_INVITE_SUCCESS';

+ 45
- 0
src/store/actions/users/usersActions.js Просмотреть файл

TOGGLE_USER_ENABLE_ERR, TOGGLE_USER_ENABLE_ERR,
TOGGLE_USER_ENABLE_REQ, TOGGLE_USER_ENABLE_REQ,
TOGGLE_USER_ENABLE_SUCCESS, TOGGLE_USER_ENABLE_SUCCESS,
USER_DETAILS_ERR,
USER_DETAILS_REQ,
USER_DETAILS_SUCCESS,
USER_DETAILS_TOGGLE,
USER_INVITE_ERR,
USER_INVITE_REQ,
USER_INVITE_SUCCESS,
} from "./usersActionConstants"; } from "./usersActionConstants";


// USER LIST
export const setUsersReq = () => ({ export const setUsersReq = () => ({
type: FETCH_USERS_REQ, type: FETCH_USERS_REQ,
}); });
payload, payload,
}); });


// TOGGLE ENABLE TO LOGIN
export const setEnableUsersReq = (payload) => ({ export const setEnableUsersReq = (payload) => ({
type: TOGGLE_USER_ENABLE_REQ, type: TOGGLE_USER_ENABLE_REQ,
payload, payload,
payload, payload,
}); });


// DELETE USER
export const deleteUserReq = (payload) => ({ export const deleteUserReq = (payload) => ({
type: DELETE_USER_REQ, type: DELETE_USER_REQ,
payload, payload,
type: DELETE_USER_SUCCESS, type: DELETE_USER_SUCCESS,
payload, payload,
}); });

// SINGLE USER DETAILS
export const userDetailsReq = (payload) => ({
type: USER_DETAILS_REQ,
payload,
});

export const userDetailsError = (payload) => ({
type: USER_DETAILS_ERR,
payload,
});

export const stateUserDetailsSuccess = (payload) => ({
type: USER_DETAILS_SUCCESS,
payload,
});

export const toggleSingleUser = () => ({
type: USER_DETAILS_TOGGLE,
});

// INVITE USER
export const inviteUserReq = (payload) => ({
type: USER_INVITE_REQ,
payload,
});

export const inviteUserError = (payload) => ({
type: USER_INVITE_ERR,
payload,
});

export const inviteUserSuccess = () => ({
type: USER_INVITE_SUCCESS
});

+ 7
- 2
src/store/reducers/index.js Просмотреть файл

import processesReducer from './processes/processesReducer'; import processesReducer from './processes/processesReducer';
import processReducer from "./processes/processReducer"; import processReducer from "./processes/processReducer";
import applicantWithProcessesReducer from "./processes/applicantWithProcessesReducer"; import applicantWithProcessesReducer from "./processes/applicantWithProcessesReducer";

import userDetailsReducer from './user/userDetailsReducer';
import inviteUserReducer from './user/inviteUserReducer';


export default combineReducers({ export default combineReducers({
login: loginReducer, login: loginReducer,
candidates: candidatesReducer, candidates: candidatesReducer,
processes: processesReducer, processes: processesReducer,
process: processReducer, process: processReducer,
applicant: applicantWithProcessesReducer
applicant: applicantWithProcessesReducer,
userDetails: userDetailsReducer,
invite: inviteUserReducer

}); });

+ 33
- 0
src/store/reducers/user/inviteUserReducer.js Просмотреть файл

import createReducer from "../../utils/createReducer";
import {
USER_INVITE_ERR,
USER_INVITE_SUCCESS,
} from "../../actions/users/usersActionConstants";
// import { setUsersError } from "../../actions/users/usersActions";

const initialState = {
isSuccess: false,
errorMessage: "",
};

export default createReducer(
{
[USER_INVITE_SUCCESS]: inviteSucceded,
[USER_INVITE_ERR]: inviteFailed,
},
initialState
);

function inviteSucceded(state) {
return {
...state,
isSuccess: !state.isSuccess,
};
}

function inviteFailed(state, action) {
return {
...state,
errorMessage: action.payload,
};
}

+ 47
- 0
src/store/reducers/user/userDetailsReducer.js Просмотреть файл

import createReducer from "../../utils/createReducer";
import {
USER_DETAILS_ERR,
USER_DETAILS_SUCCESS,
USER_DETAILS_TOGGLE,
} from "../../actions/users/usersActionConstants";
// import { setUsersError } from "../../actions/users/usersActions";

const initialState = {
user: {},
errorMessage: "",
};

export default createReducer(
{
[USER_DETAILS_SUCCESS]: setStateUserDetails,
[USER_DETAILS_ERR]: setUserDetailsErrorMessage,
[USER_DETAILS_TOGGLE]: toggleUserDetails,
},
initialState
);

function setStateUserDetails(state, action) {
return {
...state,
user: action.payload,
};
}

function setUserDetailsErrorMessage(state, action) {
return {
...state,
errorMessage: action.payload,
};
}

function toggleUserDetails(state) {
console.log('ovde')
return state.user
? {
...state,
user: { ...state.user, isEnabled: !state.user.isEnabled },
}
: {
...state,
};
}

+ 1
- 0
src/store/reducers/user/usersReducer.js Просмотреть файл



const initialState = { const initialState = {
users: [], users: [],
selected: {},
fetchUsersErrorMessage: "", fetchUsersErrorMessage: "",
toggleEnableErrorMessage: "" toggleEnableErrorMessage: ""
}; };

+ 44
- 0
src/store/saga/usersSaga.js Просмотреть файл

deleteUserRequest, deleteUserRequest,
enableUserRequest, enableUserRequest,
getAllUsers, getAllUsers,
inviteUserRequest,
userDetailsRequest,
} from "../../request/usersRequest"; } from "../../request/usersRequest";
import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers"; import { authScopeStringGetHelper } from "../../util/helpers/authScopeHelpers";
import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper"; import { rejectErrorCodeHelper } from "../../util/helpers/rejectErrorCodeHelper";
DELETE_USER_REQ, DELETE_USER_REQ,
FETCH_USERS_REQ, FETCH_USERS_REQ,
TOGGLE_USER_ENABLE_REQ, TOGGLE_USER_ENABLE_REQ,
USER_DETAILS_REQ,
USER_INVITE_REQ,
} from "../actions/users/usersActionConstants"; } from "../actions/users/usersActionConstants";
import { import {
deleteStateUser, deleteStateUser,
deleteUserError, deleteUserError,
inviteUserError,
inviteUserSuccess,
setEnableUsers, setEnableUsers,
setEnableUsersError, setEnableUsersError,
setUsers, setUsers,
setUsersError, setUsersError,
stateUserDetailsSuccess,
toggleSingleUser,
userDetailsError,
} from "../actions/users/usersActions"; } from "../actions/users/usersActions";


export function* getUsers() { export function* getUsers() {
try { try {
const result = yield call(enableUserRequest, payload.id); const result = yield call(enableUserRequest, payload.id);
yield put(setEnableUsers(result.data)); yield put(setEnableUsers(result.data));
yield put(toggleSingleUser());
} catch (error) { } catch (error) {
if (error.response && error.response.data) { if (error.response && error.response.data) {
const errorMessage = yield call(rejectErrorCodeHelper, error); const errorMessage = yield call(rejectErrorCodeHelper, error);
} }
} }


export function* userDetails({ payload }) {
try {
const result = yield call(userDetailsRequest, payload.id);
// console.log(result)
yield put(stateUserDetailsSuccess(result.data));
if(payload.handleApiResponseSuccess){
yield call(payload.handleApiResponseSuccess)
}
} catch (error) {
if (error.response && error.response.data) {
const errorMessage = yield call(rejectErrorCodeHelper, error);
yield put(userDetailsError(errorMessage));
}
}
}

export function* invite({ payload }) {
try {
const result = yield call(inviteUserRequest, payload.invite);
console.log(result)
yield put(inviteUserSuccess());
if(payload.handleApiResponseSuccess){
yield call(payload.handleApiResponseSuccess)
}
} catch (error) {
if (error.response && error.response.data) {
const errorMessage = yield call(rejectErrorCodeHelper, error);
yield put(inviteUserError(errorMessage));
}
}
}

export default function* usersSaga() { export default function* usersSaga() {
yield all([ yield all([
takeEvery(FETCH_USERS_REQ, getUsers), takeEvery(FETCH_USERS_REQ, getUsers),
takeEvery(TOGGLE_USER_ENABLE_REQ, enableUser), takeEvery(TOGGLE_USER_ENABLE_REQ, enableUser),
takeEvery(DELETE_USER_REQ, deleteUser), takeEvery(DELETE_USER_REQ, deleteUser),
takeEvery(USER_DETAILS_REQ, userDetails),
takeEvery(USER_INVITE_REQ, invite),
]); ]);
} }

+ 51
- 61
yarn.lock Просмотреть файл

"resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz" "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz"
"version" "7.14.4" "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==" "integrity" "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg=="
"resolved" "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz" "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz"
"version" "7.14.3" "version" "7.14.3"
"resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz" "resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz"
"version" "0.8.0" "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==" "integrity" "sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA=="
"resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.10.4.tgz" "resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.10.4.tgz"
"version" "11.10.4" "version" "11.10.4"
dependencies: dependencies:
"@babel/runtime" "^7.19.0" "@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==" "integrity" "sha512-ioLvqY7VvcePz9dnEIRhpiVvtJmAFmvG6rtLXXzVdMmAVbSaelr5Io07mPz/mCyqE+Uv8/4EuJV276DWO7etzA=="
"resolved" "https://registry.npmjs.org/@mui/material/-/material-5.10.10.tgz" "resolved" "https://registry.npmjs.org/@mui/material/-/material-5.10.10.tgz"
"version" "5.10.10" "version" "5.10.10"
"csstype" "^3.1.1" "csstype" "^3.1.1"
"prop-types" "^15.8.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==" "integrity" "sha512-TXwtKN0adKpBrZmO+eilQWoPf2veh050HLYrN78Kps9OhlvO70v/2Kya0+mORFhu9yhpAwjHXO8JII/R4a5ZLA=="
"resolved" "https://registry.npmjs.org/@mui/system/-/system-5.10.10.tgz" "resolved" "https://registry.npmjs.org/@mui/system/-/system-5.10.10.tgz"
"version" "5.10.10" "version" "5.10.10"
dependencies: dependencies:
"defer-to-connect" "^1.0.1" "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==" "integrity" "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A=="
"resolved" "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz" "resolved" "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz"
"version" "8.19.0" "version" "8.19.0"
dependencies: dependencies:
"@types/react" "*" "@types/react" "*"


"@types/react@*", "@types/react@^17.0.0 || ^18.0.0":
"@types/react@*":
"integrity" "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==" "integrity" "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA=="
"resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz" "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz"
"version" "18.0.21" "version" "18.0.21"
"@types/source-list-map" "*" "@types/source-list-map" "*"
"source-map" "^0.7.3" "source-map" "^0.7.3"


"@types/webpack@^4.41.8", "@types/webpack@4.x":
"@types/webpack@^4.41.8":
"integrity" "sha512-6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q==" "integrity" "sha512-6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q=="
"resolved" "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.29.tgz" "resolved" "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.29.tgz"
"version" "4.41.29" "version" "4.41.29"
dependencies: dependencies:
"@types/yargs-parser" "*" "@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==" "integrity" "sha512-yA7IWp+5Qqf+TLbd8b35ySFOFzUfL7i+4If50EqvjT6w35X8Lv0eBHb6rATeWmucks37w+zV+tWnOXI9JlG6Eg=="
"resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.0.tgz" "resolved" "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.26.0.tgz"
"version" "4.26.0" "version" "4.26.0"
"eslint-scope" "^5.1.1" "eslint-scope" "^5.1.1"
"eslint-utils" "^3.0.0" "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==" "integrity" "sha512-b4jekVJG9FfmjUfmM4VoOItQhPlnt6MPOBUL0AQbiTmm+SSpSdhHYlwayOm4IW9KLI/4/cRKtQCmDl1oE2OlPg=="
"resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.0.tgz" "resolved" "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.26.0.tgz"
"version" "4.26.0" "version" "4.26.0"
"resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
"version" "7.2.0" "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": "acorn@^6.4.1":
"integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" "integrity" "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ=="
"resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz" "resolved" "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz"
"version" "6.4.2" "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": "acorn@^8.2.4":
"integrity" "sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==" "integrity" "sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw=="
"resolved" "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz" "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz"
"resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz"
"version" "3.5.2" "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==" "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="
"resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
"version" "6.12.6" "version" "6.12.6"
"resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz"
"version" "2.2.0" "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==" "integrity" "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg=="
"resolved" "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz" "resolved" "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz"
"version" "10.1.0" "version" "10.1.0"
dependencies: dependencies:
"pako" "~1.0.5" "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==" "integrity" "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ=="
"resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz" "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz"
"version" "4.16.6" "version" "4.16.6"
"lodash" "^4.17.15" "lodash" "^4.17.15"
"string-natural-compare" "^3.0.1" "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==" "integrity" "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ=="
"resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz" "resolved" "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz"
"version" "2.23.4" "version" "2.23.4"
"resolve" "^1.20.0" "resolve" "^1.20.0"
"tsconfig-paths" "^3.9.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==" "integrity" "sha512-WOVH4TIaBLIeCX576rLcOgjNXqP+jNlCiEmRgFTfQtJ52DpwnIQKAVGlGPAN7CZ33bW6eNfHD6s8ZbEUTQubJg=="
"resolved" "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz" "resolved" "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.6.tgz"
"version" "24.3.6" "version" "24.3.6"
dependencies: dependencies:
"prettier-linter-helpers" "^1.0.0" "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==" "integrity" "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ=="
"resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz" "resolved" "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz"
"version" "4.2.0" "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==" "integrity" "sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q=="
"resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz" "resolved" "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.24.0.tgz"
"version" "7.24.0" "version" "7.24.0"
dependencies: dependencies:
"safe-regex" "^1.1.0" "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==" "integrity" "sha512-WAmOCt7EbF1XM8XfbCKAEzAPnShkNSwcIsAD2jHdsMUT9mZJPjLCG7pMzbcC8kK366NOuGip8HKLDC+Xk4yIdA=="
"resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz" "resolved" "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.2.tgz"
"version" "3.10.2" "version" "3.10.2"
"normalize-path" "^3.0.0" "normalize-path" "^3.0.0"
"schema-utils" "^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==" "integrity" "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA=="
"resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" "resolved" "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz"
"version" "7.32.0" "version" "7.32.0"
dependencies: dependencies:
"flat-cache" "^3.0.4" "flat-cache" "^3.0.4"


"file-loader@*", "file-loader@6.1.1":
"file-loader@6.1.1":
"integrity" "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==" "integrity" "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw=="
"resolved" "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz" "resolved" "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz"
"version" "6.1.1" "version" "6.1.1"
"resolved" "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"
"version" "1.1.1" "version" "1.1.1"


"i18next@^20.3.1", "i18next@>= 19.0.0":
"i18next@^20.3.1":
"integrity" "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==" "integrity" "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A=="
"resolved" "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz" "resolved" "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz"
"version" "20.6.1" "version" "20.6.1"
"jest-regex-util" "^26.0.0" "jest-regex-util" "^26.0.0"
"jest-snapshot" "^26.6.2" "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": "jest-resolve@^26.6.2":
"integrity" "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==" "integrity" "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ=="
"resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz" "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz"
"resolve" "^1.18.1" "resolve" "^1.18.1"
"slash" "^3.0.0" "slash" "^3.0.0"


"jest-resolve@26.6.0":
"integrity" "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ=="
"resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz"
"version" "26.6.0"
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": "jest-runner@^26.6.0", "jest-runner@^26.6.3":
"integrity" "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==" "integrity" "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ=="
"resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz" "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz"
"merge-stream" "^2.0.0" "merge-stream" "^2.0.0"
"supports-color" "^7.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==" "integrity" "sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA=="
"resolved" "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz" "resolved" "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz"
"version" "26.6.0" "version" "26.6.0"
"resolved" "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz" "resolved" "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz"
"version" "1.4.0" "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": "js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0":
"integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
"resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
dependencies: dependencies:
"fast-diff" "^1.1.2" "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==" "integrity" "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA=="
"resolved" "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz" "resolved" "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz"
"version" "2.3.1" "version" "2.3.1"
"strip-ansi" "6.0.0" "strip-ansi" "6.0.0"
"text-table" "0.2.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==" "integrity" "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA=="
"resolved" "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz"
"version" "17.0.2" "version" "17.0.2"
"prop-types" "^15.5.8" "prop-types" "^15.5.8"
"substyle" "^9.1.0" "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==" "integrity" "sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ=="
"resolved" "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz" "resolved" "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz"
"version" "7.2.9" "version" "7.2.9"
"prop-types" "^15.7.2" "prop-types" "^15.7.2"
"react-is" "^17.0.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==" "integrity" "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg=="
"resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz" "resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz"
"version" "0.8.3" "version" "0.8.3"
"loose-envify" "^1.4.0" "loose-envify" "^1.4.0"
"prop-types" "^15.6.2" "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 || ^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==" "integrity" "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA=="
"resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz" "resolved" "https://registry.npmjs.org/react/-/react-17.0.2.tgz"
"version" "17.0.2" "version" "17.0.2"
"resolved" "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz" "resolved" "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.1.tgz"
"version" "2.4.1" "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==" "integrity" "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA=="
"resolved" "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz" "resolved" "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz"
"version" "4.2.0" "version" "4.2.0"
dependencies: dependencies:
"estree-walker" "^0.6.1" "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==" "integrity" "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A=="
"resolved" "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz" "resolved" "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz"
"version" "1.32.1" "version" "1.32.1"
"schema-utils" "^3.0.0" "schema-utils" "^3.0.0"
"semver" "^7.3.2" "semver" "^7.3.2"


"sass@^1.3.0", "sass@^1.34.1":
"sass@^1.34.1":
"integrity" "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==" "integrity" "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A=="
"resolved" "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz" "resolved" "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz"
"version" "1.55.0" "version" "1.55.0"
"source-map-resolve" "^0.5.0" "source-map-resolve" "^0.5.0"
"use" "^3.1.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==" "integrity" "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ=="
"resolved" "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz" "resolved" "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz"
"version" "1.5.1" "version" "1.5.1"
dependencies: dependencies:
"typescript-compare" "^0.0.2" "typescript-compare" "^0.0.2"


"typescript@^3.2.1 || ^4", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta":
"integrity" "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ=="
"resolved" "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz"
"version" "4.8.4"

"unbox-primitive@^1.0.2": "unbox-primitive@^1.0.2":
"integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==" "integrity" "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw=="
"resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" "resolved" "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
"range-parser" "^1.2.1" "range-parser" "^1.2.1"
"webpack-log" "^2.0.0" "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==" "integrity" "sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ=="
"resolved" "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz" "resolved" "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz"
"version" "3.11.1" "version" "3.11.1"
"source-list-map" "^2.0.0" "source-list-map" "^2.0.0"
"source-map" "~0.6.1" "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==" "integrity" "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q=="
"resolved" "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz" "resolved" "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz"
"version" "4.44.2" "version" "4.44.2"

Загрузка…
Отмена
Сохранить