Add styling to login page for account

This commit is contained in:
Caleb Okpara 2022-05-19 12:59:34 +00:00
parent 95cff125a9
commit d1687b458d
45 changed files with 51673 additions and 25461 deletions

50580
Accounts/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,57 +1,59 @@
{
"name": "accounts",
"version": "0.1.0",
"private": true,
"dependencies": {
"Common": "file:../Common",
"CommonServer": "file:../CommonServer",
"CommonUI": "file:../CommonUI",
"formik": "^2.2.9",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-router-dom": "^6.3.0",
"react-scripts": "5.0.1",
"typescript": "^4.6.4"
},
"scripts": {
"dev": "webpack-dev-server --port=3003 --mode=development",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject",
"compile": "tsc",
"start": "node index.ts",
"audit": "npm audit --audit-level=low",
"preinstall": "npm link ../CommonUI/node_modules/react && npx npm-force-resolutions || echo 'No package-lock.json file. Skipping force resolutions'",
"dep-check": "depcheck ./ --skip-missing=true'"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.1",
"@types/node": "^16.11.35",
"@types/react": "^18.0.9",
"@types/react-dom": "^18.0.4",
"css-loader": "^6.7.1",
"customize-cra": "^1.0.0",
"react-app-rewired": "^2.2.1",
"sass": "^1.51.0",
"sass-loader": "^12.6.0",
"ts-loader": "^9.3.0",
"webpack": "^5.72.1",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.9.0"
}
"name": "accounts",
"version": "0.1.0",
"private": true,
"dependencies": {
"Common": "file:../Common",
"CommonServer": "file:../CommonServer",
"CommonUI": "file:../CommonUI",
"formik": "^2.2.9",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-router": "^6.3.0",
"react-router-dom": "^6.3.0",
"react-scripts": "5.0.1",
"typescript": "^4.6.4"
},
"scripts": {
"dev": "webpack-dev-server --port=3003 --mode=development",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject",
"compile": "tsc",
"start": "node index.ts",
"audit": "npm audit --audit-level=low",
"preinstall": "npm link ../CommonUI/node_modules/react && npx npm-force-resolutions || echo 'No package-lock.json file. Skipping force resolutions'",
"dep-check": "depcheck ./ --skip-missing=true'"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.1",
"@types/node": "^16.11.35",
"@types/react": "^18.0.9",
"@types/react-dom": "^18.0.4",
"@types/react-router-dom": "^5.3.3",
"css-loader": "^6.7.1",
"customize-cra": "^1.0.0",
"react-app-rewired": "^2.2.1",
"sass": "^1.51.0",
"sass-loader": "^12.6.0",
"ts-loader": "^9.3.0",
"webpack": "^5.72.1",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.9.0"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="279.847" height="279.847" viewBox="0 0 279.85 279.85" enable-background="new 0 0 279.85 279.85" xml:space="preserve">
<rect x="0" y="-6.10352e-005" fill="#32335B" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" width="279.847" height="279.847"/>
<path fill="#FFFFFF" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 210.649,103.501C 208.431,102.573 205.901,102.109 203.059,102.109C 195.085,102.109 191.097,106.408 191.097,115.006L 191.097,124.379L 207.865,124.379L 207.865,136.906L 191.163,136.906L 191.163,193.973L 175.852,193.973L 175.852,136.906L 163.325,136.906L 163.325,124.379L 175.852,124.379L 175.852,113.157C 175.852,105.865 178.277,100.112 183.127,95.9003C 187.977,91.6884 194.041,89.5826 201.319,89.5826C 205.248,89.5826 208.358,89.9958 210.649,90.8222L 210.649,103.501 Z "/>
<rect x="217.608" y="124.379" fill="#FFFFFF" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" width="15.3105" height="69.5934"/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 129.601,97.8179L 144.1,97.8179C 146.309,97.8179 148.1,99.6088 148.1,101.818L 148.1,189.813C 148.1,192.022 146.309,193.813 144.1,193.813L 129.601,193.813C 127.392,193.813 125.601,192.022 125.601,189.813L 125.601,101.818C 125.601,99.6088 127.392,97.8179 129.601,97.8179 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 95.8531,98.5676L 110.352,98.5676C 112.561,98.5676 114.352,100.358 114.352,102.568L 114.352,190.563C 114.352,192.772 112.561,194.563 110.352,194.563L 95.8531,194.563C 93.644,194.563 91.8531,192.772 91.8531,190.563L 91.8531,102.568C 91.8531,100.358 93.644,98.5676 95.8531,98.5676 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 60.355,98.0674L 74.8539,98.0674C 77.063,98.0674 78.8539,99.8582 78.8539,102.067L 78.8539,190.062C 78.8539,192.272 77.063,194.062 74.8539,194.062L 60.355,194.062C 58.1459,194.062 56.355,192.272 56.355,190.062L 56.355,102.067C 56.355,99.8582 58.1459,98.0674 60.355,98.0674 Z "/>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="279.847" height="279.847" viewBox="0 0 279.85 279.85" enable-background="new 0 0 279.85 279.85" xml:space="preserve">
<rect x="0" y="-6.10352e-005" fill="#000000" fill-opacity="1" stroke-linejoin="round" width="279.847" height="279.847"/>
<path fill="#FFFFFF" fill-opacity="1" stroke-linejoin="round" d="M 210.649,103.501C 208.431,102.573 205.901,102.109 203.059,102.109C 195.085,102.109 191.097,106.408 191.097,115.006L 191.097,124.379L 207.865,124.379L 207.865,136.906L 191.163,136.906L 191.163,193.973L 175.852,193.973L 175.852,136.906L 163.325,136.906L 163.325,124.379L 175.852,124.379L 175.852,113.157C 175.852,105.865 178.277,100.112 183.127,95.9003C 187.977,91.6884 194.041,89.5826 201.319,89.5826C 205.248,89.5826 208.358,89.9958 210.649,90.8222L 210.649,103.501 Z "/>
<rect x="217.608" y="124.379" fill="#FFFFFF" fill-opacity="1" stroke-linejoin="round" width="15.3105" height="69.5934"/>
<path fill="#6CDB56" fill-opacity="1" stroke-linejoin="round" d="M 129.601,97.818L 144.1,97.818C 146.309,97.818 148.1,99.6088 148.1,101.818L 148.1,189.813C 148.1,192.022 146.309,193.813 144.1,193.813L 129.601,193.813C 127.392,193.813 125.601,192.022 125.601,189.813L 125.601,101.818C 125.601,99.6088 127.392,97.818 129.601,97.818 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-linejoin="round" d="M 95.8531,98.5677L 110.352,98.5677C 112.561,98.5677 114.352,100.358 114.352,102.568L 114.352,190.563C 114.352,192.772 112.561,194.563 110.352,194.563L 95.8531,194.563C 93.644,194.563 91.8531,192.772 91.8531,190.563L 91.8531,102.568C 91.8531,100.358 93.644,98.5677 95.8531,98.5677 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-linejoin="round" d="M 60.355,98.0674L 74.8539,98.0674C 77.063,98.0674 78.8539,99.8583 78.8539,102.067L 78.8539,190.063C 78.8539,192.272 77.063,194.063 74.8539,194.063L 60.355,194.063C 58.1458,194.063 56.355,192.272 56.355,190.063L 56.355,102.067C 56.355,99.8583 58.1458,98.0674 60.355,98.0674 Z "/>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="566.38" height="275.072" viewBox="0 0 566.38 275.07" enable-background="new 0 0 566.38 275.07" xml:space="preserve">
<rect x="0" y="3.05176e-005" fill="#FFFFFF" fill-opacity="0" stroke-linejoin="round" width="566.38" height="275.072"/>
<g>
<path fill="#FFFFFF" fill-opacity="1" stroke-linejoin="round" d="M 219.416,91.5147C 217.198,90.5867 214.668,90.1228 211.826,90.1228C 203.852,90.1228 199.865,94.4217 199.865,103.019L 199.865,112.393L 216.632,112.393L 216.632,124.919L 199.93,124.919L 199.93,181.986L 184.619,181.986L 184.619,124.919L 172.093,124.919L 172.093,112.393L 184.619,112.393L 184.619,101.171C 184.619,93.878 187.044,88.1256 191.894,83.9138C 196.744,79.7019 202.808,77.596 210.086,77.596C 214.015,77.596 217.125,78.0092 219.416,78.8356L 219.416,91.5147 Z "/>
<path fill="#FFFFFF" fill-opacity="1" stroke-linejoin="round" d="M 291.097,112.393L 259.324,193.252C 252.669,208.011 243.339,215.391 231.334,215.391C 227.97,215.391 225.158,215.101 222.896,214.521L 222.896,201.472C 225.448,202.4 227.76,202.864 229.833,202.864C 235.85,202.864 240.345,199.856 243.317,193.839L 248.102,181.986L 220.112,112.393L 237.576,112.393L 254.539,163.065C 254.728,163.703 255.148,165.385 255.8,168.111L 256.148,168.111C 256.38,167.067 256.794,165.429 257.388,163.196L 275.2,112.393L 291.097,112.393 Z "/>
<rect x="300.84" y="112.393" fill="#FFFFFF" fill-opacity="1" stroke-linejoin="round" width="15.3105" height="69.5934"/>
<path fill="#FFFFFF" fill-opacity="1" stroke-linejoin="round" d="M 352.622,171.46L 352.34,171.46L 352.34,213.999L 337.029,213.999L 337.029,112.393L 352.34,112.393L 352.34,124.811L 352.622,124.811C 358.103,115.604 366.121,111.001 376.676,111.001C 385.665,111.001 392.671,114.093 397.695,120.276C 402.719,126.46 405.231,134.764 405.231,145.189C 405.231,156.744 402.396,165.998 396.727,172.95C 391.058,179.902 383.316,183.378 373.5,183.378C 364.468,183.378 357.508,179.405 352.622,171.46 Z M 352.209,144.253L 352.209,152.8C 352.209,157.831 353.844,162.098 357.113,165.599C 360.383,169.1 364.54,170.851 369.586,170.851C 375.487,170.851 380.119,168.597 383.483,164.088C 386.846,159.579 388.528,153.286 388.528,145.21C 388.528,138.425 386.962,133.115 383.831,129.28C 380.699,125.445 376.451,123.528 371.086,123.528C 365.417,123.528 360.854,125.503 357.396,129.454C 353.938,133.405 352.209,138.338 352.209,144.253 Z "/>
<path fill="#FFFFFF" fill-opacity="1" stroke-linejoin="round" d="M 481.784,151.365L 433.068,151.365C 433.257,157.599 435.294,162.406 439.179,165.784C 443.065,169.162 448.408,170.851 455.207,170.851C 462.834,170.851 469.837,168.531 476.216,163.892L 476.216,177.136C 469.663,181.297 461.007,183.378 450.249,183.378C 439.679,183.378 431.39,180.239 425.38,173.961C 419.37,167.683 416.366,158.846 416.366,147.45C 416.366,136.692 419.671,127.928 426.283,121.157C 432.894,114.386 441.108,111.001 450.923,111.001C 460.739,111.001 468.336,114.035 473.715,120.102C 479.094,126.17 481.784,134.59 481.784,145.363L 481.784,151.365 Z M 465.081,140.23C 465.038,134.953 463.711,130.849 461.101,127.921C 458.491,124.992 454.888,123.528 450.292,123.528C 445.783,123.528 441.967,125.068 438.842,128.149C 435.718,131.23 433.793,135.257 433.068,140.23L 465.081,140.23 Z "/>
</g>
<path fill="#6CDB56" fill-opacity="1" stroke-linejoin="round" d="M 138.368,85.8314L 152.867,85.8314C 155.076,85.8314 156.867,87.6223 156.867,89.8314L 156.867,177.826C 156.867,180.036 155.076,181.826 152.867,181.826L 138.368,181.826C 136.159,181.826 134.368,180.036 134.368,177.826L 134.368,89.8314C 134.368,87.6223 136.159,85.8314 138.368,85.8314 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-linejoin="round" d="M 106.62,86.5811L 121.119,86.5811C 123.328,86.5811 125.119,88.3719 125.119,90.5811L 125.119,178.576C 125.119,180.785 123.328,182.576 121.119,182.576L 106.62,182.576C 104.411,182.576 102.62,180.785 102.62,178.576L 102.62,90.5811C 102.62,88.3719 104.411,86.5811 106.62,86.5811 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-linejoin="round" d="M 74.1222,86.0809L 88.6211,86.0809C 90.8303,86.0809 92.6211,87.8717 92.6211,90.0809L 92.6211,178.076C 92.6211,180.285 90.8303,182.076 88.6211,182.076L 74.1222,182.076C 71.9131,182.076 70.1222,180.285 70.1222,178.076L 70.1222,90.0809C 70.1222,87.8717 71.9131,86.0809 74.1222,86.0809 Z "/>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="566.38" height="275.072" viewBox="0 0 566.38 275.07" enable-background="new 0 0 566.38 275.07" xml:space="preserve">
<rect x="0" y="3.05176e-005" fill="black" stroke-width="0.2" stroke-linejoin="round" width="566.38" height="275.072"/>
<g>
<path fill="white" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 219.416,91.5147C 217.198,90.5867 214.668,90.1228 211.826,90.1228C 203.852,90.1228 199.865,94.4217 199.865,103.019L 199.865,112.393L 216.632,112.393L 216.632,124.919L 199.93,124.919L 199.93,181.986L 184.619,181.986L 184.619,124.919L 172.093,124.919L 172.093,112.393L 184.619,112.393L 184.619,101.171C 184.619,93.878 187.044,88.1256 191.894,83.9138C 196.744,79.7019 202.808,77.596 210.086,77.596C 214.015,77.596 217.125,78.0092 219.416,78.8356L 219.416,91.5147 Z "/>
<path fill="white" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 291.097,112.393L 259.324,193.252C 252.669,208.011 243.339,215.391 231.334,215.391C 227.97,215.391 225.158,215.101 222.896,214.521L 222.896,201.472C 225.448,202.4 227.76,202.864 229.833,202.864C 235.85,202.864 240.345,199.856 243.317,193.839L 248.102,181.986L 220.112,112.393L 237.576,112.393L 254.539,163.065C 254.728,163.703 255.148,165.385 255.8,168.111L 256.148,168.111C 256.38,167.067 256.794,165.429 257.388,163.196L 275.2,112.393L 291.097,112.393 Z "/>
<rect x="300.84" y="112.393" fill="white" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" width="15.3105" height="69.5934"/>
<path fill="white" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 352.622,171.46L 352.34,171.46L 352.34,213.999L 337.029,213.999L 337.029,112.393L 352.34,112.393L 352.34,124.811L 352.622,124.811C 358.103,115.604 366.121,111.001 376.676,111.001C 385.665,111.001 392.671,114.093 397.695,120.276C 402.719,126.46 405.231,134.764 405.231,145.189C 405.231,156.744 402.396,165.998 396.727,172.95C 391.058,179.902 383.316,183.378 373.5,183.378C 364.468,183.378 357.508,179.405 352.622,171.46 Z M 352.209,144.253L 352.209,152.8C 352.209,157.831 353.844,162.098 357.113,165.599C 360.383,169.1 364.54,170.851 369.586,170.851C 375.487,170.851 380.119,168.597 383.483,164.088C 386.846,159.579 388.528,153.286 388.528,145.21C 388.528,138.425 386.962,133.115 383.831,129.28C 380.699,125.445 376.451,123.528 371.086,123.528C 365.417,123.528 360.854,125.503 357.396,129.454C 353.938,133.405 352.209,138.338 352.209,144.253 Z "/>
<path fill="white" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 481.784,151.365L 433.068,151.365C 433.257,157.599 435.294,162.406 439.179,165.784C 443.065,169.162 448.408,170.851 455.207,170.851C 462.834,170.851 469.837,168.531 476.216,163.892L 476.216,177.136C 469.663,181.297 461.007,183.378 450.249,183.378C 439.679,183.378 431.39,180.239 425.38,173.961C 419.37,167.683 416.366,158.846 416.366,147.45C 416.366,136.692 419.671,127.928 426.283,121.157C 432.894,114.386 441.108,111.001 450.923,111.001C 460.739,111.001 468.336,114.035 473.715,120.102C 479.094,126.17 481.784,134.59 481.784,145.363L 481.784,151.365 Z M 465.081,140.23C 465.038,134.953 463.711,130.849 461.101,127.921C 458.491,124.992 454.888,123.528 450.292,123.528C 445.783,123.528 441.967,125.068 438.842,128.149C 435.718,131.23 433.793,135.257 433.068,140.23L 465.081,140.23 Z "/>
</g>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 138.368,85.8314L 152.867,85.8314C 155.076,85.8314 156.867,87.6222 156.867,89.8314L 156.867,177.826C 156.867,180.036 155.076,181.826 152.867,181.826L 138.368,181.826C 136.159,181.826 134.368,180.036 134.368,177.826L 134.368,89.8314C 134.368,87.6222 136.159,85.8314 138.368,85.8314 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 106.62,86.581L 121.119,86.581C 123.328,86.581 125.119,88.3719 125.119,90.581L 125.119,178.576C 125.119,180.785 123.328,182.576 121.119,182.576L 106.62,182.576C 104.411,182.576 102.62,180.785 102.62,178.576L 102.62,90.581C 102.62,88.3719 104.411,86.581 106.62,86.581 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 74.1223,86.0808L 88.6212,86.0808C 90.8303,86.0808 92.6212,87.8717 92.6212,90.0808L 92.6212,178.076C 92.6212,180.285 90.8303,182.076 88.6212,182.076L 74.1223,182.076C 71.9131,182.076 70.1223,180.285 70.1223,178.076L 70.1223,90.0808C 70.1223,87.8717 71.9131,86.0808 74.1223,86.0808 Z "/>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="566.38" height="275.072" viewBox="0 0 566.38 275.07" enable-background="new 0 0 566.38 275.07" xml:space="preserve">
<rect x="0" y="3.05176e-005" fill="#FFFFFF" fill-opacity="0" stroke-width="0.2" stroke-linejoin="round" width="566.38" height="275.072"/>
<g>
<path fill="black" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 219.416,91.5147C 217.198,90.5867 214.668,90.1228 211.826,90.1228C 203.852,90.1228 199.865,94.4217 199.865,103.019L 199.865,112.393L 216.632,112.393L 216.632,124.919L 199.93,124.919L 199.93,181.986L 184.619,181.986L 184.619,124.919L 172.093,124.919L 172.093,112.393L 184.619,112.393L 184.619,101.171C 184.619,93.878 187.044,88.1256 191.894,83.9138C 196.744,79.7019 202.808,77.596 210.086,77.596C 214.015,77.596 217.125,78.0092 219.416,78.8356L 219.416,91.5147 Z "/>
<path fill="black" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 291.097,112.393L 259.324,193.252C 252.669,208.011 243.339,215.391 231.334,215.391C 227.97,215.391 225.158,215.101 222.896,214.521L 222.896,201.472C 225.448,202.4 227.76,202.864 229.833,202.864C 235.85,202.864 240.345,199.856 243.317,193.839L 248.102,181.986L 220.112,112.393L 237.576,112.393L 254.539,163.065C 254.728,163.703 255.148,165.385 255.8,168.111L 256.148,168.111C 256.38,167.067 256.794,165.429 257.388,163.196L 275.2,112.393L 291.097,112.393 Z "/>
<rect x="300.84" y="112.393" fill="black" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" width="15.3105" height="69.5934"/>
<path fill="black" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 352.622,171.46L 352.34,171.46L 352.34,213.999L 337.029,213.999L 337.029,112.393L 352.34,112.393L 352.34,124.811L 352.622,124.811C 358.103,115.604 366.121,111.001 376.676,111.001C 385.665,111.001 392.671,114.093 397.695,120.276C 402.719,126.46 405.231,134.764 405.231,145.189C 405.231,156.744 402.396,165.998 396.727,172.95C 391.058,179.902 383.316,183.378 373.5,183.378C 364.468,183.378 357.508,179.405 352.622,171.46 Z M 352.209,144.253L 352.209,152.8C 352.209,157.831 353.844,162.098 357.113,165.599C 360.383,169.1 364.54,170.851 369.586,170.851C 375.487,170.851 380.119,168.597 383.483,164.088C 386.846,159.579 388.528,153.286 388.528,145.21C 388.528,138.425 386.962,133.115 383.831,129.28C 380.699,125.445 376.451,123.528 371.086,123.528C 365.417,123.528 360.854,125.503 357.396,129.454C 353.938,133.405 352.209,138.338 352.209,144.253 Z "/>
<path fill="black" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 481.784,151.365L 433.068,151.365C 433.257,157.599 435.294,162.406 439.179,165.784C 443.065,169.162 448.408,170.851 455.207,170.851C 462.834,170.851 469.837,168.531 476.216,163.892L 476.216,177.136C 469.663,181.297 461.007,183.378 450.249,183.378C 439.679,183.378 431.39,180.239 425.38,173.961C 419.37,167.683 416.366,158.846 416.366,147.45C 416.366,136.692 419.671,127.928 426.283,121.157C 432.894,114.386 441.108,111.001 450.923,111.001C 460.739,111.001 468.336,114.035 473.715,120.102C 479.094,126.17 481.784,134.59 481.784,145.363L 481.784,151.365 Z M 465.081,140.23C 465.038,134.953 463.711,130.849 461.101,127.921C 458.491,124.992 454.888,123.528 450.292,123.528C 445.783,123.528 441.967,125.068 438.842,128.149C 435.718,131.23 433.793,135.257 433.068,140.23L 465.081,140.23 Z "/>
</g>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 138.368,85.8314L 152.867,85.8314C 155.076,85.8314 156.867,87.6222 156.867,89.8314L 156.867,177.826C 156.867,180.036 155.076,181.826 152.867,181.826L 138.368,181.826C 136.159,181.826 134.368,180.036 134.368,177.826L 134.368,89.8314C 134.368,87.6222 136.159,85.8314 138.368,85.8314 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 106.62,86.581L 121.119,86.581C 123.328,86.581 125.119,88.3719 125.119,90.581L 125.119,178.576C 125.119,180.785 123.328,182.576 121.119,182.576L 106.62,182.576C 104.411,182.576 102.62,180.785 102.62,178.576L 102.62,90.581C 102.62,88.3719 104.411,86.581 106.62,86.581 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 74.1223,86.0808L 88.6212,86.0808C 90.8303,86.0808 92.6212,87.8717 92.6212,90.0808L 92.6212,178.076C 92.6212,180.285 90.8303,182.076 88.6212,182.076L 74.1223,182.076C 71.9131,182.076 70.1223,180.285 70.1223,178.076L 70.1223,90.0808C 70.1223,87.8717 71.9131,86.0808 74.1223,86.0808 Z "/>
</svg>

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="131.993" height="131.993" viewBox="0 0 131.99 131.99" enable-background="new 0 0 131.99 131.99" xml:space="preserve">
<path fill="#FFFFFF" fill-opacity="0" stroke-width="0.2" stroke-linejoin="round" d="M 4,-3.05176e-005L 127.993,-3.05176e-005C 130.203,-3.05176e-005 131.993,1.79086 131.993,3.99997L 131.993,127.993C 131.993,130.203 130.203,131.993 127.993,131.993L 4,131.993C 1.79086,131.993 0,130.203 0,127.993L 0,3.99997C 0,1.79086 1.79086,-3.05176e-005 4,-3.05176e-005 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 93.3703,19.8742L 107.869,19.8742C 110.078,19.8742 111.869,21.6651 111.869,23.8742L 111.869,111.869C 111.869,114.078 110.078,115.869 107.869,115.869L 93.3703,115.869C 91.1612,115.869 89.3703,114.078 89.3703,111.869L 89.3703,23.8742C 89.3703,21.6651 91.1612,19.8742 93.3703,19.8742 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 59.6224,20.6239L 74.1212,20.6239C 76.3304,20.6239 78.1212,22.4148 78.1212,24.6239L 78.1212,112.619C 78.1212,114.828 76.3304,116.619 74.1212,116.619L 59.6224,116.619C 57.4132,116.619 55.6224,114.828 55.6224,112.619L 55.6224,24.6239C 55.6224,22.4148 57.4132,20.6239 59.6224,20.6239 Z "/>
<path fill="#6CDB56" fill-opacity="1" stroke-width="0.2" stroke-linejoin="round" d="M 24.1242,20.1237L 38.6231,20.1237C 40.8323,20.1237 42.6231,21.9146 42.6231,24.1237L 42.6231,112.119C 42.6231,114.328 40.8323,116.119 38.6231,116.119L 24.1242,116.119C 21.9151,116.119 20.1242,114.328 20.1242,112.119L 20.1242,24.1237C 20.1242,21.9146 21.9151,20.1237 24.1242,20.1237 Z "/>
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@ -0,0 +1,304 @@
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap');
$xl: 87.5em;
$lg: 60em;
$med: 40em;
$sm: 28em;
$xs: 18em;
$bglight: #fff;
$bgDark: #000;
$colorGrey: #808080;
$lightBlue: rgb(23, 38, 176);
$colorLightGrey: rgb(202, 202, 202);
$transition: all 0.2s ease-in-out;
@mixin responsive($query) {
@media (min-width: $query) {
@content;
}
}
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
html {
font-family: 'Poppins', sans-serif;
color: lighten($bgDark, 25%);
font-size: 10px;
}
body {
background-color: rgba(234, 234, 247, 0.796);
height: 100vh;
width: 100vw;
position: relative;
a {
text-decoration: none;
&:visited {
color: $lightBlue;
}
}
&::after {
content: '';
width: 100%;
height: 100%;
background-color: white;
position: absolute;
bottom: 0;
left: 0;
z-index: 20;
clip-path: polygon(0 79%, 100% 48%, 100% 100%, 0% 100%);
}
}
.brand {
position: absolute;
top: 5%;
left: 35%;
transform: translate(-40%, -20%);
img {
width: 200px;
height: 150px;
}
}
.signup_panel {
position: absolute;
bottom: 19%;
left: 50%;
transform: translateX(-50%);
font-size: 1.4rem;
z-index: 25;
transition: $transition;
@include responsive($xs) {
bottom: 10%;
}
@include responsive($sm) {
bottom: 15%;
}
span {
color: $lightBlue;
cursor: pointer;
&:hover {
color: darken($lightBlue, 50%);
}
}
}
form {
height: fit-content;
position: absolute;
top: 35%;
left: 50%;
transform: translate(-50%, -35%);
background-color: $bglight;
border-radius: 5px;
box-shadow: 1px 2px 10px lighten($bgDark, 85%);
padding: 50px 70px;
z-index: 40;
@include responsive($xs) {
width: 95%;
padding: 25px;
}
@include responsive($sm) {
width: 80%;
padding: 35px;
}
@include responsive($med) {
width: 65%;
padding: 50px 70px;
}
@include responsive($lg) {
width: 50%;
}
@include responsive($xl) {
width: 35%;
}
h1 {
color: lighten($bgDark, 20%);
font-family: 'Helvetica Neue', sans-serif;
font-size: 2.4rem;
font-weight: 500;
margin-bottom: 30px;
letter-spacing: -0.2px;
line-height: 32px;
}
div {
display: flex;
flex-direction: column;
&:not(:last-child) {
margin-bottom: 30px;
}
label {
font-size: 1.35rem;
font-weight: 400;
color: lighten($bgDark, 20%);
margin-bottom: 5px;
}
input {
width: 100%;
padding: 15px 20px;
border: 1px solid $colorLightGrey;
border-radius: 5px;
outline: none;
appearance: none;
background: transparent;
&:focus {
outline: 2px solid rgba(84, 84, 238, 0.72);
}
}
}
.remember {
display: flex;
flex-direction: row;
align-items: center;
label {
margin-bottom: 0;
font-size: 1.4rem;
color: lighten($bgDark, 40%);
cursor: pointer;
}
input[type='checkbox'] {
width: fit-content;
margin-right: 10px;
appearance: none;
-webkit-appearance: none;
background-color: #fafafa;
border: 1px solid #cacece;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05),
inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05);
padding: 9px;
border-radius: 3px;
display: inline-block;
position: relative;
outline: none;
&:active,
&:checked:active {
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05),
inset 0px 1px 3px rgba(0, 0, 0, 0.1);
}
&:checked {
background-color: #e9ecee;
border: 1px solid #adb8c0;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05),
inset 0px -15px 10px -12px rgba(0, 0, 0, 0.05),
inset 15px 10px -12px rgba(255, 255, 255, 0.1);
color: lighten($bgDark, 10%) !important;
&::after {
content: '\2714';
font-size: 14px;
position: absolute;
top: 0px;
left: 3px;
color: $bgDark;
}
}
}
}
button {
color: $bglight;
width: 100%;
border: none;
border-radius: 5px;
background-color: lighten($bgDark, 15%);
cursor: pointer;
padding: 13px 20px;
transition: $transition;
div {
div {
display: none;
}
span {
font-weight: 300;
font-size: 1.7rem;
}
}
&:hover {
background-color: lighten($bgDark, 20%);
}
}
.actions {
margin: 15px 0;
text-align: center;
p {
font-size: 1.4rem;
margin: 5px 0;
color: $lightBlue;
cursor: pointer;
transition: $transition;
&:hover {
color: darken($lightBlue, 50%);
}
}
}
}
.footer {
position: absolute;
bottom: 0;
left: 0;
width: 100vw;
display: flex;
font-size: 1.3rem;
z-index: 25;
transition: $transition;
@include responsive($xs) {
justify-content: center;
}
@include responsive($sm) {
left: 50%;
transform: translateX(-50%);
}
p {
padding-right: 20px;
padding-bottom: 10px;
cursor: pointer;
a {
color: lighten($bgDark, 50%);
&:hover {
color: lighten($bgDark, 30%);
}
}
}
}

View File

@ -1,28 +1,23 @@
import React from 'react';
import './App.scss';
import {
BrowserRouter as Router,
Routes,
Route,
} from "react-router-dom";
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import LoginPage from './Pages/Login';
function App() {
return (
<div className="App">
<Router>
<Routes>
<Route path="/" element={<LoginPage />} />
<Route path="/login" element={<LoginPage />} />
<Route path="/forgot-password" element={<LoginPage />} />
<Route path="/register" element={<LoginPage />} />
<Route path="/login/sso" element={<LoginPage />} />
<Route path="/verify-email" element={<LoginPage />} />
</Routes>
</Router>
</div>
);
return (
<div className="App">
<Router>
<Routes>
<Route path="/" element={<LoginPage />} />
<Route path="/login" element={<LoginPage />} />
<Route path="/forgot-password" element={<LoginPage />} />
<Route path="/register" element={<LoginPage />} />
<Route path="/login/sso" element={<LoginPage />} />
<Route path="/verify-email" element={<LoginPage />} />
</Routes>
</Router>
</div>
);
}
export default App;

View File

@ -1,37 +1,62 @@
import React, { FunctionComponent } from 'react';
import { Link } from 'react-router-dom';
import BasicModelForm from 'CommonUI/src/Components/Forms/BasicModelForm';
import User from 'Common/Models/User';
import FormValues from 'CommonUI/src/Components/Forms/Types/FormValues';
const LoginPage: FunctionComponent = () => {
const user: User = new User();
return (
<BasicModelForm<User>
model={user}
id="login-form"
fields={[
{
field: {
email: true
}
},
{
field: {
password: true
}
}
]}
onSubmit={(values: FormValues<User>) => {
console.log(values);
}}
submitButtonText={"Login"}
title={"Sign in to your account"}
/>
)
<>
<div className="brand">
<img
alt="OneUpTime"
src="/assets/img/logos/OneUptimeSVG/3.svg"
/>
</div>
<BasicModelForm<User>
model={user}
id="login-form"
fields={[
{
field: {
email: true,
},
title: 'Email',
},
{
field: {
password: true,
},
title: 'Password',
},
]}
onSubmit={(values: FormValues<User>) => {
console.log(values);
}}
submitButtonText={'Login'}
title={'Sign in to your account'}
/>
<div className="signup_panel">
Don&apos;t have an account?{' '}
<span>
<Link to="/register">Sign up</Link>
</span>
</div>
<div className="footer">
<p>
<Link to="/">&copy; OneUptime</Link>
</p>
<p>
<Link to="/">Contact</Link>
</p>
<p>
<Link to="/">Privacy &amp; terms</Link>
</p>
</div>
</>
);
};
export default LoginPage;

View File

@ -1,11 +1,11 @@
{
"name": "CommonServer",
"name": "common-server",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "CommonServer",
"name": "common-server",
"version": "1.0.0",
"license": "MIT",
"dependencies": {

25324
CommonUI/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -18,16 +18,33 @@
"Common": "file:../Common",
"formik": "^2.2.9",
"prop-types": "^15.8.1",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-router": "^6.2.2",
"redux": "^4.2.0",
"universal-cookie": "^4.0.4",
"web-vitals": "^2.1.4",
"yup": "^0.32.11"
"yup": "^0.32.11",
"react": "^18.1.0",
"react-dom": "^18.1.0",
"react-router": "^6.3.0",
"react-router-dom": "^6.3.0",
"react-scripts": "5.0.1"
},
"devDependencies": {
"@types/node": "^17.0.23",
"@types/react": "^18.0.9"
"@types/react": "^18.0.9",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.2.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.1",
"@types/react-dom": "^18.0.4",
"@types/react-router-dom": "^5.3.3",
"css-loader": "^6.7.1",
"customize-cra": "^1.0.0",
"react-app-rewired": "^2.2.1",
"sass": "^1.51.0",
"sass-loader": "^12.6.0",
"ts-loader": "^9.3.0",
"webpack": "^5.72.1",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.9.0"
}
}

View File

@ -1,7 +1,7 @@
import React, { ReactElement } from 'react';
import { ErrorMessage, Field, Form, Formik, FormikErrors } from 'formik';
import Button from '../Basic/Button/Button';
import FormValues from './Types/FormValues'
import FormValues from './Types/FormValues';
import RequiredFormFields from './Types/RequiredFormFields';
import Fields from './Types/Fields';
import DataField from './Types/Field';
@ -9,60 +9,85 @@ import ButtonTypes from '../Basic/Button/ButtonTypes';
import BadDataException from 'Common/Types/Exception/BadDataException';
export interface ComponentProps<T extends Object> {
id: string,
initialValues: FormValues<T>,
onSubmit: (values: FormValues<T>) => void
onValidate?: (values: FormValues<T>) => FormikErrors<FormValues<T>>,
requiredfields: RequiredFormFields<T>,
fields: Fields<T>,
model: T,
submitButtonText?: string
title?: string
id: string;
initialValues: FormValues<T>;
onSubmit: (values: FormValues<T>) => void;
onValidate?: (values: FormValues<T>) => FormikErrors<FormValues<T>>;
requiredfields: RequiredFormFields<T>;
fields: Fields<T>;
model: T;
submitButtonText?: string;
title?: string;
}
const BasicForm = <T extends Object,>(props: ComponentProps<T>): ReactElement => {
const BasicForm = <T extends Object>(
props: ComponentProps<T>
): ReactElement => {
const getFormField = (field: DataField<T>, index: number): ReactElement => {
let fieldType = "text";
let fieldType = 'text';
if (Object.keys(field.field).length === 0) {
throw new BadDataException("Object cannot be without Field")
throw new BadDataException('Object cannot be without Field');
}
return (<div key={index}>
<label>{field.title}</label>
<p>{field.description}</p>
<Field placeholder={field.placeholder} type={fieldType} name={Object.keys(field.field)[0] as string} />
<ErrorMessage name={Object.keys(field.field)[0] as string} component="div" />
</div>)
}
return (
<div key={index}>
<label>{field.title}</label>
<p>{field.description}</p>
<Field
placeholder={field.placeholder}
type={fieldType}
name={Object.keys(field.field)[0] as string}
/>
<ErrorMessage
name={Object.keys(field.field)[0] as string}
component="div"
/>
</div>
);
};
return (<div>
<Formik
initialValues={props.initialValues}
validate={(values: FormValues<T>) => {
if (props.onValidate) {
return props.onValidate(values);
}
return (
<div>
<Formik
initialValues={props.initialValues}
validate={(values: FormValues<T>) => {
if (props.onValidate) {
return props.onValidate(values);
}
return {};
}}
onSubmit={(values: FormValues<T>) => {
props.onSubmit(values);
}}
>
{({ isSubmitting }) => (
<Form>
<h1>{props.title}</h1>
{props.fields && props.fields.map((field: DataField<T>, i) => {
return getFormField(field, i);
})}
<Button title={props.submitButtonText || "Submit"} disabled={isSubmitting} type={ButtonTypes.Submit} id={`${props.id}-submit-button`} />
</Form>
)}
</Formik>
</div>)
return {};
}}
onSubmit={(values: FormValues<T>) => {
props.onSubmit(values);
}}
>
{({ isSubmitting }) => (
<Form>
<h1>{props.title}</h1>
{props.fields &&
props.fields.map((field: DataField<T>, i) => {
return getFormField(field, i);
})}
<div className="remember">
<input type="checkbox" id="remember" />
<label htmlFor="remember">
Stay signed in for a week
</label>
</div>
<Button
title={props.submitButtonText || 'Submit'}
disabled={isSubmitting}
type={ButtonTypes.Submit}
id={`${props.id}-submit-button`}
/>
<div className="actions">
<p>Forgot your password?</p>
<p>Use single sign-on (SSO) instead</p>
</div>
</Form>
)}
</Formik>
</div>
);
};
export default BasicForm;
export default BasicForm;

View File

@ -6,46 +6,60 @@ import Fields from './Types/Fields';
import BasicForm from './BasicForm';
export interface ComponentProps<T extends BaseModel> {
model: T,
id: string,
onSubmit: (values: FormValues<T>) => void
onValidate?: (values: FormValues<T>) => FormikErrors<FormValues<T>>,
fields: Fields<T>,
submitButtonText?: string
title?: string
model: T;
id: string;
onSubmit: (values: FormValues<T>) => void;
onValidate?: (values: FormValues<T>) => FormikErrors<FormValues<T>>;
fields: Fields<T>;
submitButtonText?: string;
title?: string;
}
const BasicModelForm = <TBaseModel extends BaseModel>(props: ComponentProps<TBaseModel>): ReactElement => {
const BasicModelForm = <TBaseModel extends BaseModel>(
props: ComponentProps<TBaseModel>
): ReactElement => {
const initialValues: FormValues<TBaseModel> = {};
const fields = [];
// Prep
for (const field of props.fields) {
if (Object.keys(field.field).length > 0){
if (props.model.getDisplayColumnTitleAs(Object.keys(field.field)[0] as string)) {
field.title = props.model.getDisplayColumnTitleAs(Object.keys(field.field)[0] as string) as string;
if (Object.keys(field.field).length > 0) {
if (
props.model.getDisplayColumnTitleAs(
Object.keys(field.field)[0] as string
)
) {
field.title = props.model.getDisplayColumnTitleAs(
Object.keys(field.field)[0] as string
) as string;
}
if (props.model.getDisplayColumnDescriptionAs(Object.keys(field.field)[0] as string)) {
field.description = props.model.getDisplayColumnDescriptionAs(Object.keys(field.field)[0] as string) as string;
if (
props.model.getDisplayColumnDescriptionAs(
Object.keys(field.field)[0] as string
)
) {
field.description = props.model.getDisplayColumnDescriptionAs(
Object.keys(field.field)[0] as string
) as string;
}
}
fields.push(field);
}
return (<BasicForm<TBaseModel>
fields={fields}
id={props.id}
onSubmit={props.onSubmit}
initialValues={initialValues}
requiredfields={{}}
model={props.model}
submitButtonText={props.submitButtonText || 'Save'}
title={ props.title || ''}
/>)
return (
<BasicForm<TBaseModel>
fields={fields}
id={props.id}
onSubmit={props.onSubmit}
initialValues={initialValues}
requiredfields={{}}
model={props.model}
submitButtonText={props.submitButtonText || 'Save'}
title={props.title || ''}
/>
);
};
export default BasicModelForm;
export default BasicModelForm;

403
package-lock.json generated
View File

@ -9,12 +9,15 @@
"version": "3.0.2",
"license": "MIT",
"dependencies": {
"eslint-plugin-progress": "^0.0.1"
"eslint-plugin-progress": "^0.0.1",
"react-router": "^6.3.0",
"react-router-dom": "^5.3.3"
},
"devDependencies": {
"@babel/core": "^7.17.8",
"@babel/plugin-proposal-class-properties": "^7.16.7",
"@babel/plugin-proposal-private-methods": "^7.16.11",
"@types/react-router-dom": "^5.3.3",
"@typescript-eslint/eslint-plugin": "^5.16.0",
"@typescript-eslint/parser": "^5.16.0",
"babel-eslint": "^10.1.0",
@ -409,7 +412,6 @@
"version": "7.17.8",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz",
"integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
@ -605,6 +607,12 @@
"node": ">= 8"
}
},
"node_modules/@types/history": {
"version": "4.7.11",
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
"integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
"dev": true
},
"node_modules/@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
@ -617,6 +625,50 @@
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
"dev": true
},
"node_modules/@types/prop-types": {
"version": "15.7.5",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
"dev": true
},
"node_modules/@types/react": {
"version": "18.0.9",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
"integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-router": {
"version": "5.1.18",
"resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz",
"integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==",
"dev": true,
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*"
}
},
"node_modules/@types/react-router-dom": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
"integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
"dev": true,
"dependencies": {
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router": "*"
}
},
"node_modules/@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.16.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
@ -1391,6 +1443,12 @@
"node": ">= 8"
}
},
"node_modules/csstype": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
"dev": true
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@ -2571,6 +2629,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/history": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
"integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==",
"dependencies": {
"@babel/runtime": "^7.7.6"
}
},
"node_modules/hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"dependencies": {
"react-is": "^16.7.0"
}
},
"node_modules/human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@ -2883,6 +2957,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@ -2910,8 +2989,7 @@
"node_modules/js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/js-yaml": {
"version": "4.1.0",
@ -3310,7 +3388,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@ -3367,6 +3444,19 @@
"node": ">=6"
}
},
"node_modules/mini-create-react-context": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
"integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
"dependencies": {
"@babel/runtime": "^7.12.1",
"tiny-warning": "^1.0.3"
},
"peerDependencies": {
"prop-types": "^15.0.0",
"react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
}
},
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@ -3428,7 +3518,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@ -3664,6 +3753,14 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
"node_modules/path-to-regexp": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
"dependencies": {
"isarray": "0.0.1"
}
},
"node_modules/path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@ -3743,7 +3840,6 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@ -3779,11 +3875,84 @@
}
]
},
"node_modules/react": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
"integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"peer": true,
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/react-router": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz",
"integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==",
"dependencies": {
"history": "^5.2.0"
},
"peerDependencies": {
"react": ">=16.8"
}
},
"node_modules/react-router-dom": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz",
"integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==",
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
"loose-envify": "^1.3.1",
"prop-types": "^15.6.2",
"react-router": "5.3.3",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
},
"peerDependencies": {
"react": ">=15"
}
},
"node_modules/react-router-dom/node_modules/history": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
"integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
"dependencies": {
"@babel/runtime": "^7.1.2",
"loose-envify": "^1.2.0",
"resolve-pathname": "^3.0.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0",
"value-equal": "^1.0.1"
}
},
"node_modules/react-router-dom/node_modules/react-router": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz",
"integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==",
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
"hoist-non-react-statics": "^3.1.0",
"loose-envify": "^1.3.1",
"mini-create-react-context": "^0.4.0",
"path-to-regexp": "^1.7.0",
"prop-types": "^15.6.2",
"react-is": "^16.6.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
},
"peerDependencies": {
"react": ">=15"
}
},
"node_modules/read-input": {
"version": "0.3.1",
@ -3794,8 +3963,7 @@
"node_modules/regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
"dev": true
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"node_modules/regexp.prototype.flags": {
"version": "1.4.1",
@ -3860,6 +4028,11 @@
"node": ">=4"
}
},
"node_modules/resolve-pathname": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
},
"node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@ -4223,6 +4396,16 @@
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
"node_modules/tiny-invariant": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz",
"integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg=="
},
"node_modules/tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@ -4363,6 +4546,11 @@
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
"node_modules/value-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@ -4855,7 +5043,6 @@
"version": "7.17.8",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.8.tgz",
"integrity": "sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==",
"dev": true,
"requires": {
"regenerator-runtime": "^0.13.4"
}
@ -5008,6 +5195,12 @@
"fastq": "^1.6.0"
}
},
"@types/history": {
"version": "4.7.11",
"resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
"integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
"dev": true
},
"@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
@ -5020,6 +5213,50 @@
"integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
"dev": true
},
"@types/prop-types": {
"version": "15.7.5",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
"dev": true
},
"@types/react": {
"version": "18.0.9",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
"integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
"dev": true,
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"@types/react-router": {
"version": "5.1.18",
"resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.18.tgz",
"integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==",
"dev": true,
"requires": {
"@types/history": "^4.7.11",
"@types/react": "*"
}
},
"@types/react-router-dom": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
"integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
"dev": true,
"requires": {
"@types/history": "^4.7.11",
"@types/react": "*",
"@types/react-router": "*"
}
},
"@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
"dev": true
},
"@typescript-eslint/eslint-plugin": {
"version": "5.16.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.16.0.tgz",
@ -5553,6 +5790,12 @@
"which": "^2.0.1"
}
},
"csstype": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
"dev": true
},
"damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@ -6432,6 +6675,22 @@
"has-symbols": "^1.0.2"
}
},
"history": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz",
"integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==",
"requires": {
"@babel/runtime": "^7.7.6"
}
},
"hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"requires": {
"react-is": "^16.7.0"
}
},
"human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@ -6633,6 +6892,11 @@
"call-bind": "^1.0.2"
}
},
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@ -6654,8 +6918,7 @@
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
"version": "4.1.0",
@ -6953,7 +7216,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dev": true,
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
@ -6995,6 +7257,15 @@
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
"mini-create-react-context": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
"integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
"requires": {
"@babel/runtime": "^7.12.1",
"tiny-warning": "^1.0.3"
}
},
"minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@ -7046,8 +7317,7 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-inspect": {
"version": "1.12.0",
@ -7214,6 +7484,14 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
"path-to-regexp": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
"requires": {
"isarray": "0.0.1"
}
},
"path-type": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
@ -7263,7 +7541,6 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
"dev": true,
"requires": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@ -7282,11 +7559,74 @@
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
"dev": true
},
"react": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
"integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"peer": true,
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
}
},
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"dev": true
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"react-router": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-6.3.0.tgz",
"integrity": "sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==",
"requires": {
"history": "^5.2.0"
}
},
"react-router-dom": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.3.tgz",
"integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==",
"requires": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
"loose-envify": "^1.3.1",
"prop-types": "^15.6.2",
"react-router": "5.3.3",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
},
"dependencies": {
"history": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
"integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
"requires": {
"@babel/runtime": "^7.1.2",
"loose-envify": "^1.2.0",
"resolve-pathname": "^3.0.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0",
"value-equal": "^1.0.1"
}
},
"react-router": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.3.tgz",
"integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==",
"requires": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
"hoist-non-react-statics": "^3.1.0",
"loose-envify": "^1.3.1",
"mini-create-react-context": "^0.4.0",
"path-to-regexp": "^1.7.0",
"prop-types": "^15.6.2",
"react-is": "^16.6.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
}
}
}
},
"read-input": {
"version": "0.3.1",
@ -7297,8 +7637,7 @@
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
"dev": true
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"regexp.prototype.flags": {
"version": "1.4.1",
@ -7339,6 +7678,11 @@
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
"resolve-pathname": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
},
"restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@ -7595,6 +7939,16 @@
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
"tiny-invariant": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.2.0.tgz",
"integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg=="
},
"tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
@ -7705,6 +8059,11 @@
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
"value-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
},
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",

View File

@ -29,7 +29,7 @@
"prettier": "^2.6.0"
},
"scripts": {
"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
"count-total-lines-of-code": "git grep ^ | wc -l",
"uninstall": "docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)",
"delete-all-local-branches": "git branch | grep -v 'master' | xargs git branch -D",